Android Debugg Bridge

Android Debugg Bridge
Android robot head.svg
Android Debug Bridge in GNOME terminal.png
Starten des ADB -Servers in Gnom -Terminalwas dann Aufzählungen die Geräte. Danach a Hülse wird auf dem Gerät geöffnet, das das Debuggen für die Ausführung des Geräts eröffnet hat dein Name Befehl.
Originalautor (en) Google
Stabile Version
31.0.3
Repository android.googlesource.com
Geschrieben in C ++
Betriebssystem Windows, Linux, macOS
Inbegriffen Android SDK
Typ Softwareentwicklungstool
Lizenz Apache -Lizenz 2.0
Webseite Entwickler.Android.com/Studio/Befehlszeile/adb

Das Android Debugg Bridge (häufig abgekürzt als adb) ist ein Programmierwerkzeug verwendet für die Debuggen von Android-basierte Geräte. Das Dämon Auf dem Android -Gerät stellt eine Verbindung zum Server auf dem Host -PC über eine Verbindung her USB oder TCP, die eine Verbindung zu dem Client herstellt, der vom Endbenutzer über TCP verwendet wird. Zur Verfügung gestellt als Quelloffene Software unter dem Apache -Lizenz durch Google Seit 2007 umfassen Funktionen eine Shell und die Möglichkeit, Backups zu erstellen. Die ADB -Software ist kompatibel mit Fenster, Linux und Mac OS. Es wurde von missbraucht von missbraucht Botnets und andere schädliche Software, für die Minderungen entwickelt wurden, wie z. RSA Authentifizierung und Gerät Whitelisting.

Merkmale

Android -Gerätemonitor

Zu den Funktionen von ADB gehört das Kopieren von Dateien vom Host -Computer,[1] Apps installieren, logCat -Ausgabe anzeigen, A abrufen a Unix Shell, [2] und neu starten in Qualcomm edl -Modus.[3] Zum Beispiel Android Anwendungen kann durch den Befehl gespeichert werden Backup zu einer Datei.[4] Es beinhaltet auch Unterstützung für die Java -Debug -Drahtprotokoll.[5]

Etwas Grafische Schnittstellen wurden zur Verfügung gestellt. Der grafische Android -Gerät überwacht in Android Studio Kann zum Abrufen von Informationen von einem Android -Gerät verwendet werden.[6]

Entwicklungsgeschichte

Das Android Software Development Kit (SDK) wurde erstmals 2007 veröffentlicht.[7] Seit 2017 ermöglichte Google es möglich, ADB separat vom Android SDK herunterzuladen.[8]

Im Jahr 2015 veröffentlichte Microsoft einen Android -Emulator, der eine Verbindung zum ADB -Client herstellen kann.[9] 2016 für Android Studio 2.0 Eine 5 -fache Leistungsverbesserung wurde für die Installation von Apps und das Drücken von Dateien über ADB durchgeführt.[10] Für einfacher Verwendung von Android -DingeEs wurde 2017 eine Wrapper um manuelle ADB -Befehle hergestellt.[11] Für Android 11 im Jahr 2020 fügte Google inkrementelle ADB -Installationen hinzu.[12] Im Jahr 2020 wurde Wi-Fi ADB für macOS in Android Studio integriert.[13] Im Jahr 2021 für Android 12, das ADB -Backup Der Befehl war begrenzt, so dass die Sicherung von Benutzerdaten von Apps mit einer pro-App-Manifestkonfiguration abgeleitet wird.[14]

Konfiguration

Host-Computer

Für Windows enthält das Android SDK die adb.exe -Binärdatei, die extrahiert und installiert werden kann.[15] How-to Geek empfiehlt das Hinzufügen des Ordners, der die Binärdateien zu dem enthält WEG Umgebungsvariable.[16]

An Ubuntu, ADB kann mit dem installiert werden Android-Tools-Adb Paket.[17] Zum DebianEs wurde empfohlen, auch die zu installieren Android-SDK-Plattform-Tools-Common Paket neben dem adb Paket, das die installiert Udev Regeln, die es ermöglichen, das Tool ohne auszuführen Wurzelberechtigungen.[18] Für macOS und andere Linux -Verteilungen können die Plattform -Tools heruntergeladen und die Pfadvariable in geändert werden bashrc.[19]

Android-Gerät

Im Android 4.2.2 oder später (API Level 17) Ein Dialog wird mit einem RSA angezeigt Fingerabdruck dass der Benutzer akzeptieren muss. Dies schützt vor Computern, die den Debugging -Mechanismus ohne Zustimmung des Gerätebenutzers ausnutzen.[20] Ab Android 4.2 sind die Entwicklereinstellungen standardmäßig versteckt. Wenn Sie sieben Mal auf die Build -Nummer im About -Menü gedrückt werden, ist sie für den Benutzer sichtbar. Danach kann die USB -Debugging -Option aktiviert werden.[21] Einige Android -Anbieter haben unterschiedliche Verfahren, um dies zu aktivieren. Beispielsweise erfordert Huawei einen Pincode, bevor ADB aktiviert werden kann.[22]

Wenn die Berührungssensitiver Bildschirm eines Android -Geräts ist gebrochen. Es kann möglich sein, eine Maus mit dem Gerät mit dem Gerät zu verbinden USB on the-Go und aktivieren Sie USB -Debugging.[23][22]

Die Architektur

Das ADB -Protokoll kann über USB oder vorbei transportiert werden W-lan durch TCP. Es verwendet a Client-Server-Architektur. Es werden zwei verschiedene Protokolle verwendet. Der erste ist zwischen dem Client und dem Server und der zweite zwischen dem Server und dem Daemon. Der ADB -Daemon wird in implementiert C und befindet sich im Android -Benutzerraum. Der Daemon wird durch das Android USB -Framework erleichtert, USBDevicemanager und USBDebuggingManager.[5]

Client ↔ Server -Protokoll

Der Kommunikationsmodus zwischen Client und Server ist ein TCP -Socket. Der Server hört auf einen Port zu, an den der Client eine Anfrage senden muss. Die Anforderung enthält ein 4-Byte-Anfangsfeld in ASCII und eine Nutzlast. Die Nutzlast beginnt mit dem Word -Host, um anzuzeigen, dass er an den Server gesendet werden sollte. Der Server kann dann mit okay antworten oder den Status in Kombination mit einer optionalen Nutzlast und Länge nicht angeben.[5]

Server ↔ Daemon -Protokoll

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

  • Befehl
  • Erstes Argument
  • Zweites Argument
  • Länge der Nutzlast, 0 oder höher
  • CRC32 der Datennutzlast
  • Zauberwert, berechnet über den Befehl xor 0xffffffff

Sicherheit

Bis zu Android 2.2, Android war anfällig für die RAGEAGAINSTTHECAGE Ausbeuten. Die ADB Dämon Ich habe nicht nach dem Rückgabewert der Rückgabe überprüft setUid Systemanruf Wenn Privilegien fallen lassen. Der Exploit Gabeln Prozesse, bis es aufgrund der Erschöpfung von fehlschlägt Prozessidentifikatoren. Wenn der Daemon abstürzt und neu startet, kann er keinen neuen Vorgang mit fallengelassenen Privilegien starten und läuft weiter als Root. Dann lieferte ADB eine Wurzelschale.[24] Im Jahr 2017 wurde eine Sicherheitsanfälligkeit bekannt gegeben, die ADB ausgenutzt hat, um das Onboard zu übernehmen Modem. Der Angriff erforderte, dass ADB bereits aktiviert und autorisiert sein muss, obwohl einige Problemumgehungen verfügbar waren.[25]

Verschiedene Malwarefamilien wie ADB.Miner, ARES, IPSTORM, FBOT und Trinity haben das Internet für die öffentliche Verfügbarkeit der ADB -Schnittstelle gescannt und Malware auf diesen Geräten installiert.[26] ADB kann auch zum Entfernen verwendet werden Malwaredurch Booten in Sicherheitsmodus und leiten die ADB Deinstallation Befehl.[27]

Siehe auch

Verweise

  1. ^ Darcey, Lauren (2012). Android Wireless Application Development. Shane Conder (3. Aufl.). Upper Saddle River, NJ: Addison-Wesley. ISBN 978-0-321-81383-1. OCLC 749852462. Archiviert vom Original am 2021-09-26. Abgerufen 2021-09-26.
  2. ^ "Dinge, die Sie mit Androids ADB -Befehl machen können". Für Dummies. Archiviert vom Original am 2018-05-15. Abgerufen 2021-09-09.
  3. ^ Easttom, Chuck (2021). Eine eingehende Anleitung zur Forensik für mobile Geräte. [S.L.]: CRC Press. p. 72. ISBN 978-0-367-63300-4. OCLC 1250310301. Archiviert vom Original am 2021-09-26. Abgerufen 2021-09-26.
  4. ^ Jack Wallen (2015-03-06). "So erstellen Sie eine vollständige Sicherung Ihres Android -Geräts ohne Root". Archiviert vom Original am 2016-01-24. Abgerufen 2016-01-29.
  5. ^ a b c d Regupathy, Rajaram (2014). Unboxing Android USB: Ein praktischer Ansatz mit Beispielen in der realen Welt. Berkeley, CA. ISBN 978-1-4302-6209-1. OCLC 880673864. Archiviert vom Original am 2021-09-26. Abgerufen 2021-09-26.
  6. ^ Morgillo, Ivan; Viola, Stefano (2016). Lernen eingebettete Android N -Programmierung: Erstellen Sie das perfekt angepasste System, indem Sie die Leistung des Android -Betriebssystems auf Ihrem eingebetteten Gerät freigeben. Birmingham, Großbritannien. p. 89. ISBN 9781785283284. OCLC 1020708322. Archiviert vom Original am 2021-09-26. Abgerufen 2021-09-26.
  7. ^ "Google veröffentlicht Android SDK". Macworld. Archiviert vom Original am 2021-09-10. Abgerufen 2021-09-10.
  8. ^ "Google stellt ADB, Fastboot und andere Plattform -Tools ohne vollständige SDK- oder Android Studio -Download zur Verfügung.". Android Police. 2017-01-05. Archiviert vom Original am 2021-04-10. Abgerufen 2021-09-09.
  9. ^ Vasile, Cosmin. "Microsoft veröffentlicht Android Emulator und es soll schneller sein als Google's". Softpedia. Archiviert vom Original am 2021-09-10. Abgerufen 2021-09-10.
  10. ^ "Android Studio 2.0 - Beta". Android Developers Blog. Archiviert vom Original am 2021-09-10. Abgerufen 2021-09-10.
  11. ^ "Android Things Developer Preview 6". Android Developers Blog. Archiviert vom Original am 2021-09-10. Abgerufen 2021-09-10.
  12. ^ "Es um 11: Android 11 für Entwickler" drehen ". Android Developers Blog. Archiviert vom Original am 2021-09-17. Abgerufen 2021-09-10.
  13. ^ "Ankündigung von Android Studio Arctic Fox (2020.3.1) & Android Gradle Plugin 7.0". Android Developers Blog. Archiviert vom Original am 2021-09-12. Abgerufen 2021-09-10.
  14. ^ "Verhaltensänderungen: Apps zu Android 12 | Android 12 Beta". Android -Entwickler. Archiviert vom Original am 2021-09-28. Abgerufen 2021-09-28.
  15. ^ Harwani, B. M. (2013). PhoneGap Build: Entwicklung mobiler Anwendungen der Cross -Plattform in der Cloud. Boca Raton. p. 38. ISBN 978-1-4665-8975-9. OCLC 862745697. Archiviert vom Original am 2022-03-07. Abgerufen 2022-01-29.
  16. ^ Hoffman, Chris; Feedwa, Joe (4. September 2021). "So installieren und verwenden Sie ADB, das Android Debugg Bridge Utility". How-to Geek. Archiviert vom Original am 2021-09-18. Abgerufen 2021-09-09.
  17. ^ Smyth, Neil (2020). "7". Android Studio 4. 0 Development Essentials - Java Edition: Entwickeln von Android -Apps mit Android Studio 4. 0, Java und Android Jetpack. Tragen. ISBN 978-1-951442-21-7. OCLC 1190906409. Archiviert vom Original am 2021-09-26. Abgerufen 2021-09-26.
  18. ^ "Debian - Details von Paket ADB in Bullseye". pakete.debian.org. Archiviert vom Original am 2021-09-08. Abgerufen 2021-09-08.
  19. ^ "So installieren Sie Android Debug Bridge (ADB) und Fastboot". Lebenswire. Archiviert vom Original am 2022-01-30. Abgerufen 2022-01-18.
  20. ^ "Apps auf einem Hardware -Gerät ausführen". Android -Entwickler. Archiviert vom Original am 2021-09-08. Abgerufen 2021-09-08.
  21. ^ Wallen, Jack. "So aktivieren Sie Entwickleroptionen in Android 4.2". TechRepublic. Archiviert vom Original am 2021-09-09. Abgerufen 2021-09-09.
  22. ^ a b Aranzulla, Salvatore. "Come Attivare Debugg USB". Salvatore Aranzulla (auf Italienisch). Archiviert vom Original am 2021-09-09. Abgerufen 2021-09-09.
  23. ^ Ogubuike, Udochi (2019-08-09). "So aktivieren Sie den USB -Debugging -Modus auf Android". Der Schlag. Archiviert vom Original am 2019-09-17. Abgerufen 2021-09-09.
  24. ^ Drake, Joshua J. (2014). Android Hacker's Handbuch. Zach Lanier, Collin Mulliner, Pau Oliva, Stephen A. Ridley, Georg Wicherski. Indianapolis, in: Wiley. p. 75. ISBN 978-1-118-60861-6. OCLC 875820167. Archiviert vom Original am 2021-09-26. Abgerufen 2021-09-26.
  25. ^ Mendelsohn, Tom (2017-01-09). "Google steckt schwere Android -Sicherheitsanfälligkeit, die Geräte für das Spionieren ausgesetzt haben". ARS Technica. Archiviert vom Original am 2021-09-10. Abgerufen 2021-09-10.
  26. ^ Cimpanu, Catalin. "Android -Geräte in DDOS -Botnetz eingebunden". ZDNET. Archiviert vom Original am 2021-09-10. Abgerufen 2021-09-10.
  27. ^ Schuman, Evan. "Diese VURTUR -App nimmt böswillig auf die nächste Stufe". Computerwelt. Archiviert vom Original am 2021-09-10. Abgerufen 2021-09-10.

Externe Links