【カスタム】Galaxy S3(SC-06D)純正ROMでセルスタンバイ問題対策

Galaxy S3(SC-06D)にてIIJmioのMVNO SIMを使用しているのですが、MVNO問題によってバッテリー消費がもの凄いです。改善する為に、パッチをあてましたので、同じ現象に悩まされている方は試してみてはいかがでしょうか。


参考サイト
Tritonさんのブログ

注意事項root化によって、キャリアとメーカーの補償は一切きかなくなります。

また、作業中にデータが消えたり、Galaxy S3(SC-06D)が起動しなくなってしまったとしても、当方では一切責任は負えません。

全て自己責任で作業を行ってください。

前提条件

■root化されている
■デバイスドライバがきっちりインストールされている事(samsung Kiesをインストールするとちゃんとドライバがインストールされると思います。私はsamsung Kiesをインストールしています)
■adbが使用可能な事
■samsung Kiesやisyncr等のGalaxy S3をPC接続した際、自動的に起動するプログラムが停止している事

必要ツールのダウンロード

datasim_framework_jar_patcher_20120317.zip
baksmali-1.2.6.jar
smali-1.2.6.jar
dexopt-wrapper.zip
AndroidSDK
samsung Kies

参考環境
■AndroidSDKインストールディレクトリ
C:¥AndroidSDK
■Galaxy S3(SC-06D)のベースバンドバージョンLI3
■Galaxy S3(SC-06D)のビルド番号LG6
■datasim_framework_jar_patcher_20120317.zipの解凍先
D:downloadbdatasim_framework
さらにframeworkフォルダを作成しておく

セルスタンバイのバッテリー消費状況

■バッテリー消費プロセス一覧

■セルスタンバイプロセスのバッテリー消費状況

■モバイルネットワークシグナルが常に圏外状態となっている

PC環境の整備

各必要ツールでダウンロードした物を以下のようなディレクトリ構成にする。

■dexopt-wrapper
解凍したものをD:downloadbdatasim_frameworkにコピー
■smali-1.3.2.jar
smali.jarにリネームしておく
■baksmali-1.3.2.jar
baksmali.jarにリネームしておく

MVNO対策手順

■SC-06D本体の「設定」-「開発者向けオプション」でUSBデバッグモードに変更。
■USBでPCと接続。
■コマンドプロンプトを開き、datasim_framework_jar_patcher_20120317.zipを解凍したディレクトリにcd
cd /D D:downloadbdatasim_framework/framework
■adbにてSC-06Dの/system/frameworkディレクトリの全てを取得
adb pull /system/framework/

ファイルが取得される

■コピーされたframeworkフォルダにsmali.jar、baksmali.jarコピー

■frameworkフォルダ上で framework.odex を逆アセンブルする
java -jar baksmali.jar –api-level 15 -x framework.odex

■新たに作られた out フォルダの中の下記ファイルをエディタで編集
outcomandroidinternaltelephonygsmGsmServiceStateTracker.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

※画像は-a 14となっていますが、Android4.0.4なのでAPIレベルを -a 15とする

■出来上がった classes.dex を7zipで framework.jar に追加
..7za a -tzip -mx0 framework.jar classes.dex

7zipで開くとclasses.dexが追加されている

■SC-06DをCWMで再起動(CWM Verは5.5.0.4 r4です)
■VolDownを押してmounts and storageを選択し、電源ボタンを押して進む。
■mount /systemを選択し、電源ボタンを押す。
/systemがマウントされた事を確認

■tmpファイルへframework.jarとdexopt-wrapperをコピー
adb push framework.jar /data/local/tmp/
adb push dexopt-wrapper /data/local/tmp/

■adb shell起動
adb shell

■ディレクトリ変更
cd /data/local/tmp

■dexopt-wrapperのパーミッション変更
chmod 755 dexopt-wrapper

■framework.odexの作成
./dexopt-wrapper framework.jar framework.odex /system/framework/core.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar

■framework.odexに、オリジナルファイルから署名をコピー
busybox dd if=/system/framework/framework.odex of=framework.odex bs=1 count=20 skip=52 seek=52 conv=notrunc

■オリジナルのframework.jar framework.odexをバックアップ
ファイルの置き換えをしてしまうので、オリジナルファイルをPCへコピーしておく
/system/framework/framework.jar
/system/framework/framework.odex

■オリジナルのframework.jar framework.odexパーミッションと所有者を確認しておく
cd /system/framework
ls -l framework*

■framework.jar framework.odexの置き換え
mv /data/local/tmp/framework.jar ./
mv /data/local/tmp/framework.odex ./

■置き換えたframework.jar framework.odexパーミッションと所有者がオリジナルと同じか確認
ls -l framework*

※私は作成しなおした時点でパーミッションが違っていたので、以下のコマンドでオリジナルと合わせました
chmod 644 framework.jar
chown root.root framework.jar

chmod 644 framework.odex
chown root.root framework.odex

■SC-06DのCWMでWipe Dalvik Cacheを実行して再起動

これで作業は終了です。
、、、が!!SC-06DがSAMSUNGロゴを表示したまま、起動しません!!
原因が不明です。前に行った際にはセルスタンバイ対策出来たのに、、、
ちなみに今私が使っているSC-06Dはセルスタンバイ対策完了済みです。

【カスタム】Galaxy S3(SC-06D)純正ROMでセルスタンバイ問題対策” への2件のコメント

  1. 参考にさせていただきました。

    MAMA2ですが、dexopt-wrapperでodexを生成するのではなく、
    1. framework.odexを削除
    2. いったん通常通り再起動し、ロゴで止まるのを待つ
    3. dalvik-cacheに生成されたodexをframework.odexとしてコピー
    4. dalvik-cacheとframework.odexの両方にオリジナルから署名コピー
    でうまくいきました。

    • M.Tさんコメントありがとうございます。
      上手くいったのですね。よかったです。
      当方はGS3を友人にあげたので、再検証は出来ませんが、
      GS3aでの純正ROMセルスタンバイ問題対策は成功しています。

      【カスタム】Galaxy S3a(SC-03E)純正ROMでセルスタンバイ問題対策
      に結果を書いてあるので、GS3でも同様の作業で可能だと思います。

      今は諸事情にてブログ更新が出来ていませんが、もう少ししたら復帰出来るので、
      今後ともよろしくお願いします。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*