kilin> how to > Xperia SX (SO-05D) 白ロム - ICS, root, セルスタンバイ対策, テザリング対策

Xperia SX (SO-05D)

(2013.4.8)


SO-05D白ロム

アマゾンなどでAndroid携帯Xperia SX(SO-05D)白ロムを4万円くらいで買うことができる。これにMVNOのSIMを挿入して,説明書通りにモバイルネットワークのアクセスポイント名を設定すれば,すぐに使えるが,以下のroot化,System Update, セルスタンバイ対策,テザリング対策をしたほうがベター。

準備

  1. Sony MobileのサポートページからSUS(Update_Service_Setup-2.13.4.16.exe)をダウンロードしてPC(自分の場合はWindows 7 64bit)にインストールする。
  2. JDK(Java開発キット)とAndroid SDKをインストールしておく。(参考:Windows PCにAndroid SDKを導入する http://arkdroid.info/036/
  3. Flash tools(自分が使ったのはflashtool-0.9.10.1-windows.exe)をPCにインストールする。
  4. SO-05D_7.0.D.1.117_NTTdocomo.ftfを入手しておく。このファイルがあれば,端末を白ロムを買った時の状態に戻せる。

1クリックroot化

セルスタンバイ対策,テザリング対策にはAndroidのroot権限をとっておく必要がある。これは1クリックでできる。
  1. Xperiaのシステムは7.0.D.1.117であること(そうでない場合は,初期化する)。
  2. 1クリックルート化キット rootkitGXSX_v3 (http://www.mediafire.com/?q7off7xdbet6618)を入手し,7zで解凍。
  3. Xperiaで[menu]-[設定]-[セキュリティ]-[提供元不明のアプリ],[menu]-[設定]-[開発者向けオプション]-[USBデバッグ]と[スリープモードにしない]にチェックを入れる。
  4. Xperiaは,gmailアカウントを設定し,データ通信ができる状態までセットアップしておく。
  5. Xperiaの電源をいれPCとUSBケーブルで接続し,
  6. 解凍した1クリックルート化キットのinstall.batを管理者権限で実行(コマンドプロンプトを管理者権限で開いて,installと打ち込むのが安全)。
  7. Xperiaで[完全復元]という画面がでるので,パスワードを(決めて)入力し,[データを復元する]をタップ。
  8. 端末が一度再起動し,root化完了。Superuserというアプリがインストールされていれば成功。失敗したら3からやり直せばOK。Superuserに更新があれば更新しておく。

システムアップデート(7.0.D.1.137)とroot権限維持

2013/3/28のシステムアップデートは,root化されたXperiaから操作しても適用できない。PCにつないでSUSを使えばアップデートできるがroot権限がなくなってしまう。その対策。以下の方法は2012/12/18のシステムアップデート(7.0.D.1.130)に対する対策と同じ。
  1. rootkeeperをダウンロードし,zipファイルを解凍。
  2. Xperiaで[menu]-[設定]-[セキュリティ]-[提供元不明のアプリ],[menu]-[設定]-[開発者向けオプション]-[USBデバッグ]と[スリープモードにしない]にチェックを入れる。
  3. Xperiaの電源をいれPCとUSBケーブルで接続し,
  4. 解凍したrootkeeperのStep1.batを管理者権限のコマンドプロンプトで実行(コマンドプロンプトは閉じない)。Step1ではXperiaに/data/local.propを作成するとのこと。
  5. XreriaのUSBケーブルをぬき,SUSを起動して,指示通りにウイザードを進める。インストールタイプは「アップデート(推薦)」を選びシステムをアップデートする。システムが7.0.D.1.137になり,アプリSuperuserはなくなる。Xperiaの電源を入れてアップグレードを完了する。
  6. 7.0.D.1.137のftfファイルを作る。(すでに作ってあれば,この項はとばしてよい)
    1. Flash tools(flashtool64)を起動し,[Tools]-[Decript Files]。Source folderを[...]ボタンをクリックしてC:\Program Files (x86)\Sony Mobile\Update Service\db\13740270\blob_fsにし,FILE_で始まる3つのファイル

      7.0.D.1.137 7.0.D.1.130(参考)
      FILE_279063644 FILE_279063644
      FILE_279659615 FILE_279138214
      FILE_279659639 FILE_279138306

      を[->]で[File to convert]に入れ,[OK]。
    2. Bundle Creationというウインドウがでたら,devicesにSO-05D,Versionに7.0.D.1.137,BrandingにNTTdocomoと入れ,Folder Listより以下の2ファイルを除くファイルを「→」で右に移し,[OK]。

      partition-image_S1-SW-LIVE-DE72-PID1-0002-MBR.sin
      simlock.ta
    3. C:\flashtool\firmwaresにSO-05D_7.0.D.1.137_NTTdocomo.ftfが生成される。
  7. FlashTooでSO-05D_7.0.D.1.117_NTTdocomo.ftfのkernelのみ焼く。
    1. SO-05D_7.0.D.1.117_NTTdocomo.ftfをC:\flashtool\firmwaresにコピーする。
    2. Flash Tool(flashtool64)を起動して,稲妻マークのボタンをクリックする。
    3. Mode Selectorが出てくるので[Flashmode]を選択し,[OK]をクリックする。
    4. [Fiemware Selection]が出てくるので、SO-05D_7.0.D.1.117を選択する。以下のチェックを外し(以下の4つ以外はチェックし),kernel.sinを選択して[OK]。(No final verificationもチェックする)
       Wipe data
       Wipe cache
       Wipe apps_log
       Exculde kernel
    5. USBケーブルを挿すようにうながすダイアログボックスが出てくるので,Xperiaの電源を切って,ボリュームダウンボタンを押しながらPCとUSBケーブルで接続する。
    6. しばし待つ。
    7. USBケーブルを抜き,FlashToolを終了する。
  8. Xperiaの電源をいれPCとUSBケーブルで接続し,4のコマンドプロンプトでStep2.batを実行。Step2ではsu,busybox等のインストールをするとのこと。
  9. FlashTooでSO-05D_7.0.D.1.130_NTTdocomo.ftfのkernelのみ焼く。
    1. SO-05D_7.0.D.1.130_NTTdocomo.ftfをC:\flashtool\firmwaresにコピー。
    2. Flash Tool(flashtool64)を起動して,稲妻マークのボタンをクリックする。
    3. Mode Selectorが出てくるので[Flashmode]を選択し,[OK]をクリックする。
    4. [Fiemware Selection]が出てくるので、SO-05D_7.0.D.1.130とkernel.sinを選択する。以下のチェックを外し(以下の4つ以外はチェックし),kernel.sinを選択して[OK]。(No final verificationもチェックする)
       Wipe data
       Wipe cache
       Wipe apps_log
       Exculde kernel
    5. USBケーブルを挿すようにうながすダイアログボックスが出てくるので,Xperiaの電源を切って,ボリュームダウンボタンを押しながらPCとUSBケーブルで接続する。
    6. しばし待つ。
    7. USBケーブルを抜き,FlashToolを終了する。
  10. 以上

セルスタンバイ対策

セルスタンバイ対策をすると,電波アイコンと,[メニュー]-[設定]-[電池]が正しく表示されるようになる。
準備:WindowsにandroidSDKをインストールして,javaコマンドとadbが使えるようにしておく。
Windowsの適当なフォルダ(C:\frameworkとする)に
smali-1.4.2.jar (An assembler/disassembler for Android's dex format)
baksmali-1.4.2.jar (同上)
dexopt-wrapper
をコピー。
Xperiaの[メニュー]-[設定]-[開発者向けオプション]-[USBデバッグ],[スリープモードにしない]と,[メニュー]-[セキュリティ]-[提供元不明のアプリ]にチェックを入れ,XperiaをPCに接続。
コマンドプロンプトでC:\frameworkを開き,Xperiaから必要なファイルをフォルダごとコピー:
C:\framework>adb pull /system/framework/ framework
workspaceフォルダを作り,frameworkフォルダにコピーされたファイルframework.jarとframework.odexをworkspaceにコピーして,逆アセンブル:
C:\framework>java -jar baksmali-1.4.2.jar -a 15 -d framework -c:framework\core.jar:framework\core-junit.jar:framework\framework.jar -x workspace\framework.odex
outフォルダにできたcom\android\internal\telephony\gsm\GsmServiceStateTracker.smaliを編集(2箇所):
    :pswitch_data_22
    .packed-switch 0x0
        :pswitch_1c
        :pswitch_1d
        :pswitch_1c  <- 1dに変更
        :pswitch_1c
        :pswitch_1c
        :pswitch_1f
        :pswitch_5
        :pswitch_5
        :pswitch_5
        :pswitch_5
        :pswitch_1c
        :pswitch_5
        :pswitch_1c  <- 1dに変更
        :pswitch_1c
        :pswitch_1c
    .end packed-switch
編集したファイルからclasses.dexを作成(アセンブル):
C:\framework>java -jar smali-1.4.2.jar -a 15 -o classes.dex out
7zipでworkspaceディレクトリに置いたframework.jarを開き,その中に今作ったclasses.dexをコピーする。
Xperia ray本体の/data/local/tmpにdexopt-wrapper(zipファイルを解凍しておく)とframework.jarをアップロード。
C:\framework>adb push workspace\framework.jar /data/local/tmp/
C:\framework>adb push dexopt-wrapper /data/local/tmp/
dexopt-wrapperのパーミッションを755にし,コマンドを2つうつ(odexの作成):
C:\framework>adb shell
shell@android:/ $ su
# cd /data/local/tmp
# chmod 755 dexopt-wrapper
# ./dexopt-wrapper framework.jar framework.odex
# busybox dd if=/system/framework/framework.odex of=framework.odex bs=1 count=20 skip=52 seek=52 conv=notrunc
オリジナルのframework.odexをframework.odex.orgに名前を変えて,今作ったframework.odexに置き換える。
# mount -o rw,remount /dev/block/mtdblock0 /system
# cd /system/framework
# mv framework.odex framework.odex.org
# cp /data/local/tmp/framework.odex .
# chown root.root framework.odex
# ls -la framework*
-rw-r--r-- root root 12720258 2013-02-18 06:56 framework-res.apk
-rw-r--r-- root root 15071 2013-02-18 06:53 framework.jar
-rw-r--r-- root root 10682688 2013-02-18 08:07 framework.odex
-rw-r--r-- root root 10693088 2013-02-18 06:56 framework.odex.org
# sync .
# reboot

テザリング対策

MVNO(bmobile等)のSIMでテザリングができるようにする。
  1. XperiaにSQLite Editor(\230)とESファイルエクスプローラ(無料)をインストール。
  2. ESファイルエクスプローラを起動して[メニュー]-[設定]-[ルートオプション]の[ルートエクスプローラー],[前に戻る],[ファイルシステムをマウント]にチェックを入れる。これらのチェックは,root権限でファイルを操作できるようにするものなので,作業が終わったら外しておいたほうがよいだろう。
  3. ESファイルエクスプローラで/system/etc/customization/settings/com/android/settings/へ移動し,custom_settings.xmlを長押しして,[...にコピー]を選び,custom_settings.xmlをSDカードにコピー(バックアップ)。
  4. もう一度custom_settings.xmlを長押しして[開く]-[テキスト]-[ESテキストエディター]で,以下のように編集し,[メニュー]-[保存]。

     (変更前)<setting key="tether_dun_required" runtime="false">1</setting>
     (変更後)<setting key="tether_dun_required" runtime="false">0</setting>

     (変更前)<setting key="tether_dun_apn" runtime="false">docomo tethering,dcmtrg.ne.jp,,,,,,,,,440,10,0,*</setting>
     (変更後)削除

     (変更前)<setting key="invisible_apn_required" runtime="false">true</setting>
     (変更後)削除

     (変更前)<setting key="invisible_tether_apn_required" runtime="false">true</setting>
     (変更後)削除

     (変更前)<setting key="tether_message_required" runtime="false">true</setting>
     (変更後)削除
  5. custom_settings.xmlを長押しして[プロパティ]-[変更]でパーミッションを644(rw-r--r--)に変更。
  6. ESファイルエクスプローラーで/data/data/com.android.providers.settings/のdatabasesフォルダをsdカードにコピーする(バックアップ)。
  7. databasesのsettings.dbをさらにsdカードにコピーして,SQLlite Editorで開き,secureをタップして,id 42のtether_dun_apnを削除し,id 43のtether_dun_requiredのvalueを0にする。
  8. 修正したsettings.dbをESファイルエクスプローラーで元の場所/data/data/com.android.providers.settings/databasesにコピーする。パーミッションはrw-rw-rw。そしてsettings.db-shmとsettings.db-walを削除する。
  9. Xperiaを再起動。

使わないアプリをアンインストール

準備:Google PlayからXperiaにTitaniumBackup ★ root(無料アプリ)をインストールする。
使わないアプリで,Xperiaの[メニュー]-[設定]-[アプリ]でアンインストールできないものは,TitaniumBackupでバックアップをとって,アンインストールするとよい。必要なら同アプリでリストアできる。

IP電話

FusionのIP-Phone SMARTが安く(基本料金0円,固定へも携帯へも8.4円/30秒)。SIPアプリはChiffonがお勧め。待ち受けしてもバッテリの減り方は2.3%/h。「携帯電話」として実用になると思う。SO-05Dは電池を取り換えられるので,予備電池を持って歩けば,電池の減りはあまり気にならないでしょう。
SIPアプリ設定の参考:Fusion IP-Phone SMARTで2013.1現在利用できるコーデックは帯域の小さい方から順にSpeex(8kHz), iLBC, GSM, G711μ(PCMU), G.722。
なお,ネット上の情報通りMVNOで,Fusion IP-Phone SMARTやLTEがちゃんと使えるのはIIJmioだけのようです。

初期化

作業に失敗したり,何らかの理由で白ロムを買った時の状態に戻したいときは,以下の手順で,SO-05D_7.0.D.1.117_NTTdocomo.ftfを導入すればよい。
  1. SO-05D_7.0.D.1.117_NTTdocomo.ftfをFlashToolのfirmwaresフォルダにコピーする。
  2. Flash Tool(flashtool64)を起動して,稲妻マークのボタンをクリックする。
  3. Mode Selectorが出てくるので[Flashmode]を選択し,[OK]をクリックする。
  4. [Fiemware Selection]が出てくるので、SO-05D_7.0.D.1.117を選択する。
  5. USBケーブルを挿すようにうながすダイアログボックスが出てくるので,Xperiaの電源を切って,ボリュームダウンボタンを押しながらPCとUSBケーブルで接続する。
  6. しばし待つ。
  7. USBケーブルを抜いて,Xperiaを起動してウイザードに従って基本設定をおこなう。

参考

  1. 【Xperia GX・SX】1クリックrooted!!! (http://xperia-freaks.org/2012/08/22/1click-rooted/) 2013.3
  2. XPERIA SXのアップデート(7.0.D.1.130)とroot権限維持(http://blog.huhka.com/2012/12/xperia-sx70d1130root.html)2013.3
  3. 【ICS】【root化】Xperia GX/SX/AX/VL/V root権限保持のままアップデートの方法(http://kuro-kiri54.way-nifty.com/blog/2013/02/rootxperia-gxsx.html)2013.4
  4. 【NX・acro HD】ftfファイルを作る(http://xperia-freaks.org/2012/03/19/make-ftf/)2013.3
  5. IIJmio高速モバイルとXperia ray(SO-03C)でテザリングする 詳細編(http://higitune.blog106.fc2.com/blog-entry-78.html)2013.3
  6. セルスタンバイ問題とは(http://techlog.iij.ad.jp/archives/487)2013.3
  7. テザリングのAPN強制変更の解除(http://xperiaacrohd.wiki.fc2.com/wiki/%E3%83%86%E3%82%B6%E3%83%AA%E3%83%B3%E3%82%B0%E9%96%A2%E4%BF%82)2013.4 (この記事のコメントを参考にした)