動作環境
- Android 4.4以上(SELinuxのenforcingモードが有効になった環境)
- Windowsの母艦PC
症状
- 端末のアプリ等からは内部ストレージ(/sdcardや/storage/emulated/0、等)の下に確かに見えるファイルが、
端末をPCにUSB接続した場合にのみ「内部ストレージ」フォルダの下に見えない。
- そのファイルは通常のアプリで作成したものではない(例えばリカバリやrootedアプリなどで作成)
対処
- 端末でLinuxのコマンドを受け付ける状態にする(ターミナルアプリ又はadb shellコマンド等で可能)。
- ls -Z で問題の(PCから見えない)ファイルの状態を表示。
- -Zオプションは、通常のls -lの表示に加えて、SELinuxのコンテキストを表示する。
- ls -Z でファイル名の直前に表示されているのがSELinuxコンテキスト。
- 問題のファイルのコンテキストが周りのファイルと異なって(例:下記)いれば、以下の手順で見えるようになるはず。u:で始まる部分がSELinuxコンテキスト。この例ではclockworkmodディレクトリのコンテキストが周りと異なっている。
...
drwxrwxr-x media_rw media_rw u:object_r:media_rw_data_file:s0 appmonster3
drwxrwxrwx root root u:object_r:unlabeled:s0 clockworkmod
drwxrwxr-x media_rw media_rw u:object_r:media_rw_data_file:s0 kindle
...
- chconコマンドで問題のファイルのコンテキストを変更。
chcon u:object_r:media_rw_data_file:s0 clockworkmod
(工事中)
(2015-01-04)
Tag: Android Google 内部ストレージ 見えない
htmlinsert(): The given local file does not exist or is not readable.