Okay, there a couple of CAB files I install no matter what ROM I use (Total Commander, Today Screen Speed Dial, MortRing [by .exe], Morphy's Call Filter etc), now that I'm getting to grips with the whole ROM building thing I have a question:
How can I add a program installed via a CAB into a ROM so that it is installed into ROM, I've searched on the forum and can't find much. I know it can be done as ROM's such a TuMa's, Logout's and Ivan's have apps in ROM which aren't there by default...
EDIT: In addition, I overwrite some of the default ROM stuff once I've installed (ETEN M600 Dialler in particular), so again, how can I get the 'bits' out the cab and overwrite the default contents of the ROM, this would make my life much easier...
If this has been posted previously then please point me in the right direction
First extract files, shortcuts and registry entries from the .cab using wince cab manager or similar http://www.ocpsoftware.com/, take note on what directory each file/shortcut is in. (often more reg entries will be stored as a file called 'platformxxx.reg' use these too)
Normal rom edit way: add the contents of the exported .reg files to default.rgu, making sure that you leave a blank line on the end, copy all the files to the \dump directory and edit initflashfiles.dat to copy them to the right directory on first boot. (remeber to remove the first two bytes - ff fe with a hex editor). then build your rom!
Bepe's rom edit way: create a folder '[your software name]' in the oem folder and get yourself a guid from here http://kruithof.xs4all.nl/uuid/uuidgen. create a blank file called '[yourguid].dsm and a blank text file called '[yourguid].rgu'. add the contents of the exported .reg files to '[yourguid].rgu' and make sure you save as unicode. then copy all the other files to the folder and create a blank unicode txt file called 'initflashfiles.txt' and use it like initflashfiles.dat in the first method except there is no need to hex edit out the first two bytes. then build your rom!
midget, you're a star, I thought it may be something simple... I'm off out with the family now for the day, but I'll work on this later, cheers!
Hey!
I'm new to this stuff, don't be to hard to me!
What i have done yet:
1) Downloaded different Roms and created a dump of it, so i can compare them.
2) After this i, want to great my own Rom based of the German Qtek Rom.
For Comparison i took the "RIsidoro"-Rom.
i created of both the dump folder of the OS.
Now i want to add to the Qtek Rom for example CF2, Minimo and TotalCommander.
What i think i have to do:
-Copy the needed Files to the dump folder
-Edit the initflashfiles.dat
-Create a CAB in the Extended Rom to make the regestry entrys
My Problem is, i cant find a initflashfiles.dat in the Qtek Rom!
What i have done wrong?
Sorry for my bad english, i hope you can understand my problem
Thanks for your reply,
MAPero
Sry guys for post again.
But i haven't found any thing in this forum what could help me!
Everywhere is said, to edit initflashfiles.dat
But there is no initflashfiles.dat.
I have found a second way i think,
Normal rom edit way: add the contents of the exported .reg files to default.rgu, making sure that you leave a blank line on the end, copy all the files to the \dump directory and edit initflashfiles.dat to copy them to the right directory on first boot. (remeber to remove the first two bytes - ff fe with a hex editor). then build your rom!
Bepe's rom edit way: create a folder '[your software name]' in the oem folder and get yourself a guid from here http://kruithof.xs4all.nl/uuid/uuidgen. create a blank file called '[yourguid].dsm and a blank text file called '[yourguid].rgu'. add the contents of the exported .reg files to '[yourguid].rgu' and make sure you save as unicode. then copy all the other files to the folder and create a blank unicode txt file called 'initflashfiles.txt' and use it like initflashfiles.dat in the first method except there is no need to hex edit out the first two bytes. then build your rom!
Click to expand...
Click to collapse
But i am not sure, what is meant by oem folder!?!? is the dump folder meant?
Hi, I followed the thread: "How to reconstruct a dumped ROM"... (obviously I had, before, did a rom dump!). Now I have a directory named "dump" with several subdirs.
In the step 3) there is written: "After this step you can optionally edit the OS files with the proper tools"... now the question is: what are these proper tools? I searched in the forum, in the other threads but I didn't find anything... My needs are: to delete some programs that are in the rom (for example Pocket Word, Pocket Excel, other..) in order to obtain more space, but to install other tools at the free space.
Thanks in advance for your help....
Great question ! i can't help you , but i wait for answers ....
I asked the same thing the other day, and got an answer(thx again to him).
Actually, I'm doing it right now, as a test I've successfuly dumped and rebuilt lsvw's rom using enhanced imgfs tools batch files, nbdump.bat nbname.nb & nbbuild nbname.nb, now I'm removing files from the rom and maybe add some other, like that quick gps thingy, latest msn(optimized for trinity, removed vga resources), phone pad, and some other thing on my custom extrom.
I had the same doubt as you, but it seems that we're overcomplicating things, you can simply use the file explorer to remove files from that dir, beware of which files you remove/alter.. initflashfiles.dat has some operations to be done after flashing the device(creating folders,renaming files, moving them to startup/start menu/etc folders), I thought that if the file didn't exist on the windows folder, whatever invoques initflashfiles.dat would crash, but it doesn't seem to be the case, I haven't put this to test, but I've found several missing files on the initflashfiles.dat(and a typo, "floder", go figure what it means - lazy/rushed editing IMO), so there seems to be some tolerance to the operations contained in that file.
I won't edit the wiki until I'm 100% sure that what I know is correct, but to sum it up:
dump the files
add/delete files with explorer
edit the registry using rgucomp
edit initflashfiles.dat using the original windows notepad & use an hexeditor to remove the 1st 2 bytes
run NBBuild.bat to create the *.nb file
OSchecker.exe to validate the *.nb file
nbhtool.exe to create the nbh
flash it(I prefer the sd card method)
Code:
rgucomp needs setting _FLATRELEASEDIR environment variable to current directlry like this:
set _FLATRELEASEDIR=.
Dump default.hv/user.hv file to .reg with:
rgucomp.exe -nologo -o default.hv > default.reg, then add line "REGEDIT4" to the beginning of REG file.
Modify the .reg file to your liking, (save it in UTF-16 with CR+LF terminations and a new line at the end of the file) and convert it back to .hv
And don't forget to flash Olipro's Hard SPL before, it may save your device.
"and convert it back to .hv"
http://forum.xda-developers.com/showpost.php?p=1186635&postcount=1
(no wonder I didn't find this info, forum search is almost useless, googled for rgucomp and voilà, first result(above) right answer)
I recently upgraded my XPERIA X1 to Windows Mobile 6.5 using the W4X ROM however I'm disappointed the a majority of the ringtones have been removed.
I'm curious whether they can be extracted from a NBH image.
Now, firstly, I have no idea how to cook a ROM but I imagine the files and folders are contained within the image file somewhere.
I have a backup of the previous official R2AA rom that came pre-installed with the device however I have no idea on how to extract the NBH file.
I found an application that splits the NBH into several NB files however I have no idea how to progress further.
I imagine the 'Windows.nb' image contains the contents of the Windows folder on the device where the ringtones would be.
So, could someone point me in the right direction to find an application that will allow me to extract the folders contained within the NB file so I can access the missing ringtones and reinstall them?
Cheers,
Hyped
hypedupmonkey said:
I imagine the 'Windows.nb' image contains the contents of the Windows folder on the device where the ringtones would be.
So, could someone point me in the right direction to find an application that will allow me to extract the folders contained within the NB file so I can access the missing ringtones and reinstall them?
Cheers,
Hyped
Click to expand...
Click to collapse
if you download jerpelea's kitchen (it's in one of the stickies) and put the rom in the source folder then run the command it extracts everything from it, and i suppose you could probably browse through the files that way, but i'm nt sure, just a suggestion!
or you could probably search for the ringtones on XDA, i know there are some from the rhodium somewhere!
Search this forum and you will find plenty of ringtone packages to download (removed from ROM but as addon shared by the cooks)
Thought gtrab shared it also in his cooking tutorial....
I’ve started cooking my own ROM’s only a week ago. I wanted to share my experiences here as it’s not as easy as it seems Well, with the right settings, tools, references, etc it makes it easier though. So this is my sharing back to the community, my tutorial/reference guide on how to cook a ROM.
The result of my days of hard work is named DaxyROM and can be found here.
If you want to start cooking, be prepared to read a lot and spent a lot of time trying your home cooked meals. But when it boots and works as expected, you’ll enjoy all the time spent.
There are 3 steps I’d like to discuss in the following 3 posts:
1) Basic ROM extraction and cooking
2) Adding / Removing programs
3) Upgrading your XIP/SYS (aka install new OS version)
First of all get to know what you’re dealing with. Understand what SYS/EXT/OEM/ROM/XIP is ‘cause at the end of the week you can’t think of anything else. Good source here.
1 Basic ROM extraction and cooking
I’ll be using the Ervius Visual Kitchen and the official WM6.5 ROM from HTC to start with.
* Download Ervius Visual Kitchen. Always use the latest version.
* Download WM6.5 ROM’s from HTC
* Download CustomRUU.exe
Preparing the kitchen:
Extract Visual Kitchen (VK) to C:\Kitchen (will be refered to as Kitchen now)
Create a directory in the Kitchen named RomDump
Open the WM6.5 HTC ROM .exe file with Winzip
Extract the file named RUU_signed.nbh to the RomDump directory
Now open the Kitchen (erviuskitchen.exe). Ignore the warning messages
Click on the bottom left button named “Dump nbh/nb/payload”
Open the RUU_signed.nbh file and wait till it’s completed.
Enter the Kitchen\RomDump\dump directory
Move all files to Kitchen directory
There seems to be an issue with kitchen_build_rom.bat while building your ROM.
Modify your kitchen_build_rom.bat file from this:
Code:
set DSM_TEMPLATE=%dsm%
set DSM_INCLUDES=*
REM **************** TOOLS\platformrebuilder.exe
if not "%errorlevel%"=="0" goto error
To this:
Code:
set DSM_TEMPLATE=%dsm%
set DSM_INCLUDES=*
REM **************** TOOLS\platformrebuilder.exe
REM **************** if not "%errorlevel%"=="0" goto error
You’re now ready to go.
Built your first ROM – The Visual Kitchen Basics:
Click on the pull-down menu next to RHODIUM and select RHODIUM
Ignore the messages. You’ll see the screen building now
Fill in the name of your ROM at the ROM ver. Field
Check the “Real WM 6.5 AKU” field
Click on the “Other” button
Change the –PP value from 6 to 18 and click on the Close button
Save the settings: hit the “Save ROM” button. Filename must end with extension .erv.
You’re ready to hit the Create ROM button
Wait till it finishes
Now open the Kitchen\RELEASE_Rhodium directory
Copy the CustomRUU.exe to this directory and run it
You’re now running the HTC WM 6.5 ROM rebuilded by yourself
Right now your kitchen is ready to use and you can modify it as much as you like.
Part 2: Adding / Removing programs
Right now we know that the kitchen works. We have rebuiled the official version and it boots up fine. Make sure to test your extracted ROM works otherwise you will loose a lot of time. Now it's time to make changes. Keep in mind that the following is what I've teached myself and that there might be better methods in adding/removing packages.
The easiest is removing packages. Just double-click on the package and it won't be included. If you want it back, just double-click again and it's back in. Easy as that.
Keep in mind that you can't remove OEM packages and that if you're removing packages from the SYS you have to be carefull as you might run the risk you remove a core application and that Windows won't boot anymore. You can however safely remove packages like LiveSearch, MSTag, OneNote, etc without any problems.
The EXT directory is where all packages reside. This directory is devided in 2 sub-directories. One for Rhodium specific packages and one for Shared platforms. By default all applications are in the Rhodium directory but you might want to change this manually to Shared if you're planning on building for multiple platforms. For now we'll keep them in the Rhodium directory.
You need to either find EXT packages online, or you need to convert CAB files to EXT packages. That is basically it.
I've found a lot of new EXT files here: http://www.everythingdiamond.info/showthread.php?t=94. You can download new EXT folders and copy them into the VK\EXT\Rhodium\<built>\Rhodium_External_Packages directory. Now load VK and Load your previous saved config. Scroll down the list and you will see your new package. This package is not yet included in the Kitchen. This is useful if you're upgrading packages so you'll know which one is new and which one is old.
If you're upgrading packages, keep in mind that some do depend on each other. For example Manila heavily depends on all kinds of other packages. When you're upgrading one, upgrade the others as well unless you're certain there are no dependances. You'll find out when your upgrading. Make sure to safe your work very often so you can always revert back to your previous situation.
As I mentioned you can also convert CAB's to EXT. This can be done using the package-creator from Ervius. TotalFire Package Converter does the job as well, but I haven't used it yet.
Download your application as cab file. Open the package converter, open the cab file and it converts to an EXT directory. This EXT directory can be copied into the kitchen again.
Adding your own EXT is more complicated. For example if you want to create a package which holds all your registry tweaks.
You can either download this file and change the .reg file, or you can take the hard way and learn by using this tutorial: http://www.mediafire.com/file/j15nqfzkwz5/CreatingOEM.zip
Both are written by user kwbr. See here for more info: http://forum.xda-developers.com/showthread.php?t=480714.
I believe this concludes this section. You should be able to add and remove packages right now. Next stop, installing a different Windows build.
Please sent me feedback on how to improve my posts.
Part 3: Upgrading your XIP/SYS (aka install new OS version)
It's time for the last part of my Tutorial. This time I will explain how to upgrade your XIP/SYS.
First you need to find your new XIP/SYS. I get mine WM 6.5.1 at http://forum.xda-developers.com/showthread.php?t=544445 but there are probably more sources.
First you need to know what to get. If I'm taking the above URL as example, there are several files.
The first one you need is the XIP/SYS one. This however is the OS for a screen resolution of 480x600 (The Touch Pro2 has a screen resolution of 480x800). You still need this file as it the the base OS combined with the (wrong) resolution files. That's why you need the 2nd file named "0409 USA English United States (Includes COMMON DPI, required for others)" as well. This is the english version for all resolutions.
The first file you can just extract in your SYS directory. It will create a new directory with the new build number and a directory named Shared.
The Shared directory you need to move to your ROM directory. This means you end up with a new build number in the Shared directory.
Now we just need to make sure the resolution files are copied. This means you need to copy a list of directories. At first create a directory named SYS\<build>\dpi_192_resh_480_resv_800. Just extract the complete 0409 Language file into a temp directory and the create the following directory structure by moving directories:
Code:
SYS\<build>\dpi_192_resh_480_resv_800\0409\Base_Lang_0409_DPI_192_RESH_480_RESV_800
SYS\<build>\dpi_192_resh_480_resv_800\0409\Themes_Lang_0409_DPI_192_RESH_480_RESV_800
SYS\<build>\dpi_192_resh_480_resv_800\COMMON\base_dpi_192_resh_480_resv_800
SYS\<build>\dpi_192_resh_480_resv_800\COMMON\MediaOS_dpi_192_resh_480_resv_800
SYS\<build>\dpi_192_resh_480_resv_800\COMMON\Phone_dpi_192_resh_480_resv_800
SYS\<build>\dpi_192_resh_480_resv_800\COMMON\Redist_dpi_192_resh_480_resv_800
This concludes the SYS, now the XIP.
The zip file you downloaded also contains a directory named "MSXIPKernel".
Extract this directory to your ROM\Shared\<build> directory.
Now go into the directory ROM\Rhodium.
Inside the builds you can find the OEMXipKernel which are basically the device specific drivers.
Usually these drivers don't change, unless you are upgrading the OEMXipKernel using a newly released ROM from HTC.
For now you have to copy the original build directory over to the new directory and you're done.
Right now your OS is ready to cook:
Open your Kitchen
Open your saved configuration file
Change the XIP and SYS versions (top right) to the new build version
Hit the Create ROM button
You're all set
After creating your new SYS, I suggest changing some default values. For example changing Unsigned Themes/CAB Policies:
Open the file named OEM\Rhodium\0409\Operator Pkg\mxipupdate_oemoperators_100.provxml
Find the section <!--337.01_SecurityPolicy-->
Add the following lines:
Code:
<parm name="4101" value="8" />
<parm name="4102" value="1" />
<parm name="4122" value="1" />
<parm name="4103" value="16" />
<parm name="4097" value="1" />
Save the file
Cook your ROM
Basically this means:
ID 4101: Unsigned CABS Policy = 8
ID 4102: Unsigned Applications Policy = 1
ID 4122: Unsigned Prompt Policy = 1
ID 4103: Unsigned CABS Policy = 16
ID 4097: Unsigned Prompt Policy = 1
Now you won't get warnings if you install unsigned applications etc.
One last thing to keep in mind. Don't forget to grab a new version of the OEM directory once it gets released by HTC.
I've ran into a situation where ActiveSync ran out of memory and a new OEM fixed this.
Thanks
Ervius: Big thanks to Ervius for his great Kitchen and Package creator: http://forum.xda-developers.com/showthread.php?t=469420
Da_G: For providing the latest WM builds: http://forum.xda-developers.com/showthread.php?t=544445
hilaireg: For providing his tuturial which was my starting point: http://forum.xda-developers.com/showthread.php?t=521632
kwbr: For his tutorial on creating applications: http://forum.xda-developers.com/showthread.php?t=480714
Everyone I forgot to add. Make yourself known and I'll add you of course!
This concludes my Tutorial. I hope you find it useful. Please feel free to provide feedback so I can adjust the tutorial or provide answers.
Eventually I may try cooking my own ROM.
Not because I can't find any good roms out there.
But just for the simple fact that I want to learn how to do it.
Thanks for taking the time to write this all up.
Just what I was looking for. I have been searching and reading and searching and reading but not getting anywhere. After following your post I've dissasembled a ROM, renamed it, and then reassembled it.
Now I was just following a recipe and didn't understand everything that happened (what is the -PP value and why am I changing it?) but I'm finally making some progress. Looking forward to your upcoming posts.
BTW, I just used the official TMo US 6.1 ROM that CDGuider dumped and made available. It'll do while I'm learning but I'm really waiting for the Official TMo US 6.5 to be released so I can use it as the main ingredient.
S
sleonard said:
Just what I was looking for. I have been searching and reading and searching and reading but not getting anywhere. After following your post I've dissasembled a ROM, renamed it, and then reassembled it.
Now I was just following a recipe and didn't understand everything that happened (what is the -PP value and why am I changing it?) but I'm finally making some progress. Looking forward to your upcoming posts.
BTW, I just used the official TMo US 6.1 ROM that CDGuider dumped and made available. It'll do while I'm learning but I'm really waiting for the Official TMo US 6.5 to be released so I can use it as the main ingredient.
S
Click to expand...
Click to collapse
Let me know if I missed something. I had to do it from the top of my head so if I forgot to add an action, let me know and I'll add it.
PS, the -PP allows you to change the PagePool size (sort of swapfile for WM).
Some people set it to 0, some to 12-18. I found 18 to be working fine. I must admit that I have too little knowledge to truly understand the PP stuff to come to a clear correct value (I believe it's questionable, the values).
If anyone disagrees, let me know
This is a great post.
I've subscribed because I'm really interested in learning and once I've ran through it myself will reference it on my site for all to use.
Well done you, supply and demand.
Daxy, On Tuesday I get my Pro2 and begin to try. Thanks for a great post!!!!!!!!!!!!!
I download the files of 23069, for example, where should I hold?
Xip and sys...
Awesome Information!! Thanks a lot and I appriciate it because rarely people share knowledge!
Thanks for the clear tutorial! Looking forward to future updates!
really excited to start making my own roms...
thank you for taking the time and making this
hopefully in the future ill be able to contribute to the community...
my touch pro2 could use some of my own flavor lol
thanx for the effort ...
gonna read thru it when i am more awake ... lol ... this seem to be what i am looking for ... wanna cook my own rom but proper info is few and far between for the rhodium ... unless i waslooking in the wrong places ... hehehe
I have used this tool to dump official rom, it works. But when i dump others' customized roms, it always says 'lost XIP'. why?
Thanks all for your kind words.
I've updated Post 2: Adding / Removing programs
Hope you like it. Please let me know if anything is missing.
Next post will be regarding using a new version of Windows, where to place files etc. This one should be up in a couple of days.
eddy16112 said:
I have used this tool to dump official rom, it works. But when i dump others' customized roms, it always says 'lost XIP'. why?
Click to expand...
Click to collapse
Customized ROMs are protected. You cant dump them. You can only dump official ROMs.
eddy16112 said:
I have used this tool to dump official rom, it works. But when i dump others' customized roms, it always says 'lost XIP'. why?
Click to expand...
Click to collapse
ai6908 said:
Customized ROMs are protected. You cant dump them. You can only dump official ROMs.
Click to expand...
Click to collapse
Correct! even if the customized rom was unprotected you still would not be able to rebuild a rom off of it because of the loss of rgu's and dsm's in the origional building process. would be very difficult.. best thing to do is ask for the kitchen files from the chef and hope they can share.
edit: one thing you can do is use an app called rom imaged editor and open the nbh with that, you can grab individual files out, even protected roms you can.. then you can add things on your own.
I've changed the topic to My first Rhodium ROM. Though it would sound better.
joshkoss said:
edit: one thing you can do is use an app called rom imaged editor and open the nbh with that, you can grab individual files out, even protected roms you can.. then you can add things on your own.
Click to expand...
Click to collapse
I have extracted files from kooked roms no biggie. saves time from flashing for sure...
I have tried to extract all files from kooked rom too, and it seems to work. but might be able to use some dll files.
Everytime I build the ROM (rebuilding the stock rom, not config changes) towards the end the kitchen gives me a runtime error, I have tried on a 64-bit vista and 32-bit XP.
After reviewing the log it appears that the problem is:
Executing: kitchen_build_rom.bat.....
ERROR! (errorlevel: 1)
ERROR executing: kitchen_build_rom.bat
ERROR!!!
Wait some seconds...
No ''SVN'' folders present...