Windows mobile

极详细的让未移植过的新手也能一次过成功移植ROM的教程!

作者:biksen     时间:2010-10-24    查看:669 次    评论:0 条

       由于网站上的各类教程较为零散,现归纳各教程并结合自己经验,总结出rom移植的基本流程。
       本教程是基于台版HTC  TOUCH(NTC S1)的刷机镜像文件uploader.img移植而得出的。其实国内外、不同品牌间的机子,只要是操作系统为windows mobile的,分解rom后出来的结构大致相同。故此教程也可供国外品牌机rom定制及移植作参考。
       简明教程难免有不严谨的地方,故在此鼓励各初学rom移植的朋友们,多深入钻研,最好做到能明白rom中各大部分的含义,使移植得更灵活。
        参考工具:
        1、对应自己机型的rom kitchen(即厨房,不同的厨房功能不尽相同,然而基本功能都一样:分解/合成rom,只是分解得有多深罢了。我在用的这个是NTC_HTC S1厨房,下载地址:http://www.mobifocus.net/redirect.aspx?url=http%3a%2f%2fwww.rayfile.com%2ffiles%2fad1aecfa-9535-11de-853d-0014221f469f%2f ,可供大家参考。本教程也以此kitchen为示例,向大家讲述移植过程)。
        2、xipporterex22-37(一个XIP移植工具,其实还有别的功能的。内有22-37共15个工具,而我用到的只有32。该工具在上面的NTC_HTC S1厨房中有包含)。
        3、Beyond Compare 3(一个文件比较工具,在移植基本组件及排查故障时经常用到。)

          所谓“移植”,就是使别的rom能够结合你机子的硬件而在你的机子里运行,的这么一个结合过程。不同的机型有不同的硬件或驱动,若直接拿取作自己的系统,会刷成白屏甚至变砖的。那么,移植工作往往需要两个rom,就是你机子自带的rom,和你想要被移植的目标的rom(以下简称“目标rom”)。当然,你也可使用“模板”来移植,这一点我们稍后再作了解。

          总体流程:分解rom——移植XIP——移植SYS——移植OEM——定制OEM(可选)——修改initflash.dat——使用mybuildOS开始定制——合成rom

          下面简要说一下各步骤:
          分解rom:需要分解两个rom(是哪两个rom呢?上面有说明)。不同品牌机型有不同的刷机rom,比如有*.bin格式、*.os.nb格式、*.nbh格式和*.img格式等等,然而要注意的是rom的压缩方式。压缩方式分两种:XPR和LZX。不同格式需要的分解工具是不同的。像LZX压缩方式,代表就是乐讯K800。XPR的机型比较多,如睿峰、睿智、金鹏M9I等我们都熟知的高仿机型。要分解rom,请明确你要分解的rom的压缩方式。除了查阅相关资料外,这里倒有一个方法:尝试把目标rom放在你的kitchen工具里分解以下,看分解后得不到OEM文件夹吗?分解出的SYS文件夹内只有那么零星几个文件吗?如果两个问题答案都为“是”,那么就证明,这个rom的压缩方式和你的自带rom不同了。此时你需要用针对此压缩格式的kitchen来分解了。
          移植XIP:XIP就是机子的核心信息了。移植XIP用到的工具,我向大家推荐的是xipporterex22-37。这是一个一键式移植工具。使用方法简单,可在网上找到相关资料。我是用22-37中的32的。通过此软件移植出来的新XIP:xip_out.bin,可以根据你的kitchen的操作提示植入。
          刚才我们说的,分解rom,分解出来后可以得出两个文件:SYS和OEM(有的kitchen工具只分解出DUMP文件夹,这时怎么办呢?请参考文章末尾的常见疑难及参考解答)。
          移植SYS:移植SYS,就是保留你原机自带ROM分解出来的SYS文件夹下的.ROM文件夹、.VM文件夹、和Metadata文件夹下的packages.cif及packages.sof文件。其他的删除。然后把目标ROM分解出的SYS文件夹下的除了.ROM文件夹、.VM文件夹和Metadata文件夹外的所有文件复制到自带ROM的SYS文件夹中去,再把目标ROM中SYS\Metadata文件夹中的除了packages.cif及packages.sof文件之外的文件复制到自带ROM的SYS\Metadata下。这样进行文件替换即可。
          移植OEM:通常,分解出的OEM文件中,虽然也有不少的文件,但可找到OEMDrivers、OEM_DPI_96、OEM_Lang_0804、OEMMISC这四个文件夹和一张OEM.cer的证书。证书几乎是通用的,大可不必替换。而上面的这4个文件夹OEMDrivers、OEM_DPI_96、OEM_Lang_0804和OEMMISC,对于哪个保留哪个替换,网上有几种说法,而经验认为,可只保留并必需保留原机的OEMDrivers(当然,如果你移植的不是rom,而是“模板”,那么保留的东西将会是不同的,这一点我们在文章末尾的常见疑难及参考解答中再作说明)。其他的可用目标rom的替换。为保证成功,请参照上面移植SYS的方法,把文件删了再进行复制,而不要直接复制。这两种替换方式是不同的。
定制OEM包:定制OEM包,可把你喜欢的软件捆绑进你的ROM内,成为机子自带软件,但随着自带软件增多,会影响机子的运行速度。而定制OEM包也并不是移植ROM必需的步骤,故在此我们不作说明。
          修改initflash.dat:修改initflash.dat文件,其实就是修改开始菜单的快捷方式。initflash.dat文件一般放在OEM\OEM_Lang_0804下。打开时请用相关软件,把编码译为Unicode码。这里提供给各位的参考软件为:Unicode和Notepad2。各位可通过查看此文件,看看程序是如何建立快捷方式的,从而作出修改。而在ROM移植中,如果你的自带rom为纯净ROM ,并且不打算自行(自行,指的是,不通过mybuildOS来定制)定制OEM包,那么这一步可忽略了。如果你的自带ROM不是纯净ROM的话,关于提纯,我们在文章末尾再作讨论。
          使用mybuildOS开始定制:mybuildOS程序能根据你修改后的SYS和OEM文件夹,制造出一个DUMP文件夹,从而提供给工具作合成ROM素材使用。打开mybuildOS程序(通常第一次运行,会提示cannot find file config.int,这并不影响正常使用,因config.int文件,是使用mybuildOS点击保存后,生成的一个文件,其用意只是方便你在下次使用mybuildOS时,不必再做相关设置而已)。我们可以看到的分为两种情况:1、空白的,什么都没有。这种情况是因为缺少option.xml文件,通常在ROM-ROM移植时出现;2、里面有软件可选。这种情况通常在移植模板时出现。针对第二种情况,我们在文章末尾再做说明。而第一种情况,虽然界面空白,然而大可不必理会,只需要直接按下界面上的运行按钮进行定制就可以了,而这样定制的意思是,默认你已选择了跟随目标ROM移植过来的所有软件。
          使用mybuildOS,经常会出现问题的。而常见的问题有以下两种:
          1、文件重复(already exists):通常为OEM文件夹中某文件与SYS文件夹中某同名文件相同(所谓相同,指的不仅仅是名字相同),可在界面下方找到该问题文件所在目录。删除其一即可。而我建议各位,删除OEM中的为佳(如问题文件在OEMDrivers目录中,则删除SYS中的最好,强烈建议各位,不要改动OEMDrivers中的文件)。这里推荐大家使用文件比较器Beyond Compare 3。比较前请先备份。细心比较不要删错了。尤其是不要看见凡是同名的都删掉。要具体分析一下。
          2、initflash.dat文件缺失(String reference not set a instance of a String.Parameter name:s)。该问题是由于OEM_Lang_0804文件夹下的initflash.dat缺失所致。
          此外还有别的问题,不常出现,然而大家可另阅资料。这里提供一个网址:http://www.592cx.com/viewthread.php?tid=811&highlight=mybuildOS 内里有些许别的问题的解决方案。
          合成rom:通过mybuildOS定制后,可进行ROM合成。值得注意的是,合成的是经改造后的自带ROM,这一点很多人初学的朋友是搞不清楚的,贯穿ROM移植的基本原理,就是拿新的东西去更新自己。合成后改名,进行刷机即可。
          说到这里,系统移植算是结束了。


          常见疑难及参考解答:
          Q:我使用的是“模板”来进行移植,该怎么办呢?
          A:模板的移植与ROM-ROM移植存在着不同的地方。我们以“闻风模板”(参考网址:http://www.592cx.com/thread-4748-1-1.html)为例,除了按照该模板提供的移植教程,复制“必需的OEM资源”,选择对应机型屏幕的SYS文件等等之外,OEM包中应保留OEMDrivers、OEM_DPI_96、OEM_Lang_0804和OEMMISC文件。这四个文件当中会有与模板中某文件相同的问题,从而通过不了mybuildOS.请参照上面提及到的方法解决。
          Q:如何提纯ROM?
          A:很多机子自带的ROM和网友们提供的ROM,都会有自带软件。如何清理?这里需要用到我们上面提及到的文件比较器Beyond Compare 3。首先我们在网上找一个纯净的ROM(尽管不是同机型的),分解以后,再和我们机子自带ROM进行比较,看看多了哪些文件。我的经验认为,机子原厂ROM的自带软件,多数或全部都可在OEMMISC文件夹中找到。比较时可重点比较这个文件夹中的内容。
          Q:我的kitchen tool分解ROM只分解到dump文件夹这一步,并没有得出OEM和SYS文件夹啊,怎么办?
          A:如果你的kitchen tool分解的深度不够,那只能手动去分解dump了。通常我们用到的是PKGtool。当然,还有别的一些工具也很好用,各位可自行搜索。但要注意的是,该ROM的压缩方式必需与解ROM工具的压缩方式一样。这在上面已有提及。
          Q:我想要移植的不仅仅是ROM,更是一个适合我机型的kitchen tools。该怎样做?
          A:要移植kitchen tools,以我在上面提供的NTC_HTC S1厨房为例,需注意一下几点:
                    1、替换boot.bgu。把ROM文件下的boot.bgu文件换成自己机子的。具体我们要应用到XIPTOOLS程序包中的xipport.exe。把自带ROM分解出的xip.bin放到xiptools目录里,运行XIPPort.exe,点击dump xip.bin。在生成的out文件夹里可找到这个文件。
                    2、注意机子ROM的首地址。首地址的确认方式可通过程序osnbtool来解决(说到osnbtool,是分解、合成ROM的最初期也是最核心的一个程序。有兴趣继续深入研究ROM移植的朋友可研究一下osnbtool的命令)。命令行为:
                    osnbtool -sp uploader.img
                    上面的“uploader.img”是一个例子而已。请根据你的机子的ROM来输入ROM名称。
                    此时得到的信息中,可找到start addr,也就是机子的首地址了。记下来。然后在合成ROM程序中,点击鼠标右键,编辑,把相应项更改为刚才找到的首地址即可。
          Q:我的kitchen工具不提供XIP分解,怎么从ROM中分解到XIP呢?
          A:要从ROM中分解出xip.bin文件,手动方法可以利用osnbtool来解决。一下继续以刷机文件为uploader.img 为例。命令行为:
                    osnbtool -sp uploader.img
                    osnbtool -sp uploader.img.bin.nb0
                    osnbtool -d uploader.img.bin.nb0.os.nb 1 xip.bin
                    即可得到xip.bin文件。
          结束语:系统ROM移植方法不同品牌、不同机型大同小异。请各位机友根据自己的实际,来得出自己机型的ROM移植、定制方法。特别感谢VIEL  GLUECK机友,他教给我的好多好多。同时还感谢“吾就爱尝鲜”网站的机友们提供的各类教程给工具。如对本教程有任何疑问或建议,可留言,大家交流一下。谢谢各位。

 

0/0      0/0

相关阅读

极详细的让未移植过的新手也能一次过成功移植ROM的教程!

由于网站上的各类教程较为零散,现归纳各教程并结合自己经验,总结出rom移植的基本流程。 本教程是基于台版HTC TOUCH(NTC S1)的刷机镜像文件uploader.img移植而得出的。其实国内外、不同品牌间...

作者:biksen    时间:2010-10-24

无觅相关文章插件

雁过留声,人过留言

一周热点

@2010 移动资讯焦点站 粤ICP备10098328号