2010年11月28日日曜日

Motorola Milestone2 バッテリーアイコン変更してみる。



Miletone2限定ってわけじゃないですけど…

Milestone2のバッテリーアイコン表示は0%、10%、20%、40%、60%、80%、100%の7段階表示ですが、これを0%、5%、10%、15%、20%、30%、40%、50%、60%、70%、80%、90%、100%の13段階に変更します。
htc端末なんかだと1%刻みで表示するようにする事ができます。


framework-res.apk内のxmlを編集するのですが、バイナリ形式になっているのでテキスト形式に変換してあげる必要があります。

変換にはapktoolを使います。
apktool

adb pullとかでframework-res.apkを引き抜いてきて

apktool d framework-res.apk

とすると同じディレクトリにframework-resフォルダが出来ます。

今回編集するのは/res/drawable-hdpi/stat_sys_battery.xmlと/res/values/public.xmlです。
端末によってはstat_sys_battery.xmlはdrawableの方にしかないかもしれません。

stat_sys_battery.xml


<?xml version="1.0" encoding="UTF-8"?>
<level-list
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/stat_sys_battery_0" android:maxLevel="1" />
<item android:drawable="@drawable/stat_sys_battery_5" android:maxLevel="5" />
<item android:drawable="@drawable/stat_sys_battery_10" android:maxLevel="10" />
<item android:drawable="@drawable/stat_sys_battery_15" android:maxLevel="15" />
<item android:drawable="@drawable/stat_sys_battery_20" android:maxLevel="20" />
<item android:drawable="@drawable/stat_sys_battery_30" android:maxLevel="30" />
<item android:drawable="@drawable/stat_sys_battery_40" android:maxLevel="40" />
<item android:drawable="@drawable/stat_sys_battery_50" android:maxLevel="50" />
<item android:drawable="@drawable/stat_sys_battery_60" android:maxLevel="60" />
<item android:drawable="@drawable/stat_sys_battery_70" android:maxLevel="70" />
<item android:drawable="@drawable/stat_sys_battery_80" android:maxLevel="80" />
<item android:drawable="@drawable/stat_sys_battery_90" android:maxLevel="90" />
<item android:drawable="@drawable/stat_sys_battery_100" android:maxLevel="100" />
</level-list>


stat_sys_battery.xmlはこんな感じに編集します…


public.xml


<?xml version="1.0" encoding="UTF-8"?>
<resources>

<public type="drawable" name="stat_sys_battery_0" id="0x010803f1" />
<public type="drawable" name="stat_sys_battery_5" id="0x010803f2" />
<public type="drawable" name="stat_sys_battery_10" id="0x010803f3" />
<public type="drawable" name="stat_sys_battery_15" id="0x010803f4" />
<public type="drawable" name="stat_sys_battery_20" id="0x010803f5" />
<public type="drawable" name="stat_sys_battery_30" id="0x010803f6" />
<public type="drawable" name="stat_sys_battery_40" id="0x010803f7" />
<public type="drawable" name="stat_sys_battery_50" id="0x010803f8" />
<public type="drawable" name="stat_sys_battery_60" id="0x010803f9" />
<public type="drawable" name="stat_sys_battery_70" id="0x010803fa" />
<public type="drawable" name="stat_sys_battery_80" id="0x010803fb" />
<public type="drawable" name="stat_sys_battery_90" id="0x010803fc" />
<public type="drawable" name="stat_sys_battery_100" id="0x010803fd" />
</resources>



public.xmlはこんな感じで追加します…drawableのidは0x01080xxxです、ダブらないように定義してあげます。

あとはdrawable-hdpiにpngを追加してあげればokです。

xmlの編集、画像の追加が終わったらapktoolでbuildします。

apktool b framework-res framework-res.apk


通常はこの時点で出来たapkをそのまま/system/frameworkに入れてあげればOKなのですが、
Milesone2はresources.arscを無圧縮で.apkに入れてあげなくてはいけないので注意してください。

apktoolでビルドしたapkの中からresources.arscと今回編集、追加したファイルを抜き出してきます。
そしてオリジナルのframework-res.apkに7-zip等で無圧縮で追加します。


おまけ…deodexしてみる
xUltimate



adbで繋がる環境があればsystemから.apk/.odexファイルを引っこ抜いてきてdeodexまで自動で行ってくれます。

