Käytän adb backup varmuuskopioimaan Android-älypuhelimen; ja kuten monissa viesteissä, kuten https://stackoverflow.com/questions/18533567/how-to-extract-or-unpack-an-ab-file-android-backup-file – todettiin – olen yrittänyt muuntaa sen .gz-muotoon; esimerkiksi:

 $ 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  

Linkitetyn SO-viestin kommentissa mainitaan:

Se on todennäköisesti valittavaa, koska backup.ab-tiedostossa ei ole oikeaa gzip-tiedoston alatunnistetta, jossa on CRC-32-tarkistussumma ja pituus

Joten kysymykseni kuuluu: annettu yllä olevan kaltainen mybackup.gz-tiedosto, jolla on oikea .gz-otsikko, mutta virheellinen alatunniste – miten voin luoda ja lisätä tai korvata alatunnisteen (toivottavasti tämä voidaan tehdä tavallisessa kuoressa / Bashissa, mutta en haluaisi muulla kielellä olevaa ratkaisua), joten saan mybackup.gz -kohdasta mybackup_fixed.gz , joka sisältäisi kaikki saatavilla olevat tiedot, mutta ei aiheuttaisi unexpected end of file -tarkastusta esimerkiksi sanalla tar tzvf?

Kommentit

  • Maaginen komento ei näytä ' näyttävän samalta kuin vastauksessa SO-kysymykseen. tail -komentosi eroaa melkoisesti komennosta tail -c +25 mybackup.ab.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *