Related
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 , 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
[WM Kitchen] OsKitchen Zero v1.33.5: The Easiest & Most Complete Kitchen (20/10/2010)
Index of this thread
(This Page) General Informations, Download links, Screenshots
Using OsKitchen Zero (Tutorial)
Moving from Ervius Visual Kitchen to osKitchen
Frequently Asked Questions
Useful Resources (Links where to find the latest Windows Mobile Builds and EXT packages)
Description
What does this kitchen do that others don't? You should ask yourself what the other kitchens do that this one doesn't because it literally does everything: importing the ROM directly from the EXE updater, detecting all the informations to rebuild the ROMs from the ROM file itself (no more messy BAT/CMD to edit to get things working), sorting the packages with the best EXT packages conversion engine available (no more EXT packages with weird names or out of place), building ROMs for different languages in the same pass picking all the correct windows mobile packages (EA/NonEA/AH/CS/Transcriber/Uniscribe/Fonts) to use, directly installing packages on the devices without having to flash each time (package installer), automatically recmodding of packages (without touching any of the original files) to allow cooking windows mobile 6.5 ROMs using older kernels, automatic manila CFC compression to save space and improve speed (and supporting latest manila builds where CFCGui has issues) and much, much more while keeping all the user interface well organized and being extremely easy to use. Start the kitchen, import a stock ROM and go! Give it a try and find out yourself how it lives up the hype or if still unconvinced scroll down to see how much simple yet complete the kitchen is by looking at the screenshots.
Features
The kitchen has the most streamlined and self-explanatory UI you can find, it can natively import and rebuild ROMs for all the devices in the supported list without having to mess with any batch/cmd files, it shows detailed informations about every Windows Mobile package and warn about conflicts and unmet dependencies, it can build multilanguage ROMs in the same pass by automatically choosing all the right localization packages required for each language, it can import windows mobile builds of any kind, convert OEM packages/CABS/HTC Hotfixes directly to EXT packages, can automatically recmod/UPX and natively compress/patch manila manila files with CFC, it automatically detects older kernels and suggests all the right packages to recmod to get the ROM working, it checks the ROM integrity while building to avoid many common user mistakes, has a lot of tweaks directly selectable with just a click from the kitchen interface, it has the most advanced search system available and much more.
Supported devices
HTC: Artemis, Athena, Blackstone, Diamond, Elf, Gene, HD Mini, Herald, Hermes, Iolite, Jade, Kaiser, Leo, Mega, Nike, Opal, Polaris, Pharos, Quartz, Raphael, Rhodium, Sedna, Titan, Topaz, Trinity, Vogue, Whitestone (CDMA variants of all phones are supported as well)
Palm: Treo Pro
Sony-Ericsson: Xperia X1 (HTC Kovsky)
Samsung: i900/i910 (Omnia) (delete the giisr.dll in the OEMXIPKernel folder or the ROM won't boot)
Asus: P565 (XDA Zest) (even thought not officially on the list the kitchen can import the NB0 ROM extracted from the ABI file with p835abisplit2)
Other devices, with caveats: as long as you have tools to convert between NB and your phone format the kitchen should work fine unless platformrebuilder doesn't support your device (I.E. it crashes). If platformrebuilder DOES NOT support your device you can still put a dummy NK.exe from another device to stop platformrebuilder from crashing (be sure the NK version (6.1/6.5) is the same) and insert your own crafted XIP.bin (there's a setting in Advanced Tweaks to use a custom xip file).
Download link
(First time using osKitchen? Read the brief tutorial in the 2nd post)
v1.33.5 All in one package:
http://forum.xda-developers.com/attachment.php?attachmentid=423263&stc=1&d=1287585346
DISCLAIMER: This software is provided "as is" and I don't take any responsibility for any damage caused to phones or anything else. I added all sorts of integrity checks I could think of to prevent the generation of invalid ROM files and so far none of the thousands of users who downloaded the kitchen reported invalid ROM files but just like when flashing any cooked ROM don't forget that there is always the risk that the phone may end up bricked (due to defective usb controllers, defective cables, defective phone memory, wrong radio file, software interfering with the flashing tools, power outages, etc).
System requirements
Microsoft .NET 2.0 (.NET 3.0 and 3.5 are 2.0 based so those work as well), already preinstalled on most computers, the kitchen won't start without it so it's easy to find out if it's missing
The following three system requirements also are preinstalled on most computers; the kitchen will warn you if they are needed so don't worry installing them unless required:
Microsoft Visual Studio 2008 runtime, required by xidump during the importing process
Visual Studio 2003 (7.1) Runtime Libraries, required by platformrebuilder to solve the "cereg400.dll cannot be loaded" error message, required by XIDump to solve the "Failed to init decompression!" error message and required by IMGFSFromDump to solve the "Unable to load compression DLL!" error message. Copy those libraries in the Resources\Tools folder and if that still doesn't work in the system32 subfolder of your windows folder (the right subfolder for 64bit systems is syswow64)
XmlLite Update Package required to solve the "Unable to load LibNB.dll" errors (only for Windows XP SP2)
Changelog from v1.33.4 to v1.33.5
Fixed os.nb file deletion issue for devices with no sectorinfo
Changelog from v1.33.3 to v1.33.4
Fixed delete shadow order entries not being saved
Implemented internal manifest management to reduce disk overhead during package scanning
Implemented detection of registry values that are found without a preceding registry key specifier
Improved file copy and file deleting speed
Changelog from v1.33 to v1.33.3
Fixed issue with packages with duplicate files causing errors in the package installer
Fixed issues on CAB files with "\." InstallPath attribute
Un-tied Calibration Data and Skip Welcome screen settings
Fixed IMGFS cache not being applied correctly
Fixed issues when installing packages registry files containing multi_sz strings with the package installer
Fixed new packages sorting issue
Changelog from v1.32 to v1.33
Fixed issue when using a drive root directory as temp folder
Fixed a localization manager issue that was causing longer startup times
Fixed some issues in CAB file folder mapping
Fixed the kitchen truncating i780/i900 BIN files
Added error messages when the DPI or MUI settings are missing on the phone
The kitchen now allows importing ROMs even when the language folder is missing (multilanguage Samsung ROMs)
Added a warning when the initflashfiles/app.dat files are not Unicode
The kitchen now reads app.dat as ASCII when Unicode characters are not detected
Fixed issue in which the initflashfiles.dat file was left locked for a few seconds during the import process prompting a retry/cancel file operation
Added detection and parsing of DPI_ EXT subpackages
Changelog from v1.31 to v1.32
Implemented total integrity check that checks all the structure of packages, modules and every single line of initflashfiles/registry files for issues. All the issues within the package will be shown next to the package name in the packages list.
Added support for variables in initflashfiles.dat, app.dat to make localization easier (because the variables will be replaced with the correct localized folder when the ROM is built). The list of supported variables can be found in the FAQ of the official osKitchen thread.
Added “RAM Drive Mode” setting to have additional cleanups performed during the build process to reduce the space usage of the temporary folder
Fixed crash when trying to open a search result file that has a defective associated application
Implemented total integrity system: every package, DSM, module and initflashfiles file will be validated for integrity and all the problems detected will be shown with an error/warning icon on the left of the package
When importing a ROM the initflashfile values are saved with the converted hexadecimal values like the generated app.dat files
When importing a ROM the progress bar will now warn of temporary folder cleanup even when the import has failed
Removed the unnecessary PackagePath attribute from the project files
Fixed the kitchen crashing when the resources folder was missing or the command line parameters were wrong
Renamed universal package converter to universal package importer
Fixed LCID validation not checking the LCID length correctly
Fixed the pagepool size patching message reporting unlimited instead of the real size
In-line comments are now maintained when the initflashfiles is split during the ROM import
When importing a ROM the initflashfiles lines that are not valid will now be commented out
Removed the %LCID% variable as alternative to %ROM_LCID% in the ROM filename
The ROM filename variables replacement is now case-insensitive and the value of the variables has any non-filename friendly characters removed
Remove Uniscribe/Transcriber mutual exclusion warning
Improved error handling during the NBH generation process
Fixed error message during build when packages contain more than one RGU file
Fixed some registry entries being unrecognized when tabs were used for spacing
Fixed the recmod messagebox appearing twice when the device is selected and no is chosen as answer
Fixed the windows mobile build importer not deleting the imageinfo.txt files in modules
Implemented a rudimentary “Install Package on device” function that allows installing a package on the device to avoid having to flash the phone for every changed file. Currently only sends the main package (no LCID/res subpackages), doesn’t apply registry entries and applies initflashfiles entries with no variables replacement.
Fixed the kitchen crashing when the packages contained corrupted DSM files
Fixed WinCENLS_Lang_RTL_0401 detected as having the wrong syntax
Fixed error messages saying that the packages had a wrong syntax on _CS packages
Fixed Danish appearing as “da-dk” and “Portuguese” listed as “Portugese”
Fixed the locale listview showing the LCID in the country code column
Now the locale combobox shows the locale name and country instead of just the LCID
Implemented automatic Unicode detection in initflashfiles.dat files
Fixed the file copy operations continuing even after the non-resumable error message
Fixed package validation not working in the universal package importer/windows mobile build importer
Added an “Expand all” context menu entry for search results
Added warning when wince.nls ends up in both XIP and IMGFS partitions
The packages issues are now listed by subpackage
The “Install Package on Device” function now also includes the subpackages, the settings to compile the packages are extracted from the phone itself and all registry values except multistring/binary are added
Removed missing DSM warnings
Implemented binary entries support in the “Install Package on Device” function and fixed temporary folder issues
Fixed duplicate DSM creation in package properties and reduced the wait before the packageproperties form is shown
Fixed error message when loading old kitchen project files
Added support for REG_NONE registry keys
The kitchen GUI is now shown before the project files or imported ROM informations are automatically loaded
Fixed the new DSMs file for SYS/OEM packages being saved with a Guid different from the registry key one
Added support for REG_MULTI_SZ on “Install package on device”
Fixed the kitchen leaving old combo box values when loading projects referencing non-existing devices, profiles or windows mobile builds
Search now removes unnecessary wildcard characters from the search string when wildcard mode is enabled to improve search speed
Renamed “Empty project” to “New project”
Fixed crashes in “Install package to device” with some SYS/OEM packages
Implemented integrity check support for boot_ms.rgu and boot.rgu files
Removed TGTool from the kitchen archive
Disabled F5 refresh during ROM generation
Implemented path variables support in the “Install package on device” function (note: the WM build on the phone must be present in the kitchen and have the build number as folder name for the localization to work)
Fixed issue with "Install package on device" function and short filenames and multiple initflashfiles files
Halved the time required for project loading and packages list refreshing
Implemented IMGFS support for unicode characters
Implemented CE variables support in “Install package to device” function
Added HTC Oboe to the devices list
The sort column order is now reapplied after loading a project instead of defaulting to sorting by name
Fixes some issues with empty DSM files
Fixed crash when using unicode package names
Added check to prevent boot.rgu and boot_ms.rgu from being present in non-XIPKernel packages
Fixed the locales combo box not being refreshed after a new ROM has been imported
Fixed issue in which the kitchen would save a DSM file with random name instead of overwriting the correct DSM file if the source DSM file was corrupted
Implemented case insensitive manila.exe/mode9 CFC patch
Completed translation entries list for ROM importer
Added tools error handling in UPX/Recmod/PNG Compression/xidump/nbimagetool/TGTool/o2Util/ImgfsFromDump/OsNbTool/Platformrebuilder
Fixed erroneous error handling in imgfsfromdump that was causing file copy error messages if the tool failed
Fixed reduced OS file generation ignoring imgfsfromdump error messages
Fixed TSW/MST management not checking that the output file was correctly created
Fixed the kitchen ignoring missing custom user tools error messages and continuing the build process
Initflashfiles parsing now parses files as UTF8 when the UTF16 BOM header is not detected
The registry file validation now checks if the REGEDIT4 header is present
Fixed the locales selection combobox not detecting new language changes during refresh
Fixed “Install to device” function copying square resolution packages for some resolutions
Fixed LCID EXT packages lacking the RGU file not being moved into the correct main package folder
Fixed registry validation generating errors about dwords where values have initial spacing/tabulation
Added translation entries for the module validation messages
The kitchen now reads partitions informations from the OS.NB file and calls osnbtool with the proper partition numbers (to support older ROMs without ULDR)
The kitchen can now extract BIN files from more updaters (Samsung i780 and others)
Added translation entries for OS.NB generation error management
Added translation entries for the registry validation error messages
Improved error messages (added categories) on the error tooltips
Added translation entries for the package validation error messages
Added translation entries for the initflashfiles validation error messages
Added translation entries for the manifest validation error messages
Added initflashfiles variables for Application Data (%CE19%) and Program Files\Games (%CE8%)
The initflashfiles entries of imported CAB files are now mapped to the correct initflashfiles variables
How to use
Once unpacked the kitchen is ready for use, as soon as you start it you will be asked to import data from a stock ROM.
Screenshots
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Tree Structure
The new kitchen structure is very simple however it requires a ROM to be imported for device configuration files to be generated. Always import a ROM for your device and start working on it.
Output - Where generated roms are saved
Projects - Where the project files are saved
Resources - Tools and other internal kitchen files, shouldn't be touched!
Sources - Contains all the files of your Windows Mobile builds and Devices
Devices
#DEVICE NAME# (You can use the name "Common" to share packages between multiple devices)
EXT Packages - All the EXT packages must go here
OEM Packages - All the OEM packages must go here
Profiles
#Device Profile Name# - Contains the "Device Informations.XML" file and all the various packages required for building the ROM
NBH Structure - Contains files required by the kitchen to rebuild the NBH correctly
OEMXIPKernel - The OEMXIPKernel with all the device drivers and native kernel must go here
NB Structure - Contains files required by the kitchen to rebuild the Os.NB correctly
ROM Parts - .ROM, .VM, imgfs-template.bin, romhdr.bin and other files needed for relocation and XIP/IMGS generation must go here
Windows Mobile Builds
#Windows Mobile Build Number#
All - The language-neutral DPI and Resolution files must go here
Common - All the language-neutral Main Packages must go here
#LCID FOLDER# - All the localized packages must go in the appropriate LCID folder
Additional files
Visual Studio 2003 (7.1) Runtime Libraries, needed to solve the cereg400.dll cannot be loaded issue: http://www.mediafire.com/?mjmmgtwmion
ImplantXIP and ImgfsToNB tools, needed for the alternative building method: http://forum.xda-developers.com/attachment.php?attachmentid=374999&stc=1&d=1281153923
Using OsKitchen Zero
What you need to know first
The first thing you need to know is that Windows Mobile is not like a desktop operating system: you can't take a ROM from another phone and flash it on a different phone model because Windows Mobile relies on an extremely specific kernel and drivers that are compiled by the manufacturer for each device model. The Windows Mobile ROM contains only the Windows folder - yes, that's right, the ROM is just the plain Windows folder with NO subfolders - while every other folder (Windows\Start Menu, Program Files, My Documents and also Start Menu links etc.) is generated when the ROM boots the first time.
Every official Windows Mobile ROM is composed of packages. Microsoft and device makers create those packages to split windows mobile and the additional software into separated components. The real "Windows Mobile" code, interchangeable between phones, is stored in packages commonly called SYS packages, while everything the manufacturer added (the drivers and the additional applications for customization) are called the OEM packages. The EXT packages are "fake" packages that the kitchen uses to overcome the limitations of standard packages (for example EXT packages are often used to build multilanguage packages without having to create a single additional package for each language).
The Windows Mobile package structure is very simple. SYS and OEM packages are identical in structure and can only contain:
A DSM file (a file that contains some package informations, for example what other packages it require or what files it contains, most kitchens usually ignore this)
A RGU file (a registry file containing the registry entries associated with the packages)
Other files or modules that compose the package: the modules are folders that usually have file-like names (meaning they have an extension) and are a different way to store executable and DLL files on the ROM.
Note: A SYS/OEM package cannot have any subdirectory with the exception of modules directories.
EXT packages - that as already said are "fake" packages that are converted to the Windows Mobile package format by the kitchen - have a different layout: everything goes into a "files" folder except the registry files (app.reg), dsm files, initflashfiles entry files (.dat) and there can be subfolders with a LCID (language-ID) code as name (a LCID is a string composed of four HEXadecimal numbers identifying a language, e.g. 0409 for US English, 040C for Spanish, etc.) to store language-specific files in the same structure (.dsm and .reg in another "files" subfolder, like for the main folder).
EXT packages are the main way custom packages or packages from other devices are distributed on websites and forums. Recent HTC ROMs contains additional informations that allow kitchens to automatically convert OEM packages to the more user-friendly EXT packages: this allows to quickly remove applications just by disabling the package; other ROMs instead have everything stored in a single package (usually OEMMisc) and require more work to remove original applications.
The only important thing you still need to know is how the rest of the filesystem structure (Program Files, My Documents, Start Menu, etc.) is created during the first boot. All the system folders are generated and populated during the first boot because, as wrote before, the ROM contains only the Windows folder. Windows Mobile has two facilities for the first-boot (hard-reset) initialization: INITFLASHFILES.DAT, a text file that is usually in the OEM_Lang folder and that only allows creating folders and copying files (Documents folders, default pictures, and most start menu entries are usually added this way) and .PROVXML files that are some XML files that can do other advanced operations (like setting registry keys, certificates, phone settings).
Usually anything you can perform with PROVXML files, that unfortunately are difficult to edit and require a large knowledge of the format, can also be easily performed using initflashfiles and registry files. You can use the app.dat and app.reg files inside EXT packages (or initflashfiles.txt and RGU files in OEM packages) to add entries to both the initflashfiles file and to the registry: the kitchen will use them properly during the building process adding the app.dat entries to initflashfiles.txt and the reg entries to the final registry (the ROM boots with a precompiled registry HV file but you'll usually never have to mess with that when using a kitchen).
Manufacturers also use some advanced proprietary post-install tools to install custom cabs, apply themes and operator configurations (e.g. AutoRun, RunCC). Those rely on TXT configuration (*config.txt) files and can cause trouble (error messages about missing files during the first boot) when removing packages or files from packages that those config file point to if you don't update them.
When you want to upgrade a Windows Mobile Build the changes in the start menu are usually so many that it's REALLY recommended to start over with a new fresh initflashfiles.txt for that windows mobile build (you can find one for each language in the Da_G's rollup threads). Since in the official ROMs the start menu entries are all crammed into the initflashfiles.txt file (the app.dat exists only in the "fake" EXT packages) you will have to either take the time to create app.dat files for each package or to copy back all the initflashfiles entries for OEM/EXT applications back after you put the new initflashfiles for the windows mobile build you changed. The kitchen will try to move the config.txt and initflashfiles entries inside the correct packages while the ROM is imported to make SYS upgrades easier.
Now that you know the basics you can proceed to the first step...
Preparing the kitchen (Importing the Device ROM file)
1. Download osKitchen Zero and unpack the ZIP archive
2. Find a ROM update file for your device: the kitchen can import the EXE from all HTC and some Samsung updaters or alternatively the raw ROM file (the main used extensions: .NBH,.BIN and .NB are supported)
3. Open osKitchen Zero and the Import ROM Wizard will open
4. Select the device you want to work on from the drop-down list, you can actually write any device name because the list is just for reference to make sure people understand that the kitchen has been tested only with those devices
5. Select the ROM update file
6. Click NEXT
Building your first ROM to make sure everything works
At this point the main kitchen window will open. Since you imported a ROM all the "Project Settings" options will only have one choice, go on and select the only available choice for all the fields (device model, device profile, windows mobile build, language) and clicking Yes in case the kitchen asks you to automatically apply recommended changes should be enough to build a bootable and working ROM. The only setting that has more than one choice is the Compression setting that if you want to have the most available space to add your programs should be set to "LZX", if you want to use another compression first make sure that your phone will be able to flash a bigger ROM file.
Now you can go ahead and build your first ROM by clicking the "Start building button": the kitchen will work for a while, then tell you that the building process has been completed and ask you if you want to open the Output ROM folder; you can then answer yes, take the ROM file that has been generated and flash it, making sure it's the right format for your phone.
NOTE: don't try importing a ROM made for other phones different than the one you want to flash because the kitchen will rebuild the ROM for the device you imported and not any other. If you flash a ROM made for another device you risk bricking your device.
Once the ROM works (if it's a supported device it should work fine on the first try, if it doesn't please report the issue here so we can help fixing it) you can start working on the ROM. So that's it, you're ready to go. If you read the "What you need to know first" you will probably already have an idea of where to start for whatever change you want to do.
Moving from Ervius Visual Kitchen to osKitchen
Open osKitchen and import the latest ROM for your device
Replace the OEM packages
Locate the folder oskitchen created in your device (it's in the Sources folder) and delete all the packages in the "OEM Packages" folder
Open the OEM folder in the Ervius Kitchen folder, locate the folder of your device and copy&paste all the OEM packages that are inside the Common and the LCID folder (0409 for english, etc.) into a folder with any name you want inside the osKitchen "OEM Packages" folder (where you deleted them). The .VM folder can be ignored.
Replace the EXT packages
Locate the folder oskitchen created in your device (it's in the Sources folder) and delete all the packages in the "EXT Packages" folder
Open the EXT folder in the Ervius Kitchen folder, locate the folder of your device and copy&paste all the folders that are inside the Common (usually empty) and the Windows Mobile Build subfolder (it's a 5-digit number) in the osKitchen "EXT Packages" folder (where you deleted them).
Replace the OEMXIPKernel
Locate the folder oskitchen created in your device (it's in the Sources folder), go in the Profiles subfolder and then in its "default" subfolder, you'll find a folder named OEMXIPKernel, delete it.
Open the ROM folder in the Ervius Kitchen folder, locate the folder of your device, open the Windows Mobile Build subfolder (it's a 5-digit number) and then copy the OEMXIPKernel folder in the osKitchen "Profile\default" subfolder (where you deleted it).
Import the Windows Mobile Build
Locate the oskitchen Sources folder, open the "Windows Mobile Builds" subfolde and delete any folder in there.
Create a new folder with the number of the windows mobile build present in ervius kitchen (5-digit number) and create three subfolders inside: Common, All and a LCID one for each language (0409 for english, etc)
Open the ROM folder in the Ervius Kitchen folder, locate the folder named "Shared", open its Windows Mobile Build subfolder (it's a 5-digit number) and copy the MSXIPKernel folder in the osKitchen Windows Mobile Build "Common" folder you created earlier.
Open the SYS folder in the Ervius Kitchen folder, locate the Windows Mobile Build subfolder (it's a 5-digit number) and proceed as following:
Everything in the "Common" subfolders of the folders that start with DPI_ goes in the "All" folder you created in the osKitchen Windows Mobile Build folder.
Everything in the LCID (0409 for english, etc) subfolders of the folders that start with DPI_ and of the SHARED folder goes in the LCID (0409 for english, etc) folder you created in the osKitchen Windows Mobile Build folder.
Everything in the "Common" subfolder of the "SHARED" folder goes in the "Common" folder you created in the osKitchen Windows Mobile Build folder.
Frequently Asked Questions
How do I share packages between devices?
Create a folder named "Common" inside the "Sources" folder and put your packages (grouped in folders like standard device packages) in the "EXT Packages" and "OEM Packages" folders
Why is the final ROM file bigger or the total and available storage space lower than when using another kitchen?
It shouldn't. The other kitchens probably come with LZX compression selected as default while instead you told osKitchen to use XPR or None compression. You can also save additional space by using the ImplantXIP building method that removes the ULDR and some other wasted space.
How do I speed up the ROM generation process?
The kitchen needs to copy a lot of data and this may be a problem on computers where the hard-drive performance is low (i.e. laptops); antiviruses, firewalls and other applications may also interfere with the process speed therefore it's suggested to keep them off while the building process to save time. The kitchen allows setting another drive as a temporary folder to speed up the ROM generation and you can use a RAM drive (if you have enough RAM) or another hard-drive to improve the process speed.
How do I translate the kitchen?
When you start the kitchen for the first time if a translation file isn't found it will be created in "Resources\Localization" with the name matching your locale code (en-US.lng for american english, fr-FR.lng for french, it-IT.lng for italian, etc.): open that file with a text editor and translate all the text that comes after the "|||" separator (the text on the left of the separator shouldn't be touched, it's used both for reference and to identify the lines by the kitchen). Remember to post on this thread the translated files if you want them included in the official releases.
How do I reduce the space used by "Temporary OS.nb"?
It's suggested not to because the file will be needed in the next kitchen versions with the internal libnb NB dumping engine that will analyze the file, generate a new OS Structure.xml and delete it for good. The kitchen creates its own reduced files and keeps them in the Cache folder: if you really want to reduce the space used by the kitchen you can take the reduced file and replace the Temporary OS.nb with it.
How do I upgrade from an older kitchen version?
Simply delete oskitchen.exe and the Resources folder from your previous kitchen folder and put the new ones included in the archive or just unpack the archive overwriting the files. If you were using a version previous to 1.26 you will have to reimport a ROM and replace the imported packages with old ones (SYS/OEM/EXT/OEMXIPKernel (with nk.exe added inside) and remember to look at how the packages are structured). If you upgrade from 1.30 or below to 1.31 you may have to move your OEM Packages in a group subfolder because now the OEM packages are grouped like the EXT packages.
What are the variables that are supported in app.dat/initflashfiles.dat? (works only with 1.32 and higher)
%SystemDrive% (/)
%MyDocuments% (/My Documents)
%MyDocuments-MyMusic% (/My Documents/My Music)
%MyDocuments-MyPictures% (/My Documents/My Pictures)
%MyDocuments-MyVideos% (/My Documents/My Videos)
%MyDocuments-Templates% (/My Documents/Templates)
%ProgramFiles% (/Program Files)
%Windows% (/Windows)
%Windows-Fonts% (/Windows/Fonts)
%Windows-StartUp% (/Windows/StartUp)
%Windows-StartMenu% (/Windows/Start Menu)
%Windows-StartMenu-Programs% (/Windows/Start Menu/Programs)
%Windows-StartMenu-Programs-Games% (/Windows/Start Menu/Programs/Games)
Useful Resources
Windows Mobile Builds
Da_G All-In-One Windows Mobile 6.5.x Builds (Strongly recommended, contains all languages and all resolutions needed for almost any device)
Latest SYSs and OEMs XDA thread (where all the latest SYS builds are posted)
Common EXT Packages
(if you have suggestions or know where to find newer versions please post them)
Latest Touch Pro 2 EXT Packages (English-only, WVGA only)
Coming soon...
Help wanted!
1. Kitchen translation
Translators for the kitchens are needed! The kitchen is now completely localizable and will generate a translation template in the Resources\Localization folder when it's started up the first time: that file can be easily edited to translate all the text of the kitchen (also include an about entry for credits) and the kitchen will validate it and keep it updated every time it's launched organizing the entries that are missing or not found. If somebody has some spare time to help me translate the kitchen in other languages please attach a translated lng file to a post so I can include it in the kitchen archive.
2. Informations about the WM6.5.X packages required for each language
In order to improve the automatic localized packages selection I need to know which of the following packages:
Code:
BronzeEA BronzeNonEA BronzeAH | CommonEA CommonNonEA | SYSTEM_DEFAULT_FONTS COMPLEXSCRIPT_FONTS | gb18030 | Riched20 Riched20_CS | SipAR | Transcriber UNISCRIBE | Webview Webview_CS
are needed for each of the following languages:
Code:
0402 BRG Bulgarian (Bulgary)
0404 CHT Chinese Traditional
0405 CSY Czech (Ceská republika)
0408 ELL Greek (Ellas)
0411 JPN Japanese
0412 KOR Korean
0415 PLK Polish (Polska)
0419 RUS Russian
041B SVK Slovak" (Slovensko)
041D SVD Swedish (Sverige)
041F TUR Turkish (Türkiye)
0424 SVN Slovenian (Slovenija)
0804 CHS Chinese Simplified
081A SPB Serbian (Latin)
If anybody knows the right packages needed for one (or hopefully more) of those languages please let me know.
nice thread but i think u should post new sys files..... iam not able to cook may be still my format is wrong so i wanted to take reference but its old further links are broken
jagan2 said:
nice thread but i think u should post new sys files..... iam not able to cook may be still my format is wrong so i wanted to take reference but its old further links are broken
Click to expand...
Click to collapse
I uploaded 28223 SYS/XIP files, if you want other builds tell me.
@AirXtreme The kitchen is great and I like it way better than Ervius' VK, but I do have some small questions though. Since the split from the original osKitchen things have been a little vague, this is what I understand of it.
OndraSter developed the kitchens core code and you developed the new gui. Both trees still exist and both trees are 'updated' to RC3, but the version number in the .exe still says RC2.7.
Second, what is the latest version? Would it be possible to include build date and changelog in the first post, so it's easy to follow the updates to the kitchen? I know it's a lot to ask, but it would help a lot.
For the rest, great kitchen!
airxtreme said:
I uploaded 28223 SYS/XIP files, if you want other builds tell me.
Click to expand...
Click to collapse
Upload 23529 and I'll give this kitchen a whirl
Cheers.
KilZone said:
@AirXtreme The kitchen is great and I like it way better than Ervius' VK, but I do have some small questions though. Since the split from the original osKitchen things have been a little vague, this is what I understand of it.
OndraSter developed the kitchens core code and you developed the new gui. Both trees still exist and both trees are 'updated' to RC3, but the version number in the .exe still says RC2.7.
Click to expand...
Click to collapse
It's because my sources are from 2.7 and didn't update the titlebar.
KilZone said:
Second, what is the latest version? Would it be possible to include build date and changelog in the first post, so it's easy to follow the updates to the kitchen? I know it's a lot to ask, but it would help a lot.
Click to expand...
Click to collapse
The last version is the one in the first post, when I'll release other updates I'll update the first post and add a changelog.
dickenz said:
Upload 23529 and I'll give this kitchen a whirl
Cheers.
Click to expand...
Click to collapse
It was already up but with the wrong name (28223), now names are fixed.
Awesome, thank you that clears it I guess. Just forgive my stupidity... Downloading the ... latest ... version now (and updating my current version).
airxtreme said:
The last version is the one in the first post, when I'll release other updates I'll update the first post and add a changelog.
Click to expand...
Click to collapse
@Airxtreme
The version in 1st post supports Iolite?
I didn't see it in supported devices list.
dancer_69 said:
@Airxtreme
The version in 1st post supports Iolite?
I didn't see it in supported devices list.
Click to expand...
Click to collapse
Yes, I think I added its device file.
I'll download now and test, thanks.
EDIT
I just checked and I allready have this version(Os kitchen 1.4 RC2.7)
and I have successfully build an nbh with this version, I just not flash it yet.
So, it's supported.
Okay,
I just download the New ATT Shipped ROM from HTC and I was going to give this kitchen a try.
I extracted the files from the shipped ROM.
When I started the kitchen, it asked me to point to the RUU file. I selected the RUU_signed.nbh that I had just extracted and I get the message "There was no os.nb present i this file! Can't continue"
What am I doing wrong?
rgb-rgb said:
Okay,
I just download the New ATT Shipped ROM from HTC and I was going to give this kitchen a try.
I extracted the files from the shipped ROM.
When I started the kitchen, it asked me to point to the RUU file. I selected the RUU_signed.nbh that I had just extracted and I get the message "There was no os.nb present i this file! Can't continue"
What am I doing wrong?
Click to expand...
Click to collapse
Give me the link to download the rom so I can try to see why no OS.nb is detected.
airxtreme said:
Give me the link to download the rom so I can try to see why no OS.nb is detected.
Click to expand...
Click to collapse
http://www.htc.com/us/support/tilt-2-att/downloads/
Third download on the list. Complete ROM
airxtreme said:
I uploaded 28223 SYS/XIP files, if you want other builds tell me.
Click to expand...
Click to collapse
Thankyou actually i wanted to test the sys xip provided by u coz whenever i try to sort sys and xip myself for oskitchen it crashes platformbuilder.exe so will try the one made for oskitchen.
But plz plz its too big file for me. I request you to upload build 23529 qvga lang 0409 only and specially on mediafire or any uploading site which supports parallel downloads. I will be waiting ....
jagan2 said:
Thankyou actually i wanted to test the sys xip provided by u coz whenever i try to sort sys and xip myself for oskitchen it crashes platformbuilder.exe so will try the one made for oskitchen.
But plz plz its too big file for me. I request you to upload build 23529 qvga lang 0409 only and specially on mediafire or any uploading site which supports parallel downloads. I will be waiting ....
Click to expand...
Click to collapse
http://www.mediafire.com/?zy0ejwmiwmy
Intro
Welcome; I wanted to offer a little "something" back to the XDA community in the hopes that it will benefit others and to show my appreciation to the folks that make XDA the great community that it is.
If you've gotten excited about the idea of cooking your own ROM's, you've probably had to spend several weeks of reading, asking questions, getting acquainted with your facility, and figuring out where you're going to plug your utensils and/or appliances. Now comes the easy part, cooking quality ROM's ... right? It's gotta be simple after that, I mean that was all the hard stuff ... right? Well ...
As any seasoned chef will tell you, the quality of a meal greatly depends on quality ingredients, utensils, and appliances. Ingredients are a personal preference and some chefs can make Macaroni & Cheese taste like the best meal in the world; and how do they accomplish this? In many cases, they use quality utensils and appliances and understand the limitations of them.
Equipping your kitchen with the right tools ensures that you're able to provide quality meals to your patrons - resulting in return visits.
Outro
The goal of this thread is encourage seasoned chefs to share their knowledge of quality tools that they use in their day-to-day activities of ROM cooking.
Some of these tools are free, others have a trial version, and others must be purchased. The goal isn't to promote any one specific tool, it is to provide objective (and hopefully unbiased) reviews of these tools. Lastly, a moderator or senior chef may periodically review and cleanup this thread/post to ensure that it remains on-topic and consistent in format ... so don't take offense; you'll always be credited for your contribution.
Format For Each Post
Take a moment to review existing tool reviews; the goal is to share your experiences in using the tool. The review should contain the following information:
Name of the tool (same as in Title of post)
Version
Author
Link to tool
Cost (Free, Adware, Trialware, Purchase)
Reviewed by [your XDA member name]; in case the post is moved near the top of the thread at a later date.
Summary of what the tool does (uses) and any example you can think of.
Tips on how to use the tool; things you discovered when using the tool.
Potential pitfall (gotcha's) when using the tool; things you discovered when using the tool.
Reference threads (optional); links that might offer some additional usage information.
No attachments please. Post them in the original thread for the tool.
List Of Tools To Review
List Of Tools To Review
Here's a list of tools that I'd like to review and add to this thread. The goal is to review the various tools that chefs will often use while preparing their ROMS; any seasoned chefs (aka volunteers)? If so, post your review in the thread.
CABARC: MS Cabinet SDK in self executing zip
CABtoEXT
CeRegEditor
DSM Assembler Manifest: DSM Editor
EmEditor: advanced string search & editor
HEX Workshop: Intermediate HEX editor
ini2reg : Preformatted ini file for customized Registry extraction
IDA Pro: assembler/disassembler (extremlely advanced)
NBHextract: .NBH Extraction
NBHUtil: .NBH Generation
Notepad2: intermediate multi-editor (lua, xml, cmd, etc.)
Paint.NET: graphics editor
ProvXMLCreator: Autoconfiguration for WiFi, Certificates and email
PE Explorer: resource editor
PHM Registry Editor
PreKitchen Tool: import SYS to kitchen
RECMOD: recode/decode modules
REG2XML: convert .reg and .rgu files to xml
RegLogger: registry logging
ROM Extractor (Link 2)
TrayGUID PC: generate unique GUID to clipboard by clicking it
UAE Debugging Tool (UAEDT = Unrecoverable Application Error Debugging Tool)
WinCE CAB Analyzer (MSCEInf): .CAB extraction
WinCE CAB Manager: .CAB creation
XVI32: basic HEX editor
Resource Builder
Windows Mobile Developer Power Toys
Any others? Feel free to post a request in the thread or send me a PM.
Quick Post Index
Quick Post Index
Sorted alphabetically; at least I hope it is.
CAB/OEM Package Converters
CAB2OEM
CAB to OEM to EXT GUI Suite
Package Creator
Device Side Manifest (.DSM) Editors
BuildDSM
DSM Analyzer
DSM Builder
DSM Dependency Dumper
DSM Editor
Editors
EditPad
SciTE
Syn Text Editor
XML Notepad
Graphics (.BMP, .JPG, .PNG, etc.)
GNU Image Manipulation Program (GIMP)
IcoFX
Kitchen Porting Tools (SYS, OEM, etc.)
Initflashfiles Hex2Text
SYS Porting Tool For Ervius Kitchen
Process, Registry
FDC Task Manager (aka DotFRED)
Registry Workshop
Resource (.DLL, .EXE, etc.)
Dependency Walker
File Editor Suite
PEinfo
Resource Hacker
ROM Squeezer
Search/Comparison/File Managers
Beyond Compare
Compare It
Directory Opus
Senax's Library Of Links
Senax's Library Of Links
There are links to SDK's, developer tools, power toys and more. More links are better than less, so we say in Holland Don't you agree??
Have a nice day folks,
Senax
:UPDATE:
How could I forget to mention;
System Center Mobile Device Manager Resource Kit Tools
That was my left sleeve of links...
Q: Are you going to make it any easier for us?
A: That's a good question! No, (not for the Moderator(s) ) I've no intention of that just yet. First more power links, while thoroughly reviewing stuff, then searching for new links (references) and so on. Then a new review
Have a nice day / night while clicking all them links in ...,
Senax
Here some links to SDK's to inform others and get them reviewed:
Windows Mobile 5.0 SDK for Pocket PC
Windows Mobile 5.0 SDK Documentation
Windows Mobile 6 Documentation
Windows Mobile 6 SDK Refresh
Windows Mobile 6 SDK Documentation
Windows Mobile 6.5 Developer Tool Kit
Windows Mobile 6.5 Documentation
Windows Mobile 6.5.3 DTK
.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
MSXML SDK
Power Toys for .NET Compact Framework 3.5
&
NETCFv35.Messages.EN.wm.cab ; exception messages
Windows CE CAB Installer SDK (though named SDK its more a CDK (Commercial DK), because you've got to pay $5 for it).
Awesome for UC (User Customization).
Microsoft SDKs (every and all SDKs from MS) for;
Azure Services Platform
Windows Desktop
Office
Devices
Windows Live Services
Server Technologies
Social
Games
Web Development
Other
Developer Tools:
Installing Developer Tools on Windows Mobile
Development Tools and Resources for Windows Mobile
Development Resources for WM on xda-developers.com
UPDATED: http://forum.xda-developers.com/showthread.php?t=445396
What Microsoft does not tell is that when they shot themselves in the foot with 'Vista', they were forced to introduce Win7 earlier as planned. Thus VS2008 (read WM) all its links have been moved to > :NULL
Well maybe not, though I've a hard time finding them .. and I do know how to tweak-search. We (the users) are forced into using VS2010 now! It's all 'embedded' now (cq sort of virtual). Ah, well.. it's not that bad
Windows Mobile 6 Localized Emulator Images
http://www.microsoft.com/downloads/...A8-1DD7-426F-A913-4F370A65A582&displaylang=en
Brief Description
This package includes localized Windows Mobile 6 emulator images that can be used with Visual Studio to test applications on different localizations or simply as standalone emulators without Visual Studio 2005!
Microsoft Power Toys:
Windows Mobile Network Analyzer PowerToy (Released with WM5 though usable with WM6)
Windows Mobile Device Security Manager PowerToy(Released with WM5 though usable with WM6)
General (Embedded) WM 6.x CE PowerToys link
Nowadays there 'll be no more Power Toys from Microsoft, instead we get:
Not (all) Windows Mobile specific: Microsoft Solution Accelerators & ~ A-Z technet :Free power(toys);
MSDN Code Galery third party resources
Windows Phone Developer Tools Beta
XML Notepad 2007 References:
Since this nice free editor is on CodePlex it is nice to mention this link;
http://xmlnotepad.codeplex.com/
I also found this link in my BookmarX_Manager; http://msdotnetsupport.blogspot.com/...-tutorial.html (their MORE button is the best TUTORiAL I've seen online about XML Notepad!!)
Hopper
There's a 'new' Hopper (device stress tester included In WM Developer Power Toys) for WM6> (not WP7). Hopper its two versions WM5 WM6; http://forum.xda-developers.com/show...45#post7549645
[PC] works for device too if its cradled.
Q: Is a file signed with a signature?
A: Let us check that using SystemInternals_Suite (click on the left of that page) its CLI SigCheck.exe
SigCheck; Verify that images are digitally signed and dump version information with this simple command-line utility.
ARM
These links are NOT for a review, these are to inform people about ARM processors used in WM and WP:
ARM Classic Processors
ARM Infocenter
ANDROiD SDK
http://developer.android.com/index.html
Phoenix SDK
Phoenix is the code name for a software optimization and analysis framework that is the basis for all future Microsoft compiler technologies. The Phoenix framework is an extensible system that can be adapted to read and write binaries and MSIL assemblies and represent the input files in an IR, which can be analyzed and manipulated by applications by using the Phoenix API. The code can then be written in binary or JITable form for execution.
It enables teaching and collaborative research in code generation, optimization, program analysis, binary transformation, and software correctness. Phoenix is used as a research platform by Microsoft Research and will be the universal compiler backend for upcoming Microsoft languages and development tools.
Phoenix SDK April 2008
How to install Phoenix SDK
Senax's Library of Links ... continued
AT Commander
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
[PC] ATCommander;
http://atcommander.com
The above link does not provide us with much information/links thus I searched some more
and came up with; http://atcommander.com/download/. Same page though not reachable via the first link. Anyway here you can download the latest .zip or .exe.
Note: My anti virus started to whine as soon as I unpacked the zip, though when I ran it in a VMware workstation everything worked smoothly.
Also do not forget to check this link;
http://atcommander.com/public/
Here some AT Commands reference links provided in two pdf files;
http://atcommander.com/download/AT_C...Specification/
[WM5/6] ATCommander;
http://forum.xda-developers.com/showthread.php?t=375395
Senax's Library of Links ... continued
Reserved for future expansion.
Resource Hacker
Name: Resource Hacker
Version: 3.5.2 beta
Author: Angus Johnson
Link: http://angusj.com/resourcehacker
Cost: Free
Reviewed By: Sous-Chef
Summary/Review:
Resource Hacker is a freeware utility to view, modify, rename, add, delete and extract resources in 32bit Windows executables and resource files (*.res). Cursor, Icon, Bitmap, GIF, AVI, and JPG resource images can be viewed and WAV, MIDI audio resources can be played. Menus, Dialogs, MessageTables, StringTables, Accelerators, Delphi Forms, and VersionInfo resources can be viewed as decompiled resource scripts. Menus and Dialogs can also be viewed as they would appear in a running application.
Resources can be saved as image files (*.ico, *.bmp etc), as script files (*.rc), as binary resource files (*.res), or as untyped binary files (*.bin). Resources can be modified by replacing the resource with a resource located in another file (*.ico, *.bmp, *.res). Dialog controls can also be visually moved and/or resized by clicking and dragging the respective dialog controls prior to recompiling with the internal compiler. Additionally, resources can be added to an application by copying them from external resource files (*.res).
Tips:
Always keep a copy of the unaltered file as a backup.
Gotcha's:
Even though it is possible to alter the resources, some applications automatically resize controls and dialogs during operation.
Some applications may cease to function when the resource file is altered.
Reference Links:
http://forum.xda-developers.com/showthread.php?t=511876
http://forum.xda-developers.com/showthread.php?t=562645
http://asukal.seesaa.net/article/6114096.html
Beyond Compare
Name: Beyond Compare
Version: 3.1.10
Author: Scooter Software, Inc.
Link: http://www.scootersoftware.com
Cost: Trialware, Purchase
Reviewed By: aruppenthal, Sous-Chef
Summary/Review:
Beyond Compare allows you to quickly and easily compare your files and folders. By using simple, powerful commands you can focus on the differences you're interested in and ignore those you're not. You can then merge the changes, synchronize your files, and generate reports for your records. You can compare entire drives and folders at high speed, checking just sizes and modified times. Or, thoroughly verify every file with byte-by-byte comparisons.
Once you've found specific files you're interested in, Beyond Compare can intelligently pick the best way to compare and display them. Text files can be viewed and edited with syntax highlighting and comparison rules tweaked specifically for documents, source code, and HTML. Data files, executables, binary data, and images all have dedicated viewers as well, so you always have a clear view of the changes. Beyond Compare is a "must have" tool; it will save hours of time. There is no better way to compare new builds and look for what has changed. When properly configured, it can display file versions which make integration of multiple sets of OEMdrivers a breeze. Swapping SYS files is never easier; you get to see dates of creation and can easily move files from one set to the other with a few clicks.
Here are some examples of how comparison can be used:
Compare one .\SYS folder version (ex: 23541) against an updated .\SYS folder version (ex: 23549) so as to determine what changes have occurred in registry files.
Compare one version of a ROM package (ex: Manila_2.1) against a newer version of the package (ex: Manila_2.1.1).
Compare a device ROM (ex: Mega_HTC_Europe_1.28.401.4) against another ROM (ex: Mega_TMO_UK_1.33.110.2) of the device to see what the HTC changed.
Compare specific files such as .XML, .PROVXML, etc.
Tips:
You can copy the installation folder from your system to an external drive. You can then launch the .EXE from the external drive on another system - no need for installation.
Enable the "Send Files To The Recycle Bin" option to avoid having a file permanently deleted when it is removed from the list.
Gotcha's:
Editing INITFLASHFILES.DAT with the built-in editor is not recommended as it may cause corruption resulting in ROM issues.
Reference Links:
http://forum.xda-developers.com/showpost.php?p=5979483&postcount=11
http://forum.xda-developers.com/showpost.php?p=6251478&postcount=27
IcoFX
Name: IcoFX
Version: 1.6.4
Author: Attila Kovrig
Link: http://icofx.ro
Cost: Free
Reviewed By: Sous-Chef
Summary/Review:
IcoFX is an all-in-one freeware icon editor solution for icon creation, extraction and editing. It is designed to work with Windows XP, Windows Vista, Windows 7, Windows CE and Macintosh icons supporting transparency.
Easily convert your favorite images into icons, or icons into images. IcoFX gives you the possibility to create icon libraries or change icons inside EXE files. You can extract icons from other files, including Windows Vista, Windows 7 and Macintosh files. You can easily work with multiple files using the batch processing capability of IcoFX.
Tips:
Always keep a copy of the unaltered file as a backup.
Choose free images to avoid potential copyright pitfalls.
Gotcha's:
None discovered.
Reference Links:
http://forum.xda-developers.com/showthread.php?t=511876
Dependency Walker
Name: Dependency Walker
Version: 2.2
Author: Steve P. Miller
Link: http://www.dependencywalker.com
Cost: Free
Reviewed By: Sous-Chef
Summary/Review:
Dependency Walker is a utility that scans any 32-bit or 64-bit Windows module (exe, dll, ocx, sys, etc.) and builds a hierarchical tree diagram of all dependent modules. For each module found, it lists all the functions that are exported by that module, and which of those functions are actually being called by other modules. Another view displays the minimum set of required files, along with detailed information about each file including a full path to the file, base address, version numbers, machine type, debug information, and more.
Dependency Walker is very useful for troubleshooting system errors related to loading and executing modules. Dependency Walker detects many common application problems such as missing modules, invalid modules, import/export mismatches, circular dependency errors, mismatched machine types of modules, and module initialization failures. It handles all types of module dependencies, including implicit, explicit (dynamic / runtime), forwarded, delay-loaded, and injected. For example, a quick way to determine what additional packages may be required for an application:
Open each .DLL/.EXE file in the package (ex: YouTube)
Note the files that are flagged as missing.
Search the source (usually an extracted ROM) for those files; odds are you'll need the entire package contents where the file is found.
Repeat the process until all of the necessary files are found.
Dependency Walker runs on Windows 95, 98, Me, NT, 2000, XP, 2003, and Vista. It can process any 32-bit or 64-bit Windows module, including ones designed for Windows CE. Windows CE modules use the same module format (known as the "Portable Executable" format) that is used for modules written for Windows 95, Windows 98, Windows Me, Windows NT, Windows 2000, Windows XP, Windows 2003, Windows Vista, and beyond. There is no version of Dependency Walker that actually runs on Windows CE, but you can open Windows CE modules with Dependency Walker on a standard Windows computer.
Tips:
Create a folder with all of the common WinCE files in it and set a custom search order that includes this path and save it to a file.
Use RECMOD to recode modules that may be required.
Use the "/d:your_file.dwp" command line option to pass a custom search order file to Dependency Walker.
Gotcha's:
Dependency Walker automatically tries to locate dependent modules using the default Windows module search path. For Windows CE modules, this can cause errors since non-CE modules may be found in the default search path. To fix this, you can use Dependency Walker's "Configure Module Search Order" dialog to remove all standard paths and then add a private folder of your own that contains only CE modules.
Reference Links:
http://forum.xda-developers.com/showthread.php?t=576027
FdcSoft Task Manager (aka dotFRED Task Manager)
Name: FdcSoft Task Manager (aka dotFRED Task Manager)
Version: 3.3
Author: FdcSoft (aka dotFred)
Link: http://www.dotfred.net/TaskMgr.htm
Cost: Free
Reviewed By: Sous-Chef
Summary/Review:
The Task manager application is a bunch of several useful tools in just one tool. It includes a Process manager, CPU usage, Application Manager, Service Manager, Device Manager (only WM2005 and above), Windows Manager, Notification Manager, IP Config utility, Ping utility, Net Stats utility, Registry Editor, and Run program utility.
Although, the application is intended to run on a Mobile Device, it is an excellent tool to use during the preparation of OEM packages. For example, the following procedure speeds up the process of converting from .CAB to OEM:
Copy the files from extract .CAB to the device
Import the registy settings
Process the .PROVXML files.
Reboot the device
Test application
Tips:
The application can run from an SD card.
.RGU files can be renamed to .REG; make sure to remove the hidden, system file attributes.
Gotcha's:
.PROVXML files require a minor adjustment; see reference link below.
Reference Links:
http://forum.xda-developers.com/showthread.php?t=519548
Directory Opus
Name: Directory Opus
Version: 9.5.3
Author: GP Software
Link: http://www.gpsoft.com.au
Cost: Trialware, Purchase
Reviewed By: ceesheim
Summary/Review:
Directory Opus 9 is a Windows File Manager & Explorer replacement that includes, user-definable file display views, User-definable toolbars, menus, file types, powerful image and file viewers, built-in ZIP and Secure SSL/SSH FTP, easily synchronize files & find duplicates, quick or advanced search and rename functions.
The file manager is extremely useful for moving files between folders, making backup copies of files, viewing pictures and playing sounds, running other utility programs on lists of files, deleting unwanted files and many other "housekeeping" tasks. If you are working with a lot of files in kitchens or Manila, this is a must have.
Tips:
Take a few moments to get familiar with the options.
Can view .XML , HEX , .TXT , .DOC , .CPR , .PROVXML , .MSCR , .DSM , .RGU And many more
In view mode it can tell you if a manila file is a lua or a QTC1 file (in HEX)
Download lot of Plugins & Media Capabilities (RTF-Viewer , CSV-Viewer , Source Code Viewer , Postscript-Viewer , RVF File , EXE/DLL Metadata)
Gotcha's:
None discovered.
Reference Links:
None.
XML Notepad 2007
Name: XML Notepad 2007
Version: 2.5
Author: Microsoft
Link: http://www.microsoft.com/DownLoads/...49-787d-4118-ba5f-4f30fe913628&displaylang=en
Cost: Free
Reviewed By: Sous-Chef
Summary/Review:
XML Notepad 2007 provides a simple intuitive user interface for browsing and editing XML documents. XML Notepad provide synchronized Tree View with Node Text View for quick editing of node names and values, incremental search (Ctrl+I) in both tree and text views, so as you type it navigates to matching nodes, Cut/copy/paste with full namespace support, drag/drop support for easy manipulation of the tree, even across different instances of XML Notepad and from the file system.
Additionally, XML schema are instantly validate while you edit with errors and warnings shown in the task list window. It includes intellisense on expected elements and attributes and enumerated simple type values, inplace HTML viewer for processing xml-stylesheet processing instructions, built-in XML Diff tool, support for XInclude, dynamic help from XSD annotations, and goto definition to navigate includes and XSD schema information.
It's a must have when working with .XML and .PROVXML files.
Tips:
Ensure that .NET Framework v2.0 (or higher) is installed
Gotcha's:
None discovered.
Reference Links:
http://forum.xda-developers.com/showthread.php?t=519548
Field Notes: Beyond Compare
Name: Beyond Compare
Version: 3.1.10
Click to expand...
Click to collapse
Hi Hilaireg Long time no talk
I want to emphasize the usage of Beyond Compare. This is the MOST important tool a chef can own. It will save hours of time. There is no better way to compare new builds and look for what has changed. When properly set up it shows file versions making integration of multiple sets of OEMdrivers a breeze. Swapping sys files is never easier as you get to see dates of creation and can easily move files from one set to the other with two clicks.
There is one thing not mentioned as far as cons. Using it on initflashfiles.dat is not recommended. Every time I have done so major issues followed by a restore of the original files.
Also when using beyond compare be SURE to set it to send files to the recycle bin. If not it will permanently delete them
EditPad
Name: EditPad
Version: Lite
Author: Just Great Software Co. Ltd.
Link: http://www.editpadpro.com/editpadlite.html
Cost: Free (Lite), Purchase (Pro)
Reviewed By: Laurentius26
Summary/Review:
EditPad Lite is a general-purpose text editor, designed to be small and compact, yet offer all the functionality you expect from a basic text editor. EditPad Lite works with Windows 98, ME, NT4, 2000, XP, Vista, and 7.
Additionally, You can open as many files in EditPad at a time as you want and change between the open files by clicking on their tabs without the hassle of overlapping windows. EditPad reads and writes UNIX (LF only) and Mac (CR only) text files (in addition to DOS/Windows CR+LF files, of course). EditPad natively supports Unicode text files and text files encoded in a variety of legacy code pages. EditPad supports all Windows and ISO-8859 code pages, plus a wide selection of DOS, KOI8 and EBCDIC code pages.
This means EditPad can edit any text file, whether it was saved on a Windows or Linux computer, an old DOS PC or an IBM mainframe. EditPad fully supports double byte character systems (DBCS) so you can edit texts written in Far East languages, such as Chinese, Japanese or Korean, as easily as those written in European languages.
EditPad is a very handy editor for viewing/editing .rgu, .dat, .xml, .html, and multiple formats - a must have for your kitchen.
Tips:
If you run EditPad again when there is already an instance running, the file(s) you wish to edit will be opened by the existing EditPad window. This means there will be at most one EditPad window open, which will save you from a lot of task switching. Of course, if you do need more instances, simply pick View|New editor from the menu.
EditPad puts an icon in the system tray that remains visible, even if EditPad is closed. This way you have easy and fast access to EditPad, without the need to keep it running all the time.
Gotcha's:
None discovered.
Reference Links:
None.
DSM Editor
Name: DSM Editor
Version: 1.7
Author: ervius
Link: http://forum.xda-developers.com/showthread.php?t=523139
Cost: Free
Reviewed By: Sous-Chef
Summary/Review:
In early kitchen and ROM cooking, chefs used to delete Device Side Manifest (.DSM) files from OEM packages that resided in the .\PACKAGES and/or .\EXT folder. Other chefs would delete the .DSM file and create an empty version of a .DSM file as a placeholder. As we learned more about the Windows Mobile, we discovered that .DSM files contained pertinent information that was used during the compilation of a ROM and should be properly managed. DSM Editor is a utility to view and modify components of a .DSM file .DSM such as certificates, dependencies, shadow order, and list of modules/files.
A Device Side Manifest file (.DSM) describes the contents of a package and has the name <GUID>.DSM. Each package has its own .DSM file. The .DSM file is a binary file and the format may change at any time. The .DSM file is created by parsing a package definition file, package shadow file, and a build manifest file. Each item specified within a build manifest file is used to determine the item's file type.
The .DSM file contains the following information:
Public key certificate data used for signature validation.
Version information which includes the previous version of a package so as to create a delta package between an older or baseline package and a new package.
Package GUID
Dependency GUID information
File names and file information in the form of raw file size and original VBase for MODULES so they can be re-based and differentiated during an update.
Tips:
Always keep a copy of the unaltered file as a backup.
A .DSM file should contain a complete (exact) list of all modules/files found in the package folder.
The .RGU file should be excluded from the .DSM file.
Kitchen-specific files should be excluded from the .DSM file.
Gotcha's:
Hidden (H) and/or System (S) attributes may need to be cleared (ATTRIB -s -h -r) from .DSM files before they can be edited.
Requires .NET Framework.
Reference Links:
http://forum.xda-developers.com/showthread.php?t=520009
DSMBuilder
Name: DSMBuilder
Version: 2008-08-08
Author: anmendes
Link: http://forum.xda-developers.com/showthread.php?t=412272
Cost: Free
Reviewed By: Sous-Chef
Summary/Review:
In early kitchen and ROM cooking, chefs used to delete Device Side Manifest file (.DSM) files from OEM packages that resided in the .\PACKAGES and/or .\EXT folder. Other chefs would delete the .DSM file and create an empty version of a .DSM file as a placeholder. As we learned more about the Windows Mobile, we discovered that .DSM files contained pertinent information that was used during the compilation of a ROM and should be properly managed. DSMBuilder is a utility to view and modify components of a .DSM such as certificates, dependencies, shadow order, and list of modules/files.
A Device Side Manifest file (.DSM) describes the contents of a package and has the name <GUID>.DSM. Each package has its own .DSM file. The .DSM file is a binary file and the format may change at any time. The .DSM file is created by parsing a package definition file, package shadow file, and a build manifest file. Each item specified within a build manifest file is used to determine the item's file type.
The .DSM file contains the following information:
Public key certificate data used for signature validation.
Version information which includes the previous version of a package so as to create a delta package between an older or baseline package and a new package.
Package GUID
Dependency GUID information
File names and file information in the form of raw file size and original VBase for MODULES so they can be re-based and differentiated during an update.
Tips:
Always keep a copy of the unaltered file as a backup.
A .DSM file should contain a complete (exact) list of all modules/files found in the package folder.
The .RGU file should be excluded from the .DSM file.
Kitchen-specific files should be excluded from the .DSM file.
Gotcha's:
Hidden (H) and/or System (S) attributes may need to be cleared (ATTRIB -s -h -r) from .DSM files before they can be edited.
Dumping a custom ROM where a .DSM file was altered with DSMBuilder may result in the package being placed in the SYS folder.
Reference Links:
http://forum.xda-developers.com/showthread.php?t=520009
DSM Dependency Dumper
Name: DSM Dependency Dumper
Version: 2009-06-19
Author: dj13241
Link: http://forum.xda-developers.com/showthread.php?t=527965
Cost: Free
Reviewed By: Sous-Chef
Summary/Review:
DSM Dependency Dumper is a handy tool to extract the list of dependency packages for a single Device Side Manifest file (.DSM) or an entire ROM. The DSM Dependency Dumper will produce a Comma Separated Values (.CSV) output file detailing all of the required dependencies for a package.
A Device Side Manifest file (.DSM) describes the contents of a package and has the name <GUID>.DSM. Each package has its own .DSM file. The .DSM file is a binary file and the format may change at any time. The .DSM file is created by parsing a package definition file, package shadow file, and a build manifest file. Each item specified within a build manifest file is used to determine the item's file type.
The .DSM file contains the following information:
Public key certificate data used for signature validation.
Version information which includes the previous version of a package so as to create a delta package between an older or baseline package and a new package.
Package GUID
Dependency GUID information
File names and file information in the form of raw file size and original VBase for MODULES so they can be re-based and differentiated during an update.
Tips:
Most ROM's are shipped with missing package dependencies.
Gotcha's:
None Discovered.
Reference Links:
http://forum.xda-developers.com/showthread.php?t=520009
Registry Workshop
Name: Registry Workshop
Version: 4.2.4
Author: Torchsoft
Link: http://www.torchsoft.com/
Cost: Trialware, Purchase
Reviewed By: Laurentius26
Summary/Review:
Registry Workshop is an advanced registry editor for Windows 2000 (Service Pack 4), Windows XP (32/64-bit), Windows 2003 (32/64-bit), Windows Vista (32/64-bit), Windows 2008 (32-bit and 64-bit), and Windows 7 (32/64-bit). It is a perfect replacement for RegEdit and RegEdt32 which shipped with Windows. In addition to all the standard features, Registry Workshop adds a variety of powerful features that allow you to work faster and more efficiently with registry related tasks. With Registry Workshop, registry editing becomes more safe than ever before. All changes except changing key permissions can be safely reversed (even registry replacing and importing), using multiple levels of Undo. You don't need to worry about making mistakes when editing registry.
Registry Workshop includes many useful features: multiple undo and redo, the undo history can be saved to disk and reloaded at startup, search and replace registry keys, values and data with super fast search algorithm, compare registry between computers and/or .REG files with super fast speed, connect mobile device (Pocket PC, SmartPhone, etc.) registry via ActiveSync, cut, copy and paste registry keys and values, drag and drop to move or copy registry keys and values, edit .REG files and .POL files in the same way as editing system registry, backup and restore registry, defragment registry with preview, easy and flexible favorites management, quickly browse registry with address bar, bookmarks and visitation history, context menus to navigate to referenced key: open containing folder or open URL if the key or value contains a ProgID, ClassID, folder, file path or URL, jump to the same key in HKLM or HKCU by context menu, open multiple local registry windows, allow to open secure registry keys when running under the administrator privilege, and edit binary data in BYTE, WORD or DWORD format.
Tips:
Excellent for editing/viewing/export/import registry keys on your device from your desktop using ActiveSync.
Gotcha's:
None discovered.
Reference Links:
None.
DSM Analyzer
Name: DSM Analyzer
Version: 1.5
Author: michyprima
Link: http://forum.xda-developers.com/showthread.php?t=444186
Cost: Free
Reviewed By: Sous-Chef
Summary/Review:
In early kitchen and ROM cooking, chefs used to delete Device Side Manifest file (.DSM) files from OEM packages that resided in the .\PACKAGES and/or .\EXT folder. Other chefs would delete the .DSM file and create an empty version of a .DSM file as a placeholder. As we learned more about the Windows Mobile, we discovered that .DSM files contained pertinent information that was used during the compilation of a ROM and should be properly managed. DSM Analyzer is a utility to view and modify components of a .DSM file such as certificates and list of modules/files.
A Device Side Manifest file (.DSM) describes the contents of a package and has the name <GUID>.DSM. Each package has its own .DSM file. The .DSM file is a binary file and the format may change at any time. The .DSM file is created by parsing a package definition file, package shadow file, and a build manifest file. Each item specified within a build manifest file is used to determine the item's file type.
The .DSM file contains the following information:
Public key certificate data used for signature validation.
Version information which includes the previous version of a package so as to create a delta package between an older or baseline package and a new package.
Package GUID
Dependency GUID information
File names and file information in the form of raw file size and original VBase for MODULES so they can be re-based and differentiated during an update.
Tips:
Most ROM's are shipped with missing package dependencies.
Gotcha's:
Does not provide dependencies or shadow order information.
Changes only appear after reloading the .DSM or .DSM(s) in a folder.
Reference Links:
http://forum.xda-developers.com/showthread.php?t=520009
Hallo everybody,
I just want to ask how I can built in SDKCERT directly into ROM.If I want to convert SDKCERT.CAB to EXT then after I have again CAB so newerending story.
You won't need to use the SDKCERT package. If you are using Ervius Visual Kitchen for example, all you need to do is ensure that Disable Cert(ificate) checking is selected. This way, your compiled ROM will already have Certificate checking disabled allowing you to install updated drivers and such.
This tutorial discusses some of the changes you'll likely need to make:
http://forum.xda-developers.com/showthread.php?t=526610
HTH,
if you still need it ,here its is. just add to any package.
faria said:
if you still need it ,here its is. just add to any package.
Click to expand...
Click to collapse
Thank you very much!!!
Johan Kraczmar said:
Thank you very much!!!
Click to expand...
Click to collapse
Np.
Here is a little tip for future...
most certificates are in cab form,open the cab with winrar,you will see a file called;_setup.xml, that is the cert info.
just rename _setup.xml to mxip_999_certname.provxml and you done.
faria said:
if you still need it ,here its is. just add to any package.
Click to expand...
Click to collapse
Did I understand correctly that I would need to add this to each package that needs a certificate?
Thanks
He said that you need to add this in every cab that need certificates, if you use EVK or Oskitchen you dont need anything because they auto patch the certs.
Lewy1 said:
Did I understand correctly that I would need to add this to each package that needs a certificate?
Thanks
Click to expand...
Click to collapse
af974 said:
He said that you need to add this in every cab that need certificates, if you use EVK or Oskitchen you dont need anything because they auto patch the certs.
Click to expand...
Click to collapse
Thanks. The problem is that I've tried quite a few times to install the Vogue Camera as an EXT with EVK, and I always end up with the "The file 'camera' cannot be opened. Either is not signed with a trusted certificate or one of it's components cannot be found." etc.
Did you tried the solution in post #3?
For which device are you trying to install?...from Vogue to -> ?
Sometimes from different devices isnt a certificate fault but some missing dll.
Check for this app Dependency walker and search if you have all the modules to make run camera Vogue.
Lewy1 said:
Thanks. The problem is that I've tried quite a few times to install the Vogue Camera as an EXT with EVK, and I always end up with the "The file 'camera' cannot be opened. Either is not signed with a trusted certificate or one of it's components cannot be found." etc.
Click to expand...
Click to collapse
Lewy1 said:
Thanks. The problem is that I've tried quite a few times to install the Vogue Camera as an EXT with EVK, and I always end up with the "The file 'camera' cannot be opened. Either is not signed with a trusted certificate or one of it's components cannot be found." etc.
Click to expand...
Click to collapse
Hi Lewy1,
You are missing a package dependency. If you navigate to the .\Windows folder using File Explorer on your device and try and launch the Camera application, you will encounter an error - confirming that you have dependency issue.
Have a look at this post:
http://forum.xda-developers.com/showpost.php?p=4259031&postcount=1070
HTH,
Lewy1 said:
Thanks. The problem is that I've tried quite a few times to install the Vogue Camera as an EXT with EVK, and I always end up with the "The file 'camera' cannot be opened. Either is not signed with a trusted certificate or one of it's components cannot be found." etc.
Click to expand...
Click to collapse
Yeah, that is just a generic error message, and it almost never has anything to do with certs. You could be missing dependencies, or it could just be that you have a broken shortcut. One of the problems with the 6.5 start menu is that you can't always tell just by looking that the shortcut is effed, because you may have an ico assigned through the registry. Use Total Commander to see if you have the correct shortcut path.
hilaireg said:
Hi Lewy1,
You are missing a package dependency. If you navigate to the .\Windows folder using File Explorer on your device and try and launch the Camera application, you will encounter an error - confirming that you have dependency issue.
Have a look at this post:
http://forum.xda-developers.com/showpost.php?p=4259031&postcount=1070
HTH,
Click to expand...
Click to collapse
Farmer Ted said:
Yeah, that is just a generic error message, and it almost never has anything to do with certs. You could be missing dependencies, or it could just be that you have a broken shortcut. One of the problems with the 6.5 start menu is that you can't always tell just by looking that the shortcut is effed, because you may have an ico assigned through the registry. Use Total Commander to see if you have the correct shortcut path.
Click to expand...
Click to collapse
First of all, thanks guys for your help!
Yes, your right that the problem is also when I try launching the camera from the windows directory. Now the problem is that I don't understand too much when it comes to digging into the contents of these files, so I think I'll need some help.
I assumed I needed Dependency Walker which you wrote about in your Kitchen Utensils review, so I opened the camera.exe and the results are attached as a Dependency Walker Image. The camera EXT I have come from converting a cab that's been floating around XDA. By the way I had the same problem when using the mega camera.
Thanks so much for the patience and help.
Had a look at the .DWI file you attached. Your next steps:
Create a folder on your system (ex: C:\WINMO_OS)
Copy all of the camera package files to the folder.
In DEPENDS, remove all of the "Module Search Order" paths - Options menu.
Add the folder path (ex: C:\WINMO_OS)
Search your kitchen for each file that is listed in CAMERA.EXE and copy them to the folder.
Once you have the files from CAMERA.EXE in the folder, open each of the yellow ( ? ) files.
Repeat the steps above until you have examined all of the files in the folder you created.
Essentially, you want to locate all of the files listed in each .DLL, .EXE, etc. that is displayed in DEPENDS.
If the files appear in the .\SYS or .\OEM folder, it's likely those aren't the issue. Some files may be modules; it's likely those aren't the issue as well - I usually RECMOD a copy of the file and place it in the folder or I copy it from the device when connected using USB. This will reveal additional files that are "missing". I suspect you will discover the missing dependency to be in another file. If you find the files in packages, it's likely the entire package is a dependency. If you can't find a file, make note of it and continue on. At the end, post the list of files you couldn't find.
Lastly, examine each of the .REG files for references to other files; you may need to do a global search through the kitchen to find other packages that may be writing to the same keys ... these will likely be dependant packages as well.
HTH,
* EDIT *
If at all possible, it would be beneficial for you to find the official source ROM that the package originated from.
hilaireg said:
Had a look at the .DWI file you attached. Your next steps:
Create a folder on your system (ex: C:\WINMO_OS)
Copy all of the camera package files to the folder.
In DEPENDS, remove all of the "Module Search Order" paths - Options menu.
Add the folder path (ex: C:\WINMO_OS)
Search your kitchen for each file that is listed in CAMERA.EXE and copy them to the folder.
Once you have the files from CAMERA.EXE in the folder, open each of the yellow ( ? ) files.
Repeat the steps above until you have examined all of the files in the folder you created.
Essentially, you want to locate all of the files listed in each .DLL, .EXE, etc. that is displayed in DEPENDS.
If the files appear in the .\SYS or .\OEM folder, it's likely those aren't the issue. Some files may be modules; it's likely those aren't the issue as well - I usually RECMOD a copy of the file and place it in the folder or I copy it from the device when connected using USB. This will reveal additional files that are "missing". I suspect you will discover the missing dependency to be in another file. If you find the files in packages, it's likely the entire package is a dependency. If you can't find a file, make note of it and continue on. At the end, post the list of files you couldn't find.
Lastly, examine each of the .REG files for references to other files; you may need to do a global search through the kitchen to find other packages that may be writing to the same keys ... these will likely be dependant packages as well.
HTH,
* EDIT *
If at all possible, it would be beneficial for you to find the official source ROM that the package originated from.
Click to expand...
Click to collapse
Thanks, that was quick. Looks like I got a lot of work ahead of me.
Hi.
Going to thread:
I build my own kitchen which uses platform rebuilder (far called PRB), it's for Universal and contain 21884 build (my favourite ).
Everything goes okay, registry, modules, files is okay but the problem is known .provxml issue.
I use PRB 2.1 (displays mmap)
All provxml and dsm are readonly, system and hidden
I tried to put all provxml to external dsm, also add all files into one dsm, updating existing dsm, renaming provxml's to mxip_zzzz << you know the 'zzzz' makes it process at last.
No success.
Fail effect is:
No Office (which installs via provxml), no start menu icons, no theme loaded, classicblue failed. etc.
Any ideas?
bump, without any ideas?
try to leave the Hidden attribute.
FDCTask Manager (aka DotFRED) can import *.*XML file; it's handy for testing and ensuring that the XML file is properly formed. Have a look at this post and the reference link at the end:
http://forum.xda-developers.com/showpost.php?p=5959794&postcount=9
It is an issue with setting the attributes correct when building OS.
http://www.mobileunderground.info/showthread.php?t=17128&p=45430#post45430
ai6908 said:
It is an issue with setting the attributes correct when building OS.
http://www.mobileunderground.info/showthread.php?t=17128&p=45430#post45430
Click to expand...
Click to collapse
No way, it didn't helped and didn't fixed anything.
My kitchen main bat file looks that now:
http://pastebin.com/ac1rtNeV
Any ideas for now? Maybe about DSMes?
EDIT:
Seems to be fixed
Helped another attrib config, take a look on my kitchen. Closing
http://pastebin.com/J9RrGmj8