前回の投稿で \out\com\android\internal\telephony\gsm\GsmServiceStateTracker.smali を修正しましたが、その後,、2chのL-04Cに関するスレで4行目と14行目だけでなく、3行目と13行目も同様に修正した、という書き込みを見かけたので自分でもやってみました。
:pswitch_data_22
.packed-switch 0x0
:pswitch_1f
:pswitch_1e
:pswitch_1e <----2行目と同じに変更
:pswitch_1e <----2行目と同じに変更
:pswitch_1f
:pswitch_1e
:pswitch_5
:pswitch_5
:pswitch_5
:pswitch_5
:pswitch_1f
:pswitch_5
:pswitch_1e <----2行目と同じに変更
:pswitch_1e <----2行目と同じに変更
:pswitch_1f
.end packed-switch
結果は、・・・4行目と14行目だけを修正したときとの違いが分かりませんでした。モバイルネットワークの種類も「不明」のままでした。
2012年1月15日日曜日
2012年1月14日土曜日
Nexus One でセルスタンバイ問題が解決した!
framework.jarを改造すると日本通信のSIMで使用しているNexus Oneのセルスタンバイによる電池消費が改善するというはなしを2chで見て、早速やってみました。使用ROMはOxygeN1mod-2011.12.10です。
情報源は、http://bl.oov.ch/2012/01/b-mobile-sim.html、実際の手順は次のとおりにしました。
1)アンドロイドのシステムを書き込み可能にして、/system/framework/framework.jarをPCにコピー
2)framework.jarはZIPファイルなのでframework.zipとしてから解凍
3)解凍した中にあるclasses.dexに対し、次のコマンドを発行。java.exeはなぜか既にPCのC:\Windows\System32に入っていた。baksmali-1.3.0.jarは情報源からダウンロード。
:pswitch_data_22
.packed-switch 0x0
:pswitch_1f
:pswitch_1e
:pswitch_1f
:pswitch_1e <----2行目と同じに変更
:pswitch_1f
:pswitch_1e
:pswitch_5
:pswitch_5
:pswitch_5
:pswitch_5
:pswitch_1f
:pswitch_5
:pswitch_1f
:pswitch_1e <----2行目と同じに変更
:pswitch_1f
.end packed-switch
5) classes.dexのあるディレクトリで次のコマンドを発行。smali-1.3.0.jar は情報源からダウンロード。
java -jar smali-1.3.0.jar -a 14 -o classes.dex out
6) classes.dexが書き換えられたので、framework.jarを構成していた次のファイルやディレクトリと一緒に再度ZIPファイルとしてまとめframework.jarにする。
・ classes.dex
・ preloaded-classes
・ META-INF
7) 再度 framework.jar を /system/framework/に入れる。パーミッションは特にいじらなくてOK。
8) アンドロイドを再起動。次の写真のとおり圏外時間が100%ではなくなり、電力消費の順位も1位から4位に減り、セルスタンバイによる消費電力は%の数字から判断するに約10分の1になりました。
また、Gの上に↑↓があるアイコンが出現するようになりました。これは、L-04Cの表示と比較すると本来はHに↑↓のアイコンになるべきと思いますが、今回のframework.jarの修正では「モバイルネットワークの種類」が「不明」のままですので、HSDPAと判別できず3Gの意味で「G」となっているものと思います(確認していません)。別な箇所を修正すればこれも正しくなるのでしょう。
情報源は、http://bl.oov.ch/2012/01/b-mobile-sim.html、実際の手順は次のとおりにしました。
1)アンドロイドのシステムを書き込み可能にして、/system/framework/framework.jarをPCにコピー
2)framework.jarはZIPファイルなのでframework.zipとしてから解凍
3)解凍した中にあるclasses.dexに対し、次のコマンドを発行。java.exeはなぜか既にPCのC:\Windows\System32に入っていた。baksmali-1.3.0.jarは情報源からダウンロード。
java -jar baksmali-1.3.0.jar -a 14 classes.dex
4)classes.dexのあるディレクトリに出来る
\out\com\android\internal\telephony\gsm\GsmServiceStateTracker.smali
の3631行目以降を次のように編集。
:pswitch_data_22
.packed-switch 0x0
:pswitch_1f
:pswitch_1e
:pswitch_1f
:pswitch_1e <----2行目と同じに変更
:pswitch_1f
:pswitch_1e
:pswitch_5
:pswitch_5
:pswitch_5
:pswitch_5
:pswitch_1f
:pswitch_5
:pswitch_1f
:pswitch_1e <----2行目と同じに変更
:pswitch_1f
.end packed-switch
5) classes.dexのあるディレクトリで次のコマンドを発行。smali-1.3.0.jar は情報源からダウンロード。
java -jar smali-1.3.0.jar -a 14 -o classes.dex out
6) classes.dexが書き換えられたので、framework.jarを構成していた次のファイルやディレクトリと一緒に再度ZIPファイルとしてまとめframework.jarにする。
・ classes.dex
・ preloaded-classes
・ META-INF
7) 再度 framework.jar を /system/framework/に入れる。パーミッションは特にいじらなくてOK。
8) アンドロイドを再起動。次の写真のとおり圏外時間が100%ではなくなり、電力消費の順位も1位から4位に減り、セルスタンバイによる消費電力は%の数字から判断するに約10分の1になりました。
また、Gの上に↑↓があるアイコンが出現するようになりました。これは、L-04Cの表示と比較すると本来はHに↑↓のアイコンになるべきと思いますが、今回のframework.jarの修正では「モバイルネットワークの種類」が「不明」のままですので、HSDPAと判別できず3Gの意味で「G」となっているものと思います(確認していません)。別な箇所を修正すればこれも正しくなるのでしょう。
登録:
投稿 (Atom)