.gzファイルで「gzip:stdin:予期しないファイルの終わり」を修正/修正しますか?

.gzファイルで「gzip:stdin:予期しないファイルの終わり」を修正/修正しますか?

私はadb backup多くの記事で指摘したように、Androidスマートフォンのバックアップに使用します。https://stackoverflow.com/questions/18533567/how-to-extract-or-unpack-an-ab-file-android-backup-file- たとえば、.gzに変換してみました。

$ 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

リンクされたSO投稿のコメントには、次のものがあります。

backup.abにCRC-32チェックサムと長さを含む正しいgzipファイルフッターがないため、苦情が発生する可能性があります。

したがって、私の質問は次のようになります。上記のmybackup.gzに正しい.gzファイルヘッダーがありますが、ファイルフッターが間違っています。フッターを作成、追加、または置き換える方法は何ですか(通常のシェル/ Bashで動作するようにしてください)可能ですが、他の言語ソリューションを使用しても構いません。利用可能なすべてのデータが含まれていますが、mybackup.gz?とチェックしてもmybackup_fixed.gz結果は表示されません。unexpected end of filetar tzvf

ベストアンサー1

おすすめ記事