如何制作OEM包 (转帖)

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


Fig.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_SZ
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文件重命名为:PHM 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 RegEdit
这段代码的意思是将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,用记事本打开,输入如下内容:
引用:
<?xml version=”1.0″ encoding=”UTF-16″
standalone=”yes”?>
<Items>
<Item name=”PHM Registry Editor”
group=”Applications - 应用程序”
checked=”true”>
<Tip>注册表编辑软件</Tip>
  <Guid
type=”p”>2e72e0bd-1d2e-4c59-8643-85fee5d5f86b</Guid>
  
</Item>
</Items>
其中,<?xml version=”1.0″ encoding=”UTF-16″
standalone=”yes”?>是固定的,所有内容被嵌套在<Items></Items>里面。如果你对xml有所了解,将很容易理解这种节点嵌套结构。<Item
name>就是该Package的名字,将显示在BuildOS的option框里面,group是指该Package属于那个群组的,你可以通过给不同Package设定同样的group,使之成为一组,如将所有应用程序归为同一组等。checked有2个值,true和false,true指默认该Package是被选中的,反之则默认为非选状态。<Tip>的内容,是指在BuidOS中,你将鼠标移至该Package上,将会显示的提示信息。<Guid>就是该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。
原文地址:https://www.cnblogs.com/buffer/p/1270613.html