19 12
发新话题
打印

转贴陈希立先生的OEM包制作教程

本主题由 tinni 于 2008-6-7 12:01 设置高亮

转贴陈希立先生的OEM包制作教程

制作OEM包(OEM Package):OEM Package是ROM模板的关键部分,通过选择不同的OEM Package可以使我们定制出不同的ROM。我们准备分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)记下。

再说说解压Cab包的软件。Ocp Software公司出品的WinceManager或CabWUZ均可以用于解压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文件的属性。

2. 点击左边的Files签名的”+”,将该目录展开,可以看见里面共有9个文件。见图3。右边窗口内显示的是这9个文件的属性。注意第三栏的Location,指的是该文件的存放位置,请注意,除了regedit.exe的存放位置为%InstallDir%外,其余8个文件的存放位置都是%Windows%。

3. 点击左边窗口的Files,然后点击工具栏上面的Extract按钮,将Files下面所有9个文件都导出。如图4,将文件导出到桌面/PHM Registry Editor/目录下。点击OK,将文件导出,提示图5。

4. 打开PHM Registry Editor目录,里面有2个文件夹,分别为[INSTALLDIR]和Windows。如图6。

打开Windows目录,里面有8个文件,也就是Cab包里面的那些存放位置为%Windows%的文件。见图7。

[INSTALLDIR]里面只包括regedit.exe一个文件。如图8。所以cabWUZ是根据cab包里面的文件存放位置信息解压文件的。

5. 将2个目录下的9个文件全部复制到PHM Registry Editor目录后,可将这2个目录删除。如图9。

6. 新建2个txt文件。将一个文件重新命名为2e7230bd-1d2e-4c59-8643-85fee5d5f86b.dsm,另一个txt文件重命名为2e7230bd-1d2e-4c59-8643-85fee5d5f86b.rgu。也就是GUID号码.dsm和.rgu,如图10。切记一定要将扩展名改为dsm和rgu。

7. 用记事本或其它文本编辑软件打开rgu文件,然后点击另存为,将其存为Unicode格式文件。这点很重要,否则在BuildOS执行时会出错。如图11。

8. 编辑rgu文件
再回到cabWUZ,用cabWUZ打开regedit.Mrln_ARM.CAB,在左窗口的下部是Registry,点击Registry,右边的窗口会显示”Entries 20″,如图12,说明有20个注册表表项信息。分别点击各个”+”将注册表全部展开。如图13。因为cabWUZ或WinceManager试用版都无法支持导出注册表文件。所以只好手动编制rgu中的注册表信息了。如果你有WinceManager正式版(PS自己百度一下),那么可以很容易通过”Export to reg”(导出reg)功能,直接将注册表信息导出。

如图13中,HKEY_CLASSES_ROOT\.rbk键下的表项为:
Name: Default
Type: REG_SZ
Data:RegBackup

应该写为:
[HKEY_CLASSES_ROOT\.rbk]
@=”RegBackup”

