web-dev-qa-db-ja.com

.abファイル(Androidバックアップファイル)を抽出または解凍する方法

Android 4.0.3デバイスを実行しています。作成したバックアップファイルを抽出したい:

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

上記の行はCMD(windows)内で機能し、「〜」ディレクトリ内でdata.abファイルを取得できます。

私ができないことは、CMDを使用してそのファイルを抽出することです。以下の2つの方法を試しました。

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 -

以下のエラーが表示されます

error

CYGWINで抽出しようとしましたが、失敗しました。

error

抽出はどこで行う必要がありますか?私のコマンドプロンプトはどのディレクトリにありますか?洞察はありますか?

43
tony9099

https://Android.stackexchange.com/a/78183/23906 に従って、Linuxで1行のコマンドを実行して、適切なtarヘッダーを追加して抽出できます。

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

backup.abをファイルへのパスに置き換えます。

44
Puddler

私も.ab-ファイルを解凍しなければならず、答えを探しているときにこの投稿を見つけました。私が推奨する解決策は、 Android Backup Extractor 、無料のJava Windows、Linux、およびMac OS用のツールです。

問題が発生した場合は、必ず [〜#〜] readme [〜#〜] をご覧ください。 .ab-ファイルがパスワードで保護されている場合は、さらにファイルをダウンロードする必要があります。

使用法:
Java -jar abe.jar [-debug] [-useenv=yourenv] unpack <backup.ab> <backup.tar> [password]

例:

たとえば、パスワードで保護されていないファイルtest.abがあり、Windowsを使用していて、結果の.tar- Archiveをtest.tarと呼びたいとします。次に、コマンドは次のようになります。

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

31
finefoot