[Android] アプリの内部メモリを覗くとパーミッションでブロックされる

Androidアプリでデータを内部メモリに保存することはよくありますが、このデータを確認しようとするとパーミッションでブロックされます。こんな時は、adbコマンドの run-as を使います。
 
run as a02 - [Android] アプリの内部メモリを覗くとパーミッションでブロックされる

 



run-as

 
/data/data/アプリパッケージ名/ 以下が内部ストレージに相当するのですが、ターミナルを使って入ろうとするとパーミッションでブロックされます。
アプリ内に保存したデータを見るには

  • run-as [アプリパッケージ名]
  • Device File Explorer: その昔ADMとかDDMSと呼ばれていたFile Explorer
     

を使うとできる場合があります。
(必ず全て見られる訳ではありません、開発で使用するのが目的ですから)
 

 

adb run-as

 
Android Studioをインストールしていれば付属の「Terminal」を使えば問題ありません。単体でSDKをインストールしているだけであれば、adbを実行するためにパスを通すか、直に adb があるフォルダにターミナルで入ります。

また、AndroidManifest.xml の application タグ内で「android:debuggable=”false”」となっている場合は、true にするかこの設定を外しておきます。

adb shell で入り
run-as [アプリパッケージ名]

これで ls コマンドでストレージ内のファイルが確認できます
android なのでLinuxコマンドでls, cd などが使えます

 
ファイル等は特に指定しない場合 /files 以下に保存されています。Textファイルの確認は cat でできますが、画像ファイル等は読み書きができる場所に移してから確認します。
 
画像ファイルを 外部ストレージにコピーする(あるいは書き込み可能領域にコピー)

 
尚、端末により外部ストレージのパスは異なりますので、それぞれ確認が前もって必要です
 
その後、adb pull を使って画像ファイルをPCのフォルダへコピーし
shell を一度出てから adb pull を行います。
 

 
これで画像を確認できます

 

実機でrun-as

 
実機で試してみました。
アプリはアプリ内でファイルを保存で作成したもので
packagename: com.example.testfileoutin
testfile.txt というファイルに「test123456789」と入力して保存したものです。

 
尚、releaseされたアプリは基本的にはできません
例えばgoogleのchromeアプリなどはdebugできないと出てきます

Devie File ExplorerでEmulatorのChromeを見たケース:

run as 02 - [Android] アプリの内部メモリを覗くとパーミッションでブロックされる
 
debug releaseしたものに限るようです。
 
SharedPreferences:
SharedPreferencesのテストアプリをNexus 5Xにインストールしてrun-asで中をのぞいてみた動画です。
 

 

誤字脱字、意味不明で分からにゃイ、
などのご意見はこちらから mailフォーム

ブックマークしておくと便利です このエントリーをはてなブックマークに追加




アプリ開発が上達するお勧め

アプリ開発を始めたけどわからないところがあり、誰かに聞きたいけど周りにはそんな人はいない…あるいは、会社で働いていて日中そんなに時間をとれないなど、オンラインのプログラミングスクールがいいでしょう、時間の制約がないところが一番の魅力です。

以下の3つはAndroidが学習できるオンラインスクールです。


TECH ACADEMY
Androidアプリコース



侍エンジニア塾
侍エンジニア塾 無料体験レッスン



CodeCamp
~約8,000名の受講生と80社以上の導入実績~
現役エンジニアのオンライン家庭教師CodeCamp





正直ネットや本では限界があります。直接(ネットで)誰か分かる人に聞いた方が早く解決して、上達も早いと思います。

尚、スクールがダメだと言う人がいますが、やる気があれば問題ありません。与えられるのを待っていてはいけないですね
欲しいものは取りに行くのです。


Google Pixel 3 XLグローバル版
SIMフリー 並行輸入品
6.3インチの大画面
背景をぼかすポートレートモード撮影

Anker PowerCore II Slim 10000
Power IQ 2.0搭載
iPhone & Android対応

シェアする

  • このエントリーをはてなブックマークに追加

フォローする