[SOLVED]PROVXML file loading problem at COLDINIT - HD2 Windows Mobile 6.5 ROM Development

Hi friends,
I am having this strange problem. After recooking any of the stock ROM (1.48, 1.62 etc) and flashing it back to the phone my Start Menu icons are not being reorganized, nor the icons replaced with HTC icons as it is in the stock ROM. I made some investigation into this problem and found that there is "mxipupdate_projectdefault_a_000.provxml" file that should take care of these in ProjectDefault_A package. For some reason this PROVXML is not being loaded after hardreset. What is strange though, other provxml's are being loaded fine. I did not modify it so file or format corruption is out of the questions. Anyone else experiencing the same bug? fyi - i did not remove any of the packages or touched any files, just a plain recook of the original above mentioned stock ROM.

Update - seems there are more provxml's that are not being loaded. cmonex mentioned something that the provxml file attribute matters. I tried to change it in various combinations, ra-s, rahs, -ahs, -hs, nothing works. coldinit.exe (the file that processes these provxmls) disasm tells that it only checks if the files have IN-ROM (0x40) file attribute set. Obviously if I cook them into my ROM, they got this attribute. As I mentioned in my previous post, I am not modifying these provxmls so file corruption is out of the question, thus they are never loaded. I'd like to know what can more experienced cooks say about this ? Noone has ever experienced this glitch before ???
Here are some screens showing the glitch:
stock rom
{
"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"
}
re-cooked stock rom with EVK
Please notice the difference in folder icons such as Outlook, Calls, Messaging in the Start Menu (as a result of mxipupdate_projectdefault_a_000.provxml not being loaded) as well as font size, in cecmd and other applications (as a result of mxipupdate_metabase_001.provxml not being loaded)

If any file referenced in the provxml is not present, then the entire xml will not run. For example, mxipupdate_projectdefault_a_000.provxml contains a line that moves live messenger shortcut. If you removed messenger from your sys, then the provxml will fail if you do not remove references to the removed shortcut.

Yes, that make sense... Strange thing is though, I did not remove any of the packages. I just dumped, and re-built the ROM using PRB. That's it.

OK people, I think I found the cause of our problem.
This part of the provxml file is causing the problem:
Code:
<characteristic type="%CE11%\Messaging\Messenger.lnk" translation="install">
<characteristic type="Move">
<parm name="Source" value="%CE11%\Messenger.lnk" translation="install" />
</characteristic>
</characteristic>
If mnet is right, this provxml fails because it wants to move Messenger.lnk from \Windows\Start Menu\Programs to \Windows\Start Menu\Programs\Messaging folder. Now here comes the strange thing. After booting my ROM, I can see Messenger.lnk in my \Windows\Start Menu\Programs as well as Messaging subfolder. So why is it still failing then ? I investigated further, where is the Messenger.lnk coming from. And it comes from here:
mxipupdate_windowsliveim_1.provxml
Code:
<wap-provisioningdoc>
<characteristic type="FileOperation">
<characteristic type="%CE11%" translation="install">
<characteristic type="MakeDir" />
<characteristic type="Messenger.lnk" translation="install">
<characteristic type="Copy">
<parm name="Source" value="\Windows\WLMMessenger.lnk" translation="install" />
</characteristic>
</characteristic>
</characteristic>
</characteristic>
</wap-provisioningdoc>
Now if my theory is correct, the glitch is caused by coldinit.exe loading mxipupdate_projectdefault_a_000.provxml before mxipupdate_windowsliveim_1.provxml. Since the Messenger.lnk is not even created, the first provxml fails! Obviously the Messenger.lnk is created later on, by the second provxml, that's why I see it in the Start Menu\Programs.
Now here comes an interesting question:
What determines in what order are the provxml's loaded and executed ???
UPDATE: OK I fixed the problem temporarily by removing the mxipupdate_windowsliveim_1.provxml and adding an entry into initflashfiles.dat instead:
Code:
Directory("\Windows\Start Menu\Programs"):-File("Messenger.lnk","\Windows\WLMMessenger.lnk")
I am still wondering though: What is the order for loading provxml ?? Maybe the DSM files, that PRB deletes ? Would be a good idea to try restoring them...

alphabetical order? p is first processed then w. :-D you can experiment by renaming the files.

hmm, that would make sense why HTC named some of the provxml's as "mxiupdate_zzz...provxml".
So I tried just simply renaming mxipupdate_projectdefault_a_000.provxml to mxipupdate_zzzProjectDefault_a_000.provxml to get it processed as one of the latest and guess what ? it worked
But this does not happen with original stock ROM ? Seems they are processed by DSM (which are missing from recooked ROMs) and if these are not present, they are processed alphabetically. It's good point though, chefs keep that in mind when cooking your ROMs
Cheers,
S.

