zoukankan      html  css  js  c++  java
  • 如何制作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。
  • 相关阅读:
    git下载指定的版本
    QT中定时器
    makefile 中添加依赖的库文件
    Qt 出现“undefined reference to `vtable for”
    qt程序启动播放动画
    常用正则表达式
    当你纠结时,请打开这31个锦…
    android mk详解
    C++日志系统log4cxx使用总结
    qt 坐标变换
  • 原文地址:https://www.cnblogs.com/buffer/p/1270613.html
Copyright © 2011-2022 走看看