Apenas para referência de outras pessoas, aqui estão algumas informações sobre o formato de arquivo .ab.
O arquivo de backup do Android (* .ab) é um arquivo TAR compactado . É compactado usando o algoritmo DEFLATE . Além disso, pode haver criptografia AES usada. Isso é determinado quando você cria o backup; se você digitar uma senha, o backup será criptografado; caso contrário; não há criptografia, é apenas compactada.
O HEADER do arquivo é um pouco diferente de um arquivo DEFLATE normal. Ele contém informações sobre o backup e é semelhante ao seguinte:
ANDROID BACKUP
1
1
none
A primeira linha é a linha "Magic" . A próxima linha é a versão do formato de arquivo de backup do Android. A próxima linha é um booleano (verdadeiro ou falso, 1 ou 0) indicando se o arquivo está compactado. A última linha é o tipo de criptografia. Este exemplo não está usando nenhuma criptografia. Se houvesse uma senha, a linha seria "AES-256". Depois disso é a cifra de criptografia. Se não houver senha, o DEFLATE "archive" será iniciado.
É compactado usando o Java Deflater . O que, da perspectiva dos desenvolvedores, causa problemas se você quiser usar qualquer coisa além do Java para extraí-lo. Não consegui encontrar nada que possa esvaziá-lo usando o mesmo algoritmo, mesmo que tudo o que encontrei (por exemplo, C #) deva seguir o "SPEC".
Com isso dito, há um projeto de código aberto sob a licença Apache 2.0, escrito por Nikolay Elenkov, que permitirá extrair o .ab em um arquivo tar.
Uso:
java -jar abe.jar unpack <backup.ab> <backup.tar> <password>
Se você não tiver certeza de como realmente usar isso (que está além do escopo desta resposta), a próxima versão do Droid Explorer v0.8.8.7 ( disponível aqui ) permitirá que você faça exatamente isso e muito mais, diretamente do Explorer. Você pode ler mais sobre os recursos do meu blog (sim, eu sei, plug descarado. Faço isso quando ele se encaixa na pergunta)