[SC-04D] セルスタンバイと緊急通報のみの問題対応
<追記>
4.2の場合は以下に追記しました。
[SC-04D] Android 4.2 セルスタンバイ対策(1w1.org)
</追記>
b-mobileとかのデータ専用SIM(DocomoのMVNOのやつ)で、セルスタンバイ状態で電池の減りが早い、ステータスバーのアンテナ立たない、緊急通報のみになってしまうなど、MVNOだからか、データ通信専用だからか不便なことがあるので対応してみた。
個人的には電池の減りはあまり気にならないのですが、アンテナ立たないのがムカつくので対応してみた(笑)
<参考URL>
Android + データ専用 SIM での動作修正パッチ (ブローヴちゃん)
Android + データ専用 SIM で「緊急通報のみ」を消す (ブローヴちゃん)
データ通信のみの MVNO 回線での Android セルスタンバイ問題 (更新: 2012/03/17)(新電波)
基本的には、上記、ブローヴちゃん様のサイトのままで、バッチまで作っておられるのでこれを使わせていただければ、うまくいけばワンクリックで作業完了です。
個人的には、一応自分の手でやってみたかったので以下、自分用メモです。
◆用意するもの
baksmali smali 7za.exe adb.exe
ブローヴちゃん様のバッチのファイルの中身を使わせていただければ必要なものがはいっています。
◆対象
SC-04D Galaxy Nexus (AOKP M5 + Flanco M3) ←Kernelはあんまり関係ない。
#(余談ですが)AOKP M5も4.0.4ベースなのですが、Stock(4.0.4)のframework.jarは(たぶん)odexなので以下URLが参考になるのですが、どうやってもうまくいかず挫折中
非Deodex環境 [SO-02C] でセルスタンバイ問題を解決する(nunnun’s weblog)
◆内容
framework.jarにそのあたりの値がはいっているのでちょっと値を変更してダマしてしまいましょうという感じ
◆手順
1.framework.jarをもってくる
2.classes.dexとりだし
3.逆コンパイル
4.ファイル修正
5.コンパイル
6.framework.jarのclasses.dexを差し替える
7.framework.jarを差し替える
◆作業
1.framework.jarをもってきて、一応バックアップもとっておく(framework.jar.org)
adb pull /system/framework/framework.jar copy framework.jar framework.jar.org
2.classes.dexとりだし(classes.dex.tmp)
7za.exe e -so framework.jar classes.dex > classes.dex.tmp
3.逆コンパイル(tempフォルダに作成)
mkdir temp "c:\Program Files (x86)\Java\jdk1.6.0_31\bin\java.exe" -jar baksmali-1.3.2.jar --api-level 15 -o temp classes.dex.tmp
4.ファイル修正
temp\com\android\internal\telephony\gsm\GsmServiceStateTracker.smali
セルスタンバイ、アンテナなど対応
:pswitch_data_22 .packed-switch 0x0 :pswitch_1c :pswitch_1d :pswitch_1c :pswitch_1d ← 1c から 1d へ変更 :pswitch_1c :pswitch_1f :pswitch_5 :pswitch_5 :pswitch_5 :pswitch_5 :pswitch_1c :pswitch_5 :pswitch_1c :pswitch_1d ← 1c から 1d へ変更 :pswitch_1c .end packed-switch
緊急通報のみの対応
「GsmServiceStateTracker;->regCodeToServiceState(I)I」で検索
invoke-direct {v0, v9}, Lcom/android/internal/telephony/gsm/GsmServiceStateTracker;->regCodeToServiceState(I)I move-result v14 invoke-virtual {v13, v14}, Landroid/telephony/ServiceState;->setState(I)V .line 590 const/16 v13, 0xa if-eq v9, v13, :cond_144 const/16 v13, 0xc if-eq v9, v13, :cond_144 const/16 v13, 0xd if-eq v9, v13, :cond_144 const/16 v13, 0xe if-ne v9, v13, :cond_18e .line 591 :cond_144 const/4 v13, 0x0 ← 0x1 から 0x0 へ変更
5.コンパイル(classes.dexができる)
"c:\Program Files (x86)\Java\jdk1.6.0_31\bin\java.exe" -jar smali-1.3.2.jar --api-level 15 -o classes.dex temp
6.framework.jarのclasses.dexを差し替える
7za.exe u -tzip framework.jar classes.dex
7.framework.jarを差し替える
本当はリカバリモードとかでやるほうがいいですが、無理やり差し替えちゃう(笑)
adb push framework.jar /system/framework/framework.jar adb shell chmod 644 /system/framework/framework.jar adb reboot
失敗したらバックアップしておいたframework.jarを送りこむか、差し替えるときにバックアップしておいてそれに戻すなど。
(というかそれが簡単にできない人はやらないほうがいいです)
◆SIMはB-MobileのU300ですが、アンテナの強度がでているのとNTTDocomoの表記になっています(AOKP M5)
最近のコメント