买手机,上口袋! UC浏览器官网下载 注册| 登录| 导航| 帮助
西安索尔-高端智能手机+实体店 HKC系列皮套火热上市 广州商家QQ群:27893394 锐博数码-成都多普达专卖+专业维修
杜绝病毒,UC浏览器官方下载 杜绝病毒,UCWEB7.3官方下载 杜绝病毒,UC浏览器7.3官方下载 诚信商家优质服务
返回列表 回复 发帖

[HTC TyTN/dopod 838Pro/CHT9000] 听从jacky_q_w的教诲,自己决定自修rom制作的知识

[HTC TyTN/dopod 838Pro/CHT9000] 听从jacky_q_w的教诲,自己决定自修rom制作的知识

在Q老大的群里混迹了几天,看着Q老大那么的热心帮助大家,心里很是感动,所以自己也跃跃欲试的想学习rom的制作,但是我这个人自控力比较低,而且平时时间也比较繁忙,所以在口袋里我留下自己的痕迹,以此鞭策自己去学习!
       听从Q老大的教诲,先决定在口袋潜水一个月看帖子,然后把自己需要的东西我会整理到这个帖子中(大家也可以把自己知道的东西写在这里,先感谢大家了),想来我个把月的时间都会花在这个帖子上,希望大家能够支持我,也希望这个帖子能够对想自学rom制作的朋友们有一些的帮助。


       cht9000最基本的构成:
RAM,相当于电脑的内存。wm5的ram已经和电脑内存的功能基本一致了,就是用来临时放置要处理的数据,不能用来存储。软启动之后会清空。
开始-设置-系统-内存,右边的部分就是显示的ram。
但是ram会有一部分作为缓冲池,用来加速系统,启动的时候把rom部分的数据放到ram里面,这样以后再用到这些数据的时候,速度就很快了。
PS:因为ram的读写速度非常快,是rom和sd卡速度的10倍左右,这也是为什么2003se的速度要比wm5快一样,因为2003系统是用ram当作主内存的
缓冲池的大小是15M左右,因此我们看到程序内存的大小是49.08M左右,而不是标称的64M。
ROM,相当于电脑的硬盘,rom被分为3个区,为了便于理解,我这样比喻一下:
c盘,就是os部分,这一部分被锁定,要写进去内容的话必须刷机,这里面放着windows的文件。文件全部在windows目录下,文件不能被删除,改名等操作。
d盘,Extended ROM部分,这一部分也被锁定,通过软件可以解开。
e盘,主内存部分,用户自由支配部分,开始-设置-系统-内存,左面的部分就是他了。硬起动就是把这一部分清空。

ROM(用来刷机的文件):
一个完整的ROM包括操作系统部分,Radio部分和EXROM部分
ROM版本的标号一般是: 1.23.707.4
一个完整的ROM一般文件名是这样的:HER_DopodAsia_1237074_1060010_WWE_SHIP.exe

Extended ROM
Extended ROM是一个你看不见的ROM分区或者文件夹
你不可以修改它,但是可以通过软件来解开她
每一次硬启动之后都会自动安装里面的软件
里面大多数软件都和你的手机制定商有关系,通常包括系统补丁,彩信设置,视频电话和图片铃声等
Extended ROM的软件和你刷的ROM有直接关系,因为Extended ROM被包含在R完整的ROM里面
一个更高版本的Extended ROM并不意味着它是更好的.




分解nbh文件的工具:ROM tools
ROM tools使用方法
http://bbs.pdafans.com/thread-428475-1-1.html


多平台ROM的PagePool缓冲池大小修改器汉化版(ROM的PP大小修改)如题,原理和功能介绍请参考转贴
[) z+ ?5 e5 V
前阵子Hermes Fan om-by在XDA上发布了他编写的pagepool changer工具,可以不用通过修改十六进制代码就可以很容易更改ROM Pagepool大小。该免费工具可直接修改RUU_signed.nbh或OS.nb的Pagpool,可设置的Pagepool大小范围为1Mb~16Mb。现在网上上发布的ROM大都标明了Pagepool的大小4Mb或8Mb,但什么是Pagepool,希望这篇文章能帮您解开这个惑。
1.什么是pagepool?
首先需要澄清下,实际上并不存在pagepool实体。Pagepool是windows Mobile系统内置的一个内存管理机制。如果ROM中存在pagepool的话,那么系统会预先将读取的数据缓存在Pagepool中,且系统可以释放已加载在pagepool但没有使用代码。而Pagepool大小代表了系统一次可加载多少程序代码在RAM里面。也就是说系统可以加载程序代码大小是受Pagepool大小约束的。有点类似与Win系统中的Page file(页面缓存)一样。但是如果ROM里面没有Pagepool的话,系统将直接加载代码到RAM,这样会提高系统性能。
众所周知,PPC上的存储分为ROM和RAM。平常大家所刷的WM6.0 ROM指的就是这部分ROM。Hermes系列的ROM大小为128Mb。RAM就是程序运行的内存,一般为64Mb。如果增加了Pagepool大小,会相应减少程序用RAM大小。同样,减少pagepool,会释放出相应空间给程序用RAM。

2.Pagepool大小对系统性能的影响?
是否pagepool越大,系统运行速度越高呢?也有网友说,如果将pagepool容量设置为0Mb,即取消pagepool,代码直接被加载到RAM,这样会提高系统运行速度。但个人认为此法不妥当,不可否认没有Pagepool,代码直接加载到RAM的做法会提高系统运行速度,但同样可能会减低系统的稳定性。因为一旦程序出错而又系统无法释放相应代码时,就容易造成死机。
很遗憾,我并没有花时间去制作不同pagepool大小的ROM,并测试其系统运行速度。一是目前手头没时间,二是我觉得我的目的并不是想提供个测试数据供网友参考,重点是想说明pagepool的原理,既然有了免费工具可方便更改,自己动手岂不是更有趣。
不过,POF用SPB Benchmark测试了4Mb~16Mb的Pagepool对WM5.0系统性能的影响。这里借用其测试结果,以供参考。
Pagepool容量
可用程序存储容量
SPB Benchmark值
4Mb    50.68Mb     347.88
6Mb    48.68Mb     346.03
8Mb    46.67Mb     345.95
12Mb   42.66Mb     348.53
16Mb   39.64Mb     351.26
从上面可以看出,从4Mb到16Mb,pagepool容量越大,可用程序存储容量是越小的。且pagepool的大小对系统性能的影响并不是想象中的那么大。(注:SPB Benchmark值越大越好)。但这只是WM5.0下的测试,有兴趣的网友可以测试下WM6.0下的情况。
那么Pagepool大小到底要设置多少比较合适?Dopod官方英文版WM6.0 ROM的Pagepool大小是6Mb。而该官方版ROM的稳定性是无可非议的,至少这个是我用过ROM中最稳定的,所以6Mb不妨可以作为参考。

3.如何查看ROM的pagepool大小?
Pagepool changer工具可直接查看被加载nbh或OS.nb的pagepool大小。如下图是加载RUU_signed.nbh文件后,提示该ROM文件的Pagepool大小是6Mb,以及在内存中的偏移值3addd4。


用NBHtool解开RUU_signed.nbh,点此查看如何用NBHtool解nbh文件,然后用pagepool changer加载该Windows.nb(OS.nb),请注意提示pagepool大小是同样的6Mb,但内存偏移值3abcaa是不一样的。


也可以采用POF介绍的方法,通过用十六进制编辑软件,如winhex,直接开打Windows.nb文件来查看。我推荐网友采用这种方法。因为一味靠傻瓜式的工具反而会降低自己的动手能力。
用winhex加载windows.nb,按Ctrl+F搜索”NKKD8″字符串,如下图:



找到第二个”NKKD8″字符串,


然后下拉,寻找FFFF FFFF FFFF FFFF 9B4F FFFF 64B0 0000,该代码下面一行其中就包括pagepool的内存偏移值,如下图红色方框处。


这里6000代表Pagepool是6Mb。而数字6所在偏移值就是3abcaa,和用工具查看的结果是一致。
1000~9000代表pagepool容量为1~9Mb。
A000~F000代表容量为10Mb~15Mb。
0001代表是16Mb Pagepool。

