Używam adb backup do tworzenia kopii zapasowych mojego smartfona z Androidem; i jak zauważono w wielu postach, takich jak https://stackoverflow.com/questions/18533567/how-to-extract-or-unpack-an-ab-file-android-backup-file – próbowałem przekonwertować go na .gz; na przykład:

 $ 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  

Komentarz w połączonym poście SO wspomina:

Prawdopodobnie narzeka, ponieważ plik backup.ab nie ma odpowiedniej stopki pliku gzip z sumą kontrolną CRC-32 i długością

Moje pytanie brzmi: mając plik mybackup.gz jak powyżej, który ma poprawny nagłówek pliku .gz, ale niepoprawną stopkę pliku – jak mogę wygenerować i dołączyć lub zastąpić stopkę (miejmy nadzieję jest to możliwe w zwykłej powłoce / Bash, ale nie miałbym nic przeciwko rozwiązaniu w innym języku), więc z mybackup.gz otrzymam mybackup_fixed.gz , który zawierałby wszystkie dostępne dane, ale nie powodowałby unexpected end of file podczas sprawdzania, powiedzmy, tar tzvf?

Komentarze

  • To magiczne polecenie nie ' nie wygląda tak samo jak w odpowiedzi na pytanie SO. Twoje polecenie tail jest zupełnie inne niż tail -c +25 mybackup.ab.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *