Die Android Debug Bridge (kurz: adb ) ist ein Programmierwerkzeug zum Debuggen von Android -Geräten. Der Daemon auf dem Android-Gerät verbindet sich über USB oder TCP mit dem Server auf dem Host-PC , der wiederum über TCP mit dem Client des Endbenutzers kommuniziert. Seit 2007 wird adb von Google als Open-Source-Software unter der Apache-Lizenz bereitgestellt und bietet unter anderem eine Shell und die Möglichkeit zur Datensicherung. Die adb-Software ist für Windows , Linux und macOS verfügbar . Sie wurde von Botnetzen und anderer Schadsoftware missbraucht , weshalb Schutzmaßnahmen wie RSA- Authentifizierung und Geräte -Whitelisting entwickelt wurden .

Merkmale

Android-Geräteüberwachung

Zu den Funktionen von adb gehören das Kopieren von Dateien vom Host-Computer [ 1 ] , die Installation von Apps, das Anzeigen der Logcat-Ausgabe, der Zugriff auf eine Unix-Shell [ 2 ] und das Neustarten im Qualcomm-EDL-Modus [ 3 ] . Beispielsweise können Android- Anwendungenbackup mit dem Befehl in einer Datei gespeichert werden [ 4 ] . Es bietet außerdem Unterstützung für das Java Debug Wire Protocol [ 5 ] .

Es wurden einige grafische Benutzeroberflächen bereitgestellt. Der grafische Android-Gerätemonitor in Android Studio kann verwendet werden, um Informationen von einem Android-Gerät abzurufen. [ 6 ]

Die Methode von Android zur Installation von APK-Dateien auf einem Gerät wurde als Möglichkeit genutzt, inoffizielle Apps auf das Windows-Subsystem für Android [ 7 ] und die Android-Virtual-Machine von Chrome OS [ 8 ] zu laden.

Shizuku ermöglicht es einem Android-Telefon, sich mit seinem eigenen ADB zu verbinden, sobald es mit einem drahtlosen Netzwerk verbunden ist. Die Anwendung ist kostenlos im Google Play Store erhältlich. [ 9 ]

Entwicklungsgeschichte

Das Android Software Development Kit (SDK) wurde erstmals 2007 veröffentlicht. [ 10 ] Seit 2017 ermöglicht Google den separaten Download von adb vom Android SDK. [ 11 ]

2015 veröffentlichte Microsoft einen Android-Emulator, der eine Verbindung zum adb-Client herstellen kann. [ 12 ] 2016 wurde mit Android Studio 2.0 die Performance beim Installieren von Apps und Übertragen von Dateien über adb um das Fünffache verbessert. [ 13 ] Zur einfacheren Nutzung von Android Things wurde 2017 ein Wrapper für manuelle adb-Befehle entwickelt. [ 14 ] 2020 führte Google mit Android 11 inkrementelle adb-Installationen ein. [ 15 ] Ebenfalls 2020 wurde Wi-Fi adb in Android Studio für macOS integriert. [ 16 ] 2021 wurde mit Android 12 der adb backupBefehl eingeschränkt, sodass das Sichern von Nutzerdaten aus Apps optional über eine Manifestkonfiguration pro App aktiviert werden kann. [ 17 ] Dies geschah , nachdem der Befehl in Android 10 zusammen mit anderen Funktionen als veraltet markiert worden war adb restore. [ 18 ] Fuchsia wird abwärtskompatibel mit adb sein. Es wird durch fx und ffx ersetzt. [ 19 ]

Aufstellen

Um das USB-Debugging auf dem Android-Gerät zu aktivieren, muss es im Fenster „Entwicklereinstellungen“ aktiviert werden.
Nachdem das Gerät mit dem Host-Computer verbunden wurde, muss der Benutzer den RSA-Schlüssel-Fingerabdruck des Host-Computers überprüfen.

Host-Computer

Für Windows enthält das Android SDK die Binärdatei adb.exe, die extrahiert und installiert werden kann. [ 20 ] How-To Geek empfiehlt, den Ordner mit den Binärdateien zur Umgebungsvariablen PATH hinzuzufügen. [ 21 ]

Unter Ubuntuandroid-tools-adb kann adb mit dem Paket installiert werden . [ 22 ] Für Debian wird empfohlen, zusätzlich das android-sdk-platform-tools-commonPaket zu installieren adb, welches die udev -Regeln installiert, die es ermöglichen, das Tool ohne Root-Rechte auszuführen . [ 23 ] Für macOS und andere Linux-Distributionen können die Plattform-Tools heruntergeladen und die PATH-Variable in der .bashrc-Datei angepasst werden . [ 24 ]

Android-Gerät

In Android 4.2.2 oder höher ( API-Level 17 ) wird ein Dialog mit einem RSA- Fingerabdruck angezeigt , den der Nutzer bestätigen muss. Dies schützt davor, dass Computer den Debugging-Mechanismus ohne Zustimmung des Gerätenutzers ausnutzen. [ 25 ] Ab Android 4.2 sind die Entwicklereinstellungen standardmäßig ausgeblendet. Durch siebenmaliges Tippen auf die Build-Nummer im Menü „Über das Telefon“ werden sie sichtbar. Anschließend kann die USB-Debugging-Option aktiviert werden. [ 26 ] Einige Android-Hersteller verwenden unterschiedliche Verfahren zur Aktivierung. Huawei beispielsweise verlangt die Eingabe einer PIN, bevor ADB aktiviert werden kann.

Wenn der Touchscreen eines Android-Geräts defekt ist, kann man über USB On-The-Go eine Maus anschließen und das USB-Debugging aktivieren. [ 27 ] [ 28 ]

Architektur

Das ADB-Protokoll kann über USB oder WLAN via TCP übertragen werden . Es verwendet eine Client-Server-Architektur . Dabei kommen zwei verschiedene Protokolle zum Einsatz: eines zwischen Client und Server und eines zwischen Server und Daemon. Der ADB-Daemon ist in C implementiert und befindet sich im Android - Benutzerbereich. Er wird durch das Android-USB-Framework unterstützt UsbDeviceManager. [ 5UsbDebuggingManager ]

Client-Server-Protokoll

Die Kommunikation zwischen Client und Server erfolgt über einen TCP-Socket. Der Server lauscht an einem Port, an den der Client eine Anfrage senden muss. Diese Anfrage enthält ein 4 Byte großes Initialisierungsfeld im ASCII-Format und eine Nutzlast. Die Nutzlast beginnt mit dem Wort „host“, um anzuzeigen, dass sie an den Server gesendet werden soll. Der Server kann dann mit „OKAY“ oder „FAIL“ antworten, um den Status anzugeben, optional ergänzt durch eine Nutzlast und die Länge der Anfrage. [ 5 ]

Server ↔ Daemon-Protokoll

Die vom Server gesendeten Nachrichten bestehen aus einem 24 Byte langen Header mit folgenden Feldern: [ 5 ]

  • Befehl
  • Erstes Argument
  • Zweites Argument
  • Länge der Nutzlast, 0 oder höher
  • CRC-32 der Datennutzlast
  • Magischer Wert, berechnet durch Befehls-XOR0xFFFFFFFF

Sicherheit

Bis einschließlich Android 2.2 war Android anfällig für die RageAgainstTheCage -Schwachstelle . Der ADB- Daemon prüfte beim Entzug von Berechtigungen nicht den Rückgabewert des Systemaufrufs `setuid` . Die Schwachstelle erzeugte so lange Prozesse, bis keine Prozesskennungen mehr verfügbar waren. Stürzte der Daemon ab und startete neu, konnte er keinen neuen Prozess mit den reduzierten Berechtigungen starten und lief weiterhin als Root. Dadurch stellte ADB eine Root-Shell bereit. [ 29 ] Im Jahr 2017 wurde eine Sicherheitslücke bekannt, die ADB ausnutzte, um das Onboard -Modem zu übernehmen . Für den Angriff musste ADB bereits aktiviert und autorisiert sein; es gab jedoch einige Umgehungsmöglichkeiten. [ 30 ]

