Android Debug Bridge – Die Hintertür zu Android

Der Schlüssel zum Android-System ist die Android Debug Bridge. Diese Schnittstelle ist nicht nur für Bastler zum Aufspielen von Custom-ROMs interessant, sondern kann auch zu Backups und Rettungsaktionen dienen.

Für Android-Entwickler und zur Diagnostik hat Google die „ Android Debug Bridge “ geschaffen, kurz ADB. Sie baut per USB-Schnittstelle eine Verbindung zum Android-Gerät auf und wird für systemnahe Arbeiten benötigt: Sie steuert Geräte oder Android-Emulatoren von außen, fragt Systeminformationen ab, erlaubt den Dateitransfer, installiert Software, öffnet eine Kommandozeile und schaltet bei vielen Smartphones Bootloader sowie Rootzugang frei. Wie immer ist bei Tools dieser Art eine große Portion Sorgfalt und systematisches Vorgehen gefragt. Denn grobe Fehler bei Aktionen, die das ROM oder den Bootloader ändern, könnten ein Smartphone im Handumdrehen in einen teuren Briefbeschwerer verwandeln. Aber keine Sorge: Die ADB ist nicht nur für Android-Experten oder experimentierfreudige Hasardeure gemacht. Es gibt etliche Eigenschaften der Android Debug Bridge, welche auch ohne Risiko nahezu jedem Smartphone und Tablet mit jeder Android-Version nützliche Zusatzfunktionen entlocken.

Arbeitsteilung

Die Android Debug Bridge ist nach dem Client-Server-Prinzip aufgebaut und stellt eine Kommandozeile bereit, die auf dem angeschlossenen Gerät die eingegebenen Befehle ausführt. Das sieht nach dem typischen Aufbau einer Netzwerkanwendung oder einer Remote Shell aus, folgt aber einem anderen Funktionsprinzip: Client und Server laufen auf demselben PC, an den das Android-Gerät angeschlossen ist. Unter Android läuft dagegen der Hintergrundprozess „Android Debug Bridge Dämon“ (ADBD), mit dem der Server Kontakt aufnimmt und dann die Befehle des Clients weiterleitet. Für Anwender wirkt die ADB allerdings wie eine gewöhnliche UNIX-Kommandozeile wie beispielsweise SSH für den Netzwerkzugriff.
Client und Server sind in einem Programmpaket vereint und brauchen nicht separat installiert zu werden. Einst war die Android Debug Bridge Bestandteil des kompletten Android-SDK, der offiziellen Entwicklungstools von Google für Android-Apps. Die Komplettinstallation ist erfreulicherweise aber nicht mehr nötig. Für Windows gibt es die ADB inzwischen auch einzeln; sie macht damit eine viel kompaktere

Installation möglich. Die neueste, offizielle Version der ADB liegt für Windows als Zipdatei zum Download bereit und enthält das Unterverzeichnis „platform-tools“, das Sie unter Windows an eine beliebige Stelle verschieben. Das ausführbare Programm „adb.exe“ entspricht der Android Debug Bridge.

Verbindung herstellen

Unter Windows ist es mit der Installation der Debug Bridge oft nicht getan, denn Windows wird per USB angeschlossene Android-Geräte zunächst nicht erkennen. In Windows 10 gibt es mit der Erkennung zwar seltener Probleme, bei Windows 8.1 oder gar Windows 7 sind jedoch Nacharbeiten fällig, bevor die Android Debug Bridge funktioniert: Diese älteren Systeme verlangen noch die Installation des universellen USB-Treibers von Google, der praktischerweise fertig abgepackt als installierbare EXE-Dateiüber den Link „Download Windows Installer“ vorliegt. Der Treiber wird zurzeit vom Entwicklerteam des „Clockwork Mod“ gepflegt, einem alternativen Recovery-ROM. Nach der Installation unter Windows 7 beziehungsweise 8.1 ist ein Neustart des Systems fällig.
Besonders leicht tun sich Linux-Anwender, denn hier ist keine Treiberbinstallation nötig. Die Begriffe „Linux“ und „leicht“ sind selten in einem Satz zu lesen, aber in Verbindung mit Android und ADB spielt Linux seine Vorzüge aus: Im Gegensatz zu Windows braucht das Open-Source-System zur Nutzung der ADB keine weiteren USB-Treiber. Und in gut gepflegten Linux-Distributionen wie Debian , Ubuntu oder Linux Mint liegt auch die ADB zur vergleichsweise einfachen Installation mit dem jeweiligen Paketmanager über die beiden Pakete „android-toolsadb“ sowie „android-tools-fastboot“ vor. Mit wenigen Klicks ist die ADB dort eingerichtet.

Nun ist die Konfiguration eines ganzen Linux-Systems sicherlich eine größere Aufgabe, die einen eigenen PC für die Installation voraussetzt. Interessant ist hier das bootfähige Livesystem FWUL , das eine Art Schweizer Taschenmesser für die Arbeit an Android-Geräten ist (siehe Kasten „Livesystem mit Android-Tools“).
Damit die Kommunikation mit dem Smartphone oder Tablet auch gelingt, müssen Sie zuvor das „USB-Debugging“ beziehungsweise „Android-Debugging“ in den Entwickleroptionen Ihres Androiden aktivieren. Die Entwickleroptionen sind in den Einstellungen ab Werk zunächst nicht sichtbar. Sie zeigen sich erst, wenn Sie dort den Punkt „System –> Über das Telefon –> Buildnummer“ siebenmal antippen. Generell sollten Sie das USB-Debugging jedoch nur aktivieren, wenn Sie es wirklich brauchen, da sich sonst Unbefugte Zugriff auf Ihr Mobilgerät verschaffen können. Die Android-Entwickler haben deshalb schon seit Android 4.2.2 eine weitere Abfrage eingebaut: Das Gerät verlangt die Autorisierung für den gerade verbunden PC über dessen kryptografischen Fingerabdruck. Die Abfrage „USB-Debugging zulassen?“ erlaubt bei einer Bestätigung erst die weiteren Befehle über die Android Debug Bridge.

Fastboot: Eine Ebene tiefer

Während die ADB mit ihren Befehlen nur auf ein laufendes Android-System zugreifen kann und dabei die Systempartition und das System sowie den Bootloader nicht ändern darf, gibt es für tiefer gehende Manipulationen das Tool „fastboot“. Es funktioniert im Stil der ADB, allerdings nur dann, wenn das eigentliche Android-System noch nicht auf dem Gerät gestartet ist. Nur im Modus „Bootloader“, der sich über das Bootmenü auswählen lässt, kann das Fastboot-Tool mit der angeschlossenen Android-Hardware kommunizieren. Generell eignet sich Fastboot auf Geräten ohne herstellerspezifischen Bootloader zum Aufspielen von Custom-ROMs und Recovery-ROMs, aber auch zum Entsperren von Bootloadern nach Herstelleranleitungen.
fastboot devices zeigt die angeschlossenen, erkannten Android-Geräte an.
fastboot oem unlock ist der generische Befehl zum Entsperren eines Bootloaders bei Nexus-Modellen. Bei etlichen anderen Modellen gelingt dies aber nicht so leicht, sondern verlangt einen Schlüssel des Herstellers, den man über die Support-Website erhält.
fastboot flash recovery [Image] schreibt ein neues Recovery-ROM aus der Datei „[Image]“ in die entsprechende Partition des Android-Systems. Bei diesen Aktionen sollten Sie immer akribisch darauf achten, dass es sich um das passende Recovery-ROM für Ihr Smartphone-Modell handelt – wobei sich Fehler durch ein erneutes Flashen auf diese Weise auch noch korrigieren lassen.

ADB: Grundlegende Befehle

Nach dem Anschluss des Smartphones oder Tablets an den PC per USB ist die Android Debug Bridge einsatzbereit und sollte das Gerät dann bei den ersten Befehlen automatisch erkennen. Die folgenden Schritte und Kommandos sind bestens geeignet, um sich mit der ADB vertraut zu machen.

