Cloudfone Thrill 400qxが何かの拍子にエラーを頻発するようになり、メディアストレージが有効化しなくなったので調査。そして解決しなかった顛末をメモ。あとで見返せるように自分用のメモなので内容等については一切保証しません。
現象
「プロセスandroid.process.mediaは停止しました」というエラーが、画像等を扱うアプリ起動、アプリ関連操作などのたびに発生する。スマホのカメラは動くが写真が保存できない。ギャラリーなども見られない。
対応
- メディアストレージなるシステムアプリのキャッシュを削除すれば直るという情報があったので、キャッシュやデータ削除、再起動するも直らず。
- 同アプリを無効化して有効化すれば、という手立ても駄目。
- 無効化したまま有効化せずに再起動してみたら、そのまま有効化できなくなってしまった(設定→アプリの同アプリ設定画面で、有効化ボタンがきえて「アップデートのアンインストール」「強制終了」だけになってしまった)。ただしエラーは消えたが、写真が保存できないなどの現象は同じ。
- この状況で、ギャラリーなどから画像は見られないが、ESファイルエクスプローラーでSDカードを見ると写真は撮影できている。しかし、たとえばLINEで写真を添付しようとしても写真一覧が出ない。
ADBコマンドによる操作
仕方ないので、Android SDKとドライバーがインストールされたPCにUSB接続し、ADBコマンドで直接アプリの有効化を試みました。しかし、root権限が必要らしく「killed」という表示が出るだけで状況変わらず。
- [MOD]Enable/Disable Media Scanning at boot
- http://forum.xda-developers.com/showthread.php?t=1409780
- アプリの無効/有効をコマンドで切り替える方法/Yukiの枝折
- http://yuki312.blogspot.jp/2012/01/blog-post_20.html
Rootが必要ということなので……仕方なく下記サイトをみてSRS Rootを入手、Root化を実施。
- Android Rooting And Updates For CLOUDFONE Cloudfone Thrill 400qx With Android Version 4.X Jelly Bean
- http://hexamob.com/devices/devices-devices/android-rooting-methods-for-cloudfone-cloudfone-thrill-400qx-with-android-version-4-x-jelly-bean/
しかし駄目。
そのあと、いろいろ調べながら試行錯誤する中で「アップデートのアンインストール」を実行してしまい、とうとうアプリの一覧にも出てこなくなりました。
MediaProviderの再インストールを図る
(この後の作業は、実施前に実ファイルであるMediaProvider.apk/odexファイルをSDカードなどにコピー退避して実施しています。なお、システムディレクトリの内容なので、rootエクスプローラー機能をONにしたESファイルエクスプローラーなどでないと元に戻す作業もできませんので注意)。
ADB shellから下記コマンドでアプリ一覧を見ても対象が出てこなくなりました。
pm list packages
どうもアンインストールされてしまっているようだったので、ならば再度インストールすれば……と、ESファイルエクスプローラーからAPKファイル(/system/app/MediaProvider.apk)を実行、インストールを選択するも「インストールされていません」の表示が出るだけ。
ADB shellから下記コマンドでアプリのインストールを図るも「INSTALL_FAILED_DEXOPT」エラーが出て駄目。
cd /system/app pm install MediaProvider.apk
DEXOPTエラーはAPKファイルに含まれるデータ等を外出しにしたもの?(ごめんなさいAndroid開発のイロハが分かってないので正体を把握しきれてない)。どうやらこれに関するエラーらしく原因の1つには既に登録されているクラスの命令数が多すぎる、とかいろいろあるみたい。
時間もないので簡単な回避法だけ調べてみてたのですが見当たらず。
odexファイル無しでインストールするには、odex無しオプションで作られたapkファイルが必要なようで……そうなるともう、Androidのシステムアプリをソースからビルドし直すしかなさそう。出来なくはないのかも知れないけど、おそらくアプリへの署名とか、いろんな障壁があるだろうし今からそれは無理……ということで…
実物をダウンロードしてくる
えっと……うさんくさいのですがとりあえずMediaProvider.apkを下記サイトからダウンロードしてきました。
[rom gnexus ported by elitemovil] JZO54K OFI… - Pg. 115 | Samsung Galaxy S I9000 | XDA Forums
どうやらodexファイル無しのバージョンのようです。これを/system/appに上書きして端末を再起動すると、自動的に認識して……
「プロセスandroid.process.mediaは停止しました」というエラーでる状態に戻りました!めでたしめでたし……って解決してねぇ!!!!
参考:Cloudfone Thrill 400qxの端末情報
とりあえず、端末のVIDとPID情報をメモっておく。
ドライバのインストールに必要かとおもいましたが、とりあえず汎用のドライバで端末認識したのでOKでした。
参考:Android SDKのインストール先
特に変更とかせずに導入したらここになったようです。
C:\Users\(USER_NAME)AppData\Local\Android\sdk\extras\google\usb_driver

- 作者: 蒲生睦男
- 出版社/メーカー: シーアンドアール研究所
- 発売日: 2015/02/21
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る

はじめてのAndroidアプリ開発―Android4対応版 (TECHNICAL MASTER)
- 作者: 山田祥寛
- 出版社/メーカー: 秀和システム
- 発売日: 2012/11/01
- メディア: 単行本
- クリック: 6回
- この商品を含むブログ (8件) を見る