大家一起来做ROM吧——模板制作初级教程(1-8)

大家一起来做ROM吧——模板制作初级教程

By pcg 201005

第零章  前言

我会尝试将我所有懂的都写出来,包括ROM的制作、汉化、优化、celecmd、mortscrtip、马尼拉基本修改等等。不过我是超级懒的人,所以别期待近期能写完,也因为这个原因,所以才决定连载算了,等我写完再放出来说不定要一年半载……
我也是只会做体力活的菜鸟一只,所以别期待能看到什么让你惊喜的东西……
1、这个世界上没有小白,只有懒白。
2、做ROM是体力活。
3、此教程适合钻石以后的机型,之前的旧机型可能有部分内容有所不同,请自行研究。
4、此教程的模板工具以btxakita的BT BuildOS为例,若使用其他制作工具请参照自行研究(ROM的制作过程大同小异)。
5、谢谢所有帮助过我的人……(大多人要感谢的了,生怕忘了列在其内,先保留……)
6、本人水平有限,有错误之处还望高人指点。
7、首发于DFT及XBETA。

第一章  模板与ROM的简略说明

我们升级手机系统,是下载一个ROM,再通过电脑刷进手机或者直接复制到手机存储卡里卡刷进去。那么一个ROM是怎样制作出来的呢?最方便的方法莫过于使用模板制作了。而模板是什么呢?又是怎样来的呢?
英文里制作ROM叫做cook rom,为什么这样叫呢?顾名思义,就是一个ROM其实是煮出来的。如果我们已经有了一个模板,那么制作出一个ROM对于我们来说,其实就相当于跟煮饭、炒菜一样简单,我们只需把材料(OEM包等)扔进去,然后很简单的(点击一下鼠标)就可以煮出来。(当然煮的好不好吃是另外一回事,呵呵)
因此,模板可以看成是非常简单就能制作出ROM的软件,对于我的模板,只需点击一下BT BuildOS.exe,再勾上/去掉你所需要/不需要的OEM软件,点击开始,过几分钟就会自动做好ROM并弹出刷机软件,呵呵,够简单吧。
而模板的来源,可以利用工具将官方发布的ROM反向分解形成(或者下载别人制作好的)。
那么我们先来讲讲如何形成一个标准的模板吧。

第二章 将官方ROM转化成标准的模板结构

一、必要软件
1、安装.net 3.5(win7可跳过)
下载:http://download.microsoft.com/download/6/0/f/60fc5854-3cb8-4892-b6db-bd4f42510f28/dotnetfx35.exe
2、安装VC2008(win7可跳过)
下载:ftp://pcg@ftp.pcgpcg.net/ppc/VCredist x86.rar
3、模板工具BT BUILD下载:
下载:ftp://pcg@ftp.pcgpcg.net/ppc/BT BuildOS.rar
3、模板分区剩余空间1.5G以上
4、建议在ntfs分区使用。
5、在文件夹选项里打开显示系统、隐藏文件,最好也显示扩展名。

二、下载官方ROM
1、可以去HTC官方网站下载,凭你的PPC机SN号下载,若没有适合的SN号可以去拜托GOOGLE大神。
2、一些论坛偶尔也会放出一些test、ship rom、chs rom。

三、ROM的最基本结构(头晕的可跳过)
从官方下载回来的ROM,是EXE格式,可以直接用winrar解压出来,其中RUU_signed.nbh是ROM,其余文件是刷机软件(注:刷机软件一般是通用的)。
RUU_signed.nbh这个文件是由一个或多个NB文件合成的。官方的RUU_signed.nbh通常由os.nb(系统)、ipl、spl(装载系统、CID检测等)、MainSplash(第一屏)、radio(通讯)等等组成。
而os.nb则是一个ROM主要部分,由os镜像+头部尾部组成(头部尾部不同机型不一定相同),纯os镜像由两部分组成:xip和imgfs.bin,而imgfs.bin又可以分成两部分:oem和sys,xip是系统首先装载的基本文件,oem是厂商定制的软件(其中除了驱动外90%以上是通用的),sys是微软的系统核心。
Nbh文件可以用NBHextract.exe这个文件来分解。
Os.nb文件可以用nbtool.exe来分离出纯os镜像,再解压出xip.bin、imgfs.bin
Imgfs.bin可以用ImgfsToDump解压出文件,再用PKGTool.exe根据里面的dsm整理成各个目录。
不过以上是旧的方法,bepe在09年末推出了新的dump工具xidump(原ImgfsToDump),可以直接从nbh等格式ROM分解出oem、sys、xip等(链接:http://forum.xda-developers.com/showthread.php?t=572673)。
1、简单的分解过程如下:
(1)NBH分解成各个nb。(NBHextract.exe)
(2)os.nb分解成xip和imgfs。(nbtool.exe)
(3)imgfs分解成oem、sys。(imgfstodump.exe)
以上步骤现在可以直接用xidump全部代替。
2、简单的合成ROM过程如下:
(1)oem、sys、xip生成dump目录和xip.bin。(platformrebuilder.exe)
(2)oem、sys合成imgfs.bin(imgfsformdump.exe)
(3)xip、imgfs.bin插进原来的os.nb里(imgfstonb.exe、implantxip.exe)
(4)os.nb签名成nbh。

四、将官方ROM整理成一个标准模板。
(一)BT BuildOS简略说明
1、BT BuildOS是由btxakita基于MyBuildOS(独立小桥)进行的拓展,以platformrebuilder(bepe)排序工具为核心的ROM制作工具。
2、因为BT BuildOS是以platformrebuilder来排序,因此HTC机型可以省却手工移植XIP的烦恼,并且支持原生6.5nk。
3、因为是基于MyBuildOS的拓展,所以可以读取OEM里的option.xml提供该OEM包的选择与说明等。
4、OEM目录支持分类,EXT目录支持ext格式的oem包,并且也支持分类以及可将目录名显示在buildos界面提供选择。
5、OEM、TOOLS、RUU支持自定义路径,可编辑rom\config.ini或在BT BuildOS的目录选择里选择。
6、支持自定义机型,请参考BT BuildOS\TOOLS\Devices.ini自行编写,我已经将常用机型列出来,不过未能一一测试,有错之处请反馈或自行修正。
7、xidump目录是我根据bepe的xidump.exe整理的分解ROM工具包,其中里面有三个BAT,可以把相关文件拖到那几个BAT上实现傻瓜分解。其中Dump.bat可以解出oem+sys+xip(假如有的话),Dump_os.nb.payload.bat可以解出精简后的os.nb.payload,Dump_XIP.bat可以只解出xip。
8、BT BuildOS我设定的默认目录简略说明
BT BuildOS(这个是解压后出的目录)
         |
         |—-EXT(EXT格式的OEM包扔到这里,里面还要进行分类)
         |     |—-XXX1(分类目录1,会在BT BuildOS里显示出来)
         |     |    |—-XXX(EXT OEM包)
         |     |
         |     |—-XXX2(分类目录2,会在BT BuildOS里显示出来)
         |         |—-XXX(EXT OEM包)
         |
         |—-OEM(普通OEM包扔到这里,里面还要进行分类)
         |     |—- XXX 1(分类目录1,会在BT BuildOS里显示出来)
         |     |    |—- XXX(普通OEM包)
         |     |
         |     |—- XXX 2(分类目录2,会在BT BuildOS里显示出来)
         |         |—- XXX(普通OEM包)
         |
         |—-ROM(os.nb.payload以及xip放在这里)
         |     |—-os.nb.paylaod文件(相应机型的纯OS镜像)
         |     |
         |     |—-XIP(XIP目录)
         |       |—OEM(XIP的不同机型专用的OEM部分放在这里)
         |       |    |—romhdr.bin文件
         |       |    |—OEMXIPKernel(XIP的OEMXIPKernel目录放在这里)
         |       |    |—WinCENLS_xxx(XIP的wincenls目录放在这里)
         |       |—XXX(XIP相应核心的目录)
         |           |—MSXIPKernel(XIP的OEMXIPKernel目录放在这里)
         |
         |—-RUU(刷机软件及制作出来的ROM文件)
         |
         |—-SYS(SYS核心放在这里,里面还要进行核心分类)
         |     |—-XXX(以核心命名的目录)
         |
         |—-TOOLS(模板制作过程所用到的工具软件)
         |
         |—-xidump(分解ROM、XIP的工具包)
               |—Dump.bat(拖到上面可以分解出oem+sys+xip)
               |—Dump_os.nb.payload.bat(拖到上面可以分解出精简后的os.nb.payload)
               |—Dump_XIP.bat(拖到上面可以分解出XIP)
               |—bin(分解所用到的工具包)

(二)分解
以HD的RUU_BlackStone_hTC_Asia_TW_1.59.709.0_Radio_52.62.25.34_1.13.25.24_Ship.exe为例。
1、下载BT BuildOS.rar,解压。将官方ROM里的除了RUU_signed.nbh以外的文件扔到RUU目录(刷机时用),将RUU_signed.nbh扔到xidump目录里,然后把nbh拖到dump.bat身上,就会自动分解xip、oem、sys,经过比较漫长的显示后,会提示请按任意键继续,此时按任意一键就会退出DOS窗口完成分解过程。
2、把nbh拖到Dump_os.nb.payload.bat身上,就会分解出精简后的os.nb.payload。(如果你有未精简的os.nb.payload,也可以拖到BAT身上得到精简后的os.nb.payload)
3、现在多出了romhdr.bin、os.nb.payload文件和imgfs目录、xip目录。我们先初步整理测试。
(三)初步整理
用BAT自动整理也不是不可以,不过为了让大家熟悉一下模板结构,这里就手动整理吧。
1、将os.nb.payload移到BT BuildOS\ROM里。
2、将romhdr.bin移到BT BuildOS\ROM\XIP\OEM里
3、将IMGFS目录里的OEM目录剪切到BT BuildOS\OEM目录(BT BuildOS\OEM\OEM)。
4、将IMGFS目录里的SYS目录剪切到BT BuildOS\SYS目录,并将这个SYS目录改名为相应的核心,这个ROM的核心是20769,因此将SYS目录名改成20769(BT BuildOS\SYS\20769)。SYS的核心,可以用SYSVersion.exe查看。
5、进入XIP目录,会发生XIP目录里有5个目录,其中LangDB和MSXIPKernelLTK里面只有一个DSM文件,没什么作用可以删掉。MSXIPKernel是微软的XIP核心,移植核心时就要移植这部分。OEMXIPKernel是该机型的驱动,一般不通用(驱动的另外一部分在oem\oemdrivers里)。WinCENLS_Lang_0404里是wince.nls,这个文件负责区域及文字显示等功能。(注:wince.nls的目录名视不同语言的ROM而不同,目前platformrebuilder有个BUG,英文200K的wince.nls有时会引起PRB报错)。
(1)在BT BuildOS\ROM\XIP下新建一个目录,目录名为XIP核心,即BT BuildOS\ROM\XIP\20769,然后将刚才分解的XIP目录里MSXIPKernel目录移过来。
(2)把OEMXIPKernel和WinCENLS_Lang_0404移到BT BuildOS\ROM\XIP\OEM里
(四)刷机测试
基本的模板已经初步整理好了,先刷机测试一下这个模板是否可用吧,没问题了再进行详细的整理及汉化、移植核心、移植OEM等工作。
1、确认你的PPC已经解锁,不解锁是刷不进非官方ROM的。
2、打开BT BuildOS.exe,左侧的机型选择,选择你的机型,这个是HD ROM,所以选择HD。(可以自己修改BT BuildOS\TOOLS\Devices.ini内容)
3、第二列是读取各个分类目录名,这里要勾上OEM这个目录,否则这个目录里的OEM包都不会定制的。
4、可以看到右侧并没有OEM选择,这是因为我们还没给每个OEM创建option.xml,所以默认就会全部定制而不提供选择。
5、点击工具/选项,其中有一项是“启用PRB原生6.5 nk模式”,6.5nk比6.1nk多了两个slot,能容纳更多的模块,不过这个ROM是6.1的ROM,所以把这项去除吧。(记住若你的NK是6.5的一定要勾上)
6、然后点击上方的绿色三角运行吧,会先弹出PRB窗口排序DUMP文件,再生成ROM,完成后会弹出刷机软件
7、试试刷机吧,祈祷能进入系统:)
注:后期HTC官方ROM里的Notification_Enhancement里的NTFConfig.dll模块PRB处理有问题,不转换成文件的话会定在第一屏,请留意。
(五)刷机成功之后……
无意外的话,刷机应该能成功吧。不过成功后我们还有很多事情要做,真正费体力的活现在才开始喔……开玩笑的,希望别被吓倒:)
首先这个这是个繁体版ROM,所以我们先要把ROM改成简体。
不同语言的模板,有三部分不同,一部分是SYS核心,一部分是OEM官方集成软件部分,一部分是XIP里的wince.nls区域相关文件。确切来讲,不同语言的模板,主要区别只在于注册表和MUI
核心部分可以直接移植一个简体的核心,这样就省下很多功夫。
嗯,我们先讲移植吧。

