Ok, here's the files. I started on att manila(which is where tab comes from) and now have it running on non att manila(. This has been tested with ONYX theme which is using the latest htc manila version(1.2.35845.1_1813.6), which is where pics came from. I had up to 48 shortcuts made up, so I don't think it has a limit. It can be an odd number of shortcuts, doesn't have to have 3 on last row.
Its made from the ATT tab that was used for ATT specific links. I removed the ATT links and images. I added the tab icon links for tab bar back into the icons.mode9 file, 61f866ab_manila. Included lua scripts and ATT tab icons (1a5a121d_manila and 2e35e5f2_manila) which you can change to match your theme. The heart of it is the att_tabitems.xml which is where you have to edit your links for the shortcuts. All of files in zip need to be placed into \Windows folder on your phone. I can't make a cab, because you will have to edit the xml file to use this first. You can make shortcuts to open web links, files, folders, or apps. IconPath can point anywhere? or left blank. The softkeys are also set in the xml, so make them what you want. They currently connect to home and programs tabs of tf3d.
Here's some examples of xml, in these I was linking to icons folder I made in root of device named Realize(from the realize icon set).
App Link
Code:
<ATTtabItem
Name="Total Commander"
Path="\Program Files\Total Commander\cecmd.exe"
Arguments=""
IconPath="\Realize\TotalCommander.png"/>
Web Links
Code:
<ATTtabItem
Name="Opera"
Path="\Windows\OperaL.exe"
Arguments="http://m.google.com"
IconPath="\Realize\Opera95.png"/>
<ATTtabItem
Name="Google"
Path=":DEFBROWSER"
Arguments="http://forum.xda-developers.com"
IconPath="\Realize\GoogleNew.png"/>
<ATTtabItem
Name="Ebay"
Path="\Windows\iexplore.exe"
Arguments="http://ebay.com"
IconPath="\Realize\ebay.png"/>
Folder/file links
Code:
<ATTtabItem
Name="Games"
Path="\Windows\fexplore.exe"
Arguments="\Windows\Start Menu\Programs\Games"
IconPath="\Realize\Poker.png"/>
Soft Keys
Code:
<Softkey>
<LSK Path="\Windows\manila.exe" Arguments="--switchtopage Manila://home.page" Text="Home"/>
<RSK Path="\Windows\manila.exe" Arguments="--switchtopage Manila://programs.page" Text="Programs"/>
</Softkey>
To Install:
1. Disable tf3d in today settings.
2. Take the xml file and edit on your pc using Notepad to setup all your links
3. Edit your 26948339_manila file using Notepad as well, add lines from Post #2 below.
4. Copy all files in zip and your 26948339_manila to somewhere on phone.
5. Copy all files into \Windows folder on your phone using Total Commander(or equivalent).
6. Restart tf3d.
Almost forgot, you will have to add tab to your tab xml for tf3d.
Edit your 26948339_manila file using notepad on your pc.
Add the following lines, just change the page number to match your xml file.
Code:
<Page Order="10" Name="atttab.page" PackageName="HTC" Title="Launcher">
<ComponentReference Name="page" Mode9Path="HTC\ATTtab.mode9" Component="GizmoRoot" SmartComponent="true" />
<ComponentReference Name="icon_normal" Mode9Path="HTC\icons.mode9" Component="ATTAtt_Off" />
<ComponentReference Name="icon_selected" Mode9Path="HTC\icons.mode9" Component="ATTAtt_On" />
<ComponentReference Name="icon_preview" Mode9Path="HTC\icons.mode9" Component="ATTAtt_Preview" />
</Page>
WOW nice work I know lots of people have been asking for something like this. Ill wait for it to be a bit easier to install and edit which I"m sure will happen once everyone catch's wind of this lol
Thanks for the hard work
Is it possible to get this tab working with the rhodium manila? I'm currently using Energy Rom series 2.
.
TUTORIAL:
HOW I COOK ROMs for the XPERIA X1
A complete, step by step GUIDE
[01 DEC 09]: SEX1 R5 pure ROM KITCHEN UP FOR DOWNLOAD at the ROM thread
PS1 My ROMs are NOT intentionally protected: feel free to dump and use any components you please
PS2 Don't be shy: ASK !! but don't be dumb: SEARCH !!
INTRODUCTION
Glad to see everybody is trying to cook these days: we are all here to learn and share
Following xda-devs spirit, I am writting this little guide to help those who could be intrested in cooking their own ROMs
Don't be shy: If I did it, YES YOU CAN do it too !!
Let's get real: NO COOKED ROM WILL 100% FULLFILL YOUR NEEDS/EXPECTATIONS BECAUSE WE ARE ALL DIFFERENT
Let's get real again: THE ONLY WAY TO STOP COMPLAINTING ABOUT "this" OR "that", FLAMING A CHEFF'S TREAD, IS BY DISCOVERING HOW HARD AND COMPLICATED THE PROCESS IS, but don't dismay: this thread is meant to guide you step by step into the cooking world
I have been reading and learning a lot, trying to build something that would suite MY OWN NEEDS, I have been using my ROMs for quite a while and I am happy and satisfied: I show off my phone and I can proudly say "I did it myself"
So I invite all of you to give it a try too: it's worth the experience
But first, may I invite you to take a look at some works:
Link to latest SEX1 R5 -release 5- ROM thread (kitchen and complete cooking log at post 3)
Link to DEUTSCH SEX1 ROM + KUCHEN thread
Link to LATIN SEX1 ROM + COCINA thread
Link to SEX1 R4 public beta testing thread
Link to SEX1 R3 -release 3- PURE, BareBone & XPERT ROMs thread
Link to SEX1 R3 public beta testing thread
Link to SEX1 release 1a ROM thread
STEP 1: BASIC REGISTRY SKILLS
Every good cooker/cheff needs basic REGISTRY skills
As a good reading/searching-needed noob, I have compiled some knowledge and here are my 2 cents:
BASICS
1- Registry keys can be generated (created) or changed with a RGU file (unicode format) or XML/PROVXML file (UTF-8 format)
Both can be edited with notepad, but make sure you choose the right format when saving
(use "save as": it will let you choose format)
Differences:
- UTF-8 for XML or unicode for RGU
- dword values must be hexadecimal in RGUs and decimal in XMLs
- RGUs store registry keys only, XMLs store registry keys, file operations, etc
2- A PROVXML file is a glorified XML: it loads automatically when cold-booting the device (hard reset or first boot), which means all of it's instructions, file operations & registry keys will be auto-executed and will override similar instruction from RGUs
In the other hand, XMLs have to be invoked ("runned") during customization (usually from OEM\Operatorpkg\config*.txt)
ORDER OF IMPORTANCE
1- When cooking the ROM, all RGU files are compiled and gathered to create the main, barebone system registry (see Jack's comment some posts down)
2- After flashing the phone, when the ROM is loaded for the first time (when it takes forever to boot = "cold boot", same as after a hard-reset), all commands inside all PROVXMLs are auto-executed, overriding corresponding registry keys from REG/RGU files
3- After the "set date" and "align" screen, the auto-customization process starts:
Anything inside "config.txt" will be autoexecuted (apply themes, install CABs, run XMLs...)
Here is where I execute my customization XMLs and any required OEM customization XML
Here is an example "config.txt":
Code:
LOCK:Enabled
CAB: \WINDOWS\ActiveX_Deployment_signed.CAB
CAB: \WINDOWS\WM6.1_PPC_dawn_Opera_15969_signed.cab
CAB: \WINDOWS\gtrab_SEX1_Customization.CAB
XML: \WINDOWS\SEX1_fileoperations.xml
XML: \WINDOWS\My_panelconfig.xml
TSK: \WINDOWS\Naked_chiks.TSK
LOCK:Disabled
RST: Reset
- As a side note, "config.txt" usually goes inside OEM\OperatorPkg, and runcc.lua governs which files are auto-launched
- I put most of the big CABs inside OEM\PACKAGES, eg. PACKAGE_Kovsky_ActiveX_Deployment
- I put the small or orphan CABs into OEM\OperatorPkg, together with my XML files, to keep them handy and keep them in mind at a glance towards the customization files
Conclusion: Better put all of your important registry tweaks in XML or PROVXML files instead of searching for a specific registry key inside more than one hundred RGUs, anyway they will be overrided by any XML or PROVXML instruction pointing to that same registry key
COOKING IMPLICATIONS
1- If required, each OEM or SYS PACKAGE has its own RGU file and/or PROVXML files
Some PACKAGES don't need registry settings, so they don't have an RGU inside
2- The RGU name must be THE SAME as the PACKAGE identifier DSM file
3- Only ONE RGU file is allowed per PACKAGE, but each PACKAGE can contain as many PROVXMLs as required
4- PROVXMLs are a very useful tool because we can add lots of customized instructions to our ROMs ("move this file", "delete that file", "rename this one", "remove Hidden attributes", etc)
5- I prefer to edit the "stock" PROVXMLs instead of creating new ones: a single format error will make the whole XML unusable and the customization process will omit it
SAMPLE RGU FILE
BASIC RGU / REG RULES:
- First line must say "REGEDIT 4" (don't ask me why )
- Anything apres a ";" is just a comment and won't be processed
- Last line must be empty (again don't ask me why )
Code:
REGEDIT4
; this line has a semicolon, so it will not be processed
; gtrab SEX1 registry tricks compilation
; google rulez: those who search shall find !!
; DISABLE SECURITY WARNINGS
[HKEY_LOCAL_MACHINE\Security\Policies\Policies]
"0000101a"=dword:00000001
; VIBRATE AND RING
[HKEY_CURRENT_USER\ControlPanel\Sounds\RingTone0]
"Script"="av0pw3r"
"Sound"="\\Windows\\Rings\\Sony Ericsson.mp3"
"Category"="Ring"
; HIDE SIM CONTACTS
[HKEY_CURRENT_USER\ControlPanel\Phone]
"ShowSIM"=dword:00000000
; DISABLE AUTO WORD SUGGESTION
[HKEY_CURRENT_USER\ControlPanel\Sip]
"SuggAutoCorr"=dword:00000000
"SuggWords"=dword:00000000
; ENABLE SCREEN TAP SOFT SOUND
[HKEY_CURRENT_USER\ControlPanel\Volume]
"Screen"=dword:00000001
; DISABLE AUTO DIM / AUTO TURN OFF SCREEN
[HKEY_CURRENT_USER\ControlPanel\BackLight]
"BatteryTimeout"=dword:00000000
"ACTimeout"=dword:00000000
"LightDetectOn"=dword:00000000
; DISABLE AUTO TURN OFF DEVICE
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\Timeouts]
"ACSuspendTimeout"=dword:00000000
"BattSuspendTimeout"=dword:00000000
; ENABLE TOUCHFLO SCROLL SOUND
[HKEY_LOCAL_MACHINE\Software\OEM\TFLOSettings]
"EnableSound"=dword:00000001
; MIC AGC ON
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\AdvancedCPL]
"MicrophoneAGC"=dword:00000001
; IMPROVE BT A2DP SOUND QUALITY
[HKEY_LOCAL_MACHINE\Software\Microsoft\Bluetooth\A2DP\Settings]
"MaxSupportedBitPool"=dword:00000028
"BitPool"=dword:00000028
"UseJointStereo"=dword:00000000
; BT DEFAULT DEVICE NAME
[HKEY_CURRENT_USER\Software\Microsoft\Bluetooth\Settings]
"LocalName"="SEX1"
; WM6.5 PATCH - TASKBAR BATT ICON CLICK OPENS POWER SETTINGS
[HKEY_LOCAL_MACHINE\Software\Microsoft\Shell\TaskBar]
"LimitedClock"=dword:00000001
"ConsistentClockOrBattery"=dword:00000000
; SCROLLBAR SLIGHTLY THICKER
[HKEY_LOCAL_MACHINE\System\GWE]
"cyHScr"=dword:0000000f ; Hex f = Dec 15, standard value was Dec 13
"cxVScr"=dword:0000000f ; Hex f = Dec 15, standard value was Dec 13
"cyVScr"=dword:00000015 ; Hex 15 = Dec 20, untouched standard value
"cxHScr"=dword:00000015 ; Hex 15 = Dec 20, untouched standard value
; DISABLE SMS WAKE UP
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\RIL]
"DisableSMSWakeUpEvent"=dword:00000001
; EMAIL LED ILLUMINATION ON
[HKEY_LOCAL_MACHINE\Software\Drivers\illumination\27]
"Enable"=dword:00000001
; USE LARGE KEYS FOR SIP KEYBOARD
[HKEY_CLASSES_ROOT\CLSID\{42429667-ae04-11d0-a4f8-00aa00a749b9}]
"KBMode"=dword:00000000
Again: DON'T FORGET to leave the last line empty !!!
XML / PROVXML SAMPLE
Check this *.PROVXML file guys, I edited it to rename my SEX1_stwater*.png custom backgrounds to stwater*.png (thus making them the "default" backgrounds after the flash)
Also, there's a registry change example included in this sample XML:
Code:
<wap-provisioningdoc>
<characteristic type="Registry">
<characteristic type="HKCU\Software\Microsoft\Today">
<parm name="Skin" value="\Windows\Classic Blue.tsk" datatype="string"/>
<parm name="UseStartImage" value="1" datatype="integer"/>
<parm name="DPI" value="192" datatype="integer"/>
<parm name="MultiColorThemeEnabled" value="1" datatype="integer"/>
</characteristic>
</characteristic>
<characteristic type="FileOperation">
<characteristic type="%CE2%" translation="install">
<characteristic type="stwater_480_800.jpg" translation="install">
<characteristic type="Copy">
<parm name="Source" value="%CE2%\SEX1_stwater_480_800.jpg" translation="install" />
</characteristic>
</characteristic>
<characteristic type="stwater_800_480.jpg" translation="install">
<characteristic type="Copy">
<parm name="Source" value="%CE2%\SEX1_stwater_800_480.jpg" translation="install" />
</characteristic>
</characteristic>
</characteristic>
</characteristic>
</wap-provisioningdoc>
Continued...
STEP 2: THE KITCHEN
[01 JUL 09] Uploaded the kitchen I used to cook my SEX1 R3.61 XPERT ROMImprovements: 1- During cooking process, it will let you choose between LZX or XPR compression without having to change any files (now it uses th "mythical" universal cecompr.dll ) 2- Before closing, it pauses to let you explore or copy temp files 3- Smaller in size and super FAST: cook a 100 MB ROM in one minute (using XPR)
[01 JUN 09] SEX1 KITCHEN, more simple, small & easy to use. Download at post footer
[01 JUN 09] COCINA SEX1 con ejecutable ('script') en español, más sencilla, pequeña y fácil de usar. Descarga al pie de este post
BASICS
Every Kitchen requires Microsoft Visual Basic redistributable & Microsoft .NET Frameworks 3.5 to run
Download here: http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&DisplayLang=en
Some Kitchens must to be placed in the root directory C:\
The SEX1 kitchen can be placed anywhere in your PC, even in your desktop if you wish
INTRODUCTION
A "kitchen" is a compilation of tools, some are optional and some required to cook a ROM
The SEX1 Kitchen has the minnimum required tools only, making it smaller
Some users have written SCRIPTS to automate the cooking process and make things easier, so even I can cook
The script guides you instead of manually launching every required app in the correct order
Just click "Cook.bat" "kovskykitchen.bat" or "buildNB.bat" (it depens on which kitchen you are using) and the automated script will do the rest
This SEX1 Kitchen is a modified derivant from Bepe's old Kitchen structure with updated tools, and in this case I wrote the script for the automated process myself
Erviu's Visual kitchen is a more modern, UI-oriented alternative, but by the time being I will focus on the structure and some basic concepts for this classic ole' style kitchen from Bepe because Visual Kitchen uses a dfferent folder structure
STRUCTURE
Inside the Kitchen you will find 4 folders and the Kitchen's batch script:
BATCH SCRIPT:
- When finished populating OEM, SYS and ROM (XIP) folders with your desired OEM packages and CE|OS build choice, double click the batch script to start cooking and have a smoke or a coffee while it finishes (this Kitchen is unattended, it takes around 2 minutes to auto-cook a 100 MB ROM with standard compression)
For the english Kitchen: double click "Cook.bat"
Para la Cocina en español: doble click "Cocinar.bat"
- The batch script can be edited with notepad
I inserted some REMARKS ("REM") inside the script:
1- First one if you want to include a pause in the right place to manually edit file attributes before cooking the ROM
2- Another one in case you want to Hex-edit "imgfs.bin" to manually change compression from stock WRX to new LZX
NOTICE 1: LZX compression can be used in this Kitchen by populating the \ROM\ folder with a LZX compression enabled "os.nb.payload" or by editing the new "imgfs.bin" during the cooking process
NOTICE 2: LZX uses a different compressor DLL, it can be downloaded at post footer and relaced in \tools\ folder
KITCHEN FOLDERS:
- The \Tools\ folder is the "oven": it contains all the required tools to cook the ROM
I added step by step explanations into the script, so you can check it to see what happens and which apps are called, to better understand the cooking process: It's worth taking a look
We should be grateful with bepe, bot, ervius, MrVanx, OM-BY, blasphemer, udk and many others for these amazing tools
One year ago the process was SO TEDIOUS and HARD... now it is a matter of clicks !!
- The other 3 folders, OEM SYS & ROM, are where the future ROM parts must be placed:
Download the Kitchen first, then populate these folders with your desired recipee
- Where to get OEM, SYS and ROM (XIP) contents from ??
Use mines (from this tutorial), or dumped ones, or from other users who have shared them
There are many many available around the subforum, just do your homework and search
NOTICE 1: SYS packages must be 192 dpi 480 x 800 resolution !!
NOTICE 2: ROM (XIP) with os.nb.payload must come from a XPERIA, otherwise it must have been ported for the XPERIA
NOTICE 3: If you plan to use a ROM (XIP) folder from jerpelea or my newer "SEX1 release 3", the proper compressor DLL must be downloaded and replaced at "/tools/" folder (the ROM compression selection lyes inside "os.nb.payload")
After populating these folders, your future ROM is basically already there, dismantled into the 3 folders:
- ROM folder is the core
CE build version is here, in "xip.bin" (in some kitchens like this one, "xip.bin" is already inside "os.nb.payload")
- SYS folder contains all Microsoft Operatin System shizzz (media player, Titanium, bootscreen, backgrounds, themes, calendar... etc)
OS build version is here, in \OS\ folder
- OEM folder contains Sony or HTC customizations (Dialer skin, Xperia Panels, TouchFlo...)
OEM version (customization) is here, in \OEMVersion\ and \OperatorPkg\ folders
- In most kitchens your new cooked ROM will "appear" in the RUU folder, which contains a "Rom Update Utility" app required to flash your fresh new custom smokin' cooked ROM to the phone
In the SEX1 Kitchen the new cooked ROM will "appear" in the root kitchen folder, renamed to kovsimg.nbh, ready to be flashed with the microSD method (safer IMHO)
Of course it can be renamed to RUU_signd.nbh and USB-flashed from the PC with the RUU app too
OPTIONAL TOOLS FOR THE SEX1 KITCHEN
Along with the Kitchen, I have uploaded some very useful tools to this post
They are not required but some people could find them usefull and can be optionaly added to the kitchen:
(I wrote and included instructions for each tool inside the ZIP)
xvi-32 Hex Editor -> useful to hex-edit files (I Hex-edit my ROMs to change the ROM initial date, tutorial @ post 90)
Page Pool changer by OM-BY -> Changes the ROM page pool size (some say 0 is better, others prefer 8MB or even 16MB. I use 0=auto)
SYS version by MRVanx -> Gives the real version of every package in SYS folder (don't be surprised: all SYSs floating around are hybrids somehow)
RUU ROM Update Utility 3.22.4.3 for Xperia X1 -> To flash ROMs from the PC
LZX compression: To make the SEX1 Kitchen COMPATIBLE with LZX-compressed ROM/XIPs, just replace the CE compressor DLL in \TOOLS\ folder with the one posted below
Continued...
STEP 3: The OEM folder, HERE'S WHERE WE'RE GONNA PLAY !!
Downloads
Download OEM, ROM & SYS folders (OEM base: R3AA010 WWE) (XIP|SYS 21815) here from SEX1 R3.61 XPERT [01 JUL 09]
Download OEM folder (base: R2A+R3A "beta" WWE) here from W4X.23 [01 MAY 09]
NOTICE: All OEM folders and PACKAGEs I use are optimized for Bepe's old style Kitchen
Change Log of my OEM packages
release 3 OEM change log:
I dumped R3AA010 UK ROM -> deleted unnecessary OEM packages and streamlined others into \OperatorPkg ("AAinfo.txt", "runcc.lua", operators config "Provision.zip", etc), but kept \ExtendedPkg,
then I:
- Edited OEM\OEMDrivers RGU to:
enable XPERIA start up anime from cold boot (keys were originally added during customizaton in "fileoperations.xml"),
disable SMS sent notification pop up ("NoSMSsentmsg" value 0 -> 1)
disable reg keys for Auto Error Reporting's fatalerror DLL
- Edited OEM\ExtendedPkg\"fileoperations.xml" to:
remove the Bond trailer link inside
- Deleted "fatalerror.dll" in OEM\OEMDrivers
- Deleted "Bond trailer.mp4" and Handango store link in OEM\ExtendedPkg
- Added PACKAGE SD tune UP by tnyynt
- Added my multi-PACKAGE MS SDK certificates + registry lock OFF + CAB insallation warnings disabled
W4X.23 OEM change log:
I dumped XPERIA R2A ROM & downloaded R3A beta OEM packages @ cheffs develop and share centre thread,
then I:
- Deleted unnecessary OEM folders, gathered all XPERIA SEMC contents (from \ExtendedPkg) into two CABs, put them inside \OperatorPkg and edited "config*.txt" to invoke that CABs during customization
- Wrote XMLs for SEMC file operations and edited "config*.txt" to invoke those XMLs during customization (after my SEMC CABs installations, otherwise files wouldn't be found !!)
- Deleted Bejeweled, Sudoku and other unused packages
- Replaced R2A "kovsky" packages with R3A beta packages
- Added PACKAGE for Xtrakt game
- Added PACKAGE for other Panels (Growing panel, Facebook panel, etc)
- Edited OEM\OperatorPkg\"panelconfig.xml" accordingly to the new panels I added, and in my desired panel slot order
OEM - PACKAGES TUTORIAL
Inside SYS and OEM folders we will find PACKAGES
- A PACKAGE contains an app or util or configuration or else
- A PACKAGE is a group of files that do something: There's a PACKAGE for Adobe reader, another one for OEMDrivers, Dialer, VideoTelephony, GoogleMaps, etc
- Basically speaking, this is what we call "cook": to REMOVE or ADD PACKAGES to a recipe and customize the ROM with apps and utils or tweaks
MORE EASYER ?? Bepe's ole style kitchen uses bepe's BuilOS 0.91 utility to control which PACKAGES are included or not in the new ROM, without having to delete PACKAGES folders every time
You need to create a "option.xml" file inside each PACKAGE for the BuildOS to display it in the list of available, selectable PACKAGES
If a PACKAGE doesn't contain "option.xml" BuildOS will assume it must be cooked, by default
How to create "option.xml" ?? It can be manually created, or automatically created with ervius' package creator
HOW ARE FILES ARANGED ??
- Most files in a ROM (inside OEM or SYS PACKAGES folders) are "normal" files
- But some special "system" files have been disasembled in "Modules"
Eg.: If you search for "shellres.dll" you will not find it, but you will find a folder called "shellres.dll" with *.bin, *.txt and some S000, S001, S002 etc files inside: This is "shellres.dll", but disasembled into "modules"
"recmod.exe" converts Files <-> modules
Dissasembled files are re-assembled when the ROM is flashed
EVERY FILE inside all OEM and SYS PACKAGES will go to \Windows unless stated different
How to tell a file not to go to \Windows ??
Read fards' explanation on post 12 from this thread Initflashes.dat governs what folders are created and which files are moved
Another way to move files is using ye ole *.PROVXML files with proper instructions (I suggest you to open and study some of the stock *.PROVXML files to understand the basic syntax, it's very easy once you have seen a couple of them)
SELECTING ROM CONTENTS
Each package is an app or utility or program or set of customizations, you can add or remove at will, replace a "KOVSKY" app for a "RHODIUM" or "BLACKSTONE" one, but beware: some apps require others !!! Example: If I delete "PACKAGE_Kovsky_PhoneCanvas_VT" (which i the XPERIA phone dialer) and replace it for another dialer skin, I should also delete (or replace) "PACKAGE_Kovsky_VideoTelephony" (It wouldn't make sense to mix up the skins)
Don't worry, this is basic common sense thing, but of course requires a standard trial and error learning curve
CUSTOMIZING / TWEAKING THE ROM
Most of the more important user-related registry keys are inside OEM folder packages
As I stated before, registry changes can be made "inside" every RGU or, as Itje suggested, better put 'em on a PROVXML file, so the "basic" structure of the ROM is not altered next time you want to cook a different ROM and you don't want that change again
TIPS
- Build your mental "structure" of what you want in your ROM
- Start with basic packages cook the ROM and flash it, if it boots and workss, continue tweakin' / moddin'
- Make "maybe yes/maybe not" apps or utils (packages) OPTIONAL in BuildOS with Ervius Package Creator
(The file "option.xml" will not be cooked the ROM, it is there ONLY to tell the kitchen "this is an optional package and the cheff is going to decide wether to select it or not while cooking")
- Avoid LOTS of wasted time by following this advice from a somnolent beginner: KEEP TRACK OF EVERYTHING YOU DO -> WRITE AND MAINTAIN A CHANGE LOG !!!
Who knows ?? Maybe next day you won't remember "which" RGU you edited late last night, or even worst: "what da heck" you tweaked, or "what for"
- Some programs can not be added as packages because some of their files may have repeated names with other packages:
THE KITCHEN WILL STOP COOKING AND WARN FOR A "REPEATED" FILE
(the ROM can't flash 2 files with the same name to \Windows - remember everything goes into \Windows folder during first boot !!)
CABs are very usefull in this case, but beware:
CABs WILL NOT "auto-install", you have to "invoke" them during the CUSTOMIZATION PROCESS, usually adding a line into a "config*.txt"
I chose to drop some CABs inside "OperatoPkg" (again: to keep an eye on them), and kept "stock" PACKAGES for other CABs (check Xtrakt or Opera packages as an example, and open the config*.txt files to see how these CABs are "invoked" to install during first boot customization process)
SOME PACKAGES
Attached to this post footer you will find a OEM PACKAGE I prepared, meant to add the XPERIA boot start up animation to any ROM (my OEMs all have the animation enabled by default)
BatteEnhancer will include Ethermind's 1% battery driver for XPERIA with required registry changes
SDK+CAB-REG will install SDK certificates (SDKcerts), disable the "non-signed" warnings when installing CABs and turn registry security off (to be edited with any reg editor)
SD tune UP from tnyynt will make your SD card read/write faster
.NET Frameworks (.NET CF) version 3.7
Continued...
STEP 4: THE XIP AND SYS FOLDERS FROM MY ROMS
Downloads
Download ROM (XIP) folder OS build 21806 here from SEX1 release 3
Download SYS folder CE build 21806 here from SEX1 release 3
Download ROM (XIP) folder OS build 21500 here from W4X.23 (source: jerpelea's kitchen)
Download SYS folder CE build 21500 here from W4X.23
Some changes I often make inside SYS folder
- SYS\Base_DPI_192\: Customize "StartMenu_Selection.png" (honeycomb background for selected item)
- SYS\Base_dpi_192_resh_480_resv_800\: Customize "stwater*.jpg" (XPERIA silver theme aluminum background)
- SYS\Redist_dpi_192_resh_480_resv_800\: Customize "welcomehead.192.png" (WM6.5 orange bootscreen says "SEX1")
Applying Halsted's principles to the cooking process, better avoid making changes inside the SYS folder,
instead, now I run my personalizations during the customization process (remember "\OEM\OperatorPkg\config*.txt" ?? Yey !! there, using some XMLs and CABs !!)
HOW TO CHANGE / UPGRADE AND PORT XIP | SYS GUIDE
- XIP (CE build version) and SYS (OS build version) can be upgraded separatedly, which means you can have a "21500|21806" build or whatever
- Language and resolution can be changed without having to port
To upgrade SYS build version:
Replace folders inside SYS with newer build ones
Done
- Beware !! don't change ".VM" and "WinCENLS_WWE" folders, they are device specific
- The Kitchen's automated "G'reloc" will do the rest of the dirty work during cooking (reallocating modules in ROM memory)
- Wanna find out what SYS version each folder is ?? Use SYS version by MRVanx
To upgrade XIP build version:
Insert the new "xip.bin" into "os.nb.payload"
Easy, ain't ??
- Beware !! "xip.bin" is device specific
- If a "xip.bin" containing the desired OS build is not available for the device, it can be ported from any "xip.bin" (from other HTC device), then it can be inserted into the native "os.nb.payload"
- MORE INFO on how to extract "xip.bin" from "os.nb.payload", how to port "xip.bin" and how to insert the new "xip.bin" into payload: go to page 11, post 106
To change ROM resolution:
Let's say you just put your hands on a newer SYS build, but it is QVGA (XPERIA is WVGA):
All SYS folders labeled "resh_240_resv_320" should be replaced with "resh_480_resv_800" WVGA resolution folders
That's it !!
- TIP: It doesn't matter if correct res folders are taken from a previous build
- Syntax Note: "resolution horizontal 240 x resolution vertical 320"... get it ??
To change ROM language:
Let's say you want to convert the ROM to spanish language:
Dump a Spanish OEM and add folders to OEM (at least the basic OEM ones)
Replace all "Lang_0409" (WWEnglish) folders in SYS with "Lang_0c0a" (spanish) folders
Edit ROM\XIP\ RGU: change MUI locale lang from 0409 to 0c0a
Piece of cake
- Beware !! ".VM" and "WinCENLS_WWE" folders are device & language specific
- TIP: When editing the RGU, search strings for "lang" or "0409" & you will know what to change
HOMEWORK: I WANNA SEE YOUR NEWER BUILDS XIP | SYS PORTS POSTED, STRAIGHT AND RUNNING GUYS !!
KEEP READING THE THREAD GUYS, you can find more useful info and tips from Xperianced senior cookers !!
.
gtrab said:
1- When cooking the ROM, all *.RGU files are compiled and gathered to create the main, barebone system registry
Click to expand...
Click to collapse
Actually, all the rgu files will be compiled into user.hv (anything under HKCU) and default.hv(anything other than HKCU) first. Therefore, it's the final place to check the registry outcome if you have lots of RGUs and the content are overlapped.
Good job and keep up the good work.
Thanks for pointing out jack
Your help and tips are greatly appreciated, as much as your ROM works
.
Very nice thanks! This can be very usefull for our n00b cookers! Maybe I will try it sometime!
Thanks alot. This is a very good information for newbies like me.. Going to start and cooking later
Wow, thanks A LOT for that!
This was really needed... off to cooking
Thanks a Lot !!! You're really a GOOD MAN !
Great, that's really great and gives us a view inside the things behind the ROM
well researched however you've missed a couple of things..
initflashes.dat is editable using notepad and is used to set up files that you'd rather not access from windows. it is used to copy files from windows to the folders they need to be in, such as program files.
Every file you put into the rom will be in windows folder.
it's best if you reduce the amount of provxmls whenever you can, as well as the DSM files (one reason to use Bepes latest kitchen as it doesn't leave them in the rom),
the less files in windows the better if you want more speed.
great tutorial. thanks again.
I have downloaded the OEM package and tried. Everything works.
I have question:
Do you know how to turn off the notification stuff on the title bar? Every time when I press the task manager icon, I either hit the battery or the speaker volume icon, therefore these notifications pops up. I want to make the battery and speaker icon non-touchable.
kluks said:
great tutorial. thanks again.
I have downloaded the OEM package and tried. Everything works.
I have question:
Do you know how to turn off the notification stuff on the title bar? Every time when I press the task manager icon, I either hit the battery or the speaker volume icon, therefore these notifications pops up. I want to make the battery and speaker icon non-touchable.
Click to expand...
Click to collapse
I know how to disable the battery icon click -> power app in WM6.5:
undo the "click battery opens power control panel" REG trick
(batery icon tap response comes disabled by default... waiting for the NEW POWERDRIVER surprise )
@FARDS:
MANY TAHNKS: GOOD POINT,
Will quote your text in front page
you can also use runcc (with mortscript) to trigger Sdautorun on your Sd card.
http://forum.xda-developers.com/showthread.php?p=3613983#post3613983
Runcc looks like it's going to be more important in future..
great tut so far.
XIP and SYS folders uploaded
SYS changes explained
more details added to Step 1 and 2
great work man! you are the man!
Awesome! Thank you so much! I really want a 6.5 ROM with rhodium dialer, rhodium youtube, and rhodium album. I have been wanting to cook a 6.5 ROM but could not get through it so far. Hopefully I will be able to accomplish this now. Looking forward to the rest of your guide and your kitchen. Perhaps I can apply the knowledge you have already given to jerplea's kitchen though.
The option.xml info was much needed. I was so confused as to why when I added packages to the OEM folder they would not show up in build OS.
Thanks again!
If you cook many diffrent roms (multilang etc):
Make provxml files with your regsettings/tweaks/hacks or w/e, and run them in customization..so that when you swap with newer builds with your packages, you wont have to go through the rgu/reg files to make the changes everytime..
you just bring the provxml to next kitchen...in that way you always are sure to have your fav settings with you
Ofcourse...they might need update from time to time..and the settings in a 6.1 rom might not work on a 6.5 rom... and vice versa
cheers
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...