FORUMS
Remove All Ads from XDA

[REF|TUT] My first Rhodium ROM - Completed

69 posts
Thanks Meter: 0
 
By daxy, Member on 15th October 2009, 10:06 PM
Post Reply Email Thread
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.
 
 
15th October 2009, 10:06 PM |#2  
OP Member
Flag Utrecht
Thanks Meter: 0
 
More
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/j15nqf...reatingOEM.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.
15th October 2009, 10:07 PM |#3  
OP Member
Flag Utrecht
Thanks Meter: 0
 
More
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.
16th October 2009, 02:39 AM |#4  
frenchie746's Avatar
Senior Member
Flag Washington
Thanks Meter: 9
 
More
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.
16th October 2009, 08:01 AM |#5  
Member
Flag Tempe, AZ
Thanks Meter: 0
 
More
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
16th October 2009, 08:09 AM |#6  
OP Member
Flag Utrecht
Thanks Meter: 0
 
More
Quote:
Originally Posted by sleonard

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

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
16th October 2009, 10:12 AM |#7  
Senior Member
Thanks Meter: 7
 
More
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.
16th October 2009, 02:58 PM |#8  
Senior Member
Thanks Meter: 2
 
More
Daxy, On Tuesday I get my Pro2 and begin to try. Thanks for a great post!!!!!!!!!!!!!
16th October 2009, 03:30 PM |#9  
Senior Member
Thanks Meter: 2
 
More
I download the files of 23069, for example, where should I hold?

Xip and sys...
16th October 2009, 03:34 PM |#10  
Senior Member
Thanks Meter: 11
 
More
Awesome Information!! Thanks a lot and I appriciate it because rarely people share knowledge!
16th October 2009, 04:19 PM |#11  
robbertvw's Avatar
Member
Flag Breda
Thanks Meter: 1
 
More
Thanks for the clear tutorial! Looking forward to future updates!
Post Reply Subscribe to Thread

Guest Quick Reply (no urls or BBcode)
Message:
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes