Solo para referencia de otros, aquí hay algunos antecedentes sobre el formato de archivo .ab.
El archivo de copia de seguridad de Android (* .ab) es un archivo TAR comprimido . Se comprime usando el algoritmo DEFLATE . Además de eso, puede haber encriptación AES utilizada. Esto se determina cuando crea la copia de seguridad; si ingresa una contraseña, la copia de seguridad se cifra, de lo contrario; no hay cifrado, solo está comprimido.
El HEADER del archivo es un poco diferente a un archivo DEFLATE normal. Contiene información sobre la copia de seguridad y tiene el siguiente aspecto:
ANDROID BACKUP
1
1
none
La primera línea es la línea "Magia" . La siguiente línea es la versión del formato de archivo de copia de seguridad de Android. La siguiente línea es un booleano (verdadero o falso, 1 o 0) que indica si el archivo está comprimido. La última línea es el tipo de cifrado. Este ejemplo no está usando ningún cifrado. Si hubiera una contraseña, la línea leería "AES-256". Después de eso es el cifrado de cifrado. Si no hay contraseña, se inicia el "archivo" DEFLATE.
Está comprimido usando el Deflater de Java . Lo cual, desde la perspectiva de los desarrolladores, causa problemas si desea usar algo además de Java para extraerlo. No he podido encontrar nada que pueda desinflarlo usando el mismo algoritmo, aunque se supone que todo lo que he encontrado (por ejemplo, C #) sigue el "SPEC".
Dicho esto, hay un proyecto de código abierto bajo la licencia Apache 2.0, escrito por Nikolay Elenkov que le permitirá extraer el archivo .ab en un archivo tar.
Uso:
java -jar abe.jar unpack <backup.ab> <backup.tar> <password>
Si no está seguro de cómo usar realmente eso (que está más allá del alcance de esta respuesta), la próxima versión de Droid Explorer v0.8.8.7 ( disponible aquí ) le permitirá hacer exactamente esto, y más, directamente desde Explorer. Puede leer más sobre las funciones en mi blog (sí, lo sé, un enchufe descarado. Lo hago cuando se ajusta a la pregunta)