Galaxy Tab 7.0 Plus SC-02D docomo版 Android 4.0 バッテリー消費とMVNO問題





Galaxy Tab 7.0 Plus SC-02D docomo版 Android 4.0 バッテリー消費とMVNO問題



Galaxy Tab 7.0 Plus SC-02D docomo版を使用しています。
docomo版 Android 4.0(ICS)で大きな問題も無く使用していましたが
ちょっと、気になることが。

以前より、バッテリーの減りが早いのです。

日中使っている場所がビル陰で3Gの電波の入りが悪く(1本も立たない時も)
そのせいかと思っていましたが
電波状態が比較的良好な自宅でもバッテリーの減りが早いような気が。

自宅で機内モードにし3Gをを切ってWiFi運用ではバッテリーの持ちが良く、
電波状態が良い状態で3GがONの状態で端末をほとんど使用していない場合でも
バッテリーの減りが早い!

docomo版 Android 4.0のROMを焼いた際に
MVNO対策は何も実施せずにそのままIIJmioのsimを認識し、使用できていたので
あまり気にしていませんでした。
そのままで、ちゃんと「NTT DOCOMO」と表示し「緊急通報」とは表示されませんし。

でも、海外版 ICS Android 4.0でMVNO対策を実施後に使用していた時よりもバッテリーの減りが早いのです。

バッテリーの寿命も考えられますが
docomo版 Android 4.0に変えてからバッテリーの減り方がガクっと下がった感じです。
以前は3GがONでも端末を使用しない場合、バッテリーはそんなに減らなかった。
土日に端末を使用しなければ充電せずに月曜の朝に使用できていました。


それが今は無理。

docomo契約の純正のsimがあれば比較できるでしょうが
あいにく持っていないので。
物は試しと以前SC-02Dに海外版 ICS Android 4.0 で実施した
IIJmioなどのデータ専用SIMを使った場合に必要になることがある
MVNO対策を実施してみました。


過去記事
Galaxy Tab 7.0 Plus SC-02D にICS P6200XXLQ6_P6200OXXLQ2_EUR.zip を入れる
Galaxy Tab 7.0 Plus SC-02D に入れたICSでデータ専用 SIMを使う
Galaxy Tab 7.0 Plus SC-02DにdocomoのICS Android 4.0.4を焼いてrootまで


上の過去記事「Galaxy Tab 7.0 Plus SC-02D にICS P6200XXLQ6_P6200OXXLQ2_EUR.zip を入れる」の
bat:バッチとsh:シェルを若干修正しました。

ご利用はあくまで、自己責任でお願いします。
「/system/framework/framework.odex」入れ替えのため、要root権限です。

ちなみに、root権限取得手順は上の
「Galaxy Tab 7.0 Plus SC-02DにdocomoのICS Android 4.0.4を焼いてrootまで」に

※注意
docomo版 Android 4.0は非deodex環境のため
そのままでは「ブローヴちゃん」の修正パッチは正常に動作しません。



■準備
以下のファイルを用意します。

data-only-sim-smali-fixer.wsfはブローヴちゃんAndroid + データ専用 SIM での動作修正パッチ
datasim_framework_jar_patcher_20120316b.zip を解凍後に展開されるファイルを使用します。
「ブローヴちゃん」のパッチファイルを勝手に使わせていただきました。感謝いたします。

■バッチ&シェルの作成(MVNOデータ専用SIMを使用する場合のみ実施)
frammk.batとframcp.shを改行コードに注意し編集します。

今回は作業フォルダとして以下のフォルダで実施しています。
「C:\temp\sc-02d」
ファイルはすべてこの作業フォルダに保存します。


frammk2.bat 改行コード(CRLF:Windows標準)
@echo off

set TARGET=framework

set FRAMEWORKDIR=framework
set WORKDIR=workspace
set LEVEL=15
set SH_NAME=framcp2.sh
set TMP_DIR=/data/local/tmp/
REM set UPDATED_FILE=processed-emergency.smali
set UPDATED_FILE=data-only-sim-fix.smali

set BAKSMALI=baksmali-1.4.2.jar
set SMALI=smali-1.4.2.jar

adb pull /system/framework %FRAMEWORKDIR%

echo framework 転送完了。
PAUSE

mkdir %WORKDIR%

copy %FRAMEWORKDIR%\%TARGET%.odex %WORKDIR%\
copy %FRAMEWORKDIR%\%TARGET%.jar %WORKDIR%\
copy %FRAMEWORKDIR%\core-junit.odex %WORKDIR%\
copy %FRAMEWORKDIR%\core.odex %WORKDIR%\
copy %FRAMEWORKDIR%\bouncycastle.odex %WORKDIR%\
copy %FRAMEWORKDIR%\ext.odex %WORKDIR%\

echo デコンパイルします。
PAUSE

