adb
Artikel in Arbeit
Dieser Artikel wird momentan von Heinrich_Schwietering erstellt. Als Fertigstellungsdatum wurde der 31.10.2017 angegeben.
Achtung: Insbesondere heißt das, dass dieser Artikel noch nicht fertig ist und dass wichtige Teile fehlen, oder sogar falsch sein können. Bitte diesen Artikel nicht als Anleitung für Problemlösungen benutzen!
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Dieser Artikel ist mit keiner aktuell unterstützten Ubuntu-Version getestet! Bitte teste diesen Artikel für eine Ubuntu-Version, welche aktuell unterstützt wird. Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
adb (Android Debug Bridge) ist eine Software-Schnittstelle (aus dem Android-SDK 🇬🇧), um vom Computer aus Android-Handys zu verwalten, Anwendungen zu installieren oder Daten auszutauschen. Es können ggf. auch ganze ROMs installiert ("geflasht") werden ("adb sideload"). Dabei ist eine Verbindung sowohl über USB-Kabel als auch - für einige Funktionen - über WiFi möglich. Das Programm ist unter Windows, iOS und Linux nutzbar.
Installation¶
Es gibt verschiedene Möglichkeiten, das Programm zu installieren[1]. Aus den offiziellen Quellen kann folgendes Paket installiert werden
android-tools-adb
Befehl zum Installieren der Pakete:
sudo apt-get install android-tools-adb
Oder mit apturl installieren, Link: apt://android-tools-adb
Alternative kann es aus der Android-SDK-Suite bezogen werden; die beiden Installationsarten schließen sich aber gegenseitig aus:
adb
Befehl zum Installieren der Pakete:
sudo apt-get install adb
Oder mit apturl installieren, Link: apt://adb
Aktuelle Versionen¶
Die jeweils aktuellste Version (z.B. 1.0.39, Oktober 2017) kann als Teil der SDK Platform Tools von der Download-Seite des Projekts Platform Tools 🇬🇧/⮷ bezogen werden. Das heruntergeladene Linux-Archiv entpacken[2], die u.a. darin befindliche Datei adb kann direkt verwendet werden; ggf. für systemweite Nutzung in ein im PATH
vorgesehenes Verzeichnis verschieben, z.B. /usr/local/bin (Rootrechte[3] erforderlich!).
Die neuere Version verträgt sich nicht mit einer aus den Quellen installierten adb, diese ggf. also wieder deinstallieren!
Hinweis!
Fremdsoftware kann das System gefährden.
Vorbereitung¶
udev-Regel¶
Die passenden udev-Regeln für verschiedenste Hersteller werden am einfachsten über das Paket android-sdk-platform-tools-common installiert, die Regel befindet sich in /lib/udev/rules.d/51-android.rules. Bei Bedarf können weiterer Hersteller-Einträge hinzugefügt werden. Dazu benötigt man die Vendor-ID (z.B aus der lsusb
-Ausgabe bei angeschlossenem Gerät auslesbar, erster Teil der Ausgabe), in folgender Form können dann in einem Editor[4] mit Root-Rechten neue Einträge hinzugefügt werden.
#HERSTELLER SUBSYSTEM=="usb", ATTR{idVendor}=="XXXX", MODE="0664", GROUP="plugdev"
Mit
sudo udevadm control --reload-rules
werden die Regeln dann neu gestartet.
USB-Debugging¶
Auf dem Android-Handy muss in den Einstellungen unter Entwickleroptionen USB-Debugging aktiviert werden, damit eine Verbindung zustande kommen kann, bei neueren Android-Versionen ggf. auch die OEM-Entsperrung aktivieren (Bootlader-Entsperrung). Um auf das Handy zugreifen zu können muss auf dem Handy der Zugriff dauerhaft gestattet werden.
Achtung!
Der Eingriff in das Betriebssystem des Handys stellt immer ein erhebliches potentielles Risiko dar! Daher vorher sehr genau prüfen, ob z.B. das gewählte ROM oder die Apps für das eigene Gerät geeignet sind; bei Fehlverwendung drohen ggf. schwerwiegende Schäden. Die Verwendung geschieht daher auf eigene Gefahr; mit dem Einsatz erlöschen ggf. die Garantieansprüche an den Handy-Hersteller! Offizielle Software-Updates sind dann nicht mehr bzw. nur nach Herstellung des Ursprungszustand möglich. Bei Schäden wird jegliche Verantwortung und Haftung abgelehnt!
Verwendung¶
adb ist ein reinen Kommandozeilenwerkzeug, die allgemeine Syntax auf der Kommandozeile lautet
adb OPTION BEFEHL
Um festzustellen, ob das Android-Gerät erreichbar ist, folgenden Befehl im Terminal [2] eingeben:
adb devices
Falls adb in der aktuellen Sitzung noch nicht verwendet worden ist, meldet das Terminal zunächst der Start des adb-Daemons, danach erscheint, wenn alles glatt geht, etwas wie
* daemon not running. starting it now on port 5037 * * daemon started successfully * List of devices attached 5200d6fd904b2200 device
Falls stattdessen nach List of Devices attached
nur eine Leerzeile erscheint, wird das Gerät (noch) nicht erreicht; in den USB-Verbindungs-Einstellungen auf dem Handy überprüfen, ob ggf. "Nur Laden" ausgewählt ist. Wenn statt device
ein unauthorised
steht, ist die Verbindung zwar erstellt worden, aber muss auf dem Handy bestätigt werden; dazu in einer auf dem Handy gezeigten Meldung den dauerhaften Zugriff bestätigen. Wird neben der Gerätenummer recovery
ausgegeben, befindet sich das Gerät im Recovery-Modus 🇩🇪.
Falls über adb das Handy - im selben WLAN-Netz wie der Rechner - kabellos verwaltet werden soll, muss ggf eine entsprechende App auf dem Handy laufen, siehe dazu den Eintrag Wireless ADB Wireless 🇬🇧. Ein ggf. laufendes Programm adbd-insecure auf dem Handy muss dafür ausgestellt sein, ansonsten kann keine Verbindung zustande kommen.
Nutzen lässt sich ADB für eine Vielzahl von Aufgaben, z.B. Dateitransfer, Synchronisation von Verzeichnissen, Erstellung und Wiedereinspielen von Backups (von einzelnen Dateien bis zu Komplett-Sicherungen), Installation und Entfernen von Apps, Wechsel von Geräte-Modi u.v.m.
Befehle und Optionen¶
Die Angaben beziehen sich auf ADB in Version 1.0.39; ältere Versionen bieten ggf. nicht alle Optionen; diese Aufzählung ist nicht vollständig!
ADB-Befehle und Optionen | ||
Befehl/Option | mögliche Optionen | Funktion |
device | -l | listet die verbundenen Gerät auf, ggf. auch als IP-Adresse; -l liefert genauere Informationen |
connect HOST:PORT disconnect HOST:PORT | Verbindet/trennt ein Gerät via TCP/IP, Port 5555 wird verwendet, wenn keine Portnummer angegeben wird. Getrennt werden alle Geräte, wenn keine zusätzliche Angabe gemacht wird | |
push /COMPUTERPFAD/DATEI /HANDYPFAD/DATEI | Kopiert eine Datei vom Computer auf das Handy | |
pull /HANDYPFAD/DATEI /COMPUTERPFAD/DATEI | -a | Kopiert eine Datei vom Handy auf den Computer ,-a bewahrt timestamp und mode der Datei |
sync | VERZEICHNIS | Kopiere alle veränderten Dateien zum Gerät; Verzeichnis kann system, vendor, oem oder data sein, nur diese Partitionen wredenn synchronisiert; ohne VERZEICHNIS -Angabe werden alle synchronisiert, mit -l werden diese nur aufgelistet |
reboot | bootloader recovery sideload sideload-auto-reboot | Ohne Opion rebootet das Gerät neu ins Hauptsystem Reboot in den Fastboot-Modus, Reboot in den Recovery-Modus Reboot in den Recovery-Modus und Starten des Sideload-Modus, führt zum automatischen Reboot nach Ausführung des Sideload-Befehls. Eine WiFi-Verbindung wird dabei unterbrochen! |
install PAKETNAME install-multiple PAKETNAME (...) | -l -r -t -s -d -p -g | Installiert PAKETNAME() auf dem Handy forward lock application ersetze bestehende App lasse Testpakete zu Installiere App auf einer (externen) SD-Karte Teilinstallationsinstallation zulassen (nur für install-multiple ) auf ältere Version downgraden (nur für "debug"-bare Pakete) Gewähre alle Laufzeitberechtigungen (ab Android 6) |
uninstall PAKETNAME | -k | Entfernt PAKETNAME vom Handy, -k erhält die Daten- und Cache-Ordner auf dem Handy |
backup | -f DATEI -apk|-noapk -obb|-noobb -shared|-noshared -all -system|-nosystem PAKETE... | Dateiname für das Backup, ohne -f wird backup.ab erzeugt ermöglicht/verhindert die Sicherung der .apk-Dateien, Standard: -noapk ermöglicht/verhindert die Sicherung von .apk-Erweiterungen (aka .obb), Standard: -noobb ermöglicht/verhindert die Sicherung der gemeinsamen Speicher/SD-Karten-Inhalte des Geräts, Standard -noshared alle installierten Apps werden einbezogen gibt an,ob bei Verwendung von -all die System-Apps einbezogen werden oder nicht; Standard ist -system Liste der zu sichernden Pakete |
restore BACKUP-DATEI | Stellt den vorherigen Zustand aus BACKUP-DATEI wieder her | |
shell | -e ESCAPE -n -Tt -x BEFEHL... | Öffnet eine interaktive Shell auf dem Handy Escape-Zeichen festlegen, Standard ist "~" nicht von stdin lesen verhindere ( -T )/erzwinge (-t ) PTY:-Zuordnung unterbinde "remote exit codes" und stdout/stderr-Trennung Shell-Befehle, sinnvoll zur effektiven Nutzung ist eine Busybox auf dem Handy |
root unroot | Neustart von adbd mit/ohne ROtt-Rechten | |
usb | Neustart des adb-Servers, um an USB-Ports zu lauschnen | |
tcpip PORT | Neustart des adb-Servers, um an TCP mit PORT -Nummer zu lauschen | |
sideload OTA-PAKET | Installiert OTA-PAKET (z.B. ein komplettes ROM). Achtung!Mit größter Umsicht anwenden! Die Installation ungeeigneter OTA-Pakete zu schwerwiegenden Schäden führen! |
Eine ausführliche Anleitung findet sich in diesem adb-Guide 🇬🇧 auf der Projektseite developer.android.com, der Befehl adb -h
zeigt alle verwendbaren Optionen.
Alternativen¶
Heimdall ist ein speziell für Samsung-Handys entwickeltes Programm zu Flashen.
Baustelle/fastboot gehört ebenfalls zu den Android Platform Tools.
QtADB 🇬🇧 ist eine Benutzeroberfläche, um adb und fastboot zu nutzen.
Links¶
Download 🇬🇧/⮷ SDK Platform Tools
Einführung 🇩🇪 auf androitpit.de
Android Debug Bridge 🇩🇪 - Wiki-Eintrag auf droidwiki.de
Android Studio 🇬🇧 - Anletung zum Installieren von Android Studio auf webupd8.org
Anleitung 🇬🇧 für Debian
Installations-Anleitung 🇩🇪 auf linuxwelt.blogspot.de