自动移植 - 补丁包介绍

Droid Builder所使用的补丁包是一个zip压缩包,里面包含了移植ROM时所需要的文件。需要注意的是,Droid Builder的补丁包所能做的事情,手动都可以实现,它只是将移植的过程自动化了。所以,如果你要完全重新制作补丁包,你必须有一些ROM移植的基本知识。当然,你也可以基于现有的针对你机型的补丁包进行制作,这样,也可以达到定制ROM的作用,比如,你要替换一些ROM里的图片或者通过自动移植添加一些应用程序到ROM里。

补丁包结构

下面是一张Incredible的MIUI ROM补丁包截图,补丁包的结构和ROM里面的目录结构是基本一样的,只是有些不需要更改的目录在补丁包里面没有。需要特别注意的几个文件用红色的框标注了。除了这几个文件之外,其他的文件都是在移植时可以直接替换到ROM里面去的。注意,不同的机型,这些标注了的文件是不一样的,要单独制作才行,高级编里面会讲到。

image

补丁包运作流程

要了解补丁包的制作,最好的方法还是了解Droid Builder是如何让补丁包工作的,这样,可以更容易的理解。当应用一个补丁包到一个ROM时,Droid Builder会进行如下的步骤:

  1. 将补丁包解压到目标目录
    这步很容易理解,压缩包里的文件会覆盖目标ROM中的文件,如果目标ROM中不存在,就会添加进去。
  2. 找到file.delete文件并进行分析,删掉其中定义的文件
    file.delete里面包含了一些目标目录中不需要的文件路径,Droid Builder会进行分析,然后,逐个将文件删除。
  3. 删掉file.delete
    file.delete处理完后就不需要了,不删掉会包含到ROM里面。
  4. 找到所有*.patch文件并进行文件合并
    *.patch文件都会对应一个ROM中的文件,比如ABC.apk.patch会对应ABC.apk,这两个文件会通过一定的规则进行合并:
    • 如果目标文件是updater-script或build.prop,那会进行文本合并操作
    • 如果目标文件是*.apk或*.jar,那会进行更复杂的操作,具体请见高级编。
  5. 补丁包应用完成

如何验证补丁包应用成功

目前版本的Droid Builder暂时还不支持验证补丁包应用是否成功,当然,如果应用过程中出错了,是会有提示的。如果有可行的方案,验证会在未来版本中添加。

Last edited May 2, 2011 at 4:49 AM by JerryJiang, version 5

Comments

No comments yet.