[Ray] 2011 Xperia ICSにパッチを当ててみる
けれども、欧米諸国ではソニエリ(現ソニモバ)純正のICSが配布されており、これを使えば(現時点で)一世代前のOSまではアップグレードできることになります。
ところが、このICSにはバグがあり、"設定"→"その他"→"モバイルネットワーク"→"ネットワークモード"にて"WCDMAのみ"が選択できません。
正確には、チェックを入れても再起動後には"GSM/WCDMA(自動)"に戻ってしまいます。現在ウチの"Xperia Ray"では、ThRayICS4.0というカスタムROMを使わせていただいておるのですが、オリジナルソースから混入しているバグなので、当然のごとく同じ症状が見られます。
今のところWi-Fi運用なのでまったく問題なかったりするのですが、とりあえず修正してみることに。元ネタはxdaのこちらのスレッド。端末以外には、Java環境を構築済みのWindows PCが必要となります。
また、各種圧縮ファイルを展開するために、7-zipというソフトがあると便利。他のソフトでも問題はありませんが、今回使用するファイルはこれ1本で処理することができます。
言うまでもありませんが、何かあった時のためにバックアップを取っておくのを忘れずに。ということで、作業の流れをサラリとご紹介します。
まずは必要な材料を集めるところから。上記スレッドの最初の書き込みの文末にある"RIL.rar"をダウンロードしてきます。これが、パッチの本体。続いて、.dexファイルをディスアセンブル/コンパイルするための"Smali-Me"というWindows PC用ソフトをこちらのサイトからダウンロードしてきます。
上記2ファイルは圧縮されておりますので、7-zipを使ってPC上の適当な場所に展開しておきます。あとは端末とPCでゴリゴリと作業を進めるだけ。
端末の"/system/framework/framework.jar"のコピーをPCに持ってきて7-zipで開くと、中に"classes.dex"というファイルがあるのでこれを展開し、"Smali-Me"のフォルダに格納。
同じフォルダにある"baksmali.bat"を管理者権限で実行すれば、ディスアセンブルがスタート。
作業が完了したら、最初にダウンロードした"RIL.rar"の中に入っていた"RIL.smali"を、"\Smali-Me-1.0\Decompiled\com\android\internal\telephony\"にコピー。同名のファイルがあるので、それに上書きする形となります。これでパッチ当ては完了。続いて元の形に戻すための作業に入ります。
"\Smali-Me-1.0\Decompiled\"内のすべてのファイルおよびフォルダを"\Smali-Me-1.0\Smali-Me\"にコピーし、管理者権限で"smali.bat"を実行します。
作業が終了したら、最初にコピーした"classes.dex"を削除した後、上記バッチにて生成された"modded-classes.dex"を"classes.dex"にリネームします。
続いて、端末から持ってきた"framework.jar"を7-zipで再び開き、パッチを当てた"classes.dex"で上書き。7-zipのウィンドウにドラッグ&ドロップすればOKです。7-zipの場合、直ちに変更が反映されるため、新規保存などする必要はありません。
お次は仕上げ。加工した"framework.jar"を端末に持って行き、元のファイルと同じ場所(/system/framework/)に上書き。念のためパーミッションをオリジナルと同じ644に変更して再起動すれば作業は完了です。
最後に、"設定"→"その他"→"モバイルネットワーク"→"ネットワークモード"にて"WCDMAのみ"をチェックして再起動。起動後に同じ所開き、"WCDMAのみ"にチェックが入っていることを確認します。
GSMを探さない分、もしかしたら微々たる省エネになるかもしれませんが、どちらかと言うと、バグが消えてスッキリ、というのが最も顕著な効果かも。気になっている方は、ぜひお試しあれ。
コメント