如何制作刷机升级包和rom的压缩包.docx

上传人:b****6 文档编号:3076410 上传时间:2022-11-17 格式:DOCX 页数:7 大小:19.16KB
下载 相关 举报
如何制作刷机升级包和rom的压缩包.docx_第1页
第1页 / 共7页
如何制作刷机升级包和rom的压缩包.docx_第2页
第2页 / 共7页
如何制作刷机升级包和rom的压缩包.docx_第3页
第3页 / 共7页
如何制作刷机升级包和rom的压缩包.docx_第4页
第4页 / 共7页
如何制作刷机升级包和rom的压缩包.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

如何制作刷机升级包和rom的压缩包.docx

《如何制作刷机升级包和rom的压缩包.docx》由会员分享,可在线阅读,更多相关《如何制作刷机升级包和rom的压缩包.docx(7页珍藏版)》请在冰豆网上搜索。

如何制作刷机升级包和rom的压缩包.docx

如何制作刷机升级包和rom的压缩包

如何制作刷机补丁和CWM刷机包ROM

在第一讲和第二讲中介绍过两种刷机方法:

用Odin刷机程序在“挖煤”模式下刷TAR刷机包(线刷)和在Recovery(恢复)模式下刷zip刷机包(卡刷)。

在第五讲中教给大家如何制作或定制Odin刷机包ROM(TAR包)。

在这一讲中,我们来介绍一下制作卡刷刷机包的方法。

在第二讲里的开头讲过:

“卡刷”或CWM刷机就是用手机里安装的ClockworkMod程序来在Recovery模式下进行刷机。

刷机包为单个签名的zip压缩包。

在刷机包中有一个脚本文件,里面有一系列命令,规定好把不同的文件内容复制的手机的指定分区,从而达到刷机目的。

那么怎样来制备这种zip刷机包呢?

那个脚本文件又是什么呢?

本讲的内容包括两个部分:

1.制作刷机补丁

2.制作完整刷机包ROM

通常,两者都称作刷机包。

在本文中,我们说“刷机补丁”是指ROM的补充内容。

例如:

在英文底包上刷中文文件,或者替换字库,替换主题或桌面等等。

它们不构成可使手机运行的全部文件,它们仅仅是ROM的一部分。

以前,常用update.zip来传播。

当我们说“完整刷机包ROM”时,我们是特指一个独立完整的ROM,包含一个刷ROM所具有的所有必要刷机元素。

1.制作刷机补丁

我们都知道,ROM发布者通常发布刷机补丁来升级ROM。

ROM发布后,需要增加、刷新、更改ROM内容或功能时,没有必要重新安装整个ROM。

只要把需要更新的部分写成一个“刷机补丁”,刷进手机与已有的系统合并就行了。

在介绍如何制作刷机补丁之前,先让我们来看一个实例:

用刷机补丁来更新两个主题文件,把TouchWiz30Launcher.apk和SystemUI.apk复制进手机的/system/app目录。

刷机包补丁文件名为:

CWM_Update.zip。

用WinRAR打开刷机补丁文件CWM_Update.zip,看到有两个目录:

META-INF刷机脚本文件和签名

system要复制的补丁内容

继续打开/system就看到文件夹/app,再下去在/app下看到要复制的两个主题文件TouchWiz30Launcher.apk和SystemUI.apk(见截图)。

从/system目录开始,所有的目录结构和akp文件放置的位置都必须与手机里的内容一一对应。

然后进入META-INF目录(见截图),我们看到有三个文件和一个字文件夹com。

这三个文件是签名文件,是签名操作产生的。

在Android手机里,所有要刷入手机或在手机里运行的程序都必须经过签名。

从com继续向下走,在/META-INF/com/google/android目录下看到有两个文件:

update-binary刷机包用的二进制文件

updater-script刷机包脚本文件

这个刷机包脚本文件updater-script规定了要刷什么,刷到哪和怎样刷。

从这个具体的例子,我们可以总结制作刷机补丁的步骤如下:

1)创建一个工作目录:

先假定它是CWM_Update。

2)在CWM_Update下产生两个子文件夹:

META-INF和system

CWM_Update/META-INF

CWM_Update/system

3)再在CWM_Update/system下产生下一级子文件夹,存放补丁的内容。

目录结构和文件放置要与手机里的文件结构完全一致。

apk应用程序放在/app下,字库放在/fonts下,主题放在/framework下,触摸键定义放在/usr/keylayout下,库文件放在/lib下,等等。

4)在CWM_Update/META-INF下再产生

/META-INF/com/google/android

到其它的刷机包里去把现成的update-binary和updater-script复制进/android目录。

我的做法是把META-INF的整个目录内容都一起复制过了,里面已经有了三个签名文件和刷机包用的二进制文件update-binary,一次搞定,省事。

不要碰再它们了。

5)现在来编辑脚本文件updater-script,它规定了要复制什么、怎么复制、复制到什么地方。

用文本编辑器打开updater-script,看到内容如下:

mount("MTD","system","/system");

ui_print("Updatingsystem...");

show_progress(0.100000,0);

set_progress(1.000000);

package_extract_dir("system","/system");

show_progress(0.900000,10);

ui_print("Updatecomplete!

");

unmount("/system");

对脚本文件updater-script内容解释如下:

mount("MTD","system","/system");

挂载MTD、system、/system(system是CWM_Update.zip里的/system文件夹,/system是手机空间上的文件夹)

ui_print("Updatingsystem...");

手机屏幕显示提示信息Updatingsystem...

show_progress(0.100000,0);

是控制进度条状态(进度条当操作完成后前进10%)

set_progress(1.000000);

把进度条手动设置到100%

package_extract_dir("system","/system");

将CWM_Update.zip的system文件夹下的内容复制到手机的/system

show_progress(0.900000,10);

同上,是控制进度条状态(进度条当操作完成后前进90%)

ui_print("Updatecomplete!

");

手机屏幕显示提示信息Updatecomplete!

unmount("/system");

卸载手机/system文件系统,刷机到此结束。

注意:

在unmount之后必须有一个空行!

这是规定。

6)在CWM_Update目录下,把META-INF和system两个目录打包成一个压缩文件CWM_Update.zip。

7)最后,用签名程序Auto-Sign对CWM_Update.zip进行签名。

制作过程结束,刷机补丁就做好了。

注释:

如果你打算制作一个刷机补丁的话,原样使用这个脚本文件就行了,不用做任何修改。

在实际制作时,可以直接从已有的刷机补丁中把META-INF目录完全复制过来,连签名过程都省了。

但是注意检查一下updater-script的内容,以防造成错误后果!

2.制作完整刷机包ROM

有了上面如何制作刷机补丁做基础,你也不难制作出一个完整的“卡刷”刷机包ROM。

与制作Odin刷机包相比,这里没有复杂的RFS解包和打包过程,不需要Linux环境,所有操作在Windows下就搞定了。

编辑/system目录下的内容直截了当,删减和添加内容都方便。

我们还是从一个实例出发,考察ROM结构和文件的放置,然后归纳制作步骤,介绍制作技巧。

打开我6月22日的“发布定制I8972.3.4XXJVPROM升级中文版本”()中的第二个卡刷ROMJVP2.3.4_SunnyOK_CN-2.zip,截图如下:

META-INF目录在上一节介绍过了,存放的是签名文件和重要的刷机脚本文件updater-script。

system目录下的内容就是你手机里/system目录下的内容,一模一样。

与上一节相比,这里多了一个目录updates。

它是干什么用的呢?

打开就一目了然了。

updates目录里面有三个文件:

modem.bin,zImage和redbend_ua。

大家对modem.bin和zImage不陌生吧?

它们分别是基带和内核文件。

另一个文件redbend_ua是刷机用的,不用管它,但是,不能删掉。

最后一个文件installbusybox也不要动它。

现在再回过头来看看刷机脚本文件updater-script。

由于现在要刷进手机的内容多了,所以updater-script的内容也就更复杂了。

完整的脚本文件给出如下:

show_progress(0.200000,10);

set_perm(0,0,0777,"/sbin/mount");

run_program("/sbin/mount","/system");

set_perm(0,0,0777,"/sbin/mount");

run_program("/sbin/mount","/dev/block/stl10","/dbdata");

set_perm(0,0,0777,"/sbin/mount");

run_program("/sbin/mount","CACHE:

");

set_perm(0,0,0777,"/sbin/mount");

run_program("/sbin/mount","/dev/block/mmcblk0p2","/data");

delete_recursive("/system");

delete_recursive("/dbdata");

delete_recursive("/cache");

delete_recursive("/data/dalvik-cache");

delete_recursive("/data");

mount("MTD","system","/system");

package_extract_dir("system","/system");

package_extract_dir("updates","/tmp");

show_progress(0.200000,50);

symlink("toolbox","/system/bin/cat");

symlink("toolbox","/system/bin/chmod");

symlink("toolbox","/system/bin/chown");

symlink("toolbox","/system/bin/cmp");

symlink("toolbox","/system/bin/date");

symlink("toolbox","/system/bin/dd");

symlink("toolbox","/system/bin/df");

symlink("toolbox","/system/bin/dmesg");

symlink("toolbox","/system/bin/getevent");

symlink("toolbox","/system/bin/getprop");

symlink("toolbox","/system/bin/hd");

symlink("toolbox","/system/bin/id");

symlink("toolbox","/system/bin/ifconfig");

symlink("toolbox","/system/bin/iftop");

symlink("toolbox","/system/bin/insmod");

symlink("toolbox","/system/bin/ioctl");

symlink("toolbox","/system/bin/ionice");

symlink("toolbox","/system/bin/kill");

symlin

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 节日庆典

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1