イオンSIM(b-mobileSIM)とセルスタンバイ問題1 - GALAXY NEXUS

2012-03-27

Android IT Nexus

GALAXY NEXUS(SC-04D)で、セルスタンバイ問題の対策を行ったので、メモを記載する。いつも通り、先達にすがっただけですが…。

関連記事
  1. Galaxy Nexus Root Toolkit 1(予備調査),(2,3,4,5,6)
  2. dex,odex,deodex - Dalvik VM
  3. GALAXY NEXUSにAndroid Revolution HD ROM焼き
  4. GALAXY NEXUSにAOKP ROM焼き1(3/31追記)
参考情報
  1. データ通信のみの MVNO 回線での Android セルスタンバイ問題 (更新: 2012/03/17):セルスタンバイ問題の全体像が記載されている。
  2. Android + b-mobile データ専用 SIM で電界強度を表示する(ブローヴちゃん):対策内容。
  3. Android + データ専用 SIM での動作修正パッチ(ブローヴちゃん):2をパッチ化したもの。実際に実施したのはこの内容。
  4. SC-04D:イオンSIMセルスタンバイ問題対応:deodoxのヒントになった。
しばらく前にイオンSIMを購入して、GALAXY Sに挿して使っていたが、GALAXY NEXUSに機種変更したので、差し替えて使っている。通信は出来ているのだが、アンテナマーク(アンテナピクトとかピクトマークとか呼ぶらしい)が表示されず(△になっている)、消費電力も最も多いのが「セルスタンバイ」になっている。


この現象、GALAXY NEXUSに限らず複数の機種で発生する現象らしく、「セルスタンバイ問題」と呼ばれているようだ。電波の有無を音声回線の状態で判定してるため、データ通信専用の回線(日本通信、b-mobile、イオンSIM等MVNO回線)で発生するらしい。ただし、docomo純正のデータ専用回線の場合は何か対策されていて大丈夫らしい。
対策としては以下のような方法があるそうです(参考情報1参照)。
  1. ピクトの表示を行うアプリを使う。→消費電力の解決にならない。
  2. 自動機内モードのアプリを使う。スクリーンオフ時に機内モードに切り替えて消費電力を削減する。→プッシュメールが受け取れない。
  3. 音声付回線(Talking SIMなど)にする。→運用費アップ。
  4. 端末の設定で、PS Only(通常はCS+PS)にする。→端末固有の方法のため、GALAXY NEXUSでは設定に入れなかった。
  5. システムファイル(ソフト)を書き換えて、データ回線のみでも音声回線もつかんでいるように勘違いさせる。
他に省電力関係で「魔法の5行」というのがあるらしい。root化を決めたときには、それを実施しようと思っていた。ところがroot化が終わっていざセルスタンバイ問題に取り組もうと思ってよく調べたら、「魔法の5行」はセルスタンバイ問題とは関係なかった。

1~4はそれぞれ問題があるので5を実施するしかなさそうだが、私にとってはかなり敷居が高い内容だった。そもそも、セルスタンバイの消費電力比率は高いが、電池がすぐ無くなって困るほどでもなかった。でもroot化してるうちになんとなくイメージが分かってきたので、やってみることにした。

自己責任でお願いします。

手順等(参考情報2,3参照)
  1. 参考情報の作業環境
    • GT-i9250
      英国向けのGALAXY NEXUSみたい。docomoのSC-04Dでも実施している人がいたので問題なさそう。
    • ICL53F Deodexed Rooted Busyboxed
      参考情報4にヒントがあった。SC-04Dの場合、maguro_signed_ICL53F_rooted_deodexed_bigxie.zipを入れればいいみたい。カスタムROM(カーネル?)らしい。ちょっと敷居が高い。
    • Deodexedな環境が必要
      ???。参考情報3のよくある質問に見分け方は書いてあるけど、意味不明なので調べた。カスタムROMと言われるものは、たいていそうらしい。詳細は、関連記事2参照。
  2. カスタムROM焼き
    上記のICL53F~は、素のAndroid4.0.2をdeodexedしたもの見たいだ。どうせカスタムROMを入れるのなら、いいものはないかと思って探し、Android Revolution HD 2.1.5を入れた。rooted/deodexedで、なんか速そうだし、省電力とも書いてある。詳細は、関連記事3参照。
    3/31追記:その後AOKPに焼きなおしてから実施し、対応できた。関連記事4参照。
  3. パッチのダウンロード
    参考情報3から、datasim_framework_jar_patcher_20120317.zipをダウンロード、解凍しておく。解説も含めてありがとうございます。
  4. パッチ当て(バッチファイル実行)
    やっと、前準備が整ったので、本丸。
    1. PCの作業環境(参考情報3のよくある質問参照)
      • ドライバー。root化した時にインストール済み。関連記事1の3,4,7参照。
      • java。実行できたので、入っていたのだろう。GALXY Sをroot化した時にインストールした気がする。パスも通っていたみたい。
      • (Windows XP)
    2. recovery-clockwork-5.5.0.2-maguro.img起動
      root化のときにflashしてあったので(関連記事1の6,8参照)、電源OFF後、端末から起動(ボリュームUP/DOWN+電源ボタン同時押し)
    3. /systemをマウント
      ボリュームボタンと電源ボタンの操作で、mount and storage→mount /system。rwなのかな?
    4. コマンドプロンプト(cmd.exe)を開いて、3で解凍したフォルダへ移動(cd)。実際は、Open Command Window Hereを利用。
    5. execute.batを実行。

      焼いたROMがAndroid4.0.2だったので、14(4.0~)を選択。

      Galaxyシリーズ(0)を選択。

      「緊急通報のみ」は、変更しない(0)を選択。表示だけの問題なのと、docomoSIMを挿したときに表示がおかしくなる可能性があるとの事だったので。

      "y"で実行開始。

      "framework.jar"(改変を行うファイル)のバックアップ→"y"。PCに"framework.jar.orig"が作成される。一連の作業終了後、適切な場所に保存しておく。
      デバイスへの転送→"y"

      一連の処理終了。運よく?問題なく終了した。
    6. Dalvik cacheとcache partitionのwipe
      最後の指示に従って実行。端末はCWM Recoveryの起動状態のままなので、メニューから選んで実行する。wipeする意味は、元の環境で実行時に自動生成されていたodexを削除して、再起動後に再生成するためだろう。(関連記事2参照)
    7. reboot
       
  5. 確認
    ピクトマーク。あれっ、△のままだ。少し待って電池の確認をしても、100%圏外のまま。 
  6. 再実行
    よくわからないが再実行することにした。
    1. CWM Recovery起動。
    2. /systemをマウント。
    3. recover.batを実行。バックアップしてあったframework.jarを元に戻してくれる。
    4. 念のため、4-fを事前に実行した。
    5. 4-e~g以降を再実行。
  7. 再確認
    今度は、ピクトマークが棒3本に変わって、Hと出ている。
長くなったので、電池持ちの確認結果は別記事にする。
イオンSIM(b-mobileSIM)とセルスタンバイ問題2 - GALAXY NEXUSに続く。