ADB-Commands

Was ist die ADB?

Die ADB (Android Debug Bridge) ist ein Befehlszeilentool, das Teil des Android-Entwicklungskits (SDK) ist. Es ermöglicht eine Kommunikation zwischen einem Computer und einem Android-Gerät über beispielsweise einer USB-Verbindung.

Die durchführbaren Commands sind stark von den auf dem Gerät vorliegenden Berechtigungen abhängig. Tiefgreifende Aktionen mit der ADB können nur durchgeführt werden, wenn Root-Rechte vorliegen. Anwendungsbeispiele sind:

  • Installation von Apps auf einem Android-Gerät
  • Netzwerkmonitoring
  • Kopieren von Dateien zwischen dem Computer und dem Android-Gerät
  • Aufzeichnen von Systemprotokollen (Logs) vom Android-Gerät
  • Debuggen von Apps auf einem angeschlossenen Android-Gerät
  • Forensische Untersuchungen eines Android-Geräts oder einer App
  • Erstellen eines Speicherabbilds (physikalisch oder logisch)
  • Sicherung von Log-Dateien
  • Änderungen der Dateirechte

Im Folgenden werden gängige ADB-Commands aufgeführt. Diese wurden von mir an einem gerooteten Testgerät geprüft. Durch die Kombination der ADB mit den gängigen Kommandozeilenbefehle unter Linux kann eine enorme Vielfalt von Befehlen durchgeführt werden. Daher werden hier nur Befehle aufgeführt, die meiner Meinung nach für das forensische Arbeiten nötig sind.

Starten/Beenden des ADB-Servers

BeschreibungSyntaxBeispiel
Anzeigen möglicher ADB-Commandsadb help
Starten des ADB-Serversadb start-server
Beenden des ADB-Serversadb kill-server

USB-Modus und Infos zum Gerät

BeschreibungSyntaxBeispiel
Starten des USB-Modusadb usb
Zeigt alle Geräte mit Infos zum Produkt und Modeladb devices -l

ADB mit Shell

BeschreibungSyntaxBeispiel
Shell startenadb shell
Gerät aus mehreren auswählen und Shell erstellenadb -s <ID> shelladb -s 9889db455449334550 shell
Command auf einem Gerät ausführenadb -s <ID> shell <COMMAND>adb -s 9889db455449334550 shell ls

Geräteneustarts

BeschreibungSyntaxBeispiel
Reboot des Gerätsadb -s <ID> rebootadb -s 9889db455449334550 reboot
Reboot in den Recovery-Modusadb -s <ID> reboot recoveryadb -s 9889db455449334550 reboot recovery

Logcat und Bug-Report

BeschreibungSyntaxBeispiel
Anzeigen der Android-Versionadb shell getprop ro.build.version.release
Alle Logs mit Logcat anzeigenadb logcat
Sichern der Logcat-Einträge auf einem PCadb logcat -d > <DATEINAME>adb logcat -d > logcatSicherung.txt
Erstellen eines Bug-Reports in dem aktuellen Dateipfad (als .zip)adb bugreport

Kopiervorgänge zwischen PC und Android-Gerät

BeschreibungSyntaxBeispiel
Daten von Android-Device auf PC kopierenadb pull <SOURCE> <DESTINATION>adb pull /sdcard/screenshot1.pdf C:\Users\DeinUsername\Pictures\
Daten von PC auf Android-Device kopierenadb push <SOURCE> <DESTINATION>adb push C:\Users\DeinUsername\Pictures\ /sdcard/screenshot1.pdf

Aktionen mit APKs

BeschreibungSyntaxBeispiel
Installation einer APKadb -s <ID> install <…/APK.apk>adb -s 9889db455449334550 install .\app-debug-androidTest.apk
Deinstallation einer Appadb -s <ID> uninstall <PACKAGE>adb -s 9889db455449334550 uninstall mobile.forensic.errorcode404
Deinstallation über Package-Manageradb shell pm uninstall <PACKAGE>adb shell pm uninstall mobile.forensic.errorcode404
Dateien in Abhängigkeit eines Package löschenadb shell pm clear <PACKAGE>adb shell pm clear mobile.forensic.errorcode404
Update einer APKadb install -r <…/APK.apk>adb shell install -r .\app-debug-androidTest.apk

Verschiedene Aktionen auf dem Gerät

