端末暗号化ストレージに保存したpreferenceファイルを見る

Android

Android ダイレクトブートを検知するで書いたんですけど、AndroidN以降から、端末が起動して、ユーザーがロックを外す前は今までアクセスしていたPreferencesファイルにアクセスできません。

今までアクセスしていたPreferencesファイルとは、

 getDefaultSharedPreferences(context);

でアクセスしていたアレです。

なので、ユーザーがロックを外す前にPreferencesファイルから読み書きなどしたい場合は、「端末暗号化ストレージ」に保存しなくてはいけません。
今までアクセスしていたPreferencesファイルは、「認証情報暗号化ストレージ」と呼びます。

さてさて、今まで使っていた「認証情報暗号化ストレージ」は、下記のような場所にあります。
パッケージ名は「com.ukiki」だとします。

 /data/user/0/com.ukiki/shared_prefs/com.ukiki_preferences.xml

「端末暗号化ストレージ」は下記にあります。〇〇〇は任意の名前です。

 /data/user_de/0/com.ukiki/shared_prefs/〇〇〇.xml

具体的に、この「端末暗号化ストレージ」に保存した中身を見たい場合は、下記のようにします。
ADBを使います。

 adb shell run-as com.ukiki
 cd /data/user_de/0/com.ukikit/shared_prefs

ファイル名に自信がないときは、lsで一覧で確認できます。

 ls
 ukiki.xml

権限を変更してから、/sdcardなどにコピーします。

 chmod 777 ukiki.xml
 cp /data/user_de/0/com.ukikit/shared_prefs/ukiki.xml /sdcard

一応、/sdcardにコピーされたか確認します。

 cd /sdcard
 ls
 //あとはファイルの一覧が出てきます。
 exit

さて、後はadbでPCにファイルをコピーします。

 adb pull /sdcard/ukiki.xml G:\test

はぁー。やっと、これでパソコン上で端末暗号化ストレージに保存したpreferencesファイルが見られるようになりました!

ちなみに、私の愛機 Samusung Galaxy SC-02Hでは

 Operation not permitted

となってしまい、この操作はできません(>_<) サムソンではできないらしいです。残念!!! https://stackoverflow.com/questions/37413667/run-as-could-not-set-capabilities-operation-not-permitted

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です