第三章 移植核心

一、获得核心。
1、核心是WM系统通用部分,目前核心的更新只能刷ROM来解决。
2、目前核心基本来源方式有官方ROM提取、一些论坛发布。目前论坛发布的,主要有DFT的mwang、XBETA的猴子及XDA的DA_G,可以自行下载自己喜欢的核心。
3、我们以目前HTC官方ROM版本最高旧特性WM65的21892核心为例来移植吧。这个是猴子在XBETA发布的:
(fs2you://Y2FjaGVmaWxlMjYucmF5ZmlsZS5jb20vemgtY24vZG93bmxvYWQvMWFmNTcwNmM0YTlmMTUzNWE5YmE3MTYxNDliZDBjZDEvMjE4OTJfV1ZHQV9DSFMucmFyfDU3OTg0MDk3)
二、分解、整理核心。
核心有两部分,一部分是SYS,一部分是XIP,而猴子发布的一般是dio格式的ROM,我们先分解吧。
1、解压出FLASH.DIO文件,移到BT BuildOS\xidump目录里。
2、将FLASH.DIO拖到Dump.bat身上,几分钟后会提示请按任意键继续,此时按任意一键就会退出DOS窗口完成分解过程。
3、现在多出了romhdr.bin、imgfs目录、xip目录。
4、将IMGFS目录里的SYS目录剪切到BT BuildOS\SYS目录,并将这个SYS目录改名为相应的核心,这个ROM的核心是21892,因此将SYS目录名改成21892(BT BuildOS\SYS\21892)。
5、在BT BuildOS\ROM\XIP新建一个与SYS核心版本号相同的数字,即新建一个21892目录,然后将刚才分解的XIP目录里MSXIPKernel(BT BuildOS\xidump\XIP\MSXIPKernel)复制进去(BT BuildOS\ROM\XIP\21892\MSXIPKernel)。
6、移植结束,很简单吧。不过SYS里有些地方我们还要调整一下的。
(1)Metadata这个目录最好使用自己机型里的,因为有些机型不保留这个的话,会有些奇怪的问题发生。
(2)gb18030目录里有个simsun.ac3新宋体字体,若你想使用其他字体,比如雅黑字体的话,那就要删掉这个simsun.ac3,否则一些软件的界面会出现两种字体,看上去很不美观。
(3)SampleMusic是范本音乐,里面有两首WMA文件,这个目录可以直接删掉。
(4)WinCENLS_Lang_0804是wince.nls文件,这个在XIP里已经有了,可以删掉(有些机型可以放在XIP也可以放在SYS,有些机型只能放在XIP里)。
(5)browsingie\mxip_wpclang_favorites_1000.provxml这个文件里有4个地方是”\Windows\Favorites”,我们可以改成”\Windows\收藏夹”,这样可以避免一些软件打不开收藏夹。要注意修改后将这个文件保存为UTF-8格式。
7、移植结束~不过若是在DFT下载的核心,SYS是拆开各个不同的部分,就要自己手工整理成一个SYS目录。比如DFT最新的核心,WVGA的要将以下目录放在一起才完整:
(1)COMMON
(2)COMMON_0804
(3)WVGA_COMMON
(4)WVGA_0804

第四章 XIP及OEM处理

一、XIP的中文化处理
ROM\XIP\OEM里有WinCENLS_Lang_xxxx的目录,里面有个wince.nls,这个是负责系统的区域、语言显示相关内容,其中英文的是200K左右,简体中文的是800K左右,繁体中文的是1.4M左右。我们将这个换成简体中文的,省点空间,将WinCENLS_Lang_0404替换成WinCENLS_Lang_0804(简体中文ROM里的XIP有,或者刚才移植的21892核心的SYS里也有)。
二、OEM的处理
(一)下载基本相关软件
1、文件对比软件:Beyond Compare 3
下载:ftp://pcg@ftp.pcgpcg.net/ppc/HA-BCompare316.exe
2、搜索软件:SearchAndReplace63_gnatix.rar
下载:ftp://pcg@ftp.pcgpcg.net/ppc/SearchAndReplace63_gnatix.rar
3、汉化编辑软件:Restorator 2007
下载:ftp://pcg@ftp.pcgpcg.net/ppc/Restorator2007_1729_WestKing_HAP.exe
4、CAB编辑软件:WinCE Cab Manager v3.0.0.22 汉化版
[url=ftp://pcg@ftp.pcgpcg.net/ppc/WinCE Cab Manager v3.0.0.22 汉化版.rar]ftp://pcg@ftp.pcgpcg.net/ppc/WinCE Cab Manager v3.0.0.22 汉化版.rar[/url]
5、CAB转OEM包软件:package-creator-v2.7修正简体版
ftp://pcg@ftp.pcgpcg.net/ppc/package-creator-v2.7修正简体版.rar

(二)OEM基本说明
OEM可以简单理解为HTC官方集成的软件,而相近机型的大部分OEM都是通用的。当然我们做ROM的时候一般也会加入自己所需要的OEM包,这样刷机后这个软件、功能就直接存在,不必刷机后再安装、调整。
官方的OEM,可以简单分为两部分,一部分是PACKAGE_xxxx(机型)_xxxx(软件名),例如PACKAGE_BlackStone_AdobePDF,这类软件大部分是通用的,另一部分就是剩下的oemxxxx和OperatorPkg等,通常要做一定修改。
我们将繁体系统修改成简体系统,顺便直接把新的OEM移植过来吧,我们就以rhodium的原生M25官方ROM里的OEM为例吧(RUU_Rhodium_S2_hTC_Asia_WWE_2.07.707.1_Radio_Rhodium_4.49.25.91_Signed_Ship.exe)。
一个标准的OEM包会分成两部分,一部分程序的主体部分(exe、dll、图片等),另一部分是语言包(mui文件、相关注册表、快捷方式),我们中文化的功能,主要就是将MUI的内容改成简体,并将相应的MUI改名,比如xxx.exe.0404.mui,改名为xxx.exe.0804.mui,系统会根据当前系统语言,自动读取相应的MUI,所以MUI不改名的话会不起效的。我们可以使用Restorator 2007来打开MUI文件进行汉化工作。
下载解压出NBH,扔进xidiump里分解吧。不过我们先处理非通用OEM部分吧。
(三)处理非通用部分(以HD为例)
1、删掉无用目录
凡是目录里只有一个DSM的,都删掉吧,不起什么作用的。
BuildInfoPkg里有些TXT,是官方ROM的基本信息,也删掉。
ConfigAP里有个config_AP.txt,这个是第一次开机runcc调用的配置文件,以实现第一次开机时安装一些软件等,如果不需要用RUNCC的可以删掉。此外还有ControlBlock、ExtendedPkg目录,以及OperatorPkg及OperatorPkg_PT里的configxxx.txt都是RUNCC相关的。
2、处理OEM_Lang_xxxx
这个目录,可以解一个简体的ROM,和OEM_Lang_0804对比一下(用Beyond Compare 3)对比。
(1)RGU注册表处理
其中RGU可以参照简体的将相应的地方改成简体中文,比如:
REGEDIT4
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\PCMCIA]
    “Folder”=”儲存卡”
这个是定义储存卡的卡名,这里我们为了兼容性,一般是改成英文的卡名Storage Card
[HKEY_LOCAL_MACHINE\Comm\Irsir]
   “DisplayName”=”序列 (COM) IrDA 驅動程式”
这里直接改成简体“串行(COM) IrDA 驱动程序”
[HKEY_CURRENT_USER\Keyboard Layout\Preload]
    @=”e0010404″
[HKEY_CURRENT_USER\Keyboard Layout\Preload\1]
    @=”e0010404″
这两个是输入法默认区域,改成e0010804吧。
[HKEY_CLASSES_ROOT\{030D681B-1DFC-4bd0-A72A-A9B3CCCDA653}]
“DisplayName”=”相機”
直接改成简体相机
[HKEY_LOCAL_MACHINE\System\Pictures\Camera\OEM\PictureLocation]
“Internal”=”\\My Documents\\我的圖片\\”
也是直接改成简体\\My Documents\\我的图片
[HKEY_LOCAL_MACHINE\Software\Microsoft\Shell\Keys\40C6]
@=”\”\\Windows\\AppButtons\\語音快速撥號.lnk\””
“Name”=”功能鍵 1(按住)”
“Icon”=”\\windows\\SDDialer.exe, 0”
“ResetCmd”=”\”\\Windows\\AppButtons\\語音快速撥號.lnk\””
“Flags”=dword:0
“功能鍵 1(按住)”这个可以改成更直观的”拨号键(长按)”,而”語音快速撥號.lnk”改成”语音拨号.lnk”吧。
[HKEY_CURRENT_USER\Software\Microsoft\Today\Keys\112]
@=”行事曆”
这个是日历
“Open”=”\\windows\\calendar.exe”
[-HKEY_LOCAL_MACHINE\Software\Microsoft\Today\Items\”無線裝置”]
[-HKEY_LOCAL_MACHINE\Software\Microsoft\Today\Items\”無線裝置”]
这个注册表前面有-,代表删除,这个是删除今日项目里的”无线”
[HKEY_LOCAL_MACHINE\ControlPanel\Stylus\192DPI]
“CurFont”=dword:3E8
[HKEY_LOCAL_MACHINE\Security\ResOver]
“53”=”行動電話通訊線路 (GPRS , 3G)”
“54”=”GPRS , 3G”
这里依简体的改成”蜂窝电话线路 (GPRS)”
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SDMemory]
    “Folder”=”儲存卡”
这个也是卡名,实际上这个才起实际作用的,改成Storage Card
[HKEY_LOCAL_MACHINE\ControlPanel\TaskMgr]        
“Redirect”=””

基本上对照简体ROM的注册表来改就可以了。
(2)LogoMsg.bmp
这个是硬启时提示等待的图片文字,可以直接替换简体ROM里的,或者自己PS一个自己喜欢的说明:)
(3)pwi文件
这个是便笺的模板文件,可以直接用简体ROM里的
(4)mxip_initdb.vol
这个是数据库文件,可以不管它。
(5)mxipupdate_RemoteDesktopMobile.provxml
这个是创建远程桌面的provxml文件,直接替换用CHS的吧
(6)initflashfiles.dat
这个是硬启时创建目录、复制文件等操作的配置文件,这个可以用CoXCo.exe来解码再用记事本打开(tools里有)。
钻石、PRO、HD机型时这个文件只包含了系统目录、文件创建复制,而OEM包的文件是通过provxml调用AutoShortcut来操作的。不过钻石2后期的机型,OEM包的文件操作也直接放在这个文件里,我建议还是手工将各个OEM包的复制文件拆分到相应OEM包里。
我们先来说说系统部分的中文化吧。
同样,我们也是用一个简体的initflashfiles.dat来对比,记得先用CoXCo.exe解码后(生成initflashfiles.dat.txt),再通过Beyond Compare 3来对比。可以直接将initflashfiles.dat拖到CoXCo.exe身上,再选择解码,点击处理。然后在initflashfiles.dat.txt身上按右键选择“选择左侧文件”,再右键点击“与initflashfiles.dat.txt”对比。
这个是繁体和我简体化后的initflashfiles.dat.txt,大家可以对比看看:
下载:ftp://pcg@ftp.pcgpcg.net/ppc/initflashfiles(HD).rar

3、OEMDRIVERS
OEMDRIVERS一般不需要特殊处理,不过后期的机型里的蓝牙有个MUI是放在OEMDRIVERS的,必须汉化。
另外里面有个mxipupdate_zzRemoveTSKmgr_1.provxml,这个provxml是删掉任务管理器的快捷方式以及我的图片里的四张图片,需要的可以直接干掉这个provxml。

4、OEMVersion
这个里面有个注册表,功能是显示相应的版本号,这个目录可以直接删除,因为BT BUILD的界面已经提供了这个功能,直接在那里填写就可以了。

5、OperatorPkg和OperatorPkg_PT
这两个目录比较主要,也有点复杂。这里主要是放些运营商相关的东西,包括该机型的标志等。WWE和CHT版这个目录就清爽点。
这个目录主要要注意的地方有那几个provxml,里面有很多注册表都比较重要的,可以好好留意每一项。另外后期的机型这个目录里反而是rgu注册表比较重要,provxml简化了好多。
里面有个ModelName.txt文件,这个是设备信息里的关于机型的显示。
HTC Black.tsk,这个是主题文件,可以使用RHODIUM M25 ROM里的,这个可以在wm65上显示的效果要好,不过要注意要将HTCblack_xxxx.png也复制过来,否则没有wm65大菜单效果。
多和简体的,或者我及其他人模板的对比一下,以后有空再详细说说。

基本上就是这样,BT BUILD会自行产生一个Common目录,可以将上述的目录扔到这里,而PACKAGE_xxxxx_yyyyy的目录可以新建个相应的xxxxx目录,再扔进去,这样就整洁些。

(四)处理非通用部分(以rhodium为例)
前几天刚弄了一个rhodium模板,顺便再以rhodium机型为例说说这部分的OEM处理吧。大家可以下载模板对比一下,这样更直观。
1、除了OEM_Lang_0409、OEMDrivers、OEMMISC、OperatorPkg保留之外,其余目录删掉(我现在才发现我模板里把OEMMISC删了……呃,迷糊了)
2、OEM_Lang目录处理同上。
3、OEMDrivers目录要将BtRez.dll.0409.mui汉化并改名为BtRez.dll.0804.mui(这个好多内容,可以参考LEO CHS ROM里的汉化一下)。
4、OEMMISC应该是windows live及同步相关的,LEO机型的会多些证书之类的,这个不需要改都可以。
5、OperatorPkg目录
(1)htc-opera.htm,将里面的Search改成搜索
(2)嗯,这个ROM……HTC迷糊了,如果不启用HTC大菜单,那菜单的上下栏宽度与菜单宽度不符,超难看,所以要将HTCclassicblue_menuDownArrowBackground.png和HTCclassicblue_menuUpArrowBackground.png替换正确的文件……
(3)mxipupdate_oemoperators_101.provxml,这个可以将中国移动默认的连接加进去,将CHS ROM里的相关内容复制进去即可。
(4)mxipupdate_oemoperators_104.provxml,可以将彩信设置及相关PROVXML内容加进去。
(5)RGU注册表:
[HKEY_LOCAL_MACHINE\nls]
“DefaultLCID”=dword:00000C09
默认区域,所以将C09改成804
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\RIL]
“NITZEnable”=dword:00000000
改成1可以打开自动基站对时(但某些区域的时间可能会变慢)
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Clock]
“Home”=dword:00000187
[HKEY_LOCAL_MACHINE\Software\HTC]
“DefaultTz”=dword:000000D7
将187改成031,将D7改成D2,这两个可能与默认城市有关。
[HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\AboutURLs]
“home_0409″=”file://\\windows\\home.html”
将前面的home_0409改成home_0804,IE的主页。
[HKEY_CURRENT_USER\Software\HTC\Manila]
“Locale”=”en-AU”
将en-AU改成zh-CN吧。

好了,就是这么简单,还可以将PKG里多余的一些文件删掉。

(五)处理PACKAGE_RHODIUM_S2_OEM部分
这部分的工作,就是将RHODIUM的OEM改成简体。
各个OEM的改法其实都一样的,无非是将MUI的内容改成简体并改名,修改相应的注册表,再创建initflashfiles.txt,将initflashfiles.dat里相应的部分复制修改进去。另外还可以为非必须软件创建option.xml,在bt build界面上提供选择是否订制。
当然实际上我们不可能真的将各个MUI自己手工汉化,多大的工作量啊……我们可以偷懒点,下载LEO和QILIN的CHS ROM,解开,找到相应的MUI,直接用里面的(当然最好还是打开MUI对比一下看有不同之处不,不同之处再修改一下)。
所以虽然这部分花费的时间最多,但反而没什么好提的,主要是体力活,自己对比一下我模板的和RHODIUM原始的就知道了。
所以这里就不说具体的过程了,这里简单说一下一个OEM包的制作,以及列一下rhodium的每个OEM包的简单说明吧。

1、BuildInfoPkg
ROM的基本信息
2、ConfigAP
里面有个config_AP.txt,供runcc第一次开机时调用,以进行安装CAB、处理XML等。
3、ConnectionSetupDB
这个是ConnectionSetup所需的数据包,里面包含了许多国家的运营商设置,这里也可以精简,去掉你用不上的国家数据库,这里的DB文件其实是与注册表中运营商显示相对应的(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RIL\OperatorNames)。
另外里面的DB文件,其实是个ZIP包,不过是加密的了,密码也比较容易找,是明码写在ConnectionSetup.exe里的,用WINHEX搜索U码DBIndex,下面几行就可以看到明文的密码(030D681B-1DFC-4bd0-A72A-A9B3CCCDA653),解压后可以看见全是一些XML。(谢谢hzggz提供的方法)
4、ControlBlock
里面有个runcc.lua,是提供给RUNCC执行configxxx.txt用的,防止缺少某个config.txt时会定在安装界面。
5、ExtendedPkg
里面的config.txt就是供runcc用的配置文件,可以参考官方的来添加自己需要第一次开机进行安装的软件等。
6、OEMDrivers
驱动目录,若想换个驱动,除了换OEMDrivers之外,还要换相应版本的\ROM\XIP\OEM\OEMXIPKernel
7、OEMMISC
windows同步等?(待高人详解)
8、OEMVersion
ROM版本号的注册表
9、OEM_Lang_0409
系统基本相关配置,上面已经详细说过了。
10、OperatorPkg
运营商的一些设置
10、OperatorPkg_PT
同上
11、PACKAGE_RHODIUM_S2_AdobePDF
AdobePDF的OEM包,看PDF用的软件
12、PACKAGE_RHODIUM_S2_AdvancedNetwork
高级网络
13、PACKAGE_RHODIUM_S2_aGPS_Confirmation
AGPS OEM包(不知道为什么PRO2的AGPS用不了)
14、PACKAGE_RHODIUM_S2_Album
相册
15、PACKAGE_RHODIUM_S2_AppointmentEditor
约会编辑
16、PACKAGE_RHODIUM_S2_App_Service
电话相关服务
17、PACKAGE_RHODIUM_S2_Arphic_CHS_WWE_Font
亚太版的粗黑字体
18、PACKAGE_RHODIUM_S2_Audio_Booster
音频增强器
19、PACKAGE_RHODIUM_S2_Audio_Manager_Engine
马尼拉的音频管理器
20、PACKAGE_RHODIUM_S2_BCR_WWE
名片识别程序
21、PACKAGE_RHODIUM_S2_Boot_Launcher
开机加载服务、程序
22、PACKAGE_RHODIUM_S2_BrowserSnapshot
IE相关增强组件
23、PACKAGE_RHODIUM_S2_Calculator
HTC的计算器
24、PACKAGE_RHODIUM_S2_Camera_HTC_ALL
HTC相机
25、PACKAGE_RHODIUM_S2_ClearStorage
恢复出厂设置
26、PACKAGE_RHODIUM_S2_CMBandSwitching_HTC_ALL
频段
27、PACKAGE_RHODIUM_S2_CMCallBarring
呼叫限制
28、PACKAGE_RHODIUM_S2_CMCallerID
本机号码
29、PACKAGE_RHODIUM_S2_CMCallForwarding
呼叫转移
30、PACKAGE_RHODIUM_S2_CMCallWaiting
呼叫等待
31、PACKAGE_RHODIUM_S2_CMPhoneVMSetting
语音邮件和短信
32、PACKAGE_RHODIUM_S2_CMPhone_HTC_ALL
手机设置
33、PACKAGE_RHODIUM_S2_CMPin
PIN 码
34、PACKAGE_RHODIUM_S2_CommManager_HTC_ALL
无线控制(通讯管理器)
35、PACKAGE_RHODIUM_S2_Concurrence_Mgr
htc界面插件的控制,比如htc音量控制媒体界面调节(谢谢sundream说明)
36、PACKAGE_RHODIUM_S2_ConnectionSetup_HTC_ALL
连接设置
37、PACKAGE_RHODIUM_S2_Contact_Picker
联系人组件
38、PACKAGE_RHODIUM_S2_Contact_Utility_Engine
马尼拉联系人组件
39、PACKAGE_RHODIUM_S2_DataDisconnect
断开数据连接
40、PACKAGE_RHODIUM_S2_DeviceInfo
设备信息
41、PACKAGE_RHODIUM_S2_DRM_Middleware
多媒体相关组件
42、PACKAGE_RHODIUM_S2_Dshow
多媒体相关组件
43、PACKAGE_RHODIUM_S2_Email_Setup_Wizard
邮箱设置
44、PACKAGE_RHODIUM_S2_ExtNewPhoneSetting
新电话设置
45、PACKAGE_RHODIUM_S2_Facebook_Engine
Facebook组件
46、PACKAGE_RHODIUM_S2_Field_T_e_s_t
FieldTest测试工具
47、PACKAGE_RHODIUM_S2_FlashLiteShareDLL
Flash组件
48、PACKAGE_RHODIUM_S2_FM_Radio
收音机
49、PACKAGE_RHODIUM_S2_FormatSD
格式化SD卡
50、PACKAGE_RHODIUM_S2_Full_Screen_Player
视频播放
51、PACKAGE_RHODIUM_S2_GoogleLocationService
52、GOOGLE我的位置服务
53、PACKAGE_RHODIUM_S2_GPS_GMM
54、GOOGLE地图
55、PACKAGE_RHODIUM_S2_GroupEditor
群组编辑
56、PACKAGE_RHODIUM_S2_G_Sensor_Calibrator
重力调节
57、PACKAGE_RHODIUM_S2_HTCAnimation
开机动画
58、PACKAGE_RHODIUM_S2_HTCApplication
、HTC服务(车载、蓝牙?)
59、PACKAGE_RHODIUM_S2_HTCBirthday
生日提醒?
60、PACKAGE_RHODIUM_S2_HTCBookmark
收藏夹相关
61、PACKAGE_RHODIUM_S2_HTCFDN
固定拨号
62、PACKAGE_RHODIUM_S2_HTCFont_Link
字体映射
63、PACKAGE_RHODIUM_S2_HTCFramework
htc执行构架:
分支:仅用于htc的apps与可支持界面时间的增强版本(谢谢sundream说明)
64、PACKAGE_RHODIUM_S2_HTCGeoService
我的位置服务
65、PACKAGE_RHODIUM_S2_HTCMessage
警告信息相关
66、PACKAGE_RHODIUM_S2_HTCMessaging_Client
HTC信息
67、PACKAGE_RHODIUM_S2_HTCScroll
滚动组件
68、PACKAGE_RHODIUM_S2_HTCSettings
蓝牙可见模式超时设置
69、PACKAGE_RHODIUM_S2_HTCStartUp
开机启动服务?
70、PACKAGE_RHODIUM_S2_HTCUtil
HTC电话服务?
71、PACKAGE_RHODIUM_S2_IE6Enhancement
IE6增强组件
72、PACKAGE_RHODIUM_S2_IME_CHS
HTC输入法
73、PACKAGE_RHODIUM_S2_IME_Tutorial
HTC输入法教程
74、PACKAGE_RHODIUM_S2_InvokeSIMMgr
SIM卡管理器
75、PACKAGE_RHODIUM_S2_Java_JblendPackage_2_1
JAVA模拟器
76、PACKAGE_RHODIUM_S2_JETCET_Print
蓝牙打印机
77、PACKAGE_RHODIUM_S2_LockScreenAppLauncher
锁屏
78、PACKAGE_RHODIUM_S2_LockstreamDRM
流媒体相关组件
78、PACKAGE_RHODIUM_S2_Long_Press_End_Key
长按结束键
79、PACKAGE_RHODIUM_S2_Manila_Calendar
马尼拉日历组件
80、PACKAGE_RHODIUM_S2_Manila_Core
马尼拉核心组件
81、PACKAGE_RHODIUM_S2_Manila_Home
马尼拉首页组件
82、PACKAGE_RHODIUM_S2_Manila_Internet
马尼拉网络组件
83、PACKAGE_RHODIUM_S2_Manila_Mail
马尼拉邮件组件
84、PACKAGE_RHODIUM_S2_Manila_Message
马尼拉信息组件
85、PACKAGE_RHODIUM_S2_Manila_Music
马尼拉音乐组件
86、PACKAGE_RHODIUM_S2_Manila_People
马尼拉联系人组件
87、PACKAGE_RHODIUM_S2_Manila_Photo
马尼拉相册与视频组件
88、PACKAGE_RHODIUM_S2_Manila_Settings
马尼拉设置组件
89、PACKAGE_RHODIUM_S2_Manila_Stock
马尼拉股票组件
90、PACKAGE_RHODIUM_S2_Manila_Twitter
马尼拉Twitter组件
91、PACKAGE_RHODIUM_S2_Manila_Weather
马尼拉天气组件
92、PACKAGE_RHODIUM_S2_Media_Tool_kit
相册相关组件
93、PACKAGE_RHODIUM_S2_Menu_Enhancement
HTC增强菜单(大菜单)
94、PACKAGE_RHODIUM_S2_Message_Enhancement
信息增强组件
95、PACKAGE_RHODIUM_S2_mHub_VO
多媒体相关组件
96、PACKAGE_RHODIUM_S2_MicrophoneAGC
自动音量控制
97、PACKAGE_RHODIUM_S2_MP3_Trimmer
MP3剪辑器
98、PACKAGE_RHODIUM_S2_MS_Facebook
Facebook组件
99、PACKAGE_RHODIUM_S2_Mute
静音组件
100、PACKAGE_RHODIUM_S2_MyCPL
设置组件
101、PACKAGE_RHODIUM_S2_New_Contact_Card
联系人组件
102、PACKAGE_RHODIUM_S2_Notification_Enhancement
通知增强,里面的NTFConfig.dll模块与PRB不兼容,必须转换成文件形式,否则会死第一屏。转换方法:将NTFConfig.dll目录拖到tools\RecMod.exe身上,NTFConfig.dll目录里就会产生一个NTFConfig.dll文件,将这个文件移到其他地方,删掉NTFConfig.dll目录再把NTFConfig.dll文件复制回OEM包里即可。
103、PACKAGE_RHODIUM_S2_OOBE
第一次开机演示
104、PACKAGE_RHODIUM_S2_Opera_Browser
OPERA OEM包
105、PACKAGE_RHODIUM_S2_PhoneSetting
电话设置
106、PACKAGE_RHODIUM_S2_Phone_Canvas_Enhancement
电话面板
107、PACKAGE_RHODIUM_S2_Picture_Enhancement
图片增强
108、PACKAGE_RHODIUM_S2_PKG
未知……
109、PACKAGE_RHODIUM_S2_Power
电源
110、PACKAGE_RHODIUM_S2_PowerOffWarning
长按关机键提示
111、PACKAGE_RHODIUM_S2_Quick_GPS
快速GPS
112、PACKAGE_RHODIUM_S2_Random_Access
联系人划选
113、PACKAGE_RHODIUM_S2_Redial
重拨
114、PACKAGE_RHODIUM_S2_Resource_Proxy
图片资源缓存(会占用很多内存)
115、PACKAGE_RHODIUM_S2_Ringtone_Plugin
铃声插件
116、PACKAGE_RHODIUM_S2_RSSHub
RSSHub OEM包
117、PACKAGE_RHODIUM_S2_RunCC
开机第一次运行的程序
118、PACKAGE_RHODIUM_S2_Sensor_SDK
重力SDK包
119、PACKAGE_RHODIUM_S2_Settings_Improvement
增强设置
120、PACKAGE_RHODIUM_S2_SharedResource
与HTCFramework配套组件
121、PACKAGE_RHODIUM_S2_Shared_Modules
振动等需要的共享组件
122、PACKAGE_RHODIUM_S2_SignatureReplace

