バッテリー残量100段階表示mod
SystemUI.apk の deodex 化が公開されたので、この機会にチャレンジしてみました。
ちょっと面倒くさいので簡略化して書いておきます。分かる人だけやってみて下さい。
例のごとく Unlocked な端末が対象です。
UOT Kitchen を使ってみる
結果として NG 。エラーが出て通りません。
apk を自力で展開してパッチする
用意するもの
本当に必要なのは apktool.jar なので、コマンドライン叩ける人は apktool だけあれば良いはず。
いじるファイル
- /system/app/SystemUI.apk
- SystemUI.apk は deodex 化されているものとする
うまく行かなかったらコレも。
- /system/framework/framework-res.apk
また、いくつかのファイルを参照してる「かも」しれないので、以下のようにして持ってくる。
> adb pull /system/app/SystemUI.apk > mkdir framework > adb pull /system/framework .\framework
また、100段階表示用のリソースは適当なカスタムロムから引っこ抜くか、もしくは以下から。
手順
まず必要な apk を apktool に登録。本当に必要かどうかは知らない。
> apktool.bat if .\framework\framework-res.apk > apktool.bat if .\SystemUI.apk > apktool.bat if .\com.htc.resources.apk > apktool.bat if .\framework-htc-res.apk
その後、Apk Manager なり Apk Tool なりでデコンパイル等々。これらについてはググること。
以下私が Apk Multi Tool でやった手順。
- .\place-apk-here-for-modding\ に apk を入れる
- Set current project
- Select compression level for apk's → 0
- Decompile apk
- リソース書き換え (上書き)
- Compile apk
- Is this a system apk (y/n) → y
- Aside from the signatures, would you like to copy over any additional files that you didn't modify from the original apk in order to ensure least # of errors (y/n) → y
- 続行するには何かキーを押して下さい... と出るので .\keep ディレクトリ以下から改変対象となったファイルを削除する。
- .\place-apk-here-for-modding\ に unsignedhoge.apk ができる
- 出来た apk のファイルサイズを確認して、元より明らかに小さいようなら resources.arsc を非圧縮のものと差し替える
- $ 7za d -tzip .\place-apk-here-for-modding\unsignedhoge.apk resources.arsc
- $ 7za a -tzip -mx=0 .\place-apk-here-for-modding\unsignedhoge.apk .\project\hoge.apk\build\apk\resources.arsc
apktool.jar 単体ならこんな感じ。
- $ apktool.bat d SystemUI.apk test
- リソース書き換え
- $ apktool.bat b test
- $ cd .\test\dist
- $ 7za e -tzip SystemUI.apk resources.arsc
- $ 7za d -tzip SystemUI.apk resources.arsc
- $ 7za a -tzip -mx=0 SystemUI.apk resources.arsc
注意
- framework-res.apk のコンパイルエラー対策はこちら
- [tutorial]**Fix for recompiling framework-re… | HTC One X
- invalid resource directory name なんてのが出たら
- apktool.jar のバージョンと aapt (AndroidSDK に入ってる) のバージョンを確認する。
実機への転送
起動中にやってもいいですが、安全性を考えると CWM からやったほうがいいでしょう。そして転送後は cache と dalvik cache を wipe してやること。もちろんパーミッションにも注意。