BeschreibungSyntaxBeispiel
Klick Home-Buttonadb shell am start -W -c android.intent.category.HOME -a android.intent.action.MAIN
Aktivitätsmanager öffnenadb shell am start -a android.intent.action.VIEW
Telefonanruf startenadb shell am start -a android.intent.action.CALL -d tel:<NUMMER>adb shell am start -a android.intent.action.CALL -d tel:+4912345678910111
SMS-öffnen und eine Nachricht schreibenadb shell am start -a android.intent.action.SENDTO -d sms:<NUMMER>    – -es  sms_body „<TEXT> – -ez exit_on_sent false“adb shell am start -a android.intent.action.SENDTO -d sms:+4912345678910111    – -es  sms_body „Test – -ez exit_on_sent false“
Texteingabenadb shell input text <‘TEXT‘>adb shell input text ‘Hallo\ das\ ist\ ein\ Test‘
Erstellen von Screenshotsadb shell screencap -p <PFAD/DATEINAME>adb shell screencap -p /sdcard/test.png
Screenshot sichernadb pull /sdcard/test.png

Bildschirmgröße

BeschreibungSyntaxBeispiel
Bildschirmgröße ändernadb shell wm size <X*Y>adb shell wm size 2048×1536
Bildschirmgröße zurücksetzenadb shell wm size reset

Nutzung verschiedener Geräte-Tools

BeschreibungSyntaxBeispiel
Auflistung aller Geräte-Featuresadb shell pm list features
Netstat-Ausgabeadb shell netstat
Netstat-Ausgabe mit den wichtigsten Optionenadb shell netstat -tulpen
Suche auf dem Gerät mit „find“ (unter Windows)adb shell find -name <NAME> 2>$nulladb shell find -name Download 2>$null
Aktuelle Prozesse anzeigenadb shell ps
Dumpsys-Ausgabeadb shell dumpsys
Sicherung der dumpsys-Ausgabeadb shell dumpsys > <DATEINAME.txt>adb shell dumpsys > dumpsys.txt
Auflistung aller Dateinamenadb shell ls -R > <DATEINAME>adb shell ls -R > ListeAllerDateinamen.txt

Zentrale Tastenevents

