在定制ROM时,OEM主要包含驱动和必须的软件。如果要把一个自己喜欢的软件集成到ROM里,需要转换格式;cab转OEM可以用PACKAGE-CREATOR-V2.7这个软件。
PACKAGE-CREATOR-V2.7英文版的软件,使用非常方便,不用懂英文也可以使用,打开软件后选择package-creator-V2.7。EXE,然后OPEN CAB FILE去选择你所需要分解的CAB包直接就可以转成OEM文件夹。
需要注意的是,转成的应用程序OEM包中有一个initflashfiles.txt文件,这是设置程序路径和关联的
其基本格式如下:
;CorePlayer
Directory("\Windows\“开始”菜单\程序\多媒体"):-File("CorePlayer.lnk","\Windows\CorePlayer.lnk")
解释:
其中directory后括弧中指的是程序在开始菜单中快捷方式的位置,file后的括弧内是关联程序文件路径。
如果你是用英文的厨房的话,改成:
; CorePlayer
Directory("\Windows\Start Menu\Programs\Multimedia"):-…………………………即可
红字部分可以随意设置,归类。
英文改中文反之即可。
在放入厨房OEM文件夹的过程中必须要注意上述的路径,否则编辑注册表出错,切记!
注意: 1,要安装Microsoft .NET Framework 才能正常转换。
2,cab文件名必须是英文,中文不行。
3,RAR转换CAB格式:
(1)解压文件到当前文件夹。
(2)用WinCE_CAB_Manager3.0 这个软件。
附:用cab2oem2.7工具生成oem目录后的处理:
1、有以下几个文件可能需要处理:
option.xml------在定制工具中生成的信息,用记事本打开一个人家做的oem文件看一下就知道了;
****.rgu(例如43cc8ff1-8161-40dd-b89d-999edb4c3e1c.rgu)------注册表文件。你所说的注册信息就在这里。
initflashfiles.txt-------这个文件用来创建目录以及把某个文件复制到某个目录里。具体你可以打开个内容多的oem包看看,看不懂的话就google一下,很多人讲过;
主要就是这几个文件吧。其他文件都是你的oem应用要用的东西。修改完后记得要存成unicode格式
2、如果你想删除或者添加文件,直接在oem目录里删除或增加即可。定制时程序会把整个目录里的东西全部拷贝进去。如果你添加的文件要指定文件夹,那就在initflashfiles.txt写清楚。
3、测试oem包是用编译rom时出错信息来查的,一般错误有注册信息格式出错或者文件重复造成的。所以一定要看懂编译工具生成的temp\dump目录里的*.log说的啥意思。
实例说一下你发现的dialer和mortscript错误处理:
a、用oem2.7生成oem包后,拷贝到定制工具oem目录里进行定制和测试,执行到文件合并时报错,打开temp\dump下的log文件查看最后几行,发现说有文件重复,是ddcall.dll文件,经查原来sys目录里也有个一个ddcall.dll文件,大小一样。于是删除新做的oem包中的ddcall.dll文件。
b、从新编译测试,发现合并注册表时出错,说是f6a5427d-b1c1-4d10-ad95-26043f1936ae.rgu文件第7行报错。于是用记事本打开f6a5427d-b1c1-4d10-ad95-26043f1936ae.rgu文件,发现第7行里是""Windows\\MortScript.exe" "%1"",不用说,是引号用的太多了,编译工工具认为不合法,修改成"Windows\\MortScript.exe %1"。然后把这个文件存为unicode格式。
c、再次编译通过!
d、刷机,试试自己做的oem执行有没有问题。没有问题就这样了。如果感觉不对,那可能是刚才删掉的ddcall.dll或者修改的注册表项有问题,如果是ddcall.dll问题,那就保留新做的oem包里的,删除sys目录里的。如果是注册表格式问题,没办法,只好论坛里或google搜一下别人怎么解决这个问题的了。
另外一种方法:
很简单直接转,制作一下小的修改就行了,大多数软件都行,不过首先要安装NET和软件要改成英文名啊。
第一步:基础知识
首先要弄清楚制作一个完整的OEM包应该包含哪几个部分:
1. 软件本身所需的文件
2. 快捷方式(lnk文件,看软件而定,不一定要,像拨号面板,输入法等就不需要了吧)
3. dsm文件(一定要有)
4. rgu(注册表文件,看软件而定,不一定要)
5. initflashfiles.txt,主要用在指定刷机文件的存放位置,看软件而定,不一定要)/ R2 q8 ?; c' _9 B
6. option.xml,用在系统加载该OEM包以及显示相关内容(一定要有)
第二步:准备工具——GUID码生成器。
GUID(或称UUID),GUID是Globally Unique IDentifier的缩写,中译全球唯一标识符,每个OEM 包都有一串唯一的GUID号码用于系统识别
第三步:当然是开始制作啦。(以一个闹钟软件为例)
1,建立一个新的文件夹(文件夹名随便,不过为了以后好辨认,最好名称和软件名相同,我命名为“闹钟”)
2,获取GUID码。(就用我上面提供的工具)
然后点击“New GUID”按钮,会自动生成GUID,复制GUID码。将该串GUID码(ffffffff-645f-4f47-bf25-91208ee03b7d)记下。
3. 在闹钟文件夹新建2个txt文件,将一个文件重新命名为ffffffff-645f-4f47-bf25-91208ee03b7d.dsm,另一个txt文件重命名为ffffffff-645f-4f47-bf25-91208ee03b7d.rgu;也就是GUID号码.dsm和.rgu,切记一定要将扩展名改为dsm和rgu,并将rgu文件存为Unicode格式。(一般电脑默认不显示文件的扩展名,可通过文件夹上面的工具-文件夹选项-查看修改)。
4. 编制option.xml:BuildOS.exe是通过option.xml来加载OEM包,如果该OEM包没有option.xml,则该OEM包将不会被BuildOS加载。同样,在刚才文件夹新建一个txt,然后将其重命名为option.xml,用记事本打开,输入如下内容
<?xml version="1.0" encoding="UTF-16" standalone="yes"?>
<Items>
<Item name="这里填写软件的名称" group="这里填写组名使之成为一组" checked="true">
<Tip>这里可描述软件的功能</Tip>
<Guid type="p">ffffffff-645f-4f47-bf25-91208ee03b7d</Guid>
</Item>
</Items>
下面是我写的闹钟option.xml
<?xml version="1.0" encoding="UTF-16" standalone="yes"?>
<Items>
<Item name="闹钟" group="其他" checked="true">
<Tip>闹钟</Tip>1
<Guid type="p">ffffffff-645f-4f47-bf25-91208ee03b7d</Guid>
</Item>
</Items>
5,把绿色软件放入文件夹并建立快捷键。
建立快捷键可新建TXT记事本,并写上#\Windows\软件名.exe。比如我写上#\Windows\闹钟.exe
保存为闹钟.lnk。
6,在文件夹为快捷方式建立iniflashfiles.txt,软件快捷方式是指向exe文件,我以闹钟软件为例
用记事本新建填写如下:
----------------------闹钟------------------------------------------------------------------------------
Directory("\Windows\“开始”菜单\程序\工具"):-File("闹钟.lnk","\Windows\闹钟.lnk")
---------------------闹钟 End-------------------------------------------------------------------------
保存。其实上下面虚线可以不要。
到此为止一个完整OEM包就制作完成了,运行BuildOS.exe试一下。
还有一个cab转OEM工具cab2oem,支持非标准名OEM转换。。对旧OEM包内的initflashfiles.txt和option文档能完美处理,转换成APP.DAT。。。
使用方法:将需转换的旧OEM包拖拽到cab2oem文件夹内的EXT_PAckages_rebuilder工具即可直接转成新OEM包。注意保存原OEM包。