有部分朋友在制作ROM过程中遇到了 解包失败、解包出来的文件为空或直接不识别ROM等等情况,很多人以为是ROM制作工具的问题,其实不是,这些问题可以归纳为一种问题,那就是ROM卡刷包命名不规范导致的。
列举几种正确的ROM格式:
第一种、常规格式卡刷包:拥有system文件夹、META-INF刷机脚本和内核boot.img,data或其他文件夹不用管(注:华为机型可能会有cust文件夹)
第二种、img格式卡刷包:拥有系统system.img,内核boot.img和META-INF刷机脚本,firmware-update文件夹是官方底层问题,其他文件夹不用管
第三种、new.dat格式卡刷包:拥有系统system.new.dat、system.patch.dat(不重要)、system.transfer.list、内核boot.img和META-INF刷机脚本,其他文件夹不用管
以上三种是最常见的ROM卡刷包格式,如果非以上格式那就说明rom结构命名被开发者自定义了,被自定义命名的ROM是没办法被ROM制作工具识别的,因此我们需要通过手动修改来解决ROM不规范导致解包失败的问题。
解决方法:
在处理之前我们首先要判断ROM是以什么方式刷入的,用压缩软件打开卡刷包,找到META-INF\com\google\android\updater-script,然后用“内部查看器”打开(注:演示软件为好压)
然后从刷机脚本里查看是否存在以下情况
这种是第一种格式的卡刷包,判断是否为常规ROM的脚本条件:
首先里面有很多条如上图所示脚本,有package_extract_dir("xxx", "/system");xxx则表示可自定义
确定之后,将ROM包里xxx对应的文件修改为system,改好后通过ROM制作工具修改,修改好ROM之后再把命名改回去就行。内核boot.img同理
这种是第二种格式的卡刷包,判断是否为img形式的脚本条件:
package_extract_file("xxx", "/dev/block/分区无视/system");xxx则表示可自定义
确定之后,将ROM包里xxx对应的文件修改为system.img,改好后通过ROM制作工具修改,修改好ROM之后再把命名改回去就行。内核boot.img同理
这种是第三种格式的卡刷包,判断是否为new.dat形式的脚本条件:
block_image_update("/dev/block/分区无视/system",package_extract_file("system.transfer.list"), "xxx", "system.patch.dat");xxx则表示可自定义
确定之后,将ROM包里xxx对应的文件修改为system.new.dat,改好后通过ROM制作工具修改,修改好ROM之后再把命名改回去就行。内核boot.img同理
以上三种情况基本上已经覆盖绝大多数ROM,大家要学会灵活运用判断,在实际操作中可能遇到的情况和这个不大一样,但是万变不离其宗,都可以用这个方法解决。如果通过此方法解决不了,那就说明ROM已经加密或是问题ROM,遇到这种情况就换个ROM吧。
ROM制作工具(www.rom.cn)
下载地址http://tfile.7to.cn/romtool/romtools_setup_official.exe
官方交流群:346864096