XPERIA GX / SXをroot化し、テザリング時の「APN強制変更」を無効化する方法。

続報:【非Root】ドコモ版Xperiaのテザリングロックを解除して、格安SIMでテザリングする方法

 XPERIA SX SO-05Dのroot化を行うことになりました。

 Xi契約と「mopera U」でテザリングをしたい、そしていざという時に他社SIMを噛ませてテザリングも使いたい、という理由です。

 Xi契約上、テザリングは認められています。また、3150円の手数料を支払ってドコモショップでSIMロック解除を行うこともできます。

 にも関わらず、テザリング時はspモードのテザリング専用APN(dcmtrg.ne.jp)に強制的に接続する仕様となっています。ISPがspモード以外であったり、他社のSIMカードを挿すと、テザリングはこのAPNに繋がれてしまうため、接続できません。ドコモショップでSIMロックを解除しても、なぜかこの仕様は解除されません。

 よって、spモード以外の障害の少ないISP「mopera U」を選択するという権利や、他社・海外現地SIMカードを利用するというユーザーの権利が、不当に侵害されています。前者に関してはspモードとmoperaを両方契約すれば、負担も増やさず解決できますので、後者を理由とする人が多いでしょう。特に、日本通信やIIJのSIMカードの需要が高まっているのに、本当に邪魔な仕様です。

 この不条理な仕様を改善するため、ドコモの保証対象外となるリスクを負って、root化を行います。

 以下、root化は、文鎮化やセキュリティ上の危険を伴います。root化に関するリスクは、全て自己責任においてお願いします。

Android SDKの準備

 まず大前提として、Java、そしてAndroid SDKをインストールしておく必要があります。

 インストールしたJavaとAndroid SDKのPATHを設定する(位置を教えてあげる)必要があります。smartgoods.meさんの記事が非常に参考になりますので、まだ環境を設定していない人はご覧下さい。

Android SDKの最新インストール手順2011年10月版!少しだけシンプルに解説! 

PC Companionのインストールと、Xperia側の設定変更

 まだインストールしていない人は、PCとXperiaのUSB接続時に、Xperiaの画面上に出てくるポップアップから、PC Companionをインストールして下さい。

 そんなポップアップは出てこない、という人は、「設定」→「端末 Xperia」→「接続設定」→「PC Companionのインストール」にチェックを入れて下さい。また、「接続設定」→「USB接続モード」→「メディア転送(MTP)モード」にもチェックを入れておいて下さい。

 これによってUSBドライバーなど、Xperiaを接続するにあたって必要なものがWindowsにインストールされ、Xperiaを認識する準備ができます。

 root化にはデバッグモードである必要もあります。「設定」→「開発者向けオプション」→「USBデバッグ」にチェックを入れて下さい。

Windowsのカレントディレクトリにroot化に必要なファイルを配置

 PCのカレントディレクトリ(基本的にはC:\Users\ユーザー名)直下に、root化用のファイルが入ったフォルダを置くことになります。

 XPERIA GX / SX用のツールはrootkitGXSX_v3、2012年のICS Xperia用のツールはRoot_with_Restore_by_Bin4ry_v2_win-linux.rarとなります。つまりGX / SXなら、お好みのツールを使えば大丈夫です。自分はrootkitGXSX_v3を使いました。

 rootkitGXSXの使い方は、XperiaにおけるAndroidアプリ考察さんを参考にさせていただきました。2012 ICS Xperia用のツールがあることも知ることができました。ありがとうございます。

 お好みのツールを解凍したら、フォルダをカレントディレクトリに移動させて下さい。

ワンクリックでroot化

 どちらもブートローダーのアンロックは不要、ワンクリックでroot化できます。XperiaをデバッグモードでUSB接続している状態で、フォルダの中にある拡張子.batのファイルを実行します。

 あとは画面上の指示に従うだけです。SX / GXであれば、自動で起動するアプリから、復元を押すだけ。それ以外の2012年Xperiaは、自身で「バックアップと復元」を起動し、復元を押す必要があります。

 PC上のコマンドに、Enterキーを押して再起動を促すメッセージが現れると思いますので、従います。すると端末が二度再起動され、root化が完了します。Superuserがアプリ一覧の中にあらわれたら成功です。

 root化したということは、ESファイルエクスプローラー(のルートエクスプローラ)やTitanium Backupを、GooglePlayからインストールして使えるようになったということです。文鎮化して困るようなら、今のうちにTitaniumで重要データのバックアップをしておくのが得策です。

