1. ホーム
  2. android

[解決済み] 自分のAndroidアプリの(プライベートな)データを引き出すにはどうしたらいいですか?

2022-11-01 15:52:28

質問

を使用して単一のファイルを取り出そうとしています。

adb pull /data/data/com.corp.appName/files/myFile.txt myFile.txt

で失敗します。

failed to copy '/data/data/com.corp.appName/files/myFile.txt myFile.txt' to 'myFile.txt': Permission denied

USBデバッグがデバイス上で有効になっているにもかかわらず。

古風なルートでこの問題を回避できる

adb shell
run-as com.corp.appName
cat files/myFile.txt > myFile.txt

のように記述しますが、これは複数のファイルに対して扱いにくいです。

どのようにすれば、私のMacBookに/data/data/com.corp.appName/filesというディレクトリを引っ張ってくることができますか?

これを直接行うか、`/storage/sdcard0/myDir (ここから Android File Transfer を続けることができます) のトランジットを介して行うことは問題ありません。

追加コメント

もしかしたら、ただ走るだけで

adb backup  -f myFiles com.corp.appName

を実行すると、私が探しているファイルが生成されます。その場合、私は結果のバックアップをuntar/unzipする方法を探しています!

どのように解決するのですか?

adb backupは、Android専用のアーカイブを書き込みます。

adb backup  -f myAndroidBackup.ab  com.corp.appName

このアーカイブは、tar 形式に変換することができます。

dd if=myAndroidBackup.ab bs=4K iflag=skip_bytes skip=24 | openssl zlib -d > myAndroidBackup.tar

参照

http://nelenkov.blogspot.ca/2012/06/unpacking-android-backups.html

そのリンク先で "Update" を検索してください。


別の方法として Android バックアップ抽出ツール を使用して、Android バックアップからファイルを抽出することもできます ( .ab )ファイルからファイルを抽出します。