Utilizo adb backup para hacer una copia de seguridad de mi teléfono inteligente Android; y como se indica en muchas publicaciones, como https://stackoverflow.com/questions/18533567/how-to-extract-or-unpack-an-ab-file-android-backup-file , he intentado convertirlo a .gz; por ejemplo:

 $ 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  

Un comentario en la publicación de SO vinculada menciona:

Probablemente se esté quejando porque el archivo backup.ab no tiene el pie de página del archivo gzip adecuado con la suma de comprobación CRC-32 y la longitud

Entonces, mi pregunta es: dado un mybackup.gz como el anterior, que tiene un encabezado de archivo .gz correcto pero un pie de página de archivo incorrecto – ¿cómo podría generar y agregar o reemplazar el pie de página? esto es factible en shell simple / Bash, pero no me importaría una solución de lenguaje diferente), de modo que de mybackup.gz obtengo mybackup_fixed.gz , que contendría todos los datos disponibles, pero no causaría un unexpected end of file cuando se inspeccione con, digamos, tar tzvf?

Comentarios

  • Ese comando mágico no ' no se ve igual que en la respuesta a la pregunta SO. Su tail comando es bastante diferente de tail -c +25 mybackup.ab.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *