XperiaにおけるAndroidアプリ考察

【2.2(2.1)】自分好みのテーマファイルにする:framework-resいじり(要root)

震災被害の概況も分かってきました。一日も早い復興を祈ってます。自分でもできることやっていこうと思います。そんな中ではありますが、気晴らしとなるネタも必要かと思い、少し前から書きためてたframeworkネタを投下しますw

今まで質問も多く、書くと長くなるからなぁと思ってまとめては無かったんです。個別にはツールの使い方とかを応用すればできるようにはなってますが、親切じゃないな、と。
このエントリーはROMではなくてxdaのテーマファイル(XPERIA X10 Themes and Apps)にあるいろいろなテーマにある画像を寄せ集めて自分流のテーマをつくろう!というものです。正直、超面倒です。失敗=文鎮化なので細心の注意が必要です。自分も初めて画像差し替えて正常に起動したときは「やったー!」って思いました。カスタムの醍醐味はたぶんここで感じたんじゃないかと思いますわ。
(ただし全てを把握してるわけじゃないです。知ってること書きますが、此処に書いてないことは知らないことなので質問されてもお答えできない場合もありますこと、ご了承下さい。^^;)

◆テーマファイル適用でできること(メリット)

要は機能を損なわず、見た目を変えることが出来ます。以下のテーマファイルをそのまま適用することで十分欲求は満たされるわけですが、前のテーマファイルの電波アイコンだけ新しいテーマで使いたい、とか好みの壁紙に合わせてアイコン類を換えたい!とかのときにこのエントリーが参考になれば幸いです。

◆デメリット

これでもやろうと思われる方は先に進んで下さい。


◆準備するもの

◆作業手順
(今回はX HC v1.0をベースにいくつかのテーマから一部画像を差し替えるのを例にします)

  1. テーマを用意する
    [Theme] X HC v1.0 | Froyo – Eclair – CM – Gingerbread | xRecovery | 18.02.2011
    のテーマをDL
    自分はFreeX10 beta3なので2レス目の「X HC FreeX10 Froyo |」より。ファイル名:X.HC-1.0-FreeX10-Froyo.2.2.rar(9.83MB)
  2. 7-zipで解凍
    (他にrarファイルを解凍できるソフトがあればそれでもOK)。DLしたrarファイルを右クリック>7-zip>展開
  3. 解凍したイメージ
    するとX.HC-1.0-FreeX10-Froyo.2.2というフォルダができ、ファイルの構成はこんな感じになります。この2つのzipファイル、CMThemeの中のXHC.xmlをSDにカードにコピーし、xRecoveryの「Install Custom.zip」で適用すればOKですが、この考察は画像の差し替えなので次に行きます。
  4. 内容確認する
    X.HC-1.0-FreeX10-Froyo.2.2.zipの中を見てみます。ファイルの確認をするため、ファイルをコピーし、再度7-zipで解凍(展開)します。
  5. ファイルの構成
    ファイルの構成はこんな感じ。

    ここのapp(アプリケーション)を見るとmms.apk(docomoじゃ使えない)、Setting.apk(設定)、Music.apk(音楽)しかテーマが適用されないようです。あ、ホーム画面の見た目の画像ファイルはframeworkフォルダのframework-res.apkに入ってますが、上記の各アプリにもframework-resファイルがapkに内包されてますので徹底的にやるならこれらのアプリ(apk)の中も。
  6. framework-res.apkファイルの分解
    これも7-zipで解凍(展開)します。差し替える元画像ファイルはドライブ名:解凍先フォルダframework-resresdrawable-hdpiにあります。ここのファイル(794ファイル)のうち、差し替えたいを別の画像を別のテーマファイルから差し替えることになります。(今はコピーしたファイルを解凍して中身を確認してるので、このままここで差し替えちゃダメです)

    ファイル構造が分かったところで差し替え用のテーマファイルも同じようにして展開し、変えたい画像を探します。超面倒と書いたのはこういうことですw
  7. バッテリーアイコンについて
    xdaに豊富にありますので、元のframework-resの中身が100段階になっていたらここからDLして画像を差し替えるといいと思います。http://forum.xda-developers.com/showthread.php?t=724778
    [テーマが100%表示でない場合]
    ⇒100%になってるテーマから以下のファイルを差し替えると100%になる(はず)
    • ドライブ名:テーマ解凍フォルダsystemframeworkresdrawablestat_sys_battery.xml
    • ドライブ名:テーマ解凍フォルダsystemframeworkresdrawablestat_sys_battery_charge.xml
      (画像は小さいほうが100%じゃないもの、大きいのが100%化されてるxmlサンプル)

      xmlファイルはこのままメモ帳とかで開いても見られません。中身を見たい場合はApkManagerでファイルを分解し、復号化(?)すれば見られます。面倒な方は100%表示するxmlを引っこ抜き、7-zipで差し替えます。
  8. 差し替え画像を準備する
    コツは使いたい(差し替える)画像を差し替え専用フォルダにコピーしておき、元とするテーマの中のファイル名(と画像サイズ)を見比べながら差し替えるのがラクだと思います。
    ファイル名はちゃんと確認します。同じ名前なら「上書き確認」が入るはずですが、元にないファイルを入れてしまうと最悪起動しなくなる場合もあります。(バッテリー100%化する場合はxmlを入れ替えれば別名ファイルを置いても大丈夫なはず)
  9. 画像差し替え
    WindowsPCで差し替え元のzipファイルを右クリック>7-zip>開く

    開くとファイルの構造がこんな感じで表示されます。

    framework-res.apkresdrawable-hdpiに先ほど差し替え用のファイルを置き換えます。上書きの確認が出ますので「実行」をクリック。
    全て置き換えたら左上のXで閉じます。
  10. その他ファイルの入れ込み
    • 画像以外に起動アニメーション(bootanimation.zip)も7-zipで差し替えることも。
      起動アニメファイルは以下のパスにあります。
      テーマ元ファイルsystemmediabootanimation.zip
      これを気に入ったものに替えます。各テーマには必ず入ってますし、xdaにはこればっかり集めたスレもありました。(探せず…)
    • テーマファイルによってはbuild.propを書き換えてしまうものもあるので注意が必要。
      元のbuild.propを上書きする(もしくは改修)のを忘れずに!
      build.propのイジリ方はここを参照
    • フォントの置き換えもできます。
      テーマファイルsystemfonts にフォントファイルを置きます。元々無くてもsystemフォルダにfontsフォルダを作り、Androidのフォント規則に従った命名したフォントファイルを置くことでフォント変更が可能です。
      • 英文:DroidSans.ttf
      • 英文太字:DroidSans-Bold.ttf
      • 日本語:DroidSans-Japanese.ttf
  11. Xperiaの現環境をバックアップ
    バックアップ方法はこちら。(普通にバックアップです)
  12. 作成したテーマファイルをSDカードにコピー
  13. xRecoveryでテーマファイル(zip)を適用

    これで再起動して自分用のテーマが適用されたXperiaが動き出すと更に愛着が増すはず!
    arcに浮気せず引き続きXperiaを楽しみましょ♪w
     

    【参考】自分がよく差し替える画像は以下のファイルです。(アイコンを見比べるほうがいいかも。文字だけじゃねぇ)
    ※コツは差し替えたい画像を別のフォルダにコピーしておいて、元とするファイル名と画像サイズを見比べながら差し替えるのがラクだと思います。
    ※2.1と2.2ではアイコン構成が違う場合があるかもしれないのでご注意を。以下は2.2の場合です。

    1. バッテリー残量警告
      • battery_low_battery.png
    2. ロック画面変更
      • ic_jog_dial_answer_and_end.png
      • ic_jog_dial_answer_and_hold.png
      • ic_jog_dial_decline.png
      • ic_jog_dial_sound_off.png
      • ic_jog_dial_sound_on.png
      • ic_jog_dial_unlock.png
      • ic_jog_dial_vibrate_on.png
      • indicator_code_lock_point_area_default.png
      • indicator_code_lock_point_area_green.png
      • indicator_code_lock_point_area_red.png
      • jog_dial_dimple.png
      • jog_dial_dimple_dim.png
      • jog_tab_bar_left_end_confirm_gray.9.png
      • jog_tab_bar_left_end_confirm_green.9.png
      • jog_tab_bar_left_end_confirm_red.9.png
      • jog_tab_bar_left_end_confirm_yellow.9.png
      • jog_tab_bar_left_end_normal.9.png
      • jog_tab_bar_left_end_pressed.9.png
      • jog_tab_bar_right_end_confirm_gray.9.png
      • jog_tab_bar_right_end_confirm_green.9.png
      • jog_tab_bar_right_end_confirm_red.9.png
      • jog_tab_bar_right_end_confirm_yellow.9.png
      • jog_tab_bar_right_end_normal.9.png
      • jog_tab_bar_right_end_pressed.9.png
      • jog_tab_left_confirm_gray.png
      • jog_tab_left_confirm_green.png
      • jog_tab_left_confirm_red.png
      • jog_tab_left_confirm_yellow.png
      • jog_tab_left_normal.png
      • jog_tab_left_pressed.png
      • jog_tab_right_confirm_gray.png
      • jog_tab_right_confirm_green.png
      • jog_tab_right_confirm_red.png
      • jog_tab_right_confirm_yellow.png
      • jog_tab_right_normal.png
      • jog_tab_right_pressed.png
    3. スクロールハンドル
      • scrollbar_handle_accelerated_anim2.9.png
      • scrollbar_handle_horizontal.9.png
      • scrollbar_handle_vertical.9.png
    4. 読込中のクルクル回る画像
      • spinner_black_16.png
      • spinner_black_20.png
      • spinner_black_48.png
      • spinner_black_76.png
      • spinner_white_16.png
      • spinner_white_48.png
      • spinner_white_76.png
    5. CyanogenModで表示するアイコン
      • stat_airplane_off.png
      • stat_airplane_off_cust.png
      • stat_airplane_on.png
      • stat_airplane_on_cust.png
      • stat_bluetooth_off.png
      • stat_bluetooth_off_cust.png
      • stat_bluetooth_on.png
      • stat_bluetooth_on_cust.png
      • stat_brightness_auto.png
      • stat_brightness_auto_cust.png
      • stat_brightness_mid.png
      • stat_brightness_mid_cust.png
      • stat_brightness_off.png
      • stat_brightness_off_cust.png
      • stat_brightness_on.png
      • stat_brightness_on_cust.png
      • stat_data_off.png
      • stat_data_off_cust.png
      • stat_data_on.png
      • stat_data_on_cust.png
      • stat_flashlight_off.png
      • stat_flashlight_off_cust.png
      • stat_flashlight_on.png
      • stat_flashlight_on_cust.png
      • stat_gps_off.png
      • stat_gps_off_cust.png
      • stat_gps_on.png
      • stat_gps_on_cust.png
      • stat_ing_off.png
      • stat_ing_off_cust.png
      • stat_lock_screen_off.png
      • stat_lock_screen_off_cust.png
      • stat_lock_screen_on.png
      • stat_lock_screen_on_cust.png
      • stat_orientation_off.png
      • stat_orientation_off_cust.png
      • stat_orientation_on.png
      • stat_ring_on.png
      • stat_ring_on_cust.png
      • stat_screen_timeout_off.png
      • stat_screen_timeout_off_cust.png
      • stat_screen_timeout_on.png
      • stat_screen_timeout_on_cust.png
      • stat_silent.png
      • stat_silent_cust.png
      • stat_vibrate_off.png
      • stat_vibrate_off_cust.png
      • stat_vibrate_on.png
      • stat_vibrate_on_cust.png
      • stat_wifi_ap_off.png
      • stat_wifi_ap_off_cust.png
      • stat_wifi_ap_on.png
      • stat_wifi_ap_on_cust.png
      • stat_wifi_off.png
      • stat_wifi_off_cust.png
      • stat_wifi_on.png
      • stat_wifi_on_cust.png
    6. ステータスバーのアイコン類
      • stat_notify_alarm.png
      • stat_notify_disk_full.png
      • stat_notify_error.png
      • stat_notify_sdcard.png
      • stat_notify_sdcard_prepare.png
      • stat_notify_sdcard_usb.png
      • stat_notify_sim_toolkit.png
      • stat_notify_sync.png
      • stat_notify_sync_anim0.png
      • stat_notify_sync_error.png
      • stat_notify_wifi_in_range.png
      • stat_sys_wifi_signal_0.png
      • stat_sys_wifi_signal_1.png
      • stat_sys_wifi_signal_2.png
      • stat_sys_wifi_signal_3.png
      • stat_sys_wifi_signal_4.png
    7. ステータスバーの透過(透過ファイルはこちら)
      • statusbar_background.9.png
    8. USB接続画像
      • usb_android.png
      • usb_android_connected.png

     

    最後まで見ていただきありがとうございました。m(__)m