Top > ZakkiCho > AndroidUnseenFileInStorage
Table of Contents

動作環境

  • Android 4.4以上(SELinuxのenforcingモードが有効になった環境)
  • Windowsの母艦PC

症状

  • 端末のアプリ等からは内部ストレージ(/sdcardや/storage/emulated/0、等)の下に確かに見えるファイルが、 端末をPCにUSB接続した場合にのみ「内部ストレージ」フォルダの下に見えない。
  • そのファイルは通常のアプリで作成したものではない(例えばリカバリやrootedアプリなどで作成)

対処

  1. 端末でLinuxのコマンドを受け付ける状態にする(ターミナルアプリ又はadb shellコマンド等で可能)。
  2. ls -Z で問題の(PCから見えない)ファイルの状態を表示。
    • -Zオプションは、通常のls -lの表示に加えて、SELinuxのコンテキストを表示する。
    • ls -Z でファイル名の直前に表示されているのがSELinuxコンテキスト。
  3. 問題のファイルのコンテキストが周りのファイルと異なって(例:下記)いれば、以下の手順で見えるようになるはず。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
    ...
  4. 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.