SO05Dのセルスタンバイ対策、スクロールキャッシュ無効化、メディア音量30段階MODを作ってみました。
参考にしたのはraydefy様のブログ です。
ファイルはこちらから どうぞ。
上記ファイルの導入方法ですが、cwm recoveryを起動してsystemをmount。
PCのコマンドプロンプトを開き以下のように入力。
adb push framework.odex /tmp
adb pull /system/framework/framework.odex d:\ ←backupですので適当にフォルダ指定
adb shell
#じゃなかったらsu
rm /system/framework/framework.odex
cp /tmp/framework.odex /system/framework
reboot
念のため再度cwm recoveryに入りcacheとdalvik-cacheをwipe。
これで終わりです。
もしロゴループしてしまうようでしたら、ご自身で以下のメモ参考にやってください。
(環境により変化あるようですのでロゴループする方もでるかもです。)
ロゴループした場合はバックアップを上記のコマンドで戻してください。
以下は自分メモ~~~~~導入した方法です。
まず適当にフォルダを作りその中にworkspaceフォルダも作ります。
d:\framework
d:\framework\workspace
d:\frameworkの中に
smali
smali.jar
baksmali
baksmali.jar
を入れる。ファイルはこちらから DL。
~.jarはバージョン名が入ってるので上記のファイル名にリネーム。
同じくd:\frameworkにSO05Dから抜いたsystem dump内のframeworkフォルダの中身を全てコピー。
次にd:\framework\workspaceの中に
dexopt-wrapper
を入れる。ファイルはこちらから DL。
次にコマンドプロンプトを開き
d:
cd d:\framework
ディレクトリ移動したらframework.odexをbaksmaliします。
baksmali.jar -x framework.odex
これで同フォルダ内にoutフォルダが作成され、その中にframework.odexが展開されてるはずです。
outフォルダに移動して修正作業です。
まずはスクロールキャッシュの無効化
※コードの一番左は行数ですが、環境により変わるみたいです。
out\android\eidget/AbsListView.smali をテキストエディタ等で開き以下のように修正。
1529 const/4 v1, 0x1
↓
1529 const/4 v1, 0x0
2051 invoke-virtual {p0, v1}, Landroid/widget/AbsListView;->setScrollingCacheEnabled(Z)V
↓
2051 invoke-virtual {p0, v2}, Landroid/widget/AbsListView;->setScrollingCacheEnabled(Z)V
13901 .parameter "enabled"
↓
13901 .parameter "disabled"
次にセルスタンバイ対策です。
out\com\android\internal\telephony\gsm\GsmServiceStateTracker.smali を以下のように修正。
4373 :pswitch_1c
↓
4373 :pswitch_1d
4383 :pswitch_1c
↓
4383 :pswitch_1d
最後にメディア音量30段階
out\android\media\AudioService.smali を以下のように修正。
857 0xft 0x 0t 0x0t 0x0t
↓
857 0x1et 0x 0t 0x0t 0x0t
以上で修正作業は終了。
ここからまたコマンドプロンプトです。
d:\framework
smali.jar -o classes.dex out
するとframeworkフォルダ内にclasses.dexというファイルができています。
それとframework.jarをworkspeceフォルダに移動しておきます。
次にworkspaceフォルダにエクスプローラーで移動して、framework.jarを7zip等で開きます。
その中に先ほど作成したclasses.dexを放り込みます。
framework.jarの中身は↓のようになるはずです。
META-INF
classes.dex
preloaded-classes
んで7zipは閉じます。
次にSO05Dをrecovery modeで起動。
PCと接続し、system と dataをmountしておきます。
ここからまたコマンドプロンプト。
cd d:\framework\workspace
adb push framework.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 framework.jar framework.odex
busybox dd if=/system/framework/framework.odex of=framework.odex bs=1 count=20 skip=52 seek=52 conv=notrunc
cp /data/local/tmp/framework.odex /system/framework/framework.odex.new
元のframework.odexのバックアップもとっておきます。
mv /system/framework/framework.odex /system/framework/framework.odex.bak
mv /system/framework/framework.odex.new /system/framework/framework.odex
sync
reboot
これで再起動するはずですが、Sonyロゴ表示の時にボリューム↓連打で再度recovery modeに入ります。
んで、cache と dalvik-cache をwipeしておきます。
これでリブートすれば完了です。
お疲れ様でした。