|
|||||||
| Register | FAQ | XDA-Portal | XDA-Wiki | Device database | Donate! | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
![]() |
|
|
Thread Tools | Search this Thread | Display Modes |
|
#1
|
||||
|
||||
|
What is UC? It is a feature contained in UC capable ROMs. A UC capable ROM extends initial customization to your SD card so you can load cabs and install XML files that are located there too. What this means is that once you get your customization scripts right, you can flash any UC capable ROM and all your apps and settings will be restored as part of the initial customization process whenever your SD card is inserted in the slot.
![]() Here's a sampling of UC capable ROMs: Himalaya ROMsKaiser ROMs
Here's the current list of UC related software tools
If you are a ROM chef and want to make your own ROM UC capable, then go here to learn how. The effort is trivial btw. Ok, on to creating scripts! First you need to read a short WiKi article on customization that's located here How do you set up UC? By placing a file called "SDConfig.txt" in the root directory of your storage card. The best way to illustrate this is to show examples. Here is my SDConfig.txt: Code:
LOCK:Enabled CAB: \Storage Card\Cabs\Tiltkeyboardfix.cab CAB: \Storage Card\Cabs\removeHiddenProxy4CWS_0522.cab CAB: \Storage Card\Cabs\s2u2v99c.cab CAB: \Storage Card\Cabs\CapScrUtil.CAB CAB: \Storage Card\Cabs\Communicator mobile.cab CAB: \Storage Card\Cabs\CorePlayer.PocketPC.cab CAB: \Storage Card\Cabs\HTC_GPS_TOOL.cab CAB: \Storage Card\Cabs\SpbBackup.cab CAB: \Storage Card\Cabs\SpbPocketPlus4.arm.cab CAB: \Storage Card\Cabs\SpbTime2.arm.cab CAB: \Storage Card\Cabs\SpbWeather.arm.cab CAB: \Storage Card\Cabs\SplashID.CAB CAB: \Storage Card\Cabs\SplashPhoto.CAB CAB: \Storage Card\Cabs\SPTimeSync.cab CAB: \Storage Card\Cabs\stdtime.PPC30_ARM.CAB CAB: \Storage Card\Cabs\tomtom_6_032_8351.cab CAB: \Storage Card\Cabs\VisualGPSceInstall.CAB CAB: \Storage Card\Cabs\ip.PPC_ARM.CAB CAB: \Storage Card\Cabs\SleuthKaiserVoip.cab CAB: \Storage Card\Cabs\TPGProvisioning.cab CAB: \Storage Card\Cabs\GSM610.CAB CAB: \Storage Card\Cabs\GoogleMaps_compressed.CAB CAB: \Storage Card\Cabs\LiveSearch.cab CAB: \Storage Card\Cabs\Pieff.cab XML: \Storage Card\Cabs\SleuthProvisioning.xml LOCK:Disabled RST: Reset
In my next post, I'll go over settings customization by showing you SleuthProvisioning.xml.
__________________
AT&T Tilt 2 ROM: Stock AT&T derivative Radio: v4.48.25.20 My apps/patches (click them!) All: SIPChange , UC v2.0 Hermes: PTTFix, ATI ImageON Fix, v3.2 Sleuth Kaiser: v3.0 Sleuth Last edited by Sleuth255; 13th January 2009 at 03:49 AM.. |
| Sponsored Links |
|
#2
|
||||
|
||||
|
Settings customization is pretty advanced stuff. You might want to get going first by simply using User Customization to install some cabs. If I were first starting out, I'd install cabs that customize my device. For example, I have a Tilt, so I would install a Keyboard patch cab for the Tilt layout and another cab that disables the AT&T hidden proxy. This would require two CAB: statements in SDConfig.txt.
However, if you're yearning to do more settings customization, then the "XML:" config statement is the key. Here's my XML provisioning file called SleuthProvisioning.xml. It initializes me in cleartype mode, changes my notification settings, initializes the default SIP to Block Recognizer, sets power and backlight timeouts, re-arranges my today screen and updates my Owner Name. ![]() Code:
<wap-provisioningdoc>
<!-- ClearType Preferences -->
<characteristic type="Registry">
<!-- Just adding this Key enables ClearType -->
<characteristic type="HKLM\System\GDI\CLEARTYPE">
<parm name="Default" value="0" datatype="integer"/>
<noparm name="Default"/>
</characteristic>
<characteristic type="HKLM\System\GDI\ClearTypeSettings">
<parm name="OffOnRotation" value="0" datatype="integer"/>
</characteristic>
<!-- Owner Preferences -->
<characteristic type="HKCU\ControlPanel\Owner">
<parm name="Name" value="Sleuth 255" datatype="string"/>
<!-- Owner value is SZ_BINARY: 320 Unicode characters (640 bytes). XML "Binary" datatype processes this as Base64-->
<parm name="Owner" value="SwBlAaSwDyuuIIgvrRRvAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==" datatype="binary"/>
</characteristic>
<!-- Notification Preferences -->
<!-- New Email Message -->
<characteristic type="HKCU\ControlPanel\Notifications\{A877D65A-239C-47a7-9304-0D347F580408}">
<parm name="Options" value="2" datatype="integer"/>
</characteristic>
<!-- Reminders -->
<characteristic type="HKCU\ControlPanel\Notifications\{15F11F90-8A5F-454c-89FC-BA9B7AAB0CAD}">
<parm name="Options" value="1073741833" datatype="integer"/>
</characteristic>
<!-- Power/Backlight Timeout Preferences -->
<characteristic type="HKCU\ControlPanel\BackLight">
<parm name="BatteryTimeout" value="240" datatype="integer"/>
<parm name="ACTimeout" value="360" datatype="integer"/>
</characteristic>
<characteristic type="HKLM\System\CurrentControlSet\Control\Power\Timeouts">
<parm name="ACSuspendTimeout" value="300" datatype="integer"/>
<parm name="BattSuspendTimeout" value="180" datatype="integer"/>
</characteristic>
<!-- Application Preferences -->
<characteristic type="HKCU\Software\The Paradigm Group\sipchange\Parameters">
<parm name="DefaultSIP" value="Block Recognizer" datatype="string"/>
<parm name="Delay" value="10" datatype="integer"/>
</characteristic>
<characteristic type="HKCU\Software\Spacreat\SP TimeSync\General settings">
<parm name="Start minimized" value="Yes" datatype="string"/>
</characteristic>
<characteristic type="HKCU\Software\Spacreat\SP TimeSync\NTP client">
<parm name="Autosync period" value="21600" datatype="string"/>
</characteristic>
<!-- Silent Keyboard Sliding Sound -->
<characteristic type="HKLM\Software\HTC\SlidingSound">
<parm name="ActiveSlidingSound" value="0" datatype="integer"/>
<parm name="SlidingSoundEffect" value="0" datatype="integer"/>
</characteristic>
<!-- Today Screen Order/Enabled Preferences -->
<characteristic type="HKLM\Software\Microsoft\Today\Items\HTC Home">
<parm name="Enabled" value="0" datatype="integer"/>
<parm name="Order" value="0" datatype="integer"/>
</characteristic>
<characteristic type="HKLM\Software\Microsoft\Today\Items\Windows Live Search">
<parm name="Enabled" value="1" datatype="integer"/>
<parm name="Order" value="1" datatype="integer"/>
</characteristic>
<characteristic type="HKLM\Software\Microsoft\Today\Items\"Messaging"">
<parm name="Enabled" value="1" datatype="integer"/>
<parm name="Order" value="5" datatype="integer"/>
</characteristic>
<characteristic type="HKLM\Software\Microsoft\Today\Items\"Calendar"">
<parm name="Enabled" value="1" datatype="integer"/>
<parm name="Order" value="20" datatype="integer"/>
</characteristic>
<characteristic type="HKLM\Software\Microsoft\Today\Items\"Tasks"">
<parm name="Enabled" value="0" datatype="integer"/>
<parm name="Order" value="21" datatype="integer"/>
</characteristic>
<characteristic type="HKLM\Software\Microsoft\Today\Items\"TomTom"">
<parm name="Enabled" value="0" datatype="integer"/>
<parm name="Order" value="22" datatype="integer"/>
</characteristic>
<characteristic type="HKLM\Software\Microsoft\Today\Items\Windows Live">
<parm name="Enabled" value="0" datatype="integer"/>
<parm name="Order" value="23" datatype="integer"/>
</characteristic>
<characteristic type="HKLM\Software\Microsoft\Today\Items\"Pocket Plus"">
<parm name="Enabled" value="1" datatype="integer"/>
<parm name="Order" value="24" datatype="integer"/>
</characteristic>
<characteristic type="HKLM\Software\Microsoft\Today\Items\"Spb Weather"">
<parm name="Enabled" value="0" datatype="integer"/>
<parm name="Order" value="26" datatype="integer"/>
</characteristic>
<characteristic type="HKLM\Software\Microsoft\Today\Items\"Spb Time"">
<parm name="Enabled" value="0" datatype="integer"/>
<parm name="Order" value="28" datatype="integer"/>
</characteristic>
<characteristic type="HKLM\Software\Microsoft\Today\Items\"Spb Backup"">
<parm name="Enabled" value="0" datatype="integer"/>
<parm name="Order" value="42" datatype="integer"/>
</characteristic>
<characteristic type="HKLM\Software\Microsoft\Today\Items\"Owner Info"">
<parm name="Enabled" value="0" datatype="integer"/>
<parm name="Order" value="46" datatype="integer"/>
</characteristic>
<characteristic type="HKLM\Software\Microsoft\Today\Items\Getting Started">
<parm name="Enabled" value="0" datatype="integer"/>
<parm name="Order" value="47" datatype="integer"/>
</characteristic>
</characteristic>
<-- File Operations -->
<-- Copy the SP Timesync link to startup so it gets executed whenever I reset -->
<characteristic type="FileOperation">
<characteristic type="%CE2%\Startup" translation="install">
<characteristic type="MakeDir" />
<characteristic type="StartTimeSync.lnk" translation="install">
<characteristic type="Copy">
<parm name="Source" value="\windows\Start Menu\Programs\SP TimeSync.lnk" translation="install" />
</characteristic>
</characteristic>
</characteristic>
</characteristic>
</wap-provisioningdoc>
Code:
<wap-provisioningdoc> <characteristic type="Registry"> </characteristic> <characteristic type="FileOperation"> </characteristic> </wap-provisioningdoc> Within the registry type, I set a lot of cool stuff. You should be able to firgure out how it works if you have basic registry skills. Essentially, setting values for any registry key looks like this: Code:
<characteristic type="HKCU\ControlPanel\BackLight">
<parm name="BatteryTimeout" value="240" datatype="integer"/>
<parm name="ACTimeout" value="360" datatype="integer"/>
</characteristic>
Special characters within quotes in XML files must be represented using html special character sequences. For instance, the double quote (") character sequence is " so "Today\Items\"Pocket Plus"" would be written as "Today\Items\"Pocket Plus"". The full list of special HTML character sequences can be found here. This is especially important when changing today screen plugin order since some today screen registry entries actually have quotes in the key name. See my provisioning file above under "Today Screen order/enabled preferences" for an example of this.
__________________
AT&T Tilt 2 ROM: Stock AT&T derivative Radio: v4.48.25.20 My apps/patches (click them!) All: SIPChange , UC v2.0 Hermes: PTTFix, ATI ImageON Fix, v3.2 Sleuth Kaiser: v3.0 Sleuth Last edited by Sleuth255; 18th March 2008 at 04:12 AM.. |
|
#3
|
||||
|
||||
|
File Operation CSPs
All the File Operation CSP parameters are described here. Here's mine: Code:
<characteristic type="%CE2%\Startup" translation="install">
<characteristic type="MakeDir" />
<characteristic type="StartTimeSync.lnk" translation="install">
<characteristic type="Copy">
<parm name="Source" value="\windows\Start Menu\Programs\SP TimeSync.lnk" translation="install" />
</characteristic>
</characteristic>
</characteristic>
Here's a great example from booda. It shows shortcut creation, move, directory creation and remove operations: Code:
<characteristic type="FileOperation"> <!--Create folder in Programs called "Docs and Ref" and move Google Maps shortcut into it--> <characteristic type="%CE2%\Start Menu\Programs\Docs and Ref" translation="install"> <characteristic type="MakeDir" /> <characteristic type="Google Maps.lnk" translation="install"> <characteristic type="Move"> <parm name="Source" value="%CE2%\Start Menu\Programs\Google Maps.lnk" translation="install"/> </characteristic> </characteristic> </characteristic> <!--Create "Doom" shortcut from exe on storage card and copy it into Games folder--> <characteristic type="%CE2%\Start Menu\Programs\Games" translation="install"> <characteristic type="MakeDir" /> <characteristic type="gfDoom.lnk" translation="install"> <characteristic type="Shortcut"> <parm name="Source" value="\Storage Card\Games\Doom\gfDoom.exe" translation="install"/> </characteristic> </characteristic> </characteristic> <!-- Move Office folder from Start Menu into Docs and Ref folder --> <characteristic type="%CE2%\Start Menu\Programs\Docs and Ref\Office Mobile" translation="install"> <characteristic type="MakeDir" /> <characteristic type="Excel Mobile.lnk" translation="install"> <characteristic type="Move"> <parm name="Source" value="%CE2%\Start Menu\Programs\Office Mobile\Excel Mobile.lnk" translation="install"/> </characteristic> </characteristic> <characteristic type="icon.lnk" translation="install"> <characteristic type="Move"> <parm name="Source" value="%CE2%\Start Menu\Programs\Office Mobile\icon.lnk" translation="install"/> </characteristic> </characteristic> <characteristic type="OneNote Mobile.lnk" translation="install"> <characteristic type="Move"> <parm name="Source" value="%CE2%\Start Menu\Programs\Office Mobile\OneNote Mobile.lnk" translation="install"/> </characteristic> </characteristic> <characteristic type="PowerPoint Mobile.lnk" translation="install"> <characteristic type="Move"> <parm name="Source" value="%CE2%\Start Menu\Programs\Office Mobile\PowerPoint Mobile.lnk" translation="install"/> </characteristic> </characteristic> <characteristic type="Word Mobile.lnk" translation="install"> <characteristic type="Move"> <parm name="Source" value="%CE2%\Start Menu\Programs\Office Mobile\Word Mobile.lnk" translation="install"/> </characteristic> </characteristic> </characteristic> <characteristic type="%CE2%\Start Menu\Programs\Office Mobile" translation="install"> <characteristic type="RemoveDir" /> </characteristic> </characteristic> Quote:
Code:
%CE1% \Program Files %CE2% \Windows %CE3% ***Not Defined*** %CE4% \Windows\Startup %CE5% \My Documents %CE6% \Program Files\Accessories %CE7% \Program Files\Communication %CE8% \Program Files\Games %CE9% ***Not Defined*** %CE10% ***Not Defined*** %CE11% \Windows\Start Menu\Programs %CE12% \Windows\Start Menu\Programs\Accessories %CE13% \Windows\Start Menu\Programs\Communication %CE14% \Windows\Start Menu\Programs\Games %CE15% \Windows\Fonts %CE16% ***Not Defined*** %CE17% \Windows\Start Menu All the EMAIL2 CSP provisioning parameters are described here Elosogrande7076 shows us how to provision a couple of email accounts below. To be safe, use GUID-GEN to generate unique GUIDs. This is because duplicate GUIDs will cause undefined results on your device. Code:
<wap-provisioningdoc>
<characteristic type="EMAIL2">
<characteristic type="{7B3D74EC-35D9-45e3-B8F3-E38F4B90D174}">
<parm name="SERVICENAME" value="Gmail" />
<parm name="SERVICETYPE" value="IMAP4" />
<parm name="INSERVER" value="imap.gmail.com" />
<parm name="OUTSERVER" value="smtp.gmail.com" />
<parm name="NAME" value="Username" />
<parm name="AUTHNAME" value="login@gmail.com" />
<parm name="AUTHSECRET" value="password" />
<parm name="DOMAIN" value="" />
<parm name="REPLYADDR" value="login@gmail.com" />
<parm name="LINGER" value="15" />
<parm name="RETRIEVE" value="-1" />
<parm name="KEEPMAX" value="-1" />
<parm name="DWNDAY" value="3" />
<parm name="AUTHREQUIRED" value="1" />
<parm name="SMTPALTENABLED" value="1" />
<parm name="SMTPALTAUTHNAME" value="login@gmail.com" />
<parm name="SMTPALTPASSWORD" value="password" />
<parm name="SMTPALTDOMAIN" value="smtp.gmail.com" />
</characteristic>
</characteristic>
<characteristic type="EMAIL2">
<characteristic type="{877e6100-cd6d-4a44-bd4c-3edf4b901480}">
<parm name="SERVICENAME" value="Gmail1" />
<parm name="SERVICETYPE" value="IMAP4" />
<parm name="INSERVER" value="imap.gmail.com" />
<parm name="OUTSERVER" value="smtp.gmail.com" />
<parm name="NAME" value="Username" />
<parm name="AUTHNAME" value="login1@gmail.com" />
<parm name="AUTHSECRET" value="password1" />
<parm name="DOMAIN" value="" />
<parm name="REPLYADDR" value="login1@gmail.com" />
<parm name="LINGER" value="15" />
<parm name="RETRIEVE" value="-1" />
<parm name="KEEPMAX" value="-1" />
<parm name="DWNDAY" value="3" />
<parm name="AUTHREQUIRED" value="1" />
<parm name="SMTPALTENABLED" value="1" />
<parm name="SMTPALTAUTHNAME" value="login1@gmail.com" />
<parm name="SMTPALTPASSWORD" value="password1" />
<parm name="SMTPALTDOMAIN" value="smtp.gmail.com" />
</characteristic>
</characteristic>
</wap-provisioningdoc>
Quote:
Quote:
__________________
AT&T Tilt 2 ROM: Stock AT&T derivative Radio: v4.48.25.20 My apps/patches (click them!) All: SIPChange , UC v2.0 Hermes: PTTFix, ATI ImageON Fix, v3.2 Sleuth Kaiser: v3.0 Sleuth Last edited by Sleuth255; 18th March 2008 at 02:15 AM.. |
|
#4
|
||||
|
||||
|
Here's an easier way to create your provisioning XML files!
__________________
AT&T Tilt 2 ROM: Stock AT&T derivative Radio: v4.48.25.20 My apps/patches (click them!) All: SIPChange , UC v2.0 Hermes: PTTFix, ATI ImageON Fix, v3.2 Sleuth Kaiser: v3.0 Sleuth Last edited by Sleuth255; 18th February 2008 at 04:57 AM.. |
|
#5
|
||||
|
||||
|
Nice contrubution....
only can say THANKS ![]()
__________________
HTC Touch Pro T7272 Kaiser / Raphael Kitchen Kaiser Spanish Input/dictionary & Other Languajes Reconstructing a ROM for Kaiser / Raphael Raphael WM 6.1 Spanish Lite ROM Donate if my works helps you |
|
#6
|
||||
|
||||
|
Great work
![]() Are you also supporting these functions? Quote:
|
|
#7
|
||||
|
||||
|
I haven't gotten CPY1 and CPY2 to work. I'd make a cab to copy files itmt. EXEC: works just fine. I haven't tested SHOW: yet.
I'm acutally using AutoRun to parse btw. My program just configures the registry then runs AutoRun.exe again. Note: many people have gotten CPY1 and CPY2 to work correctly The syntax is as follows: CPY1: <source file to copy> CPY2: <destination to copy to> CPY2: must immediately follow CPY1: YMMV on this command for sure. On a Kaiser, these commands don't appear to work properly.
__________________
AT&T Tilt 2 ROM: Stock AT&T derivative Radio: v4.48.25.20 My apps/patches (click them!) All: SIPChange , UC v2.0 Hermes: PTTFix, ATI ImageON Fix, v3.2 Sleuth Kaiser: v3.0 Sleuth Last edited by Sleuth255; 11th February 2008 at 11:32 PM.. |
|
#8
|
|||
|
|||
|
Sleuth255....
This is fantastic! Excellent information. Thank you!!
__________________
ATT TouchPro2 |R|6.5.3|ROM|WWE| EnergyROM "Phoenix 2" 28011 All 3 Jawbones and Sony HBH-DS980 |
|
#9
|
||||
|
||||
|
Hi Sleuth,
There is a way for get apps installed in my Storage Card? I preffer this way because I want the memory device free for running applications. Thanks in advance, Taguapire. |
|
#10
|
||||
|
||||
|
sorry. AutoRun, by HTC design, cannot install apps to your storage card.
edit: Actually, AutoRun installs cabs to the location specified by the cab itself. Most cabs don't specify a location however and in this case AutoRun chooses the device. However, you can override this behavior by using WinCE Cab Manager to create a cab that will only install to the Storage Card.
__________________
AT&T Tilt 2 ROM: Stock AT&T derivative Radio: v4.48.25.20 My apps/patches (click them!) All: SIPChange , UC v2.0 Hermes: PTTFix, ATI ImageON Fix, v3.2 Sleuth Kaiser: v3.0 Sleuth Last edited by Sleuth255; 17th February 2008 at 07:13 PM.. |
![]() |
| Thread Tools | Search this Thread |
| Display Modes | |
|
|