2012-03 << 2012-04 >> 2012-05

2012-04-01 (日)

*[Android] b-mobileでちゃんとアンテナ表示する

DesireのHTC Senceを使っていたときもそうだったのだけど,データ通信専用のb-mobile simだと接続できているのに圏外表示になってしまって嫌な感じ.今までアンテナ表示するウィジェットとかでごまかしていた.

1年くらい前にも,根本的に直そうと思ってAndroidのソース追いかけてて途中で挫折してたのですが,今日ググったら解決できている記事を見つけた.

http://bl.oov.ch/2012/01/b-mobile-sim.html

GsmServiceStateTrackerの修正でいけるのか.もっと面倒な箇所を変更しないといけないかと思っていました.

というわけで,早速やってみる.先の記事では上手くいってるようなのでどうにかなるだろう.

smaliとbaksmaliの使い方はこの辺を見た気がする.昨日,CellBroadcastReceiver.apkを作るときにも使いました.

java -jar baksmali-1.3.2.jar -a 15 -x -d framework  -o out framework/framework.odex

ここでGsmServiceStateTracker.smali を編集する

java -jar smali-1.3.2.jar -a 15 -o classes.dex out

odexなので-xを忘れないように.Android 4.0.4なのでAPIレベルが15ですが,問題なくいけました.

で,実機にframework.jarを書き戻して起動.

…起動せず.

ログを見ると,system/framework/framework.odexじゃないとだめっぽい.だめもとで,/data/dalvik-cache/以下を見てみるとdexファイルが生成されて居るのが見えるので,こいつを,system/framework/framework.odexにする.

…まだ起動せず.

DexOpt: mismatch dep signature for '/system/framework/framework.odex'

とか言われたので諦めようかと思ったけど,ダメもとでバックアップしておいたframework.odexからヘッダの署名っぽい箇所をバイナリエディタでコピーして再度配置.

起動しないだろう……と思ったけど,起動した.

アンテナも出ている.ネギアンテナは用済みです.

ついでにフォントとかもモトヤフォントにしておく.ICSはフォントファイル置くだけじゃなくてxmlに設定書かないといけないのか.

やってみると上記のようなことが起こるかもしれませんが,逆コンパイルとか禁止されてた気もするので夢の中の話です.

PCにGalaxy Nexusつないだ状態で意味もわからずキーボード叩いてたら不思議なことにアンテナが表示されてました.パソコンとかスマートフォンとかむつかしいので,よくわかりません.

追記:

非deodex環境でやってるの記事も見つけた.やり方は合っていたっぽい.

http://blog.nunnun.jp/Technology/modify_framework_odex_on_non_deodexed_rom.html

2012-03 << 2012-04 >> 2012-05