Nexus 4 アンテナピクト(失敗編)
bmobileのデータ通信専用SIMをNexus 4に差すと未だにアンテナピクトが表示されないのでシステムファイルをいじってみた。
結果はまぁ、失敗なんだけど(´・ω・`)
準備
必要なツール類をこちらのブログで公開されているZIPから借用。
LifeScape: Galaxy Nexus(SC-04D)用 セルフスタンバイ対策ツール(root不要)
修正作業
Android4.2.1なNexus 4でいじる対象は「telephony-common.jar」「telephony-common.odex」。
基本的にはrunme.batの順で進めてみた。
GsmServiceStateTracker.smaliの修正
ブローヴちゃん: Android + b-mobile データ専用 SIM で電界強度を表示する
こちらのブログを参考に修正。
- 3966行目::pswitch_1b → :pswitch_1c
- 3976行目::pswitch_1b → :pswitch_1c
再コンパイル
> java -jar ..\smali-1.4.1.jar --api-level 17 -o classes.dex out
temp\classes.dexが作成。
telephony-common.jarにclasses.dexを挿入。
> copy telephony-common.jar telephony-common.jar.org > ..\7za a -tzip -mx0 telephony-common.jar classes.dex
odexの作成
ここから端末内での操作。
作業ディレクトリはtempディレクトリの外。
> adb push temp\telephony-common.jar /data/local/tmp > adb push dexopt-wrapper /data/local/tmp > adb shell chmod 755 /data/local/tmp/dexopt-wrapper > adb shell cd /data/local/tmp; ./dexopt-wrapper telephony-common.jar telephony-common.odex
リカバリモード(cmw)で作業しているとdexopt-wrapperでの処理に失敗するので、端末は通常起動してる状態で行う。
著名のコピー&差し替え
作成したtelephony-common.odexにオリジナルの著名をコピーする。
ここでリカバリモード(cmw)を起動。
/dataと/systemをマウント後
> adb push busybox /data/local/tmp > adb shell chmod 755 /data/local/tmp/busybox > adb shell /data/local/tmp/busybox dd if=/system/framework/telephony-common.odex of=/data/local/tmp/telephony-common.odex bs=1 > count=20 skip=52 seek=52 conv=notrunc
著名をコピー。
すでにbusybox導入済みの場合は、適度に読み替えてコマンド実行。
> adb shell cd /data/local/tmp; busybox cp telephony-common.odex /system/framework/telephony-common.odex.new > adb shell mv /system/framework/telephony-common.odex /system/framework/telephony-common.odex.old > adb shell mv /system/framework/telephony-common.odex.new /system/framework/telephony-common.odex
オリジナルのodexファイルをリネームして差し替え。