打印

[ROM教程] 转贴陈希立先生发布的系列教程,来自www.thinkagain.cn

转贴陈希立先生发布的系列教程,来自www.thinkagain.cn

陈希立先生发布的系列教程,来自 http://www.thinkagain.cn

DIY制作基于Dopod官方WM6.0的Hermes系列ROM模板(ROM kitchen)!

欢迎Hermes爱好者s署名转载本文,转载请遵循署名-非商业性使用-相同方式共享 2.5协议,注明出自http://www.thinkagain.cn
English user please scrolls down for english explanation.


写在最后: 一时兴起,写了这系列教程”DIY制作基于Dopod官方WM6.0的Hermes系列ROM模板(ROM kitchen)!“,希望能对Fans有所帮助。时间仓促,难免有不足之处,敬请多见谅。制作ROM模板对于新手来说,是个具有挑战性的工作,也需要有极大的细心和耐心,因为在制作过程你可能会面对没完没了的错误以及大量的Bug。但是却也是乐在其中! ==============================================
DIY基于Dopod官方WM6.0的Hermes系列ROM模板(ROM kitchen)给我鱼杆,我不要鱼!鱼和鱼杆的故事相信各位均已熟知,如果是我,我自然会选择鱼杆。好像有点跑题了,让人以为又是一个标题党。OK,进入正题:
自Dopod在7月12日发布838Pro官方版WM6.0 ROM后,现在网上有很多高手制作的Hermes系列wm6.0 ROM,让各位Hermes Fans能够最早体验到了WM6.0带来的新乐趣。但是作为Fans的你,在分享别人的劳动成果的同时,有没有想过:
Do It Yourself
那么我就给大家这条鱼杆–如何自己动手做自己的ROM?授之以鱼,何不授之以渔!本系列将以图文方式介绍从如何提取OS文件开始,到最后制作自己的ROM模板(ROM kitchen)、定制ROM的相关内容。最终目的就是让各位Fans都能掌握如何制作基于dopod 官方版的windows mobile 6.0 ROM,且拥有自己的ROM kitchen(ROM 模板)!因为是Cook ROM,所以就是kitchen了。
事先声明,本人并非专业人士,只是一个平常的Fan而已,从如何解锁X01HT到制作ROM等相关知识,都是在XDA论坛上学到的,所以文中内容难免有不足之处,仅供参考!
文章中所涉及工具软件大部分均从XDA上搜集,并全部是免费软件。部分批处理文件由本人自行制作。
推荐用pof v3a解锁软件将Hermes解锁,并将IPL和SPL分别升级为1.04,SPL-2.10.Olipro,解锁和升级不是本系列主要内容,在此略过。
推荐采用Olipro的Custom RUU进行刷机,此法可单刷Radio,OS,开机画面,Extended ROM等任意部分ROM,可将刷机风险降到最低,有效防止机子变砖头。

本教程包括如下系列内容,请点击各个链接查看具体内容:
系列1. 从Dopod官方ROM中提取OS.nb(含分解及合成nbh文件以及单独刷机原理和安全刷机方法。)

系列2. 提取ROM文件(如何从OS文件中提取并建立kitchen所需文件)

系列3. 建立ROM kitchen(介绍bepe ROM kitchen)

系列4. 制作OEM文件(如何将Cab文件转换成OEM文件)PART 1

系列4. 制作OEM文件(如何将Cab文件转换成OEM文件)PART 2

系列5. 编辑Preconfig.txt,xml(provxml)配置文件

系列6. 定制OS常见错误及解决方法

系列7. 发布ROM Kitchen for SoftBank
What is so-called Page pool in HERMES ROM?

每篇文末将会列出所涉及工具软件,并均提供原出处下载链接或提供本站下载。
本帖最近评分记录
  • GXQ 智慧 +2 收藏先。谢谢IMG 2007-10-21 17:44
  • GXQ 部落币 +20 收藏先。谢谢IMG 2007-10-21 17:44
  • GXQ +30 收藏先。谢谢IMG 2007-10-21 17:44

TOP

系列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文件:

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。

