UOT Kitchenはいまだに4.2.2に未対応… なので自力でバッテリーアイコンを変更

Androidで通知バーのバッテリー・アイコンを変更するのにはUOT Kitchenを使うのが一番簡単なのですが、Android4.2.2(stock)のframework-res.apkとSystemUI.apkを使おうとすると、SHIFT ERRORという表示になりうまくいきません。使われているApkToolsがframework-res.apkとSystemUI.apkの依存関係(dependency)を正しく処理できていないためだと思われます。

対応するのを待っていられませんので、今回もAPK-Multi-Toolを使って、自力でframework-res.apkとSystemUI.apkを書き換えてみようと思います。

あああ

Nexus 4のバッテリー・アイコンをパーセント表示に変更


まず必要なのは、res/drawableに入れるstat_sys_battery.xml、stat_sys_battery_charge.xml、zzz_stat_sys_battery_1.xmlという3つのファイル。これらには通常時や充電時のバッテリの%に合わせてどの画像を表示されるかが記述されています。一番簡単な取得の方法は、上のUOTでCM7のframework-res.apkとSystemUI.apkを使ってバッテリー・アイコンの修正を行い、出来上がったframework-res.apkからAPK-Multi-Toolを使ってstat_sys_battery.xml、stat_sys_battery_charge.xml、zzz_stat_sys_battery_1.xmlを取り出す方法です。この方法のいいところは、アイコン画像も一緒に取得できるということです。ただし、UOTの画像は色を自分で選択できるけれどもアイコンの種類が少ないという不満が残ります。なので「android battery icon collection」などで検索して、自分の好みに合うアイコン集を使うのも手です。ここら辺にもいろいろアイコン集があります。

次に必要なのは207個のバッテリー・アイコンの画像です。

  • ic_lock_idle_charging.png
  • ic_lock_idle_low_battery.png
  • stat_sys_battery_0.png~stat_sys_battery_100.png
  • stat_sys_battery_charge_anim0.png~stat_sys_battery_charge_anim100.png
  • stat_sys_battery_charge_animfull.png
  • stat_sys_battery_full.png
  • stat_sys_battery_unknown.png

です。どこかからダウンロードしてきたアイコン集で、ic_lock_idle_charging.pngやic_lock_idle_low_battery.pngがなければ、適当なアイコンをコピーしてリネームすればいいと思います。

ここで、APK-Multi-Toolを使ってframework-res.apkとSystemUI.apkを展開するのですが、その前にframework-res.apkとSystemUI.apkをotherというフォルダーに入れておき、Setup.batを使ってframework-res.apkとSystemUI.apkを登録する必要があります。これをしておかないと依存関係(dependency)が解消されず、エラーで止まります。framework-res.apkとSystemUI.apkを登録したら、Script.batでAPK-Multi-Toolを起動し、9 Decompile apkで展開し、projectsフォルダーにできたプロジェクトのres/drawableに先ほどのstat_sys_battery.xml、stat_sys_battery_charge.xml、zzz_stat_sys_battery_1.xmlを入れ、res/drawable-hdpiにアイコン画像を入れます。(全て既存のファイルに上書きコピー)

アイコン画像を入れる場所は、使うframework-res.apkとSystemUI.apkによって変わりますから、stat_sys_battery_100.pngとかを検索してみて、そのディレクトリーに入れておけば問題ないと思います。

最後に11 Compile System APK filesで再コンパイルというかリパッケージするわけですが、

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)
Type input:

と聞いてきたら、yを選択します。(←重要)すると、画面がザァーと流れて、

In the APK Multi-Tools folder u’ll find
a keep folder. Within it, delete
everything you have modified and leave
files that you haven’t. IF you have modified
any xml, then delete resources.arsc from that
folder as well. Once done then press enter
on this script.

【訳】
APK Multi-Toolsのフォルダーの下に「keep」フォルダーができています。
そのフォルダーに入り、(プロジェクトフォルダーで)修正したすべての
ファイルを削除して、修正していないファイルはそのまま残しておいてください。
もし何かxmlファイルに修正を行った場合、resources.arscというファイルも
削除してください。それが済んだら、(この画面で)エンターを押してください。

というメッセージが表示されますが、ここではそのまま放っておきます。keepにあるのは修正前のapkファイルを展開した内容で、リコンパイル時に修正していないものはこちらから自動で持ってきます。なので、修正したファイルをここに残しておくと、修正したファイルが未修正のもので上書きされてしまいます。エクスプローラーで指示の通り、/keep/res/drawableからstat_sys_battery.xml、stat_sys_battery_charge.xmlを削除し、/keep/res/drawable-hdpiから関連する古いアイコン画像を削除して、今回はresources.arscも削除します。

再びAPK Multi-Toolsに戻り、エンターを押してしばらくすれば、修正後のapkがplace-apk-here-for-moddingにできているはずです。

修正作業自体はframework-res.apkでもSystemUI.apkでもまったく同じですので、それぞれのファイルに関してまったく同じ作業を行えばいいだけです。後は出来上がったunsignedframework-res.apkとunsignedSystemUI.apkをframework-res.apkとSystemUI.apkにリネームして、端末に戻してリブートすればアイコンがバッテリー・アイコンが変わっているはずです。

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: