Folosesc adb backup pentru a-mi face backup smartphone-ului meu Android; și așa cum sa menționat în multe postări, cum ar fi https://stackoverflow.com/questions/18533567/how-to-extract-or-unpack-an-ab-file-android-backup-file – Am încercat să îl convertesc în .gz; de exemplu:

 $ 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 comentariu în postarea SO legată menționează:

Probabil se plânge deoarece backup.ab nu are subsolul fișierului gzip adecvat cu suma de verificare și lungimea CRC-32

Deci, întrebarea mea este: dat un mybackup.gz ca mai sus, care are un antet de fișier .gz corect, dar subsol de fișier incorect – cum aș putea genera și adăuga sau înlocui subsolul (sperăm acest lucru este realizabil în shell simplu / Bash, dar nu mi-ar deranja o altă soluție de limbaj), astfel încât din mybackup.gz obțin mybackup_fixed.gz , care ar conține toate datele disponibile, dar nu ar provoca un unexpected end of file atunci când este inspectat cu, să zicem, tar tzvf?

Comentarii

  • Acea comandă magică nu ' nu arată la fel ca în răspunsul la întrebarea SO. Comanda tail este destul de diferită de tail -c +25 mybackup.ab.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *