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 -
以下のエラーが表示されます
CYGWINで抽出しようとしましたが、失敗しました。
抽出はどこで行う必要がありますか?私のコマンドプロンプトはどのディレクトリにありますか?洞察はありますか?
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をファイルへのパスに置き換えます。
私も.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 ""