הסבר שימוש ב ADB
דוד לבהרבה מכם בוודאי שמעו על שרביט הקסמים שנקרא ADB.
משמעות צרוף האותיות ADB היא Android Debug Bridge. איי-די-בי הוא כלי קומנד-ליין (שורת פקודה) שמאפשר שליטה על התקני אנדרואיד. כלי זה, משמש כממשק טרמינל להתקני אנדרואיד ומאפשר גישה למערכת הקבצים של ההתקן.
באמצעותו ניתן לקבל גישה לטרמינל המכשיר, להתקין ולהסיר ולהשבית אפליקציות (גם מערכת), לבצע שינויים בהגדרות ובהרשאות, לצלם ולהקליט מסך, לנהל קבצים פנימיים במכשיר ועוד הרבה פעולות מעניינות.
החיבור מתבצע דרך כבל USB אך יכול להתבצע גם ע"י חיבור של המחשב ושל הטלפון לאותה רשת אלחוטית.
שימו לב כי המדריך אינו מעודד פריצות או מעשים בלתי חוקיים. אנא פעלו בהגינות.
הצטרפו לערוץ אנדרוטיפס למדריכים נוספים!
אינדקס:
איך מתקינים?
• משתמשי Windows
1. הורידו את קובץ ההתקנה הזה והריצו כמנהל.
2. לחצו Y/Yes כדי להתקין את ADB ואת Fastboot
3. לחצו Y/Yes כדי להתקין ADB לכל היוזרים במחשב או N/No כדי להתקין רק למשתמש הנוכחי.
4. לחצו Y/Yes כדי להתקין דרייברים לאנדרואיד או N/No כדי לדלג.
5. המתינו לסיום ההתקנה
• משתמשי Linux
פתחו טרמינל והריצו את הפקודה:
sudo apt install android-tools-adb
• משתמשי MacOS
פתחו טרמינל והריצו את הפקודה
brew cask install android-platform-tools
• אין לכם מחשב?
אל דאגה, תוכלו להוריד את אפליקציית Terminal Emulator שמשמשת כקישור ישיר אל הShell באנדרואיד.
שניה לפני שמתחילים, כמה מילות מפתח שנעשה בהם שימוש במדריך:
קובץ הapk שלכם = yourfile.apk
שם החבילה שעליה אתם מחילים את הפקודה = your.package.name
נתיב האחסון הפנימי = /sdcard/
איך מתחילים?
בווינדוס פותחים cmd [שורת הפקודה] או PowerShell או מורידים WSL (מסוף לינוקס המיועד למערכת הפעלה ווינדוס, ממליץ להוריד בלי קשר ל-ADB).
בלינוקס ובמאק פשוט פותחים טרמינל ומתחילים להקליד את הפקודות.
אם אתם משתמשים בWSL תצטרכו קודם להפעיל את הadb דרך cmd ורק אז להשתמש בו בwsl
כבר הפעלתם וקיבלתם שגיאה בWSL? שלחו את הפקודה adb kill-server ואז הפעילו אותו שוב דרך cmd או powershell
כדי להתחבר למכשיר האנדרואיד שלכם תצטרכו לאפשר מצב ניפוי באגים. דרך הפעולה שונה ממכשיר למכשיר אך הרעיון הכללי הוא ללכת להגדרות > אודות המכשיר > פרטי תוכנה > וללחוץ 7 פעמים ברציפות על גרסת Build.
(אם אינכם מוצאים את אפשרויות למפתחים במכשירכם נסו לחפש בגוגל developer option ואת דגם המכשיר שלכם. למשל: Developer Option Samsung Galaxy S10)
אחר כך היכנסו שוב להגדרות > מצב מפתחים והפעילו איתור באגים של USB.
איך משתמשים?
ב-adb יש עשרות פקודות ולכן כאן אני אתמקד באלו ששימושיות ביותר.
• בדיקת מכשירים
חברו את המכשיר בכבל למחשב ושלחו את הפקודה הבאה כדי לראות אם המחשב קלט שאתם מחוברים:
adb devices
בפעם הראשונה שתפעילו adb תקפוץ התראה במכשיר שדורשת לאשר את ניפוי הבאגים
אם המכשיר מחובר למחשב והכל תקין תקבלו את מזהה המכשיר ולידו סטטוס device (מכשיר) שאומר שהמכשיר מחובר בהצלחה:
אם לא אישרתם ניפוי באגים תקבלו את התגובה הבאה. ADB מזהה את המכשיר אך הוא נמצא על סטטוס unauthorized (לא מאומת):
התחברות דרך הרשת
אם ברצונכם להתחבר למכשיר באופן אלחוטי עליכם להיות מחוברים דרך USB למחשב ודרך wifi לאותו רשת ולהקליד את הפקודות הבאות:
adb tcpip 5555 adb connect 192.168.0.101:5555
את המספר הארוך [192.168.0.101] תחליפו עם כתובת הIP שלכם אותה תוכלו למצוא ע"י שליחת הפקודה:
adb shell ip route
או בהגדרות המכשיר > אודות המכשיר > סטטוס > כתובת IP
לא לשכוח לשים בסוף :5555
אחרי כן נתקו את המכשיר מכבל הUSB והקלידו adb devices. מייד תראו שהמכשיר עדיין ברשימה למרות שהוא מנותק מהמחשב.
ניהול אפליקציות
בווינדוס פתיחת הטרמינל מתאפשרת דרך סייר הקבצים ע"י לחיצה על לחצן ימני בעכבר ועל מקש השיפט ואז בחירה בOpen windows powershell here. אם אתם משתמשים באפליקציה דלגו ישר לכאן
• הסרת כל אפליקציה מהמכשיר
היכנסו לטרמינל המכשיר:
adb shell
ואז הקלידו את הפקודה הבאה כדי לקבל את רשימת האפליקציות המותקנות על המכשיר:
pm list packages
השתמשו ב-grep כדי לסנן את התוצאות. אם תרצו למשל לחפש את שם החבילה של יוטיוב:
pm list packages | grep youtube
העתיקו את שמות החבילה שתרצו להסיר ואז הריצו את הפקודה:
pm uninstall XXX
את XXX החליפו ב-Package Name שאותו תרצו להסיר, את יוטיוב למשל:
pm uninstall com.google.android.youtube
שימו לב שלא ניתן למחוק אפליקציות מהמערכת ללא הרשאת רוט אך ניתן להסיר אותם מהמשתמש הנוכחי (מה שאומר שהם יחזרו אחרי איפוס) על ידי הפקודה הבאה:
pm uninstall --user 0 XXX
שימו לב לתוספת user 0 שאומרת ל-pm (מנהל החבילה - Package manager) שאנחנו רוצים להסיר את האפליקציה מיוזר 0 - משתמש ברירת המחדל באנדרואיד)
• התקנת אפליקציה חדשה
לכו לתיקייה שבה נמצא קובץ הapk ופתחו שם את הטרמינל.
הקלידו
adb install yourfile.apk
הyourfile.apk מסמל את קובץ הapk שברצונכם להתקין.
• התקנה ישירות לכרטיס SD
adb install -s yourfile.apk
• עדכון אפליקציה קיימת
הקלידו
adb install -r yourfile.apk
שימו לב לr- שמסמל את המילה Replace = להחליף.
• התקינו אפליקציה עם הרשאות מלאות (זהירות!)
adb install -g yourfile.apk
• התקנת Splits APK
adb install-multiple base.apk split.apk
• הסרת אפליקציה
adb uninstall your.package.name
• ניקוי נתונים לאפליקציה
שימוש בפקודה זו תאפס את נתוני האפליקציה (data + cache) ללא יכולת שחזור
adb shell pm clear your.package.name
• הורדת קבצים מהמכשיר למחשב
adb pull /sdcard/Download/yourfile.jpg
• שליחת קבצים מהמחשב למכשיר
adb push yourfile.pdf /sdcard/Downloads
פתיחת טרמינל
דרך הטרמינל הפנימי של המכשיר תוכלו לשלוט בהגדרות המכשיר ולבצע פעולות מערכת כמו הרשאות, השבתת והסרת אפליקציות מערכת, לצלם ולהקליט מסך, לנהל את הקבצים במכשיר ועוד עשרות אפשרויות.
טרמינל תוכלו להפעיל דרך הטלפון עצמו ע"י הורדה של האפליקציה הזו.
חלק גדול מהפקודות, בעיקר אלו שנוגעות למערכת, דורשות הרשאות רוט
כדי להפעיל את הטרמינל שלחו את הפקודה
adb shell
כדי לצאת מהshell בחזרה אל הטרמינל המקומי הריצו את הפקודה exit.
• מה אפשר לעשות בתוך הטרמינל?
אז הטרמינל באנדרואיד מתנהל כמו בלינוקס. הנה כמה פקודות בסיסיות:
ls = כדי לצפות בקבצים בנתיב
cd = לעבור לנתיב או לתיקייה אחרת
cp = העתקת קובץ
mv = גזירת קובץ
rm = מחיקת קובץ
rm -r = מחיקת תיקייה
mkdir= יצירת תיקייה
pwd = הדפסת הנתיב הנוכחי
touch = יצירת קובץ
cat = הדפסת תוכן קובץ
ישנם עוד מאות פקודות 'לינוקסיות' אך אלו הכי שימושיות בעבודה עם טרמינל אנדרואיד.
פקודות בטרמינל:
את רוב הפעולות שתוארו לפני כן ניתן לבצע גם דרך הShell הפנימי של במכשיר ואני מביא אותם כאן בקצרה לתועלת אלו שמשתמשים רק באפליקציה:
התקנת אפליקציה: pm install /sdcard/file.apk
התקנה לכרטיס חיצוני: pm install -s /sdcard/yourfile.apk
עדכון אפליקציה: pm install -r /sdcard/file.apk
הסרת אפליקציה: pm uninstall your.package.name
• קבלת רשימה של כל האפליקציות שמותקנות על המכשיר
pm list packages
קיימים מספר פילטרים בפקודה זו על מנת למשל לקבל רשימה רק של אפליקציות מערכת, או רק של אפליקציות מושבתות.
הפילטרים הם:
פילטר f- = מאפשר להציג את רשימת האפליקציות ואת נתיב האחסון שלהם
פילטר d- =מציג רק אפליקציות מושבתות
פילטר e- = מציג רק אפליקציות פועלות
פילטר s- = מציג רק אפליקציות מערכת
פילטר i- = מציג את האפליקציה שדרכה הותקנה האפליקציה (גוגל פליי למשל)
פילטר show-versioncode-- = מציג את הVersion Code של האפליקציות.
ניתן להשתמש בכל הפילטרים ביחד או לחוד.
על מנת לצמצם את הרשימה תוכלו להשתמש בgrep כדי לחפש שם ספציפי או חלק משם החבילה:
pm list packages -s -d --show-versioncode | grep your.package.name
• השבתת אפליקציות
pm disable your.package.name
• הפעלת אפליקציות שהושבתו
pm enable your.package.name
• גיבוי אפליקציות
על מנת לגבות את האפליקציה עליכם לדעת את נתיב ההתקנה שלה. שלחו את הפקודה:
pm path your.package.name
ותקבלו את הנתיב כמו בתמונה הבאה:
במקרה שלי קובץ הAPK של Telegram Beta נמצא בנתיב
data/app/org.telegram.messenger.beta-dFtBS8498cbLUpLKg8kUOQ==/base.apk
ואז אצא ממצב shell אל הטרמינל המקומי ו'אוריד' את הקובץ למחשב ע"י
adb pull data/app/org.telegram.messenger.beta-dFtBS8498cbLUpLKg8kUOQ==/base.apk
• הרצת אפליקציה
על מנת לפתוח אפליקציה שלחו את הפקודה הבאה:
monkey -p your.package.name -c android.intent.category.LAUNCHER 1
במקום your.package.name החליפו לאפליקציה שאותה תרצו להריץ.
חשוב לציין שהפקודה לא פועלת אצל כל האפליקציות.
אם אתם יודעים מה ה-ActivityName של האפליקציה אז הריצו:
am start -n your.package.name/your.package.name.ActivityName
• צילום מסך
screencap /sdcard/screenshot.png
הצילום ישמר באחסון הפנימי בשם screenshot.png
שימו לב שאם אתם מצלמים שוב מסך, שמרו אותו בשם אחר: למשל screenshot2.png וכן הלאה. אחרת הוא יחליף את הקובץ הקיים.
• הסרטת מסך
screenrecord /sdcard/screenrecord.mp4
בסיום ההסרטה לחצו על Ctrl+C כדי לשמור את ההקלטה.
הקובץ ישמר באחסון הפנימי בשם screenrecord.mp4
ישנו אתר שלם המיועד לפקודות בADB. האתר נקרא, כמה מפתיע.. adbshell.com
כמו כן, במדריך הבא תוכלו לצפות בכל הפקודות והצירופים האפשריים בADB.
אז זהו להפעם.. אם אהבתם את המדריך מוזמנים לשתף אותו הלאה.
נמשיך ונעדכן על פקודות נוספות ולבינתיים מוזמנים להיכנס לקבוצת הדיון שלנו ולדון בנושאים הקשורים לאנדרואיד :)