hello,
you dumped ... do nothing ... recooked with nothing-doing .... flashed
do you dumped with raw-files like part02.raw and part01.raw
if yes, than you have to use a ruu_signed.nbh from other rom.
its needed for ... hmm-i dont really know ... but i know, that put his own initflashfiles.dat-file (dumped-initflash-file --> out AND ruu_signed-initflash-file --> IN)
and in initflashfile you find thinks like startmenu and subfolders.
this could be the problem. i think ...
okokur

Understanding this is not a solution for bigger issue.
I couldnt work out for the life of me how to make these directories show up in other device when cooking for myself either.
So to get around the order of things and without having to edit provxml file I renamed the OEM folder to "APPS_ProjectDefault_A" and move to which ever kitchen directory takes first preference (I believe this can be changed manually anyway) now these LEO folders skin and work!
Use initflash.dat/App.dat to translate shortcuts into these directories
Works for me, hope it works for you too.
Add this to app.reg also
Code:
REGEDIT4
[HKEY_LOCAL_MACHINE\ControlPanel\61]
"Group"=dword:00000001
[HKEY_LOCAL_MACHINE\Software\SIE\GlobalCustomization\projectdefault_a]
"BucketID"="15523"
"Label"=""
Regards
Flashmore

Same problem here...
I'm experiencing the same problem. But as I see from topic head, it seems your problem is solved. But I didn't get what did you do.

Flashmore said:
Understanding this is not a solution for bigger issue.
I couldnt work out for the life of me how to make these directories show up in other device when cooking for myself either.
So to get around the order of things and without having to edit provxml file I renamed the OEM folder to "APPS_ProjectDefault_A" and move to which ever kitchen directory takes first preference (I believe this can be changed manually anyway) now these LEO folders skin and work!
Use initflash.dat/App.dat to translate shortcuts into these directories
Works for me, hope it works for you too.
Add this to app.reg also
Code:
REGEDIT4
[HKEY_LOCAL_MACHINE\ControlPanel\61]
"Group"=dword:00000001
[HKEY_LOCAL_MACHINE\Software\SIE\GlobalCustomization\projectdefault_a]
"BucketID"="15523"
"Label"=""
Regards
Flashmore
Click to expand...
Click to collapse
Please could you explain in more detail what exactly you do?
What folder renames ......

Black.Heart said:
I'm experiencing the same problem. But as I see from topic head, it seems your problem is solved. But I didn't get what did you do.
Click to expand...
Click to collapse
I think this is the solution
sasovics said:
hmm, that would make sense why HTC named some of the provxml's as "mxiupdate_zzz...provxml".
So I tried just simply renaming mxipupdate_projectdefault_a_000.provxml to mxipupdate_zzzProjectDefault_a_000.provxml to get it processed as one of the latest and guess what ? it worked S.
Click to expand...
Click to collapse

belumada said:
I think this is the solution
Click to expand...
Click to collapse
if interest
i had solve converting file provxml in file .rgu
or .reg

This method of naming the provxml does not solve my problem. I have tried several combinations of code but the provxml refuses to load.
I have verified that the files to which my provxml refers does exist..
I have made the code very simle as follows:--
Code:
<wap-provisioningdoc>
<!-- *** Create System Tools *** -->
<characteristic type="FileOperation">
<characteristic type="%CE11%\System Tools" translation="install">
<characteristic type="MakeDir" />
</characteristic>
</characteristic>
<characteristic type="Registry">
<characteristic type="HKLM\Security\Shell\StartInfo\Start\System Tools" translation="filesystem">
<parm name="Rank" datatype="integer" value="900001999"/>
<parm name="Group" datatype="integer" value="1"/>
</characteristic>
</characteristic>
</wap-provisioningdoc>
or
Code:
<wap-provisioningdoc>
<!-- *** COMMENTO *** -->
<characteristic type="Registry">
<characteristic type="HKCU\Software\HTC\Manila" translation="filesystem">
<parm name="CachedBackgroundPath" datatype="string" value="%CE5%\My Wallpapers\wallpaper_Grain2.jpg"/>
<parm name="HomeBackgroundPath" datatype="string" value="%CE5%\My Wallpapers\wallpaper_Grain2.jpg"/>
</characteristic>
<characteristic type="HKCU\Software\Microsoft\Today" translation="filesystem">
<parm name="Wall" datatype="string" value="%CE5%\My Wallpapers\wallpaper_Grain2.jpg"/>
</characteristic>
</characteristic>
<!-- *** c_shekhar Special *** -->
<characteristic type="Registry">
<characteristic type="HKCU\c_shekhar" translation="filesystem">
<parm name="mxip_Wallpaper" datatype="string" value="OK"/>
</characteristic>
</characteristic>
</wap-provisioningdoc>
The files is stored in unicode UTF-8 but the provxml refuses to load. when I load these provxml using CeRegistryEditor they install very well.
Can anybody through some light???

