|
View Poll Results: What you want to know about UC? | |||
Basics - show me how to get started | 72 | 35.29% | |
Editing and creating cabs - I want to share what I do | 13 | 6.37% | |
XML Provisioning - I want to set up ActiveSync,WI-FI... automatically | 40 | 19.61% | |
Scripting - I want to learn MortScript and how it can make UC easier | 9 | 4.41% | |
Advanced Customizations - Removing the things I don't use | 31 | 15.20% | |
What the hell is UC anyway? | 39 | 19.12% | |
Voters: 204. You may not vote on this poll |
|
LinkBack | Thread Tools | Display Modes |
|
||||
Learn UC / XDA_UC / Registry / XML Provisioning / CAB Editing {2010-12-15}
This is in response to a request by Neudof to help him get started using UC.
Disclaimer: There are many tools and methods for using UC and this is just my way. I welcome ideas and in no way consider what I do the best or only way. What the hell is UC anyway? UC is an application that silently install .cab, .xml, .mscr, and copies over files to your phone based on the instructions found in a file at the root of your storage card called SDconfig.txt. The idea behind it is to be able to customize your phone settings and application the way you want it immediately after a new ROM flash without having to spend hours getting it back to the way you like it. For me, I have it down to simply waiting for my sync with exchange to complete after I flash and I am back where I left it. PART 1 I use a tool called SDConfigGen to generate the config.txt file for me. Read this thread: CLICK HERE Unzip SDConfigGen.0.6.zip on your computer and you will have a directory structure created that looks like this: Simple steps:
Converting from UC to XDA_UC Many ROMS now support XDA_UC and some have stopped supporting UC. All of the topics I cover in this thread are totally applicable still. Scroll down to post #6 to learn about the basics of XDA_UC and converting to it.
__________________
Some requests I have filled: Click Here
Last edited by NinjaDuck; 12-15-2010 at 09:39 PM. |
This post has been thanked 54 times. |
|
||||
Sharing how I do UC (User Customization) - Handling Cabs with Prompts
Handling Cabs with Prompts
With the process I use, there are two ways to handle cabs with prompts: Option #1 Create a MortScript file with the exact same name as the CAB file except with a MSCR suffix. The MortScript file must be put in the same folder as the CAB. Example:
Here is an example of a script that would handle the prompts in Opera Mobile's installer: Code:
windowTitle = "Opera Mobile Installer" WaitFor(windowTitle, 120) SendOK(windowTitle) Option #2 Cabs that prompt the user have a setup.dll enabled that executes some custom code after the install completes. In many cases, these can be disabled without a problem by editing the _SETUP.XML file in the cab and setting the following paramater to 0: Code:
<parm name="SetupDLL" value="0" /> You can extract the cab I made for Opera to examine what I did HERE. I will provide detail instructions for editing cabs in a later post. The intent of this section was to introduce you to your options so you can make a choice to stop learning here and use MortScript, or continue on in your quest for knowledge. Last edited by NinjaDuck; 03-15-2010 at 11:05 PM. |
This post has been thanked 26 times. |
|
||||
Sharing how I do UC (User Customization) - Exporting your Registry
Exporting your registry to the Settings Folder
This is probably the most important section for minimizing the amount of time you have to spend setting up your device after you flash. Tools First thing you need is some tools to browse and export registry keys. My two recommendation (there are many others) are:
Last edited by NinjaDuck; 03-06-2010 at 10:54 PM. |
This post has been thanked 28 times. |
|
||||
Sharing how I do UC (User Customization) - PROVISIONING XML
Provisioning XML
Provisioning XML documents are simply a set of instructions based in an XML document that tells your phone what to do. This is actually the same structure used in CAB installation files. Provinsioning XML 101 - Learn XML First a couple of pieces of information for those who are completely new to this.
Code:
<XML> <ELEMENT> </ELEMENT> </XML>
Code:
<XML> <ELEMENT/> </XML>
Code:
<XML> <!-- EXAMPLE OF AN ELEMENT WITH AN OPEN AND CLOSE --> <ELEMENT></ELEMENT> <!-- EXAMPLE OF AN ELEMENT THAT SELF TERMINATES --> <ELEMENT/> </XML>
Code:
<XML> <ELEMENT SAMPLE="See what I am saying"></ELEMENT> </XML> A wap-provisioningdoc is an xml document that opens with the <wap-provisioningdoc> tag and contains elements with the charachteristics you want to set. Some charachteristics you might be interested in:
http://msdn.microsoft.com/en-us/library/bb737536.aspx Provinsioning XML 200 - Common examples ActiveSync (exchange) - These are the settings I use, your settings may be different. Code:
<wap-provisioningdoc> <characteristic type="Sync"> <characteristic type="Connection"> <parm name="Server" value="{your domain}"/> <parm name="AllowSSLOption" value="1"/> <parm name="User" value="{your username}"/> <parm name="Domain" value="{your domain}"/> <parm name="Password" value="{your password}"/> <parm name="SavePassword" value="1"/> </characteristic> <characteristic type="Settings"> <parm name="PeakStartTime" value="0800"/> <parm name="PeakEndTime" value="1800"/> <parm name="PeakFrequency" value="-1"/> <parm name="BodyTruncation" value="-1"/> <parm name="SyncWhenRoaming" value="1"/> <parm name="MIMETruncation" value="51200"/> <characteristic type="PeakDays"> <parm name="Sun" value="0"/> <parm name="Mon" value="1"/> <parm name="Tue" value="1"/> <parm name="Wed" value="1"/> <parm name="Thr" value="1"/> <parm name="Fri" value="1"/> <parm name="Sat" value="0"/> </characteristic> </characteristic> <characteristic type="Mail"> <parm name="Enabled" value="1"/> <parm name="MailBodyTruncation" value="-1"/> <parm name="MailFileAttachments" value="-1"/> </characteristic> <characteristic type="Calendar"> <parm name="Enabled" value="1"/> </characteristic> <characteristic type="Contacts"> <parm name="Enabled" value="1"/> </characteristic> <characteristic type="Tasks"> <parm name="Enabled" value="0"/> </characteristic> </characteristic> </wap-provisioningdoc> Code:
<wap-provisioningdoc> <characteristic type="Sync"> <characteristic type="Connection"> <parm name="Server" value="m.google.com"/> <parm name="AllowSSLOption" value="1"/> <parm name="User" value="{email address}"/> <parm name="Password" value="{password}"/> <parm name="SavePassword" value="1"/> </characteristic> <characteristic type="Settings"> <parm name="PeakStartTime" value="0800"/> <parm name="PeakEndTime" value="1800"/> <parm name="PeakFrequency" value="-1"/> <parm name="BodyTruncation" value="-1"/> <parm name="SyncWhenRoaming" value="1"/> <parm name="MIMETruncation" value="51200"/> <characteristic type="PeakDays"> <parm name="Sun" value="0"/> <parm name="Mon" value="1"/> <parm name="Tue" value="1"/> <parm name="Wed" value="1"/> <parm name="Thr" value="1"/> <parm name="Fri" value="1"/> <parm name="Sat" value="0"/> </characteristic> </characteristic> <characteristic type="Mail"> <parm name="Enabled" value="1"/> <parm name="MailBodyTruncation" value="-1"/> <parm name="MailFileAttachments" value="-1"/> </characteristic> <characteristic type="Calendar"> <parm name="Enabled" value="1"/> </characteristic> <characteristic type="Contacts"> <parm name="Enabled" value="1"/> </characteristic> <characteristic type="Tasks"> <parm name="Enabled" value="0"/> </characteristic> </characteristic> </wap-provisioningdoc> Code:
<wap-provisioningdoc> <characteristic type="EMAIL2"> <characteristic type="{bef6bd14-cdcf-403f-a7a7-f4aa9055bdf8}"> <parm name="SERVICENAME" value="{Name the service}" /> <parm name="SERVICETYPE" value="IMAP4" /> <parm name="INSERVER" value="imap.gmail.com" /> <parm name="OUTSERVER" value="smtp.gmail.com" /> <parm name="NAME" value="{Your Name}" /> <parm name="REPLYADDR" value="{your email}" /> <parm name="AUTHNAME" value="{Your username/email account}" /> <parm name="AUTHSECRET" value="{your password}" /> <parm name="DOMAIN" value="" /> <parm name="AUTHREQUIRED" value="1" /> <parm name="LINGER" value="0" /> <parm name="RETRIEVE" value="-1" /> <parm name="KEEPMAX" value="0" /> <parm name="DWNDAY" value="3" /> <parm name="SMTPALTENABLED" value="0" /> <parm name="SMTPALTAUTHNAME" value="" /> <parm name="SMTPALTPASSWORD" value="" /> <parm name="SMTPALTDOMAIN" value="" /> <characteristic type="TAGPROPS"> <parm name="8128000B" value="1"/> <parm name="812C000B" value="1"/> </characteristic> </characteristic> </characteristic> </wap-provisioningdoc> Code:
<wap-provisioningdoc> <characteristic type="EMAIL2"> <characteristic type="{618a7a2b-d44e-4069-9df0-c7aa69038a37}"> <parm name="SERVICENAME" value="Hotmail" /> <parm name="SERVICETYPE" value="POP3" /> <parm name="INSERVER" value="pop3.live.com" /> <parm name="OUTSERVER" value="smtp.live.com" /> <parm name="NAME" value="My Name" /> <parm name="REPLYADDR" value="" /> <parm name="AUTHNAME" value="{your account}@hotmail.com" /> <parm name="AUTHSECRET" value="{your passowrd}" /> <parm name="DOMAIN" value="" /> <parm name="AUTHREQUIRED" value="1" /> <parm name="LINGER" value="120" /> <parm name="RETRIEVE" value="-1" /> <parm name="KEEPMAX" value="-1" /> <parm name="DWNDAY" value="3" /> <parm name="SMTPALTENABLED" value="0" /> <parm name="SMTPALTAUTHNAME" value="" /> <parm name="SMTPALTPASSWORD" value="" /> <parm name="SMTPALTDOMAIN" value="" /> <characteristic type="TAGPROPS"> <parm name="8128000B" value="0"/> <parm name="812C000B" value="0"/> </characteristic> </characteristic> </characteristic> </wap-provisioningdoc> Code:
<wap-provisioningdoc> <characteristic type="Wi-Fi"> <characteristic type="access-point"> <characteristic type="{YOUR SID}"> <parm name="NetworkKey" value="{YOUR KEY}"/> <parm name="Authentication" value="0"/> <parm name="Encryption" value="0"/> <parm name="KeyIndex" value="1"/> <parm name="KeyProvided" value="0"/> </characteristic> </characteristic> </characteristic> </wap-provisioningdoc> Code:
<wap-provisioningdoc> <characteristic type="clock"> <!-- COMMENT - EASTERN US - SEE MSDN --> <parm name="TimeZone" value="35"/> </characteristic> </wap-provisioningdoc> Code:
<wap-provisioningdoc> <characteristic type="BrowserFavorite"> <characteristic type="PPC Geeks"> <parm name="URL" value="http://m.ppcgeeks.com/"/> <parm name="Order" value="0"/> </characteristic> </wap-provisioningdoc> Last edited by NinjaDuck; 03-18-2010 at 09:41 PM. |
This post has been thanked 34 times. |
This post has been thanked 25 times. |
|
||||
Converting UC to XDA_UC
Using XDA_UC
Q: What is the difference between UC and XDA_UC? A: Not much really. You can do many of the same things except XDA_UC is script based and uses a flattened structure for XML, REG, MSCR, and CAB files. It does other things as well and applications can vary. I am just going to cover the basics here. FYI - UC does not support REG, so this is a clear advantage. Getting Started with XDA_UC
You could just dump your files in the directory and go. Me personally, I like to keep my files organized on my computer the I used to do it for UC. For that reason, I created the attached old school CMD file to create the XDA_UC folder on my computer so I can just copy it to my phone.
Last edited by NinjaDuck; 08-12-2010 at 10:14 PM. |
This post has been thanked 18 times. |
|
||||
Some additional information you might fined helpful
Some additional information you might fined helpful
There are variables to use for folder paths %CE1% \Program Files %CE2% \Windows %CE4% \Windows\StartUp %CE5% \My Documents %CE6% \Program Files\Accessories %CE7% \Program Files\Communication %CE8% \Program Files\Games %CE11% \Windows\Start Menu\Programs %CE12% \Windows\Start Menu\Programs\Accessories %CE13% \Windows\Start Menu\Programs\Communications %CE14% \Windows\Start Menu\Programs\Games %CE15% \Windows\Fonts %CE17% \Windows\Start Menu Learn how to create or repack cab files without buying a program I was going to write this, but there already is a great thread that talks about how to build cabs (old school style). Check out this thread (and give thanks!): Last edited by NinjaDuck; 12-15-2010 at 09:38 PM. |
This post has been thanked 17 times. |
|
||||
Re: Learn how to use UC (User Customization)
This is AWESOME!
Thank you for creating this for all of us UC n00bs!! This is exactly what I was looking for!
__________________
2GB of free online storage accessable from any device with Dropbox: http://db.tt/DhSdics Please click "Thanks" if I have helped or inspired you. |
|
||||
Re: Learn how to use UC (User Customization)
NICE WORK!!! Oddly enough I have sahimied, I have PIM, I have SPB, I have XDA_UC, and Ziggy back up before......but never have I taken the time to learn UC. Now I am going to, you have done a great job at putting this together for peeps to understand. Looking forward to more info! kudos!c
__________________
HTC ThunderBolt
Perfect Storm ROM by chingy51o & Team Mik Rooted / S-Off |
|
||||
Re: Learn UC / Registry / XML Provisioning / CAB Editing {2010-03-08}
sticky this
__________________
Touch Pro 2 O/C 749mHz: LEAD ROM Mar. 5 2011 6.5 Release Candidate multi carrier lite
Treo Pro ROM: Cooked my own 21911 6.5 from raiderfan's kitchen. |
|
|
|