您的当前位置:首页正文

自己动手定制ROM入门图文教程

2023-10-15 来源:易榕旅网


自己动手定制ROM入门图文教程(抛砖引玉之用)

自己动手定制ROM入门图文教程(抛砖引玉之用)

{ 本帖最后由 yyqyj888 于 2008-05-10 01:35 编辑 }

刷了好多ROM,总找不到满意的,有了自己定制ROM的冲动,由于咱们论坛找不到相关的教学帖子,所以爬了2天的论坛终于找到一篇描述比较详细的教程。不敢独享发出和大家分享! 转自DIYPDA论坛- 天涯人

自己动手DIYWM6 ROM 入门图文教程

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上搜集,并全部是免费软件。部分批处理文件由本人自行制作。928,6600,6700,6800,6900,TOUCH,CDMA智能机,ROM,制作,刷机,修改,改进,手机,推荐用pof v3a解锁软件将Hermes解锁,并将IPL和SPL分别升级为1.04,SPL-2.10.Olipro,解锁和升级不是本系列主要内容,在此略过。

推荐采用Olipro的Custom RUU进行刷机,此法可单刷Radio,OS,开机画面,Extended ROM等任意部分ROM,可将刷机风险降到最低,有效防止机子变砖头。

0 1

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

http://www.thinkagain.cn/wp-content/uploads/2007/08/extract-os-03.jpg 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文件。双击nbhtool.exe运行软件。

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

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

Fig7 指定存放nb文件的文件夹点击OK后,nbhtool开始解开RUU_signed.nbh

文件。

Fig8 nbh文件已分解ROM制作,当出现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文件。如我们将制作一个只含有Primarysplash和secondarysplash以及Windows.nb 3个部分ROM的nbh。

首先点击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。DIYPDA

续上文,我们已经从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复制到文件夹ROM,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.nbROM

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。

FIG6 按任意键开始制作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)。

什么时候能自己设定头像!!! 回复 引用 举报 TOP

广告:中国质量万里行 手机质量投诉中心

报纸 UID:6508754 发表于:2008-05-10 00:16 只看该作者 个人中心 短消息 加为好友

这篇文章将介绍如何建立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。ROM

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

Fig.2 将OEM,SYS和ROM文件夹复制到目录ROM双击运行BuildOS.exe,工具界面如图3。因为我们到现在还没有制作任何OEM软件包,或者option.xml,所以Option下面是空空如也。制作好OEM选项后的界面如图4和图5。这个是我自己基于官方版ROM制作的Softbank ROM Kitchen,里面加入了SoftBank的一些专用设置,中日显示、输入,SMS、MMS等均没问题。(PS.嘿嘿,SoftBank X01HT的朋友有福了)。也就是在制作这个ROM Kitchen过程萌发了我写这系列教程 我将在这个系列文章的最后发布这个ROM模板,但我还是希望Fans能自行制作自己的ROM,这也是本系列文章的初衷所在,因为制作ROM kitchen过程中享受到的乐趣却是无可比拟。言归正传,如果Option里面有可选项,将鼠标移到可选项上面,将会显示该选项的注释,如图4,Remote Desktop显示注释“远程桌面”。

Fig.3. BuildOS界面ROM

Fig.4 SoftBank ROM模板界面

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

Fig.6 运行BuildOS.exe

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

Fig.7 生成temp文件夹

emp里面除了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

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文件了

OEM Package是ROM模板的关键部分,通过选择不同的OEM Package可以使我们定制出不同的ROM。系列4准备分3类介绍如何制作OEM Package:1. 如何将软件的cab安装包制成OEM Package 2. 如何制作绿色软件的OEM PackageROM 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公司出品的WinceManager或CabWUZ均可以用于解压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%。

COMFig.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_SZ4 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 RegEditROM

这段代码的意思是将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

其中,standalone=”yes”?>是固定的,所有内容被嵌套在里面。如果你对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.exewww 系列4 Part1,结束

位于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\\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文件的内容。 除保留执行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同步问题等。

1 n% V4 g5 z7 C+ q+ S9 t1 R% m下面来介绍下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 Series,Google和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时的一些常见错误和解决方法。

本文将介绍在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的错误提示:”\emp\\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.5BuildOS在处理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\emp目录,打开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″,正确的应该是:”@=\\\\Windows\\\\regedit.exe,-143″。

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内容

什么时候能自己设定头像!!! }

发布完毕,这个教程看起来是有点老了,知道现在有傻瓜式的工具,现成的模板和OEM,但是还是希望能抛砖引玉,让更多人学会自己定制ROM,做自己喜欢的ROM。呵呵,也希望各位大大能多做教程,让我们这些新人也快速成长哦! 什么时候能自己设定头像!!!

LZ还不如直接把连接给出来,还方便一些.

http://www.diypda.com/viewthread.php?tid=2738&highlight=%D7%D4%BC%BA%B6%AF%CA%D6DIYWM6%2BROM%2B%C8%EB%C3%C5%CD%BC%CE%C4%BD%CC%B3%CC

因篇幅问题不能全部显示,请点此查看更多更全内容