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

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

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

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

  • ステータスバーの色、アイコン、バッテリー表示100%等
  • 「田」を押したときのアイコン類
  • 電話アプリなど標準アプリの見た目(作者によってテーマの適用範囲が違う場合もある。フォントも変わるテーマもあり)

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

◆デメリット

  • 書き換え失敗すると起動しません。xRecoveryでバックアップ取ってなければPCを用いてSEUSで初期化が必要となります。
  • OSのバージョン、ファームウェアのリビジョン、カスタムROMもFreeX系、CM系と複数あります。適用を間違えると起動しなくなります。なので自分の環境をしっかり確認する必要があります。下記テーマファイル作者の英文の意味が分からない方は導入しないほうがいいと思います。
  • 似たようなファイル名がたくさんあります。画像の差し替えは十分注意し、自己責任て行って下さい。カスタム途中の起動しない現象ではdocomoの保証は受けられません。

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


◆準備するもの

◆作業手順
(今回は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

 

19件のコメント


  1. はじめまして! いつも楽しく読ませて頂いています。
    こちらを参考に2.1なエクスペリアにてバッテリーの100%表示だけ適用させようと致しましたところ、
    バッテリアイコンが消えてしまいました。 

    stat_sys_battery.xml
    stat_sys_battery_charge.xml
    ともにUOT KITCHENにて生成されたものと置き換え、画像を(追加し)置き換え、

    dd if=/sdcard/framework-res.apk of=/system/framework/framework-res.apk
    と入力したところで端末が再起動されました。

    すると、、バッテリーアイコンは適用されず、場所は空いているんですがその存在自体が消えてしまっていました。。。

    再起動後、
    chmod 644 framework-res.apk
    と打つと
    Unable to chmod framework-res.apk: Read-only file system
    と出るんですが、ただこの時点でアイコンが適用されていないのでこの上記メッセージは別の問題なのでしょうか?

    もし問題がわかりそうだったら教えて下さい。勝手なお願いですいません。よくわからなければスルーで結構です。
    ありがとうございましたー。


  2. […] β3と大差ないです。 あとはframework-resをカスタムしてみたり、CM6.1用のテーマを適用してみたりとトコトン弄っていくとさらに愛着が増すと思いますよ! […]


  3. @はまんどろいど さん>
    この内容はホントに試行錯誤しながら自分用のを創り上げていく地道な作業ですもんね。
    完成してうまく動いたときは超うれしいですよね。

    開発に関してはまだ手を付けていません(というかそこまでのスキルはないっす^^;)。
    先人たちの後を追っかけていくだけの純日本人的なヤツですww


  4. @キム さん>
    ありがとうございます!お役に立てて良かった!!
    いろいろ探しても参考になるサイトがなかったので、自分で書いちゃいましたw
    ・・・そろそろネタ切れですw


  5. @はこらば さん>
    2.1用だとメタモフで適用するパターンがしたらば掲示板にあったと思いますよ。
    【Dark10】Xperia MODテーマ専用スレPart2【移植】
    http://jbbs.livedoor.jp/bbs/read.cgi/computer/42652/1292836899/
    たまに見てみると気に入ったのが見つかるかもしれませんよ!

    あ、もちろんframework-resを直接弄っても(手順や置き換えファイル間違わなければ)大丈夫です!


  6. 文鎮化と戦いながら自分だけのtheme作る事ができました!!丁寧にありがとうございました。


  7. いろいろ社会不安があって気もそぞろな時にこの考察は現実逃避できそうです。ありがとうございます。機会があったら開発環境にソース読み込んで作る考察お願いします。(自分でやれってですか、はい、すみません)


  8. こんばんは。
    相変わらずの考察っぷりですね^^
    大変参考になります。

    これだけの情報を記載するのは、相当時間がかかってますよね。
    ショーグンさんの努力に感謝します。
    本当にいつもありがとうございます。


  9. 毎度、わかりやすい説明をありがとうございます^^
    非常に参考になります!

    そういえばちょっと昔に2.1というところだけを意識してxdaからテーマ入れたら文鎮化した経験が・・・
    fwの関係だったんですね。

    2.0.1.B.0.19向けのテーマとかってご存知ありませんかね・・・?^^;


  10. web上にframework-res.apkをアップロードして簡単にテーマの変更を行えるサイトを最近みつけました。

    http://uot.dakra.lt/

    7-zipは使わないといけませんが、便利なサイトです。


  11. 長々ありがとうございます!
    参考になりましたw
    打つのにめっちゃ肩こりましたか?
    肩たたき券プレゼントしたいですwww


  12. ショーグン殿

    上の一覧非常に助かります!やりはじめると頭が混乱してしまい、いつも挫折してしまいます(笑)
    またチャレンジしてみたいと思います!


  13. 質問があるのですが
    ロック画面の画像ってどこに入っているのでしょうか?
    ご存知でしたら教えてください。
    よろしくお願いします。