2013-07-19 15:19:02
分享

如何制作或定制Odin刷机包ROM

标签:Odin刷机包,ROM

  定制ROM对于玩机者来说是高级玩法,与广大机友一起玩,互动性极强,乐趣无穷。通过定制ROM,你可以简化原来的ROM,删除原包中的某些应用程序,同时增添一些你喜欢的新的应用程序,可以美化主题、桌面、设置等,进行Root和其它操作,等等。你也可以修改I9000的刷机包或其他ROM,移植内核或基带,从而定制成I897的ROM。最后打包,为自己后来刷机用或发布共享。

  现在进入这一讲的正题。

  一般说来,制作ROM可以简单地分为两个层次:

  1)定制ROM:是拿官方的ROM或他人的ROM做底包,通过解包、修改、编辑、打包几个步骤,制作出自己定制的ROM。

  2)自制ROM:是基于Google的安卓开源系统(Android Open Source Project,简称AOSP),从源码开始,自己编译,自己打包得到自制ROM。

  本讲要描述的是第一层次:如何定制ROM。更具体一点:就是如何制作或定制Odin刷机包ROM。现在网上流行的I897和I9000的刷机包主要还是基于第一层次的定制ROM。而HTC的手机则有不少是基于第二层次制作的ROM包。

  要定制出高质量的ROM,需要很多基础知识和积累很多ROM需要的素材。我的第三讲和第四讲都是为了现在定制ROM做的铺垫,打基础。在教程向下进行的过程中,我假定读者已经掌握了前两讲的内容,尤其是第四讲的RFS文件的解包和打包。

  我把定制ROM的过程分成以下几个步骤:

  1.底包ROM的解包

  2.RFS文件的解包

  3.RFS文件的修改、编辑、美化

  4.RFS文件的打包

  5.基带和内核的移植及其它

  6.新刷机包ROM的打包

  7.测试和发布

  1. 底包ROM的解包

  1)解RAR/ZIP压缩包

  I897和I9000的ROM通常以压缩包形式传播。文件形式为 .rar或 .zip。不管是哪一类,解压缩包这一步可以在Windows下进行。所用的解压工具是WinRAR,或WinZIP,或7-zip等。解压后得到TAR文件包(刷机包)。

  在通常的ROM中,除了PIT文件外(有的ROM中没有这个文件),所有刷机文件都打包在一个TAR文件中(例如:ROM.tar),也有的刷机包由三个TAR文件组成(PDA.tar,CSC.tar和PHONE.tar)。不管是哪一种,它们所包含的刷机文件内容是相同的,只是文件打包方式不同而已。

  2)解TAR包

  TAR包可以在Windows下用WinRAR来解,也可以在Linux下来做,视方便而定。

  如果定制ROM是在Linux系统下进行ROM打包,我建议TAR包在Linux下来解,这样比较方便,因为你需要的所有刷机文件都放在那里。为此,创建一个目录/home/sunny/ROM,把ROM.tar或PDA.tar拷贝到这个目录。然后在该目录下产生一个子目录PDA。把ROM.tar或PDA.tar解包到/home/sunny/ROM/PDA。

  解开后会看到有一个文件factoryfs.rfs,对应手机里 /system 目录的内容,修改和美化工作都在这里。这个在第四讲里已经详细讲过了。

  2. RFS文件的解包

  这个步骤及其操作在之前已经详细讲过了,这里不再重复。需要的自己搜一下。

  3. RFS文件的修改、编辑、美化

  同上。这个步骤及其操作在第三讲和第四讲里已经详细讲过了,这里不再重复。

  4. RFS文件的打包

  同上。这个步骤及其操作在第四讲里已经详细讲过了,这里不再重复。

  好了!到此,我们假定factoryfs.rfs和其他的的RFS文件经过2,3,4这几步都已经制备好了。

  5. 基带和内核的移植及其它

  现在是你考虑用什么基带和采用哪一个内核的时候了。这个没有什么好讲的,主要是你平时就要注意收集基带和内核,多看些评测,看对那个基带的评价好。内核主要是要跟进最新的。剩下的事就要劳你辛苦了,挨个测试吧,看那个能用,尤其是能与你要定制的ROM匹配。你为大家做ROM,是无尝的奉献,当然要有你的这些幕后工作。

  此外,你现在也要考虑param.lfs,或者同时增加或同时移除Bootloader boot.bin和Sbl.bin文件等。

  6. 新刷机ROM的打包

  在这一步里,把所有准备好的刷机文件打包成TAR刷机包ROM,供刷机用。下面介绍两种ROM打包方法。

  1) 在Linux操作系统下进行

  如果你有Linux环境和熟悉Linux操作系统,这ROM打包对你来说就是小菜一碟。

  ROM打包涉及两步:生成TAR包和md5签名。操作步骤如下:

  a) 把所有要打包进ROM的文件都复制到一个文件夹内,例如:/home/sunny/XXJVQ

  这些刷机文件包括:zImage,boot.bin,Sbl.bin,param.lfs,factoryfs.rfs,cache.rfs,dbdata.rfs 和modem.bin。

  b) 在超级用户终端/home/sunny/XXJVQ,输入:

  # tar -cf New-ROM.tar zImage boot.bin Sbl.bin param.lfs factoryfs.rfs cache.rfs dbdata.rfs modem.bin

  # md5sum -t New-ROM.tar 》》 New-ROM.tar

  # mv New-ROM.tar New-ROM.tar.md5

  第一步是TAR打包,第二步是md5签名。打包和签名结束。New-ROM.tar.md5就是最后定制好了的Odin刷机包ROM了。

  2) 在Windows操作系统下进行

  考虑到有些机友没有Linux环境,这里介绍一种在Windows下进行ROM打包的方法,很实用。需要你在你的Windows上安装一个虚拟Linux机。这方面的软件很多,自己去Google去吧。这里,我们用Cygwin来完成(完全免费),它是一个在Windows平台上运行的Linux模拟环境,可以实现大部分Linux的操作。幸运的是,我们ROM打包所需要的所有东西都在。

  由于你在模拟的Linux环境下,所以ROM打包的所有操作都与上述在纯Linux环境下完全相同。为清楚起见,这里再重复一遍:

  a)在C:/cygwin/home/sunny下创建一个文件夹:XXJVQ。

  b)把所有要打包进ROM的文件都复制到这个文件夹内。

  这些刷机文件包括:zImage,boot.bin,Sbl.bin,param.lfs,factoryfs.rfs,cache.rfs,dbdata.rfs 和modem.bin。

  c)打开Cygwin 的 bash shell,提示符是“$”。这就是模拟的Linux环境。在“$”下输入Linux命令:

  $ tar -cf New-ROM.tar zImage boot.bin Sbl.bin param.lfs factoryfs.rfs cache.rfs dbdata.rfs modem.bin

  $ md5sum -t New-ROM.tar 》》 New-ROM.tar

  $ mv New-ROM.tar New-ROM.tar.md5

  第一句是TAR打包,第二句是md5签名。第三句是改文件名,可以省略。New-ROM.tar.md5就是最后生成的,可供刷机用的ROM了!

  注释:如果要把ROM打包成3个TAR文件。打包过程和命令与上述完全相同,只不过是分别要进行3次而已。

  CSC.tar中包含cache.rfs

  PHONE.tar中包含modem.bin

  PDA.tar中包含zImage,boot.bin,Sbl.bin,param.lfs,factoryfs.rfs和dbdata.rfs。

  7. 测试和发布

  Odin刷机包ROM做好了,最后一步就是刷机测试。检查你计划要定制的所有内容都在,所有功能都正常。在可能的范围内,把所有按键都扫一遍(这无疑需要很多时间)。如果有问题的话,要回头从第二步重新做起,直到测试满意,达到计划要求。

  一切OK的话,定制的Odin刷机包ROM就做好了,可以收工了。如果你觉得有发布价值,就上传发布吧!

  8. 注意事项

  1)定制ROM是一项复杂和细致的工作,要求ROM制作这有良好的工作素质和习惯。在动手之前,先做个定制计划,逐一进行。

  2)在第三步修改/system的内容时,要遵循“先删后添”的原则。这是由于/system的大小限制为276.3MB。如果先添加应用程序,可能会出现“磁盘已满”或“空间不足”的问题。

  3)在TAR包的打包时,文件名的排列顺序决定了刷机时文件的刷入顺序。要尽量把boot.bin和Sbl.bin挨在一起,以避免不良刷机后果。建议的打包顺序为zImage boot.bin Sbl.bin param.lfs factoryfs.rfs cache.rfs modem.bin,其中zImage在先测试验证USB线是否正确连接,后面紧跟着把boot.bin 和Sbl.bin刷入手机。

  4)为了避免刷机变砖的可能性,boot.bin和Sbl.bin必须同时加或同时不加。千万不要只加其中的一个。