הסבר שימוש ב ADB

הסבר שימוש ב ADB

דוד לב
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.

חזרה לאינדקס


אז זהו להפעם.. אם אהבתם את המדריך מוזמנים לשתף אותו הלאה.

נמשיך ונעדכן על פקודות נוספות ולבינתיים מוזמנים להיכנס לקבוצת הדיון שלנו ולדון בנושאים הקשורים לאנדרואיד :)