How to choose a custom Android ROM

Retweet

Have you read my article on rooting your phone, found the right tools to do it and now you want to install a custom ROM? Chances are the most important question now is which ROM you should use. And it’s nearly impossible to give a clear answer because there are so many factors that need to be considered.

First of all, what are the improvements you’re looking for in a new ROM? Are you trying to get a newer version of Android for a phone no longer supported by the vendor? Do you want to get rid of HTC Sense, Motorola’s Motoblur or whatever other custom interface the vendor of your phone has installed and get the “real” Android experience by running a barebones Android? Or do you want additional features that give you more freedom in using your phone, but without sacrificing the user experience offered by your vendor? There are ROMs for all these cases out there, but it helps if you ask yourself these questions first.

Basically, there are three classes of custom ROMs available:

  • generic ROMs that work for a variety of brands and models
  • modified vendor ROMs that add features or even backport improvements made to newer devices by the same vendo
  • stripped down vendor ROMs that remove vendor specific functionality like launchers, widgets and tools

The most popular example of a generic ROM is the Cyanogen(mod) ROM that is ported to a large number of devices from different vendors and tries to provide the latest available version of Android to all of them with a lot of improvements, but without any vendor specific customizations.

Modified or stripped down vendor ROMs are a lot more specific, since they usually only work for a particular model. For that reason, there is an enormous number of them available and you need to find one that will work on your phone and has the features you’re looking for. theunlockr.com has a nice overview of available ROMs, sorted by model, so it’s a good starting point. Things you may want:

  • overclockable kernel (careful with that, though… do it wrong and you can fry your phone)
  • additional kernel modules like those needed for OpenVPN
  • backported enhancements like the new Gingerbread keyboard on a Froyo phone
  • latest security fixes and performance enhancements
  • Apps2SD for all applications (you will need to partition your SD card for this – ROMmanager can do that for you)

Things I wouldn’t recommend:

  • Data2SD – unless you have a very fast SD card, I don’t think this is such a good idea. It can also introduce a certain level of instability to the system
  • Adblockers – call me old fashioned, but I think that if someone writes a nice app and decides to make some money from it by serving advertising in it, blocking the ads and still using the app is no better than using pirated software.

In any case, before you install the ROM, make sure to make a complete backup (again, ROMmanager can do this for you – or you can use recovery mode). If you need to partition the SD card, make sure you move the backup off the SD card before you partition. After installing the new ROM (make sure to follow all the instructions!), you often need to wait a while until everything works smoothly. That’s because the first time your phone runs an app, including all of those included in the ROM, it needs to compile it to something that’s quicker for Android to run, which will then be cached. Original vendor updates contain a pre-compiled cache, but custom ROMs usually don’t. After an hour you shouldn’t notice any slowdown anymore, though.

Rooting your Android phone

Retweet

First of all, it is worth asking why you would want to root your Android phone at all. You need to be aware that you will be voiding your warranty by doing so (although it is possible, at least for some phones, to “unroot” them) and that if you are generally happy with the way you can use your phone, there is no need to root the phone “just because you can”.

That said, there are a few reasons why you may want to root the phone:

  • you want to have more control over your phone’s settings
  • you want to install software that requires root privileges
  • you want to be able to take a full backup of your phone
  • you want to install a custom ROM or a generic ROM instead of a branded one

So what does “rooting” actually do? The Android OS is built on Linux. By default, all Android applications run as a different, unprivileged user, so they can’t access each others’ data or generally influence each other in a bad way. Linux also knows a user called “root”, which is the system’s superuser (similar to the “Administrator” user in Windows). That user has access to all the data on the system. Certain changes to the system configuration, such as loading of kernel modules, changes to the CPU frequency or – yes – the flashing of ROMs are reserved for the root user. Android normally doesn’t give the phone’s owner the option to run software as root. For security reasons, that’s actually a good thing. However, if you want to do any of the things mentioned above, getting Android to grant you root access is the first step.

How to do it

Unfortunately there is no one tool that will work for all phones. Rooting tools depend on specific bugs in the phone’s software, which may be different on every device. So you may need to find the right tool for your phone. For example, the “Unrevoked” tool worked great for my HTC Desire. Here’s a list of tools you may want to try:

Easy Root http://www.unstableapps.com/apps/EasyRoot.apk
Super One Click http://forum.xda-developers.com/showthread.php?t=803682
Unrevoked http://unrevoked.com/
z4root http://forum.xda-developers.com/showthread.php?t=833953
Visionary http://android.modaco.com/content/htc-desire-hd-desirehd-modaco-com/320722/19-nov-r14-visionary-one-click-root/

Once you’ve rooted your phone, it may be a good idea to install the ROMmanager app and flash a new recovery image that gives you access to more features from the system recovery mode. You can also use ROMmanager to install custom ROMs, take a backup of your current ROM and so on.

Whatever application you used to root your phone, it will have installed an additional app to control superuser privileges on your phone. Whenever an application now requires root privileges, a notification will pop up and you will be able to grant root access either once or permanently. Be careful that you only grant this access to applications you trust. If some application you didn’t know as a root application suddenly wants root access, something may be wrong and you it would be best if you refused that access to avoid exposing all your data to a potentially malicious app.

Update 21/03/11:

You can now find instructions how to root a HTC Thunderbolt, which none of the above tools support so far, on the AndroidPolice website.

Welcome

Retweet
Android-devices.org will be back soon – when it was started a few years ago, there were pretty much no Android phones available and I couldn’t afford getting one myself. I let the domain sit unused for a long time, then decided to get rid of it altogether, only to change my mind a few weeks later and re-register it. Please bear with me while I’m working on some quality content. In the meantime, maybe visit a few of the sites linked to in the Twitter timeline on the right…


Performance Optimization WordPress Plugins by W3 EDGE