123、PACKAGE_RHODIUM_S2_SimContactImport
导入 SIM 卡联系人
124、PACKAGE_RHODIUM_S2_SimLock
SIM卡锁定
125、PACKAGE_RHODIUM_S2_SIM_Mgr_hTC_Asia_WWE
SIM卡管理器
126、PACKAGE_RHODIUM_S2_SlidingSound
侧滑声音
127、PACKAGE_RHODIUM_S2_Social_Networks_Engine
账户管理
128、PACKAGE_RHODIUM_S2_StartIconLoader
马尼拉启动组件
129、PACKAGE_RHODIUM_S2_STK_Service
STK服务
130、PACKAGE_RHODIUM_S2_STK_UIPPC
STK相关组件
131、PACKAGE_RHODIUM_S2_StorageLow
存储器容量低警告
132、PACKAGE_RHODIUM_S2_Streaming_Media
流媒体播放
133、PACKAGE_RHODIUM_S2_Streaming_SDK
流媒体库
134、PACKAGE_RHODIUM_S2_TaskBarIconMgr
任务栏图标
135、PACKAGE_RHODIUM_S2_Teeter
重力球游戏
136、PACKAGE_RHODIUM_S2_Text_Selection
马尼拉信息文字复制选择
137、PACKAGE_RHODIUM_S2_TimeZoneAutoFix
自动对时
138、PACKAGE_RHODIUM_S2_TVOutPopUp
电视输出
139、PACKAGE_RHODIUM_S2_TVOutSetting
电视输出组件
140、PACKAGE_RHODIUM_S2_USB_To_PC_Pop_Up
USB TO PC组件
141、PACKAGE_RHODIUM_S2_USSD_Service
htc上通用的服务,具体有什么作用不清楚……
142、PACKAGE_RHODIUM_S2_VBookmarkMgr
书签?
143、PACKAGE_RHODIUM_S2_Video_Telephony
可视电视
144、PACKAGE_RHODIUM_S2_Voice_Recorder
录音机
145、PACKAGE_RHODIUM_S2_Volume_Control
音量控制
146、PACKAGE_RHODIUM_S2_Wi-FiWizard
Wi-Fi向导
147、PACKAGE_RHODIUM_S2_WiFiSettings
WiFi设置
148、PACKAGE_RHODIUM_S2_WLANSettings
无线网络设置
149、PACKAGE_RHODIUM_S2_YouTube
YouTube的OEM
150、PACKAGE_RHODIUM_S2_zlibce_m
解码组件,manila等部分媒体程序用到(谢谢sumdream说明)
151、ProjectDefault_A
文件夹图标
152、ProjectDefault_B
声音与墙纸
153、ProjectDefault_C
一些版本的注册表

基本就是这样,有错误的地方请大家指正。

第五章 OEM包制作

将我以前写的教程复制过来……(以前只在IVGA发过)

定制个人ROM时常常会加入自己所需要的软件吧,这样就需要这个软件的OEM包了,而OEM包可以使用别人做的,而如果这个软件没人做成OEM包的话就要自己做了。而且如果某个软件使用有问题,要想分析是不是OEM包的问题,也得有OEM包的相关知识,因此在这里我简单的说一下OEM包是如何制作的吧。

一、OEM包的结构
OEM包通常包含的文件如下:
1、DSM文件(必需):OEM必需的文件只有一个,就是DSM文件。而DSM的文件名必须是一串GUID码,这个GUID码可以用GUID码生成器来随机生成一个。这个文件可以是空文件,官方的之所以有内容,是因为含有该目录里的文件列表及签名。
2、RGU文件:这个是注册表文件,文件名必须和DSM一致才可以。首行必须为REGEDIT4,最后一行必须为空行,编码格式为UNICODE。
3、initflashfiles.txt,这个是复制文件用的,将OEM包里的文件复制到其他目录。我们只需掌握两种命令格式就可以了:
(1)创建目录:Directory(“源目录”):-Directory(“新建目录”)
例如:Directory(“\Program Files”):-Directory(“PlumSIP61”)
代表在\Program Files目录下新建一下PlumSIP61目录
(2)复制文件:Directory(“目标目录”):-File(“文件名”,”源目录文件”)
例如:Directory(“\windows\startup”):-File(“PlumStart6.lnk”,”\Windows\PlumStart6.lnk_1″)
代表将\Windows\PlumStart6.lnk_1这个文件复制到\windows\startup,并改名为PlumStart6.lnk
比较简单吧
4、option.xml,这个文件是提供信息给build os显示OEM包说明的,完整的比较长,我们可以简单点,只需基本的几句就可以了,如下是点讯6.1的option.xml:
<?xml version=”1.0″ encoding=”UTF-16″ standalone=”yes”?>
<Items>
  <Item name=”点讯6.1.0008_by_pcg” group=”输入法” checked=”true”>
    <Tip>点讯6.1.0008_by_pcg</Tip>
    <Guid type=”p”>22361577-db8d-4443-8a2a-02af017e7298</Guid>
  </Item>
</Items>

对应的说明:

<?xml version=”1.0″ encoding=”UTF-16″ standalone=”yes”?>
<Items>
  <Item name=”显示在buildos里的文字” group=”分组” checked=”默认勾选状态”>
    <Tip>鼠标放在该项时弹出来的说明(非必须)</Tip>
    <Guid type=”p”>这个OEM的GUID码</Guid>
  </Item>
</Items>

即:
第一第二行我们不需要改
第三行的Item name=”XXXXX”是显示在buildos里的文字,group=”xxxx”是分组,相同分组的OEM会在一起显示,后面的checked=”true”是默认勾选状态,其中true代表默认勾上,而false则是不勾选
第四行的<Tip>XXXXX</Tip>是鼠标放在该项时弹出来的说明,不要这个也不会有影响
第五行是这个OEM的GUID码,必须和DSM的GUID码一致才可以,否则build os可能无法开启

5、其余文件:OEM软件的文件
二、以绿色软件pim ppcbackup举例说明制作一个绿色软件的OEM包
1、这个软件是绿色软件,只有一个EXE文件,可以在任意目录运行,并且是没有注册表的,因此这个OEM包就很容易制作:
(1)在OEM目录下面新建一个目录,名字为ppcbackup2.8吧,直观点
(2)把PPCPimBackup.exe放在里面
(3)打开GUID生成器.exe,然后选择第一项“只生成DSM文件”,然后点击生成文件,这样就会在GUID生成器.exe的目录里生成一个DSM文件,68BE2663-A7BC-4ff7-B0A8-85B379A201EA.dsm,把这个DSM文件复制到ppcbackup2.8目录里
(4)新建一个快捷方式,后缀名是lnk,可以先新建一个txt文件,内容为:
#”\Windows\PPCPimBackup.exe”
然后再将txt改名为PIMbackup.lnk
可以看见快捷方式的格式很简单,前面是一个#,然后接着是引号括着的源文件的路径,因为OEM里的文件会全部放在windows里,所以快捷方式就要引到\Windows\PPCPimBackup.exe
(5)我们还在将快捷方式复制到开始菜单的程序里才可以,方便打开这个软件,我们总不能每次用这个软件都进入windows目录再打开PPCPimBackup.exe吧,新建一下initflashfiles.txt,内容如下:
Directory(“\Windows\“开始”菜单\程序”):-File(“个人信息备份PimBackup.lnk”,”\Windows\pimbackup.lnk”)
(6)新建一个option.xml,内容如下:
<?xml version=”1.0″ encoding=”UTF-16″ standalone=”yes”?>
<Items>
  <Item name=”PIMBACKUP个人信息备份恢复工具2.8″ group=”_pcg_oem” checked=”true”>
    <Tip>;PIMBACKUP个人信息备份恢复工具2.8</Tip>
    <Guid type=”p”>68BE2663-A7BC-4ff7-B0A8-85B379A201EA</Guid>
  </Item>