adb devices sollte immer der erste Befehl sein. Er listet die verbundenen Android-Geräte mit ihrer ID und den Namen unter „List of devices attached“ auf. Bleibt diese Liste leer, so sind keine Geräte verbunden, das „USB-Debugging“ ist nicht aktiviert, oder es fehlt unter Windows der universelle Android-USB-Treiber. Sollte die Liste den Status „unauthorized“ anzeigen, ist der PC noch nicht zum USB-Debugging frei geschaltet.

adb reboot recovery leitet einen Neustart des verbundenen Androiden ein und startet diesen, falls vorhanden, in den Modus „Recovery“. Ein Großteil der Änderungen an der Systempartition, wie das Aufspielen („Flashen“) eines Custom-ROMs oder ein kompletter Reset von Daten und Cache, ist nur über ein zuvor eingerichtetes Recoverysystem wieTWRP möglich.

adb reboot-bootloader öffnet auf den meisten Modellen ein Bootmenü, das die Auswahl der Startoptionen wie „Recovery“ oder „System“ mit den Volumetasten ermöglicht. In diesen Modus gelangen Sie auf vielen Geräten durch eine Kombination von gedrückten Tasten, was nicht immer angenehm ist. Dieser Befehl ruft das Bootmenü einfacher auf.

Diagnostische Befehle

Läuft das Android-System ganz regulär, so gibt es mittels der ADB einige Möglichkeiten, Einstellungen über die Parameter „shell dumpsys“ auszulesen. Damit öffnen Sie auf dem Zielgerät eine Shell und geben ein Kommando ein, das alle gesetzten Systemeinstellungen anzeigt. Die Ausgabe dieser Kommandos ist recht ausführlich und nicht immer gleich entzifferbar, dafür aber systematisch. Besser ist es, gleich eine bestimmte Kategorie abzufragen:
adb shell dumpsys user gibt beispielsweise an, welche Benutzerkonten eingerichtet sind, wann diese erstellt wurden und wann sich die Nutzer zuletzt angemeldet haben. Die Ausgabe des Befehls ist dabei noch recht übersichtlich, weil Android-Geräte selten eine große Anzahl unterschiedlicher Benutzer bedienen.
adb shell dumpsys package com.android.chrome gibt alle Details zu einer installierten App aus, in diesem Fall von Chrome, dem Standardbrowser unter Android. Die Ausgabe ist sehr detailliert und damit eher für das Debugging eigener Anwendungen interessant.
adb shell dumpsys procstats –hours 1 generiert eine Statistik zur Speicherauslastung und Aufteilung nach Prozessen über die letzte Stunde und ist wieder besser lesbar dank einer Zusammenfassung am Ende der Ausgabe.

Arbeit mit Dateien

Die Android Debug Bridge ist nicht nur ein passives Werkzeug zum Auslesen von Systeminfos, sondern auch ein Tool zur Übertragung von Dateien von und zu Android-Geräten.
adb push [Quelle] [Ziel] überträgt eine mit dem Platzhalter „[Quelle]“ angegebene Datei auf das angeschlossene Gerät, wobei der Speicherort wiederum über „[Ziel]“ bestimmt ist. Besonders praktisch ist dieser Befehl zur Übertragung von sehr großen Dateien, die bei der Verwendung von üblichen Dateimanagern gerne mal abbricht und die in der ADB zuverlässiger abläuft. Ohne die konkrete Angabe eines Ziels landet eine Datei im Wurzelverzeichnis des internen Speichers.
adb pull [Quelle] ist das Gegenstück zum vorangehenden „push“-Befehl und holt Dateien vom Android-System in das Verzeichnis des lokalen Rechners, aus dem dieser Befehl ausgeführt wurde. Die Quelle muss hier natürlich ganz eindeutig angegeben sein. Aber woher weiß man, wo welche Dateien unter Android liegen? adb shell ls gibt Aufschluss darüber, welche Verzeichnisse und Dateien das angeschlossene Gerät beherbergt. Ein Anwendungsbeispiel dafür wäre etwa das Kommando „adb shell ls sdcard/DCIM/ Camera“, das den Ordnerinhalt des Bilderordners auflistet.
adb install [Apk] führt die Installation einer App im APK-Format vorbei am offiziellen Google Play Store durch. Nützlich ist der Befehl für die nachträgliche Einrichtung zuvor gesicherter Apps oder Spiele oder von Apps aus fremden Quellen beziehungsweise eigener Entwicklung. Gerade bei APKs aus obskuren Quellen ist diese Installation per „Sideloading“ allerdings auch eine riskante Angelegenheit, weil so tatsächlich Malware auf den Androiden kommen kann.

Sichern und wiederherstellen

Vor umfangreichen Änderungen an einem Android-Gerät empfiehlt sich immer ein Backup der Daten und Einstellungen. Auch dieses ist mit der ADB möglich. Der Weg verlangt aber noch eine Bestätigung auf dem Android-Gerät und die Vergabe eines Passworts, weil die Backup-Daten verschlüsselt gesichert werden.
adb backup -apk -shared -all – f backup.ab legt auf dem PC ein komplettes Backup der gespeicherten Daten sowie der installierten Apps in der Datei „backup.ab“ an. Hier sollte also entsprechend viel freier Platz auf Ihrer Festplatte vorhanden sein. Außerdem ist Geduld gefragt, weil ein Backup per USB gerne über eine Stunde Zeit in Anspruch nimmt. Das ROM selbst wird übrigens dabei nicht gespeichert, dafür aber werden es die Systemeinstellungen.
adb restore backup.ab spielt die mit „backup.ab“ gesicherten Daten wieder auf das Android-Gerät zurück. Dazu fragt Android nach dem vergebenen Passwort, um die Daten zu entschlüsseln.
Falls das Backup zur Datenrettung dienen soll, weil ein Smartphone ein defektes Display oder kaputte Tasten ausweist, ist der kostenlose „ Android Backup Extractor “ eine große Hilfe, einzelne Dateien aus der Backup-Datei zu extrahieren. Es handelt sich dabei um ein Java-Programm für Windows, Linux und Mac OS X, das lediglich eine installierte Java-Runtime voraussetzt.

Livesystem mit Android-Tools

Die Arbeit mit Linux muss nicht kompliziert sein. Das Linux-Livesystem FWUL rührt die Festplatte nicht an und läuft ohne jegliche Installation von der DVD. Dieses System startet im Biosmodus auf allen 64-Bit-fähigen Rechnern und hat zahlreiche Tools für den Zugriff auf Android-Geräte per USB vorinstalliert. Mit dabei sind nicht nur ADB und Fastboot, sondern auch Flashtools von Sony, Samsung und LG. Das Livesystem demonstriert exemplarisch die Vorzüge eines Linux-Systems bei allen Arbeiten an Android-Geräten, da der Zugriff auf diese Geräte ohne zusätzliche USB-Treiber möglich ist. FWUL, kurz für „Forget Windows Use Linux“, startet einen deutsch- oder englischsprachigen Desktop, der weitgehend intuitiv bedienbar ist – auch ohne tiefgehende Linux-Kenntnisse. Das verlangte Passwort auf dem Anmeldebildschirm lautet schlicht „linux“, und im Menü oben rechts schaltet ein Mausklick die Sprache nach Deutsch („German – Germany“) um. Im Anwendungsmenü des Livesystems findet sich unter „Terminal“ die Kommandozeile, auf der sofort die Android Debug Bridge bereitsteht. Die Desktopverknüpfung „Simple- ADB“ startet ein Java-Programm, das eine grafische Oberfläche für die Kommandos der ADB bietet und damit Einsteigern entgegenkommt.

L14M2P21 akkus für Lenovo S41-70 S41-70AM
404600 akkus für Bose SOUNDLINK I II III
HF12 Philips HF3520/3485/3480/3471/3470 Wake-Up Light EXCELLENT Netzteile/Adapters
BL-44E1F akkus für LG V20 H910 H918 VS995 LS997 US996 H990N F800
P157SMBAT-8 akkus für Clevo 6-87- P157S-427
1ICP6/18/24 akkus für Microsoft Band 2 Smartwatch tools