Verschiedene Malware-Familien wie ADB.Miner, Ares, IPStorm, Fbot und Trinity haben das Internet nach öffentlich zugänglichen ADB-Schnittstellen durchsucht und Malware auf diesen Geräten installiert. [ 31 ] ADB kann auch zur Entfernung von Malware verwendet werden , indem man im abgesicherten Modus startet und den adb uninstallentsprechenden Befehl ausführt. [ 32 ]

Siehe auch

Referenzen

  1. ^ Darcey, Lauren (2012). Android Wireless Application Development . Shane Conder (3. Aufl.). Upper Saddle River, NJ: Addison-Wesley. ISBN 978-0-321-81383-1OCLC  749852462 .​
  2. ^ „Was Sie mit dem Android-Befehl adb machen können“ . Für Dummies . Archiviert vom Original am 15.05.2018 . Abgerufen am 09.09.2021 .
  3. ^ EASTTOM, CHUCK (2021). Ein umfassender Leitfaden zur forensischen Analyse mobiler Geräte . [Sl]: CRC PRESS. S. 72. ISBN 978-0-367-63300-4OCLC  1250310301 .​
  4. ^ Jack Wallen (06.03.2015). „So erstellen Sie ein vollständiges Backup Ihres Android-Geräts ohne Root-Zugriff“ . Archiviert vom Original am 24.01.2016 . Abgerufen am 29.01.2016 .
  5. ^ a b c d Regupathy, Rajaram (2014). Unboxing Android USB: a hands-on approach with real World examples . Berkeley, CA. ISBN 978-1-4302-6209-1OCLC  880673864 .​{{cite book}}CS1 Wartung: Standort des fehlenden Herausgebers ( Link )
  6. ^ Morgillo, Ivan; Viola, Stefano (2016). Learning embedded Android N programming: create the perfectly customized system by unleashing the power of Android OS on your embedded device . Birmingham, UK. S. 89. ISBN 9781785283284OCLC 1020708322. Archiviert vom Original am 26.09.2021 . Abgerufen am  26.09.2021 .{{cite book}}CS1 Wartung: Standort des fehlenden Herausgebers ( Link )
  7. ^ „So installieren Sie Android-Apps per Sideloading unter Windows 11“ . 23. Januar 2022.
  8. ^ „So installieren Sie Apps per Sideloading auf einem Chromebook“ . 5. März 2023.
  9. ^ „Benutzerhandbuch | Shizuku“ . shizuku.rikka.app . Abgerufen am 19.07.2024 .
  10. ^ „Google veröffentlicht Android SDK“ . Macworld . Archiviert vom Original am 10.09.2021 . Abgerufen am 10.09.2021 .
  11. ^ „Google stellt ADB, Fastboot und andere Plattform-Tools ohne vollständigen SDK- oder Android Studio-Download zur Verfügung . “ Android Police . 05.01.2017. Archiviert vom Original am 10.04.2021 . Abgerufen am 09.09.2021 .
  12. ^ Vasile, Cosmin (29. Juli 2015). „Microsoft veröffentlicht Android-Emulator, der schneller sein soll als der von Google“ . Softpedia . Archiviert vom Original am 10. September 2021. Abgerufen am 10. September 2021 .
  13. ^ „Android Studio 2.0 – Beta“ . Android Developers Blog . Archiviert vom Original am 10.09.2021 . Abgerufen am 10.09.2021 .
  14. ^ „Android Things Developer Preview 6“ . Android Developers Blog . Archiviert vom Original am 10.09.2021 . Abgerufen am 10.09.2021 .
  15. ^ „Aufdrehen bis zum Anschlag: Android 11 für Entwickler“ . Android Developers Blog . Archiviert vom Original am 17.09.2021 . Abgerufen am 10.09.2021 .
  16. ^ „Ankündigung von Android Studio Arctic Fox (2020.3.1) & Android Gradle-Plugin 7.0“ . Android Developers Blog . Archiviert vom Original am 12.09.2021 . Abgerufen am 10.09.2021 .
  17. ^ „Verhaltensänderungen: Apps für Android 12 | Android 12 Beta“ . Android Developers . Archiviert vom Original am 28.09.2021 . Abgerufen am 28.09.2021 .
  18. ^ „Google erwägt die Entfernung der Android ADB-Sicherung und -Wiederherstellung“ .
  19. ^ Bradshaw, Kyle (26.08.2022). „Google möchte Fuchsia-Geräte mit dem ADB-Tool von Android verwaltbar machen“ . 9to5Google . Abgerufen am 29.08.2022 .
  20. ^ Harwani, BM (2013). PhoneGap Build: Entwicklung plattformübergreifender mobiler Anwendungen in der Cloud . Boca Raton. S. 38. ISBN 978-1-4665-8975-9OCLC  862745697 .​{{cite book}}CS1 Wartung: Standort des fehlenden Herausgebers ( Link )
  21. ^ Hoffman, Chris; Fedewa, Joe (4. September 2021). „Anleitung zur Installation und Verwendung von ADB, dem Android Debug Bridge Utility“ . How-To Geek . Archiviert vom Original am 18.09.2021 . Abgerufen am 09.09.2021 .
  22. ^ Smyth, Neil (2020). „7“. Android Studio 4.0 Development Essentials – Java Edition: Developing Android Apps Using Android Studio 4.0, Java and Android Jetpack . Cary. ISBN 978-1-951442-21-7OCLC  1190906409 .​{{cite book}}CS1 Wartung: Standort des fehlenden Herausgebers ( Link )
  23. ^ „Debian – Details zum Paket adb in Bullseye“ . packages.debian.org . Archiviert vom Original am 08.09.2021 . Abgerufen am 08.09.2021 .
  24. ^ „Anleitung zur Installation der Android Debug Bridge (ADB) und von Fastboot“ . Lifewire . Archiviert vom Original am 30.01.2022 . Abgerufen am 18.01.2022 .
  25. ^ „Apps auf einem Hardwaregerät ausführen“ . Android Developers . Archiviert vom Original am 08.09.2021 . Abgerufen am 08.09.2021 .
  26. ^ Wallen, Jack. „So aktivieren Sie die Entwickleroptionen in Android 4.2“ . TechRepublic . Archiviert vom Original am 09.09.2021 . Abgerufen am 09.09.2021 .
  27. ^ Ogubuike, Udochi (09.08.2019). „So aktivieren Sie den USB-Debugging-Modus unter Android“ . The Punch . Archiviert vom Original am 17.09.2019 . Abgerufen am 09.09.2021 .
  28. ^ Aranzulla, Salvatore . „Kommen Sie mit dem USB-Debugging“ . Salvatore Aranzulla (auf Italienisch). Archiviert vom Original am 09.09.2021 . Abgerufen am 09.09.2021 .
  29. ^ Drake, Joshua J. (2014). Android Hacker's Handbook . Zach Lanier, Collin Mulliner, Pau Oliva, Stephen A. Ridley, Georg Wicherski. Indianapolis, IN: Wiley. S. 75. ISBN 978-1-118-60861-6OCLC  875820167 .​
  30. ^ Mendelsohn, Tom (09.01.2017). „Google behebt schwerwiegende Android-Sicherheitslücke, die Geräte Spionage aussetzte“ . Ars Technica . Archiviert vom Original am 10.09.2021 . Abgerufen am 10.09.2021 .
  31. ^ Cimpanu, Catalin. „Android-Geräte in DDoS-Botnetz verwickelt“ . ZDNet . Archiviert vom Original am 10.09.2021 . Abgerufen am 10.09.2021 .
  32. ^ Schuman, Evan. „Diese Vultur-App hebt Schadsoftware auf ein neues Niveau“ . Computerworld . Archiviert vom Original am 10.09.2021 . Abgerufen am 10.09.2021 .