ESファイルエクスプローラーの準備

 ESファイルエクスプローラーをインストールし、起動。「メニュー」→「設定」→「ルートオプション」を開きます。そこで「ルートエクスプローラー」と「ファイルシステムをマウント」にチェックを入れます。

 また、同じく設定画面から「ホームディレクトリ」の場所を変更しておきます。「/sdcard/」を「/」にします。

 これでより深いシステムファイルを弄ることができます。

custom_settings.xmlの書き換え

 いよいよ、テザリング時にAPNを強制変更する指示を出しているファイルを書き換えます。

 ESファイルエクスプローラーで書き換える項目については、こちらのブログを参考にしました。

参考:IIJmio高速モバイルとXperia ray(SO-03C)でテザリングする 詳細編

 ESファイルエクスプローラーにより、ディレクトリ「/system/etc/customization/settings/com/android/settings」を開きます。

 そこにある「custom_settings.xml」を長押ししてメニューから「…にコピーします」を選び、「/sdcard/external_sd/」などにコピーしてバックアップとします。

 バックアップしたら、実際に「custom_settings.xml」の編集を行います。ESテキストエディターにて編集できます。

 「tether_dun_required(テザリング時強制APN変更)」の0を、1に書き換えます。

変更前:<setting key=”tether_dun_required” runtime=”false”>1</setting>
変更後:<setting key=”tether_dun_required” runtime=”false”>0</setting>

 これにより、強制変更先のAPNに関するtether_dun_apnの記述を丸ごと削除。

丸ごと削除した記述:<setting key=”tether_dun_apn” runtime=”false”>docomo tethering,dcmtrg.ne.jp,,,,,,,,,440,10,0,*</setting>

 また、テザリングに関するAPNをユーザーに見えないように隠すinvisible_apn_required、invisible_tether_apn_requiredのtrueをそれぞれfalseに。

変更前:<setting key=”invisible_apn_required” runtime=”false”>true</setting>
変更後:<setting key=”invisible_apn_required” runtime=”false”>false</setting>

変更前:<setting key=”invisible_tether_apn_required” runtime=”false”>true</setting>
変更後:<setting key=”invisible_tether_apn_required” runtime=”false”>false</setting>

 ウィジェットから切り替えている人にはどうでもいいですが、もし設定画面からテザリングをオンオフしている人は、いちいち「テザリングは高額になる場合があります」というメッセージが表示されていると思います。Xiでパケット定額プランを使っている以上はテザリングによって追加課金されたりはしませんから、tether_message_requiredの記述を丸ごと削除すれば、メッセージを表示させなくて済みます。

丸ごと削除した記述:<setting key=”tether_message_required” runtime=”false”>true</setting>

 これらの記述を変更したら、保存し、再起動します。

 ここで紹介した方法を行うにあたって、おそらく初期化が必要だろうと思い、初期化しなくて済むように、SQLite Database Browserなどをインストールて臨んだのですが、そうしたものはなぜか不要で、無効化を実現できました。もしできないという人がいれば、先ほど紹介したブログの②を参考にし、Windowsからsetting.dbを編集してあげる必要があります。

追記 SQLiteによる書き換え

 

[追記※]先ほど確認したところ、moperaの時にインターネットアクセスが無い状態でした。なので、やはり初期化か、SQLiteによる書き換えも必要です。

テザリングのAPN強制変更が無効化

 これで無事、テザリング時APNの強制変更が無効化されます。

 これでやっとmopera U単独契約、他社SIM、ドコモMVNO事業者のSIM、海外現地SIMといった様々な契約で、テザリング含め自由に利用することができます。

root化のリスクに見合うか?

 今回の記事は、できて当たり前のことを、できるようにしただけです。

 ドコモショップで修理を受けられないというリスクを承知する必要があり、そこまでして実行する価値がないと思えば、それまでのことです。

 他社やFOMAのプランが「機器」「行為」に対して料金を課しているのに対して、Xiのプランはいち早く「通信量」に課金しています。これはとても画期的な視点でした。

 にも関わらず、3150円払って公式SIMロック解除をしたとしても、テザリングという「行為」が妨害されるという仕様が、その視点を台無しにしていると感じます。MVNO事業者やユーザーに対する嫌がらせにしかなっていないことを、ドコモは認識するべきだと思います。

 できれば、root化なんてしたくはないので。