Lesson 2 :- OEM Packages
What is an OEM Package ?
OEM package is just like a form of cab..It is cooked into the ROM so that when one may flash it..he will find it there..read on and you will understand
What the Heck are these strange alphanumeric sequences ? - 283b9db7-cb03-4c1b-820e-ca49b2c3b5db
Well, each OEM package uses a Universal Unique Identifier (UUID) to identify itself. This UUID is used in up to three distinct places within an OEM package.Once in the DSM file, once in the RGU file, and once in the option.xml file ( used by BuildOS )
Make sure to use the same UUID within a single OEM package and do not use multiple UUIDs in a single OEM Package or else BuildOS wont start
I just heard DSM..wat is that ?
.dsm contains a file listing of all the files within an OEM package. For noobs, it is not necessary to generate a .dsm as BuildOS will generate one for you.
do my ears Decieve me or did i hear RGU ?
.rgu is where the registry information is contained for the OEM package. All Microsoft Operating Systems since Windows 95 use the Windows Registry to hold important application information and Windows Mobile is no different.
.rgu files are formatted exactly like .reg files which can be exported from programs such as SOTI Pocket Controller Pro, PHM RegEdit and SKTools
If your package does not require registry information, then you do not need to include an rgu file within your OEM package.
This file is used by the BuildOS for file copy operations & directory creation. By default, all files within an OEM package go into \Windows
. If you want any of your files to be copied elsewhere, specify it in this file. If you want everything in \Windows, then you won't need an INITFLASHFILES.TXT file either. It is very similar to INITFLASHFILES.DAT
, which controls the placement of files included by default in the ROM.
Here is a sample INITFLASHFILES.TXT and a brief explanation of each line:
1a . Directory("\Program Files\"):Directory("MusicID")
2a . ("\Program Files\MusicID"):-File("MUSICID.EXE","\windows\000-MUSICID.EXE")
3a . Directory("\Windows\Start Menu\Programs"):-File("MusicID.lnk","\Windows\MusicID.lnk")
1b . Create a folder named MusicID in \Program files Directory
2b . In the directory \Program Files\MusicID, create a copy of file named MUSICID.EXE, whose original file path is \windows\000-MUSICID.EXE
3b . In the directory \Windows\Start Menu\Programs, create a copy of the file named MusicID.lnk, whose original file path is \windows\MusicID.lnk
wait..i heard u saying Options.xml..didnt u ?
This file is used by the BuildOS to tell cooks what your OEM package is and does. Let's start with a sample OPTIONS.XML and the breakdown of each component :
<?xml version="1.0" encoding="UTF-16" standalone="yes"?>
<Item name="test oem" group="utilities" checked="true">
<Tip>Its just a test OEM package!</Tip>
The stuff you care about is as follows :
= The name of the application contained within this OEM package
= The application group / category this OEM package belongs to
= Whether or not you want this item to be checked (true) or unchecked (false) by default. Useful to
remind people that this is a critical OEM package and needs to be installed in their cooked ROM or something won't work! (e.g., Camera functionality!!!)
= helpful information about the function of this OEM package ( appears when mouse is hovered over the OEM )
= UUID. You need to put the UUID here to identify your OEM package. Technically a GUID is not a UUID according to wikipedia and other sources, but we'll just ignore that for this tutorial ( use the same UUID as used in DSM and RGU )
OPTIONS.XML is the only file REQUIRED for you to manually create in an OEM package.
more to come tomorrow