5,604,367 Members 48,664 Now Online
XDA Developers Android and Mobile Development Forum

[App] ROM Flashing Junkies: User Customization is here!

Tip us?
 
Sleuth255
Old
(Last edited by Sleuth255; 13th January 2009 at 02:49 AM.)
#1  
Sleuth255's Avatar
Retired Senior Moderator - OP
Thanks Meter 39
Posts: 3,543
Join Date: Mar 2006
Default [App] ROM Flashing Junkies: User Customization is here!

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 ROMsHerald ROMsVogue ROMsTitan ROMsProphet ROMsElf ROMsWizard ROMsHermes ROMsTrinity 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
Here are some important facts to remember:
  • end your file with the "RST: Reset" command
  • The file cannot be UNICODE
  • All commands must be in UPPER CASE. CAB: is valid but Cab: is not. Case is not important in the parameter portion however: \Storage Card\CABS\myCAB.cab is the same as \storage card\cabs\mycab.cab.
  • Cabs that specifically wait for additiional user input (other than the initial location) can be loaded but require special grouping. An example of this is the 1-calc installation which stops and makes you accept a license agreement. Go here to find out how to load these. Thanks booda!
  • Tabs/Spaces at the end of a line are not allowed and will cause SDAutoRun to abort on a file not found error.
  • The first 5 characters of a line are reserved for the command. The parameter for the command must begin on the 6th character That means to add one space to 4 character commands like "CAB:" and no spaces to 5 character commands like "HIDE:".

In my next post, I'll go over settings customization by showing you SleuthProvisioning.xml.



ROM: rooted/deodexed 4.1.1 (JRO03O)
Kernel: Franco Dailies: r295
Baseband: FF02/FG02
The Following 3 Users Say Thank You to Sleuth255 For This Useful Post: [ Click to Expand ]
 
Sleuth255
Old
(Last edited by Sleuth255; 18th March 2008 at 04:12 AM.)
#2  
Sleuth255's Avatar
Retired Senior Moderator - OP
Thanks Meter 39
Posts: 3,543
Join Date: Mar 2006
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\&quot;Messaging&quot;">
     <parm name="Enabled" value="1" datatype="integer"/> 
     <parm name="Order" value="5" datatype="integer"/> 
  </characteristic>
    <characteristic type="HKLM\Software\Microsoft\Today\Items\&quot;Calendar&quot;">
     <parm name="Enabled" value="1" datatype="integer"/> 
     <parm name="Order" value="20" datatype="integer"/> 
  </characteristic>
  <characteristic type="HKLM\Software\Microsoft\Today\Items\&quot;Tasks&quot;">
     <parm name="Enabled" value="0" datatype="integer"/> 
     <parm name="Order" value="21" datatype="integer"/> 
  </characteristic>
  <characteristic type="HKLM\Software\Microsoft\Today\Items\&quot;TomTom&quot;">
     <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\&quot;Pocket Plus&quot;">
     <parm name="Enabled" value="1" datatype="integer"/> 
     <parm name="Order" value="24" datatype="integer"/> 
  </characteristic>
  <characteristic type="HKLM\Software\Microsoft\Today\Items\&quot;Spb Weather&quot;">
     <parm name="Enabled" value="0" datatype="integer"/> 
     <parm name="Order" value="26" datatype="integer"/> 
  </characteristic>
  <characteristic type="HKLM\Software\Microsoft\Today\Items\&quot;Spb Time&quot;">
     <parm name="Enabled" value="0" datatype="integer"/> 
     <parm name="Order" value="28" datatype="integer"/> 
  </characteristic>
  <characteristic type="HKLM\Software\Microsoft\Today\Items\&quot;Spb Backup&quot;">
     <parm name="Enabled" value="0" datatype="integer"/> 
     <parm name="Order" value="42" datatype="integer"/> 
  </characteristic>
  <characteristic type="HKLM\Software\Microsoft\Today\Items\&quot;Owner Info&quot;">
     <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>
Lets take a look at this more closely. The XML itself sets up two Configuration Service providers. One is used for registry operations and one for file operations. both are enclosed by the wap-provisioning tags. Here they are shown without any operations:

Code:
<wap-provisioningdoc>
<characteristic type="Registry">
</characteristic>
<characteristic type="FileOperation">
</characteristic>
</wap-provisioningdoc>
Registry CSPs

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>
First you set the key with the <characteristic type> tag, then you set values with the <parm name> tags. Binary values are a PITA since they're encoded Base 64 (see my entry for Owner Information above). If you want to set owner information as I did in the example, then you need to convert Unicode to Base64. Post here if you want to learn how and I'll show you how I do it.

Special characters within quotes in XML files must be represented using html special character sequences. For instance, the double quote (") character sequence is &quot; so "Today\Items\"Pocket Plus"" would be written as "Today\Items\&quot;Pocket Plus&quot;". 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.



ROM: rooted/deodexed 4.1.1 (JRO03O)
Kernel: Franco Dailies: r295
Baseband: FF02/FG02
 
Sleuth255
Old
(Last edited by Sleuth255; 18th March 2008 at 02:15 AM.)
#3  
Sleuth255's Avatar
Retired Senior Moderator - OP
Thanks Meter 39
Posts: 3,543
Join Date: Mar 2006
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>
%CE2% is a shorthand way for saying "\windows". As you can see, the first characteristic types set the working directory to \windows\startup, the destination file to "StartTimeSync.lnk" and the file operation to "Copy". Finally, the source file is set and the CSP copies \windows\SP TimeSync.lnk to \windows\startup\StartTimeSync.lnk.

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:
Originally Posted by booda
Couple of things to note - I always use "install" and "MakeDir" commands for folders - if the folder already exists, it won't do anything, and if it doesn't, the folder will be created. Either way, you know the folder will be there to move the shortcuts into.

The MakeDir and RemoveDir commands don't require a closing [/characteristic] tag - just make sure the slash is included as in the examples above.

You have to make sure that 1) any files you're referencing already exist and 2) you have the names exactly right. If you try to move a shortcut that isn't there or has a different name than what you referenced, the whole process bombs out.
Here are all the %CE#% shortcuts (thanks to chainfire)
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
EMAIL2 CSPs

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>
XML Creation FAQ

Quote:
1.- Why Provisioning file is not loaded, I mean, it doen't work nor load any registry or feature that I added to it?
Its probably a syntax error. Here's how I debug syntax:
  • first obtain a cab creation utility. For windows I use Cabarc, a free m$ utility
  • you can then rename your xml to _setup.xml and double click to load it into a browser. This will verify that your <tag></tag> nesting is correct along with validating tag statements. IE won't load an xml file in display mode if this isn't correct. As an added benefit, the error message will point to the exact line where the error occurs.
  • If it looks good, make a cab containing only _setup.xml itself and run it on your device. If the xml is good, installation will be successful & your changes will be made
  • if unsuccessful, use successive installs to isolate the part that isn't working.
Quote:
2.- How I convert the HEX values showed at Registry Editor to base64 unicode? (I'm Mac user) It is for Owner registry stuff.
Being a Mac user, ymmv on this, but my technique using Windows is as follows:
  • create a Unicode file with your favorite text editor and enter your owner name (I use Windows Notepad for this, not sure what a Mac uses). Then pad it out to 320 characters with "%" characters.
  • now open that file with a Hex editor and do a global Hex replace on 25 (the hex representation of a "%") to 00. This produces a file containing the Unicode representation of your Owner name padded with binary zeros. I use WinHex for this btw.
  • Now browse to this site and select the file you've just created. Press "Convert the Source data". The Base64 data will appear.
  • Copy data to clipboard, paste into your editor (make sure word wrap is off) and remove all the newline characters (go to beginning of each line starting from bottom & press backspace). when complete, you will have one single line of base64 data. Now copy to clipboard & paste into my example.
  • Done!
Update: RapiConfig might be faster. See stan23's post located here. Download link is included.



ROM: rooted/deodexed 4.1.1 (JRO03O)
Kernel: Franco Dailies: r295
Baseband: FF02/FG02
 
Sleuth255
Old
(Last edited by Sleuth255; 18th February 2008 at 03:57 AM.)
#4  
Sleuth255's Avatar
Retired Senior Moderator - OP
Thanks Meter 39
Posts: 3,543
Join Date: Mar 2006
Here's an easier way to create your provisioning XML files!
  • get the reg -> xml tool in the first post note: needs .net framework. My computer has .net v3.5 & it works fine.
  • load an app that can do registry exports on your device. The one I use is dotfred's task manager
  • export the key you want to provision & copy to desktop using activesync
  • fire up the tool, give it the .reg and it will create provxml that contains the Registry CSP you need
  • open provxml with notepad, cut out key you want & paste this into your provisioning xml within your registry CSP tags
  • done!



ROM: rooted/deodexed 4.1.1 (JRO03O)
Kernel: Franco Dailies: r295
Baseband: FF02/FG02
 
jcespi2005
Old
#5  
jcespi2005's Avatar
Senior Member
Thanks Meter 17
Posts: 1,954
Join Date: Feb 2006
Location: Madrid
Nice contrubution....

only can say THANKS
 
doedoe
Old
#6  
doedoe's Avatar
Senior Member
Thanks Meter 0
Posts: 181
Join Date: Oct 2006
Great work

Are you also supporting these functions?

Quote:
SHOW:\Storage Card\MyImage.bmp
EXEC:\Storage Card\cusTSK.exe \Windows\MyTheme.tsk
EXEC:\windows\SetHSDPA.exe /Disable
CPY1:\Storage Card\MyFile.ext
CPY2:\My Documents\MyFile.ext
They were present with the orginal HTC AutoRun.exe's
 
Sleuth255
Old
(Last edited by Sleuth255; 11th February 2008 at 10:32 PM.)
#7  
Sleuth255's Avatar
Retired Senior Moderator - OP
Thanks Meter 39
Posts: 3,543
Join Date: Mar 2006
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.



ROM: rooted/deodexed 4.1.1 (JRO03O)
Kernel: Franco Dailies: r295
Baseband: FF02/FG02
 
Park City
Old
#8  
Member
Thanks Meter 0
Posts: 91
Join Date: Sep 2006
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
 
taguapire
Old
#9  
taguapire's Avatar
Senior Member
Thanks Meter 0
Posts: 141
Join Date: Nov 2006
Question About install apps to Storage Card

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.
http://enlamano.wordpress.com

HTC One M7 Android 4.2.2 Stock
 
Sleuth255
Old
(Last edited by Sleuth255; 17th February 2008 at 06:13 PM.)
#10  
Sleuth255's Avatar
Retired Senior Moderator - OP
Thanks Meter 39
Posts: 3,543
Join Date: Mar 2006
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.



ROM: rooted/deodexed 4.1.1 (JRO03O)
Kernel: Franco Dailies: r295
Baseband: FF02/FG02

Tags
rom flashing junkies, user customization
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes


TRENDING IN THEMER...