ROM定製工具——dsixda’s Android Kitchen是由xda-developers論壇的一位來自加拿大的大神做出來的。這是一個定製rom的神器!!
在這裏向作者表示崇高的敬意——原帖地址:http://forum.xda-developers.com/showthread.php?t=633246
廚房下載地址:
https://github.com/dsixda/Android-Kitchen/archives/master
本人定製好的cygwin+dsixda’s Android Kitchen一體包下載地址:
http://dl.dbank.com/c0k6igayri
本帖教你怎樣安裝和使用這個神級的工具,教會你怎麼製作Recovery卡刷刷機包。
看到論壇上一些人轉的帖子,看了下,有些含糊不清,而且有不少地方都不準確,因此本人認真看了下原帖,並且根據自己的經驗進行了梳理和總結。
個人水平有限,難免有疏漏,請多多包涵。看不懂的名詞你可以百度谷歌一下的。
百度ID:pledge77520,轉載請註明出處。
第一步——JAVA環境變量的安裝和設置:
1.下載JDK:
請到官網頁面下載http://www.oracle.com/technetwork/java/javase/downloads/index.html
或者百度一下即可。
請安裝32位的JDK,64位的在安裝Cygwin的時候可能會出現麻煩。
2.安裝JDK:
點擊下載好的JDK安裝程序,沒什麼難度,一路點擊“下一步”“同意”“繼續”即可。
3.配置java環境變量:
1).Win XP:
我的電腦(右鍵)——屬性——高級——環境變量,選擇在”系統變量”下進行如下配置(若已存在則點擊“編輯”,不存在則點擊“新建”):
(1).系統變量JAVA_HOME:
變量名:JAVA_HOME
變量值:C:\Program Files\Java\jdk1.7.0_03 (就是你的JDK的安裝路徑,我這裏寫的是我的JDK安裝路徑,你腦子靈活點。。。)
(2).系統變量Path:
變量名:Path
變量值,在變量值的最前面加上:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
(3).系統變量CLASSPATH,如果已有,請在末尾添加:
變量名:CLASSPATH
變量值:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
(這裏要注意,最前面要加“.”,表示當前路徑)
注意:當設置的變量在末尾時,不要加上“;”。
然後點擊“確定”或者“應用”即可。
2).Win7:
計算機(右鍵)——屬性——高級系統設置——環境變量,選擇在”系統變量”下進行如下配置(若已存在則點擊“編輯”,不存在則點擊“新建”)。參數設置和上面提到的xp一樣,配置好後點擊“確定”或者“應用”即可。
。
3).驗證是否成功配置環境變量:
按鍵盤Win+R,輸入cmd,或者用別的方法打開命令提示符窗口,依次輸入java,javac,java –version,如果沒有報錯,那麼就是成功了。
配置失敗、出現問題等情況請自行百度。
第二步——安裝Cygwin:
1.請到官網頁面下載:http://cygwin.com/index.html
或者百度一下。
2.點擊安裝程序。
選擇下一步,點擊Install from Internet(從網絡上安裝);
下一步,然後Root Directory是安裝路徑;
接着繼續下一步,Local Package Direct是下載下來的安裝包存放的位置;
繼續下一步,下一步,選擇一個鏡像源,用於下載安裝包的,隨便選一個就行了;
之後出現一個彈窗你就點擊確定。
然後就是選擇組件安裝。
這裏很多教程都直接說點擊default使其變爲install。但是這樣就會有一個問題:如果真這樣做了,就需要同時下載安裝大量的組件,下載過程極其漫長,安裝後體積非常臃腫。但是很多linux系統整體體積也不過幾百兆,也照樣能運行廚房。因此在這裏我們可以推測有相當多不必要安裝的組件,畢竟我們並不需要那麼多的功能,在這裏我們只需要能夠運行廚房工具罷了。
我只想說,有些轉載者看原版教程的時候不注意。在原帖內有個文件叫做Cygwin_required.txt,已經告訴我們需要到哪些插件了。我們並不需要幾百幾千個組件,而只需要寥寥幾個重要組件罷了。也就是說,在默認安裝的組件的基礎上,我們只需要再添加一下額外需要到的組件即可:
* Archive / zip
* Archive / unzip
* Devel /gcc
* Interpreters / perl
* Utils / cpio
* Utils / util-linux
* Utils / ncurses
* Web / wget
安裝的時候在組件的樹形圖列表中或者直接搜索相應組件,點擊一下使其變爲安裝狀態即可。這樣我們的下載量就大大減少了,速度快了很多,而且完成後體積只有幾百兆左右。
然後繼續下一步,直到完成即可。
(如果後期提示缺少什麼工具,重新運行安裝程序,搜索缺少的工具安裝即可。)
本教程中Cygwin安裝的整個過程,根據網速和處理器速度,需要幾分鐘到幾個小時不等。。。
事實上,這只是在windows下搭建一個運行環境而已,如果你願意,你也可以在Linux/Mac OS X的虛擬機上或者真正的Linux/Mac OS X系統中,下載安裝JDK,配置java環境,然後就可以使用這個神級的工具了。
其他系統或者虛擬機的具體安裝方法請看原帖,看不懂的請百度谷歌必應一下,這裏不細說了。
第三步——廚房的安裝和使用:
安裝和進入廚房工具:
把下載好的廚房工具安裝包解壓到cygwin安裝目錄下的任意文件夾,一般建議放到/home下.
點擊打開Cygwin,cd到廚房所在文件夾,(比如廚房放在/home/kitchen下,可以cd /home/kitchen),然後輸入“./menu”,就能直接進入廚房工具了。這裏還有一個小技巧,就是當廚房放在/home/Administrator下時,可以用文本編輯器編輯/home/Administrator下的.bashrc文件,在最後面添加一行,內容爲“./menu”,以後點擊Cygwin快捷方式就可以直接進入廚房了。
進入廚房了,我們該做些什麼呢?別急,讓我們先了解一下廚房的菜單,看看我們可以做些什麼。廚房菜單如下(括號內的爲中文翻譯,看中文都懂啥意思,該怎麼用了吧):
Main Menu (主菜單)
- Set up working folder from ROM (導入ROM到工作文件夾中)
- Add root permissions (添加Root權限)
- Add BusyBox (添加busybox)
- Disable boot screen sounds (禁用啓動畫面和啓動聲音)
- Add wireless tethering (添加無線共享功能)
- Zipalign all *.apk files to optimize RAM usage (對所有apk文件進行zipalign資源對齊操作以優化內存使用)
- Change wipe status of ROM (更改ROM刷入系統時的wipe操作狀態)
- Change name of ROM (更改ROM的名稱)
- Check update-script for errors (檢查刷機腳本是否有錯)
- Show working folder information (顯示工作文件夾的信息)
O.ADVANCED OPTIONS(高級選項)
11 - Deodex files in your ROM (Deodex操作,合併ROM中的apk和odex文件)
12 - Add task killer tweak for speed (stock ROM only) (添加內存調整和優化,以提升速度,僅限官方ROM)
13 - Add /data/app functionality (添加/data/app功能)
14 - Add Nano text editor + sysro/sysrw(添加Nano文本編輯器+,切換系統只讀/系統可讀寫)
15 - Add Bash (command shell) (添加bash,也就是shell命令行)
16 - Add Apps2SD (添加App2SD功能)
17 - Add /etc/init.d scripts support (busybox run-parts) (添加對/etc/init.d腳本的支持,需要busybox)
18 - Add custom boot animation functionality (添加對自定義開機動畫的支持)
19 - Porting tools (experimental) (移植工具,僅測試)
20 - Tools for boot image (unpack/re-pack/etc.) (boot image 文件工具,解壓或者打包boot.img等等)
21 - Unpack data.img (解壓data.img文件)
22 - Sign APK or ZIP file(s) (對apk文件或者zip文件進行簽名操作,可批量操作)
23 - Convert update-script or updater-script (update-script或者updater-script兩種刷機腳本的相互轉換)
24 - Miscellaneous optins / Plugin scripts (其他雜項選項菜單/插件腳本)
高級選項中的0-Back to mainmenu
99. Build ROM from working folder (由工作文件夾建立ROM刷機包)
u. About/Update kitchen (關於/廚房升級)
x. Exit (退出)
下面是具體的操作流程,這個是本人從Recovery備份出來的system.img出發,製作一個卡刷包的過程:
- 打開廚房。首先,按1,進入創建工作文件夾的流程。請把需要到的ROM原料放入廚房中的original_update文件夾,具體支持的格式請按s查看。一般可以用的是system.img和boot.img,一般可以在官方rom中用工具提取出來,也可以用Recovery備份出來,還可以在adb中用cat命令備份出來,反正只要你想得到弄得出來就行了;
有些機型沒有boot.img,比如我們的u880,bintool分解不出boot.img,recovery也備份不出,cat也cat不出來,沒關係,只放system.img就可以了,系統可以生成一個虛擬的boot.img文件的。此外也可以用別人做好的zip卡刷包,官方的zip升級包,或者你以前操作過的工作文件夾。這裏我用的是Recovery備份出來的system.img文件。 - 然後就是一路yes,enter按下來,好的,img解包了。解包完成後會問你要不要看這個rom的信息,這裏看不看隨你便。
如果這裏無法解包,報錯,你得看看是不是你的原始rom文件有問題了。 - 開始大展身手的時候了。該做些啥呢?
1).大多數人的第一件事,就是先把系統裏面的一堆運營商或者廠家定製的軟件精簡。我也不例外,主要是這些定製的軟件並不是必須的,而且佔系統空間,又拖慢系統開機和運行。
進入工作文件夾,找到system下的app文件,對着你找到的可刪除的文件列表,大膽地刪!要記得,不知道這個軟件有什麼用的不要亂刪!系統核心文件不要刪!如果是一個完整的卡刷包,請務必保證有啓動器(桌面)!
2).然後是深度精簡了。開機動畫不要的,刪!多餘的鈴聲,刪!不想要TTS語言包?刪!此外你還可以多個心眼,刪除apk文件之前用winrar一類的壓縮文件管理器查看一下apk裏面有沒有lib文件夾,有的話可以把/system/lib下對應的lib也刪除了。
3).添加你需要的程序,使其成爲系統程序。比如很多國內的機型都沒有谷歌服務包,這時候你就可以添加谷歌服務包進去了。再比如,你喜歡百度輸入法,注意,添加的程序請先用winrar或者好壓一類的查看下,如果apk內有lib文件夾,請把apk中lib/armeabi文件夾下的.so文件放到/system/lib下,如果有framework文件夾,請把裏面的jar文件放到/framework文件夾下。
說一句,不要往系統裏面添加太多程序,美其名曰內置啥啥的,要知道系統程序越多,就越拖慢系統的運行速度,而且耗電、開機等各方面都會受到影響。但是也不要刪除太多,別用的少了就刪了,這樣就算是自用,真正用到的時候還是很麻煩的。我就吐槽一下一些romer,把手機電視,輸入法,文件管理,任務管理啥的都刪除了,這種機子除了首次開機看起來清爽點,後來還不是得裝這些東西,而且data內的東西優先級不如system,每次恢復出廠又得重裝。如果真要空出可用空間,該做的不是變態的精簡,而是在適度的精簡上做odex,同時刪掉一些不用的體積臃腫的鈴聲開關機動畫啥的。一般來說,做odex可以爲data分區節省出20~50M不等的空間,而且速度有所提高。
有些程序不想放在system裏,不想讓他成爲系統程序,怎麼辦捏?好,使用廚房的菜單,按0,按13,就是添加data/app支持,然後就可以在data/app下添加第三方程序了。刷機之後這些程序就以第三方程序的身份出現,可以直接卸載。
4.然後是美化
不喜歡或者不懂美化的同學可以繞過這一步了。這一步驟是畢竟比較難的,整個製作過程中涉及到手動反編譯的就在這裏。
美化主要是弄以下方面,修改system下的文件:
System/framework下的文件,system/app下的啓動器(桌面)程序和systemUI.apk(2.3de rom纔有的)。一般是修改解鎖,修改數字電量,程序圖標修改,狀態欄透明或者半透明,換特效等。
此外,推薦一個“在線廚房”,地址:http://uot.dakra.lt/kitchen/
在這裏你可以上傳你的framework-res.apk文件和狀態欄systemUI.apk等軟件,然後自定義修改數字電量,修改開機動畫,修改狀態欄顏色等等。
步驟:把文件複製出來,反編譯,美化,回編譯,放回去替換。額,其實我對美化並不是很在行,也不說什麼了。提示一下,加任何素材進去要記得添加對應的資源id等,刪除的話也是一樣;替換圖片要注意格式,很多圖片都是9.png格式,要打9.png補丁;,framework下的任何文件因爲簽名的關係,不能用反編譯後的文件,而應該用winrar或者好壓一類的把反編譯後的資源提取出來,直接替換到原來的apk或者jar文件中,注意檢查壓縮方式。具體的別問我,自己百度或者谷歌去。
此外還有一些美化補丁啥的,也可以添加,比如spn.conf補丁,用來屏蔽桌面顯示的運營商的,也可以根據補丁應該呆的位置加進去。
總之這是技術活和體力活的結合體。
美化是電量的敵人!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
我不想搗鼓那麼多,就換個谷歌原生解鎖就行了吧。反編譯system/framework下的service.jar,替換原生解鎖代碼再反編譯回來,然後換掉原來的service.jar就是了。其他的,你們自己去搗鼓吧。
5.最後是優化
首先,按2,添加root權限。。。
其次,按3,添加busybox指令集。。。
系統爲2.1以下的童鞋可以添加app2SD的功能了,按0進高級菜單,按16,Add Apps2SD。不過咱u880不需要。
剩下的添加無線共享,內存優化等等,還有一些神馬補丁的,也可以一併添加進去。看個人喜好。
一些機型存在開機第二屏,而如果你想去除開機第二屏,那麼一開始設置工作文件夾的時候記得把你的boot.img文件也加進去,這時候就可以用高級功能裏面的boot image工具,也就是高級菜單中的20選項,解包boot.img,然後找到第二屏,替換掉或者直接刪除。有些機型需要完整root的,需要修改boot.img甚至ramdisk才能實現的,也可以在這裏操作。優化內存也可以通過修改boot.img來實現。
然後是給apk簽名,以防system/app下的文件缺失簽名而無法使用。
6.好了,下面是準備打包rom的工作了。
1).選項7,修改wipe狀態。如果是單刷包,千萬不要設置這個,但是如果你是整個系統的rom,那麼我推薦你修改這個。爲啥?因爲經常有些馬大哈在刷機的時候忘記wipe操作,導致開不了機而變磚,那麼你只好事先打打預防針,直接在腳本中增加wipe操作,這樣子刷機的時候不管有沒有手動wipe都沒關係了。
2).檢查rom的信息。確認一下你的刷機包內容弄完了,然後選擇選項10,看一下當前的rom信息,看看是否符合你的要求。
3).檢查升級腳本是否有誤。按9唄。
4).轉換刷機腳本。按0進入高級菜單,選擇23,根據情況轉換刷機腳本。爲啥要做這個捏,因爲3.0以下recovery需要的是update-script,而3.0版本以上的recovery卻需要updater-script。現在大多數人刷的recovery都是3.0以上版本,所以需要根據實際情況轉換。一般建議轉換爲updater-script。
5.)按99,打包。
英語都會那麼些吧?我想不用多說了,一路yes一路回車就是了。在這個過程進行zipalign工作,給rom簽名等,最後會問你要不要給rom改名。這裏隨意。
有沒有發現,在這個過程裏面,你需要動的東西少多了,並不需要管文件和文件夾的用戶組權限神馬的,腳本也不用你寫,deodex合併odex和apk,apk簽名,zipalign對齊,ROM的簽名等等操作也不用你打複雜的命令行,你只需要的就是換上你需要的東西,然後動動腦袋眼睛手指頭,輕鬆幾步一鍵完成,然後一個專屬於你的rom就誕生了。
其實這個工具的作用遠遠不止這麼點,更多的用途請參照原帖,或者你自己動腦動手開發。
當然,製作Recovery卡刷ROM還有別的很多的方法,比如直接編輯腳本製作ROM並用工具簽名,修改別人做好的ROM等等,這裏就不一一介紹了。這裏只是給大家提供一個好的製作方法。
最後——送上本人修改過的廚房工具,配套安裝了Cygwin綠色版,只要你配置了java環境,那麼打開這個廚房工具就能夠直接使用。不過這個配套的廚房是純原版的,木有做漢化(漢化要弄一百幾十個腳本文件,過程簡單但是累人,本人暫時沒空,網上也有很多漢化版的了,自己搜索去)而且我覺得漢化有點多餘,還可能歪曲作者原意,因爲要做一個好Romer,怎麼說也得會那麼些英語,不然真的是無頭蒼蠅到處亂撞的;真的實在不懂的時候畢竟還可以百度或者谷歌一下。
這個工具只是讓你跳過第二步,畢竟裝Cygwin確實有點麻煩,而且使得你可以把它放在任何路徑下執行。放在U盤中還能夠隨身攜帶,使用方便。
這個工具,工作區在\home\kitchen\下,放system.img或者原始rom文件的地方是\home\kitchen\original_update
下載地址:
http://dl.dbank.com/c0k6igayri
說到這裏,就連帶說一些一步到位的精簡迷你bin的製作吧。
很簡單,使用bintool,分解你要做迷你bin的官方bin文件,刪除其中的system分區。
Logo.img和recovery根據你的喜好而替換。
然後用yaffs2瀏覽器新建一個yaffs2格式的文件,保存爲system.img。
然後用bintool調整分區,修改bootloader和ramdisk讀寫權限。重新打包bin就可以了。
談一下分區。Cache在20~30M之間最好。千萬不要過度壓縮cache的空間!因爲有一些程序是通過cache保存臨時數據的,比如電子市場,我還見過一個視頻播放軟件(名字忘記了),一個rom工具也是用cache保存臨時數據的。此外系統運行中的意外丟失的文件也會放那兒。Cache太小了會導致程序卡死!手機死機!
正常的普通精簡包,system大小在110~130之間。不過如果做odex話的話可以到130~140左右。如果帶上joinme又得多準備30M空間。
考慮到谷歌服務包和換字體的需要 。建議system分區設置爲150M左右。一般140~160的system分區都合適。也適合不同類型的刷機包互刷。當然,如果你喜歡變態精簡那我也沒辦法。
教程完畢。其實看起來複雜,真正做起來很簡單的,就是動動手指頭的事情罷了。