卡刷包无法通过ROM制作工具修改的解决办法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了卡刷包无法通过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制作工具修改的解决办法的主要内容,如果未能解决你的问题,请参考以下文章

怎么自己修改官方rom包

求助,Recovery刷机出错,无法挂载cache分区

cm101s-2卡刷包如何用hitool刷

我用卡刷的方式刷机,都会出现unknown command是啥情况

手机刷机包制作如何一键制作线刷包?一键制作线刷包详细教程

求移动CM101s 官方固件 卡刷线刷都行