Ich verwende adb backup, um mein Android-Smartphone zu sichern. und wie in vielen Beiträgen erwähnt, wie z. B. https://stackoverflow.com/questions/18533567/how-to-extract-or-unpack-an-ab-file-android-backup-file – Ich habe versucht, es in .gz zu konvertieren. Zum Beispiel:

 $ adb backup -apk -shared -all -f mybackup.ab Now unlock your device and confirm the backup operation... $ (printf "\x1f\x8b\x08\x00\x00\x00\x00\x00" ; tail -n +5 mybackup.ab) > mybackup.gz $ tar tzvf mybackup.gz ... gzip: stdin: unexpected end of file drwxrwx--- 0/9997 0 2020-02-22 10:23 shared/0/Notifications drwxrwx--- 0/9997 0 2020-02-22 10:23 shared/0/Ringtones drwxrwx--- 0/9997 0 2020-02-22 10:23 shared/0/Podcasts tar: Child returned status 1 tar: Error is not recoverable: exiting now  

Ein Kommentar im verlinkten SO-Beitrag erwähnt:

Es wird wahrscheinlich beanstandet, weil die Datei backup.ab nicht über die richtige Fußzeile für gzip-Dateien mit CRC-32-Prüfsumme und Länge verfügt.

Meine Frage lautet also: Bei einem mybackup.gz wie oben, das einen korrekten .gz-Dateikopf, aber eine falsche Dateifußzeile hat – wie könnte ich die Fußzeile generieren und anhängen oder ersetzen (hoffentlich)? Dies ist in Plain Shell / Bash machbar, aber ich hätte nichts gegen eine andere Sprachlösung), so dass ich aus mybackup.gz mybackup_fixed.gz erhalte , die alle verfügbaren Daten enthalten würde, aber kein unexpected end of file verursachen würde, wenn sie beispielsweise mit tar tzvf?

Kommentare

  • Dieser magische Befehl ' sieht nicht so aus wie in der Antwort auf die SO-Frage. Ihr Befehl tail unterscheidet sich erheblich von tail -c +25 mybackup.ab.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.