Solo per riferimento ad altri, ecco alcuni retroscena sul formato di file .ab.
Il file di backup Android (* .ab) è un file TAR compresso . È compresso usando l' algoritmo DEFLATE . Inoltre, è possibile utilizzare la crittografia AES . Questo viene determinato quando si crea il backup, se si immette una password, il backup viene crittografato, altrimenti; non c'è crittografia, è solo compresso.
HEADER del file è leggermente diverso da un normale archivio DEFLATE. Contiene informazioni sul backup e ha il seguente aspetto:
ANDROID BACKUP
1
1
none
La prima linea è la linea "Magia" . La riga successiva è la versione del formato del file di backup Android. La riga successiva è un valore booleano (vero o falso, 1 o 0) che indica se il file è compresso. L'ultima riga è il tipo di crittografia. Questo esempio non utilizza alcuna crittografia. Se fosse presente una password, la riga visualizzerà "AES-256". Dopo questo è il codice di crittografia. Se nessuna password, viene avviato "DEFLATE" archivio.
Viene compresso utilizzando il Deflater Java . Che, dal punto di vista degli sviluppatori, causa problemi se si desidera utilizzare qualcosa oltre a Java per estrarlo. Non sono stato in grado di trovare nulla in grado di sgonfiarlo utilizzando lo stesso algoritmo, anche se tutto ciò che ho trovato (come C #) dovrebbe seguire la "SPEC".
Detto questo, esiste un progetto open source con licenza Apache 2.0, scritto da Nikolay Elenkov che ti permetterà di estrarre il file .ab in un file tar.
Uso:
java -jar abe.jar unpack <backup.ab> <backup.tar> <password>
Se non sei sicuro di come utilizzare davvero (che va oltre lo scopo di questa risposta), la prossima versione di Droid Explorer v0.8.8.7 ( disponibile qui ) ti permetterà di fare esattamente questo, e altro, direttamente da Explorer. Puoi leggere di più sulle funzionalità del mio blog (sì, lo so, spina spudorata. Lo faccio quando si adatta alla domanda)