更新日: 2017-12-14 (木) 15:42:22 (39d)

: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


選択肢 投票
役に立った 0  
役に立たなかった 0  
どちらでもない 0  
このページが参照された数
Total: 113, 今日: 1, 昨日: 0

でじうぃきは神奈川県横浜市の位置情報システム・スマホアプリ開発の株式会社オンラインコンサルタントが運営しています。
投稿
トップ   このページを編集する 再編集不可にする 差分 バックアップ 添付 複製 名前変更 リロード   新しいページを作る 一覧 検索する 最新の更新   ヘルプ   最終更新のRSS
Last-modified: 2017-12-14 (木) 15:42:22 (39d)