注册表另存为编码文件之后,就可以进行转换了。在命令行执行命令“tttt\rgucomp -b”,如果命令没有提示错误,则注册表的修改就算完成了,在目录下找到boot.hv,将它重新命名为default.hv,当然改名之前别忘了删除旧的default.hv文件,然后用这个文件替换dump目录下的同名文件。
这里要提一下,“rgucomp -b”命令可能会返回错误,那就说明你的rgu文件有问题,比如那些被忽略的unicode字符没有处理干净,或者之前说的“"”前面没有加斜线等。错误信息中会包含出现错误的行数,你可以按照这个行数去找错误,这是我推荐emedit的第一个原因,因为他能显示文本文件的行号。你可以反复改,反复转换,直到没有错误提示为止。
user.hv的处理办法和以上讲的default.hv一摸一样,只是相关文件名不同而已。
6、前面提到dump目录下面的rgu文件和provxml文件也和注册表关系重大,因此在修改完hv文件之后,应该修改这两种文件了。这两种文件都是文本格式,用emedit打开之后,rgu的内容和hv文件转换成的rgu文件相似,而provxml则是标准的xml文件,你可以尽情的修改,记住保存的时候,不要改变原来的编码方式就可以了。这里要说到我推荐emedit的第二个原因,他有一个多文件查找功能,可以在同一个目录下查找包含特定字符(串)的所有文件,并将其列出,只要点击连接就可以打开文件。我前面提到hv文件和rgu、provxml文件有重复的内容,在每一个文件中都把它改成一样的,这样就能保证最终得到的注册表是我们所希望的样子。而这个工作用emdit的多文件查找功能来完成,显然事半功倍。
六、打造完美支持中文的英文版ROM
1、准备两个文件,一个是中文版WM5的wince.nls文件,一个是你喜欢的中文字体文件,可以使true type字体(ttf),也可以是压缩字体(ac3),你可以从简体或者繁体版本的ROM中得到这些文件,也可以从windows下面提取,需要注意的是字体文件的大小不要超过10兆,否则ROM没有空间放下它。将这两个文件放进dump目录,wince.nls覆盖旧的。
2、修改mxipupdate_OEMOPERATORS_101.provxml文件的nian font段,英文ROM默认得值是这样:
<!-- ========================= Nina font ========================= -->
<characteristic type="Registry">
<characteristic type="HKLM\SYSTEM\GDI" translation="filesystem" >
<parm name="FontLinkMethods" datatype="integer" value="1" />
</characteristic>
<characteristic type="HKLM\Software\Microsoft\FontLink\SystemLink" translation="filesystem" >
<parm name="Segoe Condensed" datatype="string" value="\Windows\nina_cs.ttf,Nina" translation="filesystem" />
</characteristic>
<characteristic type="HKLM\Software\Microsoft\FontLink\SystemLink" translation="filesystem" >
<parm name="Segoe Condensed Bold" datatype="string" value="\Windows\ninab_cs.ttf,Nina Bold" translation="filesystem" />
</characteristic>
</characteristic>
要支持中文请修改成下面这样:
<!-- ========================= Nina font ========================= -->
<characteristic type="Registry">
<characteristic type="HKLM\SYSTEM\GDI" translation="filesystem" >
<parm name="FontLinkMethods" datatype="integer" value="1" />
</characteristic>
<characteristic type="HKLM\Software\Microsoft\FontLink\SystemLink" translation="filesystem" >
<parm name="Segoe Condensed" datatype="string" value="\Windows\nsimsun.ttf,NSimSun" translation="filesystem" />
</characteristic>
<characteristic type="HKLM\Software\Microsoft\FontLink\SystemLink" translation="filesystem" >
<parm name="Segoe Condensed Bold" datatype="string" value="\Windows\nsimsun.ttf,NSimSun" translation="filesystem" />
</characteristic>
<characteristic type="HKLM\Software\Microsoft\FontLink\SystemLink" translation="filesystem" >
<parm name="Tahoma" datatype="string" value="\Windows\nsimsun.ttf,NSimSun" translation="filesystem" />
</characteristic>
<characteristic type="HKLM\Software\Microsoft\FontLink\SystemLink" translation="filesystem" >
<parm name="Courier New" datatype="string" value="\Windows\nsimsun.ttf,NSimSun" translation="filesystem" />
</characteristic>
<characteristic type="HKLM\Software\Microsoft\FontLink\SystemLink" translation="filesystem" >
<parm name="Nina" datatype="string" value="\Windows\nsimsun.ttf,NSimSun" translation="filesystem" />
</characteristic>
<characteristic type="HKLM\Software\Microsoft\FontLink\SystemLink" translation="filesystem" >
<parm name="NSimSun" datatype="string" value="\Windows\nina_cs.ttf,nina" translation="filesystem" />
</characteristic>
</characteristic>
说明,在以上两段中,“parm name”是该值在注册表中的值名,虽然可以任意命名,但是建议不要乱改,因为在注册表涉及好几处链接。“value”的逗号前面是字体文件的名称和路径,逗号后面是字体的真实名称,这个非常重要,必须要正确的写出字体的英文名称,否则无效。如果你不知道字体的英文名称是什么,可以去网上下载一个字体管理或者字体查看软件,一般都能显示字体的中英文名称,总之,这个名称很重要,一定不能写错。
这样修改之后,你的ROM硬启之后已经能显示大部分的中文,但是还会有部分程序显示乱码或者方块,比如媒体播放器和isilo,而且电话号码的格式也会不正常,显示为带括号的电话号码。不要着急,进入设置——>区域——>将所在区域选为中文(RPC),关机再开,就完全正常了。当然默认区域的设置,以及时区的设置,都可以通过定制注册表在刷机之前就做好,这些大家自己去琢磨吧,我在这就不费篇幅了。
关于注册表的定制大致就是这样,还是那句话,想要定制一个完全适合自己的ROM,不但要动手,还要动脑。
六、简单的添加删除ROM文件
imgfstools工具包同时提供两个简单工具,addfile和delfile,如果你只是想删除,添加,替换一些文件和模块,而不想修改注册表和进行大量的文件操作,那么用这两个命令就能直接在imgfs_removed_data.bin中添加、删除、替换文件了,举一个例子:
我想一劳永逸的修改信封键的功能,使它能够直接进入短信界面,而不需要进去之后再从列表中选择短信。
先从手机里面拷贝出一份short_AP2.lnk文件,用记事本打开,将文件的内容由
19#\Windows\tmail.exe
改为
19#\Windows\tmail.exe -service "SMS"
保存在和imgfs_removed_data.bin同一目录下,然后再命令行执行命令
“tttt\delfile short_AP1.lnk”,删除成功会有提示,然后执行命令
“tttt\addfile short_AP1.lnk”,添加成功也会有提示,并且列出ROM的空间使用情况,见图十二