Jutilise adb backup pour sauvegarder mon smartphone Android; et comme indiqué dans de nombreux articles, tels que https://stackoverflow.com/questions/18533567/how-to-extract-or-unpack-an-ab-file-android-backup-file – jai essayé de le convertir en .gz; par exemple:

 $ 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  

Un commentaire dans la publication du SO lié mentionne:

Il se plaint probablement parce que backup.ab na pas le pied de page de fichier gzip approprié avec la somme de contrôle CRC-32 et la longueur

Donc, ma question est: étant donné un mybackup.gz comme ci-dessus, qui a un en-tête de fichier .gz correct mais un pied de page de fichier incorrect – comment pourrais-je générer et ajouter ou remplacer le pied de page (avec un peu de chance ceci est faisable en plain shell / Bash, mais je ne voudrais pas une solution de langage différente), de sorte que de mybackup.gz jobtiens mybackup_fixed.gz , qui contiendrait toutes les données disponibles, mais ne provoquerait pas de unexpected end of file lors de linspection avec, par exemple, tar tzvf?

Commentaires

  • Cette commande magique na ' pas la même apparence que dans la réponse à la question SO. Votre commande tail est assez différente de tail -c +25 mybackup.ab.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *