LIANGLIANGLIANG 发表于 2013-7-1 14:41:16

[教程] 【★★★教你如何修改刷机包(system.img)★★★】——基础篇(更新注释)

先声明,我也是小白,所以这里的教程也是我刚刚学会的,再深入的没有还没来得及学,别拍我啊。描述当中仅仅代表我目前的理解,不代表正确的答案,请大家多提意见。

大家下载的各种刷机包,除了底包是sbf格式外,其余都一个样,基本上就是一个nandroid文件夹,里面放着四个文件,boot.img,boot.md5,system.img,system.md5,另外还有一个root文件夹,放着取得root的工具,一个OpenRecovery.apk,系统恢复备份工具,有的包还有一个readme.txt文件。

今天要下手修改的就是nandroid文件夹里面的system.img文件,这个文件其实就是手机上system目录,因为linux分区是挂载在文件夹下面的,事实上,这个文件就是一个分区的镜像,你可以把他理解成windows下的ghost镜像文件。在windows下可以使用一个叫做unyaffs的软件来解包查看,但是我至今没有找到能在windows下打包的方法。因此,需要做下列准备:
1、下载虚拟机软件VMware Workstation7.1.3 build-324285并安装,下面是下载地址官方原版下载:http://u.115.com/file/f29af4b973完美汉化包下载:http://u.115.com/file/f270d85423注册码下载:http://u.115.com/file/f2a3e07308
Ps.虚拟机怎么安装使用请搜索网络教程。当然,你也可以使用其他的虚拟机。甚至可以找一个硬盘挂上安装linux,或者双系统,或者另外找一台机来安装linux。
2、下载一个linux的安装镜像,下面提供红旗linux的6.0 sp3下载链接,当然,你也可以使用其他的linux。http://www.redflag-linux.com/d/iso/1000001036.html

3、在虚拟机里面安装红旗linux 6.0 sp3,完成后如下图所示:

4、下载附件中的解包和打包软件备用。附件:至此,准备工作完成。
下面就用oyang06发布的Froyo 2.2.1 for XT720 v1.3简体中文版Beta2为例,并使用前两天我转帖的stock221v13-bugfix-2来做一个system.img合并修补包的完整操作。相当于windows的原版光盘镜像,手工合并sp补丁一个概念,不过没有那么简便。当然,你得先有这个刷机包和补丁包才行,下载地址:
oyang06发布的Froyo 2.2.1 for XT720 v1.3简体中文版Beta2http://u.115.com/file/f2dddf5e3c#

我转帖的修补包地址:https://github.com/downloads/Mioze7Ae/XT720-patch/stock221v13-bugfix-2_signed.zip
开始操作:
1、用你喜欢的方式,将上述的原始包和刷机包以及附件里面的解包打包工具全部解压后弄到虚拟机的linux里面去,我是用优盘弄进去的。
2、如果你使用红旗linux安装时候的自动分区,那么看到的应该和我图上一样,进入挂载点“本地硬盘(/1)”,你可以把它理解为C盘,新建一个名为“android”的目录(随你高兴,叫什么名字都可以,以下相同),把第一步弄进去的包统统放进去。然后新建一个“open”目录来放置将要解包出来的文件,一个“zip”目录放置将要打包的文件,一个“nandroid”目录来放置打包好的文件。


3、将mkyaffs2image和unyaffs两个文件复制到linux系统的“/bin”下面,然后开始->实用工具->终端程序,打开如图所示的终端并输入如下命令://进入linux系统的bin目录cd /bin//以管理员身份将unyaffs的全新提升至最高sudo chmod 777 unyaffs//以管理员身份将mkyaffs2image的全新提升至最高sudo chmod 777 mkyaffs2image


4、将system.img文件、unyaffs文件拷贝到open目录下,并输入如下命令://进入自己建立的android目录下的open目录cd /android/open//用unyaffs程序对system.img镜像文件进行解包unyaffs system.img这样,就把system.img解包在open目录下了,解包完成后,删除system.img

5、
双击进入解压缩后的stock221v13-bugfix-2_signed目录,然后是META-INF->com->google->android,看到updater-script文件,双击打开,如图:

里面有好多的脚本,这些就是在OpenRecovery里面升级补丁时候所做的事情,其实这个脚本很简单,就是显示文本、挂载文件夹,删除一些文件,并拷贝一些文件。现在只需要看懂两个命令:
delete("/system/bin/fmradioserver1");——意思就是删除/system/bin/fmradioserver1文件set_perm(0,0,0644,"/system/app/Maps.apk"——就是将修补包里面的Maps.apk拷贝到/system/app/目录下,并设置权限。

这时候,打开我们解包出来的修补包,会发现在system目录下有一个文件夹和文件,这些就是将要拷贝/覆盖进原始包的文件。而拷贝的路径和修补包system里面的文件夹目录结构路径一致。所以,接下来就仔细看好每一行脚本,根据脚本命令找到我们解包出来的相应路径,然后该删的删,该拷贝的拷贝。相当于我们手工执行修补包的命令。
6、
到这一步应该已经完成了所有的删除替换工作。接下来该打包了。在zip目录下新建一个system目录,将open目录下修改好的文件和文件夹全部拷贝到新建的system目录下(不要连unyaffs一起拷贝过去),顺便再把mkyaffs2image也拷贝到zip目录下。回到终端,在终端输入如下命令://进入/android/zip/system目录
cd /android/zip/system//将system下的所有文件权限提升至最高sudo chmod –R 777 *//回到上层目录cd ..//使用mkyaffs2image 程序对system目录进行打包,生成的文件名为system.imgmkyaffs2image system system.img
然后就自动打包了,打包完成后,生成一个叫做system.img的文件在当前目录下,如图



7、进入nandroid目录,建立“openrecovery”目录,进入,再建立一个“XT720V13cn_fix2”(注意,这个名字就是将来刷机时候看到的名字,随便你取),进入,然后把原始的boot.img,boot.md5,system.md5拷贝进来,再将最新生成的system.img拷贝进来。且慢,还不完,回到终端,输入如下命令:
//使用md5sum程序对system.img文件进行获取md5校验值的操作
md5sum system.img

这条命令可以得到最新生成的镜像文件的md5校验值,如图:




把得到的值全部整行选择点右键复制,然后双击刚才拷贝进来的system.md5文件,打开之后粘贴替换原来的md5值,保存。
这样,你就完成了最后的工作,生成了一整个可以用来刷机并且整合了fix2补丁的刷机包。

同样的道理,你也可以在解包之后,手工精简、编辑、修改system目录下面的文件或文件夹,前提是你知道你在干嘛。你也可以顺手改掉开机第一、第二画面,至于怎么改,我还没研究^_^

好啦,把整个的nandroid目录拷贝出来,动手刷机吧。

这里因为打的补丁是fix2,所以,默认是不开启app2ext等等特性的,需要取得root权限后,使用RE浏览器进入sd-ext目录建立如下三个目录(如果你的tf卡有ext分区的话),重启生效:
/sd-ext/app/sd-ext/dalvik-cache/sd-ext/app-private

注意:此方法修改出来的刷机包,刷完第一次进入系统的时候,可能root工作会不正常,需要重启一次,如果重启之后还是不行,就得再root一次,再次重启。
因为root权限没有取得的关系,所以第一次进入,可能会提示plus工具箱出错

fdsuf4 发表于 2016-2-1 14:47:07

找了好久,看看这个行不行
页: [1]
查看完整版本: [教程] 【★★★教你如何修改刷机包(system.img)★★★】——基础篇(更新注释)