2013-08-30 16 views
18

Używam android 4.0.3 urządzenie i chcę, aby wyodrębnić plik z powrotem w górę stworzony przez:Jak wyodrębnienie rozpakować plik .ab (Android pliku kopii zapasowej)

adb backup -f ~/data.ab -noapk app.package.name 

Powyższe robót liniowych wewnątrz CMD (Windows) i jestem w stanie uzyskać plik data.ab wewnątrz katalogu "~".

Nie mogę wykonać tego pliku, używając CMD. Próbowałem poniższych dwóch metod.

dd if=data.ab bs=1 skip=24 | openssl zlib -d | tar -xvf - 

dd if=data.ab bs=1 skip=24 | python -c "import zlib,sys;sys.stdout.write(zlib.decompress(sys.stdin.read()))" | tar -xvf - 

otrzymuję poniżej błąd

error

Próbowałem wydobywania go za pośrednictwem Cygwin, jednak nie udało mi się zbyt.

error

Gdzie powinienem zrobić ekstrakcję? W jakim katalogu powinien być mój wiersz polecenia? Wszelkie spostrzeżenia?

Odpowiedz

12

Musiałem też rozpakować plik-.ab i znalazłem ten wpis, szukając odpowiedzi. Moje sugerowane rozwiązanie to Android Backup Extractor, bezpłatne narzędzie Java dla systemów Windows, Linux i Mac OS.

Jeśli napotkasz problem, spójrz na numer README. Być może będziesz musiał pobrać dalsze pliki, jeśli twój plik .ab jest chroniony hasłem.

Zastosowanie:
java -jar abe.jar [-debug] [-useenv=yourenv] unpack <backup.ab> <backup.tar> [password]

Przykład:

Powiedzmy, że masz plik test.ab, która nie jest chroniona hasłem, używasz Windows i chcesz otrzymany .tar -Archive nazywać się test.tar. Wówczas polecenie powinno być:

java.exe -jar abe.jar unpack test.ab test.tar ""

9

Zgodnie https://android.stackexchange.com/a/78183/239063 można uruchomić polecenie jednego wiersza w Linuksie rozebrać niektóre dane nagłówka i dodać w odpowiednim nagłówku smoły, aby go rozpakować.

(printf "\x1f\x8b\x08\x00\x00\x00\x00\x00" ; tail -c +25 backup.ab) | tar xfvz -

EDIT - Wymienić backup.ab ze ścieżką do pliku.

+1

Wydawało się działać, chociaż kończyło się na 'gzip: stdin: nieoczekiwany koniec pliku'' tar: Child zwrócił status 1' 'tar: Błąd nie można odzyskać: exiting now' - zakładając, że to normalne? – tobek

+2

@tobek, tak, jeśli uruchomisz komendę tak, jak podano, ale narzekasz, ale generuje poprawne wyjście. Prawdopodobnie narzeka, ponieważ backup.ab nie ma właściwej stopki pliku gzip z sumą kontrolną CRC-32 i długością. – hft