echo on
java -Xmx512m -jar %BAKSMALI% --api-level %LEVEL% -d %WORKDIR% -o %WORKDIR%\lv%LEVEL% -x %WORKDIR%\%TARGET%.odex
@echo off

echo on
dir %WORKDIR%\lv%LEVEL%\com\android\internal\telephony\gsm\GsmServiceStateTracker.smali
cscript //Nologo data-only-sim-smali-fixer.wsf %WORKDIR% %LEVEL% 0 0
@echo off

echo 編集が終了しました。編集を反映します。
PAUSE

copy %WORKDIR%\%UPDATED_FILE% %WORKDIR%\lv%LEVEL%\com\android\internal\telephony\gsm\GsmServiceStateTracker.smali

echo 編集を反映しました。
echo コンパイルします。
PAUSE

echo on
java -Xmx512m -jar %SMALI% --api-level %LEVEL% -o %WORKDIR%\classes.dex %WORKDIR%\lv%LEVEL%
@echo off

echo on
copy %WORKDIR%\classes.dex .
7z a %WORKDIR%\%TARGET%.jar classes.dex
del classes.dex
@echo off

echo %TARGET%.jarその他を転送します。
PAUSE

echo on
adb push %WORKDIR%\%TARGET%.jar %TMP_DIR%

adb push dexopt-wrapper %TMP_DIR%

adb push %SH_NAME% %TMP_DIR%

frammk2_bat.txtこれを「frammk2.bat」で保存してください。
必要により、適宜修正して実行してください。
(編集が容易なよう作成したつもりですが...)



framcp2.sh 改行コード(LF:Linux標準)
#!/system/bin/sh

set -x

cd /data/local/tmp

ls -l

chmod 777 dexopt-wrapper

rm framework.odex
./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

mount -o remount,rw /system /system

cp -p /system/framework/framework.odex /data/local/tmp/framework.odex.org

cp /data/local/tmp/framework.odex /system/framework/framework.odex
chmod 644 /system/framework/framework.odex
chown root.root /system/framework/framework.odex
ls -l /system/framework/framework.odex

set +x