</Items>
2、这样一个绿色软件pimbackup的OEM包就建立完毕,比较简单吧,打开build os就可以看见有pimbackup这个OEM包了,弄好ROM刷了之后,在开始/程序就可以看见个人信息备份PimBackup,点击打开试试吧
三、以google map简体CAB安装包为例做个OEM软件
1、去google网站下载个简体的cab安装包回来
2、用WinCE CAB Manager3.0打开这个CAB包,可以看见里面有4个文件、1个快捷方式及15项注册表其中3个文件是在%CE1%\ChinaGoogleMaps,还有一个strings-all.zlb是在%CE19%\ChinaGoogleMaps,WinCE CAB Manager的帮助有关于%CEX%代表着什么目录,其中%CE1%是\Program Files,%CE19%是\Application Data
3、因此我们可以将这4个文件解出来,然后再导出注册表,再用initflashfiles.txt将这4个文件复制到相关目录,然后再复制一个快捷方式到开始/程序里就OK了
4、不过我们试一下更简单的方法,就是使用cab转oem包软件package-creator-v2.7
5、这个软件的使用很简单,打开软件,点击open cab file,选择GoogleMaps_compressed.CAB,然后过一会儿package-creator-v2.7就会弹出done的窗口,然后你就可以发现package-creator-v2.7目录下有个GoogleMaps_compressed的目录,这个就是GoogleMaps_compressed的OEM包了,DSM、RGU、option.xml、initflashfiles.txt全都有,很简单吧
6、不过我们还要打开initflashfiles.txt看看有要修正的不。
Directory(“\Windows”):-Directory(“开始”菜单)
Directory(“\Windows\”开始”菜单”):-Directory(“程序”)
Directory(“\Windows\”开始”菜单\程序”):-File(“China Google Maps.lnk”,”\Windows\China Google Maps.lnk”)
其中第一第二行我们删掉,因为本来就是有\windows\“开始”菜单\程序这个目录的,所以不用新建。其余没什么。
最后我们修改一下option.xml,将GoogleMaps_compressed改成GoogleMaps简体2.2.1.4,要不然在build os里我们很容易搞混,呵呵
7、这样子不OK了,使用这个软件可以很快捷的制作到OEM包来,不过我们记住做好后要查看一下有没有错误哦
四、最后以一个比较复杂的点讯6.1的CAB做成OEM包吧
1、去官方网下载6.1.0008的安装包
2、用package-creator-v2.7打开点讯CAB包,然后会生成PlumSIP Pro VGA V6_1_0008目录
3、不过这次可没这么简单,因为点讯6.1含有三个皮肤,即钻石皮肤、横屏钻石皮肤、以前的默认皮肤,而这三个皮肤的文件名是一样的,用package-creator-v2.7转换的话只会留下一个同名文件,其余的应该被覆盖了。另外键盘定义文件也有两套4个是同名的
4、因此这次我们不能偷懒了……我们用WinCE CAB Manager打开点讯的CAB包,点击一下排序栏的“位置”进行安装目录排序,我们先把%CE1%\PlumSIP61\skin\Diamond里的文件解压出来,然后将这样文件的后缀名都加个_,如将sel2.png改成se12.png_
5、我们再把%CE1%\PlumSIP61\skinw\Diamond的文件解压出来,这次都在后面加上_2来区别
6、再将%CE1%\PlumSIP61\skin\Normal的文件解压出来,因为前面两个皮肤都改名了,所以这个就不用改名了
7、还有键盘定义文件也有两套,我们将%CE1%\PlumSIP61\skink\hotkey的4个文件解压出来,后面加上个_区别一下吧
8、再将%CE1%\PlumSIP61\skink\NumSel里的4个文件解压出来,这个就不用改名了
9、好了,这样所有文件都齐了,我们修改一下initflashfiles.txt,将刚才改名的文件一一在initflashfiles.txt对应修改,如原本的:
Directory(“\Program Files\PlumSIP61\skin\Diamond”):-File(“bh.ini”,”\Windows\bh.ini”)
改成:、
Directory(“\Program Files\PlumSIP61\skin\Diamond”):-File(“bh.ini”,”\Windows\bh.ini_”)
即只需将最后的\Windows\bh.ini改成\Windows\bh.ini_
10、难道这样就OK了吗?不,这样订制进去的话不是默认输入法的哦……点讯的默认输入法实现方法是在\windows\startup目录建个快捷方式,每次开机时会将点讯设成默认输入法的
11、而CAB包里有个setup.dll这个安装库文件,我不懂编程,所以不知道这个文件具体都有什么用,不过据我的推荐,这个文件有两个作用,1、是CAB安装完成时将PlumStart6这个文件改名为PlumStart6.lnk复制到\windows\startup,并提示是否重启;2、是将输入法由PlumSIP 6.1改名为点讯输入 6.1。
12、因此,我们先将PlumStart6改名为PlumStart6.lnk,可以打开这个快捷方式看一下,可以看见内容是(40#”\Program Files\PlumSIP61\PlumStart6.exe”),证明确实是个快捷方式来的
13、然后在initflashfiles.txt里加入一句:
Directory(“\windows\startup”):-File(“PlumStart6.lnk”,”\Windows\PlumStart6.lnk”)
14、然后将RGU里的:
[HKEY_CLASSES_ROOT\CLSID\{7DA6EDD4-0FBB-4ed0-BAB8-6893F45FF9B5}]
“default”=”PlumSIP 6.1”
改成:
[HKEY_CLASSES_ROOT\CLSID\{7DA6EDD4-0FBB-4ed0-BAB8-6893F45FF9B5}]
“default”=”点讯输入 6.1”
这样就OK了~~~
15、不过点讯6.1默认是不开启键盘输入的,我们修改下一下使默认就是支持键盘的吧,人性化一点,呵呵。打开RGU文件,将:
[HKEY_CLASSES_ROOT\CLSID\{7DA6EDD4-0FBB-4ed0-BAB8-6893F45FF9B5}\Option]
“useKey”=”0”
由0改成1就OK了,这项就是是否支持键盘的注册表
16、完成~~~

五、EXT包与OEM包的区别
EXT包的制作比OEM包要简单些,因为EXT包是不需要DSM的,而且REG的格式要求也比RGU的低。
基本结构如下:
EXT OEM包
    |
    |–app.reg(注册表,支持Unicode和ANSI,最后无需空行)
    |–app.dat(和initflashfiles.txt一样,复制文件用)
    |–\files\(files目录,放置OEM包文件)
    |–\0804\(语言包目录,放置相应语言的MUI及)
         |–app.reg(语言包注册表)
         |–app.dat(语言包复制文件)

只是目录结构及注册表、复制文件不同而已,现在也有不少工具可以将EXT和OEM相互转换的。

第六章 添加必需OEM包及注册表优化

1、字体OEM包
如果之前在SYS里删掉了新宋体的字体,以及OEM包里的粗黑字体,那我们必须加上一个自己喜欢的字体,否则系统会显示不出中文的。我比较喜欢雅黑5.0,这个是完全不会出界的字体。
2、注册表优化
我们还可以修改注册表,调整一些细节,以下是我的优化注册表,可以放在最后的目录里,以便覆盖前面的注册表。[code]
REGEDIT4
;=========================================================
; 硬启动屏幕校正:
; FFFFFFF7:只保留复制粘贴设置;
; FFFFFFFB:只保留复制粘贴设置界面前的说明;
; FFFFFFFD:只保留屏幕校准;
; FFFFFF7F:只保留电子邮件设置;
; FFFFFFBF:只保留密码设置;
; FFFFFFDF:无须设置,直接显示完成界面;
; FFFFFFEF:只保留,时区和日期时间的设置。
[HKEY_LOCAL_MACHINE\Software\Microsoft\Welcome]
“Disable”=dword:FFFFFFEF
[HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\KEYBD]
“FirstCalibration”=dword:00000001
;=========================================================
; 马尼拉2.5首页快捷方式
;=========================================================
[HKEY_LOCAL_MACHINE\SOFTWARE\HTC\Manila\Home\0]
“IconPath”=”\\Windows\\pcg-setup.png”
“DispName”=”pcg设置”
“IsSet”=dword:00000001
“HomeServiceType”=dword:00000001
“ContactFavorType”=dword:655D0BE8
“ExePath”=”\\Windows\\pcg_CeleSetup.lnk”
“IsReadOnly”=dword:00000000
“Index”=dword:00000000
“ContactOid”=””
“IsNeedRefresh”=dword:00000000
[HKEY_LOCAL_MACHINE\SOFTWARE\HTC\Manila\Home\1]
“IconPath”=”\\Windows\\Tab_RescoExplorer.png”
“IsSet”=dword:00000001
“HomeServiceType”=dword:00000001
“ContactFavorType”=dword:655E2BF8
“ExePath”=”\\Windows\\Resco File Explorer.lnk”
“DispName”=”Resco File Explorer”
“IsReadOnly”=dword:00000000
“Index”=dword:00000000
“ContactOid”=””
“IsNeedRefresh”=dword:00000000
[HKEY_LOCAL_MACHINE\SOFTWARE\HTC\Manila\Home\2]
“IconPath”=”\\Windows\\HTC_camera.png”
“IsSet”=dword:00000001
“HomeServiceType”=dword:00000001
“ContactFavorType”=dword:656084F4
“ExePath”=”\\Windows\\HTC_Camera.lnk”
“DispName”=”相机”
“IsReadOnly”=dword:00000000
“Index”=dword:00000000
“ContactOid”=””
“IsNeedRefresh”=dword:00000000
[HKEY_LOCAL_MACHINE\SOFTWARE\HTC\Manila\Home\3]
“IconPath”=”\\Windows\\h_SI_OmegaTorch.png”
“DispName”=”手电筒”
“ExePath”=”\\Windows\\OmegaTorch.lnk”
“ContactFavorType”=dword:62A1A268
“HomeServiceType”=dword:00000001
“IsSet”=dword:00000001
“IsReadOnly”=dword:00000000
“Index”=dword:00000000
“ContactOid”=””
“IsNeedRefresh”=dword:00000000
[HKEY_LOCAL_MACHINE\SOFTWARE\HTC\Manila\Home\4]
“IsNeedRefresh”=dword:00000000
“IsSet”=dword:00000001
“HomeServiceType”=dword:0000000C
“ContactFavorType”=dword:6115D224
“DispName”=”[[IDS_WEATHER_TOGGLE]]”
“IsReadOnly”=dword:00000000
“Index”=dword:00000000
“ContactOid”=””
“ExePath”=””
“IconPath”=””
;=========================================================
; 禁用图片缓存
;=========================================================
[-HKEY_CURRENT_USER\Software\HTC\BootLauncher\Apps\PreLoadRes]
[-HKEY_CURRENT_USER\Software\HTC\BootLauncher\Services\ResProxy]
;=========================================================
; 增加自动旋转程序
;=========================================================
[HKEY_CURRENT_USER\Software\HTC\HTCSENSOR\GSensor\ModuleName]
“Adobe Reader”=”\\Windows\\AdobeReaderLE.exe”
[HKEY_CURRENT_USER\Software\HTC\HTCSENSOR\GSensor\WhiteList]
“Adobe Reader”=”Adobe Reader”
;=========================================================
; 删除自动旋转程序
;=========================================================
[HKEY_CURRENT_USER\Software\HTC\HTCSENSOR\GSensor\WhiteList]
“tmail”=-
[HKEY_CURRENT_USER\Software\HTC\HTCSENSOR\GSensor\ModuleName]
“tmail”=-
;=========================================================
; 打开OPERA缩放栏
;=========================================================
[HKEY_LOCAL_MACHINE\Software\Opera\Defaults]
“PinchAndZoomEnable”=dword:00000001
“IgnoreNetworkDownEvent”=dword:00000001
“ShowNetworkDownGap”=dword:00000005
“ZoomSliderTimeout”=dword:000007d0
“ZoomSliderEnabled”=dword:00000001
“VibrationEnabled”=dword:00000001
“StrengthLinkClicked”=dword:00000003
“StrengthLaunchButton”=dword:00000003
“StrengthZoomLaunchButton”=dword:00000003
“StrengthZoomSliderKnob”=dword:00000000
“StrengthDoubleClickZoom”=dword:00000000
;=========================================================
; OPERA默认主页
;=========================================================
[HKEY_LOCAL_MACHINE\Software\Opera\Prefs\User Prefs]
“Home URL”=”\\windows\\htc-opera.htm”
“Default URL”=”\\windows\\htc-opera.htm”
;=========================================================
; 不显示SIM卡类型
;0、1显示运营商+卡类型,8只显示卡类型,9只显示运营商
;=========================================================
[HKEY_LOCAL_MACHINE\SOFTWARE\OEM\PhoneSetting]
“ONSDisplayRule”=dword:00000009
;=========================================================
; 修复闹钟被提醒打断问题
;=========================================================
[HKEY_CURRENT_USER\ControlPanel\Notifications]
“AlertInterrupt”=dword:00000000
;=========================================================
; 默认天气源为国内天气源
;=========================================================
[HKEY_CURRENT_USER\Software\HTC\Manila]
“Weather.ServerURLOverride”=”http://mdeve.com/weather/?locCode=%ls&t=wcc”
[HKEY_CURRENT_USER\Software\pcg]
“Weather”=”cn”
;=========================================================
; 默认打开马尼拉时间同步
;=========================================================
[HKEY_LOCAL_MACHINE\Software\HTC\TimeZoneAutoFix]
“CreatePDPAlways”=dword:00000000
;=========================================================
; 默认打开我的位置并同意GOOGLE定位数据
;=========================================================
[HKEY_LOCAL_MACHINE\Software\Google\cll]
“tos accepted”=dword:00000001
“idle collection”=dword:00000001
[HKEY_LOCAL_MACHINE\Software\Google\cll\permission list]
[HKEY_LOCAL_MACHINE\Software\Google\cll\permission list\services.exe]
“services.exe”=dword:00000001
[HKEY_CURRENT_USER\Software\HTC\Manila]
“Weather.CurrentCity”=dword:1
;=========================================================
; 显示锁屏选择
;=========================================================
[HKEY_LOCAL_MACHINE\Software\microsoft\Shell\LockScreen]
“ShowLockScreenPicker”=dword:00000001
;=========================================================
; 显示按键里的旋转屏幕
;=========================================================
[HKEY_LOCAL_MACHINE\System\GDI\Rotation]
“HideOrientationUI”=dword:0
;=========================================================
; 通知增强显示连接时间
;=========================================================
[HKEY_CURRENT_USER\Software\HTC\NOTIFICATIONMANAGER]
“APNShowTimer”=dword:00000000
;=========================================================
; HTC邮箱设置
;=========================================================
[HKEY_LOCAL_MACHINE\SOFTWARE\HTC\EmailWizard]
“EnableProviderList”=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\HTC\EmailWizard\Providers\Gmail]
“Enable”=dword:00000001
“Index”=dword:00000001
“Name”=”Gmail”
“Domain”=”@gmail.com”
[HKEY_LOCAL_MACHINE\SOFTWARE\HTC\EmailWizard\Providers\163]
“Enable”=dword:00000001
“Index”=dword:00000002
“Name”=”163”
“Domain”=”@163.com”
[HKEY_LOCAL_MACHINE\SOFTWARE\HTC\EmailWizard\Providers\Sina]
“Enable”=dword:00000001
“Index”=dword:00000003
“Name”=”Sina”
“Domain”=”@sina.com”
[HKEY_LOCAL_MACHINE\SOFTWARE\HTC\EmailWizard\Providers\Sohu]
“Enable”=dword:00000001
“Index”=dword:00000004
“Name”=”Sohu”
“Domain”=”@sohu.com”
[HKEY_LOCAL_MACHINE\SOFTWARE\HTC\EmailWizard\Providers\TOM]
“Enable”=dword:00000001
“Index”=dword:00000005
“Name”=”TOM”
“Domain”=”@tom.com”
[HKEY_LOCAL_MACHINE\SOFTWARE\HTC\EmailWizard\Providers\QQ]
“Enable”=dword:00000001
“Index”=dword:00000006
“Name”=”QQ”
“Domain”=”@qq.com”
[HKEY_LOCAL_MACHINE\SOFTWARE\HTC\EmailWizard\Providers\Yahoo]
“Enable”=dword:00000001
“Index”=dword:00000007
“Name”=”Yahoo”
“Domain”=”@yahoo.com”
[HKEY_LOCAL_MACHINE\SOFTWARE\HTC\EmailWizard\Providers\21CN]
“Enable”=dword:00000001
“Index”=dword:00000008
“Name”=”21CN”
“Domain”=”@21cn.com”
;=========================================================
; DopodWapPush
;=========================================================
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\RIL]
“EnableDopodWapPush”=dword:00000001
;=========================================================
; 默认短信模式为聊天模式
;=========================================================
[HKEY_CURRENT_USER\Software\Microsoft\Inbox\Settings\OEM]
“SMSInboxThreadingDisabled”=dword:00000000
;=========================================================
; 今日标题栏显示电池其他页面显示时间(取消)
; [HKEY_LOCAL_MACHINE\Software\Microsoft\Shell]
; “ShowTitleBarClock”=dword:00000000
; [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shell\Taskbar]
; “ConsistentClockOrBattery”=dword:00000000
; “LimitedClock”=dword:00000000
;=========================================================
[HKEY_LOCAL_MACHINE\Software\Microsoft\Shell]
“ShowTitleBarClock”=dword:00000000
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shell\Taskbar]
“ConsistentClockOrBattery”=dword:00000001
“LimitedClock”=dword:00000001
;=========================================================
; 禁用QUICK GPS自动更新
;=========================================================
[HKEY_LOCAL_MACHINE\SOFTWARE\HTC\QuickGPS]
“auto”=dword:00000000
;=========================================================
; 禁用连接设置自动检测连接
;=========================================================
[HKEY_CURRENT_USER\Software\HTC\ConnectionSetup]
“EnableAUTODetect”=dword:00000000
“EnableStartUP”=dword:00000000
;=========================================================
; 按压屏幕时间
;=========================================================
[HKEY_LOCAL_MACHINE\SYSTEM\GWE\Touch\Filter]
        “MinimumTapTime”=dword:0     ; 40ms minimum touch time
