さまざまな物や事に関する、役に立ったり立たなかったりするテキストが綴られるブログ。

2013/05/23

[Ray] 2011 Xperia ICSにパッチを当ててみる

ここにバグが
SO-03Cとしてリリースされたdocomo版の"Xperia Ray"では、ICS(Ice Cream Sandwich)へのアップグレードは見送られてしまいました。

けれども、欧米諸国ではソニエリ(現ソニモバ)純正の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を探さない分、もしかしたら微々たる省エネになるかもしれませんが、どちらかと言うと、バグが消えてスッキリ、というのが最も顕著な効果かも。気になっている方は、ぜひお試しあれ。



Related Posts with Thumbnails

0 件のコメント:

新しい投稿へ 以前の投稿へ ホームへ