Hi
For now provision xml are the only way to write in all the registry entries on HTC Device,
But this kind of files have the ability to do a lot more.
-The following list shows some of the various capabilities of provxml files.
To Deploy Provxml you have 2 choices for now:
HTC-ProvXml-Deployer
Advanced config 1.1.0.1(sometime doesn't work!!)
-Write Registry key & value
This example Write a key (Registry\HKLM\System\Accessibility), including the associated values and subkeys.
Code:
[COLOR="blue"]<wap-provisioningdoc>
<characteristic type="Registry">
<characteristic type="HKLM\System\Accessibility">
<parm name="CompactMode" value="1" datatype="integer" />
<parm name="TTY" value="0" datatype="integer" />
<parm name="telecoil_UI" value="0" datatype="integer" />
<parm name="telecoil" value="0" datatype="integer" />
</characteristic>
</characteristic>
</wap-provisioningdoc>[/COLOR]
-Delete Registry key
This example delete the key (Registry\HKLM\Software\Microsoft\Test), including the associated values and subkeys.
Code:
[COLOR="blue"]<wap-provisioningdoc>
<characteristic type="Registry">
<nocharacteristic
type="HKLM\Software\Microsoft\Test"/>
</characteristic>
</wap-provisioningdoc>[/COLOR]
-Delete Registry Value
This example delete a value (TestValue) from a registry key (Registry\HKLM\Software\Microsoft\Test)
Code:
[COLOR="blue"]<wap-provisioningdoc>
<characteristic type="Registry">
<characteristic type="HKLM\Software\Microsoft\Test">
<noparm name="TestValue" />
</characteristic>
</characteristic>
</wap-provisioningdoc>[/COLOR]
-Create Folder
This example create a folder (test) into windows folder (\windows\Test\)
Code:
[COLOR="blue"]<wap-provisioningdoc>
<characteristic type="FileOperation">
<characteristic type="\Windows\test" translation="install">
<characteristic type="MakeDir" />
</characteristic>
</characteristic>
</wap-provisioningdoc>[/COLOR]
-Copy File & Change file Attributes
This example copy a file (test.png) from my ringtones folder to windows folder (\windows\Test.png) & ChangeAttributes
R Read-only
A Archive
S System
H Hidden
Code:
[COLOR="blue"]<wap-provisioningdoc>
<characteristic type="FileOperation">
<characteristic type="\Windows\" translation="install">
<characteristic type="MakeDir" />
<characteristic type="test.png" translation="install">
<characteristic type="Copy">
<parm name="Source" value="\My Documents\My Ringtones\test.png" translation="install" />
<parm name="RemoveAttributes" value="RH" />
</characteristic>
</characteristic>
</characteristic>
</characteristic>
</wap-provisioningdoc>[/COLOR]
-Set Wifi settings
This example show how to preconfigure your wifi network
Code:
[COLOR="Blue"]<wap-provisioningdoc>
<characteristic type="CM_WiFiEntries">
<characteristic type="My_SSID"> (do not change this value and delete this comment)
<parm name="DestID" value="{A1182988-0D73-439e-87AD-2A5B369F808B}"/>
</characteristic>
</characteristic>
<characteristic type="Wi-Fi">
<characteristic type="access-point">
<characteristic type="YourSSID to insert">
<parm name="DestId" value="{A1182988-0D73-439e-87AD-2A5B369F808B}"/>
<parm name="Encryption" value="0"/>
<parm name="Authentication" value="0"/>
<parm name="hidden" value="1"/>
<parm name="KeyProvided" value="0"/>
<parm name="NetworkKey" value="yourPWD to insert"/>
<parm name="KeyIndex" value="1"/>
<parm name="Use8021x" value="0"/>
</characteristic>
</characteristic>
</characteristic>[/COLOR]
-Add Favorite
This example add 2 favorites in IE
Code:
[COLOR="Blue"]<wap-provisioningdoc>
<characteristic type="BrowserFavorite">
<characteristic type="Favorite1">
<parm name="URL" value="http://www.Favorite1.com/" />
</characteristic>
<characteristic type="Favorite2">
<parm name="URL" value="http://www.Favorite2.com" />
</characteristic>
</characteristic>
</wap-provisioningdoc>[/COLOR]
-set timezone
Code:
[COLOR="Blue"]<wap-provisioningdoc>
<characteristic type="Clock">
<parm name="TimeZone" value="1200"/>
</characteristic>
</wap-provisioningdoc>[/COLOR]
Please submit provxml method you have and I will update this post.
thanks
Good job!
Thxx a lot to u!!:d
Well, Xml Provisioning has A LOT more possibilities. You can also query registry keys and values, install xap's, filesystem-access, etc. The problem is that the OEM apps do not let us process the return-data. It is processed internally.
The Xml Provisioning functions call this api internally: DMProcessConfigXml. Examples are here and here. If you google, you will find a lot more.
If we have full access to Xml Provisioning and also to the return-data, we have root-access to the device!
DMProcessConfigXml is documented on MSDN. But it is not documented as part of the Windows Phone 7 SDK. However, the api is present on Windows Phone 7. The Windows Mobile 6 SDK has a header file for that function, which can be used.
I wrote a native COM-wrapper for that function and a managed wrapper to call COM. But unfortunately the calls return errorcode 0x800704ec: "Blocked by policy"
I attach a test-app to show what I got now. Keep in mind that this uses native api's. It does not use OEM-drivers or anything.
I'm now trying to get my code called by code that is already elevated. I got some ideas, but it is tricky. So bear with me.
Nice workk Heathcliff74
i've also try to query key without success for now.
have you try to change registry policies maybe this can help!
some test are needed.
i like the way your app work very good job.
there is apppreinstaller.exe in windows folder with ability to install xap from provxml
when you launch it ,this run masd.provxml and deploy oem xap.
i'm looking how this work.
If Oem like connection setup have full access maybe we can patch the dll to allow query!
tell me what you think
xboxmod said:
Nice workk Heathcliff74
i've also try to query key without success for now.
have you try to change registry policies maybe this can help!
some test are needed.
i like the way your app work very good job.
there is apppreinstaller.exe in windows folder with ability to install xap from provxml
when you launch it ,this run masd.provxml and deploy oem xap.
i'm looking how this work.
If Oem like connection setup have full access maybe we can patch the dll to allow query!
tell me what you think
Click to expand...
Click to collapse
Hi XBOXMOD,
I'm pretty sure this has not anything to do with registry permissions. In my example I query a registry key that can be queried using the standard native registry functions without any elevated privileges. So I guess these keys are not protected. I assume that the call to DMProcessConfigXml fails because it checks the signature of the code that invokes that function. Therefore I also don't think that patching the OEM apps is going to work. When the code is patched, the signatures are not valid anymore.
I'm trying to figure out which exact signatures are verified and which signatures are responsible for the elevated privileges to call DMProcessConfigXml. When I know that I could maybe figure out a way to get my native custom code being called by elevated code.
xboxmod said:
Hi
For now provision xml are the only way to write in all the registry entries on HTC Device,
But this kind of files have the ability to do a lot more.
Click to expand...
Click to collapse
So why the "Samsung" in the title?
Is there a way to make this work on Samsung devices other than having the file to exist on the Windows folder (which is not possible yet?) ?
martani said:
So why the "Samsung" in the title?
Is there a way to make this work on Samsung devices other than having the file to exist on the Windows folder (which is not possible yet?) ?
Click to expand...
Click to collapse
I hoped my code (see xap in previous post) would be able to run provxml on all devices. I have a Samsung myself. The code I use there does not use any oem code, so that would not be the problem. I did not expect the calls would be blocked by policies. But it seems there are signatures being verified. I'm working on that (also see previous post).
Heathcliff74 said:
I hoped my code (see xap in previous post) would be able to run provxml on all devices. I have a Samsung myself. The code I use there does not use any oem code, so that would not be the problem. I did not expect the calls would be blocked by policies. But it seems there are signatures being verified. I'm working on that (also see previous post).
Click to expand...
Click to collapse
Well, I hope you get this to work soon, since the code is obfuscated!
martani said:
Well, I hope you get this to work soon, since the code is obfuscated!
Click to expand...
Click to collapse
LOL! That is my code. I obfuscated it.
Heathcliff74
where is stored provxml run by your tool?
is there a way to run my provxml with it?
xboxmod said:
Heathcliff74
where is stored provxml run by your tool?
is there a way to run my provxml with it?
Click to expand...
Click to collapse
Well he has some *obfuscated* provxml strings that get run on the app startup, I am not sure if they are safe or not
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
xboxmod said:
Heathcliff74
where is stored provxml run by your tool?
is there a way to run my provxml with it?
Click to expand...
Click to collapse
At this moment I have the xml's hard-coded in the app. If you post your xml, I will make a version with your xml. But I'm 99% sure it will return the same errorcode, because that error tells me that I'm simply not allowed to execute any xml with the privileges I got now.
I obfuscated my code, because I got a lot of work in that. It's not that I don't want to share at all, but I share only on a need-to-know-base. If anyone wants it, the PM me.
In the xap, there is a "native.dll", which contains the native code that calls DMProcessConfigXml and provides a COM interface. The other dll is the managed silverlight code (obfuscated), that calls on that COM interface.
martani said:
Well he has some *obfuscated* provxml strings that get run on the app startup, I am not sure if they are safe or not
Click to expand...
Click to collapse
Those are simply the xml's you see when you run the app. They are safe. I run 3 xml's. One for reading a regkey, one for writing a regvalue (harmless) and one that tries to install the preinstalled xap of the diagnose app. They all fail with a security error.
Heathcliff74 said:
Those are simply the xml's you see when you run the app. They are safe. I run 3 xml's. One for reading a regkey, one for writing a regvalue (harmless) and one that tries to install the preinstalled xap of the diagnose app. They all fail with a security error.
Click to expand...
Click to collapse
so if i understand for now you app can't deploy provxml even if it's an allowed part of registry?
When i said patch dll of oem apps to allow query.
i talk about htc connection setup because this oem have full registry & file system access using provxml, all command below have been test and work.
xboxmod said:
so if i understand for now you app can't deploy provxml even if it's an allowed part of registry?
Click to expand...
Click to collapse
That is correct. I wanted to make a tool that could use Xml Provisioning for all devices. And I also wanted to use the return-data (for querying registry and other services). So I didn't want to use OEM apps or drivers. I use native code to call the api directly. But apparently you need to be elevated (signed code) to do that. Trying to work around that right now.
xboxmod said:
When i said patch dll of oem apps to allow query.
i talk about htc connection setup because this oem have full registry & file system access using provxml, all command below have been test and work.
Click to expand...
Click to collapse
I guess that is not going to work, because then the signatures will not be valid anymore and you won't get the necessary elevated permissions, as you have now (with unpatched code). Try it. Change a few dummy bytes and see if it still works.
Heathcliff74 said:
I guess that is not going to work, because then the signatures will not be valid anymore and you won't get the necessary elevated permissions, as you have now (with unpatched code). Try it. Change a few dummy bytes and see if it still works.
Click to expand...
Click to collapse
i have already patch htc connection setup dll and it always run with elevated permissions.
My provxml deployer is just an edited version of htc connection.
And it keep his permissions.
the system always believe this is an allowed app.
Oups sorry double post!!
xboxmod said:
i have already patch htc connection setup dll and it always run with elevated permissions.
My provxml deployer is just an edited version of htc connection.
And it keep his permissions.
the system always believe this is an allowed app.
Click to expand...
Click to collapse
Frankly, I haven't seen any of your provxml apps, because they are all htc-specific. I know provxml is extremely useful, bus since I have a Samsung, your app is useless for me. And that's why I was looking for a way to get full access to Xml Provisioning, but I did not expect to get limited privileges.
If you're able to patch the app, then you must probably be using an app that uses oem-specific driver-communication. Because there is a security-hole in there. I already discovered that a while ago (see here, here and here).
If that is correct, then the driver is calling the actual Xml Provisioning and the driver is properly signed for that. The driver is exposing an unsecured interface. The driver itself can't be patched (or you will loose the necessary privileges, since the driver is doing the Xml Provisioning). But the code that is calling the driver can be patched without any problems.
Whether you can use the driver for querying system-information (registry, filesystem, etc) depends whether you are able to get the return-data from the Xml Provisioning. Is the return-data processed by the driver or by the app? If it is processed by the driver, then you can't access it. If it is processed by the app, you can access it when you patch the app.
didnt think anyone was still working on a proper jailbreak, but I would be really interested in hearing what people are trying to get elevated permissions.
indiekiduk said:
didnt think anyone was still working on a proper jailbreak, but I would be really interested in hearing what people are trying to get elevated permissions.
Click to expand...
Click to collapse
I made some real good progress last night. I found some real interresting api's and I got some goodies working already. I need to do a lot more testing to see what is possible. I got good confidence I can get root-access (TCB) with this. Can't say for sure quite yet. Will keep you posted!
Related
hi,
I have try a ExtRom to provide with HTC ExtRom builder.
Unfortunately do not start Rom, therefore I wanted to ask whether me someone help can the cause to find.
A How ton of which I in the XDA Dev. Himalaya forum did not find helps me unfortunately.
In the ExtRom are the following files:
Autostart.exe
Cinfig.txt
3G_Dialer.cab
Htc_default.tsk
cusTSK.exe
MSFT_Logo.bmp
SetHSDPA.exe
contents of Config.txt:
SHOW: \Extended_ROM\MSFT_Logo.bmp
LOCK: Enabled
Hide: Enabled
EXEC: \Extended_ROM\SetHSDPA.exe /Enable
EXEC: \Extended_ROM\cusTSK.exe \Extended_ROM\Htc_default.tsk
CAB: \Extended_ROM\3G_Dialer.cab
LOCK: Disabled
RST: Reset
the appropriate Registry entry looks in such a way:
[HKEY_LOCAL_MACHINE\Comm]
"AutoRunType"=dword:00000000
"BootCount"=dword:00000001
"AutoRunCFG"="\\Extended_ROM\\config.txt"
"AutoRun"="\\Extended_ROM\\autorun.exe"
Where does the error lie?
Did I forget something?
What has to be still considered?
I thank for each assistance.
with friendly greet
Starbase64
normally all the info you need should be in mxipupdate_zzPIED_101.provxml in \Windows and edit that before cooking.
i.e.
<characteristic type="FileOperation">
<characteristic type="%CE4%\CheckAutoRun.lnk" translation="install">
<characteristic type="Copy">
<parm name="Source" value="\Windows\CheckAutoRun.lnk" translation="install"/>
</characteristic>
</characteristic>
</characteristic>
<characteristic type="Registry">
<characteristic type="HKLM\Comm" >
<parm name="AutoRunCFG" value="\windows\Config.txt" datatype="string" />
<parm name="AutoRun" value="\windows\AutoRun.exe" datatype="string" />
<parm name="EnableNewMailAccount" value="0" datatype="integer" />
</characteristic>
</characteristic>
<characteristic type="Registry">
<characteristic type="HKLM\Software\Microsoft\Welcome" translation="filesystem" >
<parm name="Disable" datatype="integer" value="188" />
</characteristic>
</characteristic>
dan1967 said:
normally all the info you need should be in mxipupdate_zzPIED_101.provxml in \Windows and edit that before cooking.
i.e.
<characteristic type="FileOperation">
<characteristic type="%CE4%\CheckAutoRun.lnk" translation="install">
<characteristic type="Copy">
<parm name="Source" value="\Windows\CheckAutoRun.lnk" translation="install"/>
</characteristic>
</characteristic>
</characteristic>
<characteristic type="Registry">
<characteristic type="HKLM\Comm" >
<parm name="AutoRunCFG" value="\windows\Config.txt" datatype="string" />
<parm name="AutoRun" value="\windows\AutoRun.exe" datatype="string" />
<parm name="EnableNewMailAccount" value="0" datatype="integer" />
</characteristic>
</characteristic>
<characteristic type="Registry">
<characteristic type="HKLM\Software\Microsoft\Welcome" translation="filesystem" >
<parm name="Disable" datatype="integer" value="188" />
</characteristic>
</characteristic>
Click to expand...
Click to collapse
Contents of my (mxipupdate_zzPIED_101.provxml) file are identical to this.
But do not start it.
wfg
S64
try to put this config.txt in dump and recook.
cheers
dan
just a though - I don't have my laptop in front of me - but you need a link in your starup folder to launch it on first boot. After first boot, it will remove the link. You might peek at the PreConfig packages to get an idea about setting up the link in the initflashfile.txt - as well as the other files needed.
I hope that the will point you in the right direction anyway.
I do not think it will work like that. The startup is triggered by that provxml file and it reaches for config.txt or preconfig.txt (or not!). You need at least one of them in dump and inside it you made the call for the config.txt on ext_rom.
I have struggled with it a lot in the past and really did not find another way. It might exist but I do not know it.
I have everything on ext_rom and therefore I depend heavily on it launching after HR.
cheers,
dan
goto OEM---->OEMOPERATORS folder and make sure your "Preconfig.txt" file has this "EXEC:\Extended_ROM\autorun.exe" line right after the "Hide:Enabled" line, save, build OS and flash, see if that works!
I have all refer to converted, but does not start
wfg
S64
Cinfig.txt is a typo here only?
here is the my config.txt
SHOW: \Extended_ROM\MSFT_Logo.bmp
LOCK: Enabled
Hide: Enabled
EXEC: \Extended_ROM\autorun.exe
CFG: \Extended_ROM\Config.txt
EXEC: \Extended_ROM\SetHSDPA.exe /Enable
EXEC: \Extended_ROM\cusTSK.exe \Windows\Htc_default.tsk
CAB: \Extended_ROM\3G_Dialer.cab
LOCK: Disabled
RST: Reset
EXEC: \Extended_ROM\autorun.exe should be discarded
dan1967 said:
EXEC: \Extended_ROM\autorun.exe should be discarded
Click to expand...
Click to collapse
It does not function, all the same whether with or without this entry.
wfg
S64
if the 3 files, provxml and 2 config.txt files are right, than I am sorry to say but I am out of solutions for you.
dan
second thought,
if you use the os version that uses the additional ext_rom space (as i see in your sig) I think your ext_rom is out (overwritten) and the discussion here is useless, but I have no idea as I haven't tried myself these roms .
"new registry tweaks
- beam disabled
- show Band, PIN2, Time Zones, TTY Pages
- enable DTMF support
- enable EDGE Icon
- set Bluetooth name HTC_TyTN
- set Bit pool to 64
- disable ExtRom"
I put on now a OEMOperators Package.
Property me copied from of another Rom, works very well.
I would like to thank you micht for your assistance and pieces of advice.
wfg
S64
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 ROMs
Ather's WM 6.1 Diamond Edition
Kaiser ROMs
Kareem's REVROM v3.33
SNE V2.5 - Optimized Video
udK 7.0 R2 Vega - WWE+ITA
Mobile Vista v1.1 by Confused Stu
v1.2 Sleuth
v3.0 Sleuth
[Mar 04 08] Dutty's Official WM6.1 5.2.19716 UC RTM
[Mar 07 08] Dutty's Official WM6.1 5.2.19199 UC RTM
Laurentius26's L26 WM 6.1 Professional v6A WWE
XTRM-1.62-6.0X
akadonny's 3.08.DKv1.2 WM6.1 ROMs
maja's T.I.R. v3.0 - BLUE WOLF - WM6.1
Alex's v5.2 ROMs
Herald ROMs
ASerg.WM6.1.WWE
itje's Touch-IT v6.1.3 - Clean
JustClean - The New EasyBakeOven - Beta 1
Vogue ROMs
Mr.jcarter's Custom Rom v2 (ppcgeeks developer!)
ghettofreeryder rom v3 (ppcgeeks developer!)
OMJ's WM6.1 Custom Touch ROM with UC (ppcgeeks developer!)
Titan ROMs
dcd's ROMs & kitchen
NexVision's Hybrid
Prophet ROMs
varanusvincent's [WM6.1] Shadow Vista "My Edition"
varanusvincent's [WM6.1] Shadow Vista "Clean"
L3v5y's <WM6.1> <UC> iProphet 1.0.2.3
L3v5y's iProphet V2 beta
Bourne WM6.1 from dave.
Korand 3.1 GER by animelover
Elf ROMs
Noonski's SPC WM6.08 ROM (WM6.1, 5.2.19199)
Ababreker's UC 2.0 Capable New Ultra Clean & Clean Edition ROMs
Wizard ROMs
epimazzo's KhanX 4.0
SNN Version 3.1 WM 6.1 build 19209 from newbie1221
Hermes ROMs
CRCs PHKv12 WM6.1
PDACorner.V6 - Abusalza
Faria-R32 / Dr Puttingham WM6.1 HERMES ROM-CUSTOM+CLEAN
TNT.19199 Series from its right
Trinity ROMs
FInixNOver 3.1.1 and 3.1.1Light
Here's the current list of UC related software tools
DoeDoe's SDConfig.txt creator.
.reg -> xml conversion tool
XML Notepad 2007
CeRegEditor (can find registry changes)
DaveShaw's Folder Copy utility
Registry capture Logger
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.
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>
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 " 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.
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>
booda said:
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.
Click to expand...
Click to collapse
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="[email protected]" />
<parm name="AUTHSECRET" value="password" />
<parm name="DOMAIN" value="" />
<parm name="REPLYADDR" value="[email protected]" />
<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="[email protected]" />
<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="[email protected]" />
<parm name="AUTHSECRET" value="password1" />
<parm name="DOMAIN" value="" />
<parm name="REPLYADDR" value="[email protected]" />
<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="[email protected]" />
<parm name="SMTPALTPASSWORD" value="password1" />
<parm name="SMTPALTDOMAIN" value="smtp.gmail.com" />
</characteristic>
</characteristic>
</wap-provisioningdoc>
XML Creation FAQ
1.- Why Provisioning file is not loaded, I mean, it doen't work nor load any registry or feature that I added to it?
Click to expand...
Click to collapse
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.
2.- How I convert the HEX values showed at Registry Editor to base64 unicode? (I'm Mac user) It is for Owner registry stuff.
Click to expand...
Click to collapse
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.
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!
Nice contrubution....
only can say THANKS
Great work
Are you also supporting these functions?
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
Click to expand...
Click to collapse
They were present with the orginal HTC AutoRun.exe's
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.
Sleuth255....
This is fantastic! Excellent information. Thank you!!
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.
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.
I have been using this method to build devices since WM5 launched. I think that only the early versions of AutoRun.exe have the copy command - I have also seen a command which allowed you to pass additional Config.txt files...
Personally I use my own custom built AutoRun which works upon card being pushed in to the device (a 2577 autorun.exe) - This then does three things
[*]Looks for a hardcoded MyPersonalStuff.xml and pass to the Configuration.Manager - as above
[*]Then look in a dir on the storage card and sequencially install each cab
[*]Look for another hardcoded MyDeviceStuff.xml file and also configure it once the apps have been installed - reorg my start menu, populate custom application settings (Launchers etc) and do any device specific stuff.
This then allows me to configure all the os stuff first (generic to WM and all devices) install all my cabs, then apply a load of device and application specific suff - like re-ordering my start menu, set info for home screen launchers etc
Really this is just a set of application classes which can be used in any order - displaying a form and having a go button, read from a XML or flat file, device type validation, doing it all silently or whatever.
Do you want me to build you a custom version of AutoRun.exe with some new functionality? Extra commands, chosen file locations, the ability to install all cabs in a certain dir?
Got the code just need some help with requirements and a spec - the build part is easy
Actually, I'm hoping for an app that lets you select cabs & xml files then builds SDConfig.txt.
A bit more complex would be an preference configuration builder that would build an XML file based on user preferences then add it to SDConfig.txt.
I'll get to work on the first one shortly.
One thing I'm not sure of though: I fire off AutoRun.exe with a RUN parameter (otherwise it doesn't run on a Kaiser). Is this a universal requirement for all devices?
Sound like one app to me - I have already started on something kinda like that anyway leave it with me for a few days
That RUN command is hardcoded into the AutoRun.exe - the developer would have chosen this when he built the file.
Good, as long as all devices fire off AutoRun with the RUN parameter then my SDAutoRun program should work universally.
About Provisioning XML File
Hi Sleuth,
I tried to use the UC feature in your ROM, but I have few questions.
1.- Why Provisioning file is not loaded, I mean, it doen't work nor load any registry or feature that I added to it?
2.- How I can add to Provisioning all my Connection profiles including APNs, etc.?
3.- How I convert the HEX values showed at Registry Editor to base64 unicode? (I'm Mac user) It is for Owner registry stuff.
4.- Which are the registry settings for Arc Soft Message composer for MMS stuff?
5.- Can I configure my Exchange account using registry settings? If it is true, how I can do it?
I just did a search to the registry but I can't find any of above things.
Best Regards,
Taguapire.
taguapire said:
Hi Sleuth,
I tried to use the UC feature in your ROM, but I have few questions.
Click to expand...
Click to collapse
Your questions are so good I turned them into a FAQ on post #3.
Sleuth255 said:
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.
...
Click to expand...
Click to collapse
But you only get your name into that base64 data.
You might type in the whole owner information once, then use RapiConfig with the following input (i.e. content of RapiConfigIn.xml)
Code:
<wap-provisioningdoc>
<characteristic type="Registry">
<characteristic type="HKCU\ControlPanel\Owner">
<parm-query name="Owner"/>
<parm-query name="Owner Notes"/>
</characteristic>
</characteristic>
</wap-provisioningdoc>
to extract it from the registry.
This is even better, because it get's the whole owner information including telephone number and email address:
Code:
<wap-provisioningdoc>
<characteristic type="Registry">
<characteristic-query type="HKCU\ControlPanel\Owner" recursive="true"/>
</characteristic>
</wap-provisioningdoc>
Same works for E-Mail
Code:
<wap-provisioningdoc>
<characteristic-query type="EMAIL2" recursive="true"/>
</wap-provisioningdoc>
and Wi-Fi:
Code:
<wap-provisioningdoc>
<characteristic-query type="Wi-Fi" recursive="true"/>
</wap-provisioningdoc>
Of course I don't know whether there is a RapiConfig for Mac users
sorry 4 my question but where do i find the cabs
Sleuth255 said:
[*] Cabs that specifically wait for additiional user input (other than the initial location) cannot be loaded. An example of this is the 1-calc installation which stops and makes you accept a license agreement.
Click to expand...
Click to collapse
Actually, you can load cabs that need user input - you just have to group those cabs together and use the Hide command. For instance:
Code:
LOCK:Enabled
CAB: \Storage Card\Cabs\Tilt_keyboard_fix.cab
CAB: \Storage Card\Cabs\Vibra_(Switch)_1.32.cab
LOCK:Disabled
HIDE:Enabled
CAB: \Storage Card\Cabs\ListPro-PocketPC-5.cab
CAB: \Storage Card\Cabs\eWallet-PocketPC-Install.cab
HIDE:Disabled
LOCK:Enabled
XML: \Storage Card\Cabs\device_settings.xml
XML: \Storage Card\Cabs\software_settings.xml
LOCK:Disabled
RST: Reset
In the above example, the screen is unlocked and the customization window is hidden before the ListPro & eWallet cabs are launched so you can provide the user input they require. Then the screen is relocked and the customization window is restored to finish installing other cabs/xml that don't require user input.
I just tried this on your v3.0 ROM (which is great, btw) and it worked fine. UC is fantastic, thanks for implementing such a useful feature.
Woah! I didn't know there was a HIDE: command!
Great tip!
Cookers, how about some UC compliant ROMS? To me, this system addresses one of the key issues in flashing a new setup. Seems like a no brainer...why so few takers?
Thanks for your work!
Can anyone list compliant ROMs?
UC Compliant
Wilberry lists itself as UC compliant. When I flashed it, it did attempt to load the fils in the sdconfig.txt listing but, it did not load anything. I am not sure what the problem was and my bad was that I never pointed it out to them.
Z
I'd never heard of UC Compliance until now, but after reading up about it I think it's a great idea and hope more ROM chefs start adding it.
If you're like I was and had no idea what it is, then I've assembled the relevant links below for you:
For Users:
Rom Flashing Junkies: User Customisation is here!
XDA-Wiki - Auto Run
For Chefs:
ROM Chefs: SDAutoRun gives customization to everybody!
Now that you've read those and know about it.. make sure you let your favourite chef's know that UC support is important to you!
I'm using Wildberry myself, so I could've taken advantage of this - but I've been using a modified Sashimi setup instead to configure my roms after install.
How is your day to day stability and bug status on Wildberry?
Radix999 said:
I'd never heard of UC Compliance until now, but after reading up about it I think it's a great idea and hope more ROM chefs start adding it.
If you're like I was and had no idea what it is, then I've assembled the relevant links below for you:
For Users:
Rom Flashing Junkies: User Customisation is here!
XDA-Wiki - Auto Run
For Chefs:
ROM Chefs: SDAutoRun gives customization to everybody!
Now that you've read those and know about it.. make sure you let your favourite chef's know that UC support is important to you!
I'm using Wildberry myself, so I could've taken advantage of this - but I've been using a modified Sashimi setup instead to configure my roms after install.
Click to expand...
Click to collapse
I don't believe UC works properly on Diamonds because of Internal Storage. See here.
Sashimi works fine and can now even be cooked in to a ROM providing Sashimi Compliance (SC). For more info see here.
TraderJack said:
I don't believe UC works properly on Diamonds because of Internal Storage. See here.
Click to expand...
Click to collapse
Sure, its working pretty here in my ROMz..
Unchained said:
Sure, its working pretty here in my ROMz..
Click to expand...
Click to collapse
Are you renaming your device's Internal Storage to "Storage Card" in order to get it to work?
DrewVS said:
How is your day to day stability and bug status on Wildberry?
Click to expand...
Click to collapse
I've had Wildberry on for a few weeks now (since it first came out) and the only bug I've encountered is that I can't pick a wallpaper for TF3D (comes up with a blank selection when I choose it, no matter what directory I pick).
Other than that it's been rock solid stable, very fast, and runs sweet.
TraderJack said:
Are you renaming your device's Internal Storage to "Storage Card" in order to get it to work?
Click to expand...
Click to collapse
I noticed the Wildberry rom does that. That's probably why they're able to claim UC compliance.
Why arent we convincing more ROM cookers to do this? It saves hours of setup, and as such is more valuable than any other feature that I can think of. Why the resistance to adopt?
No.. Its still Internal Storage called..
That is a very trivial issue that has long since been addressed. Several ROMs work just fine with it.
Unchained said:
No.. Its still Internal Storage called..
Click to expand...
Click to collapse
In OEMDRIVERS/LANG/ there are values for the Storage Card name.
These need to be changed to Internal Storage (there's no SD slot anyway)
These are the values the SDAutorun reads and needs.
I got UC running just fine.
Code:
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\PCMCIA]
"Name"="PCMCIA/Compact Flash Device"
"Folder"="Internal Storage"
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SDMemory]
"Name"="SD Memory Card"
"Folder"="Internal Storage"
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\moviNAND]
"Folder"="Internal Storage"
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\MMC]
"Name"="MMC Card"
"Folder"="Internal Storage"
NL
Code:
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\PCMCIA]
"Name"="PCMCIA/Compact Flash Device"
"Folder"="Intern geheugen"
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SDMemory]
"Name"="SD Memory Card"
"Folder"="Intern geheugen"
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\moviNAND]
"Folder"="Intern geheugen"
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\MMC]
"Name"="MMC Card"
"Folder"="Intern Geheugen"
Check these Values in the Rom using Registry editor.
If they are off that explains why UC ain't working.
The thing is that there are a few of these values in the Top of the RGu files.
But further down they are there again, and they all need to be changed.
I haven't flashed their ROM so i can't say what they are doing or if it's working.
But these are the values and the way it should be.
(i requested to SLEUTH, maker of UC To let SDAutorun first check for the name [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SDMemory]
"Name"="SD Memory Card", for Localized ROM versions, half a year ago, so the solution is in the first 5 pages of the UC cooks thread)
That's why it doesn't look at the NAND Flash name.
This should help get more UC supported ROM's out
UC is easy
I do it this way:
At first - registry tweak in the cooked ROM:
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\moviNAND]
"Folder"="Storage"
"AutoPart"=dword:00000001
"AutoFormat"=dword:00000001
"Name"="moviNAND Card"
After - provxml file (it starts later, return "Internal Storage" name) Also, you can put in it another tweaks. Start TF3D, disable security etc. My full listing:
<wap-provisioningdoc>
<characteristic type="Registry">
<characteristic type="HKLM\System\StorageManager\Profiles\moviNAND" translation="filesystem">
<parm name="Folder" datatype="string" value="Internal Storage"/>
<parm name="AutoPart" datatype="integer" value="1"/>
<parm name="AutoFormat" datatype="integer" value="1"/>
<parm name="Name" datatype="string" value="moviNAND Card"/>
</characteristic>
<characteristic type="HKLM\Software\OEM">
<parm name="ROMVersion" value="1.93.Light" datatype="string"/>
</characteristic>
<characteristic type="HKLM\Software\Microsoft\Today\Items\TouchFLO 3D" translation="filesystem" >
<parm name="Enabled" datatype="integer" value="1"/>
<parm name="DLL" datatype="string" value="ManilaToday.dll" />
<parm name="Ordered" datatype="integer" value="0" />
<parm name="Selectability" datatype="integer" value="2" />
<parm name="Type" datatype="integer" value="4" />
</characteristic>
<characteristic type="HKCU\Software\HTC\Manila" translation="filesystem" >
<parm name="AutoLaunchToday" datatype="integer" value="1" />
<parm name="EnableLandscape" datatype="string" value="true"/>
</characteristic>
<characteristic type="HKLM\Software\HTC\AdvancedNetwork" translation="filesystem">
<parm name="SupportHSUPA" datatype="integer" value="1"/>
</characteristic>
</characteristic>
<characteristic type="SecurityPolicy">
<parm name="4123" value="1" />
<parm name="4119" value="144" />
<parm name="4101" value="16" />
<parm name="4102" value="1" />
<parm name="4122" value="1" />
<parm name="2" value="0" />
<parm name="4120" value="16" />
<parm name="4103" value="64" />
<parm name="4097" value="1" />
</characteristic>
</wap-provisioningdoc>
and put the all steps in the one "txt-config" file.
I use config_operator.txt ONLY, other config "txt" are absent):
LOCK:Enabled
EXEC:\Windows\AutoShortcut.exe
XML: \Windows\RemoveArrtibMMS_0409.xml
XML: \Windows\finish.provxml ;(file, which return to "Internal Storage")
CFG: \Storage\sdconfig.txt ;(!!!!!!!!)
LOCKisabled
RST: Reset
That's all.
Example of the sdconfig.txt:
CAB: \Storage\Install\Opera_2392WWE.CAB
CAB: \Storage\Install\GMaps.CAB
CAB: \Storage\Install\SoftMaker Office.cab
XML: \Storage\Install\provider.xml
Finish.
Yeah but if the settings are cooked in correctly you don''t need to work around
I have also posted cleaned up OEMProvxml files that replace the regular ones with extra certificates and security settings.
Noonski said:
Yeah but if the settings are cooked in correctly you don''t need to work around
I have also posted cleaned up OEMProvxml files that replace the regular ones with extra certificates and security settings.
Click to expand...
Click to collapse
It' just example, but it works
Return to "Internal Storage" is more useful, then change it in oem modules or somewhere.
UC capable in Diamond
http://forum.xda-developers.com/showpost.php?p=2815602&postcount=222
UC capable is possible in Diamond. You only have to use my modified SDAutoRun.exe.
El Parra
#################
SDAutoRun Diamond compatible
Thanks Sleuth255 !!!!!!!
Well, I detected SDAutoRun fails in diamond. After a lot of tests I found Diamond uses the registry key 'mobiNAND' and SDAutoRun uses 'SDMemory'. Then I edited the .exe with a hex editor and modified the string in it. In my tests this tool has been working really well and I think it should works in any Diamond language ROM. I'm using and Spanish ROM ;-)
http://www.megaupload.com/?d=SUYMR923
NOTE: This version is for DIAMOND or devices with internal storage ONLY
Regards to everybody.
#################
Patched sdautorun? Interesting, thanks!
Will try.
I actually using the unpatched version (SdAutoRun V2.0) with the moviNand storage name changed to "Storage Card" in the SDConfig.txt I use
CAB: \Internal Storage\Cabs\MyCab.cab
instead of
CAB: \Cabs\MyCab.cab
Noonski trick of renaming the rgu entries helped here
Have two iritating things I cannot figure out myself, and cannot find these answers (have searched tryst me ).
1. Windows Media Player, the icon I would like to put it in a Multimedia folder (inside Programs), but when i edit initflashfiles.dat, i get a icon both in Multimedia and in Programs folder, how to controll the incon of Windows Media Palyer?
2. The weather plugin in TF3D, how to disable the auto update in the regestry, and what regestry to edit?
3. How to set date and time for the rom?
Would be nice if some one could help me with these two small issues, they are just so annoying, and cannot find the solution myself...
To disable auto download weather, i have this provxml registry tweak:
Code:
<characteristic type="HKCU\Software\HTC\Manila" translation="filesystem">
<parm name="Data.AutoDownloadOff" datatype="integer" value="1"/>
</characteristic>
For the date and time look for an OEM folder called "OEMVersion" and edit the provxml inside with this:
Code:
<characteristic type="HKLM\Software\OEM">
<parm name="ROMVersion" value="blahblah" datatype="string"/>
<parm name="ROMDate" value="12-Dec-12" datatype="string" />
</characteristic>
For the multimedia icon, i'm not sure but you can have a look in the iniflashfiles.dat file.
NitroOnTheRocks said:
To disable auto download weather, i have this provxml registry tweak:
Code:
<characteristic type="HKCU\Software\HTC\Manila" translation="filesystem">
<parm name="Data.AutoDownloadOff" datatype="integer" value="1"/>
</characteristic>
For the date and time look for an OEM folder called "OEMVersion" and edit the provxml inside with this:
Code:
<characteristic type="HKLM\Software\OEM">
<parm name="ROMVersion" value="blahblah" datatype="string"/>
<parm name="ROMDate" value="12-Dec-12" datatype="string" />
</characteristic>
For the multimedia icon, i'm not sure but you can have a look in the iniflashfiles.dat file.
Click to expand...
Click to collapse
Thanks man, you just made my day, have searched for days without result, many thanks .
Have though one small new problems, that maybe some one can help me with?
1. In TF3D Image tab, all images is showed, it should be a specific folder, how to change that?
2. In msn applicatio, the "From: and To:" is in english, but should be in Danish (everything else is), maybe just a regestry tweak?
Cant help with those.
Maybe you can find them with CE Regeditor.
Ok thanks, will look into it .
BTW am having problems getting the string below to work, how to set it to lets say 25 jan 2009 when first boot?
<parm name="ROMDate" value="12-Dec-12" datatype="string" />
Click to expand...
Click to collapse
Code:
<parm name="ROMDate" value="25-Jan-09" datatype="string" />
This works for me
NitroOnTheRocks said:
Code:
<parm name="ROMDate" value="25-Jan-09" datatype="string" />
This works for me
Click to expand...
Click to collapse
Still not show right date on first boot (the screen you come to after callibrating the screen), maybe there is a different string for that?
Aah, i think i misunderstood you.
You can't set the date and time directly for windows i think.
Time zone information you can set, i do it.
And after hard reset i use program like SKTSync to sync my time with internet via WiFi.
For Time Zone registry information look at these keys:
Code:
[HKEY_LOCAL_MACHINE\Time]
[HKEY_LOCAL_MACHINE\Software\Microsoft\Clock]
No it is the date that you have to set after a hard reset, right after screen calibration, you have to set det/time...
whc said:
No it is the date that you have to set after a hard reset, right after screen calibration, you have to set det/time...
Click to expand...
Click to collapse
the date is set in xip in your kitchen.
qtotter said:
the date is set in xip in your kitchen.
Click to expand...
Click to collapse
Ok, but how is it done?
whc said:
Ok, but how is it done?
Click to expand...
Click to collapse
it's coded in the s000 file of the nk.exe module in xip. bepe's kitchen can change the date in s000.
in mpap_HTC_MASD_01.provxml is:
for sample:
<wap-provisioningdoc>
<characteristic type="AppInstall">
<characteristic type="{5edbdbbc-2ab2-df11-8a2f-00237de2db9e}">
<parm name="InstallInfo" value="/windows/HTC_ConnectionSetup.xap;/windows/HTC_ConnectionSetup_License.xml;{c8a5044a-c22e-4d79-94ea-8f2c7e84c84b};{004fdf1d-8e10-4306-897b-3acc46c3002b}"/>
</characteristic>
</characteristic>
</wap-provisioningdoc>
now how to add my app(for sample HTC Compass) in this file for my cooked rom?
please help me my friends
please help me my friends
help me pro's
<characteristic type="{ProductID}">
<parm name="InstallInfo" value="AppAdress;AppLicenseAdress;{Idontknow};{Idontknow}"/>
Please help me
It may only work for marketplace-signed apps (i.e. ones with licenses). Of course, the phone has code to install an unsigned application - I just don't know how to invoke it using XML provisioning.
Out of curiosity, what are you plannning to use this for?
As far as I know there is no documentation for installing unsigned xap´s via provxml.
I has to be possible because DFT team has enabled this feature in its HTC custom roms.
So what you can do is writing a pm to mwang or Cotulla, maybe they can help you...
ok tnx
now not the other way to add my app in my rom for auto install?
Hey could you post the answer? Also where is the liscence.xml and the two last id's found?