c_shekhar said:
This method of naming the provxml does not solve my problem. I have tried several combinations of code but the provxml refuses to load.
I have verified that the files to which my provxml refers does exist..
I have made the code very simle as follows:--
The files is stored in unicode UTF-8 but the provxml refuses to load. when I load these provxml using CeRegistryEditor they install very well.
Can anybody through some light???
Click to expand...
Click to collapse
I doubt this attribute is valid:
Code:
<characteristic type="Registry">
<characteristic type="HKLM\Security\Shell\StartInfo\Start\System Tools" [U][B]translation="filesystem"[/B][/U]>

Then what should it be?
It works well when I load these provxml using CeRegistryEditor. The desired results do come.

c_shekhar said:
Then what should it be?
It works well when I load these provxml using CeRegistryEditor. The desired results do come.
Click to expand...
Click to collapse
Use the reference knowledge base, e.g.: Adding a Key and Values, and Modifying a Value Example
If something that is not valid works sometimes, it doesn't mean it will work always.

Thanks I shall consult that as well...

Tried removing the translation="filesystem" but still no luck.
Any more suggestions?????

Is n't there any body who can guide me on XML and provxml?

Related

Bluetooth Gateway

Is there a today screen plugin that displays whether the Bluetooth Gateway is open or closed and lets you change it. I have found myself often leaving the gateway open when the phone is silent. Thanks in advance.
Use the wireless today plugin - cab attached
Hi meschle,
you CAB is empty. Don't have any files inside neither reg keys...
Conchas said:
Hi meschle,
you CAB is empty. Don't have any files inside neither reg keys...
Click to expand...
Click to collapse
It does have a setup.xml file that writes the reg keys. There is no program its a reg hack and i dont think it will work on your universal anyhow.
Sorry you are right.
As I saw no effect at first, I've open it with WinCE CabManager to take a look, and saw nothing.
Checked now with Zip, and the .xml it's there.
Might be some new bug with the WinCE CabManager version 2...!?
By the way, do you know about some documentation that explains how to change registry via .xml files?
Conchas said:
Sorry you are right.
As I saw no effect at first, I've open it with WinCE CabManager to take a look, and saw nothing.
Checked now with Zip, and the .xml it's there.
Might be some new bug with the WinCE CabManager version 2...!?
Click to expand...
Click to collapse
I dont use wince cabmanager - i manually write the xml file - and put the cab together with smartarchiver - meant for smartphone but works a treat with wm5.
Its not difficult to write xml file i taught myself. Here is the one for the wireless plugin - you could use it as a template and change values to suit.
- <wap-provisioningdoc>
- <characteristic type="Install">
<parm name="InstallPhase" value="install" />
<parm name="AppName" value="Meschle Wireless plugin" />
<parm name="NumRegKeys" value="1" />
<parm name="NumRegVals" value="4" />
</characteristic>
- <characteristic type="Registry">
- <characteristic type="HKLM\Software\Microsoft\Today\Items\Wireless">
<parm name="DLL" value="netui.dll" datatype="string" />
<parm name="Order" value="0" datatype="integer" />
<parm name="Enabled" value="1" datatype="integer" />
<parm name="Type" value="4" datatype="integer" />
</characteristic>
</characteristic>
</wap-provisioningdoc>
Thanks but problem
Thanks meschle for making that for me, but for some reason it shows up in my today opions but not on my today screen. I do notice the line that normally divides two items on the today screen is missing in teh place the plugin should be. I am using the stock 8125 rom(which displays the date in only one line). Is this problem cause by the 1/2 line difference in the date between roms? Thanks again.
Re: Thanks but problem
unvjarhead said:
Thanks meschle for making that for me, but for some reason it shows up in my today opions but not on my today screen. I do notice the line that normally divides two items on the today screen is missing in teh place the plugin should be. I am using the stock 8125 rom(which displays the date in only one line). Is this problem cause by the 1/2 line difference in the date between roms? Thanks again.
Click to expand...
Click to collapse
Yes sorry only works on aku2 roms, i.e. roms starting with number 2.
You could update your rom or try dktoday which also shows bluetooth on today screen.

How to delete a registry key using a CAB

