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 파일 헤더가 있지만 잘못된 파일 바닥 글이 있습니다. 바닥 글을 어떻게 생성하고 추가하거나 바꿀 수 있습니까? 이것은 일반 셸 / 배시에서 수행 할 수 있지만 다른 언어 솔루션은 상관하지 않습니다. 따라서 mybackup.gz
에서 mybackup_fixed.gz
를 얻습니다. , 사용 가능한 모든 데이터를 포함하지만 tar tzvf
와 같이 검사 할 때 unexpected end of file
가 발생하지 않습니까?
tail
명령이tail -c +25 mybackup.ab
와 상당히 다릅니다.