2013年4月25日木曜日

Galaxy Tab 7.7 SC-01E を IIJmio でテザリング対応に(ついでにセルスタンバイ対策)

avast の更新時(2013/04/10)に SuperSU が「再インストールされたので~」ってメッセージを出していたか否か、今となっては確かめようが無いのだが FW機能が無効になっていたようだ...

そーです、パケットがダダ漏れした状態になっていました。幸い(?)割とすぐに気がついたから良かったものの、そうでなければ上限まで行っていたかもですよ。

ということで、パケット・ケチケチ運用 2013年3月分で書いたように、Galaxy Tab 7.7(SC-01E)のテザリング対応を進めました。テザリングする作業のついでに、セルスタンバイ対策も併せてやってみました。現時点でセルスタンバイは圏外100%になっているけど、そんなにバッテリは減らないしアンテナピクトも立つので対策しなくてもいいかなと思っていましたが、弄りついでということで。

例にもれず先人の努力の賜物を分けていただくことにします。Micco's pageさんを参考にテザリングとセルスタンバイの対策を実施しました。

  • CS/PSで別々に処理をする
  • APNは強制書き換えではなく、設定されているものを利用

の考え方が秀逸。SC-01Eはアンテナピクトが立つので、CS対策だけできればセルスタは解決(と思っていた。結果的には両方で戻り値を 1d にしました)。CS/PSの詳しい説明はIIJ堂前さんのブログを参照してください。

mvno でセルスタンバイ対策というと、ブローヴちゃんのところが詳しい。とはいうものの、書き換えている箇所の意味が分からないのでぐぐっていたら、元になっているのは次のソースらしい。

private int regCodeToServiceState(int code) {
  switch (code) {
    case 0:
    case 2: // 2 is "searching"
    case 3: // 3 is "registration denied"
    case 4: // 4 is "unknown" no vaild in current baseband
    case 10:// same as 0, but indicates that emergency call is possible.
    case 12:// same as 2, but indicates that emergency call is possible.
    case 13:// same as 3, but indicates that emergency call is possible.
    case 14:// same as 4, but indicates that emergency call is possible.
      return ServiceState.STATE_OUT_OF_SERVICE;

  case 1:
    return ServiceState.STATE_IN_SERVICE;

  case 5:
     // in service, roam
    return ServiceState.STATE_IN_SERVICE;

  default:
    Log.w(LOG_TAG, "unexpected service state " + code);
    return ServiceState.STATE_OUT_OF_SERVICE;
  }
}

ブローヴちゃんの  "←ここを見て" ってのは case 1 での戻り値が正常な場合の戻り値ってことですね。で、この場合は 1d が合致すると。1f でも同じといえば同じなんだが、ローミングはしていないので素直に 1d を返せばいいね。

じゃ、どのケースに 1d の戻り値を返せばいいってことになるんだが、基本的にはトライ&エラーで追い込むことにする。

最終的には 2ch の「docomo Galaxy Tab 7.7 Plus SC-01E 3」の #206に書き込まれている変更にしました。ブローヴちゃんの  "← ※ Xperia 系ではここを~" のパターンですね。
CSだけ変更してあげればいいと思っていましたが、CS/PS のいずれの場合も変更をしてあげないと駄目でした。(※5月7日に CS のみ修正とした。これでも ok でした。)

コンパイルして framework.jar を作成 → Tab に push → dexopt-wrapper で framework.odex を作成し /system/framework にコピー後再起動。odex なので dalvik-cache の wipe はしていません。Micco's pageさんのところに、dexopt-wrapper で framework.odex を作成すると起動しないことがあるって記述がありましたが、幸いなことに一度も Brick していなーいです。(ここを見た人が実施して Brick しても責任は持てません...)

framework.odex を入れ換えてびっくりしたのが急にバッテリ残が減ったこと。反対に充電もあっという間でしたが(笑)  入れ換えの副作用ですかね、あまり気にしないことにします。

Screenshot_2013-04-22-12-29-36 Screenshot_2013-04-25-10-50-46 Screenshot_2013-04-25-10-50-53

結果なんですが、圏外時間は 数%に収まっています。なのでセルスタンバイ対策としては完了。その割に電力食っているように見えますが、実際のバッテリの減りには関係ないように感じます。(システムの設定→バッテリで見たとき)
機内モードでも試して比較すればいいんでしょうが、自分的にはセルスタンバイの対策はおまけ要素なのでここまでにしておきます。

残るはテザリング対応なんですが、 Micco's pageさんを参考に該当と思われる箇所の修正を行い、コンパイルから入れ換えまでを実施。はい、何の問題も無くテザリングを行うことができました。少々デカ目のモバイルルータとして、しばらく使ってみることにします。

あっ、IIJmio を 1年ちょっと使ったのですが、OCN モバイル エントリー d LTE 980 に浮気することにしました。30M/日は制限無しで使えるので、自分的にピッタリだと思ったので。一週間ほど使用量を計測しましたが、今のところ Max15M でしたので。30M越えたときの速度が 100k ってのは辛いが、おそらく越えることも無いだろうと思いまして。
APN が変わるので、今回のパッチで大丈夫か否かがわかります。使い始めるのは 6月からになると思うけど。人気があるようで 2013/5/3 - 2013/5/14 間の発送です。それまでに IIJ から対抗商品が出たらキャンセルするかも。IIJmio の 200k は、2ch・gmail 辺りだったら問題無く使えるんで。
※ DTI みたいに、最初よくてその後土壺ってことは無いと思ってます、OCN。

2013/04/27追記

IIJmio から素晴らしい贈り物が発表されたので、amazon に頼んでいた OCN d LTE 980 は速攻キャンセルとしました。

2013/05/07追記

IIJ の中の人の解説をよーく読むと、LTE には PS/CS の区別が無く、PS のみということだったので、セルスタ対策を CS のみとしました。この変更で問題無く運用中です。変更箇所は前回 PS/CS で 1c → 1d にしたところを CS のみ 1d に変更としました。

2013/05/08追記

CS だけで ok だと思っていたのですが、肝心のテザリングを行うとデータ通信が切れてしまう事態に。ということで、やはり元通り CS/PS ともに例の箇所を 1d にすることにしました。これで様子見だな。

0 件のコメント:

コメントを投稿