Hi
I am having hard time in making a cab file to delete a registry value.
as an example I tried to import the following into WinCE CAB manager:
HTML:
[HKEY_LOCAL_MACHINE\System\Platform]
"PSAtRoot"=-
so that I can delete PSAtRoot from registry....
the WinCE CAB manager import nothing !!
this is working for desktop but not for PPC
any help on how to delete items in registry using cab file... or anything that is automated!
Thanks
Install the .cab file known as PHM RegEdit. Also, before you delete any registry values, make sure you know what your doing!
I believe he is wanting a cab that makes the change, not a registry editing program. I personally would make a mortscript install.mscr and uninstall.mscr, and make your own custom cab with mort's included setup.dll
xd1936 said:
I believe he is wanting a cab that makes the change, not a registry editing program. I personally would make a mortscript install.mscr and uninstall.mscr, and make your own custom cab with mort's included setup.dll
Click to expand...
Click to collapse
I know what they want, just showing that it's a lot easier to open a reg editor and do it manually, then creating a list of commands to execute a simple deletion of one entry.
TheChampJT said:
I know what they want, just showing that it's a lot easier to open a reg editor and do it manually, then creating a list of commands to execute a simple deletion of one entry.
Click to expand...
Click to collapse
You clearly missed the question and the purpose why he is posting in Development and Hacking section. Hes asking todo a specific task in a cab operation and you advice him to install a reg editor and be carefull?? Jesus.. If you got nothing to say, dont say it. Sorry, but youre reply pissed me off here!
hmdshmds said:
Hi
I am having hard time in making a cab file to delete a registry value.
as an example I tried to import the following into WinCE CAB manager:
HTML:
[HKEY_LOCAL_MACHINE\System\Platform]
"PSAtRoot"=-
so that I can delete PSAtRoot from registry....
the WinCE CAB manager import nothing !!
this is working for desktop but not for PPC
any help on how to delete items in registry using cab file... or anything that is automated!
Thanks
Click to expand...
Click to collapse
Mate, read this. I think its a good start for youre question
You can specify a pre/post XML when compiling your CAB via CabWizSP. PreXML will be carried out before the main INF instructions as opposed to PostXML codes which are carried out after the INF instructions. Kindly check this sample CabWizSP syntax:
CODE
cabwizsp Sample.inf /postxml PostXML.xml /cpu ARMv4
What happens when you run the code?
CabWizSP will compile instructions in 'Sample.inf' to output 'Sample.ARMv4.CAB'. It will add 'PostXML.xml' to the output CAB. The target device CPU would be 'ARMv4' (SP2003)
The post XML file may contain your 'delete file' instructions. An example would be:
Code:
<characteristic type="FileOperation">
<characteristic type="\Storage\windows\AppMgr\Install\Target File.ext" translation="install">
<characteristic type="Delete">
<parm name="ForceDelete" />
</characteristic>
</characteristic>
</characteristic>
Above code will force delete 'Target File.ext' at \Storage\windows\AppMgr\Install. Note that the files you wish to compile should be in the same folder as the INF, the (Post) XML and the CAB making files (makecab.exe, cabwiz.ddf, CabwizSP.exe)
Click to expand...
Click to collapse
http://www.modaco.com/index.php?showtopic=235258&view=findpost&p=844503
You should read the whole tread aswell good info for you on cab and registry
http://www.modaco.com/content/smart...n/235258/create-cab-files-to-change-registry/
Play whit this for register changes, tbh I havent deleted in registry via cab before. I overwrite in cab form and wrap it whit provxml when cooking.
raiisak said:
You clearly missed the question and the purpose why he is posting in Development and Hacking section. Hes asking todo a specific task in a cab operation and you advice him to install a reg editor and be carefull?? Jesus.. If you got nothing to say, dont say it. Sorry, but youre reply pissed me off here!
Click to expand...
Click to collapse
The OP asked for an AUTOMATED way to delete the reg entry, not how to setup an xml file for deletion of the key during ROM cooking. And yes, you better believe I said make sure you know what your doing! If a person asks how delete a registry entry with this type of thread started for it, I'm a bit concerned with the fact they might not know what they are doing. So, really I'm soooooo sorry I hurt you feelings, but I did give an answer, it wasn't rude, and I gave caution to the person who wants to change the registry.
Ohhhhhh! Your post made me so sad !
HAAAAA! LOL !
delete registry entry using xml
TheChampJT : thanks for welling to help
raiisak : Thanks alot for the the help
while searching I found away to delete registry entry using (Provisioning)pre/post xml in the WinCE CAB Manager.
I modified the xml code accourding to this MSDN article
this my xml code :
HTML:
<wap-provisioningdoc>
<characteristic type="Registry">
<characteristic type="HKEY_LOCAL_MACHINE\System\Loader">
<noparm name="EnableUpperModules" />
</characteristic>
</characteristic>
<characteristic type="Registry">
<nocharacteristic type="HKEY_LOCAL_MACHINE\System\Loader\LoadModuleLow" />
</characteristic>
</wap-provisioningdoc>
unfortunately nothing deleted !
did I miss something?
Why don't you create this _setup.xml:
Code:
<wap-provisioningdoc>
<characteristic type="Install">
<parm name="InstallPhase" value="install" />
<parm name="OSVersionMin" value="4.0" />
<parm name="OSVersionMax" value="6.99" />
<parm name="BuildNumberMin" value="0" />
<parm name="BuildNumberMax" value="-536870912" />
<parm name="AppName" value="YOUR NAME APP" />
<parm name="InstallDir" value="%CE2%" translation="install" />
<parm name="NumDirs" value="0" />
<parm name="NumFiles" value="0" />
<parm name="NumRegKeys" value="2" />
<parm name="NumRegVals" value="1" />
<parm name="NumShortcuts" value="0" />
</characteristic>
<characteristic type="Registry">
<characteristic type="HKEY_LOCAL_MACHINE\System\Loader">
<noparm name="EnableUpperModules" />
</characteristic>
</characteristic>
<characteristic type="Registry">
<nocharacteristic type="HKEY_LOCAL_MACHINE\System\Loader\LoadModuleLow" />
</characteristic>
</wap-provisioningdoc>
and then make the cab with ms makecab:
Code:
makecab _setup.xml mycab.cab
g77:
hmm... the output CAB cannot be installed
"try installing again to a different location"
any clue?
Going to try youre cab
hmdshmds said:
...while searching I found away to delete registry entry using (Provisioning)pre/post xml in the WinCE CAB Manager.
Click to expand...
Click to collapse
Thanks for that idea! I managed to delete the entire ClearType key from the registry using the Post-XML option in WinCE Cab manager.
I now have a cab that deletes the ClearType key and thus disables cleartype! (From a rom that has cleartype enabled by default because the key exists)
Here is what I put in the Post-XML:
HTML:
<characteristic type="Registry">
<nocharacteristic type="HKLM\System\GDI\CLEARTYPE" />
</characteristic>
sean222 said:
Thanks for that idea! I managed to delete the entire ClearType key from the registry using the Post-XML option in WinCE Cab manager.
I now have a cab that deletes the ClearType key and thus disables cleartype! (From a rom that has cleartype enabled by default because the key exists)
Here is what I put in the Post-XML:
HTML:
<characteristic type="Registry">
<nocharacteristic type="HKLM\System\GDI\CLEARTYPE" />
</characteristic>
Click to expand...
Click to collapse
Thats funny. Its the wery same string I use in kitchen. Didnt think of cabing it. N1 hehe.
Originally Posted by hmdshmds
hmm... the output CAB cannot be installed
"try installing again to a different location"
any clue?
Click to expand...
Click to collapse
I got this issue too, so for hmdshmds or anybody else who finds this thread, the answer is simply (well after a day of tracking it down ) that in the registry path, the root part must be in the short form "HKLM" etc, and NOT "HKey_Local_Machine" as hmdshmds/g77 had it.
I've put an article on my website explaining about it, and also - care of a Microsoft blog entry - how to get Visual Studio 2005 to build this right into the installer without any other external software. See Removing Registry Keys with WM6 Deployment . (*UPDATE 1-Sep-2008* Previously, the IE7 phishing filter was reporting the above link as a "possible" phishing site. It absolutely is not and the false warning was reported to Microsoft and has now been corrected.)
Happy coding guys and gals
I'm trying to remove unwanted Today Panel items. After some trial and error, I've been able to come up with the following code:
Code:
<wap-provisioningdoc>
<characteristic type="Registry">
<nocharacteristic type="HKLM\Software\Microsoft\Today\Items\"Owner Info"" />
</characteristic>
</wap-provisioningdoc>
When I try to import it using SASHAMI, nothing happens; and when I try using 'Advanced Configuration Tool', I receive
System.SystemException:
Error Code #:
2147500037
at
Microsoft.WindowsMobile.Configuration.ConfigurationManager.MainConfigurator(XmlDocument configDoc, UInt32 flags)
at
Microsoft.WindowsMobile.Configuration.ConfigurationManager.ProcessConfiguration(XmlDocument configDoc, Boolean metadata)
at
AdvancedConfig.□.□(Object □, EventArgs □)
Click to expand...
Click to collapse
Apparently, there's still something wrong with my XML, but I'm at a loss. Anybody have any ideas?
Thanks
Roger
well, maybe a bit late answer but you cant remove 'folders' which contain values.. you need to remove them one by one, at least i cant get any further the nthat!
hmdshmds said:
unfortunately nothing deleted !
did I miss something?
Click to expand...
Click to collapse
This might be a little late as I was not a member when you posted here, but to provision with a cab you should leave out the </wap-provisioningdoc> from the top and bottom. It will not fail to parse including that string and its confusing when it still doesnt work. That is your problem. Remove wap provisioning string from top and bottom. Here is how it should look.
PHP:
<characteristic type="Registry">
<characteristic type="HKEY_LOCAL_MACHINE\System\Loader">
<noparm name="EnableUpperModules" />
</characteristic>
</characteristic>
<characteristic type="Registry">
<nocharacteristic type="HKEY_LOCAL_MACHINE\System\Loader\LoadModuleLow" />
</characteristic>
Hi!
I am, as everyone else posting in this thread, trying to remove a bunch of registry settings using a cab-file. Thanks to this thread, my hopes of success were raised once more
I tried all of the examples posted in this thread without success, found a link on modaco which lead me to this msdn-article:
http://msdn.microsoft.com/en-us/library/ms834737.aspx
Works like a charm... Thanks a BUNCH guys!
As this is the first thing found when googled - I'll add a little information.
For files, you need to remove each and every file contained in a folder before the folder itself can be removed.
For registry keys, you do not need to remove seperate values. Deleting a registry key, deletes all contained values and subkeys.
Great post. Just what I needed.
But I have problem with WinCE CAB Manager version 3.0.0.22. Anything I added to the pre or post XML, the CAB file cannot be install. Took me forever to debug and nothing works. Anybody?
I finally switch to version 2 and it works perfectly.
I take it back, Wince CAB manager sucks. ver 2.1.0.35 cannot import reg file.

[Q] ProvXML

So, I'm trying to improve my already vast configuration cab. That's right, I created a CAB file instead of an XML. The reason? I just can't grasp the damn syntax that provXMLs use.
I've read microsoft's footage on ProvXMLs and it didn't make me all the wiser. Now though, I need them anyway, as there's something CAB files can't do;
Deleting files. How can I do this with a ProvXML?
It's just that easy:
Code:
<characteristic type="FileOperation">
<characteristic type="Windows\DarkWood.cab" translation="install">
<characteristic type="Delete">
<parm name="ForceDelete" />
</characteristic>
</characteristic>
</characteristic>
Alright, thanks. What about deleting folders? CAn that be done while files are still inside? And registry keys?
I'm sorry for the many questions, but provxml's are confusing
EDIT:
Oh, and what's up with the darkwood.cab?
No problem
Remove Folder
Code:
<characteristic type="FileOperation">
<characteristic type="%CE2%\Start Menu\Programs\Office Mobile" translation="install">
<characteristic type="RemoveDir" />
</characteristic>
</characteristic>
Edit Registry Keys
There are 2 different Solutions for creating a xml File which edits the registry.
1. You can write your File in simple RGU-Style and use and Rgu2xml converter to get your xml file
2. You write it straight away in xml
For Example a part of my Customization and Tweak-Xml-File to enable Cleartype:
Code:
<characteristic type="Registry">
<characteristic type="[B]HKLM\System\GDI\ClearTypeSettings[/B]">
<parm name="[U]OffOnRotation[/U]" value="0" datatype="integer"/>
</characteristic>
[size=1]<characteristic type="HKLM\System\GDI\CLEARTYPE">
<parm name="Default" value="0" datatype="integer"/>
</characteristic>[/size]
</characteristic>
Thats the Dir you edit/modify
Thats the Regkey you create/modify
So, if I understand correctly, removing a folder also removes all files inside without trouble. I had already found rgu2xml.
What about deleting registry keys, is that also that simple?
Why delete them if you can set them to 0
Kid_DC said:
Why delete them if you can set them to 0
Click to expand...
Click to collapse
Umm, deleting is cleaner. Setting them to 0 leaves the key in the registry, and the less keys you have, the faster it is. So, is it possible at all, or did you propose that option because it's not?
Hehe but there are so many Keys that your 10 Keys, which you want to delete, make no difference (i think...)
Actually I don't know how to delete them because I never used this command. But I think that should be possible... try to search for "XML delete registry key xda"
I believe I found it:
Code:
<characteristic type="Registry">
<nocharacteristic type="HKLM\System\GDI\CLEARTYPE" />
</characteristic>
Deletes the CLEARTYPE key..!
Now to make the file and cab it!
I believe I found it:
Code:
<characteristic type="Registry">
<nocharacteristic type="HKLM\System\GDI\CLEARTYPE" />
</characteristic>
Deletes the CLEARTYPE key..!
Now to make the file and cab it!
What do you want to do with your cab?
Uninstall the panels and reassign the panel button to something useful. =]
hm... nice
I've removed the Panels in my current version of my Rom, too. I only need the Media Xperiance Panel and i can get it running without panelmanager
Kid_DC said:
hm... nice
I've removed the Panels in my current version of my Rom, too. I only need the Media Xperiance Panel and i can get it running without panelmanager
Click to expand...
Click to collapse
You can? That's neat! Mind sharing that? Would be nice if that runs, but then without the background process that takes up so much of the cpu...
Share!
It's not difficult, really
Only Remove Panelmanager, Install Media Xperiance Panel (not that from the R3AA beta) and install Pubba's Panel Installer. Now reassign the Panelbutton to the Mxp.exe from Pubba and it's done
Alright, I didn't know Pubba's was compatible. What about the background process, does it terminate once you shut it down?

