Tengo un teléfono inteligente Samsung Galaxy S2 GT-I9100 con LineageOS y TWRP. Cada semana hago una copia de seguridad con el siguiente comando:
adb backup -f twrp-20170322.ab --twrp boot data system
Opcionalmente --compress
, también puedo usar la opción.
¿Hay alguna manera de extraer el twrp-20170322.ab
archivo de copia de seguridad con las herramientas de línea de comandos GNU / Linux stardard? También consideraré instalar software adicional si es necesario, pero debe ser gratuito (como en libertad).
Enlaces:
--compress
al crear la copia de seguridad, ¿crea copias de seguridad sin comprimir? En este último caso, intente omitir elzlib
parámetro (o hágalo al revés y especifique--compress
al crear la copia de seguridad;).openssl
). Pero cuando trato de enumerar el contenido del archivo tar con tar -tf twrp-20170320.tar obtengo: tar: Esto no se parece a un archivo tar; tar: Saltando al siguiente encabezado; tar: Salir con estado de falla debido a errores anteriores--compress
opción conadb
: comprime de manera menos eficiente quexz
. Prefiero ahorrar tanto espacio como sea posible. Pero eso no está relacionado con mi problema inicial.--compress
allí). De su declaración (adb backup …
) asumí el mismo formato. Si solo está usando una compresión diferente, debe considerar eso.openssl
es necesario para descifrar la copia de seguridad, por lo que sin eso, no obtendrá una válida.tar
. De sus últimos comentarios, supongo que debe reemplazarzlib
por la parte correspondiente paraxz
. Aparte de eso, se me acabaron las ideas, lo siento.He descubierto que los
.ab
archivos generados por TWRP son diferentes de losadb backup
archivos normales , por lo que el desplazamiento es diferente de los.ab
archivos normales . Pude inspeccionar y extraer archivos usando (por ejemplo para inspeccionar) el siguiente comando:Aparentemente, el encabezado puede ser más largo, pero debe estar alineado con los límites de 512 bytes, así que simplemente modifique el
skip=
parámetro si no puede encontrarlo al principio.Tenga en cuenta que el formato de archivo se define en twadbstream.h , si necesita profundizar más en esto.
fuente
El problema con el enfoque ingenuo basado en dd es que hay metadatos cada cierto tiempo en el archivo. Esto da como resultado la corrupción de archivos de cualquier longitud significativa.
Escribí una herramienta de extracción que utiliza twadbstream.h (gracias @anarcat) que he utilizado para recuperar con éxito grandes (~ 10GB) copias de seguridad de ADB TWRP de múltiples archivos del sistema. twrpabx
fuente