busybox rm -rf /cache/*
busybox rm /data/dalvik-cache/*

sync
sync
sync

echo Please clear cache dalvik-cache

echo Please reboot recovery

framcp2_sh.txtこれを「framcp2.sh」で保存してください。


準備完了時点でのフォルダの内容です。

C:\temp\sc-02d>dir
ドライブ C のボリューム ラベルがありません。
ボリューム シリアル番号は 8407-8B4B です

C:\temp\sc-02d のディレクトリ

2013/03/26  09:26    <DIR>          .
2013/03/26  09:26    <DIR>          ..
2010/11/19  01:08           163,840 7z.exe
2013/03/26  08:37           541,043 baksmali-1.4.2.jar
2012/01/23  15:24             8,543 data-only-sim-smali-fixer.wsf
2009/05/30  23:15             5,512 dexopt-wrapper
2013/03/25  16:03               711 framcp2.sh
2013/03/26  08:43             1,665 frammk2.bat
2013/03/26  08:37           734,288 smali-1.4.2.jar
               7 個のファイル           1,455,527 バイト
               2 個のディレクトリ  56,390,123,520 バイトの空き領域


■バッチの実行(Windows側)
コマンドプロンプトから「frammk.bat」を実行します。
バッチの途中でAndroid側で必要なファイルを「/data/local/tmp/」に転送しています。

実行中に
「続行するには何かキーを押してください . . .」
が表示されます。表示内容を確認しキーを押してください。
中止する場合は[Ctrl]+[C]を押します。

実行例
C:\temp\sc-02d>frammk2.bat
pull: building file list...
pull: /system/framework/twframework.odex -> framework/twframework.odex
pull: /system/framework/twframework.jar -> framework/twframework.jar
pull: /system/framework/twframework-res.apk -> framework/twframework-res.apk
pull: /system/framework/svc.odex -> framework/svc.odex
pull: /system/framework/svc.jar -> framework/svc.jar
pull: /system/framework/services.odex -> framework/services.odex
pull: /system/framework/services.jar -> framework/services.jar
pull: /system/framework/send_bug.odex -> framework/send_bug.odex
pull: /system/framework/send_bug.jar -> framework/send_bug.jar
pull: /system/framework/secmediarecorder.odex -> framework/secmediarecorder.odex
pull: /system/framework/secmediarecorder.jar -> framework/secmediarecorder.jar
pull: /system/framework/sechardware.odex -> framework/sechardware.odex
pull: /system/framework/sechardware.jar -> framework/sechardware.jar
pull: /system/framework/secframework.odex -> framework/secframework.odex
pull: /system/framework/secframework.jar -> framework/secframework.jar
pull: /system/framework/seccamera.odex -> framework/seccamera.odex
pull: /system/framework/seccamera.jar -> framework/seccamera.jar
pull: /system/framework/sec_feature.odex -> framework/sec_feature.odex
pull: /system/framework/sec_feature.jar -> framework/sec_feature.jar
pull: /system/framework/pm.odex -> framework/pm.odex
pull: /system/framework/pm.jar -> framework/pm.jar
pull: /system/framework/monkey.odex -> framework/monkey.odex
pull: /system/framework/monkey.jar -> framework/monkey.jar
pull: /system/framework/minimode.odex -> framework/minimode.odex
pull: /system/framework/minimode.jar -> framework/minimode.jar
pull: /system/framework/libvtmanagerjar.odex -> framework/libvtmanagerjar.odex
pull: /system/framework/libvtmanagerjar.jar -> framework/libvtmanagerjar.jar
pull: /system/framework/javax.obex.odex -> framework/javax.obex.odex
pull: /system/framework/javax.obex.jar -> framework/javax.obex.jar
pull: /system/framework/input.odex -> framework/input.odex
pull: /system/framework/input.jar -> framework/input.jar
pull: /system/framework/ime.odex -> framework/ime.odex
pull: /system/framework/ime.jar -> framework/ime.jar
pull: /system/framework/framework2.odex -> framework/framework2.odex
pull: /system/framework/framework2.jar -> framework/framework2.jar
pull: /system/framework/framework.odex -> framework/framework.odex
pull: /system/framework/framework.jar -> framework/framework.jar
pull: /system/framework/framework-res.apk -> framework/framework-res.apk
pull: /system/framework/filterfw.odex -> framework/filterfw.odex
pull: /system/framework/filterfw.jar -> framework/filterfw.jar
pull: /system/framework/ext.odex -> framework/ext.odex
pull: /system/framework/ext.jar -> framework/ext.jar
pull: /system/framework/core.odex -> framework/core.odex
pull: /system/framework/core.jar -> framework/core.jar
pull: /system/framework/core-junit.odex -> framework/core-junit.odex
pull: /system/framework/core-junit.jar -> framework/core-junit.jar
pull: /system/framework/com.yamaha.android.media.odex -> framework/com.yamaha.android.media.odex
pull: /system/framework/com.yamaha.android.media.jar -> framework/com.yamaha.android.media.jar
pull: /system/framework/com.samsung.device.jar -> framework/com.samsung.device.jar
pull: /system/framework/com.mcafee.android.scanner.jar -> framework/com.mcafee.android.scanner.jar
pull: /system/framework/com.google.widevine.software.drm.odex -> framework/com.google.widevine.software.drm.odex
pull: /system/framework/com.google.widevine.software.drm.jar -> framework/com.google.widevine.software.drm.jar
pull: /system/framework/com.google.android.media.effects.jar -> framework/com.google.android.media.effects.jar
pull: /system/framework/com.google.android.maps.jar -> framework/com.google.android.maps.jar
pull: /system/framework/com.android.location.provider.odex -> framework/com.android.location.provider.odex
pull: /system/framework/com.android.location.provider.jar -> framework/com.android.location.provider.jar
pull: /system/framework/com.android.future.usb.accessory.odex -> framework/com.android.future.usb.accessory.odex
pull: /system/framework/com.android.future.usb.accessory.jar -> framework/com.android.future.usb.accessory.jar
pull: /system/framework/bu.odex -> framework/bu.odex
pull: /system/framework/bu.jar -> framework/bu.jar
pull: /system/framework/bouncycastle.odex -> framework/bouncycastle.odex
pull: /system/framework/bouncycastle.jar -> framework/bouncycastle.jar
pull: /system/framework/bmgr.odex -> framework/bmgr.odex
pull: /system/framework/bmgr.jar -> framework/bmgr.jar
pull: /system/framework/apache-xml.odex -> framework/apache-xml.odex
pull: /system/framework/apache-xml.jar -> framework/apache-xml.jar
pull: /system/framework/android.test.runner.odex -> framework/android.test.runner.odex
pull: /system/framework/android.test.runner.jar -> framework/android.test.runner.jar
pull: /system/framework/android.policy.odex -> framework/android.policy.odex
pull: /system/framework/android.policy.jar -> framework/android.policy.jar
pull: /system/framework/am.odex -> framework/am.odex
pull: /system/framework/am.jar -> framework/am.jar
pull: /system/framework/GlobalConfig.odex -> framework/GlobalConfig.odex
pull: /system/framework/GlobalConfig.jar -> framework/GlobalConfig.jar
74 files pulled. 0 files skipped.
2685 KB/s (39328864 bytes in 14.299s)
framework 転送完了。
続行するには何かキーを押してください . . .
1 個のファイルをコピーしました。
1 個のファイルをコピーしました。
1 個のファイルをコピーしました。
1 個のファイルをコピーしました。
1 個のファイルをコピーしました。
1 個のファイルをコピーしました。
デコンパイルします。
続行するには何かキーを押してください . . .

C:\temp\sc-02d>java -Xmx512m -jar baksmali-1.4.2.jar --api-level 15 -d workspace -o workspace\lv15 -x workspace\framework.odex

C:\temp\sc-02d>dir workspace\lv15\com\android\internal\telephony\gsm\GsmServiceStateTracker.smali
ドライブ C のボリューム ラベルがありません。
ボリューム シリアル番号は 8407-8B4B です

C:\temp\sc-02d\workspace\lv15\com\android\internal\telephony\gsm のディレクトリ

2013/03/26 09:43 293,123 GsmServiceStateTracker.smali
1 個のファイル 293,123 バイト
0 個のディレクトリ 56,238,907,392 バイトの空き領域

C:\temp\sc-02d>cscript //Nologo data-only-sim-smali-fixer.wsf workspace 15 0 0
workspace\data-only-sim-fix.smali
編集が終了しました。編集を反映します。
続行するには何かキーを押してください . . .
1 個のファイルをコピーしました。
編集を反映しました。
コンパイルします。
続行するには何かキーを押してください . . .

C:\temp\sc-02d>java -Xmx512m -jar smali-1.4.2.jar --api-level 15 -o workspace\classes.dex workspace\lv15

C:\temp\sc-02d>copy workspace\classes.dex .
1 個のファイルをコピーしました。

C:\temp\sc-02d>7z a workspace\framework.jar classes.dex

7-Zip 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18

Scanning

Updating archive workspace\framework.jar

Compressing classes.dex

Everything is Ok

C:\temp\sc-02d>del classes.dex
framework.jarその他を転送します。
続行するには何かキーを押してください . . .

C:\temp\sc-02d>adb push workspace\framework.jar /data/local/tmp/
3986 KB/s (4397590 bytes in 1.077s)

C:\temp\sc-02d>adb push dexopt-wrapper /data/local/tmp/
5 KB/s (5512 bytes in 1.000s)

C:\temp\sc-02d>adb push framcp2.sh /data/local/tmp/
0 KB/s (711 bytes in 1.000s)
C:\temp\sc-02d>


■シェルの実行(Android側)
コマンドプロンプトから「adb shell」を実行後「/data/local/tmp/」内の「frammk2.sh」を実行します。

実行例

C:\temp\sc-02d>adb shell
sh-3.2$ su
su
sh-3.2# cd /data/local/tmp
cd /data/local/tmp
sh-3.2# sh framcp2.sh
+ cd /data/local/tmp
+ ls -l
-rw-rw-rw- 1 shell shell 5512 May 30 2009 dexopt-wrapper
-rw-rw-rw- 1 shell shell 711 Mar 25 16:03 framcp2.sh
-rw-rw-rw- 1 shell shell 4397590 Mar 26 09:44 framework.jar
+ chmod 777 dexopt-wrapper
+ rm framework.odex
rm failed for framework.odex, No such file or directory
+ ./dexopt-wrapper framework.jar framework.odex
--- BEGIN 'framework.jar' (bootstrap=0) ---
--- waiting for verify+opt, pid=5997
--- would reduce privs here
--- END 'framework.jar' (success) ---
+ busybox dd if=/system/framework/framework.odex of=framework.odex bs=1 count=20 skip=52 seek=52 conv=notrunc
20+0 records in
20+0 records out
20 bytes (20B) copied, 0.001391 seconds, 14.0KB/s
+ mount -o remount,rw /system /system
+ cp -p /system/framework/framework.odex /data/local/tmp/framework.odex.org
+ cp /data/local/tmp/framework.odex /system/framework/framework.odex
+ chmod 644 /system/framework/framework.odex
+ chown root.root /system/framework/framework.odex
+ ls -l /system/framework/framework.odex
-rw-r--r-- root root 11923648 2013-03-26 09:49 framework.odex
+ set +x
Please clear cache dalvik-cache
Please reboot recovery
sh-3.2#


■cache dalvik-cacheのクリア
framework.odexのコピーが終了したらCWMからcache dalvik-cacheをクリアします。



これでバッテリー消費が軽減されたようです。
3GがONでも端末を使用しない場合バッテリーが消費されなくなりました。


スポンサーサイト

コメントの投稿

非公開コメント

アクセスカウンタ
オンラインカウンター
現在の閲覧者数:
プロフィール

たっきー

Author:たっきー
たっきーのブログへようこそ!
パソコン・スマホを
より使いやすくするため奮闘中!
改造したり、root取ったり
色々やってます。

カテゴリ
最新記事
最新コメント
月別アーカイブ
最新トラックバック
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR