question about packages and initflashfile.txt - Touch Cruise ROM Development

Hi everybody,
I'm on the way to learn ROM-cooking. On that long trip I reached another hurdle. I've successfully created packages and put them into the OEM folder of the kitchen. So far so good, ROM has been created successfully. But after I've flashed the ROM to the device I found out that the files are exists twice. For example I've created a package from iContact_0.8.cab. Here is a part of the initflashfile.txt:
...
root:-Directory("Programme")
Directory("\Programme"):-Directory("iContact")
Directory("\Programme\iContact"):-File("default.png","\Windows\default.png")
Directory("\Programme\iContact"):-File("default.skn","\Windows\default.skn")
Directory("\Programme\iContact"):-File("english.lng","\Windows\iCenglish.lng")
Directory("\Programme\iContact"):-File("german.lng","\Windows\iCgerman.lng")
Directory("\Programme\iContact"):-File("iContact.exe","\Windows\iContact.exe")
Directory("\Programme\iContact"):-File("iphone.png","\Windows\iphone.png")
Directory("\Programme\iContact"):-File("iphone.skn","\Windows\iphone.skn")
Directory("\Programme\iContact"):-File("Settings.exe","\Windows\Settings.exe")
...
After flashing the ROM to the device I have file english.lng in folder \Programme\iContact and I also have file iCenglish.lng in folder \Windows, I have file iContact.exe in \Programme\iContact and I also have iContact.exe in \Windows. I thought an entry like Directory("\Programme\iContact"):-File("iContact.exe","\Windows\iContact.exe") means move file from \Windows to \Programme\iContact.
I found out that I have the same problem with a lot of other packages I've created with package-creator 2.7.
What am I doing wrong?
Tom

initflashfile.txt can not move a file it just creates a copy or a shortcut to the file.
If you want to move a file you must use a xml file.

NikMel said:
initflashfile.txt can not move a file it just creates a copy or a shortcut to the file.
If you want to move a file you must use a xml file.
Click to expand...
Click to collapse
@NikMel thank you for that hint. Is that part of provxml files or option.xml? Can you provide an example, please? And sorry that I'm so clueless.
Tom

Ok, I think it is the mxi_<package>_*.provxml what should be created to do this, is that right? Assuming that it is I've created such a file for my package and tried to use it instead of flashfiles.txt. But it seems that the file will not be executed while the ROM has been flashed to the device. Who or what is responsible to execute all the *provxml on the device? Are all *provxml files executed automatically? I found hints that mxip_ and mxipcold_ means that the files are executed during reflashing respect. cold-restarting the device while mxipupdate_ means executing each time the package has been updated.
I have to learn so much ....
Thanks for any help.
Tom

Hi everybody,
ok, it's the mxi_<package>_*.provxml what should doing the stuff. But it seems that it is not executed after flashing the ROM to the device.
I searched a lot of threads in the forum (for example this one: http://forum.xda-developers.com/showthread.php?t=398025&page=2). It seems that many other guys have the same problem but I couldn't find a solution.
In the meantime I'm totally confused about UC, Autorun, Autoshortcut etc. etc.. It would be very nice if someone could get me going on. What should be done to get this damned *provxml working??
Tom

Ok,
during further tests I found out that the mxip_<package>_*.provxml is being executed if it only contains Registry entries and/or MakeDir FileOperations. If I add a simple copy how it is done in for example this file: mxip_HtcApps_HTC_Ringtone.provxml the mxip-File is not been executed for whatever reason.
Is there somebody who knows what the reason for this behavior is? In the MS documentation I read something about access rights which could be restricted by OEM manufacturers. Could it be that the problem is caused by missing rights? And if yes, how change it?
Tom

Hi,
mxip_*provxml files are executed during flashing. Ok, that's a fact and it is working for me now. I found out that I only can use <characteristic type="Copy"> within the provxml. Once I used <characteristic type="Move"> the provxml will not be executed due to an error.
In fact all files from OEM packages goes into \windows and if someone uses a mxip_*provxml to implement those package for example in \Programme the files are duplicated. It seems not to be possible to remove the source files from \windows.
I did a test with rapiconfig.exe /p mxip_iContact08_100.provxml. If the provxml contains <characteristic type="Move"> I got an error message Config failed (0x80070005): Zugriff verweigert. After changing the provxml and replacing all "Move" with "Copy" the command works as expected.
Then I tried to delete a source file from the windows folder with TotalCommander running on the device. But it is not possible to delete the file.
Is there a way to delete the source files from the windows folder? Is it possible to put the source files from packages in an other folder than \windows?
Thanks for any advice.
Tom

Hi there,
Just want to tell you that i'm following this thread with great interest, as I also want to learn about cooking rom's, when I have some spare time.
So, please keep posting your updates on this matter.
@ all rom kookers and devellopers~
please share what you know, isn't that the spirit of Xda forum? It's the only way to get further, the more people thinking means more and faster advances been made.
Cheers

tomduke99 said:
Is there a way to delete the source files from the windows folder?
Click to expand...
Click to collapse
This is not possible becaue the files are part of the ROM I think. This has to be done before the ROM is created. But I'm not sure whether this is possible I don't think so, this would require the kitchen to do all the stuff with the mxip*provxml.
tomduke99 said:
Is it possible to put the source files from packages in an other folder than \windows?
Click to expand...
Click to collapse
All files from the kitchen stored in \windows. Does the kitchen knows something about the structure of the filesystem? Shouldn't this be provided by the package tool resp. by BuildOS? Or am I being completely off track?
Thanks for any advice.
Tom[/QUOTE]

I think the best workaround for this problem is to use the automated WM customization.
Cook your ROM with only the stuff you want to leave in the Windows folder. Check all initflashfiles.dat and *.provxml files, and remove them from the ROM! Leave only one initflashfiles.dat file, that will create the permanent folders (PermDir directive) and copy the checkautorun.lnk to the startup folder. This shortcut, in theory, is the only duplicate you will have in your whole ROM.
Then build a CAB file to install all files you need outside the windows folder.
Build an ExtROM with this cab file, a config.txt file and the autorun.exe file (see tutorials around the forums on creating an extrom).
Build your nbh file with os.nb and extrom.nb, and flash!
If all goes well, you will see the rom booting, then starting customization, then resetting, and when the phone comes back, you will have a nice, clean, duplicate-free ROM.
I didn´t try any of it, it´s just a theory.
Hope it helps.
Eduardo

Try the following:
<characteristic type="FileOperation">
<characteristic type="yourfile.foo">
<characteristic type="Move">
<parm name="Source" value="\Windows\yourfile.foo" translation="install"/>
<parm name="RemoveAttributes" value="R" />
<parm name="RemoveAttributes" value="S" />
</characteristic>
</characteristic>
</characteristic>

Related

[Sous-Chef's TIPs] Love .PROVXML's? Hate Not Knowing If It Worked?

So there you are; in the heat of the kitchen, adding your favourite ROM ingredients ... pinch of this, sprinkle of that. Like all good chefs, you decide to take a taste of your preparation before serving to others - nothing is more embarrassing than a meal gone wrong.
So you try it ... wait! you say, something is not right. You're positive you added the ingredients but it's not right. Could it be that a darn .PROVXML didn't get processed in a package? Which one? Time to look at the .PROVXML and check if the entries made it ... what happens if you have a hundred or more .PROVXML's in your kitchen .\PACKAGES or .\EXT folder?
Well, here's a few quick tips for those who love/hate those .PROVXML's
Tip #1: dotFred (FdcSoft) Task Manager 3.1
dotFred Task Manager includes an option to install Provision(er) .XML files. To use it however, you need to make sure that an .XML header appears as the first line of your .PROVXML file. Additionally, you'll need to temporarily rename the .PROVXML to .XML before copying to your device for testing with dotFred Task Manager.
Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
Once you've confirmed that all is well with your .XML, remove the .XML header and rename the file back to .PROVXML ... you're done.
URL: http://www.dotfred.net/TaskMgr.htm
Tip #2: Log .PROVXML Processing
Another handy little trick, is to add the following code to the end of your .PROVXML file. Place the code at the end of the .PROVXML file - just before/above the </wap-provisioningdoc> statement. This way, the characteric is the last item processed if all is well with the contents of the .PROVXML file.
Place your logging registry value in the OEM registry sub-key; for example, HKLM\Software\OEM\PROVXML ... same place as the MASD sub-key where package version information usually appears. Saves having to look all over the device registry.
Code:
<wap-provisioningdoc>
...
<!-- Add Registry Entry To Log PROVXML (XDADevelopers DD.MM.YYYY) -->
<characteristic type="Registry">
<characteristic type="HKLM\Software\OEM\PROVXML">
<parm name="[COLOR=blue]<SIMPLENAME>[/COLOR]" datatype="string" value="[COLOR=blue]<PROVXMLFileName>[/COLOR]" />
</characteristic>
</characteristic>
</wap-provisioningdoc>
<SIMPLENAME>
Simple friendly registry (REG_SZ) value name; stick with the basics: a-z, A-Z, 0-9. For example, if your .PROVXML file is entitled mxip_Package_MyApp_0_0_0_0, you could set the [SIMPLENAME] to: MyApp0000
<PROVXMLFileName>
Actual .PROVXML filename; that's what it's all about right? What's the point of adding something meaningless. For example, if your .PROVXML file is entitled mxip_Package_MyApp_0_0_0_0, you would set <PROVXMLFileName> to: mxip_Package_MyApp_0_0_0_0.provxml.
Tip #3: RAPICONFIG
Another method to test .PROVXML file is to use the RAPICONFIG utility. XDA members cruiserrr and kheechun report that RAPICONFIG is a quick (and painless) way to test .PROVXML files. Copy the RAPICONFIG (and other utilites) to your kitchen, connect your mobile device via ActiveSync, prepare an .XML file with the registry keys to upload/download, and submit the .XML via RAPICONFIG.
URL: http://forum.xda-developers.com/showthread.php?p=1899755#post1899755
URL: http://msdn.microsoft.com/en-us/library/bb737283.aspx
Tip #4: ANSI or Not To ANSI. And If Not, UTF-8 with/without Signature
Well that is the question, and frankly, i'm not sure there's a right or wrong answer. For example, some Microsoft forum/blog entries seem to elude to ANSI being the preferred choice if the .PROVXML will contain certificate information.
Other forum/blog entries and seasoned chefs will tell you to save them as UTF-8 with Unicode BOM Signature. Others yet, will recommend UTF-8 ... no signature.
So, that is the question indeed ...
Understanding Provisioning
http://msdn.microsoft.com/en-us/library/aa456234.aspx
Metabase Settings
http://msdn.microsoft.com/en-us/library/bb737493.aspx
Provisioning for Windows Mobile-Based Devices
http://msdn.microsoft.com/en-us/library/ms894922.aspx
Configuration Service Provider Reference for Windows Mobile-Based Devices
http://msdn.microsoft.com/en-us/library/ms889539.aspx
Thanks for sharing, these are all good suggestions.
In my case, when I want to know if my provxml is going to work, I usually just put the file into an installable cab and run it on the phone. If setup was successful, then at least I've confirmed that the syntax was good.
You have to rename the *.provxml file to _setup.xml and then insert it into a cab with:
Code:
MAKECAB _setup.xml InstallCabFile.cab
Another tool to check syntax is the free Microsoft XML editor.
Best regards,
-boggsie
boggsie said:
Another tool to check syntax is the free Microsoft XML editor.
Click to expand...
Click to collapse
XML Notepad 2007
http://www.microsoft.com/DownLoads/...49-787d-4118-ba5f-4f30fe913628&displaylang=en
IMHO the most "easyer" way to know if the syntax is OK is to rename the provxml to .xml and double click it:
If properly written, Internet Explorer (IE) will launch and display the full text
If not, IE will display where it stopped reading (where the error is) and the provxml will not be displayed
Other important aspect is the "file operations":
A provxml will not execute a file operation on a non-existing directory (folder), so the whole provxml contents won't be executed
my 2 cents and congrats for all your great tuts hilaireg
Very, very nice info indeed. HUGE thanks for sharing these tips!
gtrab said:
Other important aspect is the "file operations":
A provxml will not execute a file operation on a non-existing directory (folder), so the whole provxml contents won't be executed
Click to expand...
Click to collapse
This is virtually always what trips me up - forgetting to make a dir before doing something.
With regards to ANSI/UTF-8 etc. I always save as UTF-8 (no signature) and don't have any issues. If I mistakenly save as something else (perhaps by copying the xml into a new file) then I have problems with it not running.
I use all the methods commented here but I am missing another one: rapiconfig.exe lets you download the registry part you want as xml and as well upload it. Combining this with ceregeditor and a dump key like described above it is easy to see if things happened. In fact, rapiconfig can download the answer to a file as well.
Very useful for the start menu, hardkeys, owner, etc.
indeed, I found that RAPICONFIG.exe is the BEST so far, really made my life much easier OP if possible please include that to the top post
It would be my pleasure to add that to the first post. I haven't personally tried this method ... would you mind writing up the steps/procedures and any tips? If you have some links, it would be helpful to have them as well in case other members need the tools.
Cheers,
hilaireg said:
It would be my pleasure to add that to the first post. I haven't personally tried this method ... would you mind writing up the steps/procedures and any tips? If you have some links, it would be helpful to have them as well in case other members need the tools.
Cheers,
Click to expand...
Click to collapse
here you will find a great post with a nice how-to-do.
http://forum.xda-developers.com/showthread.php?p=1899755#post1899755
Yup, found it via the above link as well, it contains instructions on how to extract binary data into XML/provisional XML for UC.
However if you want to test your XML/PROVXML, just use the command
rapiconfig.exe /p <file.xml>
It'll feedback if there is any error in the XML.
However to make a postivie confirmation, you still have to check your file system/registry to see if the actions are taken.
Here is the official information:
http://msdn.microsoft.com/en-us/library/bb737283.aspx
Provisioning overview and Rapi~ Utilities
What can be 'provisioned' for phones?
1 Server provisioning
2 User provisioning
3 Mobile subscriber provisioning
4 Mobile content provisioning
5 Internet access provisioning
Provisioning Mobile Devices an introduction/article about 'provisioning'.
Windows Mobile Provisioning Samples some samples provided by Microsoft
Understanding Provisioning This is the main concept
Here my RapiUtils;
- RapiAttr: Modifies a file's attributes
- RapiCopy: Copies a file between the desktop and a connected device
- RapiDir: Create or remove a directory on the device
- RapiExists: Determines if a file exists
- RapiMove: Move or delete a file on the device
- RapiProc: List and terminate processes on the device
- RapiReg: View and modify registry keys on the device
- RapiStart: Launches an executable on the device
- RapiSync: Sync files from a directory to the device
- RapiTime: View and modify a file's timestamp
- RapiTree: Produces a "dir" like output of a directory.
- RapiGrab.bat: Uses RapiCopy to take a screen shot of the device and copy it to the desktop
- BatteryMon.exe: Desktop utility to present a simple graph showing battery charge for a connected device.
- CeKeyboard2.exe: Desktop utility to copy keyboard keys from the desktop to a connected device.
.NET XML PowerToys:
Generating XML Documents from XML Schemas
The XML Diff and Patch GUI Tool
Using the XML Diff and Patch Tool in Your Applications
Using the XSD Inference Utility
XML Tools Update
Power Toys for .NET Compact Framework 3.5
&
NETCFv35.Messages.EN.wm.cab
MSXML SDK
Would it not be great when we have a Bootstrapping Server here on XDA-Developers ? Converting our _setup.xml via makecab into *.CPF (CAB Provisioning File) and upload 'm to our (future) OMA DM server <g>
Understanding Bootstrapping
Have a nice read and rapi-config-battle,
Edit:
While surfing the net I stubmled upon Mobile Profiler (freeware) and it does a nice job for me; creating on the fly wap-provisioningdocs
-=[ extract downloaded *.exe with Universal Extractor to obtain the *.cab without using ActiveSync ]=-
Mobile Profiler (slightly edited) description;
Mobile Profiler is a tool for creating and restoring system states in XML based snapshots.
It is specialized to save and restore network settings like proxy servers and connection entries. Though there is more..
Whenever you switch a phone profile, Mobile Profiler restores the assigned snapshot.
There is a stand alone mode available for users without phoneAlarm (not free) or for manual switching. \o/
Many things can be stored into a snapshot ;
system settings,
registry keys,
file operations.
The snapshots are simple XML document which can be manipulated with any unicode aware editor.
Have fun,
Senax
I also had a problem with my .provxml and sometimes I wonder if the file itself was missed.. are there any standard naming of .provxml files? I had my .provxml configuration files in "Sources\Devices\HTC Raphael\OEM Packages\HTC Raphael Packages\OperatorPkg" am using osKitchen by the way..
I really don't see any errors in my .provxml but you can take a look at it and tell me if I missed something.
-update-
oh and I got to ask, I read here somewhere in this thread that if the reg key does not yet exists, it will not read my specific reg entry? Is there anyway that I can create this key using .provxml?
Nullstring said:
I also had a problem with my .provxml and sometimes I wonder if the file itself was missed.. are there any standard naming of .provxml files?
Click to expand...
Click to collapse
Assuming you have looked at the links in Post #1 (Tip 4), I haven't found much more on the subject.
I had my .provxml configuration files in "Sources\Devices\HTC Raphael\OEM Packages\HTC Raphael Packages\OperatorPkg" am using osKitchen by the way..
I really don't see any errors in my .provxml but you can take a look at it and tell me if I missed something.
Click to expand...
Click to collapse
Other than the header not having been removed as noted in Post #1 (Tip 1), the rest of the file looks fine to me. Have you tried using FDC Task Manager to import the .PROVXML?
oh and I got to ask, I read here somewhere in this thread that if the reg key does not yet exists, it will not read my specific reg entry?
Click to expand...
Click to collapse
AFAIK, the registry key should be created automatically - providing of course that the key path is valid.
Is there anyway that I can create this key using .provxml?
Click to expand...
Click to collapse
I make use of .provxml files extensively in my Raphael Kitchen; feel free to download it and examine the operator packages.
@hilaireg
thank you for that wonderful information! After fixing these xmls in VS IDE, they finally worked.. I just removed these comments and extra blank lines and put all these reg entries in one node <characteristic type="Registry"> they all seems to work now.
1 last question. in my OperatorPkg folder, I have 10 .provxml files and they were named mxiupdate_oemoperators_###.provxml + 1 mxiupdate_OEMVERSION_###.provxml
is it ok to just add my own .provxml? If I try to name it not in standard way like my_own_settings.provxml, is that ok?
Nullstring said:
@hilaireg
thank you for that wonderful information! After fixing these xmls in VS IDE, they finally worked.. I just removed these comments and extra blank lines and put all these reg entries in one node <characteristic type="Registry"> they all seems to work now.
1 last question. in my OperatorPkg folder, I have 10 .provxml files and they were named mxiupdate_oemoperators_###.provxml + 1 mxiupdate_OEMVERSION_###.provxml
is it ok to just add my own .provxml? If I try to name it not in standard way like my_own_settings.provxml, is that ok?
Click to expand...
Click to collapse
You should be able to add your .provxml to those that appear, observe the file naming convention however. Some .provxml only run when the device goes through a full reinitialization (first-time run), others run whenever the device is reset/soft initialized.
REF: http://msdn.microsoft.com/en-us/library/bb737493.aspx
Lastly, I usually create my "operator" package which contains all of the .provxml I need.
Cheers,
Provxml sequence: 1.) mxipcold*, 2.) mxip_* 3.) mxipupdate
Basically a copy of what I just wrote to the OSB thread, however technically it belongs better here:
You know that there are not many methods to debug this early phase of boot when the provxml execute, so I supplied a dedicated trace at the end of each provxml:
Code:
<!-- trace execution begin
*** change the [B][COLOR=Red]<filename>[/COLOR][/B].traced below to the name of
*** the .provxml where you copy this at the end.
Purpose: Utilize the creation of a shortcut
to get a system timestamped artifact in the context
of the current provxml execution.
After Cold Boot (Hard Reset), you can sort the
directory \Windows\ProvXml\ by file date and
you have the sequence of .provxml execution listed.
-->
<characteristic type="FileOperation">
<characteristic type="%CE2%\ProvXmlTrace" translation="install">
<characteristic type="MakeDir" />
<characteristic type="[COLOR=Red][B]mxipupdate_windowslive_1[/B][/COLOR].traced" translation="install">
<characteristic type="Shortcut">
<parm name="Source" value="%CE2%\solitare.exe" translation="install"/>
</characteristic>
</characteristic>
</characteristic>
</characteristic>
<!-- end of trace activity -->
Result was that from all executed provxml (their names were timestamped traced in the \windows\ProvXmlTrace directory) the sequence is this:
all mxipcold* in the relative sequence of their packages.sof
mxip_* others (also mxip_cold_* which is something that the HtcInit may care about later) in the relative sequence of their packages.sof
all mxipupdate* in the relative sequence of their packages.sof
Mind that the name of the package in the name of the provxml file is the reason to pick it like above, not the directory it is stored in! So no matter where you store the *.provxml in your kitchen path, it is only the name and the highest priority match it has for execution above.
I noticed this because I had a file "mxipcold_smartfon_TB.provxml" put last in the sequence row of my packages (some Z_OEM_my settings), also had the *.DSM set correctly and likewise the packages.sof definition. However there was also a file "mxipcold_smartfon_1.provxml" which was part of the \SYS\CommonNonEA package and this was further up the list in packages.sof. Still it was not at the top of the list, where only other mxip_* and mxipupdate packages were located. So for sure it is that first come all mxipcold*, then all mxip_* and finally all mxipupdate packages. It is also sure that mxip*<packagename>*.provxml will be executed at highest place in priority no matter by which <guid>.dsm in the packages.sof it has been elevated there.
You must note that HTC (others maybe as well) have an additional method to initialize the device. You may find a driver "htcinit.dll" in the OEM drivers section which will then call a "HtcColdBoot.exe". This may have additional capabilities and put the mxip*.provxml in possibly another sequence.
Since this is part of the OEM and the native Windows mobile has their own coldboot treatment (via coldinit.exe) their worksplit and alignment requires dedicated attention if you want to keep the OEM part.
Above findings come from the pure Windows Mobile treatment (i.e. without htcinit.dll driver).
You can trace sequence with above listed method in your own environment.

