在定制windows mobile手机ROM时,常用provxml文件来加载一些系统设置或者数字签名。和OEM Package中的option.xml不一样,系统设定用的xml必须嵌套在<wap-provisioningdoc></wap-provisioningdoc>和<characteristic></characteristic>内。在<!–和–>内的都是注释语句。

一、操作注册表
修改注册表必须以<characteristic type="Registry">开头,并以</characteristic>结束。可以把它们理解为一对括号
1.已经存在的注册表设置
修改注册表键值

<wap-provisioningdoc>
<characteristic type="HKLM\Drivers\BuiltIn\RIL">
<parm name="EnableShortIMEI" datatype="integer" value="1" />
</characteristic>
</wap-provisioningdoc>

2.未存在的注册表新建(同1的设置,没有的注册表键值会直接新建)
新建注册表键值

<wap-provisioningdoc>
<characteristic type="HKLM\Drivers\BuiltIn\RIL">
<parm name="EnableShortIMEI" datatype="integer" value="1" />
</characteristic>
</wap-provisioningdoc>

3.已存在的注册表删除
1)键值
删除注册表键值

<wap-provisioningdoc>
<characteristic type="HKLM\cabfile\Shell\Open\Command">
   <noparm name="default" />
</characteristic>
</wap-provisioningdoc>

这样就把[HKEY_LOCAL_MACHINE\cabfile\Shell\Open\Command]下面的default注册项删除了
2)键
删除注册表键
<nocharacteristic type="HKLM\cabfile\Shell\Open\Command" />
这样就删除了[HKEY_LOCAL_MACHINE\cabfile\Shell\Open\Command]整个键(包括它下面的注册项)

二、操作文件
(内容均需要放在<characteristic type="FileOperation">和</characteristic>之间):
1.复制文件到其他目录
复制文件实例代码

<wap-provisioningdoc>
<characteristic type="%CE11%" translation="install">
<characteristic type="MakeDir" />
<characteristic type="Windows Media.lnk" translation="install">
       <characteristic type="Copy">
         <parm name="Source" value="\Windows\WMPlayer.lnk" translation="install" />
       </characteristic>
</characteristic>
</characteristic>
</wap-provisioningdoc>

2.删除新复制的文件(ROM中不可以删除,仅可以删除后期复制或者新建的文件,比如快捷方式)
删除快捷方式实例代码
<wap-provisioningdoc>
<characteristic type="%CE17%\Windows Media.lnk" translation="install">
<characteristic type="Delete">
       <parm name="ForceDelete"/>
</characteristic>
</characteristic>
</wap-provisioningdoc>
编辑好相应的Provxml之后需要DSM文件引导才能起作用
编辑好的xml可以通过添加代码到启动时加载的txt中(一般为config_operator.txt,可修改),格式为: XML: \Windows\Provxml.xml

三、命名
1.PROVXML的命名方式必须为如下格式
mxip_<package name>_<version>.provxml
mxipupdate_<package name>_<version>.provxml
mxipcold_<package name>_<version>.provxml
以CeleDial为例:mxip_CeleDial_000.provxml
2.将执行PROVXML写入DSM时,建议用BuildDSM来生成最后的DSM文件,经过反复测试,DSMBuilder生成的DSM容易提示错误。
具体方法举例:首先在CeleDial文件夹下用GUID生成器生成新的DSM文件,并处理好相应的XML文件(注意命名规则),最后将CeleDial文件夹拖动或发送到BuildDSM.exe,生成可以执行当前PROVXML的DSM文件成功!



© 活着的博客 - 李权辉的个人博客:人,终究是生活在现实之中,是为了活着而生活.