Default可以用@表示。REG_SZ表示这是个字符串值。如图14。将原注册表中%InstallDIR%(安装目录)替换成[url=file://\\Windows\\]\\Windows\\[/url]。

还有很重要的一点就是,rgu文件最后必须空一行,否则BuildOS运行也会出错。如图15。总结一下,制作rgu文件特别注意4点:
1. 文件必须保存为Unicode格式
2. 文件第一行必须是:REGEDIT4
3. 文件最后必须空一行
4. 注册表中的单斜杠”\”,必须写成双斜杠:”\\”

9. 编制快捷方式
从Files里面可以看出,regedit.exe是个可执行文件。所以我们要为它建立一个快捷方式,并将它放置在程序里面,使之可以方便被调用。因为所有OEM Package的文件都会被放置在Windows目录下。所以regedit.exe的路径就是:\Windows\regedit.exe。
在PHM Registry Editor目录下,新建一个txt文件,然后用记事本打开,输入:
#"\Windows\regedit.exe"
如图16

存盘退出,将该txt文件重命名为PHM RegEdit.lnk。如图17

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格式。

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。

11. 至此,PHM Registry Editor的OEM Package已经全部建好。如图20,除了软件本身的9个软件外,加上dsm,rgu,initflashfile和shortcut以及option.xml,总共14个文件。顺便提一下,dsm和option.xml是一定要有的。如果软件本身不带注册表信息,如绿色软件,可以不用建rgu文件。同样快捷方式和iniflashfiles都是可选项。

12. 将PHM Registry Editor文件夹复制到OEM\目录下。如图21。

13. 运行下BuildOS.exe,如果一切正常的话,PHM Registry Editor已经被BuildOS.exe正确加载了。鼠标悬停在该Package上,显示“注册表编辑软件”。如图22。


待续。。。。二楼继续
附件: 您所在的用户组无法下载或查看附件
本帖最近评分记录
  • zgyzdx 金钱 +3 我很赞同 2008-6-7 18:49
  • maozhua 金钱 +3 哈哈 这几天正在黑暗中摸索 现在看到明灯了 2008-6-7 14:59
  • zdyfyzp 威望 +5 我很赞同 2008-6-7 14:22
主席语录:
财务的一生,是与数字打交道的一生,
是与税局斗智斗勇的一生,
是拿生命掩护老板少交税的一生,
是理财的一生但穷光蛋的一生。
所以,财务生的伟大,死的光荣。

TOP

制作OEM包(OEM Package)Part2

Part2将包括如下内容:

1. 如何制作绿色软件(无需注册表运行就可运行的程序)的OEM Package
2. 如何制作注册表修改的OEM Package
3. 如何将系统自带的软件做成可选择的OEM Package
3.1.将系统部件如输入法等做成OEM Package
3.2.将系统自带应用程序(如ClearValuePDF)做成OEM Package

上文中已经提到过了,一个完整的OEM Package需包括6种文件。

1. 软件自身所需文件 2. 快捷方式(非必要,视软件而定) 3. dsm文件(不可缺) 4. rgu(注册表文件)(非必要,视软件而定) 5. initflashfiles.txt,主要用于指定刷机文件的存放位置(非必要,视软件而定) 6. option.xml,用于系统加载该OEM Package以及显示相关内容(不可缺)

其中除了1、3、6是必须外,其余均视软件而定。
1. 如何制作绿色软件(无需注册表运行就可运行的程序)的OEM Package绿色软件也就是那些无需注册表就可以自行运行的程序,一般包括exe执行文件和dll文件扩展等文件。将它们制成OEM Package的方法和在Part1里面介绍的将cab转换成OEM Package一样,这里就不再重复,基本步骤:
1. 提取文件
2. 获取GUID码,建立dsm文件
3. 编辑快捷方式和initflashfiles.txt(非必须)
4. 编辑option.xml

如以Gsfinder为例,GSFinder是一个非常实用的资源管理器,其程序运行只需GSFinder.exe,和3个dll文件扩展:gsgetfile.dll、UNZIP.dll、UNLHA.dll。在My_ROM_Kitchen\OEM\下建立GSFinder文件夹,将上述4个文件复制到该文件夹,然后编制dsm文件,建立快捷方式GSFinder.lnk(#"\Windows\GSFinder.exe"),然后编辑option.xml。GSFinder目录下包括8个文件。如图1。

option.xml内容如图2。Package名字:GSFinder。group:Utilities - 实用工具等。

运行BuildOS.exe,可以看见GSFinder已经被加载。如图3。

为了降低ROM大小,对于绿色软件,个人建议,可以将它们复制到存储卡上,然后建立一个快捷方式指向exe文件,在刷机的时候,只需将快捷方式刷到ROM里面就可以了。如此的话,在OEM文件夹下建立Link_GSFinder目录,然后分别建立dsm文件,快捷方式和iniflashfiles.txt以及option.xml就可以了。比如,我将GSFinder.exe和3个dll文件放置在存储卡上Tools\GSFinder下,那么我只需建立一个快捷方式,写如:#"\Storage Card\Tools\GSFinder\GSFinder.exe"就可以了。Link_GSFinder目录内容如图4:

运行BuildOS,如图5,此时请注意,不要同时选中2个GSFinder,否则会出现重复文件错误,因为它们的快捷方式都是GSFinder.lnk

2. 如何制作注册表修改的OEM Package

制作注册表修改的OEM Package最简单了,因为没有软件文件和快捷方式等。只需dsm和rgu以及option.xml3个文件即可。以修改网络名称显示为SoftBank为例。
在OEM下建立Softbank operator name文件夹,然后分别建立dsm,rgu和option.xml文件。rgu文件中输入需修改的注册表键值,如图6:

Softbank operator name文件夹只有3个文件。如图7。

运行BuildOS,如图8,可以看到里面已经有Softbank operator name OEM Package。

3. 如何将系统自带的软件做成可选择的OEM Package

3.1将系统部件做成OEM Package

Transcriber英文输入法之一,但对于我们不常用英文输入法来说,它并不是个必选项。我们以它为例介绍如何将系统部件做成可选择的OEM Package。
在SYS目录下有3个文件夹:Transcriber,Transcriber_Lang_0409和Transcriber_Lang_0409_DPI_96。分别进入这3个文件夹,将它们的dsm文件名记下,也就是它们的GUID码记下。如Transcriber的是:60fa7e75-fb9b-45c0-b99c-16d9182e9f72。
在SYS目录下新建一个option.xml,并输入以下内容:
<?xml version="1.0" encoding="UTF-16" standalone="yes"?>
<Items>
<Item name="Transcriber" group="System" checked="false">
<Tip>Transcriber,系统自带,如不用英文键盘输入,可不选</Tip>
  <Guid type="p">60fa7e75-fb9b-45c0-b99c-16d9182e9f72</Guid>
    <Guid type="i">5f9ca691-2a85-4db5-b6a0-ce35ef2618dc</Guid>
    <Guid type="i">f778638a-d209-4ee6-adb1-ad8e122d3685</Guid>
  </Item>
</Items>
各个节点的意思和OEM Package中的option.xml一样。其中请注意,Guid有3个其中除了Transcriber的Guid是type"p"外,Transcriber_Lang_0409和Transcriber_Lang_0409_DPI_96的Guid均是type"i"。 保存退出,运行BuildOS.exe,现在我们已经有5个OEM Package可选了。如图9。

3.2.将系统自带应用程序(如ClearValuePDF)做成OEM Package

将系统自带的应用程序,如ClearValuePDF viewer,IA ZIP等,做成OEM Package会比较麻烦点。因为你必须知道该程序包括那些文件,并且这些文件是属于哪个文件夹。然后将它们剪切出来,并制作dsm,rgu,快捷方式,iniflashfiles.txt和option.xml。 一般来说系统自带的应用程序文件都放置在OEM\OEMAPPS下,注册表信息整合在OEMAPPS下的rgu文件中,软件的语言文件一般放在OEM\OEM_Lang_0409下。 以ClearValuePDF viewer为例,打开OEM\OEMAPPS文件夹,选择按名称排列图标,如图10。其中用红色框住的文件就是ClearValuePDF的exe执行文件和dll应用程序扩展。

可以通过图标来辨别exe可执行文件,然而dll文件就比较麻烦了。大部分的dll文件里面都包括版本属性,里面有版权信息。同一应用程序的dll版权信息应该都是相同的。你可以右单击查看该dll版本信息来确定它们是否属于相同应用程序。如图11。

在OEM下新建一个ClearValuePDF文件夹,然后将上述文件剪切进去。该软件还有2个快捷方式,如图12。也分别将它们剪切出来。

应用程序的注册表信息被整合在OEM\OEMAPPS下的37fc85aa-e925-4b0a-b0c5-89afb2d5cfde.rgu文件中。该rgu文件是个隐藏文件。用notepad打开后,查找和pdf相关的注册信息,图13显示了和pdf以及ClearValuePDF相关的注册表内容。

将ClearValuePDF的注册表信息剪切出来,单独制成rgu文件。然后再建立dsm,为快捷方式建立iniflashfiles.txt,和option.xml。注意,该软件2个快捷方式中,一个是指向exe文件,一个是指向help文件。所以iniflashfiles.txt内容有2行:
Directory("\Windows\Start Menu\Programs"):-File("ClearVue PDF.lnk","\Windows\ClearVue PDF.lnk")
Directory("\Windows\Help"):-File("CV_PDFViewhlp.lnk","\Windows\CV_PDFViewhlp.lnk")
CV_PDFViewhlp.lnk将会被复制到\Windows\Help目录下。最终ClearValuePDF目录将包括如下内容,如图14。

运行BuildOS.exe,可以看到里面已经出现Clear Value PDF Viewer了。该软件已经成功被单独制成OEM Package了。如图15。


[ 本帖最后由 tinni 于 2008-6-7  16:37 编辑 ]
附件: 您所在的用户组无法下载或查看附件
主席语录:
财务的一生,是与数字打交道的一生,
是与税局斗智斗勇的一生,
是拿生命掩护老板少交税的一生,
是理财的一生但穷光蛋的一生。
所以,财务生的伟大,死的光荣。

TOP

干脆把他整个定制Rom的文章都发出来。
徘徊在牛A与牛C之间的人
凯撒刷机教程凯撒Radio资源

TOP

谢谢丁版这么好的教材!兄弟们有福了!
引用:
原帖由 cpeiqi 于 2008-6-7  11:56 发表
干脆把他整个定制Rom的文章都发出来。
太多了,而且有些不适合Kaiser
主席语录:
财务的一生,是与数字打交道的一生,
是与税局斗智斗勇的一生,
是拿生命掩护老板少交税的一生,
是理财的一生但穷光蛋的一生。
所以,财务生的伟大,死的光荣。

TOP

哦,是不是分解成RAW文件那些跟凯撒不一样
徘徊在牛A与牛C之间的人
凯撒刷机教程凯撒Radio资源
非常复杂,丁版你看看这个软件行否,好想简单多了。请你试验一下


[ 本帖最后由 aheng 于 2008-6-7  12:51 编辑 ]
附件: 您所在的用户组无法下载或查看附件
顶一个
顶一个
这么复杂?还是现成的好啊。。。

TOP

引用:
原帖由 aheng 于 2008-6-7  12:28 发表
非常复杂,丁版你看看这个软件行否,好想简单多了。请你试验一下107592
107602
要是这个可行就ok

TOP

引用:
原帖由 aheng 于 2008-6-7  12:28 发表
非常复杂,丁版你看看这个软件行否,好想简单多了。请你试验一下107592
107602
这个软件可以用,比较简单,可惜是英文的
主席语录:
财务的一生,是与数字打交道的一生,
是与税局斗智斗勇的一生,
是拿生命掩护老板少交税的一生,
是理财的一生但穷光蛋的一生。
所以,财务生的伟大,死的光荣。
为丁版喝彩,丁版是不可多得的好人,万分感谢,吃了水,也不会忘记挖井人的
感谢分享

TOP

引用:
原帖由 aheng 于 2008-6-7  12:28 发表
非常复杂,丁版你看看这个软件行否,好想简单多了。请你试验一下107592
107602
好东西 收下了
 19 12
发新话题