[HELP] How to change icons and rearrange start menu when cooking?

Hi
I have spent the past couple of days cooking my own rom for personal use, and so far this forum have been a huge help. Thanks guys!
I have searched the forums, and google but have found no solution to my problem. I need a method to change the icons in my start menu, and deleting/adding links while cooking it into the rom.
Can anybody help me?
Cheers!
mxipupdate_projectdefault_a_000.provxml (new folders/subfolders also have to be in initflashes.dat)
mxipinit_startmenu_001.provxml (i only remove the search- and help-links)
the according numbers "900000XXX" can be used to define the order.
Code:
<wap-provisioningdoc>
<characteristic type="Registry">
<characteristic type="HKLM\Security\Shell\StartInfo\Start\Today">
<parm name="Name" datatype="string" value="Startbildschirm" />
<parm name="Rank" datatype="integer" value="900000718" />
</characteristic>
<characteristic type="HKLM\Security\Shell\StartInfo\Start\Multimedia">
<parm name="Group" datatype="integer" value="1" />
<parm name="Icon" datatype="string" value="\Windows\HTC_multimedia.png" />
<parm name="Rank" datatype="integer" value="900000518" />
</characteristic>
..................
make sure you save it in utf-8-format.
one single error (or file/folder not found) within the provxml-file and it will be ignored at installation of rom.
you can rename the *.provxml to *.xml and doubleclick it to see where the errors are.
I made the changes to mxipupdate_projectdefault_a_000.provxml but it doesn't seem to be processed. I open it in IE as xml and there's no error.
what else could be wrong?
like i said... one single file/folder not present (initflashes.dat) and the provxml will be ignored. don't just check for format errors.
I find the best way is to use iniflashfiles.dat, create my folder structure and modify the existing apps to where I want. Then in SYS there are some provxml files like for Windows Live, Skybox etc. I make a copy of these and put in my operatorPkg folder and modify them to the folder I want. The file in OperatorPkg will overwrite the original.
bobsbbq said:
I find the best way is to use iniflashfiles.dat, create my folder structure and modify the existing apps to where I want. Then in SYS there are some provxml files like for Windows Live, Skybox etc. I make a copy of these and put in my operatorPkg folder and modify them to the folder I want. The file in OperatorPkg will overwrite the original.
Click to expand...
Click to collapse
ok looks like that's what I'll do.
do you know which package create the HTC shortcuts and the widget shortcuts?
zenkinz said:
ok looks like that's what I'll do.
do you know which package create the HTC shortcuts and the widget shortcuts?
Click to expand...
Click to collapse
The HTC shortcuts are created from Manila Core\0409 reg file. You can delete them if you don't want and change the reg setting for AutocreateShortcutEnabled to 0
for Widgets I never use them. I would like to know how to change these myself. Maybe someone else can help with this.

