First off this is not really a guide, but more information and nomenclature to help beginners get orientated. There are plenty of guides out there already that tell you how to install ROMs. This is also not a guide to rooting, again, plenty of resources already exist that describe quite clearly the steps needed for that. This post is about basic concepts along with terminology to help beginners understand what a ROM, kernel, or theme really is.
Let's begin with ROMs. What is a ROM? Well, a ROM is a binary image which get's "flashed" to something. What does that mean? In the case of the android it amounts to installing an operating system. You can think of flashing a ROM the same as installing Unbuntu or Windows 7 for example. This is the core of the operating system of the phone. There are many custom ROMs out there. Too many to list here, again there are plenty of other posts out there with this information.
Now let's talk about kernels. What is a kernel you might ask? Well, that answer is a bit more complicated and you have to understand how most embedded systems are designed to fully appreciate what it means but I can try to illustrate it. Keep in mind this is an extreme oversimplification and in reality most embedded systems are very complex:
At the root of most systems lies a separation between hardware, low level drivers, and applications. This separation is where the kernel lives. The kernels job is to talk to hardware drivers, and even sometimes directly to hardware, as well as talk to applications. You can think of the kernel as the interpreter, if you will, between the hardware signals and applications. When an application want's to draw something to the screen it doesn't want to have to worry about figuring out the proper timing to setup the data and push it to the screen driver. It just want's to say something like "draw this" while shoving it some high level pixel data. The kernel takes care of all the nasty details. So, it's important that your kernel is fast and optimized well. Otherwise you will have a lag filled, or worse, buggy experience.
Finally that brings us to themes. What are themes? Well, themes are simply a replacement of icons, colors, and other system level gui elements. They are usually very low impact and usually only change visual appearance. They can be used to make your phone really stand out. There are quite a few really cool ones out there - again, too many to list.
Let me talk about install order quickly before wrapping up. If you decide to install either separately through ROM manager or manually using recovery it's important to understand the dependencies between these elements. Since the ROM represents the OS, it makes sense that you would install that first. The next step would be to install the kernel of your choice. This step is optional as most ROMs come with a pre-installed optimized kernel. The final step is to install the theme. Most themes are based on a specific ROM so, again, it makes sense to install them after the ROM.
One last thing I want to talk about is tools. You might ask, what kind of tools can I use for this whole ROM thing? Well, it's a good think you ask. There are two really great tools out there to help you along your way. One of them gives the added benefit of providing you a chance to give back to the great community who sacrificed there time with family and friends to give us these cool things which we get to show off to our family and friends . That tool is called ROM Manager. You can download it from the marketplace on your phone. Make sure to get the donate version. For a price of a Starbucks coffee you can give back and feel good about using all these cool things. Plus it gives you access to premium content - all good stuff.
The second tool, which you get as a bonus if you get ROM Manager is ClockworkMod Recovery. That is a MUST HAVE for installing your ROMs. You can use SPRecovery but the steps are more complex. Do yourself a favor and get ClockworkMod.
A third, optional, tool, is SetCPU. Again, this app is very reasonable priced and gives you lots of power and control over your system. Not to mention some valuable information about system health.
Some more tools that are great to have for your ROM experience*:
Titanium Backup aka TiBU (credit to UBRocked / johngalt for the idea)
Quadrant Standard
Terminal Emulator
* You may find yourself actually "needing" one or more of these tools in your ROM adventures. They become a "must have" at that point
Always remember to backup before playing around - nandroid is your best friend. Also, if you have any questions or are unsure of any steps don't hesitate to come to these boards and ask your questions. There are many people who are willing, and glad, to help you with your problems.
Happy ROMing!.
Let's begin with ROMs. What is a ROM? Well, a ROM is a binary image which get's "flashed" to something. What does that mean? In the case of the android it amounts to installing an operating system. You can think of flashing a ROM the same as installing Unbuntu or Windows 7 for example. This is the core of the operating system of the phone. There are many custom ROMs out there. Too many to list here, again there are plenty of other posts out there with this information.
Now let's talk about kernels. What is a kernel you might ask? Well, that answer is a bit more complicated and you have to understand how most embedded systems are designed to fully appreciate what it means but I can try to illustrate it. Keep in mind this is an extreme oversimplification and in reality most embedded systems are very complex:
At the root of most systems lies a separation between hardware, low level drivers, and applications. This separation is where the kernel lives. The kernels job is to talk to hardware drivers, and even sometimes directly to hardware, as well as talk to applications. You can think of the kernel as the interpreter, if you will, between the hardware signals and applications. When an application want's to draw something to the screen it doesn't want to have to worry about figuring out the proper timing to setup the data and push it to the screen driver. It just want's to say something like "draw this" while shoving it some high level pixel data. The kernel takes care of all the nasty details. So, it's important that your kernel is fast and optimized well. Otherwise you will have a lag filled, or worse, buggy experience.
Finally that brings us to themes. What are themes? Well, themes are simply a replacement of icons, colors, and other system level gui elements. They are usually very low impact and usually only change visual appearance. They can be used to make your phone really stand out. There are quite a few really cool ones out there - again, too many to list.
Let me talk about install order quickly before wrapping up. If you decide to install either separately through ROM manager or manually using recovery it's important to understand the dependencies between these elements. Since the ROM represents the OS, it makes sense that you would install that first. The next step would be to install the kernel of your choice. This step is optional as most ROMs come with a pre-installed optimized kernel. The final step is to install the theme. Most themes are based on a specific ROM so, again, it makes sense to install them after the ROM.
One last thing I want to talk about is tools. You might ask, what kind of tools can I use for this whole ROM thing? Well, it's a good think you ask. There are two really great tools out there to help you along your way. One of them gives the added benefit of providing you a chance to give back to the great community who sacrificed there time with family and friends to give us these cool things which we get to show off to our family and friends . That tool is called ROM Manager. You can download it from the marketplace on your phone. Make sure to get the donate version. For a price of a Starbucks coffee you can give back and feel good about using all these cool things. Plus it gives you access to premium content - all good stuff.
The second tool, which you get as a bonus if you get ROM Manager is ClockworkMod Recovery. That is a MUST HAVE for installing your ROMs. You can use SPRecovery but the steps are more complex. Do yourself a favor and get ClockworkMod.
A third, optional, tool, is SetCPU. Again, this app is very reasonable priced and gives you lots of power and control over your system. Not to mention some valuable information about system health.
Some more tools that are great to have for your ROM experience*:
Titanium Backup aka TiBU (credit to UBRocked / johngalt for the idea)
Quadrant Standard
Terminal Emulator
* You may find yourself actually "needing" one or more of these tools in your ROM adventures. They become a "must have" at that point
Always remember to backup before playing around - nandroid is your best friend. Also, if you have any questions or are unsure of any steps don't hesitate to come to these boards and ask your questions. There are many people who are willing, and glad, to help you with your problems.
Happy ROMing!.