[SOLUTION] - Multiple EXT packages with common file names being overwritten. - Windows Mobile

I don't know if anyone finds this interesting.. But if you are cooking in a lot of EXT packages, chances are you're going to over write several files with common names.. (they all get put in the \Windows directory..).
Heres a simple little solution:
(make a batch file and paste this in it)
::for /f "tokens=*" %%a in ('dir /b /a-d') do rename "%%a" "ab0_%%a"
for %%a in (*) do rename "%%a" "ab0_%%a"
Click to expand...
Click to collapse
where 'ab0_' will be replaced (in both spots) as the prefix you want added to your files. Obviously this needs to be unique in every EXT package you change.
Paste this in the 'Files' directory of your EXT package. It will add a prefix to your files.
Then edit the app.dat file in your EXT package with any text editor that has "search and replace" and S&R for "\Windows\" and replace with "\Windows\ab0_" where ab0 - is the prefix you added to your files.
You'll need to manually edit any lines where \Windows\ was in the destination path, and not the source path. Generally these are a couple lines at the end of your app.dat file.
An example of path where \Windows is in the destination:
Directory("\Windows\Startup"):-File("
Click to expand...
Click to collapse
An example of path where \Windows is in the source path:
Directory("\Program Files\Ageye\G-Alarm"):-File("GAlarm.exe","\Windows\GAlarm.exe")
Click to expand...
Click to collapse
Hope this helps someone else!

just a heads up, working on a slight tweak atm to handle file names with one character.

would this work for the program file folder as well
I have four games that i am trying to cook and they all have a file called data.bar, each gets cooked into a different folder because it has info in it for that game, however during the cooking process they each get over written by the next one
Directory("\Program Files\Gameloft\Avalanche Snowboarding"):-File("data.bar","\Windows\data.bar")
What do I need to add to this line for it to work if it will?

Related

SDConfigGen - a tool for automatically creating SDAutorun configurations

First off, I'd like to thank Sleuth255 for SDAutoRun, and to mousio for his AutoRun tool which provided the inspiration for this project.
SDConfigGen is a command line tool for the PC which inspects a collection of files to be installed, then produces an SDConfig.txt and other associated scripts and provisioning files to allow SDAutoRun to automatically install them.
It differs from mousio's solution in that rather than having SDAutoRun call a MortScript to do all the work, this tool creates an SDConfig.txt to do the majority, only calling scripts for specific functionality when required. Scripts (and therefore MortScript) may not even be required, if nothing being installed needs automation.
Installation
Unzipping the contents of the archive will produce this folder structure:
\
Storage Card\SDConfig\Cabs\
Files\
Scripts\
Settings\
Sys\​First things first - to use any of the script-based functionality a copy of the MortScript installation cab file must be placed within the Sys folder. Download MortScript-4.11b7.zip (or newer version) from http://www.sto-helit.de, then extract \cab\MortScript-4.11b7-PPC.cab from it.
Usage
If the name of the Storage Card will be different on your target device, then rename that folder to whatever it will be. Otherwise, just leave it as it is.
Within the sub-folders of SDConfig, add the files you want to be installed.
Cabs:
Any .cab files in this folder will be installed. If the installation of a .cab file requires user interaction (to confirm a license window, for example), then create a .mscr script file of the same name containing instructions to be executed while the cab file is being installed.
For example, if you need to install a cab file: "eWallet-PocketPC-Install.cab",
create a file called "eWallet-PocketPC-Install.mscr" too. This file contains
MortScript to be run while the cab installer is being run, for example:
Code:
windowTitle = "Software License Agreement"
WaitFor(windowTitle, 60)
SendLeftSoft(windowTitle)
Note that you don't need to worry about actually installing the cab, or waiting for installation to finish - just write the automation code itself.
The SDAutoRun UI will be hidden while an interactive cab is being installed like this, and a MortScript status window shown instead. The device will be responsive to user input, so if any non-automatable interaction is required, that can be done manually.
Files:
After the cab files have been installed, all files in this folder will be copied directly to the root folder. To copy files to sub-folders, place them in sub-folders of this folder. For example, to copy files to the Windows folder, create a Windows folder here and place the files within it.
Standard (English) folder names will automatically be replaced by variables, so files in the "Files\Program Files" folder here will be copied to %CE1% folder by SDAutoRun.
The file copy operation is actually performed by generating a CopyFiles.xml provisioning file in the Sys folder, and it is this that goes in the SDConfig.txt file. This method was chosen as it avoids the path length limit of copying directly in SDConfig.txt, and allows for the %CEn% variable subsitution scheme.
Settings:
After the files have been copied, any settings in this folder will be applied. Settings may either be .xml provisioning files (which are added directly to SDConfig.txt), or registry data in .reg, .rgu or .cereg files. Registry data files will be automatically converted to xml provisioning files within the Sys folder, which are then added to SDConfig.txt.
Scripts:
After the settings have been applied, any .mscr scripts within this folder will be executed. SDConfigGen will generate instructions in SDConfig.txt to automatically handle copying them to the \Temp folder and renaming them to replace spaces by underscores before execution if required.
Note that the device will not be interactive at this point, so don't write scripts that require user interaction.
Sys:
Apart from placing a copy of MortScript-4.11b7-PPC.cab in here, you shouldn't touch the contents of this folder; they will be automatically cleaned out and generated by the SDConfigGen tool.
Notes
I've provided RegToXml as a standalone .exe file so that registry data files can be manually converted to .xml provisioning files, if required. This is not generally necessary, though, as it will occur automatically as part of the SDConfigGen process.
Due to limitations of SDAutoRun, during installation some files need to be copied to the \Temp folder on the device before execution. A TempCleanup.xml provisioning file is generated in the Sys folder by SDConfigGen which is the last thing executed by SDConfig.txt. It should remove any temporary files that were placed in the \Temp folder, but will not remove the folder itself, or any other files within it.
SDAutoRun also requires that SDConfig.txt be ASCII, which means that if any files contain characters outside that range (such as accented characters), they can not be directly referenced. SDConfigGen will automatically detect this, and generate provisioning XML files to transparently rename the files before processing them, then back again afterwards.
The last statement in the SDConfig.txt is the RST: Reset statment, to reset the device.
The only part of the file structure that can be changed is the name of the "Storage Card" folder - the other folders cannot be renamed or moved. By default, when the SDConfigGen tool is run, it works with the first sub folder under the folder the .exe file is placed. To override this behaviour, pass the folder path to SDConfigGen.exe as a command line argument.
Cabs, settings and scripts are executed in alphabetical order, grouped by subfolder. Subfolders will be executed first, so for example the contents of Cabs\Prerequisites\ would be installed before the files directly in Cabs\ (but after files in Cabs\A\). All interactive cabs are executed first, followed by non-interactive ones.
All generated files (except SDConfig.txt) are in Unicode UTF-16 encoding.
To have SDConfigGen create a log file of the generation process, use the SDConfigGenWithLog.bat file included in the archive. It will create a results.log file containing the messages that would normally be output to the console.
This is still an early version, so there will probably be bugs with it. I've used it successfully for setting up my own device several times now, but I can't make any guarantees. Please do post any bug reports or suggestions here though!
Alex
Updates
0.6:
All output files are now in UTF-16 encoding, with the exception of SDConfig.txt, which is in ASCII.
If files referenced by SDConfig.txt have names containing non-ASCII characters, provisioning files to automatically rename them before they are accessed, and to restore them afterwards will be generated.
Subfolders are now supported in the Cabs, Settings and Scripts folders. Files within subfolders will be processed first, in alphabetical order of subfolder name.
File folder variable substition made case insensitive
Added SDConfigGenWithLog.bat file for easy logging of output to a log file
0.5.1:
Removed .svn files from the file structure (oops!)
0.5:
Made warning message on skipping registry files less confusing
RegToXml: Now supports empty values for String, MultiString and Binary values
RegToXml: Made ,ore robust to invalid data - if a value contains invalid data, only that value is skipped.
RegToXml: The line number is now reported with any error or warning message.
RegToXml: Whitespace allowed to surround the = in value lines.
0.4:
RegToXml: Fixed nesting bug with registry key deletion conversion
RegToXml: Now supports comments (lines starting with ; )
0.3:
RegToXml now assumes that registry files without Unicode BOM's are encoded in the system default ANSI codepage, rather than UTF-8 (this means that if your registry file is UTF-8, it must contain a Byte Order Mark to be read correctly)
0.2:
Files are now installed in alphabetical order by file name (within their own group). For example, first interactive cabs A-Z, then non-interactive cabs A-Z. This allows control over installing cabs that require others to be installed before or after them.
.NET Framework (required)
Lookin Mighty Fine Siuer.
Not in the Testing Time yet.
But does the scripts folder eventually combine the scripts into one?
(lazy Bum At Work, Not Able to test it)
No, the scripts in the scripts folder are not combined into a single script, they are all executed separately. Would there be some benefit to trying to combine them into a single script before execution?
AlexVallat said:
No, the scripts in the scripts folder are not combined into a single script, they are all executed separately. Would there be some benefit to trying to combine them into a single script before execution?
Click to expand...
Click to collapse
No, you are absolutely right there is now good reason for it.
It's better to have them seprated, makes finding **** Ups easier.
Don't know what i was thinking or why..
AlexVallat,
Thanks for your job, you soft is amazingly simple which is a great pro compared to SASHIMI for instance.
So yhis afternoon I started to put all my files in the appropriate folders and when I launch SDConfigGen with the folder path I don't get in the config.txt file \Storage Card\ before the files to execute but the path I gave as parameter. I think transforming the path given into \Storage Card\ could help.
One other point, as a poor French guy your RegToXml converter does not handle all the French extended character set such as é, à, ... Could you make it support this characters.
Anyway for now it is fully usable but requires SDConfig.txt file edition before launching the whole process. Tomorrow it will be hands-on time as I plan to upgrade my Polaris ROM so more news to come regarding SDCofingGen usage.
The_Steph
The_Steph said:
AlexVallat,
Thanks for your job, you soft is amazingly simple which is a great pro compared to SASHIMI for instance.
So yhis afternoon I started to put all my files in the appropriate folders and when I launch SDConfigGen with the folder path I don't get in the config.txt file \Storage Card\ before the files to execute but the path I gave as parameter. I think transforming the path given into \Storage Card\ could help.
One other point, as a poor French guy your RegToXml converter does not handle all the French extended character set such as é, à, ... Could you make it support this characters.
Anyway for now it is fully usable but requires SDConfig.txt file edition before launching the whole process. Tomorrow it will be hands-on time as I plan to upgrade my Polaris ROM so more news to come regarding SDCofingGen usage.
The_Steph
Click to expand...
Click to collapse
Hm my pall had the same thing but changing to Unicode seemed to solve his XML issue. NOt sure if this is the same but worth the try.
Great work alex!
Question:
Anyway to verify the syntax of the provisioning XML files?
Any tools out there that can create these files or verify them? I think a tool like this would be great.
NEVERMIND! I just saw your reply in the reg2xml converter thread! THANKS!
The_Steph: Thanks for your comments!
The idea with the path is that the name of the folder is used to control the name of the Storage Card on the device. So if you name your folder Storage Card, that's what goes in the SDConfig.txt. If, on your device, it has a different name (due to language changes, or whatever), then you need to rename the folder appropriately.
Thanks for the bug report about accented characters in RegToXml. I will fix that and post an updated version soon.
gtxaspec: I could verify that the files were valid XML, but the more useful check that they contain valid provisioning instructions is beyond the scope of this project. Not least because the documentation describing what are valid instructions is confusing and can be inaccurate. With anything other than the file and registry providers, it usually ends up being a case of trial and error. With the file and registry providers, using the auto-generation capabilities of SDConfigGen will avoid most surprises.
Alex
Version 0.3 released
I've just updated the first post to release version 0.3. This should address the accented characters issue raised by The_Steph, however it does mean that if your registry file is UTF-8 encoded, it must include Byte Order Marks to indicate this. Otherwise, it will be assumed to be encoded in the system default code page.
I've also added a feature that files are now installed in alphabetical order (within each group). If you need to make sure that certain cabs are installed before others, this can now be done by renaming them, usually by including a numeric prefix.
Alex
reg2xml bugs
Hi Alex,
Converting everything to xml and using standard provisioning is an interesting approach!
Only obviously reg2xml has got some problems still with .reg files containing certain characters:
I've attached you a sample file which is not converted correctly at three points, each with a different error cause.
- Comments (Lines beginning with ";") in the .reg files are sometimes (not in every case, could not see what the trigger is) leading to an aborted conversion.
- Some characters like the arrow character (ASCII 27/1BHex) are also a problem.
Maybe the attached file helps in finding the bug.
BTW: Do you also have a tool that is converting just the other way around: From XML to reg indstead of from reg to XML?
Sometimes I need to have a .reg file instead of an .XML. And importing the XML and then trying to find all registry entries to export it back to a .reg can be a very tedious thing when the imports are not all together in one registry branch.
Thanks!
Thanks for the bug report, asango. Yes, I forgot about comments, I'll fix that and release an update soon. I'm looking into what the best way to handle control characters like 0x1B is (which is 'Escape', according to the ASCII chart I'm looking at). Obviously crashing is not an acceptable behaviour, so I'll have some sort of fix for it.
I don't have a XmlToReg tool, but it sounds like a good idea - I'll probably write one over the weekend.
Alex
Great, looking forward to that, thank you!
Version 0.4 released
The first post has been updated to version 0.4. RegToXml has been updated to add support for comments in .reg files.
Unfortunately there appears to be no way to include control characters in an XML file. If the character itself, or even the character entity (like &#x1B, then the file is regarded as malformed and not accepted. I have therefore not been able to do anything to fix this (sorry asango!).
If anyone knows of a way that a provisioning file could be used to set a registry string value containing these characters, please let me know.
On a more positive note, the requested XmlToReg tool is up - I've given it its own thread here: XmlToReg.
Alex
Yes, the comments are now handled corectly, perfect!
Some other thing is still an issue:
test.reg: Converting...
test.reg: Conversion failed. (Unexpected value format: dword) Skipping.
In this case the output file is not generated at all, seems that not only the value is skipped but this causes the whole file not being written.
This leads to another suggestion: Would it be possible to indicate the line number where a problem happened?
This would make it much easier to find the problem.
And regarding the non handled escape characters:
This also leads to aborting. Would it also be possible to just skip them and issue a warning but go on with the conversion and with writing the outout file for the rest of the entries?
Now that is odd. "dword" is a perfectly valid value format, it shouldn't have produced that error. Any chance you could send me the .reg file that produced it?
Line numbers should be do-able, I'll add that to the next version.
The "skipping" message there referred to the "test.reg" at the start of the message, not to the dword value. I agree it looks misleading as it is currently worded though, I'll improve that.
About recovering from errors and skipping only invalid values rather than the whole file - this will be quite tricky. By the time I am notified of invalid characters by the XmlWriter, it has already given up in a sulk and can't be persuaded to continue writing any further. I'll need to do some sort of pre-vetting before passing data on to it. If I come up with any good ideas on how to do this, I'll include it in the next version.
Alex
asango, here's a candidate RegToXml.0.5.0 - could you check if it is still reporting the "Unexpected value format: dword" error with your file? It now reports line numbers, which might help track down the problem. It should also be able to recover from an invalid value and skip just that value, although I'm not sure how well that is working yet.
Alex
Hi Alex,
Great, the line numbers are making things much easier and this way I even found the reason for this error very easily:
Here's the point where it is failing:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\RIL]
"NITZEnable"= dword:00000001
...with this error message:
test.reg: Converting...
[Line 194] Error: Invalid value (Unexpected value format: dword)
Skipping: HKEY_LOCAL_MACHINE\Drivers\BuiltIn\RIL\NITZEnable
Done.
As soon as I'm deleting the blank between the "=" and "dword" everything is ok.
Maybe you can allow blanks after the "=" in general?
This would solve this issue definitely
And yes, by the way the xml file is now generated despite of this error, very good!
Asango
Hmm... I'm not sure whitespace is supposed to be allowed around the = sign. It doesn't make anything ambiguous though, so there's no good reason not to relax the matching. Try this 0.5.1 which allows whitespace around the = sign, hopefully that should now parse your file correctly.
Alex
Yes, now I can see no other issues with the RegToXml tool, good work!
Also the whole cold boot import is ok with one exception:
Only the CopyFiles.xml which is generated by the SDConfigGen.exe is not copying all the files from the "Files" diectory during its execution.
Tried to import that xml manually with the xml option of Taskmgr and also got an error, but since the error is *very* uninformative and not showing the line number and my CopyFiles.xml is rather big I could not find the problem.
Could it be that the reason for the error is that if a file is already existing or read only that this will stop the rest of the import?
asango said:
Yes, now I can see no other issues with the Only the CopyFiles.xml which is generated by the SDConfigGen.exe is not copying all the files from the "Files" diectory during its execution.
Tried to import that xml manually with the xml option of Taskmgr and also got an error, but since the error is *very* uninformative and not showing the line number and my CopyFiles.xml is rather big I could not find the problem.
Click to expand...
Click to collapse
Second hands-on day with SDConfigGen and I have the same issue with v0.4. CopyFiles.xml is not executed at all. Probably a syntax error issue as stated by asango (I've done the same tests as him).
The_Steph

How to implement new *.provxml in new ROM

Hi,
unfortunately I am not able to implement a new *provxml to a new ROM.
I know http://forum.xda-developers.com/showthread.php?t=398025
and some other threads, but all my entries (Mailaccounts, WiFi informations - which I got with rapiconfig) are not in my new ROM.
I am doing somewhere a mistake. It does not work:
I have done the following:
1. created an acconts.provxml
2. renamed to _setup.xml
3. Created an OEM package with Ervius Package Creator.
Have now 5 files in the OEM folder: _setup.xml, *.rgu, *.dsm (size 0k), option.xml and initflashfiles.txt
4. Moved option.xml out of the OEM folder
5. Drag and drop OEM folder over BuildDSM.exe. This creates a new *dsm (size 1k)
6. place back option.xml in OEM folder
7. copy OEM folder under \Packages - i have tested also the OEM folder
8. cooked and burned ROM
Does someone has a OEM package with a *.provxml (including email2 and wi-fi infos). All imported emai-addresses and wifi info van be deleted of course. ?
If I use "rapiconfig.exe /p _setup.xml" all my infos are ok.
Any help is welcome.
Regards
kuzco1
this is what works for me...
you have to name it:
mxipupdate_zz_oemoperators_100_PPC+All_filename.provxml​
you can replace 'filename' with whatever you wish.
(there should be no space in provxml, this editor isn't working right for some reason)
let us know if this works for you...
joemanb said:
this is what works for me...
you have to name it:
mxipupdate_zz_oemoperators_100_PPC+All_filename.provxml​
you can replace 'filename' with whatever you wish.
(there should be no space in provxml, this editor isn't working right for some reason)
let us know if this works for you...
Click to expand...
Click to collapse
Hello,
what do you really mean ?
I have renamed my _setup.xml to mxipupdate_zz_oemoperators_100_PPC+All_filename.provxml and put this file \OEM\OperatorPKG. After cooking and burning my Kaiser does not boot any longer - I have to reverted to my old ROM.
Regards
kuzco
have you tried creating a cab file with your _setup.xml?
see if that works, maybe your xml has errors.
as far as creating a dsm, all I did was drop the file into another oem folder that already had some provxml files.
the fact that your phone won't boot now would indicate to me that after the filename change the file is indeed being processed, but the xml has errors.
download the 'tmobileforromcooks.zip' file in the following post and compare the provxml files with yours.
http://forum.xda-developers.com/showpost.php?p=2237367&postcount=1
good luck
joemanb said:
have you tried creating a cab file with your _setup.xml?
see if that works, maybe your xml has errors.
as far as creating a dsm, all I did was drop the file into another oem folder that already had some provxml files.
the fact that your phone won't boot now would indicate to me that after the filename change the file is indeed being processed, but the xml has errors.
download the 'tmobileforromcooks.zip' file in the following post and compare the provxml files with yours.
http://forum.xda-developers.com/showpost.php?p=2237367&postcount=1
good luck
Click to expand...
Click to collapse
Thanks, but this zip does not work either. I will play more ....
kuzco1
hint hint: Try adding these settings to an already existing prov.
as i read somwhere you cannot add any provxml file in a dumped rom! but u can change and add reg edits in an existing provxml file. and theres another thing i think you should know: provxml files are the last reg based files that will get written in the cooked rom SO they have the ability to change and overwrite rgu files that you created if they both have the same reg path but diff values.

[APP] xcopyce - 0v04 [08 SEP 2008]

Hi
This app was created a few months ago and lived in the UC thread created by Sleuth255. I said if there was enough interest I would move the post to the it's own thread. I got to 0v03, so I started a new thread.
xcopyce v0-04
This is an application idea l3v5y came up with and somehow convinced me into writing .
Purpose
To copy folders as part of the UC process.
Requirements
* .Net CF 2.0
* UC (Of course).
Usage
*Download the Zip file and extract xcopyce.exe onto your the root of your storage card.
*Add the following lines to your UC File
Code:
CPY1:\Storage Card\xcopyce.exe
CPY2:\Temp\xcopyce.exe
EXEC:\Temp\xcopyce.exe
Replace folder paths where necessary, remeber that EXEC: does not support spaces (hence why I'm copying to \Temp).
Config
Create a file on the root of your storage card called xcopyce.txt - this is the config file.
*The format of the file is "source" "destination" attribs.
*Comments begin with a # symbol.
*By default destination files are created without attributes.
*File attributes are as follows (case insensitive):
Code:
r - read-only
a - archive
s - system
h - hidden
Example:
Code:
[COLOR="DarkGreen"]#Copy Temp from Storage Card to your Device[/COLOR]
"\Storage Card\Temp" \Temp
[COLOR="DarkGreen"]#Copy Folder making all files Read only in the Destination[/COLOR]
\Temp "\Temp2" r
[COLOR="DarkGreen"]#Copy Folder making all files Hidden and System in the Destination[/COLOR]
\Temp2 \Temp3 sh
[COLOR="DarkGreen"]#Copy Folder making all files System, hidden, read-only and archive in the Destination[/COLOR]
\Temp3 \Temp4 shra
Double Quotes can surround either the source or destination, but must surround paths with spaces in. This is the same as when using the xcopy command line. If in doubt surround both sides with quotes.
Logging
A log file is created on the root of your storage card called xcopyce.log. This file is over written every time you run.
Change Log
0v01
- Initial Development.
0v02
- No longer requires the storage card to be called "\Storage Card".
0v03
- Support for destination file attribute setting.
- Now over writes read-only files in the destination.
- Changes to log file structure.
- Handles blank lines in the config file.
0v04
- Bug fix: Line parser algorithm should handle work in all cases. (#10)
Credits
l3v5y for the idea.
Sleuth255 for his UC work in the first place.
nikagl for inspiring more updates.
Download
Here
MD5 Hash
Code:
9E08A46EC3E049FF71BFF476FE818BD4
Thanks
Dave
Thanks Dave! And now let's add some tags for the search engines which I had initially used to find this wonderful program, but did not (I only accidentaly stumbled accross it because you had the link in your sig!):
This tool is the perfect addition to Sashimi and/or UC / User Customization as it can be executed using a Command Line on any Windows Mobile (WM5 or WM6) device to copy files and overwrite read only files!
Regards,
Nika.
Me likey file attributes!
Now I'm going to have to flash a ROM to try it out!
One question though... Can this copy files as well as folders?
BTW, I added this to the UC post.
l3v5y said:
Me likey file attributes!
Now I'm going to have to flash a ROM to try it out!
One question though... Can this copy files as well as folders?
BTW, I added this to the UC post.
Click to expand...
Click to collapse
Thanks mate. At the moment just folders. I'll look at files for 0v04.
Ta
Dave
Hi Dave,
I guess for compatibility with UC you've created the current tool, where it uses a file to perform the copy tasks. Would it be possible to create a 100% command line method, like xcopy in Windows?
For instance here's the usage of xcopyce I'd love to see (straight from xcopy /? ):
XCOPYCE source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W] [/C] [/i] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/u] [/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z] [/EXCLUDE:file1[+file2][+file3]...]
source: Specifies the file(s) to copy.
destination: Specifies the location and/or name of new files.
/A = Copies only files with the archive attribute set, doesn't change the attribute.
/M = Copies only files with the archive attribute set, turns off the archive attribute.
/D:m-d-y = Copies files changed on or after the specified date. If no date is given, copies only those files whose source time is newer than the destination time.
/EXCLUDE:file1[+file2][+file3]... = Specifies a list of files containing strings. Each string should be in a separate line in the files. When any of the strings match any part of the absolute path of the file to be copied, that file will be excluded from being copied. For example, specifying a string like \obj\ or .obj will exclude all files underneath the directory obj or all files with the .obj extension respectively.
/P = Prompts you before creating each destination file.
/S = Copies directories and subdirectories except empty ones.
/E = Copies directories and subdirectories, including empty ones. Same as /S /E. May be used to modify /T.
/V = Verifies each new file.
/W = Prompts you to press a key before copying.
/C = Continues copying even if errors occur.
/I = If destination does not exist and copying more than one file, assumes that destination must be a directory.
/Q = Does not display file names while copying.
/F = Displays full source and destination file names while copying.
/L = Displays files that would be copied.
/G = Allows the copying of encrypted files to destination that does not support encryption.
/H = Copies hidden and system files also.
/R = Overwrites read-only files.
/T = Creates directory structure, but does not copy files. Does not include empty directories or subdirectories. /T /E includes empty directories and subdirectories.
/U = Copies only files that already exist in destination.
/K = Copies attributes. Normal Xcopy will reset read-only attributes.
/N = Copies using the generated short names.
/O = Copies file ownership and ACL information.
/X = Copies file audit settings (implies /O).
/Y = Suppresses prompting to confirm you want to overwrite an existing destination file.
/Z = Copies networked files in restartable mode.
Regards,
Nika.
nikagl said:
Hi Dave,
I guess for compatibility with UC you've created the current tool, where it uses a file to perform the copy tasks. Would it be possible to create a 100% command line method, like xcopy in Windows?
For instance here's the usage of xcopyce I'd love to see (straight from xcopy /? ):
...snip...
Regards,
Nika.
Click to expand...
Click to collapse
If I ever get enough free time I might do...
Ta
Dave
It's working well!
But, I must disagree with
This is an application idea l3v5y came up with and somehow conned me into writing .
Click to expand...
Click to collapse
I did not "con" you into doing it. You chose to do it.
l3v5y said:
It's working well!
But, I must disagree with
I did not "con" you into doing it. You chose to do it.
Click to expand...
Click to collapse
Lighten up
DaveShaw said:
Just for the record I was not conned, hoodwinked, tricked or in any way forced against my will by l3v5y to create this program.
Click to expand...
Click to collapse
Hows that suit you ?
Only kidding, I'll expand the word conned into convinced.
Ta
Dave
Thanks a lot. It's a great tool. I'll try to use it with my batterystatus theme.
Error in parser ?
Hi,
first of all, thanks for this apps !
I've found an error : I'm using this line :
"\Carte de Stockage\@Backup\Apps\Application Data" "\Application Data"
and it doesn't work as it must do. I looked at the log file, and found that it try :
source: \Carte de Stockage\@Backup\Apps\Application Data ---- ok
dest: \Application
attribs: Data
so even with double quotes, the parser find a space, and so choose last chars (in my case the end of path) as attribs.
I made a few tests, always bad :
"\Carte de Stockage\@Backup\Apps\Application Data" "\Application Data" r ---> attribs are Data "r
without quotes
...
Can you fix it please?
Thanks
TheBeO said:
Hi,
first of all, thanks for this apps !
I've found an error : I'm using this line :
"\Carte de Stockage\@Backup\Apps\Application Data" "\Application Data"
and it doesn't work as it must do. I looked at the log file, and found that it try :
source: \Carte de Stockage\@Backup\Apps\Application Data ---- ok
dest: \Application
attribs: Data
so even with double quotes, the parser find a space, and so choose last chars (in my case the end of path) as attribs.
I made a few tests, always bad :
"\Carte de Stockage\@Backup\Apps\Application Data" "\Application Data" r ---> attribs are Data "r
without quotes
...
Can you fix it please?
Thanks
Click to expand...
Click to collapse
Doh!
I'll make a fix by then end of play tomorrow, providing I can re-create this first time.
Dave
Woah I really envy you all programmers I dun understand at all what you all are talking about but it seems nice for people who understand it
0v04 is up:
Change Log
0v04
- Bug fix: Line parser algorithm should handle work in all cases. (#10)
Yessss
DaveShaw said:
0v04 is up:
Change Log
0v04
- Bug fix: Line parser algorithm should handle work in all cases. (#10)
Click to expand...
Click to collapse
Yes thank you DaveShaw, it works fine now ;-)
And thanks for your speed!
Wow... I like it. I just tried it with my Diamond and it works great on entire folders. My question is:
I have a folder of ringtones on my storage card. I want to copy those to the \windows\rings folder, but it didn't seem to do it. It didn't overwrite any files in a folder that already existed.
I also want to copy the PIM.VOL from my backup to the root of the device. It also didn't work. Any suggestions?
EDIT: it's my turn to go DOH!
I think I found my error. I read the log and found I had mistyped the path. I also read back through the posts and found it can't do just a single file, only a directory. That's why the PIM.VOL file didn't get copied.
JohnBecker said:
Wow... I like it. I just tried it with my Diamond and it works great on entire folders. My question is:
I have a folder of ringtones on my storage card. I want to copy those to the \windows\rings folder, but it didn't seem to do it. It didn't overwrite any files in a folder that already existed.
I also want to copy the PIM.VOL from my backup to the root of the device. It also didn't work. Any suggestions?
EDIT: it's my turn to go DOH!
I think I found my error. I read the log and found I had mistyped the path. I also read back through the posts and found it can't do just a single file, only a directory. That's why the PIM.VOL file didn't get copied.
Click to expand...
Click to collapse
Yeah for single file's just use UC.
And for the \Rings, if it's cooked into the ROM you might not be able to overwrite the file. Nothng I can do about that
Ta
Dave
sorry guys but i dont really get this lil app much. theres not much to it and no info about how to use it? no real examples and explanations to what it does or how.
So could somebody break it down?
m00moo said:
sorry guys but i dont really get this lil app much. theres not much to it and no info about how to use it? no real examples and explanations to what it does or how.
So could somebody break it down?
Click to expand...
Click to collapse
I wrote it because when you are using Slueth's UC you can only copy files using the CPY1 and CPY2 commands.
This application allows you to copy folders as part of the UC process.
To use...
You create a config file on your card, with the source and destination folders (and any attributes you want) - See post #1.
Then you just execute the xcopyce exe in your UC SDConfig.txt file. (You must copy it to a location on your phone becase the UC EXEC: command cannot cope with spaces ) - The line to add to SDConfig.txt is in Post #1.
Ta
Dave
sorry i think i understand now.
just that upon first inspection of the atributes they seemed to be clumped up and i believed that was the whole code.
thanks for the cool handy app!
m00moo said:
sorry i think i understand now.
just that upon first inspection of the atributes they seemed to be clumped up and i believed that was the whole code.
thanks for the cool handy app!
Click to expand...
Click to collapse
I've updated the sample code to colour the comments green, to help with the reading a little
Dave

Issue - Files over-written when creating a ROM

When I'm cooking multiple applications in to my ROM, I have an issue where different applications have the same file name and over-write each other.
For instance,
when cooking in G-Alarm and Opera Mobile they both have image files called something like "nextbutton.png."
So it seems that one of them over writes the image file of the other, which results in one using the image file of the other.
Is there an easy way to fix this?
found the answer!
http://forum.xda-developers.com/showthread.php?t=530710
I don't know if anyone finds this interesting.. But if you are cooking in a lot of EXT packages, chances are you're going to over write several files with common names.. (they all get put in the \Windows\ directory..).
Heres a simple little solution:
(make a batch file and paste this in it)
::for /f "tokens=*" %%a in ('dir /b /a-d') do rename "%%a" "ab0_%%a"
for %%a in (*) do rename "%%a" "ab0_%%a"
Click to expand...
Click to collapse
Paste this in the files directory of your EXT package. It will add a prefix to your files.
Then simply edit the app.dat file in your EXT package with any text editor that has "search and replace" and search for "\Windows\" and replace with "\Windows\ab0_" where ab0 - is the prefix you added to your files.
You'll need to manually edit any lines where \Windows\ was in the destination path, and not the source path. Generally these are a couple lines at the end of your app.dat file.
Hope this helps someone else!

[Q] about cooking gameloft games to hd2

Default Trouble Cooking
I am trying to add Gameloft games that I have bought to my os kitchen. I am having trouble getting NBA 2010, Midnight bowling 2, and Avalanche Snowboarding to launch. I have all of the file in the correct places and they all show in in the rom after it has finished cooking but they dont launch either from the start menu or the programs files folder. I am hoping that if some could help me figure this out, and in the process help others who could have the same problem.
i used CABTOEXT And Package to ext the edited the appdata with xml maker. then i tried with out editing the appdata and nothing. i will be willing to compansate for the fix
I think it's better to make EXT's from scratch instead of using a cab-2-package creator. There may be registry keys added by a setup.dll that you miss, or that are added after launching the app or a soft reset. Here's how I do it (you need sk tracker):
Do a scan with sk tracker.
Install the cab.
Scan again.
Launch the program, enter any codes or settings.
Scan again.
Now, do comparisons of the scans, and find all the new files and registry keys. Export the reg keys to an app.reg file. You can generally ignore the HKLM\Software\Apps and appinstall keys-these are just keys that allow the device to uninstall the cab. Occasionally, the install directory key is needed, but usually not. Definitely leave out the files in \windows\appmgr, that's just un-install info.
Next, don't bother with getting the program loaded into its own folder in \program files. That's usually a waste, because most apps work straight out of \windows. Exe's search for resources first in their own folder and then in \windows most of the time, so if you put the .exe and everything else in windows, you're good to go. If there are sub-folders, then the sub-folders need to be loaded into \windows\ as a sub-folder (I personally use zip files/mortscripts to do it, but a cab will work as will initflashfiles.dat). You have to be careful about settings files, particularly .ini's. They do not like being read-only, and this may be why your game doesn't launch. So, if you have an .ini file, or a settings.txt file, or a game.dat file (or similar), you need to load it into \windows or wherever so it's not read-only. Personally, if I have sub-folders going into windows, I'll create a zip file that sends the .ini, .dat or .txt file into \windows as an archive file, but you can also use initflashfiles.dat to create a copy wherever you want that isn't read-only.
If you change the install directory from program files to windows, then you may need to look into the .reg keys and change some paths. Also, you'll need to change any shortcut paths to \windows\game.exe. Putting things directly in windows saves memory, and you can also convert files to modules to take advantage of the increase VM slots with native 6.5 kernels. It all comes down to experimentation, though.
Thanks for the info, but all of the reg entrys were either in the hklm\security\appsinstall or the hklm\software\apps, andi i entered them and still nothing. I have never worked with mortscript, I did look for a tutorial but couldn't understand all of what they were saying is there a video tutorial, or another soultion?
Did you check to see if any settings-type files are read-only? That will kill a game for sure, and they usually save user data in files (not the registry).
I appericeate your willingness to help a noob, and thank you. how do I check to see if they are read only, how do I make shure that they are what they need to be during the cooking process?
all of the files for one of the games are as follows
Avalanche Snowboarding.exe
data.bar------------------this one Program Files\Gameloft\Game name
GetRealDPI.exe------------------this one Program Files\Gameloft\Game name
icon_45x45.png------------------this one Program Files\Gameloft\Game name
icon_60x60.png------------------this one Program Files\Gameloft\Game name
icon_90x90.png------------------this one Program Files\Gameloft\Game name
Installer.dll------------------this one Program Files\Gameloft\Game name
STPA001.DLL---------------------------this one is in windows\ appmgr
60DE.tmp---------------------------this one is in windows\ appmgr
Avalanche Snowboarding.lnk------------------this one Windows\start menu\ programs\Games
the structure of each game is very simalier, except for midnight bowling 2 which has no icon.png in the gameloft file after install.
Which one look s like the suspect for tha data file\needs not to be read only?
do the games work when you install them as a cab? after you cook your rom and you say they wont launch, have you tried installing them as cabs and see if that fixes it? if so you know its a problem with your pkg and not something else in your rom. basically what farmer ted is saying is that you can make your own package by installing the cab and then exporting all the installed files/reg and putting them in your kitchen with app.dat to put them in the right places i think this is your best bet.
Data.bar is probably the game store; just check the file properties with total commander. If it's read-only, then uncheck it.
Get rid of the two appmgr files; those are just uninstall junk, and you don't need to cook them in. You only need one of the 3 icons in all likelihood. They're start menu icons, right? Just use the one that is in the startinfo/icon reg key, and leave out the other two. I kind of doubt you need installer.dll or the getrealdpi.exe as well. It seems like those just run the install. Speaking of which, this is probably where you're screwing up. Did you just dump this stuff from the .cab with a package creator? It seems like you have files for a partially installed app. Probably, the cab installs the 'getrealdpi.exe', and that process runs and figures out your device resolution, then the installer.dll decides what files to install or maybe sets reg keys for the proper resolution. I'm not sure that you have everything you need in your package. I suspect this is the source of your problem, more so than having a settings file marked as 'read-only.'
Edit: cough, cough, I know a little more about the game now (not saying how). Data.bar is a resource file (a big one). You need it, obviously. The settings files are .sav files (2 of them, as far as I can see). They're created after you launch the game. The only two files you really need are the avalanche snowboarding.exe and the data.bar file. Do this: stick them in an EXT, and don't use an app.reg file. Just send them to \windows. Send the shortcut to the games folder, but you'll need one with the proper path. You can make the shortcut by putting the following in a .txt file and changing the extension to .lnk.
Code:
1#"\Windows\Avalanche Snowboarding.exe"
Name it whatever you want.
Long story short: put the two files in a package. Screw the icon.png, they're a huge frickin waste, imo. Then use an app.reg to send the shortcut (also in the package) to the games folder. If you want to back up user data, save the .sav files and copy them into \windows after flashing. It should work.
Farmer Ted said:
Data.bar is probably the game store; just check the file properties with total commander. If it's read-only, then uncheck it.
Get rid of the two appmgr files; those are just uninstall junk, and you don't need to cook them in. You only need one of the 3 icons in all likelihood. They're start menu icons, right? Just use the one that is in the startinfo/icon reg key, and leave out the other two. I kind of doubt you need installer.dll or the getrealdpi.exe as well. It seems like those just run the install. Speaking of which, this is probably where you're screwing up. Did you just dump this stuff from the .cab with a package creator? It seems like you have files for a partially installed app. Probably, the cab installs the 'getrealdpi.exe', and that process runs and figures out your device resolution, then the installer.dll decides what files to install or maybe sets reg keys for the proper resolution. I'm not sure that you have everything you need in your package. I suspect this is the source of your problem, more so than having a settings file marked as 'read-only.'
Edit: cough, cough, I know a little more about the game now (not saying how). Data.bar is a resource file (a big one). You need it, obviously. The settings files are .sav files (2 of them, as far as I can see). They're created after you launch the game. The only two files you really need are the avalanche snowboarding.exe and the data.bar file. Do this: stick them in an EXT, and don't use an app.reg file. Just send them to \windows. Send the shortcut to the games folder, but you'll need one with the proper path. You can make the shortcut by putting the following in a .txt file and changing the extension to .lnk.
Code:
1#"\Windows\Avalanche Snowboarding.exe"
Name it whatever you want.
Long story short: put the two files in a package. Screw the icon.png, they're a huge frickin waste, imo. Then use an app.reg to send the shortcut (also in the package) to the games folder. If you want to back up user data, save the .sav files and copy them into \windows after flashing. It should work.
Click to expand...
Click to collapse
I am Trying now.
twopumpchump said:
do the games work when you install them as a cab? after you cook your rom and you say they wont launch, have you tried installing them as cabs and see if that fixes it? if so you know its a problem with your pkg and not something else in your rom. basically what farmer ted is saying is that you can make your own package by installing the cab and then exporting all the installed files/reg and putting them in your kitchen with app.dat to put them in the right places i think this is your best bet.
Click to expand...
Click to collapse
yes the cabs work after i cook, the problem seems to be in the package.
JMM2009 said:
I am Trying now.
Click to expand...
Click to collapse
No Dice, any other suggestions?
Have you tried just clicking on the .exe instead of the shortcut? This should be working.
Edit: ok, I was getting tricked. This game only works when the .bar file is in \program files\Gameloft\Avalanche Snowboarding. Make sure you have the folders named correctly-when I changed it to game loft, the game wouldn't launch. The .exe can be in \windows. I guess the search path for the .bar file is hard-coded to the one folder.
I put them in the Program Files\Gameloft\Game Name and I got one working, Brain Challenge 3. But of the four games I am trying to install I have only been able to get one working at best during any time I have been cooking, could it be possible that the app.dat file that I have for the file path is overwriting the data.bar. This is what I have in each app.dat file
Directory("\Program Files\"):-Directory("Gameloft")
Directory("\Program Files\Gameloft\"):-Directory("Avalanche Snowboarding")
Directory("\Program Files\Gameloft\Avalanche Snowboarding"):-File("Avalanche Snowboarding.exe","\Windows\Avalanche Snowboarding.exe")
Directory("\Program Files\Gameloft\Avalanche Snowboarding"):-File("data.bar","\Windows\data.bar")
Directory("\Windows\Start Menu\Programs\Games"):-File("Avalanche Snowboarding.lnk","\Windows\Avalanche Snowboarding.lnk")
could the fact that I am creating a new gameloft folder with each game be screwing me up?
D'oh, that's definitely it! You need to work around that. Name them data1.bar, data2.bar..., then have the app.dat files rename them to data.bar when it copies them. Lol, glad it's figured out.
Edit: here's a dummy package that I would try out if I were you. It has mortscript included and all the necessary reg keys. What you need to do is to add your .exe's to the \Files folder, then add the data.bar files to the game folders inside the zip file. Basically, create a zip file with this structure: \Program Files\Gameloft\individual game folders\ and put the data.bar files in each corresponding game folder. Make sure the names are correct on the folders. Zip it up, and make sure the paths are correct, just like the way I have it, although I don't know the game names.
Then, look in the UnzipGameloft.mscr file with a text editor. Edit the .exe names in each of the 'createshortcut' commands to the name of the exe (exactly). You can call the .lnks whatever you want. The mortscript will create the shortcuts, so don't bother with putting shortcuts in the folder. Also, the package has a script to back up user data for all of the games. This is only going to work if the .sav files are created in \windows, and not in the stupid program folders (you can write a script to back up the games in that case, but it's more of a pain). During customization, the zip file is unzipped, the shortcuts are created, and the user data is restored.
what do you use to make your pkgs???
OMG i would like to get rid of the windows files with the one in program files...
Does this MSCR pkg can do that you know this is a case of double files in windows and in progranfiles
Edited
Farmer Ted said:
D'oh, that's definitely it! You need to work around that. Name them data1.bar, data2.bar..., then have the app.dat files rename them to data.bar when it copies them. Lol, glad it's figured out.
Edit: here's a dummy package that I would try out if I were you. It has mortscript included and all the necessary reg keys. What you need to do is to add your .exe's to the \Files folder, then add the data.bar files to the game folders inside the zip file. Basically, create a zip file with this structure: \Program Files\Gameloft\individual game folders\ and put the data.bar files in each corresponding game folder. Make sure the names are correct on the folders. Zip it up, and make sure the paths are correct, just like the way I have it, although I don't know the game names.
Then, look in the UnzipGameloft.mscr file with a text editor. Edit the .exe names in each of the 'createshortcut' commands to the name of the exe (exactly). You can call the .lnks whatever you want. The mortscript will create the shortcuts, so don't bother with putting shortcuts in the folder. Also, the package has a script to back up user data for all of the games. This is only going to work if the .sav files are created in \windows, and not in the stupid program folders (you can write a script to back up the games in that case, but it's more of a pain). During customization, the zip file is unzipped, the shortcuts are created, and the user data is restored.
Click to expand...
Click to collapse
Ok Renaming didn't do the trick, so I am trying the mortscript method, have the exe in the first gameloft.zip then I have put the data.bar file in the folders that contain there name, I edited the unzipgameloft file with the creat shortcutlinks. now my question is this the gameloft zip withen the bundled files you sent, does this need to be renamed or can I drop it in my kitchen?
as of right now I am using OS kitchen, I tried cooking them in, which didn't work. then I tried pausing then adding the file, but I thought i remembered reading somewhrer that you need to pause before it reads the dump file however I dont have that ability I can onlt pause before the platform builder runs do I need to use a different kitchen, or should cooking them in or add them before the platform builder work?
Now this is funny
I tried to cook the games in with renaming data1 data2 ect... then I cooked, when the rom loaded I went to program files\gameloft folder and renamed each data.bar back to what it was, and they WORK thats good, now all i need to figure out is how to get each of those files to be renamed during the cooking processes or during the start up customazation. am I correct in thinking this, is it possiable?
JMM2009 said:
I tried to cook the games in with renaming data1 data2 ect... then I cooked, when the rom loaded I went to program files\gameloft folder and renamed each data.bar back to what it was, and they WORK thats good, now all i need to figure out is how to get each of those files to be renamed during the cooking processes or during the start up customazation. am I correct in thinking this, is it possiable?
Click to expand...
Click to collapse
You can edit app.dat and change the destination file name to do that.
Directory("DESTINATIONFOLDER"):-File("DESTINATIONFILENAME","\Windows\SOURCEFILENAME")
airxtreme said:
You can edit app.dat and change the destination file name to do that.
Directory("DESTINATIONFOLDER"):-File("DESTINATIONFILENAME","\Windows\SOURCEFILENAME")
Click to expand...
Click to collapse
It didn't rename it, it did however allow windows to overwrite the other data.bar files so it looks like it will have to be done during the customization
JMM2009 said:
It didn't rename it, it did however allow windows to overwrite the other data.bar files so it looks like it will have to be done during the customization
Click to expand...
Click to collapse
I suggest you to leave the cab as it is and add it in the config.txt file for Autorun (with an add2config.txt file): using cab2ext when the application has to stay in program files can make the first boot a little quicker but it's going to waste more imgfs space because the files are not compressed (also with CABs you can uninstall the game in case you need). If you still want to cook it in as an expanded package you just have to use the kitchen package converter, rename all the package files adding an identifier in front of it like "gamename_" different for each game and edit the initflashfile changing the source file name with the one with the prefix. That should do it.
airxtreme said:
I suggest you to leave the cab as it is and add it in the config.txt file for Autorun (with an add2config.txt file): using cab2ext when the application has to stay in program files can make the first boot a little quicker but it's going to waste more imgfs space because the files are not compressed (also with CABs you can uninstall the game in case you need). If you still want to cook it in as an expanded package you just have to use the kitchen package converter, rename all the package files adding an identifier in front of it like "gamename_" different for each game and edit the initflashfile changing the source file name with the one with the prefix. That should do it.
Click to expand...
Click to collapse
What kitchen package convertor do you reccomned?

Categories

Resources