[Touch Pro2, Tilt 2 Windows Mobile General] papo:
OEMs (or i prefer calling them packages) and cab files are doing the same thing, but with totally different approach.

there is nothing the same in cab and pkgs except the actual files they are installing.

cab:

installation is done by xml file (let's forget setup.dll, it's only used by 5% of apps)

xml file:

information - HEADER:

<wap-provisioningdoc>

<characteristic type="Install">

<parm name="InstallPhase" value="install" />

<parm name="OSVersionMin" value="4.0" />

<parm name="OSVersionMax" value="6.1" />

<parm name="AppName" value="RSSHub" />

<parm name="NumDirs" value="2" />

<parm name="NumFiles" value="10" />

<parm name="NumRegKeys" value="3" />

<parm name="NumRegVals" value="17" />

<parm name="NumShortcuts" value="1" />

</characteristic>

COPY operation:

<characteristic type="FileOperation">

<characteristic type="%CE2%" translation="install">

<characteristic type="MakeDir" />

<characteristic type="RSSHub.exe" translation="install">

<characteristic type="Extract">

<parm name="Source" value="0CAB1966.001" />

<parm name="WarnIfSkip" />

</characteristic>

</characteristic>

</characteristic>

</characteristic>

adding REGISTRY :

<characteristic type="Registry">

<characteristic type="HKCU\ControlPanel\Notifications\{695F6B37-EE99-489b-982D-F9A46A944ED1}">

<parm name="Duration" value="5" datatype="integer" />

<parm name="Options" value="13" datatype="integer" />

<parm name="Wave" value="default" datatype="string" />

<parm name="" value="RSS Hub: New Items Received" datatype="string" />

</characteristic>

</characteristic>

it can do a special thing called "provisioning" as well, but that's for a special use by operators and us, geeks.

* note the "%CE2%" in the code, it's a substitution of a standard winmo folder, this is being often used in registry part xml as well, but it can't be done in rgu files.

OEMs - PKGS:

dsm file for information-header - it's a data file

rgu, format the same as in reg file:

[HKEY_CURRENT_USER\ControlPanel\Notifications\{695F6B37-EE99-489b-982D-F9A46A944ED1}]

@="RSS Hub: New Items Received"

"Wave"="Alert-Guitar1"

"Duration"=dword:00000000

"Options"=dword:00000009

all files from pkgs are going to \windows

\windows = ROM. Files can't be in different folder and be in ROM.

If file needs to be somewhere else, it's copied there but still remains in \windows as well. copy is done by initflashfile.txt.

Directory("\Windows\Start Menu\Programs"):-File("RSS Hub.lnk","\Windows\RSS Hub.lnk")

===

cab is a standard way for users to install application on winmo.

cab is supposed to install application in \program files\ folder

cab is not used in ROMs, there is not cab interpreter in preparation on PC or initialization on pda.

Though microsoft let oems and operators add their customizing cab files to rom but only "as a cab file" and then as a last step after initialization are being run in customization process, they are not used too much and still less.

Last time I saw one on kaiser and just one. Reason, besides legal rights and you being able to send cab to someone, is that cab would remain in rom just taking up space, can't be deleted (only hidden)

-

OEMs-package

is meant for adding app to ROM.

application are supposed to remain in \windows folder

one folder on your PC, means one complete package installation.

there is no interpreter of any part of package files in pda (in form as they are-as you can see them on PC)

all initflashfiles.txt get copied into one file and executed from pda,

rgu and dsm files don't have any function or meaning in pda and since I think version 6.1 are not any longer even copied to pda. they are processed in kitchen on PC.

===

as you can see, it's all different. You could create an cab and place it in rom.

or use cab2oem and place that package in rom, but it's not what it should be.

cab would uselessly stick in rom and package would be copied over to program files and remain in windows as well, doubling files, creating possible conflicts.

correct way is, to take cab apart, try placing it in \windows\ find out what is needed, if there are files outside root of app folder, try to find their references in reg or code if you dare and try to make them work from \windows too.

cabs may look like a good mean of installing and uninstalling apps , tweaks or changes to apps, though it's creation is much more complicated than doing what they should do manually if it's meant for yourself anyway I just don't see reason to bother.

other thing is, the messing with packages after they are in pda at all is not a good idea. many files could be locked or be used by more then one app.

I think you want to take your time and create one perfect rom for you which you want to be using years and years. That's not the way anyway. We cookers are doomed to flashing and burning forever because of all the updates and new apps coming all the time. Just make backup of your contacts, messages and configurations, and start cooking from what you have. If something is not good for you, change it in kitchen and just burn again. You have thousands of tries before you burn your chips out.

Take the US t-mobile, which is one of newest official releases, running smoothly, dump it, throw away rubbish, add what ever you think you may like or want to try and flash it. then look what you've done and make changes, fixes, updates !in kitchen on PC! and flash again.

that's the way the cookie crumbles! :)