分享

三日得一贴!!手把手教你制作自己的update.zip包!!!

 AAaaGGggaanngg 2016-06-23
本帖最后由 IamONLYisME 于 2011-8-26 19:35 编辑

首先讲一下什么事update.zip包,update.zip包的用处,就像他的名字“升级包”,利用这个包,你可以完成升级系统的目的,所谓升级系统,不过是把原系统文件替换成最新的系统文件,但如果我们包里放的不是最新的系统文件,而是我们美化过的文件,那么我们就完成了美化系统的任务了,或者你放进去的是新内核,你就会成功升级内核了。

关于为什么不用RE直接替换的问题:大家也许遇到过这种情况,在你改字体或改farmwork-res.apk时,不等你把想要的字体复制进去,手机就会莫名重启,造成手机不开机,或由于权限问题开机后显示的全是“口口口”。出这的原因就是系统正在使用字体文件,你去修改,出于保护系统完整性的原因,手机当然会自动重启,造成手机遇到种种问题。改字体尚且如此,那么在手机开机情况下改farmwork-res.apk或内核就更困难了!

以我制作字体修复包为例,向大家简单说明update.zip包的组成


包里一般只有两个文件夹,其中system文件夹中存的东西,就是你想要替换到系统里的东西,而META-INF里的东西,是脚本程序。
先看system文件夹,你要确保它和手机system文件夹的结构完全相同,我这里,手机字体文件就在/system/fonts/里,所以我在system文件夹里建立了个fonts文件夹,并把字体拖到了这里



就象这样,如果你想改farmwork-res.apk的话,你可以在system文件夹里建一个farmwork文件夹,然后把farmwork-res.apk拖进去,然后就OK了!

现在我们来看脚本的制作



上边的update-binary是范本,是用来告诉手机要拿脚本里的命令怎么办的,比如,假如脚本里有个“set_perm”,手机看到后,会去update-binary里查查这是什么意思,他一看范本里写着这是设置权限,他才会明白“set_perm”是设置权限的意思!一般情况下update-binary是通用的,所以你不用理会它!

下边的updater-script就是脚本文件,你的任务就是修改或编一个它。推荐你用Windows自带的写字板程序打开它。


大家可以看到很多代码,不要慌,我慢慢跟你解释

assert(getprop('ro.product.device') == 'GT-S5830' ||
       getprop('ro.build.product') == 'GT-S5830'  ||
       getprop('ro.product.device') == 'GT-S5570' ||
       getprop('ro.build.product') == 'GT-S5570'  ||
       getprop('ro.product.device') == 'GT-S5670' ||
       getprop('ro.product.product') == 'GT-S5670'||
       getprop('ro.product.device') == 'GT-B7510' ||
       getprop('ro.product.product') == 'GT-B7510'
       );

这段是告诉手机,可以用这个升级包的有那些机型,通常情况下,不用理会!

show_progress(0.100000, 0);
show_progress(0.500000, 0);

这个是显示进度条状态的,可以告诉使用者升级到了哪一步。

# format('MTD', 'system');
#mount('MTD', 'system', '/system');

第一行是格式化system文件夹,
第二行是挂载system文件夹。
解释:第一行的格式化system文件夹并不会真把system文件夹里的东西都删除,因为system文件夹还没有挂载!就比如你手机里没有SD卡,而你却下令手机格式化SD卡一样!这两步,理论上你也用不到!
注意:慎用# format('MTD', 'system');命令!弄不好就只能刷机了!

下面一行是
package_extract_dir('system', '/system');
意思是把升级包中system文件夹的文件复制到手机system文件中,并替换原文件。

好了到这里为止,上边的命令你都不用管!!!

下面是你的活了:

set_perm(0, 0, 04644, '/system/fonts/DroidSans.ttf');
set_perm(0, 0, 04644, '/system/fonts/DroidSans-Bold.ttf');
set_perm(0, 0, 04644, '/system/fonts/DroidSansFallback.ttf');

大家可以看到,我连用了三个set_perm命令,如果认真的读者应该已经看出我是在为我刚刚复制过去的文件设置权限!
如果你改的是farmwork-res.apk的话,你的命令应该是
set_perm(0, 0, 04644, '/system/farmwork/farmwork-res.apk');

注意,这里大小写一定要弄清,因为在linux里,systemSystem不是同一个文件夹!farmwork-res.apkFarmwork-res.apk不是同一个文件!

细心的同学肯定注意到了命令中间有几个数字“0, 0, 04644,”,他们是干什么用的哪?
'0, 0, 04'是说明下面要为一个文件设立权限,而644就是我们赋予这个文件的权限!
我们在以前改字体的时候应该看到过这样的话:

设置权限,第一横行前两个打勾,第二横行勾第一个,第三横行勾第一个

而644,就是代表上面这句话的意思!!!

如果是我想全部打勾那?那你就把644换成777就OK了!

如果是第一横行全打勾,第二横行全打勾,第三横行勾第一个和第三个那?那就是775!

剩下的大家可以自己体会了,其实大部分文件的属性都是644的!

最后,大家看到还有一个代码

#unmount('/system');

这个的意思是卸载system分区,就相当于电脑上把U盘安全弹出,一般不用理会。

到这里,脚本就算是编好了!赶快保存到update\META-INF\com\google\android文件夹中吧!

现在,到这里,选择这两个文件夹,注意,是这两个文件夹


右键




选择添加到压缩文件



注意格式要是zip格式,文件名就叫update.zip好了,然后别的什么都不要管,直接确定!等待片刻,你就会看到update.zip了!

很不幸的告诉你,你现在所拥有的update.zip并不能使用,放到手机里用会报错,因为你还没对他签名那!!!

签名要有签名工具,我跑到XDA上搞到一个,待会发附件,可是,光有签名工具是不能用的,因为你还要有Java环境,很简单,到http://www./zh_CN/
下载安装就行了!

现在教你签名,首先把签名工具解压出来,并把update.zip和他们放到一起



然后运行'xda签名.bat

'


输入1,然后回车,然后等待吧,签名完成后去xda文件夹,签好名的文件就在那呐



update_xda.zip就是签好名的文件,这个文件你就可以直接复制到SD卡使用了!!!

呼呼,累死我了。。。
现在大家知道替换文件的方法了,那么要怎么删除文件那?
请看二楼分解!
关于附件下载,请看三楼!

最后,不看4楼后悔死你!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多