大家好,又见面了,我是你们的朋友全栈君。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
一切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/
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/162819.html原文链接:https://javaforall.cn