Ich versuche ADB auf einem Android-Gerät selbst zu verwenden, also ohne jeden Host-Computer. Das funktionierte vor ein paar Tagen perfekt, aber es hörte plötzlich auf zu arbeiten. Soweit ich weiß, hat sich seitdem nichts geändert (z. B. keine Apps (un) installiert). Ich könnte adb backup -f /sdcard/backup.ab <package-name>
in einem Terminal-Emulator verwenden und es würde beginnen, dieses Paket zu sichern. Wenn ich das jetzt versuche, gibt es adb: unable to connect for backup
zurück. Die Untersuchung mit adb devices
gibt eine leere Liste zurück. Ich habe mich nie darum gekümmert, die Geräte vorher zu überprüfen, ich bin gerade zu meinem adb-Befehl gegangen, weil alles funktioniert hat.Verwendung von ADB lokal auf dem Gerät (Loopback) zeigt keine Geräte
Dies war auf einem HTC Desire mit Android 4.4.2, ADB Version 1.0.31. Die Verwendung von ADB von meinem PC mit diesem Telefon funktioniert perfekt, aber das ist nicht was ich will.
Was ich versucht habe
- ich versucht habe, die gleichen Aktionen auf verschiedenen Geräten (Asus PadFone 2 auf 4.4.2, Samsung Galaxy Note GT-N7000 auf 4.4.2, Sony Xperia S auszuführen auf 4.1.2.) aber
adb devices
gibt eine leere Liste auf allen von ihnen zurück. Ich beginne mich zu fragen, warum das überhaupt an meinem HTC Desire funktioniert hat. - Durchsuchen von Google und Stack Overflow, aber die meisten (wenn nicht alle) Ergebnisse beziehen sich auf ein Treiberproblem oder ein anderes Problem mit einem Hostcomputer.
adb kill-server
+adb start-server
etwa hundert Mal, sowiestop adbd
+start adbd
.- In den Einstellungen "USB-Debugging" ein- und ausschalten sowie den Zugriff auf zuvor autorisierte Computer sperren. (In der Arbeitssituation habe ich jedoch nie eine Bestätigungsaufforderung für die RSA-Taste erhalten.)
adb -a devices
-> leere Liste.adb usb
->error: device not found
.- Der Versuch, adb (d) im TCP-Modus neu zu starten, ist nicht erfolgreich (obwohl dies in der Arbeitssituation nicht notwendig war).
adb tcpip 5555
gibterror: device not found
zurück. getprop
gibt keinen Eintrag mit dem Namenservice.adb.tcp.port
undsetprop service.adb.tcp.port 5555
kehrt stillschweigend fehl. (Die anschließende Überprüfung mitgetprop service.adb.tcp.port
gibt nichts zurück. Benötigt das keine root?)adb connect localhost
gibtunable to connect to localhost:5555
zurück.- Wenn der Daemon startet, beginnt er auf Port 5038 (bei Verwendung von ADB von meinem PC startet es auf 5037).
adb connect localhost:5038
gibtconnected to localhost:5038
zurück.adb devices
gibt jedoch immer noch eine leere Liste zurück, undadb backup
gibtadb: unable to connect for backup
zurück. Außerdem gibtadb shell
error: device not found
zurück undadb get-state
gibtunknown
zurück. Also auch hier kein Erfolg. - Suche nach meiner lokalen IP mit
getprop dhcp.wlan0.ipaddress
(gibt 192.168.1.xx zurück) und dannadb connect 192.168.1.xx
gibtunable to connect to :5555
zurück.adb connect 192.168.1.xx:5038
->unable to connect to :5038
. Die Verwendung vonADBHOST=192.168.1.xx adb start-server
hat keine Auswirkungen auf diese Ergebnisse. - Eines der wenigen Suchergebnisse, das tatsächlich etwas relevant war, ist this Thread auf dem AOSP Issue Tracker. Es beschreibt jedoch ein Problem, bei dem nach der Verwendung von
setprop service.adb.tcp.port 5555
,adb devices
zumindest ein Gerät angezeigt wird, jedoch offline (nämlichlocalhost:5555 offline
).Etwas in der Nähe des Endes des Threads ist eine Lösung erreicht, die das Ändern des $ HOME-Verzeichnisses beinhaltet, um zu ändern, wo die RSA-Schlüssel gespeichert sind, z.HOME=/sdcard
. Es ist dann notwendig, den öffentlichen Schlüssel an/data/misc/adb/adb_keys unter Verwendungcat /sdcard/.android/adbkey.pub >> /data/misc/adb/adb_keys
anzufügen. Allerdings nehme ich an, dass dies Root benötigt? All dies war in der Arbeitssituation nicht notwendig, daher bezweifle ich, dass die Lösung für mein Problem in dieser Richtung gefunden werden kann. This article, abgeleitet aus dem Thread bei AOSP Issue Tracker, spricht nicht von Anhängen des öffentlichen Schlüssels. Der genannte Ansatz ist jedoch nicht erfolgreich. netstat
gibt (unter anderem):Proto: tcp
Recv-Q: 0
Send-Q: 0
Local Address: 127.0.0.1:5038
Foreign Address: 0.0.0.0:*
State: LISTEN
ps
zeigt ein/sbin/adbd
Prozess sowie einadb
Prozess:- USER: shell PID: 92 PPID: 1 VSIZE: 3624 RSS: 264 WCHAN: ffffffff PC: 00000000 S NAME: /sbin/adbd
- USER: u0_a57 PID: 9754 PPID: 1 VSIZE: 3016 RSS: 988 WCHAN: ffffffff PC: 4014f768 S NAME: adb
- (Commands executed from the terminal are executed as USER: u0_a57.)
Ich denke, dass ziemlich viel ist es.
Ich bin auf der Suche nach einer Lösung, wo keine Wurzel benötigt wird, da es nicht benötigt wurde, als ich es vorher funktionierte. Ich hoffe meine Situation und Frage ist klar. Bitte lassen Sie mich wissen, wenn meine Frage verbessert werden muss, da dies das erste Mal auf Stack Overflow ist. Hoffentlich kann mir jemand dabei helfen. Danke im Voraus!
Was versuchen Sie genau zu erreichen? Um eine Backup-Datei ohne PC zu erstellen, führen Sie '/ system/bin/bu backup' aus. Das macht "adb backup", wenn es vom PC aus gestartet wird. –
@AlexP. Danke für Ihre Antwort. Dies könnte genau das sein, was ich brauche, da ich versuche, ein Backup ohne PC zu erstellen. Wie kann ich den Speicherort für das Backup festlegen? Aus dem Quellcode von com.android.commands.bu.Backup gibt es keinen Parameter -f. Wenn ich die Quelle richtig lese, wird das erste übergebene Argument (auch vor 'Sicherung') später (als int) verwendet, um einen ParcelFileDescriptor – JooPalmer
@AlexP zu erstellen. "/ System/bin/bu /sdcard/backup.ab backup -all" erstellt jedoch keine backup.ab-Datei auf der SD-Karte. Das einzige, was jemals zurückgegeben wird, ist eine Warnung 'linker: app_process hat Textumsetzungen.', Die auf Xpose zurückzuführen zu sein scheint. Von dem, was ich gelesen habe, ist dies nur eine Warnung und die Operation (BU-Backup) sollte immer noch ausgeführt werden. Ich kann einfach keine Beweise finden, dass es ausgeführt wird. – JooPalmer