emobile GS02をセカンドデバイスで使用しているのですが突然Playストアアプリが消えてしまいました(・・;)
そもそも消えるはずもないアプリです。
わからないけど私のGS02はルート化している為、インストール済みの何かの野良アプリにのっとられたのでしょうか?
adbでPCからUSB接続してshellで検索してもマーケットアプリが存在しない(消えている)ことがわかりました。
ちなみにマーケットアプリはデバイスの下記のapkです。
/system/app/
Vending.apk
これはPlayストアそのものではなくPlayストア以前のマーケットアプリです。これがアップデートされてPlayマーケット化されるのでこのapkは必須なわけです。つまり消えるわけもないし、初期状態で必ずインストールされているアプリです。
仕方ないのでadb push でデバイスに送り込むことにしたのですが、私のgs02はルート化しているものの/systemがリードオンリーだったり、cpコマンドが無かったりとかなりセキュリティの壁にハマりました。
GS02に転送したVending.apk(マーケットアプリも
ココにUpしておきます。)
というかそれを崩すにはデフォルトでインストールされているコマンドが不足しているんです。
一応busyboxを
ここからDLしてまず入れることにした。→
ここのサイトも参考にした。
落としてきたbusyboxを下記のコマンドで一旦SDCARDへ転送します(他のフォルダは書込み権限がない)。
adb push busybox /mnt/sdcard
adb shell で su してスーパー権限になり、 busyboxを移動します。。
mv /mnt/sdcard/busybox /data/busybox
そしてインストール
cd /data/busybox
chmod 755 ./busybox
./busybox --install
busyboxはUNIXコマンドのかき集めです。
/data/busyboxにインストールしておき、/system/bin/ 内から使うコマンドを下記のようにシンボリックリンクを張っておくといいかもしれません。
ln -s /system/bin/cp /data/busybox/cp
した準備ができたとこで Vending.apk を sdcard へadb pushします。
adb push Vending.apk /mnt/sdcard
そしてadb shell で再度スーパー権限になり
cp /mnt/sdcard/Vending.apk /system/app/
すると「Read-only file system」のパーミッションエラーで叱れます。
どうも /system/appはリードオンリーぽいです。
マウント情報を下記のコマンドで取得します。
mount | grep system
すると以下の情報が得られます。
/dev/block/mmcblk0p12 /system ext4 ro,relatime,barrier=1,nodelalloc,data=ordered
0 0
ということでro を
rw にして再マウントします。
mount -o rw,remount /dev/block/mmcblk0p12 /system
これで /systemディレクトリは書き込み可能になりました。
その後は下記のコマンドを再度たたくとマーケットアプリがインストールされて万々歳です!
cp /mnt/sdcard/Vending.apk /system/app/
なお権限は他のapkと同等にしておきます。
chmod 644 Vending.apk
chown root.root Vending apk
ls -l でパーミッションをチェックします。
-rw-r--r-- root root 1844811 2011-02-28 18:35 Vending.apk
結局何故消えたたかわりませんが同じ災難に見舞われた方は上記は有効な手段かと思います。
ちなみに上記は emobile gs02 の場合なのでそれ以外のデバイスでは /dev/block/ 以下を適宜読み替えたりしましょう。