A adb backup
fájlt használom Android okostelefonom biztonsági mentéséhez; és amint azt számos bejegyzés megjegyezte, például https://stackoverflow.com/questions/18533567/how-to-extract-or-unpack-an-ab-file-android-backup-file – megpróbáltam konvertálni .gz-be; például:
$ 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
A linkelt SO bejegyzés egyik megjegyzése megemlíti:
Valószínűleg panaszkodik, mert a backup.ab nem rendelkezik a megfelelő gzip fájl lábléccel, CRC-32 ellenőrző összeggel és hosszúsággal
Tehát a kérdésem a következő: adott egy a fentihez hasonló mybackup.gz-t, amelynek helyes .gz fájlfejléce van, de helytelen fájllábléc van – hogyan tudnám létrehozni, kiegészíteni vagy helyettesíteni a láblécet ez a sima shell / Bash fájlban is végrehajtható, de nem vennék egy másik nyelvi megoldást), így mybackup.gz
-ből mybackup_fixed.gz
, amely minden rendelkezésre álló adatot tartalmazna, de nem okozna unexpected end of file
t, ha azt mondjuk tar tzvf
?
tail
parancs teljesen eltér atail -c +25 mybackup.ab
parancstól.