ROMs For Dummies: Part One
From AllShadow.com Wiki
Contents |
Introduction
Welcome to Part 1 of ROMs For Dummies. This will give you an overview about ROM images and the benefits of making your own. Later parts will deal with all the nitty, gritty details and processes that you will need to complete to make your own custom Shadow ROM.
What is a ROM image?
As defined on Wikipedia, "A ROM image, or simply ROM, is a computer file which contains a copy of the data from a read-only memory chip, often from a video game cartridge, a computer's firmware, or from an arcade game's main board."
But for our purposes, we will be using a more specific type of ROM image definition, also from Wikipedia: "ROM images are also used when developing for embedded computers. Software which is being developed for embedded computers is often written to ROM files for testing on a standard computer before it is written to a ROM chip for use in the embedded system."
What makes up a ROM image?
A ROM image for Windows Mobile for Pocket PCs and smartphones contain one or more of the following parts:
Initial Partition Loader (IPL): This is the part that starts up immediately as you turn it on. It is the first part of the bootloader that starts up your phone. It starts up all the drivers from the eXecute In Place (XIP) partition of your phone in order for it to work. If this part is corrupted, your phone will not work! Do NOT at anytime mess with the IPL or the SPL!
Secondary Partition Loader (SPL): This is the part that boots up the Windows Mobile operating system.If this part is corrupted, your phone will not work! Do NOT at anytime mess with the IPL or the SPL!
Boot screen: The boot screen is the splash screen that appears as soon as you turn on the phone. Custom splash screens need to be encoded to change the boot screen.
Primary boot screen: The second splash screen you see when your phone turns on. As of the time of this writing, this can only be edited on PPCs. There is no known way to mod this on Smartphones.
Secondary splash screen: The third splash screen you see when when your phone turns on. This is actually not a separate part on either PPCs or Smartphones and is part of the operating system, making it easy to edit.
Operating System: This is where Windows Mobile and all pre-installed software lies.
Radio: This manages all communications for the device and has software for the phone radios, data bands, WiFi, Bluetooth, etc.
Why customize a ROM image?
Customizing ROM images gives users the ability to go to the extremes of customizing their devices. When you buy a phone, there are still things that you wish could be changed. Maybe you don't like certain apps that came with your phone. Maybe it's not fast enough because of the way the carrier has designed it. Maybe you have a certain look for it in mind that you want to keep as your own unique idea, styled your way. Maybe you just want to upgrade your phone and make it better and intuitive to use. In general, it gives a whole new range of customizations that make your phone more unique and personalized to your own style and speaks to you more than anything else you own does.
Limitations
For anything, there are some sort of restrictions on what and what you cannot do with customizing a ROM image. You will not be able to give it features that it never had before, e.g. a touchscreen or a full QWERTY keyboard.
The big memory problem
As you'll see in later parts to ROMs for Dummies, the Shadow has limitations on how much of software can be placed in the operating system. Though the official T-Mobile ROMs contain about 76MB of data, the generic and most current HTC mod software that is available can only fill up ~ 50 - 60MB before crashing. More on that in a future part.
On to the Next Part
If you are done with Part 1, click here for Part 2 of 5: Choosing your source and Extraction.
Or if you are looking for a different part, Part 3 of 5: Understanding the ROM and Fixing the OEM mess, Part 4 of 5: Creating Registry Edits, adding Provisioning XML and 3rd party Applications, Part 5 of 5: Rebuilding and Flashing your ROM.

