My Time with Android "Hacking"
Tech Answers is back! Didja miss me? This time I've got something special for you. Now, I've sampled a veritable cavalcade of different smartphones over the years, from the Treo, to the Blackberry, to the iPhone, and, most lately, the Android. There I landed, and—for the foreseeable future—there I stay. The Treo is long dead (bye-bye!), Blackberry is a dead man walking (so sad), the iPhone's one-time supremacy in the smartphone market is faded (but not gone!), and Windows Phone? Please (no). Android is flourishing when other smartphone platforms are stagnating for one simple reason: it is free and open source. Developers and individuals can do whatever they please with it. You can go to the Android project's site and download the source code for the world's most powerful mobile OS right now for no charge. It is that openness and its benefits that I'm going to ramble about in this post.
Before I get started, a warning: everything in this post is recommended reading only for curiosity’s sake. I am only an Android hobbyist, just shy of a novice. Everything I’ve accomplished in my experiments with “hacking” Android are exactly that: experiments. I’ve made plenty of mistakes along the way, and if I did not have a long history of making mistakes while experimenting with technology, I would not have had the experience necessary to fix screw-ups that would otherwise have crippled my Android devices. I owe the lion’s share of my success to the hard work of a vast community of volunteer programmers the world-over with special thanks to the XDA Developers Forums, Android Forums, Android Central, and Cyanogenmod. In truth, I have no idea what I’m doing. I’m just following the directions of others, crossing my fingers, and gritting my teeth. Follow my example only if you have an Android device to sacrifice to potential failure!
Though Android is open source, every device the OEMs release is locked-down so that their users can’t access and change low-level system settings and apps. For the lay user that’s a really good thing. Unrestricted access to the OS in the hands of someone who doesn’t know what he's doing can result in severely damaging or completely disabling a device. Those of us with more experience, an adventurous spirit, a device to practice on, and a blatant disregard for warranties will require that system-level, or what’s referred to as “root” access. The process for gaining said access is known as “rooting” a device and is very complicated. I don’t recommend you try this, particularly if you’re in the middle of a contract. You WILL void your device’s warranty, and your carrier WILL laugh at you if you bring them your broken device. The process for rooting varies from device-to-device as well as carrier-to-carrier. A device on AT&T is usually a good bit different from the same device on Verizon or Sprint. I did not attempt this until I had a spare phone to practice on (that’s not actually true, but do as I say, not as I do), so if you’ve only got the one, best not to try. If you’re interested in trying, you can find directions applicable to almost any device by Googling the name of your device, the carrier, and adding the word “rooting." For example: “Samsung Galaxy S 3 AT&T rooting.”
Why would you go to the trouble of rooting your Android device? As I mentioned, you will gain system-level access to your device’s OS which allows you to install powerful apps that cannot run without root permissions. A few examples:
Titanium Backup - Titanium is possibly the best reason to root your device since it allows you to backup ALL of your apps, even those that are protected from being backed up by regular utilities. You can also freeze apps so that they are disabled without being uninstalled, though I don’t recommend doing this for any app the purpose of which you are not absolutely 100% sure of—you could cause the device to stop functioning if you freeze a system-level app!
GL to SD - Gamers will appreciate this one since it allows the transferring of large apps (and by large I mean several hundred megabytes or even a few gigabytes) to the external microSD card. Most devices running Android 4.0 and lower should already have this functionality, but Android 4.1, 4.2, 4.3 and likely every future version do not have this option. This stinks if your phone has less than 16 GB of storage, but with this root-level app, you can transfer all these huge games and other apps to a nice big 32 or even 64 GB (depending on device support) microSD card and not worry about running out of space on the device itself.
CPU Tuner - I’ve noticed that a lot of Android devices are underclocked by their manufacturers, meaning they don’t take full advantage of the CPU’s processing power. This is most likely an attempt to compromise battery life with overall acceptable performance. CPU Tuner lets you set the maximum and minimum speed for your CPU. Gamers can bump their CPUs up to the maximum allowable speed, while all-day phone jockeys can severely underclock their devices to help conserve battery power in the extreme. This powerful system-level utility is baked into many custom Android ROMs, but we’ll get to that in a bit.
Call Master - Unlike popular non-root call blockers such as Mr. Number (still a favorite app of mine though!) which utilize fast pickup-and-hangup or direct to voice mail features, Call Master blocks calls, SMS and MMS messages from specific numbers before a notification or ringer ever sounds. You can be alerted when specific blocked numbers call, or you can just choose to ignore them altogether.
AdBlock Plus - Ads can be annoying on a mobile device, particularly when using a slow mobile connection. I generally don’t encourage the use of ad blockers since ads are the means by which most Web sites make the money to break even, never mind making a profit. Still, ad-heavy sites on a slow connection are begging for some kind of intervention.
These are just a few of the powerful apps you can take advantage of with a rooted Android device. Do a Google search for the best root apps, and I promise you’ll find many more.
Directions for rooting your phone will also include the installation of a custom recovery utility. This is a program that operates outside of the Android system and can be triggered using a combination of the physical buttons on your device when it is powered-off. In my experience the combination is usually the power button and the volume-up button at the same time, though that combination varies depending on the device. A recovery utility is a powerful piece of software. It is capable of backing-up your entire device (apps, settings, the OS, EVERYTHING) into one folder so that it can be easily restored should you manage to mess-up your device while experimenting. I have had opportunity to restore to a working back-up many, many times while playing with all this. The recovery utility can also erase your entire device, perform a simple factory reset, and last of all (well, I say “last”, I mean “last thing I’ve tried so far") install custom ROMs.
One of the results of Android's openness has been the development of aftermarket "ROMs" which are modified versions of the Android operating system. They include pretty much everything a device needs, from the OS itself to the apps and settings, and can replace the default or “stock” version of Android running on a device. Why should you care? Well. . .
Custom ROMs can include a number of features that the stock OS doesn’t. Here are some examples: increased control over the CPU so that performance can either be enhanced for faster performance or slowed so that a single battery charge lasts longer; better control of audio output and quality; and the ability to create a wifi hotspot without the need to pay that exorbitant extra price to your service provider (shhhhhh . . . ) to name just a few.
Custom ROMs include only the apps you want. Stock Android installations from the likes of Samsung, LG, HTC, Sony, Motorola, and others include what is commonly labeled “bloatware”—apps that you neither need nor want that take up precious storage and consume CPU power. This wouldn’t be such a headache if you could remove these apps, but most of the time that is not an option. With a custom ROM you can install and remove apps as you please.
Google Play Services, such as the Play Store, Gmail, Google+, and many more can be left out of the operating system. Yes, you sacrifice some functionality in doing this, and you’ll have to manually search for and install apps from the Web rather than the store, but for those who don’t appreciate Google having a direct link to their lives, this is an attractive feature.
While Google is in charge of developing new releases of the Android operating system and publishes them for anyone to use, manufacturers of Android devices are the ones responsible for tailoring new versions for their devices. Sadly, OEMs almost always let their older (defined as “older than a year”) devices stagnate. Users of older or lower-end devices, particularly those sold by pre-paid mobile network operators, will be lucky if they see any updates to their devices’ software. This is a shame. New major releases of Android consistently improve the user experience by leaps and bounds, but most device manufacturers don’t take the time to update old hardware. This is perhaps the largest draw of custom ROMs, since they can be developed for these older devices to bring them the new, better features offered by the latest versions of Android. That being said, older and lower-end devices may lack the advanced hardware necessary to run the latest versions of Android and are capped at Android 2.3 “Gingerbread” or 4.0 “Ice Cream Sandwich” (the most current version being 4.3 “Jellybean” and the upcoming 4.4 “KitKat”).
Community-developed ROMs lend Android a large advantage over other mobile operating systems, like iOS and Windows Phone & RT, since many of the innovations volunteer programmers include in these ROMs get baked into future official releases of Android from Google. Perhaps the most popular aftermarket ROM is called Cyanogenmod. There are many different releases of Cyanogenmod based on the various versions of Android. The newest is, I believe, 10.2 based on Android 4.3. As I said, some devices are simply too old or underpowered to run the absolute latest versions of Android, so you may not find such a ROM for a device that is two or three years old. Instructions for installing said ROMs can be hard to find on the site’s forums, so I find it much easier to just Google, for instance “install cyanogenmod AT&T galaxy s 3”. Other popular ROMs include AOKP, MIUI, BAM Android, and SlimRom, but all you need to do is Google “Android ROMs” and you’ll be swimming in them. ROM availability depends on the model of device and the carrier if you’re using a smartphone or tablet with a mobile network connection, so choose carefully.
I’ve had a few missteps along the way, a few “Oh, crud!” moments, but I’ve enjoyed seeing how much more my Android devices are capable of. The sense of ownership I’ve gained by fully customizing my devices to my needs far surpasses the feeling of handing my lots-of-money over to the register. If you’re brave and geeky enough, I encourage you to try as well. Just remember—I warned you!