Tylko w celach informacyjnych, oto niektóre informacje o formacie pliku ab.
Plik kopii zapasowej systemu Android (* .ab) jest skompresowanym plikiem TAR . Jest kompresowany za pomocą algorytmu DEFLATE . Ponadto można zastosować szyfrowanie AES . Jest to określane podczas tworzenia kopii zapasowej, jeśli wprowadzisz hasło, kopia zapasowa zostanie zaszyfrowana, w przeciwnym razie; nie ma szyfrowania, jest tylko skompresowane.
NAGŁÓWEK pliku różni się nieco od zwykłego archiwum DEFLATE. Zawiera informacje o kopii zapasowej i wygląda następująco:
ANDROID BACKUP
1
1
none
Pierwsza linia to „Magiczna” linia . Kolejny wiersz to wersja formatu pliku kopii zapasowej systemu Android. Kolejny wiersz to wartość logiczna (prawda lub fałsz, 1 lub 0) wskazująca, czy plik jest skompresowany. Ostatnia linia to rodzaj szyfrowania. W tym przykładzie nie zastosowano żadnego szyfrowania. Gdyby było hasło, wiersz brzmiałby „AES-256”. Potem jest szyfr szyfrujący. Jeśli nie ma hasła, rozpoczyna się DEFLATE „archiwum”.
Jest kompresowany za pomocą Java Deflater . Co z punktu widzenia programistów powoduje problemy, jeśli chcesz wyodrębnić to oprócz Javy. Nie byłem w stanie znaleźć niczego, co mogłoby go spuścić z powietrza za pomocą tego samego algorytmu, mimo że wszystko, co znalazłem (na przykład C #) powinno być zgodne z „SPEC”.
To powiedziawszy, istnieje projekt open source na licencji Apache 2.0, napisany przez Nikolay Elenkov , który pozwoli ci wyodrębnić plik .ab do pliku tar.
Stosowanie:
java -jar abe.jar unpack <backup.ab> <backup.tar> <password>
Jeśli nie jesteś pewien, jak naprawdę tego użyć (co jest poza zakresem tej odpowiedzi), następna wersja Droid Explorer v0.8.8.7 ( dostępna tutaj ) pozwoli ci to zrobić, a nawet więcej, bezpośrednio z Explorera. Możesz przeczytać więcej o funkcjach na moim blogu (tak, wiem, bezwstydna wtyczka. Robię to, gdy pasuje do pytania)