[Windows Mobile Development and Hacking General] Sleuth255:
User Customization is a config.txt file that's located on an SD card which can install cab & xml files located there too! Think about it: this gives anyone who loads your rom the ability to automatically install their preferred apps/settings as part of customization. Here's how to make your next ROM UC capable:

Cook the attached SDAutoRun.exe into \windows

if AutoRun.exe isn't already in \windows then place a copy there too. Note: some devices don't have a compatible AutoRun.exe. If you have issues, try the attached version.

Replace the "RST: Reset" line in config.txt with "EXEC:\windows\SDAutoRun.exe"

That's it! SDAutoRun will do the final reset unless it encounters a file called SDConfig.txt in the root directory of the storage card. If it sees this file, it will restart autorun and install cabs/configure settings from SDConfig.txt which can point to files that are also located on the SD card.

What's important is this: If every chef uses this system then ROM junkies will be able to freely move between ROMs. If you decide to include this in your next cooked ROM, then make sure you indicate that it's UC capable. I'd really like to make this a standard because it will greatly ease the time consuming task of re-installing apps/settings.

UC v2.0 is now Live!

Changelog

Works with non-WWE ROMs & Internal Storage Roms. SDAutoRun uses the registry to determine the default name for the Storage Card now. For newer devices, this key might be missing altogether so just cook it in. The "Folder" value points to the actual location that contains sdconfig.txt. Here's the key:

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SDMemory]

"Folder"="Storage Card"

Automatically corrects SDConfig.txt formatting errors. Extra/missing tabs, spaces, newline characters etc are corrected before passing to autorun.exe.

New string value "SDAutoRunVersion" created in HKLM\comm contains "2.0". This will help debug SDConfig.txt file issues in the user thread.

SDAutorun v2.0 is fully compatible with all SDConfig.txt files created to date. Additionally, there now shouldn't be a config file users can throw at it that it won't re-format to the following template:

Commands will be left justified into the first 5 characters and space filled

Parameters will be left justified to the 6th character and trailing whitespace will be removed

Lines that don't contain a command will not be passed to autorun. Note: To determine validity, I only check for a ":" in postion 4 or 5 here to allow for future command expansion.

if no valid commands are encountered, then a file containing only "RST: Reset" will be created

Assumptions

SDAutoRun is not signed so security must be relaxed in HKLM\Security\Policies\Polices by setting the value 0000101a to a 1.

SDConfig.txt cannot be Unicode.

Here's a link to the User's side of ROM customization:

ROM Flashing Junkies: User Customization is here!

If you build a UC capable ROM, be sure to link to the above thread. Also shoot me a PM and I'll add your ROM to the UC capable list.

The key here is that UC is an automated, unattended configuration. Setting it up is done out of the Hard Reset window and once its on your SD card, it works any time you hard reset. Automated is good because it allows mass customization from a business standpoint too. Any business using a UC capable ROM can set up a single "ROM customization" SD card then give it to their IT staff for the daily provisioning of company software/branding on new devices. Your UC capable ROMs have business appeal now! ;)

We are also working on tools that will simplify the XML/SDConfig.txt file creation process. Several good ones have already surfaced in the Users thread.

Useful Stuff

OEM Package for Kaiser