Removing something from registry with .xml

Hello,
I have a question.
For a answer i already looked around at the net and have read some threads at xda, modaco, and some site at msdn.
The short version: how do i remove a dir from the register with a .xml file?
The long version:
I need to remove a dir from the registry.
I opened a new text document and saved it as _setup.xml.
In this .xml file i wrote:
<characteristic type="Registry">
<nocharacteristic type="HKLM\Software\Microsoft\Shell\DeviceBeta" />
</characteristic>
</characteristic>
After that i opened Quickcab in the first field I put in by application name 1 and by owner 1.
By the second screen I add the _setup.xml file to the windows folder
At the next screen i do nothing and click on create.
I save it as _setup.cab.
After the .cab file is maked i move it to my phone and run it from my phone.
It says that evreything is installed and so on.
But when i reboot my device nothing happened and the dir. at the register is still there.
What am i doing wrong?
Do i need to put something more in the .cab file?
Please respect forum rules no double posts.
http://forum.xda-developers.com/showthread.php?t=647953
On that note thread closed.

How to clean up or remove folder via xml ?

I need delete all files in some folder or delete it folder and create empty again.
Hot to do it via xml or cab ?
What's the folder, what's in it, and why is i there in the first place. Instead of slapping a band-aid on the problem (and increasing your boot-time), you should prevent the folder from forming to begin with. You probably need to edit a provxml. or maybe initflashfiles.dat.
Farmer Ted said:
What's the folder, what's in it, and why is i there in the first place. Instead of slapping a band-aid on the problem (and increasing your boot-time), you should prevent the folder from forming to begin with. You probably need to edit a provxml. or maybe initflashfiles.dat.
Click to expand...
Click to collapse
I want to clean up %CE11% from default shortcuts.
So I want make cab which can for any ROM replace all default shortcuts with mine.
So I have edit provxml for every ROM or make one cab for all ROMs.
Ethermind said:
I want to clean up %CE11% from default shortcuts.
So I want make cab which can for any ROM replace all default shortcuts with mine.
So I have edit provxml for every ROM or make one cab for all ROMs.
Click to expand...
Click to collapse
may be this one will help u
<characteristic type="FileOperation">
<characteristic type="%CE14%\Solitaire.lnk" translation="install">
<characteristic type="Delete">
<parm name="ForceDelete"/>
</characteristic>
</characteristic>
in my kitchen it delete the solitaire game so u can change with what ever u want i think
To delete single file is very easy. I interested in a la *.lnk deletion : )
Edit initflashfile.dat as farmer said. If you dont want to do that, then use startup scripts.
You should also post all of the links that you want removed. Some may require special tricks to keep them from appearing, and you'll get helped quicker. You can always delete the shortcuts in the Sys folder (what I do), then you don't have to worry about them at all, and they aren't wasting slots in your rom.
It is all good for one ROM.
But if I use today one rom, next week other ROM, next week another etc.
Don't you think it more easy to use one universal cleaning CAB instead of cleaning every ROM?
Ethermind said:
It is all good for one ROM.
But if I use today one rom, next week other ROM, next week another etc.
Don't you think it more easy to use one universal cleaning CAB instead of cleaning every ROM?
Click to expand...
Click to collapse
searching for and deleting some *.lnk's every time a SYS come out isn't that much work is it ? easier then what you're after in any case.
Ethermind said:
It is all good for one ROM.
But if I use today one rom, next week other ROM, next week another etc.
Don't you think it more easy to use one universal cleaning CAB instead of cleaning every ROM?
Click to expand...
Click to collapse
What you need to do is collect all the provxml's that you edit and put them in an EXT. They'll over-write the ones in the new SYS, and won't have the unnecessary file operations. Also, you can just use the same initflashfiles.dat over and over again (edit as needed for new packages). The provxml's are mostly in the obvious packages in the Common directory, and that's where most shortcuts are.
Farmer Ted said:
What you need to do is collect all the provxml's that you edit and put them in an EXT.
Click to expand...
Click to collapse
Good idea. I will use it for now.
But still interested in xml scripting : )

