stiziwik
Sie befinden sich hier: Willkommen » Android » Adb-Android Debug Bridge
Zuletzt angesehen:

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.
 +<code>Menü --> Einstellungen --> Entwickleroptionen</code>
 +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:rooten|rooten]].
 +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 <PORT></code>
 +Nun kann man sich wie folgt verbinden.
 +<code bash>adb connect <IP-ADRESSE>:<PORT><code>
 +Die Verbindung trennt man wie folgt.
 +<code bash>adb disconnect <IP-ADRESSE>:<PORT></code>
 +
 +=== 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. "BusyBox").
 +
 +Nach der Installtion einfach die Befehle eingeben zum einschalten:
 +<code bash>su
 +setprop service.adb.tcp.port 5555
 +stop adbd
 +start adbd</code>
 +
 +Zum Abschalten, folgende Befehle eintragen:
 +<code bash>setprop service.adb.tcp.port -1
 +stop adbd
 +start adbd</code>
 +
 +Um das Debugging wieder auf USB umzustellen einfach den Befehl verwenden.
 +<code bash>adb usb</code>
 +
 +==== 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</code>
 +Wenn man per Wifi verbunden ist, dann kommt beim ersten mal die folgende Ausgabe:
 +<code bash>List of devices attached 
 +192.168.149.105:5555 unauthorized</code>
 +
 +Das Wort **"unauthorized"** deutet einfach darauf hin, dass man zwar verbunden ist, aber noch keine Berechtigungen hat.
 +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</code>
 +
 +===== Backup und Restore =====
 +Mit dem Befehl ''adb backup'' kann man ein Backup auf dem lokalen PC erstellen
 +Syntax: <code>adb backup -f <DATEINAME>.ab [-apk|-noapk] [-obb|-noobb] [-shared|-noshared] [-all] [-system|-nosystem] [<packages...>]</code>
 +**Einzelne Parameter**, bis auf den letzen, müssen mit einem "\" versehen werden.
 +<code bash>adb backup <PARAMETER>\ <PARAMETER>\ <PARAMETER> -f <DATEI_NAME>.ab</code>
 +
 +^ Parameter ^ Beschreibung ^ default ^
 +| <code>-f</code> | Nach diesem Parameter muss ein Dateiname mit der Endung ".ab" folgen |  |
 +| <code>[-apk|-noapk]</code> | schaltet das Backup der APK-Dateien ein oder aus | -noapk |
 +| <code>[-obb|-noobb]</code> | schaltet das Backup aller installierten APK Erweiterungsdateien, \\ welche mit der jew. APK zusammenhängen ein oder aus | -noobb |
 +| <code>[-shared|-noshared]</code> | schaltet das Backup des User-Speichers ein oder aus | -noshared |
 +| <code>[-all]</code> | sichert alle instalierten Apps |  |
 +| <code>[-system|-nosystem]</code> | entscheidet ob der Parameter ''-all'' auch die System-Apps mitsichert | -system |
 +| <code>[<packages...>]</code> | Liste aller zu sichernden Apps \\ Wenn der Parameter ''-all'' oder ''-shared'' angegeben wird, dann ist \\ die Angabe der Packages optional. Selbst wenn der Parameter \\ ''-nosystem'' verwendet wird, würden die jew. angegebenen Packages \\ gesichert werden. Zum sichern einzelner Apps, siehe: [[#einzelene_apps_sichern]] |  |
 +
 +  * Beispiel (**Smartphone gerootet**): Hier wird das vollständige Smartphone mit seinem Betriebssystem, den System- und User-APPs und dem Inhalt es externen Speichers gesichert. \\ <code>adb backup -all\ -apk\ -shared\ -system -f <DATEI_NAME>.ab</code>
 +  * Beispiel (**Smartphone nicht gerootet**): Hier wird das vollständige Smartphone mit den APPs und dem Inhalt es externen Speichers gesichert. \\ <code>adb backup -all\ -apk\ -shared\ -nosystem -f <DATEI_NAME>.ab</code>
 +
 +Ein Recovery würde wie folgt gestartet werden.
 +<code bash>adb restore <DATEI_NAME>.ab</code>
 +
 +==== 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</code>
 +Hierbei werden alle Apps mit dem App-Namen aufgelistet.
 +
 +Das Backup kann dann wie folgt erstellt werden:
 +<code bash>adb backup <APP-NAME> -f <APP-NAME-BACKUP-DATEI>.ab</code>
 +Man kann auch einfach dieses kleine dirty-script verwenden:
 +<code bash>#!/bin/bash
 +
 +read -p "In welchem Pfad soll gesichert werden: " DEST
 +
 +while [ "$APPNAME" != "ende" ]
 +do
 +  echo "Zum beenden einfach 'ende' eingeben."
 +  read -p "Bitte Namen der App angeben: " APPNAME
 +  echo
 +  if [ ${APPNAME} = "ende" ]; then
 +   echo "Script beendet!"
 +   exit 0
 +  fi
 +  echo "Folgende Apps wurden gefunden:"
 +  echo
 +  adb shell pm list packages|grep ${APPNAME}
 +  echo
 +  read -p "Bitte Package angeben: " PACKAGENAME
 +  echo
 +  adb backup ${PACKAGENAME} -f ${DEST}/${PACKAGENAME}.ab
 +done
 +</code>
 +
 +==== Backup-Datei entpacken ====
 +Die erstellte Backup-Datei ''.ab'' ist im Grunde genommen ein komprimiertes Tar-Archiv.
 +Allerdings ist dieses Archiv kein normales Deflate Archiv, es ist verändert.
 +Auf der Webseite von [[http://android.stackexchange.com/questions/28481/how-do-you-extract-an-apps-data-from-a-full-backup-made-through-adb-backup|android.stackexchange.com]] findet man weitere Infos dazu.
 +
 +Man kann dieses Archiv allerdings in ein Tar-Archiv umwandeln. Mit dem [[https://sourceforge.net/projects/adbextractor/|Android Backup Extractor]] führt man folgenden Befehl aus:
 +<code bash>java -jar abe.jar unpack <backup.ab> <backup.tar> <password></code>
 +
 +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</code>
 +
 +Sollte der Befehl mit diesem Fehlercode enden "Backup finished with result: Backup Cancelled", dann folgendes probieren:
 +<code bash>bmgr backupnow appdata
 +bmgr backupnow --all</code>
 +===== nützliche Befehle =====
 +Hier einige nützliche Befehle für adb.
 +
 +==== Image Type ====
 +<code bash>adb shell grep ro.product.name system/build.prop</code>
 +
 +==== Device Type ====
 +<code bash>adb shell grep ro.product.device /system/build.prop</code>
 +
 +==== Build ID ====
 +<code bash>adb shell grep build.id /system/build.prop</code>
 +
 +==== Dateien uploaden ====
 +<code bash>adb push <QUELLE_AUF_PC> <ZIEL_AUF_ANDROID></code>
 +
 +==== Dateien downloaden ====
 +<code bash>adb pull <ZIEL_AUF_ANDROID> <QUELLE_AUF_PC></code>
 +
 +==== Apps deinstallieren ====
 +Die Paketnamen einfach aus dem Verzeichnis ''/data/app'' entnehmen.
 +<code bash>adb uninstall <packagename></code>
 +
 +==== dumpsys Informationen ====
 +Mit dem Tool ''Dumpsys'' kann man verschiedene Informationen über Apps herausfinden.
 +<code bash>dumpsys meminfo <PAKET.NAME></code>
 +
 +==== Top ====
 +Mit dem Tool ''top'' erhält man die aktuelle Prozessorauslastung.
 +<code>Usage: top [ -m max_procs ] [ -n iterations ] [ -d delay ] [ -s sort_column ] [ -t ] [ -h ]
 +    -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,vss,rss,thr).
 +    -t      Show threads instead of processes.
 +    -h      Display this help screen.</code>
 +
 +==== Was passiert aktuell in Android ====
 +=== LogCAT ===
 +Anzeige des aktuellen Logs des Devices (wie tailf syslog)
 +<code bash>adb logcat</code>
 +=== DDMS ===
 +Ein anderes Tool ist ''ddms'' (Dalvik Debug Monitor).
 +Installiert wird es einfach per \\ <code bash>apt-get install androidsdk-ddms</code>
 +Danach kann es Aufgerufen werden mit \\ <code bash>ddms</code>

Webseiten-Werkzeuge

  • Letzte Änderungen
  • Medien-Manager
  • Übersicht

Seiten-Werkzeuge

  • Seite anzeigen
  • Ältere Versionen
  • Links hierher
  • Nach oben

Benutzer-Werkzeuge

  • Anmelden
stiziwik

Table of Contents

  • 3d_print
  • Android
    • Adb-Android Debug Bridge
    • Android-sdk
    • Cyanogenmod
    • Nexus10
    • Rooten
    • Twrp
    • Ussd-codes
  • Bild-und-video
  • Datenverarbeitung
  • Fahrzeuge
  • Hausautomatisation
  • linux
  • Nas
  • Netzwerk
  • PlayGround
  • Programieren
  • Projekte
  • Raspberry Pi
  • sonstiges
  • VDR
  • Web
  • Werkstatt
  • Wiki
  • sidebar-acmenu
  • sidebar-indexmenu
  • sidebar-simplenavi