BeschreibungSyntax
KEYCODE_SOFT_LEFTadb shell input keyevent 1
KEYCODE_SOFT_RIGHTadb shell input keyevent 2
KEYCODE_HOMEadb shell input keyevent 3
KEYCODE_BACKadb shell input keyevent 4
KEYCODE_CALLadb shell input keyevent 5
KEYCODE_ENDCALLadb shell input keyevent 6
KEYCODE_0adb shell input keyevent 7
KEYCODE_1adb shell input keyevent 8
KEYCODE_2adb shell input keyevent 9
KEYCODE_3adb shell input keyevent 10
KEYCODE_4adb shell input keyevent 11
KEYCODE_5adb shell input keyevent 12
KEYCODE_6adb shell input keyevent 13
KEYCODE_7adb shell input keyevent 14
KEYCODE_8adb shell input keyevent 15
KEYCODE_9adb shell input keyevent 16
KEYCODE_STARadb shell input keyevent 17
KEYCODE_POUNDadb shell input keyevent 18
KEYCODE_DPAD_UPadb shell input keyevent 19
KEYCODE_DPAD_DOWNadb shell input keyevent 20
KEYCODE_DPAD_LEFTadb shell input keyevent 21
KEYCODE_DPAD_RIGHTadb shell input keyevent 22
KEYCODE_DPAD_CENTERadb shell input keyevent 23
KEYCODE_VOLUME_UPadb shell input keyevent 24
KEYCODE_VOLUME_DOWNadb shell input keyevent 25
KEYCODE_POWERadb shell input keyevent 26
KEYCODE_CAMERAadb shell input keyevent 27
KEYCODE_CLEARadb shell input keyevent 28
KEYCODE_Aadb shell input keyevent 29
KEYCODE_Badb shell input keyevent 30
KEYCODE_Cadb shell input keyevent 31
KEYCODE_Dadb shell input keyevent 32
KEYCODE_Eadb shell input keyevent 33
KEYCODE_Fadb shell input keyevent 34
KEYCODE_Gadb shell input keyevent 35
KEYCODE_Hadb shell input keyevent 36
KEYCODE_Iadb shell input keyevent 37
KEYCODE_Jadb shell input keyevent 38
KEYCODE_Kadb shell input keyevent 39
KEYCODE_Ladb shell input keyevent 40
KEYCODE_Madb shell input keyevent 41
KEYCODE_Nadb shell input keyevent 42
KEYCODE_Oadb shell input keyevent 43
KEYCODE_Padb shell input keyevent 44
KEYCODE_Qadb shell input keyevent 45
KEYCODE_Radb shell input keyevent 46
KEYCODE_Sadb shell input keyevent 47
KEYCODE_Tadb shell input keyevent 48
KEYCODE_Uadb shell input keyevent 49
KEYCODE_Vadb shell input keyevent 50
KEYCODE_Wadb shell input keyevent 51
KEYCODE_Xadb shell input keyevent 52
KEYCODE_Yadb shell input keyevent 53
KEYCODE_Zadb shell input keyevent 54
KEYCODE_COMMAadb shell input keyevent 55
KEYCODE_PERIODadb shell input keyevent 56
KEYCODE_ALT_LEFTadb shell input keyevent 57
KEYCODE_ALT_RIGHTadb shell input keyevent 58
KEYCODE_SHIFT_LEFTadb shell input keyevent 59
KEYCODE_SHIFT_RIGHTadb shell input keyevent 60
KEYCODE_TABadb shell input keyevent 61
KEYCODE_SPACEadb shell input keyevent 62
KEYCODE_SYMadb shell input keyevent 63
KEYCODE_EXPLORERadb shell input keyevent 64
KEYCODE_ENVELOPEadb shell input keyevent 65
KEYCODE_ENTERadb shell input keyevent 66
KEYCODE_DELadb shell input keyevent 67
KEYCODE_GRAVEadb shell input keyevent 68
KEYCODE_MINUSadb shell input keyevent 69
KEYCODE_EQUALSadb shell input keyevent 70
KEYCODE_LEFT_BRACKETadb shell input keyevent 71
KEYCODE_RIGHT_BRACKETadb shell input keyevent 72
KEYCODE_BACKSLASHadb shell input keyevent 73
KEYCODE_SEMICOLONadb shell input keyevent 74
KEYCODE_APOSTROPHEadb shell input keyevent 75
KEYCODE_SLASHadb shell input keyevent 76
KEYCODE_ATadb shell input keyevent 77
KEYCODE_NUMadb shell input keyevent 78
KEYCODE_HEADSETHOOKadb shell input keyevent 79
KEYCODE_FOCUSadb shell input keyevent 80
KEYCODE_PLUSadb shell input keyevent 81
KEYCODE_MENUadb shell input keyevent 82
KEYCODE_NOTIFICATIONadb shell input keyevent 83
KEYCODE_SEARCHadb shell input keyevent 84
KEYCODE_MEDIA_PLAY_PAUSEadb shell input keyevent 85
KEYCODE_MEDIA_STOPadb shell input keyevent 86
KEYCODE_MEDIA_NEXTadb shell input keyevent 87
KEYCODE_MEDIA_PREVIOUSadb shell input keyevent 88
KEYCODE_MEDIA_REWINDadb shell input keyevent 89
KEYCODE_MEDIA_FAST_FORWARDadb shell input keyevent 90
KEYCODE_MUTEadb shell input keyevent 91
KEYCODE_KEYCODE_PAGE_UPadb shell input keyevent 92
KEYCODE_KEYCODE_PAGE_DOWNadb shell input keyevent 93
KEYCODE_KEYCODE_PICTSYMBOLSadb shell input keyevent 94
KEYCODE_SWITCH_CHARSETadb shell input keyevent 95
KEYCODE_BUTTON_Aadb shell input keyevent 96
KEYCODE_BUTTON_Badb shell input keyevent 97
KEYCODE_BUTTON_Cadb shell input keyevent 98
KEYCODE_BUTTON_Xadb shell input keyevent 99
KEYCODE_BUTTON_Yadb shell input keyevent 100
KEYCODE_BUTTON_Zadb shell input keyevent 101
KEYCODE_BUTTON_L1adb shell input keyevent 102
KEYCODE_BUTTON_R1adb shell input keyevent 103
KEYCODE_BUTTON_L2adb shell input keyevent 104
KEYCODE_BUTTON_R2adb shell input keyevent 105

Sonstige Tastenevents

BeschreibungSyntax
KEYCODE_MOVE_HOMEadb shell input keyevent 122
KEYCODE_MOVE_ENDadb shell input keyevent 123
KEYCODE_CONTACTSadb shell input keyevent 207
KEYCODE_BRIGHTNESS_DOWNadb shell input keyevent 220
KEYCODE_BRIGHTNESS_UPadb shell input keyevent 221
KEYCODE_SLEEPadb shell input keyevent 223
KEYCODE_CUTadb shell input keyevent 277
KEYCODE_COPYadb shell input keyevent 278
KEYCODE_PASTEadb shell input keyevent 279

Weitere Tastenevents könne der Dokumentation hier entnommen werden.