Development doesn't always quite feel like development without the custom ROMs. They're such a pivotal part of our mobile experience that a proper Android experience would be hard to come by without flashing a few first. So if you just happen to be contemplating building your own, XDA-University is a great place to start your journey at.

The How to build an Android ROM guide over at XDA University is a great introductory overview to help you get started.  While it doesn't actually go into the specifics of how to actually create each component that goes into a custom ROM, it provides beginners with a comprehensive yet digestible breakdown of the essential components. These include the:

  • Kernel: "A kernel is a critical component of every Operating System. It can be seen as a sort of bridge between the applications and the actual hardware of a device.."
  • Libraries: Libraries are chunks of code specially developed to activate key functions of the device (e.g. the camera or loudspeakers). Without certain libraries in your ROM, you risk the chance of your ROM not booting or working.
  • Bootloader: "A bootloader in general is the first bytes of code that a machine executes that will tell the bootsequence and will load the operating system into the RAM."
  • Recovery: A recovery is an 'application' that allows you to flash kernels, roms, mods and tweaks. It is also a method of installing and updating your ROM, partioning your SD card and many other OS-related things.
  • Radio: The radio is the "the lowest part of software layer" that "handles the GPS antenna, GSM antenna and fires up the CPU: everything the [bootloader] needs to run the OS".

Each of these components are important to a successful ROM build, and if one of these go awry, your ROM may not boot. So make sure to check out the guide at XDA-University, as well as the wealth of guides in the XDA forums for more instruction and details.