2011年8月12日金曜日

SH-03Cでroot権限を取得して不要なキャッシュファイルを削除する

3月頭に購入したSH-03C (LYNX 3D)の本体内蔵メモリが一杯になって、アプリのアップデートもできず、メールの同期もできず困ったことになってしまいました。
初期化も考えたのですが、
LYNX 3DことSH-03Cにぴったり?ちょっと危険な空き容量枯渇対策を決行
に書かれているように、アプリのインストール・アップデートのキャッシュファイルがかなりの容量を使っているらしいということが分かりました。
初期化も面倒なため、root権限を取得してまずはこのキャッシュの削除を試みることにしました。

基本的には以下のサイトに書かれている通りに実行しましたが、一部わかりにくいところがありましたので、以下のサイトからのほぼ丸写しですが、手順をメモしておきます。
Sharp 3D SH-03C の root化とWiFiデザリング
【初心者向け】Android SDKインストール手順 2011年1月版!(windows版)


1. JDKのダウンロード・インストール (JDK未インストール時のみ)
http://www.oracle.com/technetwork/java/javase/downloads/index.html
一番最初に表示されるJava SE 7のJDKのWindows x86用をダウンロード・インストールする。(64bitのWindowsを使っている場合でも、Android SDKが未対応のため、JDKはx86用をインストールする。)

2. Android SDKのダウンロード・インストール
http://developer.android.com/sdk/index.html
installer_r12-windows.exeをダウンロード・インストールする。(数字はバージョンが上がれば大きくなる。)

3. SDK managerでAndroid SDK Platform-toolsをダウンロード・インストール
SDK managerを起動して(標準では前項から引き続き自動で起動する)、Android SDK Platform-toolsをAccept、それ以外の全てをRejectにして、[Install]。
終了したらSDK managerは閉じる。

4. Android SDKのパスを通す
環境変数のPathの値の末尾に以下を追加する。
32bitの場合:
;C:\Program Files\Android\android-sdk-windows\tools;C:\Program Files\Android\android-sdk-windows\platform-tools
64bitの場合:
;C:\Program Files (x86)\Android\android-sdk\tools;C:\Program Files (x86)\Android\android-sdk\platform-tools

4'. ここまでの確認
コマンドプロンプトで
>adb
でadbのヘルプメニューが長々と表示されればOK。

5. SH-03C用USBドライバのダウンロード・インストール
http://k-tai.sharp.co.jp/support/d/sh-03c/download/usb/index.html
ダウンロードしたSH-03C_driver.exeを実行し、展開してできるSH-03C_driverフォルダの中のSH03C_driver.exeを実行し、ドライバをインストールする。

6. SHARP共通ADB USBドライバのダウンロード・インストール
https://sh-dev.sharp.co.jp/android/modules/driver/index.php?/sharp_adb_all/download
ダウンロードしたusb_driver_SHARP_r3.4.zipを任意の場所に解凍する。
SH-03Cの設定で、アプリケーション>開発>USBデバッグにチェックを入れ、SH-03CをUSBケーブルでPCに接続する。
ドライバが必要になるので、上記の解凍でできたusb_driver_SHARPのディレクトリから、Android Composite ADB Interfaceのドライバをインストールする。

7. USB接続モードの変更
カードリーダーモードから高速転送モードに変更する。

7'. ここまでの確認
コマンドプロンプトで
>adb devices
でデバイスを表す文字列が表示されればOK。

8. 一時root権限の取得とlocal.propの作成
http://loda.jp/silverw1ndy/?id=4.zip
一時root権限取得のためのツールrootkit_is03_0430.zipをダウンロードし、zipファイル内のrootkit_is03_0430フォルダを任意の場所に解凍する。

コマンドプロンプトで以下を実行する。
>cd [rootkit_is03_0430のパス]
>adb push data_local /data/local/
>adb shell chmod 755 /data/local/is03break
>adb shell chmod 755 /data/local/autoexec.sh
>adb shell chmod 755 /data/local/busybox
>adb install Superuser.apk
>adb install jackpal.androidterm.apk
>adb reboot
SH-03Cがリブートするので、
>adb shell /data/local/is03break
の実行を↑キーとEnterの連打で試み続ける。
SH-03Cの準備が整わないうちは
error: device not found
となるが、準備ができると
最後が
[!] dance forever my only one
であるメッセージが表示される。

