ICSは非deodexだから神パッチが使えなくて困ったもんだ。素人だからメモのみで(;´∀`)
必要なもの
・smali.jar
・baksmali.jar
・dexopt-wrapper
cmdコマンドプロンプトから frameworkフォルダを引っ張る
adb pull /system/framework frameworkコピーされたframeworkフォルダに smali.jar と baksmali.jar をコピーして、frameworkフォルダ上で framework.odex を逆アセンブルする
新たに作られた out フォルダの中の下記ファイルをエディタで編集java -jar baksmali.jar -c:core-junit.odex -x framework.odex
\out\com\android\internal\telephony\gsm\GsmServiceStateTracker.smali
:pswitch_data_22
.packed-switch 0x0
:pswitch_1c
:pswitch_1d ←この値に
:pswitch_1c ←あわせる
:pswitch_1c
:pswitch_1c
:pswitch_1f
:pswitch_5
:pswitch_5
:pswitch_5
:pswitch_5
:pswitch_1c
:pswitch_5
:pswitch_1c ←あわせる
:pswitch_1c
:pswitch_1c
.end packed-switch
↓
:pswitch_data_22
.packed-switch 0x0
:pswitch_1c
:pswitch_1d
:pswitch_1d
:pswitch_1c
:pswitch_1c
:pswitch_1f
:pswitch_5
:pswitch_5
:pswitch_5
:pswitch_5
:pswitch_1c
:pswitch_5
:pswitch_1d
:pswitch_1c
:pswitch_1c
.end packed-switch
編集し終わったら、classes.dex に再コンパイルする
java -jar smali.jar -a 15 -o classes.dex out出来上がった classes.dex を7zipで framework.jar にぶち込む
で、arcとつないで作業
framework.jar と dexopt-wrapper を仮フォルダに移す
adb push framework.jar /data/local/tmp/framework.jar
adb push dexopt-wrapper /data/local/tmp/
adb shell chmod 755 /data/local/tmp/dexopt-wrapper
dexopt-wrapper
を使ってjarをodexに変換してやる adb shell署名部分をオリジナルファイルからコピーする
cd /data/local/tmp
./dexopt-wrapper framework.jar framework.odex
busybox dd if=/system/framework/framework.odex of=framework.odex bs=1 count=20 skip=52 seek=52 conv=notruncんで、arcの /data/local/tmp 内にある framework.odex を /system/framework/ にぶち込む
念のため、Wipe Dalvik Cache しとく
アンテナピクトが立って、圏外時間が0になった(´∀`)
参考:
Android + b-mobile データ専用 SIM で電界強度を表示する
非Deodex環境 [SO-02C] でセルスタンバイ問題を解決する
おまけ
Wi-Fi3G
ええい、SONYの新型はバケモノか!
java -jar smali.jar -a 15 -o classes.dex out
返信削除↑の-aの引数を14にしないと当方ではエラーでした。
報告まで。
tench@nさまの環境の、Android SDKのAPIバージョンが古いのではないかと…?
削除この記事を読んで、ようやくセルスタンバイ対策に成功しました。
返信削除本当にありがとうございましたm(__)m
ありがとうございました。
返信削除自分も、やっとセルスタンバイの対策が出来ました。(docomo,arc,android4.0.3)
簡素(わかり易い)にまとめられており、
どこよりも、参考になりました。