本文涉及工具软件(Tool Software download):
Winrar,下载
dutty’s NBHtool v1.1
1. XDA下载
2. 本站下载
名字: dutty's NBHtool v1.1
大小: 40.00 kBytes
文件类型: .exe-文件
添加: 02. Aug 2007 - 21:06 h
下载: 289


欢迎Hermes爱好者s署名转载本文,转载请遵循署名-非商业性使用-相同方式共享 2.5协议,注明出自http://www.thinkagain.cn

TOP

系列2. 分解OS.nb文件,制作ROM kitchen所需的ROM文件


授之以之:
系列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)。
软件下载(Tools download)
Microsoft .NET Framework Version 2.0,Microsoft下载
Decompile_OS.zip,本站下载。
名字: Decompile OS
大小: 604.14 kBytes
文件类型: .zip-文件
添加: 07. Aug 2007 - 02:59 h
下载: 180

wince.nls文件,本站下载。
名字: wince.nls
大小: 1,500.73 kBytes
文件类型: .nls-文件
添加: 07. Aug 2007 - 21:18 h
下载: 79

TOP

系列3. 建立My_ROM_Kitchen(ROM模板)

授之以之:
系列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!メール([email=***@softbank.ne.jp]***@softbank.ne.jp[/email])
增加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.

软件下载(Tools download)
My_ROM_Kitchen(基于Bepe’s ROM Kitchen)
名字: My_ROM_Kitchen
大小: 338.73 kBytes
文件类型: .zip-文件
添加: 05. Aug 2007 - 23:38 h
下载: 152

TOP

系列4. 制作OEM包(OEM Package) Part1


授之以之:
系列4. 制作OEM包(OEM Package)Part1OEM 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%(安装目录)替换成\\Windows\\。


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,用记事本打开,输入如下内容:
<?xml version=”1.0″ encoding=”UTF-16″ standalone=”yes”?>
<Items>
<Item name=”PHM Registry Editor” group=”Applications - 应用程序” checked=”true”>
<Tip>注册表编辑软件</Tip>
  <Guid type=”p”>2e72e0bd-1d2e-4c59-8643-85fee5d5f86b</Guid>
  </Item>
</Items>
其中,<?xml version=”1.0″ encoding=”UTF-16″ standalone=”yes”?>是固定的,所有内容被嵌套在<Items></Items>里面。如果你对xml有所了解,将很容易理解这种节点嵌套结构。<Item name>就是该Package的名字,将显示在BuildOS的option框里面,group是指该Package属于那个群组的,你可以通过给不同Package设定同样的group,使之成为一组,如将所有应用程序归为同一组等。checked有2个值,true和false,true指默认该Package是被选中的,反之则默认为非选状态。<Tip>的内容,是指在BuidOS中,你将鼠标移至该Package上,将会显示的提示信息。<Guid>就是该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!

软件下载,Tools download
PHM Registry Editor V0.70
http://www.phm.lu/Products/PocketPC/RegEdit/
CabWUZ http://www.ocpsoftware.com/downloads/cabwuz/CabWUZ_Setup.exe
OR WinceManager
WinCE CAB Manager 2.1Self-Extracting ExecutableDownload size- 5.3 MB

TOP

系列4. 制作OEM包(OEM Package) Part2


授之以之:
系列4. 制作OEM包(OEM Package)Part2Part2将包括如下内容:

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,并输入以下内容:
<?xml version=”1.0″ encoding=”UTF-16″ standalone=”yes”?>
<Items>
<Item name=”Transcriber” group=”System” checked=”false”>
<Tip>Transcriber,系统自带,如不用英文键盘输入,可不选</Tip>
  <Guid type=”p”>60fa7e75-fb9b-45c0-b99c-16d9182e9f72</Guid>
    <Guid type=”i”>5f9ca691-2a85-4db5-b6a0-ce35ef2618dc</Guid>
    <Guid type=”i”>f778638a-d209-4ee6-adb1-ad8e122d3685</Guid>
  </Item>
</Items>
各个节点的意思和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等。
软件下载(Tool download)
名字: GSFinder
大小: 169.93 kBytes
文件类型: .zip-文件
添加: 11. Aug 2007 - 23:24 h
下载: 63

TOP

系列5. 编辑Preconfig.txt,xml(provxml)配置文件



授之以之:
系列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: \Window