Xposed FrameworkベースのドコモMVNOパッチを適用

先日Xperia rayにIIJmio SIMを挿したら…

緊急通報のみ(Emergency Calls Only)表示になっていますし、アンテナマークもグレーアウトしています(パケット通信のHアイコンは点灯しているため、パケット通信は可能:Gingerbread環境とは異なり標準ブラウザやBBC公式アプリでのエラーは出ない)。
北米版(ST18a)向けICSファームを焼いたことでドコモ版でなくなってしまったため、この症状が出ることをすっかり忘れていました。
それならパッチ当てしないとな、ということで新バージョンのパッチがないかとブローヴちゃんを訪れてみると、Xposed Frameworkを使った新しいパッチが出ているのを発見。


ブローヴちゃん: Android + docomo MVNO データ通信専用 SIM の話の続き


Xposed Frameworkってなんぞや、というのがまず疑問ですが、これはAPKファイルやJARファイルを直接ゴニョゴニョすることなく各種モジュールをインストールすることで様々なカスタマイズを可能にする新しいカスタマイズプラットフォーム(要root、Android 4.x(ICS/Jelly Bean)対応)。
「これさえあればもうカスタムROMは不要」とまで言われている程のカスタマイズの自由度を実現しているそうです。
Xpoosed Framework自体については
(FRAMEWORK ONLY!) Xposed - ROM modding without modifying APKs (2.1.4)(12.05.2013) - xda-developers(Xposed InstallerのAPKはここから入手)
Xposed Framework上で動かすモジュールについては
Making "Stock" Custom ROMs Defunct (XposedFramework) - Tweaks for any ROM Version - xda-developers
のXDAスレッドに詳細な情報が出ています。
日本語の情報は
Xposedの日本語解説サイトが見当たらなかったので書いてみた: ひまづぶし
が参考になると思います。


そのXposed Frameworkを使う仕様で新たに作成されたのが今回のパッチ。
これまでの方法(framework.jar/odexにパッチを当てる)と比較して…


パッチ当て作業にPCが不要(端末上だけで完結する)
端末がdeodexedであるか否かは関係ない(odexed端末へのパッチ当ては面倒だからねぇ)
パッチのON/OFFが簡単にできる
ローリスク(とは言えシステムファイルをいじるので、当然リスクフリーというわけではない)


といったメリットがあります。
そこでさっそく導入してみました(やってみる場合はもちろん自己責任でお願いします)。
事前準備として端末のバックアップ(Nandroid Backup、Titanium Backup)を取っておき、内蔵ストレージ内の大事なファイル(カメラで撮影した画像など)もバックアップしておきます。
これまでのframework.jar/odexに直接パッチを当てる方法に比べれば文鎮化リスクは低いですが、何が起こるか分かりませんから念のためバックアップしておいた方がいいでしょう。
そして端末の設定で提供元不明のアプリのインストールを許可する設定にするのも忘れずに(root化して使っている人であれば既にONにしていると思いますが)。
そして上記リンクからXposed InstallerのAPKファイルとドコモMVNOパッチモジュールのAPKファイルをダウンロードし、パッチ当てする端末にコピーしておきます。
これでパッチ当ての準備は完了です。


まずはXposed Installerをインストールし起動。

そして「Install/Update」を押してXposed Frameworkをシステムにインストールします。
ここでSuperUser/SuperSUがroot権限を要求している旨のメッセージを出すので、許可します。
実はこのスクショはXposed Frameworkインストール完了後のもので、最初の起動時はapp_processとXposedBridge.jarの緑数字が赤の"---"になっていて、Xposed Framework未インストールであることを示しています。
Xposed Frameworkのインストールが済むと再起動を促されるので、それに従い端末を再起動します(rebootボタンを押す)。
再起動が済んだらドコモMVNOパッチモジュールをインストール。
その後再びXposed Installerを起動し、MODULESタブへ移動。

するとこのように「docomo MVNO Dataonly-SIM Patcher」というモジュールが登録されているので、チェックをつけてこれを有効にします。
モジュールを有効にしたら端末を再起動します(FRAMEWORKタブへ移動し、rebootボタンを押す)。
これでパッチ当て完了です。
端末が再起動すると…

このようにキャリア名(NTT docomo)が表示されるようになり、アンテナマークもちゃんと点灯するようになりました。
パッチが不要な際はXposed Installerを起動してMODULESタブへ移動し、ドコモMVNOパッチモジュールのチェックを外して無効にし、再起動すればパッチが無効になります。
ドコモMVNO以外のSIMを利用する際はパッチを無効にする、という使い方ができるのでこれは便利です。


Xposed Frameworkを利用したカスタマイズについて調べていると、「あんなこともこんなこともできるのか!!」と驚かされることがいくつもあるので、追々紹介していこうと思います。