K zálohování svého smartphonu se systémem Android používám adb backup; a jak je uvedeno v mnoha příspěvcích, například https://stackoverflow.com/questions/18533567/how-to-extract-or-unpack-an-ab-file-android-backup-file – pokusil jsem se jej převést na .gz; například:

 $ 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  

Komentář v zmíněném příspěvku SO uvádí:

Pravděpodobně si stěžuje, protože soubor backup.ab nemá správnou zápatí souboru gzip s kontrolním součtem a délkou CRC-32

Takže moje otázka zní: vzhledem k výše uvedenému mybackup.gz, který má správné záhlaví souboru .gz, ale nesprávné zápatí souboru – jak bych mohl vygenerovat a připojit nebo nahradit zápatí (snad to je možné v prostém prostředí / Bash, ale nevadilo by mi jiné jazykové řešení), takže od mybackup.gz získávám mybackup_fixed.gz , který by obsahoval všechna dostupná data, ale nezpůsobil by unexpected end of file při kontrole například tar tzvf?

Komentáře

  • Tento magický příkaz nevypadá ' stejně jako v odpovědi na otázku SO. Váš příkaz tail se zcela liší od příkazu tail -c +25 mybackup.ab.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *