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.abarchivo 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:

--compressal crear la copia de seguridad, ¿crea copias de seguridad sin comprimir? En este último caso, intente omitir elzlibparámetro (o hágalo al revés y especifique--compressal 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--compressopción conadb: comprime de manera menos eficiente quexz. Prefiero ahorrar tanto espacio como sea posible. Pero eso no está relacionado con mi problema inicial.--compressallí). De su declaración (adb backup …) asumí el mismo formato. Si solo está usando una compresión diferente, debe considerar eso.openssles 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 reemplazarzlibpor la parte correspondiente paraxz. Aparte de eso, se me acabaron las ideas, lo siento.He descubierto que los
.abarchivos generados por TWRP son diferentes de losadb backuparchivos normales , por lo que el desplazamiento es diferente de los.abarchivos 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