自动移植

此教程主要介绍的是如何将通过Droid Builder工具将MIUI的ROM移植到Incredible上面。所用的蓝本ROM为G7(即Desire)的MIUI官方ROM。本教程所介绍的内容及移植步骤也适用于其他机型的移植,只是,所需要的文件会有些不同。

自动移植原理

说明:此部分介绍原理,不涉及具体过程,不要求了解原理的可以略过,照样移植。

移植ROM一般包含了几个特定的步骤,Incredible的手动移植可以参见:http://www.doocy.com/entry/port_miui_to_incredible,其它机型请从网上搜索。基本包括:

  1. deodex
    这个步骤并不一定需要,但如果要改应用程序的话,此步骤必需
  2. 修改或替换boot.img
    一般机型都有配套的boot.img,一般都需要替换
  3. 替换机型驱动及配置文件
    针对不同的机型,需要删掉原机型的一些驱动和配置文件,再添加目标机型的
  4. 针对机型修改部分文件
    这步也不一定需要,针对Incredible,一般需要修改MediaProvider.apk,services.jar,framework-res.apk,这几个文件都不是可以直接替换的,因为每次MIUI更新,这几个文件都有可能改动。所以,需要将要改动的地方合并到文件中,而不是整个文件直接替换。
  5. 修改updater-script及build.prop
    这两个文件是必需要要改的,updater-script有机型检测,不改刷不了机,build.prop则有针对性的机型配置需要修改(不会影响刷机,但有些功能可能就不正常)

分析以上几个步骤,可以发现:

  • #1有专用的工具可以实现。Droid Builder也集成了这个功能
  • #2, #3这个很简单,只是删除、替换文件。通过系统的文件操作很容易实现,Droid Builder可以帮你做到。
  • #4有点复杂,需要通过工具解开apk、jar包,再进行替换,再重新打包,过程挺复杂的,一不小心可能就会弄错。Droid Builder提供了一个方式,自动实现这个过程。
  • #5这个手动做起来也不复杂,两个都是文本文件,只要对比文件,对着改就行了,但也容易漏掉。Droid Builder也提供了一个相对简单的自动修改的办法。

好像还没说到正题?其实主要是想通过介绍过程来让希望了解具体实现的人知道一下原理。

准备工作

开始移植之前,我们需要准备好移植的工具及素材,要准备的东西有:

  1. 准备Droid Builder的环境

    Droid Builder是基于.Net 3.5的,请至少安装.Net 3.5或以上版本。如果系统是Windows 7,系统应该已自带,不需要安装。
    另外,由于Droid Builder会调用一些其他的工具(在tools目录下面),而这些工具是基于Java的,所以,还需要安装Java的环境。
  2. 下载Droid Builder

    请到http://droidbuilder.codeplex.com/releases下载最新的版本。下载后解压就可以了,比如解压到X:\\DroidBuilder目录中。
  3. 配置Droid Builder

    打开DroidBuilder目录,用文本编辑器打开DroidBuilder.exe.config,可以看到:
       1:  <?xml version="1.0"?> 
       2:  <configuration> 
       3:    <appSettings> 
       4:      <add key="ROMS_DIR" value="X:\\roms"/> 
       5:      <add key="TEMP_DIR" value=".\temp"/> 
       6:      <add key="PATCH_DIR" value=".\patches"/> 
       7:      <!-- 
       8:      DO NOT CHANGE THE TOOLS_DIR, 
       9:      CHANGE TOOLS DIRECTORY NOT SUPPORTTED YET!! 
      10:      --> 
      11:      <add key="TOOLS_DIR" value=".\tools"/> 
      12:    </appSettings> 
      13:  </configuration>
    第4行,ROMS_DIR的值要改一下,改成你常用的ROM移植的目录。这样,每次打开Droid Builder时,都会列出来这个目录下面所有的ROM(文件夹)。以下所指的ROMS目录,指的就是改了后的X:\\roms目录。
  4. 蓝本ROM

    如果是移植Incredible的MIUI ROM,当然是用每周五的MIUI官方G7的ROM了,下载过来是一个zip包,解压到ROMS目录当中,注意,不是直接解压到ROMS目录下面,解压后应该类似于:X:\\roms\INC-MIUI-0408\。
  5. 制作自动移植用的补丁包

    自动移植用的补丁包为一个zip压缩包,里面包含了要替换的文件,要删除的文件列表(根目录下file.delete文件),及要合并的文件(以.patch结尾,如果build.prop.patch就是会与build.prop合并的)。补丁包的制作会另外介绍。Incredible的机友,可以直接用我制作好的补丁包。 将制作/下载的补丁包放到Droid Builder的目录下面的patches目录里(注意,不是放ROMS文件夹),最后的路径应该像这样:X:\\DroidBuilder\patches\INC-MIUI-PATCH_2.3.zip

移植步骤

说是自动移植,所以,也没什么步骤可言,说到底就是点三个按钮而已。

  1. 打开Droid Builder,看到如下界面(后续版本可能会有变化):
    image
  2. 从ROM下拉框中选择刚刚解压的ROM,界面会发生一些变化:
    选择的ROM后面,出现了Patch选择框,选择框后面的按钮是灰色的,不能按。主界面列出了ROM里面的文件,目前,列出来的文件没有多大作用,可以不用管。
    image
  3. 点击Deodex按钮开始Deodex过程。点击后,会提示你进行备份,点“是”就可以了。这个过程会比较长,如果机器配置不是很好的话,可能要十几分钟。运行时,状态栏(Welcome to Droid Builder!那儿)会显示正在进行中的文件,完成后,会显示“Done!”。以后会改进提示,先用着。
    image
  4. Oeodex完成后,在Patch列表里面选择补丁包。选择了补丁包后,点击"Apply"按钮,这个过程一般比较快,一分钟不到,完成后,状态栏也会显示“Done!”。
    image
  5. 到这儿移植就算完成了,可以打开ROM目录验证一下。但要刷机,还要打包,所以,接着点击最前面的"Build"按钮。就会开始生成ROM的过程,需要大概一两分钟。完成后,会在状态栏显示生成的ROM的名字。
  6. 到ROMS目录下面,打到生成的ROM,拷贝到手机上就可以刷机体验了。

反馈及捐赠

如果在使用Droid Builder的过程当中,有任何问题或建议,请到反馈区提供反馈。如果您觉得发反馈麻烦,也可以给我发邮件:chimeny#163.com。此邮件同时也是我的支付宝帐号,如果您觉得Droid Builder对您有帮助,可以选择通过捐赠来支持我的工作,捐赠完全属于自愿。

另外,Droid Builder是开源的,如果你也是一个.Net的开发人员,也同时喜欢Droid Builder,也可以参与到开发中来,或者你发现代码中的问题,也可以告诉我,谢谢。

Last edited May 6, 2011 at 1:26 PM by JerryJiang, version 6

Comments

No comments yet.