4.如何更改Pagepool大小?
用pagepool changer加载RUU_signed.nbh或OS.nb,然后可以在下图左边红色框框内选择拟修改的pagepool大小,或者在右边红色方框内自定义大小,1Mb~16Mb。然后点击”Change to”就可以了。


点击”Change to”后,工具会将ROM文件的pagepool容量更改至所设定的大小。状态栏显示”Ready”的话,代表已经修改完毕。



注:本文参考了XDA上POF的帖子Windows Mobile Blog文章


本文涉及软件下载:
winhex下载
pagepool_changer见附件2

出自http://www.thinkagain.cn
授之以之:
系列1. 提取OS.nb、分解合成RUU_signed.nbh这是本系列第一篇文章,本文将介绍如何从Dopod官方WM6.0 ROM中提取OS.nb文件以及如何使用NBHtool分解及合成RUU_signed.nbh刷机文件,以及单独刷机原理安全刷机方法
首先请到Dopod官方站点或从本站”HTC Asia发布官方版WM6.0 ROM“文内链接下载官方版838Pro WM6.0 ROM。下载后的文件是Zip压缩文件。请用winrar解开:

Fig1 解开zip文件

解开后的目录里面包含一个名为“SEA”的子目录,目录下有2个文档,070421_WM6_NewFeaturesGuide_PPC_Generic_English.pdf是升级指南,另一个是RUU_Hermes_DOPODASIA_WWE_3.54.707.3_6275_1.47.00.10_108_Ship.exe升级文件。

Fig2 SEA目录下文件

请用Winrar将该exe文件解开。将会获得如下8个文件。

Fig3 RUU_Hermes…_Ship.exe内包括文件

继续用winrar将RUU_Inside.exe解开,解开得到的7个文件中,其中包括RUU_signed.nbh文件。

Fig4 解开RUU_Inside得到的文件

RUU_signed.nbh就是该ROM的刷机文件了。ROM里面含有的Radio,OS,extended_ROM等部分。一个完整的RUU_signed.nbh应该含有如下7个nb文件:

[quote]
IPL.nb,IPL文件
SPL.nb,SPL文件
Radio.nb,Radio文件
PrimarySplash.nb,第一开机画面
SecondarySplash.nb,第二开机画面
Herm_ExtendedRom.nb, extendedROM文件
Windows.nb, OS文件。
单独刷机原理
一个完整的RUU_signed.nbh文件里面包括7个部分。刷机的时候会自动将这7部分内容全部刷到你的hermes上。如果一个RUU_signed.nbh文件只单独含有Radio文件,那么刷该nbh文件时,只会单单更新Hermes的Radio部分,而其它部分将保持不变。也就是说,刷机时的ROM更新部分是基于nbh文件的所含内容。进一步,我们可以通过制作含有不同部分的nbh文件,以达到单独刷某部分的ROM的目的。如果我们制作的nbh文件含有PrimarySplash.nb和Windows.nb,那么将会更新原ROM里面的PrimarySplash(第一开机画面)和系统部分,而Radio等均会保持不变。这就是单独刷机原理。
提取nb或合成nbh工具最常用的就是Dutty’s NBHtool v1.1NBHtool。NBHtool是个分解打包nbh文件的专用工具,利用该工具可很方便将nbh分解成nb文件,或者将nb文件合成为一个nbh刷机文件。

分解RUU_signed.nbh
下面我们就来用该工具分解RUU_signed.nbh文件。双击nbhtool.exe运行软件。

Fig5 NBHtool主界面

点击Decompile NBH file,在打开的选择窗口中,选中刚才从Dopod官方ROM中解压得到的RUU_signed.nbh文件。

Fig6 选择RUU_signed.nbh文件

接着选择拟存放nb文件的文件夹,如下图是在C盘上建立一个838Pro_WWE目录,将nb文件夹解压到该目录中。

Fig7 指定存放nb文件的文件夹

点击OK后,nbhtool开始解开RUU_signed.nbh文件。

Fig8 nbh文件已分解

当出现Fig8提示时,说明nbhtool已将nbh文件分解完毕,注意共有7个文件写入到指定存放nb文件的文件夹(C:\838Pro_WWE)。文件的数量代表了该ROM nbh文件含有几部分内容。

Fig9 从官方版ROM提取的7个nb文件

其中Windows.nb就是Windows mobile 6.0系统文件。这个Windows.nb就是我们今后要定制的东西,也是ROM kitchen的主要文件都将要从这个文件中提取。这些内容将会在后续系列中介绍。
最后,顺便说下合成RUU_signed.nbh和介绍2种安全刷机方法。
合成RUU_signed.nbh

合成RUU_signed.nbh正好和分解相反,点击NBHTool上的“NB to NBH”标签,切换到合成RUU_signed.nbh界面。窗口中分别提供了IPL,SPL,First Splash(第一开机画面),Second Splash(第二开机画面),OS(系统文件),Ext.Rom(Extended ROM),Radio的选择项。点击各项边上的按钮,可添加对应文件。通过添加指定文件,可制作ROM部分刷机的nbh文件

Fig10 NBHtool 合成nbh标签界面

如我们将制作一个只含有Primarysplash和secondarysplash以及Windows.nb 3个部分ROM的nbh。

Fig11 nb文件

首先点击First Splash边上的按钮,在弹出的窗口中,选中PrimarySplash.nb文件。将该文件添加到First splash里面。

Fig12 添加PrimarySplash到First Splash

同样,将Secondarysplash.nb和windows.nb分别添加到Second Splash和OS里面。此步骤很重要,切记不能选错,一个萝卜一个坑,不能将OS选到Radio里面,或者将OS选到Ext.Rom里面,否则在使用合成的nbh文件刷机时,将会出严重问题。

Fig13 添加nb文件

点击“Generate NBH file”,指定存放RUU_signed.nbh的文件夹。如C:\838Pro_WWE。

Fig14 指定存放nbh的文件夹

点击OK后,开始制作nbh文件。制作完毕后,RUU_signed.nbh会自动生成在指定的文件夹内。

Fig15 生成RUU_signed.nbh文件

基于RUU_signed.nbh的安全刷机方法

这里简要介绍下基于RUU_signed.nbh的2种安全刷机方法。
1. 用Olipro的Custom RUU进行刷机,此法可单刷Radio,OS,开机画面,Extended ROM等任意部分ROM,可将刷机风险降到最低,有效防止机子变砖头。如果在刷机过程中出现意外,只需再次运行该软件就可以重新刷机。
2. 用Micro SD卡刷机,将RUU_signed.nbh改名为HERMIMG.nbh,然后格式化Micro SD卡,将单独将HERMIMG.nbh拷贝如卡内。将卡插入Hermes内,然后按住电源键和OK键,用笔捅下reset,将会出现刷机界面,按下电源按钮就可以刷机了。
注意,刷机时间因刷机内容不同而不一样,单刷Radio需10-20min,刷OS需5-10min。

本文涉及软件下载
Winrar为通用软件,这里就不提供下载链接了
NBHtool v1.1见附件1
[/quote]
授之以之:
系列2. 分解OS.nb文件,制作ROM kitchen所需的ROM文件
续上文,我们已经从Dopod官方WM6.0 ROM中提取出OS.nb文件。本文将介绍如何分解OS.nb文件,制作ROM kitchen所需的ROM文件。再次说明下,本系列所提的ROM kitchen,均指的是bepe的ROM kitchen,但原文链接提供的ROM kitchen是基于Universal ROM,而本系列所探讨的是,如何自己制作基于dopod官方WM6.0 ROM的ROM Kitchen。
基于XDA论坛上的dump ROM工具和bepe的packagetool,我编制了一个Decompile_OS.bat批处理文件来自动分解OS.nb和生成ROM kitchen所需的OEM,ROM(含XIP)和SYS文件夹。运行该批处理文件后,将会在该文件所在目录下生成My_ROM_Kitchen目录,里面包括OEM,ROM和SYS目录,3个ROM Kitchen必需的文件夹。请在下滚到页末从本站下载此批处理文件。
因Bepe的Packagetool的执行需.NET 2.0支持,所以请确保系统已安装Microsoft .NET Framework Version 2.0,或Microsoft下载,并安装。
为了更好地查看ROM文件,请更改系统的文件夹选项,使资源管理器显示文件的扩展名和显示系统文件及隐藏文件。

