2010年2月13日土曜日

Motorola Milestoneにテーマを導入するメモ


Milestone用のテーマはまだ数が少なく、どれも微妙な感じだったのでDroid用のテーマをMilestoneに移植してみました。

移植したのはDroidのカスタムROMBugless Beast V0.7.5のテーマに
UI Tweak, Silver Notification Icons & Transparent Scrollbars
パッチを適用させた物を今回使用しました。

ちなみにMilestone用テーマは下記フォーラムにあります。
AllDroid Themes>>Motorola>>Milestone

自己責任でお願いします。文鎮、レンガになっても泣かない事。消えたら困るデータはクラウドかチラシの裏に保存しておく事!


テーマ導入手順

1)SDCardにthemeディレクトリを作成し、そこへ「framework-res.apk」と「services.jar」をコピー

2) ADBRecoveryを用い、リカバリモードでadb shellコマンドを打てるようにする。

3)ターミナルで以下のコマンド実行
mount system
cp /sdcard/theme/framework-res.apk /system/framework
cp /sdcard/theme/services.jar /system/framework
chmod 644 /system/framework/framework-res.apk
chmod 644 /system/framework/services.jar

4)リブート


テーマの移植手順

用意する物
1.オリジナルのservices.jar
2.オリジナルのframework-res.apk
3.Bugless Beast V0.7.5のframework-res.apk
4.UI Tweak, Silver Notification Icons & Transparent Scrollbarsのパッチ(お好みで)
5.http://code.google.com/p/smali/のbaksmali-1.1.jarとsmali-1.1.jar
6.AXMLPrinter2.jar
7.バイナリエディタ
8.7-zipとかwinrarとか

----------
services.jar書き換え

[HOW-TO] Change status bar clock color
↑参考資料・・・


1)services.jarを7-zipで開き、classes.dex抜いてくる。

2)java -jar baksmali.jar -o classout/ classes.dex

3)classout/com/android/server/status/StatusBarIcon.smaliを編集
.line 46,
const/high16 v6, -0x100 → const v6, -0x1
文字色を黒から白に

4)java -Xmx512M -jar smali.jar classout/ -o new-classes.dex

5)new-classes.dexを適当な所にコピーし、classes.dexにリネームの後、services.jarに上書き

----------
framework-res.apkの編集

画像は3. / 4.のファイルをそのままオリジナルのframework-res.apkに突っ込めばOK
xmlファイルは要編集
編集するのはlayout下の以下3つのファイル。

status_bar.xml ・・・ notificationの日付
status_bar_expanded.xml ・・・ notificationのキャリア情報
status_bar_latest_event_content.xml ・・・ notificationのイベント欄

xmlファイル、バイナリ形式になっており簡単に中身をみる事ができません。
AXMLPrinter2.jarを用い、テキスト形式に変換し、中身を覗きます。
参考:Shanghai Android Laboratory Convert Android binary XML to human-readable XML

とりあえずstatus_bar.xmlをテキスト形式に変換してみます。
java -jar AXMLPrinter2.jar status_bar.xml >> status_bar.txt

テキストファイルを覗くと「android:textColor="#FF000000"」という記述が見つかると思います。
コイツを白、#FFFFFFFFに書き換えてあげれば良いのです。
書き換えはバイナリエディタでちょこちょこっと・・・ね。

書き換えたら念のためAXMLPrinter2.jarでテキスト形式に変更し、意図した書式に書き変っているか確認。

書き換え終わったらframework-res.apkに上書き
signは特に必要無さそうです。



俺専用メモなので端折りまくってます・・・気が向いたら追記の方向で・・・
今回、Milestoneのテーマという事でしたが、Magic(HT03A)でも使えるネタでございます・・・