三星ODIN刷机包的修改

SunnyOK系列讲座索引

【第一讲】如何用Odin刷机 - 新手必读
http://bbs.gfan.com/android-1653492-1-1.html

【第二讲】I897卡刷或CWM刷机教程
http://bbs.gfan.com/android-1701867-1-1.html

【第三讲】APK应用程序的解包、修改、编辑、打包及应用
http://bbs.gfan.com/android-1744646-1-1.html

【第四讲】ROM的提取和RFS文件的解包打包
http://bbs.gfan.com/android-1822477-1-1.html

【第五讲】如何制作或定制Odin刷机包ROM
http://bbs.gfan.com/android-1849329-1-1.html

【第六讲】如何制作刷机补丁和CWM刷机包ROM
http://bbs.gfan.com/android-1896274-1-1.html


------------------------------------------------

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

你们可能都注意到,在I897论坛,缺少如何定制ROM的教程和资料。我5月初加入I897论坛后,想在这方面做点事情。过去为Motorola XT502做过一些ROM(安卓论坛,用户名:SunnyOK),现在打算在三星I897上再实践一次。于是在其它论坛查找资料,在I897手机上进行改造和实践,获得成功。于6月5日发布第一个定制ROM,积累了一些经验。在这一讲里,把我个人定制ROM的过程介绍给大家。为有志于定制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文件的解包

这个步骤及其操作在第四讲里已经详细讲过了,这里不再重复。
(ROM的提取和RFS文件的解包打包
http://bbs.gfan.com/android-1822477-1-1.html

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必须同时加或同时不加。千万不要只加其中的一个。
5)本文适合于定制各种I897 ROM。


主要参考


【第三讲】APK应用程序的解包、修改、编辑、打包及应用
http://bbs.gfan.com/android-1744646-1-1.html

【第四讲】ROM的提取和RFS文件的解包打包
http://bbs.gfan.com/android-1822477-1-1.html

介绍PIT文件(分区信息表)- 与刷机友分享
http://bbs.gfan.com/android-1568237-1-1.html

三星I5800 tar定制教程
http://bbs.aeapk.com/thread-917-1-1.html

修改 i9000 rom 内容的方法
http://www.littledai.com/tag/rfs

制作三星I9088 刷机ROM的实践
http://blog.csdn.net/sharetop/archive/2010/12/22/6092041.aspx

i897刷机原理分析,进阶必读
http://bbs.gfan.com/android-351007-1-1.html

Cygwin
http://www.cygwin.com/

你可能感兴趣的:(windows,linux,测试,手机,三星,Motorola)