1. 解压decompile_os.zip,得到Decompile_OS.bat批处理文件和Tools文件夹,批处理文件执行时调用的工具软件全部在Tools文件夹内。请将从Dopod官方WM6.0 ROM提取的Windows.nb文件复制到Decompile_OS.bat所在目录。如图1。

  
Fig.1 将Windows.nb复制到文件夹
2. 双击Decompile_OS.bat,执行批处理文件。将会提示“请将Windows.nb或者OS.nb复制到本文件夹”,如果你已经复制完毕,按任意键将开始分解OS文件。如图2。

Fig.2 运行Decompile_OS.bat
3. 按任意键后,批处理文件将会将Windows.nb从命名为OS.nb,并开始分解OS.nb。

Fig.3 开始从OS.nb中提取ROM文件
4. 这时屏幕会滚动大量文件信息,不会理会。

Fig.4 Dump OS.nb
5. 出现图5提示说明,OS.nb分解完毕后,会生成dump目录和一些临时文件(OS.nb.extra,OS.nb.payload,imgfs.bin和dump_MemoryMap.txt)。按任意键后,批处理会自动将dump文件夹改名为My_ROM_Kitchen,并调用PKGTool开始制作SYS和OEM文件夹。

Fig.5 按任意键开始制作SYS和OEM
6. OEM和SYS文件夹制作完毕后,按任意键开始制作XIP文件夹。如图6。

Fig.6 按任意键开始制作XIP
7. 请确保OS.nb文件在批处理文件目录下。

Fig.7 确保OS.nb在目录中
8. XIP制作完毕后,批处理会自动将原目录下的OS.nb移动到My_ROM_Kitchen/ROM/目录下。至此Bepe的ROM Kitchen所需的OEM,SYS和ROM文件夹已全部制作完毕。

Fig.8 XIP文件夹制作完毕,将SYS,OEM和ROM复制到ROM kitchen
批处理运行完毕后,会在批处理所在目录下生成My_ROM_Kitchen文件夹。如图9。

Fig.9 My_ROM_Kitchen已生成
My_ROM_Kitchen里面还有OEM,ROM和SYS 3个子目录。如图10。这3个目录就是从Dopod 官方版WM6.0 ROM中提取的ROM kitchen文件。本批处理亦可以用于分解非官方版OS.nb文件,此时有可能Packagetool将会在本目录下生成很多该OS制作者自行添加的一些文件(如一些OEM软件等),请自行将这些文件复制到SYS文件夹下。

Fig.10 OEM,SYS和ROM文件夹
打开OEM文件夹,可以看到里面包括8个目录和OEM.cer文件。其中OEMOPERATORS目录下的文件尤为重要,通过修改该目录下的Preconfig.txt可以设置第一次运行Windows mobile 6.0时的自动运行的配置。OEMAPPS里面是一些系统自带的OEM的程序,如MMS程序,照相机(Camera.exe),ClearValuePDF程序等。你可以将它们提取出来,制成ROM kitchen的可选项。大部分的文件夹下面都含有*.rgu文件,这是注册表文件。你可以用写字板(Notepad)编辑它们。但为了保证ROM的完整性,不建议直接修改这些rgu文件,建议在制作ROM kitchen单独建立rgu文件,这些将在以后讨论。

Fig.11 OEM文件夹内容
ROM文件夹里面还有XIP子文件夹和OS.nb文件(从官方版ROM提取的OS.nb)

Fig.12 ROM文件夹内容
SYS文件夹内含的子目录比较多,主要是一些系统软件,如输入法,windows live等,通过编制option.xml,你亦可以将在ROM kitchen里面做成可选项。

Fig.13 SYS文件夹内容
在SYS下有一个WinCENLS_WWE文件夹,进入该目录后,可看见一个wince.nls文件。该文件里面含有的是各个国家地区的语言,时间,货币,数字显示等,Dopod官方版默认的wince.nls里面没有包括中国(中华人民共和国)的设置内容。本站提供的wince.nls里面含有中国,日本和韩国设置内容,但是有1.5Mb大,请在下面下载后替换原文件。或者你也可以“拿来主义”,用本批处理分解其它网友制作的中文ROM,然后采用它们的wince.nls。wince.nls是硬编码后的文件,所以目前为止我还不知道如何编辑它。
OK,本文到此为止,ROM kitchen所需的3个文件夹(OEM,SYS和ROM)均已搞定,下次,我们将开始建立ROM kitchen(基于Bepe ROM kitchen)。
本文涉及软件下载:
decompile_os见附件3
wince.nls
授之以之:
系列3. 建立My_ROM_Kitchen(ROM模板)
这篇文章将介绍如何建立ROM kitchen。如系列2中提到的,My_ROM_Kitchen是基于XDA上Bepe’s ROM Kitchen。你可以直接从原发布页下载该ROM kitchen,请注意下载后,务必将压缩包里面的OEM,SYS和ROM文件夹替换成从Dopod官方WM6.0 ROM中提取的OEM,SYS和ROM(在系列2中制作的)。或者你可以在本文末从本站下载My_ROM_Kitchen.zip,我在Tools里面添加了NBHTool.exe,并修改了CreateROM.bat,使之能自动调用NBHTool制作RUU_signed.nbh刷机文件。
解开下载的My_ROM_Kitchen.zip,里面含TOOLS文件夹,和CreateROM.bat批处理,BuildOS.exe和pkgcommon.dll。如图1。BuildOS.exe用来定制并dump OS文件。CreateROM.bat将会将重新Dump的OS文件制成os-new.nb。

Fig.1 My_ROM_Kitchen

将已从Dopod官方版WM6.0 ROM中提取的OEM,SYS和ROM文件夹复制到BuildOS.exe所在目录下。如图2。OEM,SYS和ROM文件夹内所含内容已大致在系列2中介绍过了。在此略过。

Fig.2 将OEM,SYS和ROM文件夹复制到目录

双击运行BuildOS.exe,工具界面如图3。因为我们到现在还没有制作任何OEM软件包,或者option.xml,所以Option下面是空空如也。制作好OEM选项后的界面如图4和图5。这个是我自己基于官方版ROM制作的Softbank ROM Kitchen,里面加入了SoftBank的一些专用设置,中日显示、输入,SMS、MMS等均没问题。(PS.嘿嘿,SoftBank X01HT的朋友有福了)。也就是在制作这个ROM Kitchen过程萌发了我写这系列教程。吹牛一下:
采用Yahei字体,可正确显示日,简繁。
日文输入用Asukal的IME31J,中文输入用汉王马兰花。
MMS用MMSLite,可正常收发MMS和S!メール([url=mailto:***@softbank.ne.jp]***@softbank.ne.jp[/url])
增加Softbank的专用设置,如网络名称显示,系统信息为X01HT。
采用itamae的方法设定SoftBank的网络设置,可正常3G上网。
还有一些实用的系统工具如注册表优化之类等,不一一列出了。
稳定性方面很不错,至今发生死机(这才是最爱)。
唯一缺点,通用问题,无法正常打开http://x-series.softbankmobile.co.jp

我将在这个系列文章的最后发布这个ROM模板,但我还是希望Fans能自行制作自己的ROM,这也是本系列文章的初衷所在,因为制作ROM kitchen过程中享受到的乐趣却是无可比拟。
言归正传,如果Option里面有可选项,将鼠标移到可选项上面,将会显示该选项的注释,如图4,Remote Desktop显示注释“远程桌面”。

Fig.3. BuildOS界面

Fig.4 SoftBank ROM模板界面一

Fig5. SoftBank ROM模板界面二
虽说目前BuildOS里面是空空如也,我们还是试运行下,点击菜单栏下面的绿色三角形按钮,开始制作OS。软件的状态栏将会显示进程情况,如图6。

Fig.6 运行BuildOS.exe
如果制作OS过程中发生错误,将会弹出窗口提示并中止程序。大部分的错误都是因为有重复文件造成的。如果一切正常,当状态栏显示Done表示OS文件已制作完毕。BuildOS.exe会在目录下生成temp文件夹。如图7。


Fig.7 生成temp文件夹
temp里面除了boot.hv和boot.rgu以及log.txt文件(如图8),dump文件夹里面都是一大堆重新dump的OS文件,见图9。log.txt是log文件,这个文件很重要,如果BuildOS.exe在执行过程提示错误,自动中止退出后,必须通过这个log文件来检查是哪里出问题。如何进行BuildOS.exe过程提示错误的查错,将在这次讨论。在此略过。

Fig.8 temp文件夹

Fig.9 dump文件夹内容
如果BuildOS.exe正常结束,那么运行CreateROM.bat批处理文件将一大堆dump的OS文件重新制作成os-new.nb。双击运行后,界面如图10。

Fig.10 运行CreateROM.bat
根据提示,按任意键后开始制作os-new.nb。

Fig.11 开始重新制作OS.nb
又会出现一大堆文件信息,刷我屏,好大胆!如图12。

Fig.12 刷屏的文件信息
当提示“已在temp目录下生成os-new.nb文件…”,如图13,此时批处理已经在temp目录下制作好os-new.nb,如图14。

Fig.13 os-new.nb制作完毕

Fig.14 在temp目录下生成os-new.nb
按任意键将会调用NBHtool开始制作RUU_signed.nbh刷机文件,将os-new.nb添加到NBHTool。见图15。NBHtool的使用方法已在系列1中介绍过。如你不想在此时制作nbh,可自行将程序关掉。

Fig.15 l将os-new.nb添加到NBHTool
关闭NBHtool后,会提示“nbh文件已制作完毕…”,按任意键将退出批处理。图16。

Fig.16 按任意键退出批处理
至此,我们已试运行一遍ROM kitchen了,因为还未添加任何OEM软件,所以第一次的试运行应该是不会出现错误提示的。
下次,我们将会开始自行制作OEM文件了。此内容将分3个部分介绍:
1. 如何将软件的cab安装包制成OEM Package
2. 如何制作绿色软件的OEM Package
3. 如何制作注册表修改的OEM Package

OK. That’s All.

本文涉及软件:
My_ROM_Kitchen见附件5


[ 本帖最后由 aheng0629 于 2007-9-24 00:20 编辑 ]
附件: 您所在的用户组无法下载或查看附件
10

评分次数

  • hydhsbd

  • sdandrew

  • qzf1986

  • poondach

  • Hyins

本帖最近评价记录 总评分:10次

(hydhsbd) 口袋币 + 2 全面实用
(sdandrew) 口袋币 + 1 谁是原创?http://www.thinkagain.cn. ?
(qzf1986) 口袋币 + 3 精品文章,我也应该多学习学习了!
(poondach) 口袋币 + 3 精品文章 非常好
(Hyins) 口袋币 + 4 精品文章 不错,辛苦了
授之以之:
系列4. 制作OEM包(OEM Package)Part1
OEM Package是ROM模板的关键部分,通过选择不同的OEM Package可以使我们定制出不同的ROM。系列4准备分3类介绍如何制作OEM Package:
1. 如何将软件的cab安装包制成OEM Package
2. 如何制作绿色软件的OEM Package
3. 如何制作注册表修改的OEM Package

因为内容比较多,所以决定分成2个Parts来介绍。Part1,介绍如何将Cab安装包转换成OEM包(Package)。Part2,介绍如何制作绿色软件的OEM Package和注册表修改的OEM Package,如何将系统自带的软件提取并制成可选择的OEM Package。
一个完整的软件的OEM Package里面应包括如下内容:
1. 软件自身所需文件
2. 快捷方式(非必要,视软件而定)
3. dsm文件(不可缺)
4. rgu(注册表文件)(非必要,视软件而定)
5. initflashfiles.txt,主要用于指定刷机文件的存放位置)(非必要,视软件而定)
6. option.xml,用于系统加载该OEM Package以及显示相关内容(不可缺)

下面我们以PHM Registry Editor V0.70为例,来介绍如何将该软件的cab安装包regedit.Mrln_ARM.CAB转换成OEM Package。PHM Registry Editor是个免费的PPC注册表编辑软件,你可以其官方网页查看软件介绍,以及下载该软件的Cab安装包(选PocktPC2002,2003(ARM/PXA))。
在将Cab转换成OEM之前,你必须做如下准备:
1. 获取GUID(UUID)码
2. 解压Cab包的软件。

先谈GUID(或称UUID),GUID是Globally Unique IDentifier的缩写,中译全球唯一标识符,每个OEM Package都有一串唯一的GUID号码用于系统识别,你可以在此网站http://www.famkruithof.net/uuid/uuidgen来获取所需的GUID码。进入该网站,在“Get”按钮边上选项内选Version1:Time/Node based或者Version4:Random,然后点击“Get”按钮,会自动生成GUID,该网页也可以一次生成多个GUID码。如图1。将该串GUID码(2e7230bd-1d2e-4c59-8643-85fee5d5f86b)记下

Fig.1 GUID码

再说说解压Cab包的软件。Ocp Software公司出品的WinceManagerCabWUZ均可以用于解压Cab包,WinceManager的试用版只能试用30次,且不能导出注册表文件。CabWUZ的试用版可以使用30天,同样无法导出注册表文件。
下面开始以CabWUZ为解压软件,regedit.Mrln_ARM.CAB为例介绍如何将Cab安装包转换成OEM Package。
1. 下载regedit.Mrln_ARM.CAB后,用CabWUZ打开。如图2。左边从上到下有Files,Shortcuts和Registry。Files里面包括PHM Registry Editor V0.70软件的自带文件,我们等会儿要将这些文件全部导出。Shortcuts是快捷方式,不必管它。Registry里面是软件运行所需的注册表。右边是该cab文件的属性。

Fig.2 CabWUZ主界面

2. 点击左边的Files签名的”+”,将该目录展开,可以看见里面共有9个文件。见图3。右边窗口内显示的是这9个文件的属性。注意第三栏的Location,指的是该文件的存放位置,请注意,除了regedit.exe的存放位置为%InstallDir%外,其余8个文件的存放位置都是%Windows%。

Fig.3 文件存放位置

3. 点击左边窗口的Files,然后点击工具栏上面的Extract按钮,将Files下面所有9个文件都导出。如图4,将文件导出到桌面/PHM Registry Editor/目录下。点击OK,将文件导出,提示图5。

Fig.4 选择导出文件的存放目录


Fig.5. 文件导出完毕

4. 打开PHM Registry Editor目录,里面有2个文件夹,分别为[INSTALLDIR]和Windows。如图6。

Fig.6 PHM Registry Editor文件夹内容

打开Windows目录,里面有8个文件,也就是Cab包里面的那些存放位置为%Windows%的文件。见图7。

Fig.7 Windows目录内容

[INSTALLDIR]里面只包括regedit.exe一个文件。如图8。所以cabWUZ是根据cab包里面的文件存放位置信息解压文件的。

Fig.8 [INSTALLDIR]目录内容

5. 将2个目录下的9个文件全部复制到PHM Registry Editor目录后,可将这2个目录删除。如图9。

Fig.9 将[INSTALLDIR]和Windows目录下文件复制到PHM Registry Editor下

6. 新建2个txt文件。将一个文件重新命名为2e7230bd-1d2e-4c59-8643-85fee5d5f86b.dsm,另一个txt文件重命名为2e7230bd-1d2e-4c59-8643-85fee5d5f86b.rgu。也就是GUID号码.dsm和.rgu,如图10。切记一定要将扩展名改为dsm和rgu

Fig.10 建立dsm和rgu文件

7. 用记事本或其它文本编辑软件打开rgu文件,然后点击另存为,将其存为Unicode格式文件。这点很重要,否则在BuildOS执行时会出错。如图11。