;=========================================================
; 快速GPS更新成功后不自动退出
;=========================================================
[HKEY_LOCAL_MACHINE\SOFTWARE\HTC\QuickGPS]
“autoClose”=dword:00000000
;=========================================================
; 默认开启点击振动
;=========================================================
[HKEY_LOCAL_MACHINE\Software\OEM\KeyState]
“KeyVibratorState”=dword:00000001
“UseService”=dword:00000001
;=========================================================
; 不隐藏开始/设置
;=========================================================
[HKEY_LOCAL_MACHINE\Security\Shell\StartInfo]
“HideSettings”=dword:00000000
;=========================================================
; 不隐藏开始/设置/个人/机主信息
;=========================================================
[HKEY_LOCAL_MACHINE\ControlPanel\Owner]
“Hide”=dword:00000000
;=========================================================
; 相册点击X为关闭
;=========================================================
[HKEY_LOCAL_MACHINE\SOFTWARE\HTC\HTCAlbum]
“ok_minimize”=dword:00000000
;=========================================================
; 任务管理器轻击为关闭,长按为最小化
;=========================================================
[HKEY_CURRENT_USER\Software\HTC\TaskManager]
“EnableTapAndHold”=dword:00000000
;=========================================================
; 收到短信后唤醒
;=========================================================
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\RIL]
“DisableSMSWakeUpEvent”=dword:00000000
;=========================================================
; 长按关闭键弹出选择框
;=========================================================
[HKEY_CURRENT_USER\Software\HTC\LongPressEndKey]
“AutoExecute”=dword:00000000
;=========================================================
; 是否开启HTC增强大菜单(1开启,0取消)
;=========================================================
[HKEY_LOCAL_MACHINE\System\GWE\Menu]
“CUIHandler”=dword:00000001
;=========================================================
; HTC增强大菜单非马尼拉下也可使用
;=========================================================
[HKEY_LOCAL_MACHINE\Software\HTC\HTCMenus]
“EnableManilaCheck”=dword:00000000
;=========================================================
; 默认开启蓝牙Obex
;=========================================================
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Obex]
“ObexServiceMask”=dword:3
;=========================================================
; 短信输入名字索引联系人
;=========================================================
[HKEY_LOCAL_MACHINE\SYSTEM\Inbox\RecipientAutocomplete]
   “MaxSuggestions”=dword:8
   “IncludeContactsGroups”=dword:00000003
;=========================================================
; 录音时麦克风自动增益(00关闭)
;=========================================================
[HKEY_CURRENT_USER\Software\HTC\SOFTAGCData]
“EnableAGC”=dword:00000001
;=========================================================
; 联系人显示首字母排序
;=========================================================
[HKEY_LOCAL_MACHINE\Software\Microsoft\AddrBook]
“Flags”=dword:00000000
;=========================================================
; 通话不关屏
;=========================================================
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\RIL]
“BatteryTimeoutInCall”=dword:00000000
“BattSuspendTimeoutInCall”=dword:00000000
“EnableFastDormantDisplayDuringCall”=dword:00000000
[HKEY_CURRENT_USER\ControlPanel\Phone]
“Sleep”=dword:00000000
[HKEY_CURRENT_USER\ControlPanel\BackLight]
“LightSensorPollingEnable”=dword:00000000
;=========================================================
; 日期显示一行
;=========================================================
[HKEY_LOCAL_MACHINE\Software\Microsoft\Today]
“Date”=dword:00000001
“AutosinglelineDateplugin”=dword:00000001
;=========================================================
; 默认网络类型为自动(即有3G时开启3G,无3G为GSM)
;=========================================================
[HKEY_LOCAL_MACHINE\Software\OEM\UMTS]
“OpMode”=dword:00000000
“PrefRAT”=dword:00000001
“PrefDomain”=dword:00000002
;=========================================================
; 音量默认为最大
;=========================================================
[HKEY_CURRENT_USER\ControlPanel\Volume]
“Volume”=dword:FFFFFFFF
“Ringer”=dword:FFFFFFFF
[HKEY_CURRENT_USER\ControlPanel\Notifications\ShellOverrides]
“SavedInCallVolume”=dword:FFFFFFFF
“SavedRingerVolume”=dword:FFFFFFFF
“SavedVolume”=dword:FFFFFFFF
[HKEY_CURRENT_USER\ControlPanel\SoundCategories\Ring]
“InitVol”=dword:00000005
;=========================================================
; 开启GDI平滑
;=========================================================
[HKEY_LOCAL_MACHINE\System\GDI\Fontsmoothing]
[HKEY_LOCAL_MACHINE\System\GDI]
“ForceGRAY16″=dword:1
;=========================================================
; 允许横屏开启ClearType
; 1: 不允许 off, 0:允许
;=========================================================
[HKEY_LOCAL_MACHINE\System\GDI\ClearTypeSettings]
“OffOnRotation”=dword:00000000
;=========================================================
; 在屏幕里显示ClearType选项
;=========================================================
[HKEY_LOCAL_MACHINE\Software\Microsoft\Shell]
“NoClearType”=dword:00000000
;=========================================================
; 开启IE显示ClearType
;=========================================================
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
“ClearTypeText”=dword:00000001  
;=========================================================
; 菜单字体大小
; 384:9号,3E8:10号,4B0:12号
;=========================================================
[HKEY_LOCAL_MACHINE\System\GWE\Menu\PopFnt]
  “Ht”=dword:384
;=========================================================
; 安装CAB包后是否删除CAB包
; 0: 保留, 2: 删除
;=========================================================
[HKEY_LOCAL_MACHINE\Software\Apps\Microsoft Application Installer]
  “nDynamicDelete”=dword:0
[HKEY_CLASSES_ROOT\cabfile\Shell\Open\Command]
  @=”wceload.exe \”%1\” /nodelete”
;=========================================================
; 禁止安装非证书软件时显示安全警告
; 1: 禁止, 0: 允许
;=========================================================
[HKEY_LOCAL_MACHINE\Security\Policies\Policies]
  “0000101a”=dword:1  
;=========================================================
; 取消短信已发送提示(1取消)
;=========================================================
[HKEY_LOCAL_MACHINE\Software\Microsoft\Inbox\Settings]
  “SMSNoSentMsg”=dword:1
;=========================================================
; 总要求SMS送达通知(0不充许)
;=========================================================
[HKEY_CURRENT_USER\Software\Microsoft\Inbox\Settings]
  “SMSDeliveryNotify”=dword:0
;=========================================================
; 隐藏SIM卡联系人
;=========================================================
[HKEY_CURRENT_USER\ControlPanel\Phone]
  “ShowSim”=dword:00000000
;=========================================================
; 开启相机隐藏模式
;=========================================================
[HKEY_LOCAL_MACHINE\Software\HTC\Camera\P10]
“Enable”=dword:00000001
[HKEY_LOCAL_MACHINE\Software\HTC\Camera\P9]
“Enable”=dword:00000001
[HKEY_LOCAL_MACHINE\Software\HTC\Camera\P8]
“Enable”=dword:00000001
[HKEY_LOCAL_MACHINE\Software\HTC\Camera\P6]
“Enable”=dword:00000001
;=========================================================
; 开启基站对时(需当地移动支持,某些区域时间可能会变慢)
;=========================================================
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\RIL]
“NITZEnable”= dword:00000001
[HKEY_LOCAL_MACHINE\Software\OEM\PhoneSetting]
“ShowNITZPage”=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\International]
“LCID”=dword:804
“ACP”=dword:3a8
;=========================================================
; 系统字体缓存,200000=2M
;=========================================================
[HKEY_LOCAL_MACHINE\System\GDI\GLYPHCACHE]
“limit”=dword:200000
;=========================================================
; 文件系统缓存
;=========================================================
[HKEY_LOCAL_MACHINE\System\StorageManager\FATFS]
  “EnableCache”=dword:1
[HKEY_LOCAL_MACHINE\System\StorageManager\FATFS]
  “CacheSize”=dword:2000
[HKEY_LOCAL_MACHINE\System\StorageManager\Filters\fsreplxfilt]
  “ReplStoreCacheSize”=dword:2000
;=========================================================
; 区域、常住城市设置
;=========================================================
[HKEY_LOCAL_MACHINE\nls]
“DefaultOCP”=dword:000003A8
“DefaultACP”=dword:000003A8
“DefaultLCID”=dword:00000804
“SystemLCID”=dword:00000804
“LegacyLocaleMode”=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\International]
“LCID”=dword:804
“ACP”=dword:3a8
[HKEY_LOCAL_MACHINE\nls\overrides]
“LCID”=dword:00000804
[HKEY_LOCAL_MACHINE\MUI]
“Enable”=dword:1
“SysLang”=dword:804
[HKEY_LOCAL_MACHINE\SOFTWARE\Apps\Westtek\MUI]
“UseLocale”=”804”
[HKEY_CURRENT_USER\MUI]
“CurLang”=dword:804
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\International]
“Default_CodePage”=dword:3a8
[HKEY_LOCAL_MACHINE\Time]
“TimeZoneInformation”=hex:20,FE,FF,FF,2D,4E,FD,56,07,68,C6,51,F6,65,F4,95,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,2D,4E,FD,56,3C,66,F6,65,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,C4,FF,FF,FF
;=========================================================
; 网络运营商显示
;=========================================================
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RIL\OperatorNames]
“46000”=”中国移动”
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RIL\OperatorNames]
“46002”=”中国移动”
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RIL\OperatorNames]
“46001”=”中国联通”
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RIL\OperatorNames]
“45412”=”中国移动”
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RIL\OperatorNames]
“46007”=”中国移动”
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RIL\OperatorNames]
“45416”=”HKT”
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RIL\OperatorNames]
“45404”=”和记电讯”
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RIL\OperatorNames]
“45406”=”数码通电讯”
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RIL\OperatorNames]
“45400”=”香港电讯”
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RIL\OperatorNames]
“45410”=”新世界”
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RIL\OperatorNames]
“45501”=”澳门电讯”
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RIL\OperatorNames]
“45503”=”澳门和记”
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RIL\OperatorNames]
“45500”=”澳门数码通”
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RIL\OperatorNames]
“46697”=”大哥大”
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RIL\OperatorNames]
“46601”=”远传”
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RIL\OperatorNames]
“46692”=”中华电信”
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RIL\OperatorNames]
“46668”=”ACeS”
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RIL\OperatorNames]
“46688”=”和信電訊”
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RIL\OperatorNames]
“46693”=”東信電訊”
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RIL\OperatorNames]
“46699”=”泛亞電信”
;=========================================================
; 时间格式
;=========================================================
[HKEY_LOCAL_MACHINE\nls\overrides]
  “SLDte”=”yyyy’年’M’月’d’日’ dddd”
  “SSDte”=”yy’-‘M’-‘d”
  “STFmt”=”H:mm:ss”
[/code]

第七章 NK的基本说明

大家鼓掌欢迎sumdream来解说~~~
Nk.exe,包含CEOS核心,NK WM5-wm6.5.5带CE5与底层引导驱动,所以可以从WM5移植到WM6.5,5以内的任何版本
在NK CE6开始CEOS与驱动才完全分开,也就是指包含底层驱动不带CE内核NK
nk6.5只比nk6.1多出7a000000-7c000000 模块地址段,容纳更多mod
nk6.5非官方搞不出的,必须有bsp,只要该机型的WM6 BSP+WM6.5AKU生成即可

嗯嗯,谢谢sundream同学~~
目前钻石以后的机型,都有人放出了nk6.5(钻石2之后都有官方的wm6.5),因此移植6.5核心就放心了,不会有模块过多问题。
没有nk6.5的机型就比较杯具了……因为6.5的核心及新OEM有很多模块,nk6.1会容纳不下,非常容易导致死第一屏、进入系统发生莫名其妙错误等,必须将不少模块文件化才可以。(再提一次转换方法:将模块目录拖到tools\RecMod.exe身上,模块目录就会多出一个转换后的相应文件。)其中browsingie是必须转换成文件的。
HD目前有两个nk6.5,一个是DFT放出的,一个是官方TEST ROM的(RUU_BlackStone_HTC_WWE_21140_MASD_Radio_52.58.25.30_1.11.25.01_Test),两者使用过程中我没发现有什么区别。
HD模板,将\ROM\XIP\OEM\OEMXIPKernel\nk.exe替换成6.5的即可(这里就不提供下载了,随意找个模板就可以找到)
换了nk6.5后,记得在bt build的工具/选项,勾上“启用PRB原生6.5 nk模式”
更多的,可以参考我的模板里的。

第八章 ROM生成的基本流程

一个ROM的生成过程,是怎样的呢?主要步骤基本如下:
1、bt build在不选择的OEM包产生一个_skip_BuildOS文件,PRB会跳过这个OEM包。
2、PRB处理XIP部分。
3、PRB处理各个OEM包,生成一个DUMP目录,将各个OEM包的模块排序,将initflashfiles.txt和app.dat写入initflashfiles.dat里,将rgu、app.reg写进default.hv和user.hv里,将provxml写进一个DSM里。
4、PRB将XIP部分生成xip.bin。
5、bt build调用osnbtool,将xip.bin写进os.nb.payload里。
6、调用ImgfsFromNb,从os.nb.payload里分离出imgfs.bin
7、调用ImgfsFromDump,以imgfs.bin为样本,将prb生成的dump形成新的imgfs.bin
8、调用ImgfsToNb,将新的imgfs.bin替换os.nb.payload里的。
9、调用NBMerge,根据机型将新的os.nb.payload转换成nb文件
10、调用nbh工具,根据机型将nb文件非官方签名成nbh文件
11、调用刷机工具,将nbh刷进手机ROM里
12、手机硬启
13、初始只有一个windows目录,所有文件都会放在那里
14、根据initflashfiles.dat生成各个目录、复制文件,根据DSM里的provxml名字,调出PROVXML进行文件操作、注册表操作等(所以PROVXML的注册表会覆盖RGU的)
15、开机

模板及ROM的基本制作就到此为止(似乎没什么可说的了吧?)。
下一章讲讲马尼拉的基本修改(只是基本,因为我也只懂一点)。还有celecmd、mortscrtip的简略说明。

待续……
图片待补……

评论

  1. pxf1990226
    15年前
    2010-5-19 1:14:15

    先谢谢pcg大,制作教程辛苦啦!这教程对我这样的小白很有用呀!期待着你的更新!

  2. pxf1990226
    15年前
    2010-5-28 13:24:20

    终于等到更新了~PCG大辛苦了。。学习学习啦~

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