Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
— | android:adb-android_debug_bridge [2023/05/27 14:20] (aktuell) – angelegt - Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Adb-Android Debug Bridge ====== | ||
+ | Mit der Android Debug Bridge, kurz adb, kann man Android vom PC mit Befehlen steuern. | ||
+ | ===== Verbindung herstellen ===== | ||
+ | Zunächst muß man das Android-Gerät mit dem PC verbinden. | ||
+ | |||
+ | ==== Debugging über USB ==== | ||
+ | Damit man nun das Android steuern kann, muß das Debugging auf dem Android aktiviert werden. | ||
+ | < | ||
+ | Hier nun den Punkt **USB-Debugging** aktivieren. | ||
+ | Ab jetzt Verbindet man das Android-Gerät mit dem PC per USB-Datenkabel und steuert es mit den Android-SDK-Tools. | ||
+ | |||
+ | ==== Debugging über Wifi ==== | ||
+ | Man kann dies auch ohne USB-Datenkabel machen und einfach ein vorhandenes Wifi nutzen. | ||
+ | Dafür muß aber ein angepasstes Android-ROM installiert sein und dafür muß man das Android-Gerät [[android: | ||
+ | Danach auf dem Gerät die Funktion **ADB über Netzwerk** aktivieren. | ||
+ | Anschließend nur noch folgende Einstellungen am PC übernehmen (einfach in der Konsole eingeben). | ||
+ | <code bash>adb tcpip < | ||
+ | Nun kann man sich wie folgt verbinden. | ||
+ | <code bash>adb connect < | ||
+ | Die Verbindung trennt man wie folgt. | ||
+ | <code bash>adb disconnect < | ||
+ | |||
+ | === Debug per Wifi ohne Menüeintrag einschalten === | ||
+ | Es kann vorkommen das nicht jedes Android-ROM diese Funktion in den Entwickleroptionen hat. | ||
+ | Man kann die Funktion dennoch einschalten. Dazu benötigt man eine App, mit welcher man Befehle auf Konsolenebene eingeben kann (z.B. " | ||
+ | |||
+ | Nach der Installtion einfach die Befehle eingeben zum einschalten: | ||
+ | <code bash>su | ||
+ | setprop service.adb.tcp.port 5555 | ||
+ | stop adbd | ||
+ | start adbd</ | ||
+ | |||
+ | Zum Abschalten, folgende Befehle eintragen: | ||
+ | <code bash> | ||
+ | stop adbd | ||
+ | start adbd</ | ||
+ | |||
+ | Um das Debugging wieder auf USB umzustellen einfach den Befehl verwenden. | ||
+ | <code bash>adb usb</ | ||
+ | |||
+ | ==== Debugging mit ADB testen ==== | ||
+ | Egal wie man nun verbunden ist, kann man die Kommunikation mit dem Android-Gerät nun wie folgt testen. | ||
+ | <code bash>adb devices</ | ||
+ | Wenn man per Wifi verbunden ist, dann kommt beim ersten mal die folgende Ausgabe: | ||
+ | <code bash> | ||
+ | 192.168.149.105: | ||
+ | |||
+ | Das Wort **" | ||
+ | Das löst man, in dem die Meldung auf dem Android-Gerät bestätigt wird. | ||
+ | |||
+ | Gibt man jetzt beispielsweise folgenden Befehl ein, wird einem angezeigt wie lang das Android-Gerät schon eingeschaltet ist. | ||
+ | <code bash>adb shell uptime</ | ||
+ | |||
+ | ===== Backup und Restore ===== | ||
+ | Mit dem Befehl '' | ||
+ | Syntax: < | ||
+ | **Einzelne Parameter**, | ||
+ | <code bash>adb backup < | ||
+ | |||
+ | ^ Parameter ^ Beschreibung ^ default ^ | ||
+ | | < | ||
+ | | < | ||
+ | | < | ||
+ | | < | ||
+ | | < | ||
+ | | < | ||
+ | | < | ||
+ | |||
+ | * Beispiel (**Smartphone gerootet**): | ||
+ | * Beispiel (**Smartphone nicht gerootet**): | ||
+ | |||
+ | Ein Recovery würde wie folgt gestartet werden. | ||
+ | <code bash>adb restore < | ||
+ | |||
+ | ==== Einzelene Apps sichern ==== | ||
+ | Zum sichern einzelner Apps, muss man den App-Namen kennen. | ||
+ | Herausfinden kann man dies mit folgendem Befehl: | ||
+ | <code bash>adb shell pm list packages</ | ||
+ | Hierbei werden alle Apps mit dem App-Namen aufgelistet. | ||
+ | |||
+ | Das Backup kann dann wie folgt erstellt werden: | ||
+ | <code bash>adb backup < | ||
+ | Man kann auch einfach dieses kleine dirty-script verwenden: | ||
+ | <code bash># | ||
+ | |||
+ | read -p "In welchem Pfad soll gesichert werden: " DEST | ||
+ | |||
+ | while [ " | ||
+ | do | ||
+ | echo "Zum beenden einfach ' | ||
+ | read -p "Bitte Namen der App angeben: " APPNAME | ||
+ | echo | ||
+ | if [ ${APPNAME} = " | ||
+ | echo " | ||
+ | exit 0 | ||
+ | fi | ||
+ | echo " | ||
+ | echo | ||
+ | adb shell pm list packages|grep ${APPNAME} | ||
+ | echo | ||
+ | read -p "Bitte Package angeben: " PACKAGENAME | ||
+ | echo | ||
+ | adb backup ${PACKAGENAME} -f ${DEST}/ | ||
+ | done | ||
+ | </ | ||
+ | |||
+ | ==== Backup-Datei entpacken ==== | ||
+ | Die erstellte Backup-Datei '' | ||
+ | Allerdings ist dieses Archiv kein normales Deflate Archiv, es ist verändert. | ||
+ | Auf der Webseite von [[http:// | ||
+ | |||
+ | Man kann dieses Archiv allerdings in ein Tar-Archiv umwandeln. Mit dem [[https:// | ||
+ | <code bash> | ||
+ | |||
+ | Wenn das Archiv in ein lesbares Tar-Archiv umgewandelt wurde, kann man es z.B. über Nautilus öffnen und entpacken. | ||
+ | |||
+ | ==== Google One-Back-up per adb ==== | ||
+ | Dieser Befehl erzwingt das Backup mit One-Back-up welches in Android eingebaut ist | ||
+ | <code bash>adb shell | ||
+ | bmgr run | ||
+ | bmgr backupnow --all</ | ||
+ | |||
+ | Sollte der Befehl mit diesem Fehlercode enden " | ||
+ | <code bash> | ||
+ | bmgr backupnow --all</ | ||
+ | ===== nützliche Befehle ===== | ||
+ | Hier einige nützliche Befehle für adb. | ||
+ | |||
+ | ==== Image Type ==== | ||
+ | <code bash>adb shell grep ro.product.name system/ | ||
+ | |||
+ | ==== Device Type ==== | ||
+ | <code bash>adb shell grep ro.product.device / | ||
+ | |||
+ | ==== Build ID ==== | ||
+ | <code bash>adb shell grep build.id / | ||
+ | |||
+ | ==== Dateien uploaden ==== | ||
+ | <code bash>adb push < | ||
+ | |||
+ | ==== Dateien downloaden ==== | ||
+ | <code bash>adb pull < | ||
+ | |||
+ | ==== Apps deinstallieren ==== | ||
+ | Die Paketnamen einfach aus dem Verzeichnis ''/ | ||
+ | <code bash>adb uninstall < | ||
+ | |||
+ | ==== dumpsys Informationen ==== | ||
+ | Mit dem Tool '' | ||
+ | <code bash> | ||
+ | |||
+ | ==== Top ==== | ||
+ | Mit dem Tool '' | ||
+ | < | ||
+ | -m num Maximum number of processes to display. | ||
+ | -n num Updates to show before exiting. | ||
+ | -d num Seconds to wait between updates. | ||
+ | -s col Column to sort by (cpu, | ||
+ | -t Show threads instead of processes. | ||
+ | -h Display this help screen.</ | ||
+ | |||
+ | ==== Was passiert aktuell in Android ==== | ||
+ | === LogCAT === | ||
+ | Anzeige des aktuellen Logs des Devices (wie tailf syslog) | ||
+ | <code bash>adb logcat</ | ||
+ | === DDMS === | ||
+ | Ein anderes Tool ist '' | ||
+ | Installiert wird es einfach per \\ <code bash> | ||
+ | Danach kann es Aufgerufen werden mit \\ <code bash> |