【教程】用安卓厨房制作你自己的卡刷包!你也可以是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分区都合适。也适合不同类型的刷机包互刷。当然,如果你喜欢变态精简那我也没办法。

教程完毕。其实看起来复杂,真正做起来很简单的,就是动动手指头的事情罢了。

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