Fig.11 将rgu文件存为Unicode格式

8. 编辑rgu文件
再回到cabWUZ,用cabWUZ打开regedit.Mrln_ARM.CAB,在左窗口的下部是Registry,点击Registry,右边的窗口会显示”Entries 20″,如图12,说明有20个注册表表项信息。分别点击各个”+”将注册表全部展开。如图13。因为cabWUZ或WinceManager试用版都无法支持导出注册表文件。所以只好手动编制rgu中的注册表信息了。如果你有WinceManager正式版(PS自己百度一下),那么可以很容易通过”Export to reg”(导出reg)功能,直接将注册表信息导出。

Fig.12 注册表表项数目


Fig.13 注册表信息

如图13中,HKEY_CLASSES_ROOT\.rbk键下的表项为:
Name: Default
Type: REG_SZ
Data:RegBackup

应该写为:
[HKEY_CLASSES_ROOT\.rbk]
@=”RegBackup”

Default可以用@表示。REG_SZ表示这是个字符串值。如图14。将原注册表中%InstallDIR%(安装目录)替换成[url=file://\\Windows\\]\\Windows\\[/url]。


Fig.14 rgu文件
还有很重要的一点就是,rgu文件最后必须空一行,否则BuildOS运行也会出错。如图15。总结一下,制作rgu文件特别注意4点:
1. 文件必须保存为Unicode格式
2. 文件第一行必须是:REGEDIT4
3. 文件最后必须空一行
4. 注册表中的单斜杠”\”,必须写成双斜杠:”\\”


Fig.15 rgu文件的最后必须空一行

9. 编制快捷方式
从Files里面可以看出,regedit.exe是个可执行文件。所以我们要为它建立一个快捷方式,并将它放置在程序里面,使之可以方便被调用。因为所有OEM Package的文件都会被放置在Windows目录下。所以regedit.exe的路径就是:\Windows\regedit.exe。
在PHM Registry Editor目录下,新建一个txt文件,然后用记事本打开,输入:
#”\Windows\regedit.exe”

如图16,

Fig.16 建立快捷方式

存盘退出,将该txt文件重命名为HM RegEdit.lnk。如图17。

Fig.17 将txt文件更名为*.lnk(快捷方式)

10. 编辑initflashfiles.txt
在PHM Registry Editor目录下,新建一个txt,然后重命名为initflashfiles.txt。用记事本打开。输入以下内容:
; Start PHM RegEdit
;===========================================
Directory(“\Windows\Start Menu\Programs”):-File(“PHM RegEdit.lnk”,“\Windows\PHM RegEdit.lnk”)
;===========================================
; End PHM RegEdit

这段代码的意思是将Windows目录下的PHM RegEdit.lnk复制到\Windows\Start Menu\Programs目录(开始菜单里面的程序)下。
红色,是这个快捷方式(蓝色部分)将要被放置的目录(\Windows\Start Menu\Programs),绿色是这个快捷方式的显示名称,其中括号前面的-File指的是这是个文件。蓝色是这个快捷方式的位置。如图18。同样也请将initflashfiles.txt保存为unicode格式。

Fig.18 initflashfiles.txt文件内容

11. 编制option.xml
BuildOS.exe是通过option.xml来加载OEM Package,如果该OEM Package没有option.xml,则该OEM Package将不会被加载。同样,新建一个txt,然后将其重命名为option.xml,用记事本打开,输入如下内容:
注册表编辑软件
  2e72e0bd-1d2e-4c59-8643-85fee5d5f86b
  
其中,是固定的,所有内容被嵌套在里面。如果你对xml有所了解,将很容易理解这种节点嵌套结构。就是该Package的名字,将显示在BuildOS的option框里面,group是指该Package属于那个群组的,你可以通过给不同Package设定同样的group,使之成为一组,如将所有应用程序归为同一组等。checked有2个值,true和false,true指默认该Package是被选中的,反之则默认为非选状态。的内容,是指在BuidOS中,你将鼠标移至该Package上,将会显示的提示信息。就是该OEM Package的GUID码,type为p。
   
Fig.19 Option.xml内容

11. 至此,PHM Registry Editor的OEM Package已经全部建好。如图20,除了软件本身的9个软件外,加上dsm,rgu,initflashfile和shortcut以及option.xml,总共14个文件。顺便提一下,dsm和option.xml是一定要有的。如果软件本身不带注册表信息,如绿色软件,可以不用建rgu文件。同样快捷方式和iniflashfiles都是可选项。


Fig.20 PHM Registry Editor OEM Package内容

12. 将PHM Registry Editor文件夹复制到My_ROM_Kitchen\OEM\目录下。如图21。

Fig.21 复制到OEM目录下

13. 回到My_ROM_Kitchen目录下,试运行下BuildOS.exe,如果一切正常的话,PHM Registry Editor已经被BuildOS.exe正确加载了。鼠标悬停在该Package上,显示“注册表编辑软件”。如图22。

Fig.22 运行BuildOS.exe

系列4 Part1,结束。谢谢你坚持看到底,呵呵!:-)
仓促之际,难免出错。DO IT YOURSELF!

本文涉及软件:
PHM Registry Editor V0.70
CabWUZ
OR WinceManager
授之以之:
系列4. 制作OEM包(OEM Package)Part2
Part2将包括如下内容:
1. 如何制作绿色软件(无需注册表运行就可运行的程序)的OEM Package
2. 如何制作注册表修改的OEM Package
3. 如何将系统自带的软件做成可选择的OEM Package
3.1.将系统部件如输入法等做成OEM Package
3.2.将系统自带应用程序(如ClearValuePDF)做成OEM Package

上文中已经提到过了,一个完整的OEM Package需包括6种文件。
1. 软件自身所需文件
2. 快捷方式(非必要,视软件而定)
3. dsm文件(不可缺)
4. rgu(注册表文件)(非必要,视软件而定)
5. initflashfiles.txt,主要用于指定刷机文件的存放位置(非必要,视软件而定)
6. option.xml,用于系统加载该OEM Package以及显示相关内容(不可缺)

其中除了1、3、6是必须外,其余均视软件而定。
1. 如何制作绿色软件(无需注册表运行就可运行的程序)的OEM Package
绿色软件也就是那些无需注册表就可以自行运行的程序,一般包括exe执行文件和dll文件扩展等文件。将它们制成OEM Package的方法和在Part1里面介绍的将cab转换成OEM Package一样,这里就不再重复,基本步骤:
1. 提取文件
2. 获取GUID码,建立dsm文件
3. 编辑快捷方式和initflashfiles.txt(非必须)
4. 编辑option.xml

