IIJmio高速モバイル & Galaxy Nexus(GN)の組み合わせでかなり満足して使っていたが、唯一不満があったのがバッテリの持ちであった。
IIJmioやb-mobileのデータ専用のSIMだと電波なし状態になってしまい、端末が電波を探すためフルパワーでサーチするので異常にバッテリを食うとの事であったが、解決する人が現れた。
以下のページの手順を行ったところ、あっさり解決した。
素晴らしい!
山県昌景 - イオンSIM使用時の圏外100%対策についてのメモ(SC-04D)
https://plus.google.com/105942727317441447672/posts/bkQp64TSahw
基本的にここに書かれている手順でOKだが、自分が分かりやすいように補足を入れた手順を
下記にメモしておく。
-----
■必要なもの
・Android SDK、JDKがインストールされ、GNにadbで接続できる状態になっているWindows PC(Win7で行った)
・busybox、ClockWorkModが動くようになっているGN
私のGNにはTitanium Backupがインストール済だったのでbusyboxも既に入っていた。
あとは使いやすいようにbusybox -> /data/data/com.keramidas.TitaniumBackup/files/busybox のリンクを張っておいた。
・smali / baksmali: http://code.google.com/p/smali/
・dexopt-wrapper : http://forum.xda-developers.com/showpost.php?p=3864655&postcount=36
-----
■手順
1./system/frameworkaから必要なファイルを取り出す
GNとPCを接続した状態で、コマンドプロンプトから下記を実行。
adb get /system/framework/framework.jar
adb get /system/framework/framework.odex
adb get /system/framework/bouncycastle.odex
adb get /system/framework/core.odex
adb get /system/framework/core-junit.odex
※下の3つは逆コンパイルするときに参照されるため必要。
2.framework.odexを逆コンパイル
コマンドプロンプトから下記を実行。
java -jar baksmali.jar -x framework.odex
これでoutというフォルダが作られ、その中に逆コンパイルされた内容が展開される。
3.「out\com\android\internal\telephony\gsm\GsmServiceStateTracker.smali 」を
テキストで開き、「.method private regCodeToServiceState(I)I」の下にあるpswitch_data_22以下をエディタで編集。
:pswitch_data_22
.packed-switch 0x0
:pswitch_1c
:pswitch_1d
:pswitch_1c
:pswitch_1d ← ここを :pswitch_1c から :pswitch_1d に変更した
:pswitch_1c
:pswitch_1f
:pswitch_5
:pswitch_5
:pswitch_5
:pswitch_5
:pswitch_1c
:pswitch_5
:pswitch_1c
:pswitch_1d ← ここも :pswitch_1c から :pswitch_1d に変更した
:pswitch_1c
.end packed-switch
4.classes.dexに再コンパイル
コマンドプロンプトから下記を実行。
java -jar smali.jar -a 14 -o classes.dex out
これでclasses.dexが作られる。
5.classes.dexをframework.jarに入れる
7-zipでframework.jarを開き、そこのルートディレクトリに作成したclasses.dexを入れる
6.端末の「/data/local/tmp」にdexopt-wrapperとframework.jarをコピーする
コマンドプロンプトから下記を実行。
adb push framework.jar /data/local/tmp
adb push dexopt-wrapper /data/local/tmp
7.dexopt-wrapperを使ってjarをodexに変換
コマンドプロンプトからadb shellを起動し、下記のように実行。
adb shell
$ cd /data/local/tmp
$ chomod 755 dexopt-wrapper
$ ./dexopt-wrapper framework.jar framework.odex
これでframework.odexが作られる。
8.署名をコピーする
$ busybox dd if=/system/framework/framework.odex of=framework.odex bs=1 count=20 skip=52 seek=52 conv=notrunc
9.「/system/framework/framework.odex」を作成したものと置き換える
Recoveryモードで行ったほうが安全なので、下記の手順で行った。
・CWMを起動
・CWMにて/system、/dataをマウント
・PCからadb shellでGNに入る
・コピー&置き換え
busybox cp /data/local/tmp/framework.odex /system/framework/framework.odex.new
mv /system/framework/framework.odex /system/framework/framework.odex.bak
mv /system/framework/framework.odex.new /system/framework/framework.odex
sync
10.端末を再起動
CWMのメニューからreboot system nowを選択
以上。
これでIIJmioのSIMでもきちんとアンテナマークが表示されるようになり、
電池も持ちも良くなりました。
-----
セルスタンバイ問題も解決して、いまの環境に大満足です。
月1300円以下でパケホーダイ&通話も可能、バッテリの持ちの問題も解決したスマホになりました。
非常にお勧めです。
はじめまして、一月ほど前にGT-i9250を買い使っているのですが同様にアンテナ立たずアプリで対応
返信削除ブローヴちゃんのBATもframework.odex がネックで使えず、自分で環境を作って逆アセしなきゃ駄目かと思っていたところに、貴殿の投稿・・
よろしければ修正済みの「framework.odex」を頂けませんか?
一度置換えで確認してみたいのですが・・
upple.info の8183にアップしました。
返信削除DLパスはFibonacci numberの最初の7文字です。
うまく行くといいですね。^^
ありがとうございます。
返信削除遅くなりましたが先ほどダウンロードしました。
また、結果報告させて頂きます m(__)m
駄目でしたわ・・
返信削除docomo版とUK版微妙に違うんでしょうねぇ??
ちなみに私のはBuild ICL53Fです。
文鎮になりかけたけれど何とかリカバリできました。
古いノートがあるのでそれを専用に関係アプリをインストールするかな・・ (^^;
一から勉強し直します
だめでしたか・・・
返信削除もし/system/framework 以下を一式頂けたら、署名なしframework.odexを作るところまでやってみましょうか?
このコメントは投稿者によって削除されました。
返信削除