2019/01/09

Android: /data/data配下にadb push

/data/data/<Application ID>/配下にADBでファイル追加しようとするとpermission errorで失敗した✍

issueはこれ.
https://issuetracker.google.com/issues/37138359

Android Studioに付属してるFileExplorerを使えばファイルを追加できた.
FileExplorerは次の手順を踏んでいた。

# ファイルを一時領域へコピー 
$ adb push hoge /data/local/tmp 

# アプリユーザに切り替え 
$ adb shell 
$ adb run-as <Application ID>

# ファイルコピー 
$ cp /data/local/tmp/hoge /data/data/<ApplicationID>/hoge

## ↑でエラーが出た場合はcatリダイレクトする
$ cat /data/local/tmp/hohe > /data/data/<Application ID>/hoge

FileExplorerのコードはこの辺.

https://android.googlesource.com/platform/tools/adt/idea/+/studio-3.2.1/android/src/com/android/tools/idea/explorer/adbimpl/AdbDeviceDataDirectoryEntry.java#246

https://android.googlesource.com/platform/tools/adt/idea/+/studio-3.2.1/android/src/com/android/tools/idea/explorer/adbimpl/AdbFileOperations.java#225

以上.