Android ROM定製

前言:不少童鞋對美化很感興趣,都想擁有一個完徹底全屬於本身風格的手機系統!對那些自定義全局背景,1%電量顯示,透明下拉菜單。。。都很感冒!美化的重點跟難點就在於對"framework-res.apk"和"systemUI.apk"這兩個文件的編譯和反編譯!這裏說的編譯和反編譯是全部深度美化都必需要作的事,也就是說,全部的美化都是基於對apk的反編譯後,才能進行的!而絕大多數修改"framework-res.apk"和"systemUI.apk"後致使沒法進入系統,或者無限開機重啓的,基本都是在編譯跟反編譯上出了問題!html

framework-res.apk  的修改



framework-res.apk文件簡介:
framework-res.apk文件位於/system/framework文件夾中,裏面有着系統GUI的大部分的圖片,包括圖標,彈出對話框的樣式,動做特效,界面佈局,咱們要知道"framework-res.apk"是不能夠重簽名的!(咱們要切記這一點)另外,修改"framework-res.apk"以前務必先作好備份!這是至關重要的文件,稍有出錯都會令你進不了系統的!如下爲Framework-res.apk的文件結構:java

  1. /assets

  2. /META-INF

  3. /res

  4. /AndroidManifest.xml

  5. /resources.arsc

  6.  

複製代碼android


1、java平臺的搭建、下載工具apktool
教程地址及下載地址:http://www.miui.com/thread-492332-1-1.html

2、反編譯framework文件

在解壓縮的ROM包或者用RE瀏覽器打開目錄/system/framework下,就會看到有"framework-res.apk"的文件了,直接把他複製到電腦上準備用apktool反編譯"framework-res.apk" ,在D盤根目錄下創建一個apktool的文件夾,把解壓好的APKTool.zip裏面的三個文件以及「framework-res .apk」一齊放到D:\apktool中,打開「命令提示符」,方法:「開始--全部程序--附件--命令提示符」,或者快捷鍵「Win+R」,輸入cmd,回車依次輸入下面的代碼瀏覽器

  1. d:

  2. cd apktool

  3. apktool if framework-res.apk

  4. apktool d framework-res.apk framework-res

  5. PS:d 是反編譯命令 後面的 framework-res表示生成文件名爲framework-res 的文件夾

複製代碼安全


注意:這裏的framework-res.apk必定要是原版ROM裏的文件,沒有通過修改的,否則會致使後面的SystemUI回編譯失敗。

此時:D:\apktool目錄下就會多出一個名爲
framework-res
的文件夾,裏面放着就是反編譯出來的文件了

三.Framework-res.apk圖片修改及注意事項
本系列教程的主要研究方向在res文件夾中的圖片與XML文件
在修改或替換framework-res.apk中的圖片前,向你們提出如下幾點建議,望你們注意,避免修改失敗
  1)圖片的獲取
  關於圖片的獲取,你們能夠用winrar打開framework-res.apk文件,進入找到res/drawable-mdpi(有些rom是drawable-ldpi)

把整個文件夾拖出來
  2)圖片尺寸要注意
  你們修改時,要注意與原來的圖片大小不要相差太遠,否則會形成越界問題
  3)圖片修改時注意名稱一致
  各位在圖片修改時,若須要保存,千萬記着,圖片的名稱必需要跟原來的一致,多一個或少一個字都不行!
  4)圖片的覆蓋
  修改完圖片後,咱們再在winrar中打開framework-res,把圖片分別拖入drawable-mdpi和drawable-ldpi文件夾覆蓋
  5)framework-res.apk權限修改
  修改完後的framework-res.apk,權限已經被修改,咱們要把它改爲徹底控制,具體方式以下:
  右擊framework-res.apk,選擇屬性去掉只讀屬性,選擇」安全」選項卡,而後點擊編輯,把用戶對象的徹底控制選上,再點擊肯定,退出編輯界面。

最後,整理了一下你們常常想要修改的圖片列表:app

  1.  

  2. emo_im_xxx  表情系列圖片

  3. ic_jog_dial_xxx  鎖屏界面功能圖標(圓形的那些)

  4. ic_lock_idle_xxx  鎖屏界面提示圖標

  5. ic_menu_xxx  系統菜單圖標

  6. stat_notify_xxx  狀態欄提示圖標(屏幕左方的圖標)

  7. stat_sys_battery_xx  電池圖標

  8. stat_sys_battery_charge_animX  充電時電池圖標

  9. stat_sys_upload_animX  上載圖標

  10. stat_sys_download_animX  下載圖標

  11. stat_sys_gps_ongps  圖標

  12. stat_sys_headset  耳機圖標

  13. sym_def_app_icon  默認程序圖標

  14. usb_androidUSB  鏈接機器人圖片

  15. statusbar_background9  狀態欄背景圖標(2.2以後版本的ROM該圖標在systemUI.apk裏)

  16. jog_dial_bg  解鎖背景圖片

複製代碼框架



4、回編譯 framework-res .apk

當你已經在這裏修改好想要修改的東西之後,接下來就要進行編譯回去了!! 「命令提示符」上輸入:
 工具

  1. apktool b framework-res

複製代碼佈局

成功編譯以後,
framework-res
文件夾就會多了個dist的文件夾,裏面放的就是編譯好的文件,一樣命名爲framework-res .apk

好了,重中之重就在下面了!不要覺得編譯好了就能夠把這文件放回手機,還不能夠的。
先搞清楚,咱們如今有兩個apk文件,一個是編譯前的framework-res .apk,一個是編譯後的framework-res .apk。
用壓縮軟件同時打開編譯前和編譯後的 framework-res .apk,是打開,而不是解壓

細心觀察,會發現編譯後的 framework-res .apk ,少了一個META-INF的文件夾,這個其實就是apk包的簽名所在,可是這框架文件是不能簽名的,因此,咱們纔要進行下面的步驟
  咱們須要把兩類文件從編譯後framework-res .apk拉到編譯前framework-res .apk中替換,
  第一類是:剛纔反編譯後,你所替換過,或者修改過的全部文件
  第二類是:resources.arsc這一個文件
  全部文件一個都不能替換少了
  記得要放到相同的目錄下哦!!
  替換好後,咱們就獲得了須要的「framework-res.apk」
  而後,用RE瀏覽器把「framework-res.apk」複製到/system目錄下,而後,長按文件名選擇權限,具體權限修改成全部用戶組讀取,用戶寫入權限(RE管理器掛載爲讀/寫)修改好肯定後,再把「framework-res.apk」剪切到/system/framework目錄下,選擇替換原文件,再次確認權限是否有誤!
  PS:必定要修改好權限後才能放進/system/framework,否則系統會立刻掛掉的!!
  最後就是重啓手機,修改完成!
 動畫

SystemUI.apk 的修改


SystemUI.apk簡介


自android2.2開始,本來存在與framework-res.apk中的狀態欄和下拉通知欄界面控制被分割出一個單獨的apk文件,命名爲SystemUI.apk,保存在System/app文件夾中,可看出,在本文件中,是存在着狀態欄的圖標,XML控制文件等,這樣的分割,使咱們能夠更方便地去修改,也可更專一的研究美化狀態欄。
如下爲SystemUI.apk的文件結構:

  1. /res

  2. /META-INF

  3. /AndroidManifest.xml

  4. /classes.dex

  5. resources.arsc

  6.  

複製代碼

一.SystemUI.apk圖片修改及注意事項
1)圖片的獲取
  關於圖片的獲取,你們能夠用winrar打開SystemUI.apk文件,進入找到res/drawable-mdpi
2)圖片尺寸要注意
  你們修改時,要注意與原來的圖片大小不要相差太遠,否則會形成越界問題
3)圖片修改時注意名稱一致
  各位在圖片修改時,若須要保存,千萬記着,圖片的名稱必需要跟原來的一致,多一個或少一個字都不行!
4)圖片的覆蓋
  修改完圖片後,咱們再在winrar中打開SystemUI.apk,把圖片分別拖入drawable-mdpi和drawable-ldpi文件夾覆蓋

二.常見修改圖片列表

  1. battery_low_battery  充電提示

  2. stat_2g3g  下拉通知欄2G/3G切換圖標

  3. stat_airplane_on/off  下拉通知欄飛行模式開啓/關閉圖標

  4. stat_bluetooth_on/off  下拉通知欄藍牙開啓/關閉圖標

  5. stat_brightness_auto/mid/on/off  自動調節/適中/開啓/關閉下拉通知欄屏幕亮度圖標

  6. stat_data_on/off  下拉通知欄數據控制開啓/關閉圖標

  7. stat_flashlight_on/off  下拉通知欄電筒開啓/關閉圖標

  8. stat_gps_on/off  下拉通知欄GPS開啓/關閉圖標

  9. stat_lock_screen_on/off  下拉通知欄鎖屏開啓/關閉圖標

  10. stat_media_xxx  下拉通知欄播放器控制圖標

  11. stat_ing_xxx  下拉通知欄聲音模式控制圖標

  12. stat_orientation_on/off  下拉通知欄轉屏控制圖標

  13. stat_screen_timeout_on/off  下拉通知欄屏幕超時控制圖標

  14. stat_sync_on/off  下拉通知欄同步開啓/關閉圖標

  15. stat_sys_data_xxx  數據通訊圖標

  16. stat_sys_no_sim  無sim卡通知圖標

  17. stat_sys_signal_x  信號圖標

  18. stat_sys_wifi_xwifi  信號圖標

  19. stat_vibrate_XXX  震動提示圖標

  20. shade_bg  下拉菜單背景

  21. statusbar_background  狀態欄背景圖片

複製代碼

 

系列教程:

android應用、ROM開發者入門FAQ
JDK環境搭建以及APKTool和signapk整合工具及使用教程
Android平臺ROM的定製及精簡教程
Android APK反編譯教程
Android ROM界面美化定製基礎教程——第一屏開機動畫修改
Android ROM定製——界面美化基礎(framework-res、SystemUI修改)  

相關文章
相關標籤/搜索