[problem] Delete a file with a provxml

Hello my friends,
I would like to disable Microsoft Voice Commande on my rom.
For this, i need to delete the voice command.lnk on Windows\Startup.
I have created a provxml file :
Code:
<wap-provisioningdoc>
<characteristic type="FileOperation">
<characteristic type="%CE4%\Voice Command.lnk" translation="install">
<characteristic type="Delete">
<parm name="ForceDelete"/>
</characteristic>
</characteristic>
</characteristic>
</wap-provisioningdoc>
Nevertheless, it don't function
Anyone have an idea for this problem ?
Thanks a lot,
regards,
Nixeus
VC .lnk is also in reg, HKEY_LOCAL_MACHINE\ControlPanel\Voice Command- just change it to 1 if I remember correctly and add it to your personal reg
Why not just remove the bit in mxip_voicecommand_1.provxml that copies the lnk to windows\startup in the first place?
pkoper said:
Why not just remove the bit in mxip_voicecommand_1.provxml that copies the lnk to windows\startup in the first place?
Click to expand...
Click to collapse
Because i need to re-modify this PROVXML for each Build
If i create my own provxml which remove the lnk, it will be better.
You can always just drop the modified xml into your EXT.
I think it's note "clean" because there will always the provxml which copy the lnk.
If i update my WM Builds, i need to re-remove this proxml, thaht why i would lke to creat a proxml wich delete this lnk on startup.
Anyone have an idea why my proxml don't function ?
If you modify the provxml setting the link and copy it without renaming it to your EXT, then it will be "clean".
During "cooking" the modified provxml will overwrite the original one in SYS.
That way, when you update the build, there will always be the modified one in EXT that will be processed after the one sitting in your SYS.
pkoper said:
If you modify the provxml setting the link and copy it without renaming it to your EXT, then it will be "clean".
During "cooking" the modified provxml will overwrite the original one in SYS.
That way, when you update the build, there will always be the modified one in EXT that will be processed after the one sitting in your SYS.
Click to expand...
Click to collapse
+1 This is the way I do mine.
Yesss my friends
I understand !
You're right !
Thanks a lot and sorry for this question...i use never provxml !
regards,
Nixeus
pkoper said:
If you modify the provxml setting the link and copy it without renaming it to your EXT, then it will be "clean".
During "cooking" the modified provxml will overwrite the original one in SYS.
That way, when you update the build, there will always be the modified one in EXT that will be processed after the one sitting in your SYS.
Click to expand...
Click to collapse
I have try but it don't function
I have modify the provxml and i have copy it in my EXT folder.
After flashing, the lnk have been copied in windows\Startup
Did you check you build-log to make sure that the provxml was over-written? That's the first thing to do. It has to have the same name as the stock one. And make sure you editted the provxml (they're usually read-only, you need to change the properties).
If we're talking voice command, I believe there are 3 different provxml's that do the same thing. These are the ones I've always run into:
mxip_voicecommand_1.provxml
mxipcold_voicecommand_1.provxml
mxipupdate_voicecommand_1.provxml
Check your voice command package, you probably missed two of them, lol. Just delete them and stop screwing around.
Yes, i use the 3 provxml.
I have look to my log and.....it appear the PlatformeRebuilder don't overwrite the provxml files ! Yeah yeah !
Keep in mind that if you like to overwrite a provxml or any other file the
kitchen follows a alphabetic order for your EXT packages.
Nixeus said:
Yes, i use the 3 provxml.
I have look to my log and.....it appear the PlatformeRebuilder don't overwrite the provxml files ! Yeah yeah !
Click to expand...
Click to collapse
Laurentius26 said:
Keep in mind that if you like to overwrite a provxml or any other file the
kitchen follows a alphabetic order for your EXT packages.
Click to expand...
Click to collapse
I know, and i have respected the alphabetic order, my 3 provxmls are placed in ext in a ZZ_TWEAK.
I see that this folder is proceed at the end of plateformerebuilder, and....no overwritting

[SOLVED] Delete files in ProvXML doesn't work

Hi,
I try to delete *_manila files via provXML but that fails with error 0x80070005.
Here you can see what I do foreach file
Code:
<characteristic type="\Windows\00061bfb_manila" translation="install">
<characteristic type="Delete">
<parm name="RemoveAttributes" value="R" />
<parm name="RemoveAttributes" value="S" />
<parm name="ForceDelete"/>
</characteristic>
</characteristic>
<characteristic type="\Windows\000bbc87_manila" translation="install">
<characteristic type="Delete">
<parm name="RemoveAttributes" value="R" />
<parm name="RemoveAttributes" value="S" />
<parm name="ForceDelete"/>
</characteristic>
</characteristic>
Please help!
MadMatt
Are you trying to delete a rom file? It doesn't work. Just remove the file from your kitchen.
Farmer Ted said:
Are you trying to delete a rom file? It doesn't work. Just remove the file from your kitchen.
Click to expand...
Click to collapse
Yes, I want to delete it, but only afther it's copied to \Extendir\Manila Search for extendir and you'll know what I want to do. But indeed, I fear that it are ROM files... Is there another way to get them there in first boot?
That's why it's a rom file. There's no deleting them. If you could delete rom files, you could totally eff up your device rather easily. The way I move batch groups of files is with zip files. You can load dozens or hundreds of files into a zip file (which is a single, compressed rom file) and have them quickly copied to other locations using a mortscript. It's much faster than a cab install, and doesn't load any of the uninstall crap into the file system/registry/databases. There's really no point in copying one file at a time into the \Extendir directory, as you'll be defeating the purpose of using Extendir, so if you want to use extendir, you'll either have to move the files there with a mortscript/unzip or with a cab file, or just copy them from your sd card to the extendir directory. In the latter case, you could probably just put them in the extendir folder on your sd card and not even worry about it.
Here's an example of an unzipping mortscript:
UnZipALL("\Windows\Bing.zip","\Windows\")
Click to expand...
Click to collapse
I have a zip-folder with all the Bing sub-folders in it (\audio and \xaml). The script unzips the files into windows, where the rest of the Bing files and modules are located. In total, 104 files are stored in the zip folder, so I've basically been able to replace 104 rom files that would need to be copied to another directory with 2, which lowers the rom file count by a lot. If you put all your manila files in zip folder, and then unzip it to \extendir\manila, you'll save on the rom file count, which is basically the entire point of using extendir. The unzipping only works if the directory has already been created and also if there are no over-writes required. You could also make the directories by adding these commands to the beginning of the script:
MkDir("\Extendir\")
MkDir("\Extendir\Manila\")
Click to expand...
Click to collapse
Okay, I gave this a try, but extracting using a MortScript doesn't work... Or do I need some packages to be able to run a Mscr file?
This is what I have in my Config_AP.txt file
Code:
CFG: \WINDOWS\config_end.txt
CFG: \WINDOWS\Madmatt.txt
And in my Madmatt.txt (that will contain all customization made by me):
Code:
EXEC: \Windows\ManilaExtendir.mscr
But thats not working with this in my ManilaExtendir.mscr file:
Code:
MkDir("\Extendir\")
MkDir("\Extendir\Manila\")
UnZipALL("\Windows\Manila_CFC.zip","\Extendir\")
And another question (maybe I should ask this in Extendir thread): How can I cook the Extendir.dll in my XIP? Because when I use the BuildXIP_Of_MSXIPkernel tool (provided by Alexx~) that crashes. I guess that happens because it's a dll and not S000, S001 and so on. But how can I convert?
Thanks for the help you already provided to me! Hope you can help me out with this!
You've got mortscript cooked in, right? Assuming that you do, just test out the unzipping script on your device, and make sure it works before you cook and flash. Put the zip file in \windows and run the script. It may help to delete the directories first, too. And if you're doing a lot of morscript stuff during customization, you could just dump autorun and config.txt's altogether. I did it a while ago, and am really glad that I did. First boot is much faster without autorun. I just have a shortcut called custom.lnk that I have copied into the startup folder with initflashfiles.dat. It points to a mortscript (custom.mscr) that has a queue of unzips in it that does all of my customization; at the end, it deletes the custom.lnk from startup so it doesn't run every time I reset the device. I also import an xml; I don't use cabs, so don't have to deal with them. This is what it looks like (off-topic, but what the hell):
Code:
WriteFile("\Windows\Active sync xml.lnk","1#\Windows\dF_TaskMgr.exe /provxml \WINDOWS\zzz-Active Sync.xml")
#runwait("\WINDOWS\UnzipFpseCE.mscr")
runwait("\WINDOWS\Unzipmotweet.mscr")
runwait("\WINDOWS\UnzipRescoAudio.mscr")
runwait("\WINDOWS\UnzipResco.mscr")
runwait("\WINDOWS\UnzipRescoPhoto.mscr")
runwait("\WINDOWS\UnzipRescoRadio.mscr")
runwait("\WINDOWS\UnzipSchema.mscr")
runwait("\WINDOWS\UnzipUCWEB.mscr")
runwait("\WINDOWS\StartMenu.mscr")
runwait("\WINDOWS\UnzipTemplates.mscr")
runwait("\WINDOWS\Unzip1.mscr")
runwait("\WINDOWS\UnzipBing.mscr")
runwait("\WINDOWS\Restore.mscr")
runwait("\WINDOWS\cleanup.mscr")
run("\Windows\Refresh.lnk")
run("\Windows\Active sync xml.lnk")
SetFileAttribs("\Windows\Active sync xml.lnk","system",FALSE)
delete("\Windows\Active sync xml.lnk")
SetFileAttribs("\Windows\StartUp\Custom.lnk","system",FALSE)
SetFileAttribs("\Windows\StartUp\Custom.lnk","readonly",FALSE)
delete("\Windows\StartUp\Custom.lnk")
run("\WINDOWS\AEBPlus.exe")
run("\WINDOWS\RKbdInit.exe")
run("\Windows\skbackup.lnk")
I'm not sure what to tell you about building the XIP; I was using EVK when I played around with extendir, and it rebuilt it w/o problem.
Thanks! And how can I check if I have MortScript installed? What packages do I need to cook in?
If you have to ask, it's not installed, lol. It's not native winmo software. Here's a package; I changed the default icon because I find it annoying. The package is in oem format; you can either convert it to an EXT or probably put it in your OEM directory.
Farmer Ted said:
If you have to ask, it's not installed, lol. It's not native winmo software. Here's a package; I changed the default icon because I find it annoying. The package is in oem format; you can either convert it to an EXT or probably put it in your OEM directory.
Click to expand...
Click to collapse
Thanks! I'll take a look for what I can use MortScript too! I like it! The only thing that doesn't work is Extendir now... But I'll post that in the Extendir thread. This one can be closed. Thanks Farmer Ted.
Ok, I'll close it. The 0-commands.txt file in the package is a quick list of mortscript commands. I put a 0 on it so that it pops up to the top of the\windows folder and is easy to access. You can delete it if you don't want it. There's also a much more thorought manual in pdf form out there, if you search for it.

Categories

Resources