[XPERIA X1 ROM Development] gtrab:
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...