8.セルスタンバイ&アンテナピクト問題解消。
実はこれが一番苦労した。初めて失敗した作業です。
データ通信用のMVNO 回線で、なにもしないままだとアンテナピクトが動かない、そしてセルスタンバイのお陰で電池が減るので、プラスエリア化の次に大事な作業かなと思います。
準備として、SK17aカスタマイズ② FOMAプラスエリア対応の時に使った7-Zip Portableが必要。
あと、http://code.google.com/p/smali/のダンロードから、baksmali、baksmali-1.4.0.jar、smali、smali-1.4.0.jarの4つをダウンロードしておく。(バージョンは変わっているかも)
次に、http://forum.xda-developers.com/showpost.php?p=3864655&postcount=36からdexopt-wrapper.zipをダウンロード。
CWMもSK17にインストールしておく。
いよいよ作業開始。PCのCドライブ直下にframeworkとworkspaceという2つのフォルダを作成。
SK17とパソコンをUSBケーブルでつないで、コマンドプロンプトを起動。
adb start-server
と入力してEnter。
次に、
adb devices
と入力してEnterをたたいて、デバイスが認識されればOK。
次に、
cd /framework
と入力してEnter。
C:\framework>になったかな?なっていれば次へ。
adb pull /system/framework
と入力してEnterをたたくと、長いコマンドが流れるはず。これでSK17の/system/frameworkから、先程C直下に作成したframeworkフォルダの中にファイルがコピーされている。
PCのC:\frameworkに行き、中の「framework.jar」ファイルをC:\workspaceフォルダにコピペ。
最初にダウンロードしておいたbaksmali、baksmali-1.4.0.jar、smali、smali-1.4.0.jarの4つのファイルを、C:\frameworkに移動。
移動したbaksmali-1.4.0.jarをbaksmali.jarに、smali-1.4.0.jarをsmali.jarにリネーム。
再びコマンドプロンプトに
baksmali.jar –api-level 15 -c:core-junit.odex -x framework.odex
と入力してEnter。これで逆アセンブルが完了。
C:/frameworkフォルダにoutフォルダが作られたか確認。
無事にできていれば、C:/framework/out/com/android/internal/telephony/gsm/GsmServiceStateTracker.smaliをテキストエディタで開く。
: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
赤字の部分を赤字のように変更。変更したら上書き保存。
またコマンドプロンプトで、
smali.jar -a 15 -o classes.dex out
と入力しEnter。コンパイルが完了すると、C:/frameworkフォルダにclasses.dexファイルができているはずなので確認。
classes.dexファイルをC:/workspaceフォルダに移動。
C:/workspace\framework.jarを右クリックして、7-Zip Portableで開く。
7-Zip Portableが開いたら、classes.dexをドラッグ&ドロップ。何か聞かれたらはいをクリック。
これで、7-Zip Portableで開いていたframework.jarにclasses.dexが追加された。
初めにダウンロードしておいたdexopt-wrapper.zipを解凍し、中身のdexopt-wrapperファイルをC:/workspaceにコピペ。
コマンドプロンプトで、
cd /workspace Enter
adb push framework.jar /data/local/tmp/framework.jar Enter
adb push dexopt-wrapper /data/local/tmp/dexopt-wrapper Enter
adb shell chmod 755 /data/local/tmp/dexopt-wrapper Enter
Enterは、たたくだけで入力しないよ。
Flashtoolを起動。
Advanced→Install Busyboxをクリックし、OKをクリック。
終了したらFlashtoolを閉じる。
コマンドプロンプトで、
adb shell Enter
cd /data/local/tmp Enter
./dexopt-wrapper framework.jar framework.odex Enter
を入力。
次に、
busybox dd if=/system/framework/framework.odex of=framework.odex bs=1 count=20 skip=52 seek=52 conv=notrunc
を入力してEnter。
次に、
su Enter
mount -o remount,rw /dev/block/mtdblock0 /system Enter
cp /data/local/tmp/framework.odex /system/framework/framework.odex.new Enter
mv /system/framework/framework.odex /system/framework/framework.odex.bak Enter
mv /system/framework/framework.odex.new /system/framework/framework.odex Enter
sync Enter
reboot Enter
これでSK17が再起動されるので、再起動が開始したらケーブルを抜く。そしてCWMを起動させる。
CWMが起動したら、wipe cache partitionを実行。
完了したら、advanced→Wipe Dalvik Cacheを実行。
これも終わったら、戻ってreboot system nowを実行。無事再起動できれば完了。
急ぎ足で思い出しながら書いたので、ちょっと自信はありませんが、こんな感じのはず。
SK17aカスタマイズ⑤ セルスタンバイ&アンテナピクト問題解消 への2件のフィードバック