DesireHDの高速化と省電力化

日々更新予定です。
#最終更新11/13(日)

概要

Desire HDは標準の状態でもさくさくです。
しかし消費電力は高く電池の減りは早く1日中持たせることは難しくなっています。
特にカスタムROMを導入している場合、設定によってはバッテリードレインと言われる異常なスピードで電池が消費することもあります。
今回はそれらについての対策をまとめてみようと思います。

基本環境

本体 Deisre HD
回線 Softbank
ROM CyanogenMod 7.1.0

作業概要

      1. はじめに 設定前の消費電力測定
      2. ROMの準備
      3. Ext4Wipe
      4. ROMを焼く
      5. カーネルを焼く & Undervoltパッケージを焼く
      6. その他zipを焼く
      7. ROMを起動
      8. ROMから必要のないアプリを削除する
      9. CM7推奨設定
      10. UnderVoltを設定
      11. SetCPUでクロックを設定
      12. テーマの変更
      13. radioを焼く
      14. RIL
      15. build.prop
      16. フォントの変更
      17. DNSの高速化
      18. GPSの高速化
      19. 終わり 設定後の消費電力測定
      20. おまけ アプリのバックアップ

番外

いきなり話がずれますが、一番簡単に電池を持たせる方法はもう1つ電池を買うことです。
HTC Desire HD Softbank 001HT 大容量1600mAhバッテリー
最近流行のモバイルブースターを購入するというのも手です。
SANYOリチウムイオンバッテリー KBC-L54D



導入手順

  • この記事はROMを焼き経験を前提としています。
  • rootの取得方法やROMの焼き方は他のサイトを参考にしてください。
はじめに 設定前の消費電力測定

currentwidgetというアプリで消費電力、現在の電圧、電池残量を表示して、ログとして残すことができます。また視覚的に確認したい場合は、BatteryMixというアプリがオススメです。
以下の作業をする前に、これで数日ログを取ってみましょう。


ROMの準備

ROMをダウンロードします。
またCM7はGoogle系アプリを別のパッケージとして用意しているのでそれもダウンロードします。

Latest Version - CyanogenMod Wiki
http://wiki.cyanogenmod.com/wiki/Latest_Version

Ext4Wipe

Ext4でフォーマットします。Android Revolution HDで用意されているzipファイルを利用します。

  • 以下の記事から「Super Wipe」を探してください。

[ROM] Android Revolution HD™ 6.1.3 | High Quality & Performance | Official Sense 3.0 - xda-developers
http://forum.xda-developers.com/showthread.php?t=840040

ROMを焼く

事前に準備したROMを焼きます。

カーネルを焼く & Undervoltパッケージを焼く

幾つもの変更が施されたカーネルを焼きます。
また電圧を下げることができるパッケージも焼きます。

  • 以下からダウンロード

[KERNEL][22OCT]LorDModUE V8.1|BFSv413|ALL AOSP ROMS|2.6.35.14+|BFS EDITION - xda-developers
http://forum.xda-developers.com/showthread.php?t=1085725

その他zipを焼く

事前に準備したものをすべて焼きます。


ROMを起動
ROMから必要のないアプリを削除する

このzipファイルをダウンロードしてください。
標準インストールアプリの削除用zipファイル


