【教程】用安卓廚房製作你自己的卡刷包!你也可以是Romer !

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 (主菜單)

  1. Set up working folder from ROM (導入ROM到工作文件夾中)
  2. Add root permissions (添加Root權限)
  3. Add BusyBox (添加busybox)
  4. Disable boot screen sounds (禁用啓動畫面和啓動聲音)
  5. Add wireless tethering (添加無線共享功能)
  6. Zipalign all *.apk files to optimize RAM usage (對所有apk文件進行zipalign資源對齊操作以優化內存使用)
  7. Change wipe status of ROM (更改ROM刷入系統時的wipe操作狀態)
  8. Change name of ROM (更改ROM的名稱)
  9. Check update-script for errors (檢查刷機腳本是否有錯)
  10. 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. 打開廚房。首先,按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文件。
  2. 然後就是一路yes,enter按下來,好的,img解包了。解包完成後會問你要不要看這個rom的信息,這裏看不看隨你便。
    如果這裏無法解包,報錯,你得看看是不是你的原始rom文件有問題了。
  3. 開始大展身手的時候了。該做些啥呢?

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分區都合適。也適合不同類型的刷機包互刷。當然,如果你喜歡變態精簡那我也沒辦法。

教程完畢。其實看起來複雜,真正做起來很簡單的,就是動動手指頭的事情罷了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章