後はupdate.zipにまとめてあげればok

update-script

show_progress 0.5 0

run_program PACKAGE:remtool.sh

copy_dir PACKAGE:system SYSTEM:

show_progress 0.5 10


remtool.sh

#!/sbin/sh

mount /system;

rm -rf /system/app/*.odex;
rm -rf /system/framework/*.odex;

exit 0;


Enjoy!

Motorola Milestone2をオーバークロックしてみた



文鎮になっても泣かない事…

自己責任で(`・ω・´)



ココのmapphone-froyo-modules.zipをダウンロードし、sdcardにms2ocとか適当な名前のフォルダ作ってコピー

/system/lib/modules/にブチこむ

mount -o rw,remount -t ext3 /dev/block/mmcblk1p21 /system
cd /sdcard/ms2oc
cp cpufreq_interactive.ko /system/lib/modules/
cp overclock.ko /system/lib/modules/
cp symsearch.ko /system/lib/modules/
cd /system/lib/modules/
chmod 644 cpufreq_interactive.ko
chmod 644 overclock.ko
chmod 644 symsearch.ko
mount -o ro,remount -t ext3 /dev/block/mmcblk1p21 /system


んでもってこんな感じのシェルスクリプトを実行する…Gscriptとか使えば良いかと。

#!/system/bin/sh

insmod /system/lib/modules/symsearch.ko
insmod /system/lib/modules/overclock.ko

echo 66 > /proc/overclock/max_vsel
echo 1300000 > /proc/overclock/max_rate

insmod /system/lib/modules/cpufreq_interactive.ko
echo interactive > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor


max_vselとmax_rateは各自調整してあげて下さい、vselはもっと低い値でもいけそうです。

-----
2010/12/02 追記
OS起動時にオーバークロック設定を反映させる。

クロックを反映させるスクリプトを「00overclock」てな名前で作成しておく

mount -o rw,remount -t ext3 /dev/block/mmcblk1p21 /system
cd /system/etc
mkdir init.d
chmod 755 init.d
cp /sdcard/ms2oc/00overclock /init.d/
cd init.d
chmod 750 00overclock
mount -o ro,remount -t ext3 /dev/block/mmcblk1p21 /system


/system/bin/mount_ext3.shの最終行に一行追加します

busybox run-parts /system/etc/init.d


他にもっと良いやり方あるはずですがとりあえず動いてるので良しとします…

2010年11月27日土曜日

Motorola Milestone2 root取得からリカバリまで



MotorolaのMilestone2を購入しました。
早速ですがrootの取得、カスタムリカバリーの導入と、文鎮対策についてまとめます。

自己責任で(`・ω・´)

root権限の取得
[APP] z4root - xda-developers
z4rootでサクっとroot権限を取得する事が可能です。
これについては特に説明する必要はないでしょう…
rootはtempじゃなくてpermanentで。

clockworkmod recoveryの導入


Droid X Recovery (and Droid 2 too!) - My Brain Hurts

Droid2用のカスタムリカバリですが、Milestone2でも問題なく動作可能です。
導入はアプリ導入後に「Bootstrap Recovery」を押下するのみです。

カスタムリカバリへの入り方は二通りあり、
1:Droid2 Bootstrapperの「Reboot Recovery」を押下
2:起動中のmotorolaロゴでバッテリー抜去後に再立ち上げ

の二通りです…通常は1の手順でリカバリに入り、起動しなくなったら2の手順で入る…といった感じです。

フルリカバリ
既にMotorola端末をお使いの方はご存知かと思いますが、RSDLiteというツールでFWを書き込む事で初期出荷状態に戻す事が可能です。
bootloaderモードにさえ入れれば復旧可能です。



Motorola Mobile Phone USB Driver(for windows)
RSD Lite4.9
Milestone2 sbf file

手順は…
1:USB Driverをインストール
2:RSD Liteをインストール
3:Milestone2を電源断の状態から「カーソル上+電源」でbootloaderモードに入る。
4:端末をPCに接続する
5:RSD Liteを立ち上げ、接続されているMilestone2を選択
6:ダウンロードしてきたsbfファイルを選択(Filenameのところ)
7:startボタンを押下
8:コーヒーでも飲みながら待つ