Das Problem:
Jedes Mal, wenn ich ADB Backup ausführe, wird am unteren Rand des Startbildschirms Backup starting...
eine Meldung gefolgt von einer Meldung angezeigt , die Backup finished
einige Sekunden später angezeigt wird , obwohl ich 17 GB Gerätespeicher verwende und die resultierende Sicherungsdatei erstellt wird mit einer Größe von 0 Bytes. Ich erhalte keine Fehlermeldungen, keine Rückmeldungen, die darauf hinweisen, dass etwas nicht stimmt, geschweige denn, was nicht stimmt. Es scheint zu funktionieren, aber viel zu schnell, und die Sicherungsdatei ist leer.
Der Prozess:
Ich bestätige, dass das Gerät von ADB mit dem
adb devices
Befehl erkannt wird , und erhalte die folgende Ausgabe:List of devices attached 8e1f368a device
Ich gebe den ADB-Sicherungsbefehl aus (Details folgen).
Ich erhalte die folgende Meldung an der Eingabeaufforderung:
Now unlock your device and confirm the backup operation.
... und die folgende Eingabeaufforderung am Telefon:
Es macht keinen Unterschied, was ich hier mache (Details folgen).
Ich tippe auf den Back up my dataKnopf (rechte untere Ecke).
Das Telefon kehrt zum Startbildschirm zurück und zeigt mir die
Backup starting...
Nachricht undBackup finished
einige Sekunden später die Nachricht. Es wird eine 0-Byte-Datei erstellt, die entweder den Namen backup.ab oder das hat, was ich mit der Option -f angegeben habe .
Der ADB-Sicherungsbefehl (in Schritt 2 verwendet):
Ich habe mehrere Kombinationen von Optionen ausprobiert, von so einfach wie
adb backup -all
zu Dingen wie
adb backup -all -apk -s 8e1f368a -f 'C:\Data Files\PDA\Backups\ADB\GalaxyS4_20140919.ab'
Ich habe auch versucht, den -nosystem
Schalter hinzuzufügen , nachdem ich dies und das gelesen habe , was darauf hinweist, dass der Versuch, eine Systemsicherung auf einem nicht gerooteten Gerät einzuschließen, zu einer 0-Byte-Datei führen kann und dass dieser Schalter verwendet werden muss. Es macht keinen Unterschied, der Vorgang ist immer noch in wenigen Sekunden abgeschlossen und ich erhalte immer noch eine 0-Byte-Datei.
Die Eingabeaufforderung für das Kennwort "Vollständige Sicherung" (Schritt 3):
Ich bin mir ziemlich sicher, dass ich noch nie ein Sicherungskennwort festgelegt habe. Ich hatte noch nie die Gelegenheit, dieses Passwort festzulegen oder auf diese Einstellung zuzugreifen. Ich habe jedoch Folgendes ausprobiert:
- Lassen Sie beide Passwörter leer
- Lassen Sie das "aktuelle Sicherungskennwort" leer und geben Sie ein neues Kennwort in das zweite Feld ein
- Eingabe der aktuellen Bildschirmsperr-PIN und aller PINs, die ich in der Vergangenheit als "aktuelles Sicherungskennwort" verwendet habe.
- Wenn ich jedes Passwort eingebe, fällt mir ein, dass ich es jemals für irgendetwas auf diesem Gerät verwendet hätte
In allen Fällen ist das Verhalten genau das gleiche wie in Schritt 5 beschrieben. Ich erhalte keine Fehler oder Hinweise darauf, dass etwas nicht stimmt oder dass meine Passwörter ungültig sind, und keinen Hinweis darauf, ob tatsächlich ein aktuelles Passwort erwartet wird oder ob dies der Fall ist Das Feld sollte leer bleiben. (Der Screenshot in dieser Antwort und in mehreren anderen Support-Foren, die ich mir angesehen habe, deutet anscheinend darauf hin, dass das Feld "Aktuelles Backup-Passwort" nicht angezeigt wird, wenn kein aktuelles Passwort vorhanden ist. Dies ist jedoch nur eine Schlussfolgerung. Nichts macht klar, ob ein aktuelles Passwort wird tatsächlich benötigt.)
Ich vermute, dass das Kennwort, nach dem gefragt wird, das in den Entwickleroptionen festgelegte "Desktop-Sicherungskennwort" ist:
Ich habe dieses Passwort noch nie festgelegt. Wenn ich versuche, einen einzurichten, wird eine Meldung angezeigtFailed to set backup password.
Bei der Suche nach Informationen zu diesem Fehler bin ich auf mindestens einen anderen Fall gestoßen, in dem jemand, der dieses Problem hatte, sagte, dass dies ihn daran hinderte, ADB-Backup zu verwenden, aber er wusste nicht genau, was passiert, wenn er versucht, ADB zu verwenden Sicherung.
Die meisten Leute, die diese Nachricht erhalten haben und noch nie zuvor ein Passwort festgelegt haben, gaben an, dass das aktuelle Passwort leer bleiben sollte, aber ich habe das zuerst versucht und es hat nicht funktioniert. Ich habe eine Frage von einer anderen Person gefunden, die auf dieses Problem gestoßen ist und sicher war, dass sie das Passwort noch nicht festgelegt hat . Leider sieht es nicht so aus, als hätte er jemals eine Lösung oder gar eine Erklärung bekommen.
Unabhängig davon, ob ADB nach dem "Desktop-Sicherungskennwort" sucht oder ob das ADB-Verschlüsselungskennwort etwas anderes ist, ist es mir ein Rätsel, warum ADB Sie zur Initiierung einer neuen Sicherung zur Eingabe eines vorherigen Kennworts auffordern würde. Ich versuche nicht , wiederherzustellen, zu überschreiben oder in irgendeiner Weise Zugang zuvor Daten verschlüsselt, so dass selbst wenn ein Verschlüsselungskennwort für eine Sicherung hatte zuvor eingestellt worden ist , kann ich mir nicht vorstellen , warum jemand denke , es wäre eine gute Idee, Sie zu verhindern , dass Sichern Sie Ihr Gerät, wenn Sie sich nicht erinnern, welches Kennwort Sie in der Vergangenheit zum Verschlüsseln von Sicherungen verwendet haben.
Zusätzliche Information:
Modell: Samsung Galaxy S4 SCH-I545
Kernel-Version: 3.4.0
Betriebssystem-Version: 4.4.2
Android SDK Tools-Version: 1.16
USB-Debugging ist aktiviert.
Beachten Sie, dass ich für die Verwendung von ADB-Backups aus Sicherheitsgründen ein vollständiges Backup meines Telefons erstellen muss, bevor ich es roote *, damit ich Nandroid-Backup-Tools wie Titanium-Backup verwenden kann. Jeder Vorschlag, der das Rooten meines Telefons beinhaltet, wäre ein Catch-22, keine Lösung. Ein Zurücksetzen auf die Werkseinstellungen ist natürlich auch keine Lösung, da dies den gesamten Zweck der Durchführung der Sicherung zunichte machen würde.
Das Telefon ist für die Synchronisierung mit den Exchange-Servern meines Unternehmens eingerichtet, und der Server setzt einige Richtlinien durch. Ich hatte gedacht, dass das Gerät verschlüsselt war, als ich die Synchronisierung mit dem Unternehmenskonto eingerichtet habe, aber anscheinend ist es derzeit nicht verschlüsselt. Genau das hat diese Ereigniskette in Gang gesetzt: Ich erhalte die Meldung, dass ich das Gerät verschlüsseln muss, um weiterhin eine Verbindung zu den Unternehmensservern herstellen zu können. Ich möchte vor dem Verschlüsseln ein Nandroid-Backup erstellen, für das Rooting erforderlich ist, und ich möchte vor dem Rooting ADB-Backup verwenden.
* Ja, ich bin mir bewusst, dass Towelroot als sicher eingestuft wird, aber ich gehe lieber kein Risiko ein und möchte dieses Problem lösen oder zumindest verstehen, falls in Zukunft Probleme auftreten.
quelle
adb backup
funktionierte,adb restore
immer fehlgeschlagen). Es stellte sich heraus, dass es sich um ein Berechtigungsproblem handelte (der Hersteller hat das ROM beschädigt), sodassadb restore
die Sicherungsdatei nach der Übertragung auf das Gerät nicht gelesen werden konnte. War etwas schwierig zu finden, und ich bin mir nicht sicher, ob hier wirklich etwas Ähnliches der Fall ist. aber es könnte sich lohnen zu überprüfen.Antworten:
Kurze Antwort
Versuchen Sie es mit einer früheren Version von adb. 1.0.32 hat bei mir nicht funktioniert, 1.0.31 jedoch.
Lange Antwort
Ich bin gerade auf einem Nexus 5 gestoßen, auf dem CyanogenMod 11 (basierend auf Android 4.4) mit der aktuellen Version der Platform Tools und ADB (Android Debug Bridge Version 1.0.32 Revision eac51f2bb6a8-android) ausgeführt wird.
Beim
adb logcat
Betrachten der Geräteprotokolle stellte ich fest, dass nach dem Aufrufenadb backup -apk -obb -shared -all -nosystem
einige verdächtige Protokolleinträge vorhanden waren:Wo es scheint, dass das Gerät die Befehlszeilenoptionen als Nichtoptionsargumente interpretiert und einen Fehler erzeugt, weil sie keine installierten Paketnamen sind. Dies ließ mich vermuten, dass sich das ADB-Protokoll oder die Befehls- / Dienstaufrufoptionen auf dem Gerät im Verhältnis zum Host geändert hatten, sodass ich eine ältere Version von ADB und Voila ausprobierte. Es funktionierte.
Ich habe ein bisschen gegraben und bin auf die Änderung von Use escape_arg in "adb backup" gestoßen , bei der nun alle Argumente beim Aufrufen in einfache Anführungszeichen gesetzt werden
/system/bin/bu backup
. Dies erklärt das Verhalten und die in Anführungszeichen gesetzten Argumente in der Protokollnachricht. Es scheint jedoch nicht mit dem Zeitpunkt übereinzustimmen, zu dem der Fehler aufgetreten ist. Es würde auch darauf hindeuten, dass das Problem viel weiter verbreitet ist, als es zu sein scheint. Daher zögere ich, dies als Ursache zu bezeichnen, aber es könnte ein guter Ausgangspunkt für weitere Untersuchungen sein.quelle
adb backup '-noapk -noshared -all -nosystem'
stattadb backup -noapk -noshared -all -nosystem
(innerhalb einer Bash-Shell). Ohne die Anführungszeichen erhalte ich folgende logcat-Meldungen: 'unknown backup flag -all: -nosystem: -noapk', 'keine Sicherungspakete geliefert und weder -shared noch -all übergeben' und schließlich 'Finished'.Aufbauend auf der Antwort von kevenoid kann es davon abhängen, welche Version von adb auf dem Telefon ausgeführt wird.
Um herauszufinden, welche Version des Telefons nativ ausgeführt wird, gehen Sie wie folgt vor:
Finden Sie zuerst heraus, welche Version Sie auf Ihrem Desktop ausführen
Öffnen Sie dann die Shell auf Ihrem Telefon
Sobald die Shell geöffnet ist, können Sie ausführen
Beenden Sie dann die Shell, indem Sie ausführen
Ich habe festgestellt, dass auf meinem Telefon Version 1.0.31 und nicht 1.0.32 ausgeführt wird (es ist ein Samsung Note 2).
Ich habe versucht, Anführungszeichen oder Fluchtzeichen wie Hunter zu verwenden, aber keines davon funktionierte über die Windows-Befehlszeile. Durch ein Downgrade wurde jedoch das Inkompatibilitätsproblem zwischen den beiden Versionen behoben.
Ich konnte die ältere Version anhand der Anweisungen hier finden: https://stackoverflow.com/a/23022718/1741542
Der von mir verwendete Download-Link war:
http://dl-ssl.google.com/android/repository/platform-tools_r20-windows.zip
Andere Plattformen:
http://dl-ssl.google.com/android/repository/platform-tools_r20-macosx.zip
http://dl-ssl.google.com/android/repository/platform-tools_r20-linux.zip
quelle
Die anderen Antworten zu den angegebenen Befehlsargumenten sind korrekt. Ich habe festgestellt, dass es funktioniert, wenn Sie den Leerzeichen zwischen den Argumenten entkommen.
So was:
adb backup -apk\ -shared\ -all\ -system
quelle
Keine der Problemumgehungen hat hier für mich funktioniert, und ich möchte meine SDK-Tools nicht downgraden. Folgendes habe ich mir ausgedacht: Überspringe
adb backup
den Computer und gehe über direkt zum Gerätadb shell
.Dadurch wird
/system/bin/bu
die Sicherungsdatei aufgerufen und auf STDOUT (Dateideskriptor Nr. 1) abgelegt. Parameter sind gleichadb backup <params>
->bu 1 backup <params>
. Die Ausgabe wird in eine Datei auf dem Gerät umgeleitet und kann dann wie jede andere Datei abgerufen werden.Der einzige Nachteil ist, dass Sie keine vollständige Sicherung durchführen können, wenn Ihr Gerät mehr als halb voll ist. Dies kann umgangen werden, wenn Sie einen externen SdCard-Steckplatz haben.
bu
kann dort auch auf Android 4.4.2 schreiben, da es sich um eine System-App handelt./mnt/extSdCard/backup.ab
hat bei mir genauso gearbeitet wie/sdcard
.quelle
Seufz, es tut mir wirklich leid, wenn dies der Fall ist, und Sie scheinen nach Ihren Screenshots und Befehlszeilen vorsichtig zu urteilen, aber ich habe zu meinem Leidwesen die gleichen Symptome festgestellt und dachte, ich poste, nur für den Fall, dass zukünftige Entdecker es hier schaffen. Es stellt sich heraus, dass adb in Bezug auf einfache und doppelte Striche in seinen Optionen sehr wählerisch ist. Für mich haben doppelte Striche genau diesen Fall wiedergegeben: gleiche Eingabeaufforderung auf dem Telefon, gleiche 0-Byte-Datei. Einzelne Striche , obwohl es lange Argumentnamen gibt, wirkten wie ein Zauber.
Falls es darauf ankommt, ist mein Handy ein Samsung Galazy Note 2 AT & T SGH-i317 mit Android 5.1 / Cyanogenmod 12.1.
quelle
Sie müssen den Befehl adb backup für adb Version 1.0.31 ausführen.
Für Windows habe ich:
Log:
$ adb backup -apk -obb -shared -all -system -f bckp.ab
Der ADB-Server ist veraltet. Tötung...
Entsperren Sie nun Ihr Gerät und bestätigen Sie den Sicherungsvorgang.
... dann stellen Sie alles wieder auf normal.
quelle
OK, so habe ich meins repariert.
Ich habe Hunter Perrins Lösung ausprobiert:
Es wurde jedoch sofort ohne Fehler und ohne Sicherungsbildschirm auf dem Telefon zurückgegeben.
Durch Versuch und Irrtum funktionierte dies für mich:
quelle
Ich denke, ich habe eine Lösung für diejenigen, die 1.0.32 verwenden:
Geben Sie ein Passwort ein, wenn Sie auf dem Android-Bildschirm dazu aufgefordert werden
Trotz der Tatsache, dass es besagt, dass das Standardkennwort verwendet wird, wenn Sie keines eingeben, glaube ich, dass dies nicht der Fall ist, und ADB 1.0.32 ermöglicht möglicherweise nicht die Erstellung unverschlüsselter Sicherungen.
Die Eingabe eines Passworts hat bei mir funktioniert, und dann habe ich "Android Backup Extractor" (Warnung Sourceforge) und "Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy" verwendet , um es in eine TAR-Datei zu extrahieren.
quelle
Ich bin auf das umgekehrte Problem gestoßen: 1.0.31 mit einem neueren Telefon (Android 7) schlägt ebenfalls fehl. 1.0.31 verwendet: als Trennzeichen, wenn Argumente an das Telefon übergeben werden. Wie
adb logcat -s BackupManagerService
gezeigt, kann die neuere adb auf dem Telefon auch nicht mit dem alten Stil umgehen:02-19 01:59:44.330 1100 9830 W BackupManagerService: Unknown package com.gameloft.android.ANMP.GloftPOHM:-apk, skipping
Glücklicherweise akzeptiert die neuere adb auch Leerzeichen als Trennzeichen, so dass das Einschließen der Argumente in doppelte Anführungszeichen funktioniert, zB:adb.exe backup "com.gameloft.android.ANMP.GloftPOHM -apk" -f game-backup.ab
quelle