ファイル名がランダム英数字なので、delete_default_apps_signed.zipなど適当に変更してください。
その後WinRARなどでzipファイルを解凍せずに開きます。
/META-INF/com/google/android/updater-scriptをテキストエディタで開きます。
するとdelete("/system/app/QuickSearchBox.apk","/system/app/DSPManager.apk",〜のような記述が見つかると思います。
この中に書いてあるアプリが削除されます。
不具合が発生しないようにアプリを削除していますが、通常使うBrowser.apkやMms.apkなども削除しているので適宜自分に合わせて修正してください。

  • 標準インストールアプリについて参考

Barebones - CyanogenMod Wiki
http://wiki.cyanogenmod.com/wiki/Barebones

  • 注意
    1. LatinIME.apkを削除するとキーボードの入力ができなくなります。あらかじめ他のキーボードアプリ(ATOKなど)をインストールしておいてください。
    2. テーマの変更を行いたい場合はThemeChooser.apkとThemeManager.apkの削除は行わさないでください。
    3. ADWLauncher.apkを削除する場合は、事前に他のホームアプリをインストールしておいてください。
  • zipが完成したら再度リカバリからこのzipファイルを適用しましょう。
CM7推奨設定

理由はわかりませんが、この設定を行った方がいいようです。

[NIGHTLY][ROM][GWK74] CyanogenMod 7 for vendor Ace (HTC Desire HD & Inspire) - xda-developers
http://forum.xda-developers.com/showthread.php?t=917271

also dont forget to set wifi sleep policy to never
settings -> wireless & networks -> wifi settings
press menu -> advanced and set wifi sleep policy to Never
press menu -> save

UnderVoltを設定

LordModUVアプリを起動して、Stable Pinky Undervoltingを指定します。

  • どうやらPUVが一番消費電力が低いようです。以下参照

LorDMod Kernel - カジェ日記
http://d.hatena.ne.jp/tky1204/20110424/1303576798

  • これは設定によって不安定になることが多いようです。調整して使い分けてみてください。
  • 症状としては突然シャットダウンになったり、頻繁に3Gに繋がらなくなることがあります。
SetCPUでクロックを設定

SetCPUアプリを起動します。これでは最高クロックと最低クロック、可変クロックのルール(Governors)を指定することができます。

  • Governorsには大きく分けて4つあります。
    • powersave 常に最低クロックになります。
    • interactive CPU負荷が落ちてついたら、クロックを指定した範囲で変更します。
    • ondemand 常にクロックを指定した範囲で変更します。
    • performance 常に最高クロックになります。

またLorDModカーネルを焼いていると、Governorsとしていくつかの追加要素を指定することができます。
ondemandを拡張したondemandX,conservative、interactiveを拡張したinteractiveX,smartass,smartassV2,brazilianwax
詳細は上記のLorDModのスレッドを参考にしてください。

  • さくさく重視ならondemandX
  • バッテリー消費を抑えるならbrazilianwax,smartassV2,smartass,interactiveXの順番で試してみましょう。
    • 私の環境では、brazilianwaxとsmartassV2は安定せず突然のシャットダウンすることがありました。


またSetCPUではプロファイルを指定することができ、状況に応じてクロックやGovernorsを変更することができます。
私はScreen Off時にpowersaveにして、最高クロックと最低クロックを122MHzに指定しています。


テーマの変更

CM7にはThemaChooserというアプリが標準搭載されており、テーマを簡単に切り替えることができます。
テーマはアプリとして配布されているので、以下のスレッドから入手することができます。apk直接配布又はマーケットからのインストールで簡単に導入可能です。

[UPDATE 10-6-11] Theme Chooser Themes - Over 230 Themes! - Added FAQ - xda-developers
http://forum.xda-developers.com/showthread.php?t=1167075

radioを焼く

radioとはAndoird端末の通信ファームウェアです。(多分

  • CM7ではradio 26.04.02.17が推奨されています。

Desire HD only: Older Radio have know issue which drain faster on asleep
26.04.02.17 is the safest

  • 以下からQuick Flash Package: Radio_12.28e.60.140f_26.04.02.17_M2_SFをDLして説明通りに当てましょう。

[RADIO][LATEST: 26.13.04.19] The HTC Desire HD Radio Thread - xda-developers
http://forum.xda-developers.com/showthread.php?t=877295

  • またradioは更に新しい性能改善 & 消費電力を抑えたバージョンが多数存在しますので、色々試して自分にベストだと思った物を選択してください。

[RADIO+RIL] New radio 12.62.60.27_26.13.04.19_M from DHD 3.06.405.1 GB base - xda-developers
http://forum.xda-developers.com/showthread.php?t=996630

radio 12.62.60.27_26.13.04.19_Mは特に電池消費が抑えられていますが、UVの設定によっては通信が停止してしまうことがあります。

RIL

radioのバージョンごとに対応した無線用ライブラリがあります。
適用するといいこともあるようですが、CM7ではRILの変更を推奨していませんので変更は行いません。

  • CM7 RILについて

[NIGHTLY][ROM][GWK74] CyanogenMod 7 for vendor Ace (HTC Desire HD & Inspire) - xda-developers
http://forum.xda-developers.com/showthread.php?t=917271
RIL issue:
Switching RIL is cause of know network problem:
Unable to make a network scan
Data connection die on asleep (only for some carrier)

  • RIL配布場所

[RADIO+RIL] New radio 12.62.60.27_26.13.04.19_M from DHD 3.06.405.1 GB base - xda-developers
http://forum.xda-developers.com/showthread.php?t=996630

build.prop

いわゆる魔法のX行系の設定を追加すると電池の減りが少なくなるというのを良く耳にします。

  • 魔法のX行について

魔法の5行にA-GPS関連の追加が出てました | Jigen_the3のお気楽日記
http://jigen3.wordpress.com/2010/11/02/%E9%AD%94%E6%B3%95%E3%81%AE5%E8%A1%8C%E3%81%ABa-gps%E9%96%A2%E9%80%A3%E3%81%AE%E8%BF%BD%E5%8A%A0%E3%81%8C%E5%87%BA%E3%81%A6%E3%81%BE%E3%81%97%E3%81%9F/

しかしbuild.propの追加設定である魔法のX行は、RILを新しいバージョンに対応したものに変更しないと読み込めないことがあります。
少なくともCM7の標準RILでは、以下の設定項目は存在しませんでしたのでこれらは追加しても無意味です。

ro.ril.fast.dormancy.timeout
ro.ril.enable.sbm.feature
ro.ril.disable.fd.plmn.prefix
ro.ril.enable.sdr
ro.ril.oem.mosms.mode

魔法のX行をお試しになりたい場合には先程紹介したRIL配布場所で自分のradioにあったRILをインストールしましょう。

フォントの変更

/system/fontsのMTLmr3m.ttf,DroidSans.ttf,DroidSansJapanese.ttf,DroidSansFallback.ttfを置き換えます。
私はupdate.zipを作成してROMを焼く度に適用するようにしています。
またDroidSans.ttfとDroidSansJapanese.ttfは同じフォントを利用するので3つコピーするだけ容量の無駄となってしまうため、
DroidSansJapanese.ttfとMTLmr3m.ttfはDroidSans.ttfへのシンボリックリンクにしています。

  • 参考 updater-script

ui_print("Installing fonts MigMix1P ...");
run_program("/sbin/busybox", "mount", "/system");
package_extract_dir("system", "/system");
delete("/system/fonts/MTLmr3m.ttf");
delete("/system/fonts/DroidSansArabic.ttf");
delete("/system/fonts/DroidSansHebrew.ttf");
delete("/system/fonts/DroidSansThai.ttf");
symlink("/system/fonts/DroidSans.ttf", "/system/fonts/DroidSansJapanese.ttf", "/system/fonts/MTLmr3m.ttf");
run_program("/sbin/busybox", "umount", "/system");
ui_print("Installation complete!");

DNSの高速化

/system/etc/resolve.confを置き換えます。
中身は以下のようにGoogle Public DNSサーバが指定されています。

nameserver 8.8.8.8
nameserver 8.8.4.4

DNS計測ソフトで、計測したところ何故か8.8.4.4の方が何回計測しても速いので、こちらをプライマリに設定変更しています。(ほとんど変わらないと思いますw)


GPSの高速化

/system/etc/gps.confを置き換えます。
A-GPSの設定にはサーバを指定するのですが、これが標準だとEUになっているので日本に変更します。
また以下を参考にしていくつか追加設定を行います。(効果はいまいち実感できていません)

[Trick] Speed Up Satelite Fix for GPS on Android - xda-developers
http://forum.xda-developers.com/showthread.php?p=17081413

NTP_SERVER=jp.pool.ntp.org
NTP_SERVER=0.jp.pool.ntp.org
NTP_SERVER=1.jp.pool.ntp.org
NTP_SERVER=2.jp.pool.ntp.org
NTP_SERVER=3.jp.pool.ntp.org
NTP_SERVER=0.asia.pool.ntp.org
NTP_SERVER=1.asia.pool.ntp.org
NTP_SERVER=2.asia.pool.ntp.org
NTP_SERVER=3.asia.pool.ntp.org

XTRA_SERVER_1=http://xtra1.gpsonextra.net/xtra.bin
XTRA_SERVER_2=http://xtra2.gpsonextra.net/xtra.bin
XTRA_SERVER_3=http://xtra3.gpsonextra.net/xtra.bin

# DEBUG LEVELS: 0 - none, 1 - Error, 2 - Warning, 3 - Info
# 4 - Debug, 5 - Verbose
DEBUG_LEVEL =0

# Intermediate position report, 1=enable, 0=disable
INTERMEDIATE_POS=0

# Accuracy threshold for intermediate positions
# less accurate positions are ignored, 0 for passing all positions
ACCURACY_THRES=0

# Report supl ref location as position, 1=enable, 0=disable
REPORT_POSITION_USE_SUPL_REFLOC=1

# Wiper (wifi positioning), 1=enable, 0=disable
ENABLE_WIPER=1

################################
##### AGPS server settings #####
################################

# FOR SUPL SUPPORT, set the following
SUPL_HOST=supl.google.com
SUPL_PORT=7276
SUPL_NO_SECURE_PORT=3425
SUPL_SECURE_PORT=7275
SUPL_TLS_HOST=FQDN
SUPL_TLS_CERT=/etc/SuplRootCert

# FOR C2K PDE SUPPORT, set the following
C2K_HOST=c2k.pde.com
C2K_PORT=1234

CURRENT_CARRIER=common
DEFAULT_AGPS_ENABLE=TRUE
DEFAULT_SSL_ENABLE=FALSE

# TRUE for "User Plane", FALSE for "Control Plane"
DEFAULT_USER_PLANE=TRUE

終わり 設定後の消費電力測定

以上ですべての作業は完了です。
最後にもう1度currentwidgetのログを確認してみましょう。


Sleep時に -1mAや-2mAで安定していたら問題ありません。しかし-7mAなどで安定しているような場合には、何か問題があるかもしれません。

2011/10/31 04:33:45,-7mA,91%,4.101V
2011/10/31 04:33:45,-7mA,91%,4.101V
2011/10/31 04:35:45,-7mA,91%,4.101V


またSleep時に頻繁に-160mAなどが表示されている場合は、Sleep時にも稼働するアプリがあるということなのでアプリの採用や設定を見直してみると改善するかもしれません。どのアプリが電池を消費しているかはBatteryMixでProcessから確認することができます。
定期的に同期が必要なアプリはこのように電池を消費する傾向があります。

2011/10/31 05:09:29,-1mA,90%,4.057V
2011/10/31 05:12:19,-163mA,90%,4.057V
2011/10/31 05:12:20,-163mA,90%,4.057V
2011/10/31 05:17:29,-171mA,90%,4.057V
2011/10/31 05:17:29,-171mA,90%,4.057V
2011/10/31 05:19:28,-1mA,90%,4.057V

  • 参考

creams@nexus: Galaxy S2とLauncherProとバッテリ消費
http://creamsnexus.blogspot.com/2011/06/galaxy-s2launcherpro.html

おまけ アプリのバックアップ
  • ROMを頻繁に焼き変える方にオススメのアプリです。
  • 以下参考

【Titanium Backup】最強のアプリバックアップアプリだと思うんだ | smartgoods.me
http://smartgoods.me/2010/11/titanium-backup%E6%9C%80%E5%BC%B7%E3%81%AE%E3%82%A2%E3%83%97%E3%83%AA%E3%83%90%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97%E3%82%A2%E3%83%97%E3%83%AA%E3%81%A0%E3%81%A8%E6%80%9D%E3%81%86%E3%82%93/