如以Gsfinder为例,GSFinder是一个非常实用的资源管理器,其程序运行只需GSFinder.exe,和3个dll文件扩展:gsgetfile.dll、UNZIP.dll、UNLHA.dll。在My_ROM_Kitchen\OEM\下建立GSFinder文件夹,将上述4个文件复制到该文件夹,然后编制dsm文件,建立快捷方式GSFinder.lnk(#”\Windows\GSFinder.exe”),然后编辑option.xml。GSFinder目录下包括8个文件。如图1。

Fig.1 GSFinder文件夹内容

option.xml内容如图2。Package名字:GSFinder。group:Utilities - 实用工具等。

Fig.2 option.xml内容

回到My_ROM_Kitchen目录下,运行BuildOS.exe,可以看见GSFinder已经被加载。如图3。

Fig.3 运行BuildOS.exe

为了降低ROM大小,对于绿色软件,个人建议,可以将它们复制到存储卡上,然后建立一个快捷方式指向exe文件,在刷机的时候,只需将快捷方式刷到ROM里面就可以了。如此的话,在OEM文件夹下建立Link_GSFinder目录,然后分别建立dsm文件,快捷方式和iniflashfiles.txt以及option.xml就可以了。比如,我将GSFinder.exe和3个dll文件放置在存储卡上Tools\GSFinder下,那么我只需建立一个快捷方式,写如:#”\Storage Card\Tools\GSFinder\GSFinder.exe”就可以了。Link_GSFinder目录内容如图4:

Fig.4 Link_GSFinder目录内容

运行BuildOS,如图5,此时请注意,不要同时选中2个GSFinder,否则会出现重复文件错误,因为它们的快捷方式都是GSFinder.lnk

Fig.5 运行BuildOS.exe

2. 如何制作注册表修改的OEM Package
制作注册表修改的OEM Package最简单了,因为没有软件文件和快捷方式等。只需dsm和rgu以及option.xml3个文件即可。以修改网络名称显示为SoftBank为例,具体如何修改注册表详见”注册表修改个性化X01HT(Hermes)运营商服务网络名称显示“一文。
在OEM下建立Softbank operator name文件夹,然后分别建立dsm,rgu和option.xml文件。rgu文件中输入需修改的注册表键值,如图6:

Fig.6 注册表内容

Softbank operator name文件夹只有3个文件。如图7。

Fig.7 Softbank operator name文件夹

运行BuildOS,如图8,可以看到里面已经有Softbank operator name OEM Package。

Fig.8 运行BuildOS.exe
3. 如何将系统自带的软件做成可选择的OEM Package
3.1将系统部件做成OEM Package
Transcriber英文输入法之一,但对于我们不常用英文输入法来说,它并不是个必选项。我们以它为例介绍如何将系统部件做成可选择的OEM Package。
在My_ROM_Kitchen\SYS目录下有3个文件夹:Transcriber,Transcriber_Lang_0409和Transcriber_Lang_0409_DPI_96。分别进入这3个文件夹,将它们的dsm文件名记下,也就是它们的GUID码记下。如Transcriber的是:60fa7e75-fb9b-45c0-b99c-16d9182e9f72。
在SYS目录下新建一个option.xml,并输入以下内容:

Transcriber,系统自带,如不用英文键盘输入,可不选
  60fa7e75-fb9b-45c0-b99c-16d9182e9f72
    5f9ca691-2a85-4db5-b6a0-ce35ef2618dc
    f778638a-d209-4ee6-adb1-ad8e122d3685
  

各个节点的意思和OEM Package中的option.xml一样。其中请注意,Guid有3个其中除了Transcriber的Guid是type”p”外,Transcriber_Lang_0409和Transcriber_Lang_0409_DPI_96的Guid均是type”i”。
保存退出,运行BuildOS.exe,现在我们已经有5个OEM Package可选了。如图9。

Fig.9 运行BuildOS.exe

3.2.将系统自带应用程序(如ClearValuePDF)做成OEM Package
将系统自带的应用程序,如ClearValuePDF viewer,IA ZIP等,做成OEM Package会比较麻烦点。因为你必须知道该程序包括那些文件,并且这些文件是属于哪个文件夹。然后将它们剪切出来,并制作dsm,rgu,快捷方式,iniflashfiles.txt和option.xml。
一般来说系统自带的应用程序文件都放置在OEM\OEMAPPS下,注册表信息整合在OEMAPPS下的rgu文件中,软件的语言文件一般放在OEM\OEM_Lang_0409下。
以ClearValuePDF viewer为例,打开OEM\OEMAPPS文件夹,选择按名称排列图标,如图10。其中用红色框住的文件就是ClearValuePDF的exe执行文件和dll应用程序扩展。

Fig.10 ClearValuePDF程序的文件

可以通过图标来辨别exe可执行文件,然而dll文件就比较麻烦了。大部分的dll文件里面都包括版本属性,里面有版权信息。同一应用程序的dll版权信息应该都是相同的。你可以右单击查看该dll版本信息来确定它们是否属于相同应用程序。如图11。

Fig.11 dll版权信息

在OEM下新建一个ClearValuePDF文件夹,然后将上述文件剪切进去。该软件还有2个快捷方式,如图12。也分别将它们剪切出来。

Fig.12 快捷方式

应用程序的注册表信息被整合在OEM\OEMAPPS下的37fc85aa-e925-4b0a-b0c5-89afb2d5cfde.rgu文件中。该rgu文件是个隐藏文件。用notepad打开后,查找和pdf相关的注册信息,图13显示了和pdf以及ClearValuePDF相关的注册表内容。

Fig.13 ClearValuePDF的注册表信息

将ClearValuePDF的注册表信息剪切出来,单独制成rgu文件。然后再建立dsm,为快捷方式建立iniflashfiles.txt,和option.xml。注意,该软件2个快捷方式中,一个是指向exe文件,一个是指向help文件。所以iniflashfiles.txt内容有2行:
Directory(”\Windows\Start Menu\Programs”):-File(”ClearVue PDF.lnk”,”\Windows\ClearVue PDF.lnk”)
Directory(”\Windows\Help”):-File(”CV_PDFViewhlp.lnk”,”\Windows\CV_PDFViewhlp.lnk”)

CV_PDFViewhlp.lnk将会被复制到\Windows\Help目录下。最终ClearValuePDF目录将包括如下内容,如图14。

Fig.14 ClearValuePDF目录内容

运行BuildOS.exe,可以看到里面已经出现Clear Value PDF Viewer了。该软件已经成功被单独制成OEM Package了。如图15。

Fig.15 运行BuildOS.exe

OK,Part2 到此结束。相信至此,对于如何制作OEM Package,应该已经没有大问题了。下节将介绍如何编制preconfig.txt等。

本文涉及软件:
GSFinder见附件1
授之以之:
系列5. 编辑Preconfig.txt,xml(provxml)配置文件
位于My_ROM_Kitchen\OEM\OEMOPERATORS目录下的Preconfig.txt文件是用来配置Windows mobile 6.0第一次运行时加载的软件或其它设定等。该文件属性默认是设置为只读,编辑它之前请将只读属性去掉。
Dopod官方版WM6.0 ROM的Preconfig.txt内容如下:
LOCK:Enabled
EXEC:\Windows\SetAcousticParam.exe
EXEC:\Windows\SetHSDPA.exe /Enable
EXEC:\Windows\cusTSK.exe \Windows\Dopod_Black.tsk
CAB: \Windows\P_DisconnectButton_3s.sa.CAB
CAB: \Windows\P_Sound_Dopod_WWE_0713.CAB
CAB: \Windows\mHub_playerMiddleLayer_2.CAB
XML: \Windows\D_Hutchison6.xml
XML: \Windows\HWL_Authority5.cer.xml
XML: \Windows\HWL_Authority6.cer.xml
XML: \Windows\P_Button5_VCommand.xml
XML: \Windows\P_Other_Conn_Settings.xml
XML: \Windows\PP_Emergency_112_911_999_000.xml
XML: \Windows\PP_GenericUI.xml
Hide:Enabled
EXEC:\Extended_ROM\autorun.exe
LOCKisabled
RST: Reset

该文件,将按顺序,先运行SetAcousticParam.exe等3个exe文件,然后安装3个Cab,接着再加载7个xml文件中的设定(主要为注册表信息或数字签名),最后在执行Extended_ROM里面的autorun.exe来安装Extended_ROM里面的软件。除了LOCK,Hide外,可以看到命令都是以EXEC,CAB或XML开头,其中:
EXEC:用来运行exe可执行文件。EXEC:后面是exe文件的路径和运行参数。
CAB:安装Cab文件。
XML:加载xml。
RST:重启PPC。
EXEC:\Extended_ROM\autorun.exe,是用来执行Extended_ROM里面的autorun.exe文件,如果将这行命令删掉,系统将不会安装Extended_ROM里面的软件。CAB: \Windows\P_Sound_Dopod_WWE_0713.CAB将会安装Dopod的几个铃声,P_Sound_Dopod_WWE_0713.CAB位于OEMOPERATORS目录下,你可以将该命令和Cab文件删掉节约2.1MbROM空间。EXEC:\Windows\cusTSK.exe \Windows\Dopod_Black.tsk将会默认主题(Windows Default)改为Windows目录下的Dopod_Black.tsk。你也可以将Dopod_Black.tsk改成其它主题。
知道Preconfig.txt的结构后,通过增减命令可以达到定制的目的。下面是我制作的My ROM kitchen for SoftBank里面的Preconfig.txt文件的内容。
LOCK:Enabled
EXEC:\Windows\SetAcousticParam.exe
EXEC:\Windows\SetHSDPA.exe /Enable
EXEC:\Windows\cusTSK.exe \Windows\Htc_New_Default.tsk
CAB: \Windows\P_DisconnectButton_3s.sa.CAB
XML: \Windows\D_Hutchison6.xml
XML: \Windows\HWL_Authority5.cer.xml
XML: \Windows\HWL_Authority6.cer.xml
XML: \Windows\P_Button5_VCommand.xml
XML: \Windows\SecurityOff.xml
CAB: \Windows\ConnSBM.CAB
EXEC:\Windows\WIFIwake.exe
CAB: \Windows\MMSLite.bld275.CAB
XML: \Windows\Settings.xml
HIDE:Enabled
LOCKisabled
RST: Reset

除保留执行exe和加载xml外,将Dopod铃声的安装包删掉,自行添加了Softbank的网络连接设置、MMS等。下面3行命令是用来采用itamae的方法设定SoftBank的网络连接。
XML: \Windows\SecurityOff.xml
CAB: \Windows\ConnSBM.CAB
EXEC:\Windows\WIFIwake.exe

CAB: \Windows\MMSLite.bld275.CAB用来安装MMSLiteb275for X01HT作为系统MMS收发软件,替代系统自带的Arcsoft MMS。唯一不足的是并需安装EUDC.ttf来显示emoji,而且还无法显示彩色emoji。
XML: \Windows\Settings.xml是用来加载一些自定义的设定,如电源管理,优化系统,修正USB同步问题等。
下面来介绍下xml文件格式,provxml的格式和xml基本一样。2者均用来加载一些系统设置或者数字签名等。对于provxml和xml的区别,我还不大懂,似乎是provxml的内容是一定会被系统自动加载,而xml需Preconfig.txt里的命令加载。Dopod官方ROM的OEMOPERATORS里面有2个provxml文件,mxipupdate_zzPIED_101.provxml和mxipupdate_zzPIED_102.provxml(几个签名证书)。101.provxml里面设定了系统初次运行时,将调用Preautorun.exe(OEMOPERATORS目录下)运行Preconfig.txt内命令。有些非官方ROM里面的不是Preautorun和preconfig而是autorun.exe和config.txt,那么config.txt就是命令配置文件。
图1是Setting.xml的部分内容,内含4个优化电源管理注册表项。

Fig.1 XML文件-优化电源管理

和OEM Package中的option.xml不一样,系统设定用的xml必须嵌套在和内。在内的都是注释语句。characteristic的type=”Registry”说明这是个注册表表项,type也可以是注册表的键名,如图1中的”HKLM\Comm\AsyncMac1\Parms”,或者是数字签名证书等。
如将3G网络名称前缀从UMTS(默认)改为3G的相关代码见图2。

Fig.2 XML文件-改网络名称前缀

如图3是添加My SoftBank for X SeriesGoogle
ThinkAgain到收藏夹里面。Url指定网址,Icon指定网站的图标。

Fig.3 XML文件-添加网址到收藏夹

Setting.xml可以在文末下载,你可通过参照它,自行增加一些系统优化的注册表。
从介绍如何分解和合成RUU_signed.nbh开始,到分解OS,建立ROM kitchen,制作OEM Package和编辑Preconfig和xml配置文件,相信至此,Fans应该都已经制作了自己的ROM Kitchen了,当然除了自己制作OEM Package外,也可以在网上找现成的OEM Package直接使用。下次将谈一些定制ROM kitchen时的一些常见错误和解决方法。
本文涉及软件:
settings见附件2
授之以之:
系列6. 定制常见错误及解决方法
本文将介绍在BuildOS过程常出现的一些错误提示及其解决方法。在制作OS过程中主要出现的错误有2种,一个是重复文件错误和rgu文件错误。
1. 重复文件错误
重复文件的解决方法最简单,直接将重复文件删除就是了。但建议你最好做个记录,那些文件是因为重复而被删除了。重复文件错误可以细分为2种:
1.1 OEM Package有重复文件
我们先谈谈第一种。如在系列4制作OEM Package Part2中,我曾介绍过制作GSFinder的OEM Package和只制作GSFinder快捷方式的OEM Package,如果在定制过程中,误将2个OEM Package都选中,如图1,

Fig.1 同时选中2个GSFinder OEM Package
点击绿色三角形开始制作OS后,就会出现图2的错误提示:”\temp\dump\GSFinder.lnk已存在”
  
Fig.2 错误提示:”GSFinder.lnk”已存在
同时BuildOS.exe的状态栏会显示是哪个过程出错,如图3,处理OEM\Link_GSFinder时候出错。

Fig.3 BuildOS的状态栏错误提示
打开浏览器,在My_ROM_Kitchen下搜索GSFinder.lnk,如图4。

Fig.4 在My_ROM_Kitchen目录下搜索GSFinder.lnk
图5是GSFinder.lnk的搜索结果,可以看到在GSFinder和Link_GSFinder下均有同名GSFinder.lnk文件。所以,2者不能同时被制作进ROM,2者删其一即可。

Fig.5 GSFinder.lnk的搜索结果

2. OEM Package的文件和系统自带文件重复
一些OEM Package可能有些文件和系统自带的程序重复。如HTC X-Button 1.5,一个HTC出的任务管理软件,里面就有很多文件和OEMAPPS下的文件重复。可以在文末下载它的OEM Package。将它复制到\My_ROM_Kitchen\OEM目录下。运行BuildOS,如图6。

Fig.6 选中HTC X-Button 1.5
BuildOS在处理OEMAPPS的时候,将会提示exitbutton.bmp文件重复错误。如图7。

Fig.7 错误提示:”exitbutton.bmp已存在”

用浏览器搜索exitbutton.bmp,发现在HTC X-Button 1.5和OEMAPPS目录下均有此文件。

Fig.8 exitbutton.bmp的搜索结果
不单单是exitbutton.bmp,X-Button1.5还有很多文件和系统自带的重复,可以见图9,左边是OEMAPPS下的系统自带文件,右边是X-Button的文件。红色方框内的文件都是重复文件。

Fig.9 X-Button1.5的重复文件

2. rgu文件错误
rgu文件错误通常比较麻烦,在出现错误提示后,必须到temp\log.txt,来查看是那个rgu文件出问题。rgu文件错误有如下几种。
2.1 未将rgu文件保存为unicode格式
运行BuildOS,在最后建立注册表示,会出现”Error building default.hv and user.hv!”(在创建default.hv和user.hv时出现错误)。如图10。

Fig.10 创建default.hv和user.hv错误

进入My_ROM_Kitchen\temp目录,打开log.txt,最后3行是错误提示,最后第3行提示在*.rgu(guid.rgu)的第1行出现错误。文件的第1行出现错误通常是未将rgu文件保存为unicode格式。解决方法就是用记事本将该文件打开,然后重新保存为unicode格式文件。

Fig.11 Log.txt内错误提示

2.2 rgu文件未以REGEDIT4开头
如果rgu文件未以REGEDIT4作为第1行,那么也会出现错误,log文件中也会提示第1行出现错误。解决方法就是添加REGEDIT4到rgu开头,并将之单独作为1行。
2.3 rgu文件未以空行作为最后一行
rgu文件的最后一行如果不是空行的话,也会建立hv的时候,提示出现错误。打开log文件,如果提示出现错误的行号是最后一行的话,那么肯定是该文件未能以空行结束。解决方法,也就是增加一个空行就可以了。
2.4 rgu文件中目录提示符是单斜杠不是双斜杠
我们曾在系列4编辑rgu文件时提过,注册表项中的单斜杠必须全部用双斜杠来表示。如图12显示,第12行语句是@=”\Windows\regedit.exe,-143″,正确的应该是:[email=”@=\\Windows\\regedit.exe,-143″]”@=\\Windows\\regedit.exe,-143″[/email]。

Fig.13 rgu内第12行代码

那么将出现第12行语句错误的提示。如图14。
  
Fig.14 log文件错误提示

为了简化rgu文件的测试,我编写了一个bat文件(test_hv_rgu.zip,在文末下载)来检查rgu是否存在错误。解压下载的test_hv_rgu.zip里面包括2个批处理文件,2个dll文件和一个rgucomp.exe。双击make_hv.bat来检查rgu文件是否能正确被转换成hv文件。运行界面如图15,请把拟测试的*.rgu文件重新命名为boot.rgu,并将它放到和批处理同一目录下。

Fig.15 运行make_hv.bat

按任意键开始转换,图16是因rgu文件非unicode格式而提示在第1行出现错误。

Fig.16 错误提示

如果过程没有错误,会提示 done! 如图17。

Fig.17 正常结束

用make_rgu.bat可以将hv文件转换为rgu文件。图18是该批处理的运行界面。将*.hv改名为user.hv。

Fig.18 运行make_rgu.bat

按任意键开始转换,图19是转换结果,一般不会有错误。

Fig.19 hv转换为rgu

在目录下生成user.rgu,如图20。

Fig.20 在目录下生成user.rgu

打开user.rgu,查看内容,如图21,前4行是RGUComp的信息,剩下的都是注册表表项。

Fig.21 user.rgu内容
本文涉及软件:
HTC X-Button 1.5 OEM Package见附件3
test_hv_rgu.zip,用来测试rgu或hv文件见附件4
授之以之:
系列7. 发布My ROM Kitchen For SoftBank
这是本系列的最后一篇文章,发布我自己专为SoftBank制作的ROM模板,因为我自己用的是SoftBank的X01HT(Hermes200)。里面包括了70来个自己制作或收集的OEM Package,有兴趣的朋友可以下载下来参考下。因为Live Folders只允许上传50MB以下大小的文件,所以我将ROM模板压缩成3个包,在文末有下载链接。
该ROM模板:
1. 替换默认wince.nls,使之支持中日韩区域设置。
2. 默认采用微软雅黑字体(Yahei Font)0.7版用于支持中日文显示。字体大小10MB。
3. 默认使用MMSLite 275 for X01HT作为MMS的收发程序。可正常收发MMS和S!Mail。配套采用EUDC.ttf以支持emoji显示,但是只能显示黑白,无法支持彩色emoji。
4. 增加Softbank的3G上网设置。将服务商网络名称(网络代码:44020)改为SoftBank,添加了Softbank X01HT信息到系统。
5. 采用Asukal的IME31J作为日文输入法,中文输入采用梅花。
6.增加Softkey设置面板,可自行分配今日左右下角的Softkey启动程序。
7. 增加CleartypeTune设置面板,可调节clear type的清晰程度。
8. 修改了Preconfig.txt,删掉了Dopod的铃声设置,增加了电源管理,修正USB同步等系统优化内容(Setting.xml)。
9. 将英文键盘,transcriber等系统自带部件做成OEM package,但保留streamingmedia等,要是没有这个软件看不了Youtube。
10. 默认键盘布局和区域设置为日本。
11. ROM模板中涉及OEM Package大部分为免费软件,部分注册软件(如梅花输入,Memmaid2.0等)未提供XXX。
12. 以上除了Softkey和Clear type tuner和Preconfig.txt内容外,其余均做成OEM Package,可自行选择。

模板也有有一些问题未解决,如无法正确打开http://x-series.softbankmobile.co.jp,HTC Home的可选6键版的OEM package有问题,注册表信息无法正确被输入。第1个问题好像是通用的,我已测试过几个不同版本的非官方WM6.0日文ROM,均存在该问题,虽然已经将X01HT的信息输入IE Agent等里面,但是还是无法正确打开该网站。对于第2个问题,将cab制成OEM package后,注册表信息无法被刷进去,对于自己影响不大,所以就没准备花时间去修正,请网友注意下。
运行BuildOS后,里面包括16个Group,将鼠标移到OEM Package上会显示注释。默认打勾的OEM Package是必选的,如果将打勾去掉,可能会产生错误。
IME31J是Asukal的日文输入法。但我只保留了Romaji和kensaku,如果需要kana和Tegaki,请在该OEM Package下的rgu里面添加如下代码:
[HKEY_CLASSES_ROOT\CLSID\{1D07E4B2-DFAC-11d1-A2E5-0000F8757270}]
@=”Kana”
[HKEY_CLASSES_ROOT\CLSID\{1D07E4B2-DFAC-11d1-A2E5-0000F8757270}\DefaultIcon]
@=”mskana.dll,0″
[HKEY_CLASSES_ROOT\CLSID\{1D07E4B2-DFAC-11d1-A2E5-0000F8757270}\IsSIPInputMethod]
@=”1″
[HKEY_CLASSES_ROOT\CLSID\{1D07E4B2-DFAC-11d1-A2E5-0000F8757270}\InprocServer32]
@=”mskana.dll”
[HKEY_CLASSES_ROOT\CLSID\{0CBEA010-F68E-11D1-8C63-0060977B4593}]
@=”Tegaki”
[HKEY_CLASSES_ROOT\CLSID\{0CBEA010-F68E-11D1-8C63-0060977B4593}\DefaultIcon]
@=”mboxjpn.dll,0″
[HKEY_CLASSES_ROOT\CLSID\{0CBEA010-F68E-11D1-8C63-0060977B4593}\IsSIPInputMethod]
@=”1″
[HKEY_CLASSES_ROOT\CLSID\{0CBEA010-F68E-11D1-8C63-0060977B4593}\InprocServer32]
@=”mboxjpn.dll”

默认不运行Extended_ROM里面的程序,如果需要安装Ext_ROM里面的软件的话,请在OEM\OEMOPERATORS\Preconfig.txt里面加上EXEC:\Extended_ROM\autorun.exe语句,具体在系列5里有介绍过。
对于Softbank的X01HT来说,因为BT的Softbank是采用自己的MMS编码,所以用官方的Softbankmail固然是最好的选择,能很好的支持S!mail和emoji。但是该软件个头超大,8MB,且收发速度慢。所以建议采用MMSLite 2.75 for X01HT。该OEM Package默认是选中的,如果不准备采用该软件,切记要将Preconfig.txt里面”CAB: \Windows\MMSLite.bld275.CAB”删掉,否则会出错。
本想一个个按Group介绍OEM Package,写了几个发现工作量太大了,无奈只好作罢,还好每个OEM Package都有注释。将ROM模板截图如下:

Fig.1 ROM模板-1


Fig.2 ROM模板-2


Fig.3 ROM模板-3


Fig.4 ROM模板-4

写在最后:
一时兴起,写了这系列教程”DIY制作基于Dopod官方WM6.0的Hermes系列ROM模板(ROM kitchen)!“,希望能对Fans有所帮助。时间仓促,难免有不足之处,敬请多见谅。制作ROM模板对于新手来说,是个具有挑战性的工作,也需要有极大的细心和耐心,因为在制作过程你可能会面对没完没了的错误以及大量的Bug。但是却也是乐在其中!
本文涉及软件
My ROM Kitchen For SoftBank X01HT
软件太大,只有放个链接
[ 本帖最后由 aheng0629 于 2007-9-24 00:55 编辑 ]
附件: 您所在的用户组无法下载或查看附件
2

评分次数

  • 大灰狼小KenC

  • najera

本帖最近评价记录 总评分:2次

(大灰狼小KenC) 口袋币 + 3 精品文章 终于等到这文章喇,我最紧也在学
(najera) 口袋币 + 3 精品文章 终于来了个细心的家伙 置顶 ...
先站楼留位
再站楼留位
再站楼留位

看了楼主的教学帖

我深深为之感动


并下定一个决心

不在研究自己DIY  ROM 了

太复杂了!!!!!!!!!!!!!!!!!!!!!!!!!!!

我已经眼花了

[ 本帖最后由 时空骑士 于 2007-9-24 10:25 编辑 ]
附件: 您所在的用户组无法下载或查看附件
预留位置!我也想学,但太复杂这免了,没这么多时间!
不错,支持
再站楼留位,待续
这个是一定要支持的。自己动手,强~
返回列表