次のメッセージ
Cannot copy boomsh. :  Permission denied
が表示された場合はタイミングが合わなかったために失敗したので、以下のコマンドを実行する。
>adb shell 
$ rm /data/local/tmp/boomsh 
$ rm /data/local/tmp/sh
その上で、上記の
>cd [rootkit_is03_0430のパス]
からやり直す。

rootkit_is03_0430のパスで以下のコマンドを実行する。
>adb shell
$ /data/local/tmp/sh
# cd /data/local
# cat local.prop > /data/local.prop
# exit
$ exit

9. root権限の取得
https://docs.google.com/leaf?id=0B8LDObFOpzZqYjBmOGJkMjItOTE3OS00OTExLWFmZjgtMmUwMGQ2ZGQwMGQx&hl=ja
root権限取得のためのツールsh03c_rootkit_20110611.zipをダウンロードし、zipファイル内のsh03c_rootkit_20110611フォルダを任意の場所に解凍する。

コマンドプロンプトで以下を実行する。
>cd [sh03c_rootkit_20110611のパス]
>adb push data_local /data/local
>adb push local.prop /data/local.prop
>adb shell chmod 555 /data/local/autoexec.sh
>adb reboot

http://www.shiduki.com/android/apk/IS03rootsw134.apk
root権限をON・OFFするツールIS03rootswをダウンロードし、コマンドプロンプトで以下のコマンドを実行する。
>cd [IS03rootswのパス]
>adb install IS03rootsw.apk

10. 不要なキャッシュファイルの削除
IS03 root switchを起動し、ボタンを押して[Root On]の状態にする。
コマンドプロンプトで以下のコマンドを実行する。
>adb shell
$/dev/su
#cd /data/cache
#ls
(downloadfile-1.apkなどのキャッシュファイルが表示されるので全て削除してよいか確認する)
#rm *
#exit
$exit
(上記赤字部分がシェルでrootになるための部分。)
IS03 root switchを起動し、ボタンを押して[Root Off]の状態に戻す。


以上がSH-03Cのrootを取得して不要なキャッシュファイルを削除する手順です。
再度キャッシュファイルを削除するには10番の手順だけを実行すればいいはずです。

私の場合、100MB以上空き、当初の目的は達成できました。
今回は面倒な初期化はせずに済みました。


現状ではroot権限を取得してもプリインストールのアプリは削除できませんが、無効にして、見えなくすることは可能です。
特にPromise Mailなどは使っていないのにエラーが発生して鬱陶しいので無効化する意味があります。
LYNX 3DことSH-03Cにも。プリインストールアプリを強制的に無効化する方法
にならい、以下の10のコマンドでアプリを無効にしました。

>adb shell
$ /dev/su
# pm disable com.twitter.android
# pm disable jp.co.anchorz.android.pmail
# pm disable jp.co.millmo.rota.apps.d.sh.book
# pm disable jp.co.millmo.rota.apps.d.sh.media
# pm disable jp.co.millmo.rota.widget.d.sh
# pm disable jp.co.sharp.android.mixiappmanager
# pm disable com.nttdocomo.android.phonebookcopy
# pm disable com.dataviz.docstogo
# pm disable com.google.android.apps.genie.geniewidget
# pm disable com.nttdocomo.android.startupguide
# pm disable jp.co.sharp.android.sharpwidget

順に、以下のアプリに対応します。

  • Twitter
  • Promise Mail
  • millmo系
  • mixi for SH
  • 電話帳コピーツール
  • DocumentsToGo(試用版)
  • 天気とニュース
  • スタートアップガイド
  • メーカーサイト




なお、初期化しようと思っていろいろ調べたこともついでにメモしておきます。
  • iD・モバイルSuicaを含むおサイフケータイとMicroSDカードの中身は初期化されないらしい。
  • Opera mini・Opera mobileのブックマークはPCにインストールしたOperaとOpera Linkで同期できるらしいが、その他のエクスポートなどの手段はない。PCへのOperaのインストールが面倒ならば設定をメモするしかない。
  • EBPocket・TrainTimerの設定もバックアップする手段はない。メモするしかない。
  • ホームのショートカット・ウィジェットのバックアップ手段もない?
  • アプリのリストはApp List BackupでMicroSDカードにバックアップし、初期化後に再度App List Backupをインストールすれば、簡単に再インストールできる。

0 件のコメント:

コメントを投稿