Converting a PPC EXE to OEM

I'd like to cook this hot fix into my ROM. Can anybody help me with this? Even if you just make it a Cab that I can turn into a OEM I would greatly appreciate it.
Since you're looking to cook this into a ROM and since you'll likely run into this scenario again; here's the long method of doing it in case the shortcut methods don't work.
Step 1: Extraction
Use WinRAR (or other extract) to extract the contents of the .EXE
Open _SETUP.XML with a text editor
Step 2: Rename Files
Rename the extracted files as per the names in the .XML.
Here is an example; extracted filename in blue should be renamed to green.
Code:
<characteristic type="FileOperation">
<characteristic type="\temp" translation="install">
<characteristic type="MakeDir" />
<characteristic type="[COLOR="green"][B]HTCIMSSvc.exe[/B][/COLOR]" translation="install">
<characteristic type="Extract">
<parm name="Source" value="[COLOR="Blue"][B]HTCIMS~1.001[/B][/COLOR]" />
<parm name="NoSkip" />
</characteristic>
Step 3: Examine .XML & .REG
Examine the contents of the .XML file. If the file contains several actions, you would likely rename the file to .PROVXML - this thread has some good links for you to review.
Tip, file copy operations could be moved to a INITFLASHFILES.DAT file eliminating the need for the .PROVXML.
Examine the contents of the .REG file. The contents of the file will become your .REG (or.RGU) file for your OEM package.
Tip, look at the structure of an existing OEM package (ex: there are some for PkgToolsBuildOS & VisualKitchen).
A few other observations
bootstrap; this hotfix runs a setup bootstrap. You may need to perform a pre/post device capture using an application similar to dotFRED Task Manager. Here's how with dotFRED Task Manager:
Launch the dotFRED Task Manager, select Registry, select Export Registry, exit.
Run the hotfix, don't restart if possible.
Launch dotFred Task Manager, select Registry, select Export Registry, exit. Restart.
Launch dotFred Task Manager, select Registry, select Export Registry, exit.
You should now have 3 registry exports (or 2 if a forced restart): pre-install, post-install, post-restart. Use a comparison tool (ex: BeyondCompare) on your PC to compare the contents of these exports so as to isolate any pertinent actions/registry changes executed by the bootstrap.
registry changes; this hotfix applies changes to the Windows registry.
shortcuts; none created.
files; there are six files in this hotfix payload. Since you will be cooking a custom OEM package with the hotfix, it's possible you won't need most of these files as they are typically used by the hotfix installer.
directories; there are two folders created in this hotfix payload. Since you will be cooking a custom OEM package with the hotfix, it's possible you won't need to create these directories as they are typically used by the hotfix installer (temp) or already exist (windows).
Code:
<characteristic type="Install">
<parm name="InstallPhase" value="install" />
<parm name="[COLOR="red"][B]SetupDLL[/B][/COLOR]" value="[COLOR="red"][B]1[/B][/COLOR]" />
<parm name="OSVersionMin" value="3.0" />
<parm name="OSVersionMax" value="4.21" />
<parm name="BuildNumberMin" value="0" />
<parm name="BuildNumberMax" value="-536870912" />
<parm name="UnsupportedPlatforms" value="JUPITERHPC" />
<parm name="AppName" value="HotFix RAP_S00870" />
<parm name="InstallDir" value="%CE1%\RAP_S00870" translation="install" />
<parm name="[COLOR="magenta"][B]NumDirs[/B][/COLOR]" value="[COLOR="magenta"][B]2[/B][/COLOR]" />
<parm name="[COLOR="blue"][B]NumFiles[/B][/COLOR]" value="[COLOR="Blue"][B]6[/B][/COLOR]" />
<parm name="[COLOR="cyan"][B]NumRegKeys[/B][/COLOR]" value="[COLOR="cyan"][B]1[/B][/COLOR]" />
<parm name="[COLOR="cyan"][B]NumRegVals[/B][/COLOR]" value="[COLOR="cyan"][B]1[/B][/COLOR]" />
<parm name="[COLOR="purple"][B]NumShortcuts[/B][/COLOR]" value="[COLOR="purple"][B]0[/B][/COLOR]" />
</characteristic>
HTH,
hilaireg said:
Since you're looking to cook this into a ROM and since you'll likely run into this scenario again; here's the long method of doing it in case the shortcut methods don't work.
---------- SNIP ---------------
HTH,
Click to expand...
Click to collapse
I like your method for comparing registries with beyond compare, I'll have to try that one day. I've always used sktracker
TheSlimHim said:
Thank you very much for taking your time to help me. You gave me a very detailed explanation with examples to my question. I did steps 1 and 2 using 7zip and notepad++. However for Step 3, I have ran into a snag. I'm not sure what you are telling me to do.
Part 1: I read the thread you directed me to but I am still a bit confused on what it is I should do. I normaly add OEM packages this way.
Click to expand...
Click to collapse
I've used Ervius Visual Kitchen and PkgBuildOS; in these kitchen an OEM package structure is typically as follows:
PkgToolsBuildOS
<packagename>
<guid>.rgu
<guid>.dsm
files
modules
.provxml
shortcuts
initflashfiles.txt
option.xml​
Visual Kitchen
<packagename>
<guid>.rgu
<guid>.dsm
app.reg
app.dat
_skip
<Files>​files
modules
.provxml
shortcuts​
Haven't used the kitchen you are using. The best approach for you to take is examine a few packages in your kitchen (ex: Opera, Zip, etc.) to determine the structure you will need to follow.
Part 2: I can not find any reg or rgu files in the archive.
Can you please try to guide me a little bit more? I appreciate what you have already done to help me, however I am just beginning to become a Chef and am very eager to learn. I have previous experience in the programming world.
Click to expand...
Click to collapse
In the hotfix package you are working on;
HTCIMS~1.001 = CM_Entries.xml
PLATFO~1.004 = Platformxxx.reg
The .XML indicates where HTCIMSSvc.exe (in this case .\Windows) should be copied and also contains a HKLM registry entry.
The .REG is empty.
The challenge with this package is that it also contains a bootstrap (SetupDLL/CESetupDLL) and the _setup.xml also contains an HKCU registry entry. This typically indicates that the bootstrap setup may be adding registry entries as well. In such cases, the best approach is to perform pre/post registry captures to see what pertinent registry changes are made ... similar to repackaging application on a Windows platform (ex: InstallShield, Wise, etc.)
I have done all but one of the "requirements to start becoming a Chef" as one member has listed. That one is making my own cab. However I have made my own Reg edit programs for PCs among other things.
Thank you very much for your time,
TheSlimHim
Click to expand...
Click to collapse
No worries; we were all n00bies at one time or other. And just when you think you know what you're doing, someone will come along and show you a better method - happens to me all the time.

Categories

Resources