Posted: 04 July 2012
I finally got frustrated enough with my Samsung Galaxy Tab (running the Samsung 3.2 "Honeycomb" variation) to upgrade to Ice Cream Sandwich via CyanogenMod.
After getting root (thanks to SuperOneClick and
on the device and installing
(handy for debugging app network issues when you can run
lsof), I backed up
everything (twice, with different backup programs ...), and used the
to install the CyanogenMod "p4wifi" RC1 candidate.
There are a lot of fiddly details in this unsupported "upgrade" process, but I was really impressed with how slickly ROM Manager handled its part (specifically, installing a new recovery partition image, backing up the previous Android installation, installing the CyanogenMod image, and installing the Google Apps image on top of CyanogenMod). It does all this stuff from within an installed app on the device. It schedules a single reboot to accomplish multiple objectives. I suspect its building a custom boot-time script, but haven't looked at the details. I was impressed.
This ability to "own" my device and customize it nearly completely (I now have source access to everything except the fancier device's drivers) is one of the major motivations for buying an Android device. Beyond simply having control over my hardware, I'm confident in the community that's built up around Android to be able to maintain my device even if the manufacturer gives up on it. I think this long-term support is an aspect of the open source Android platform that Google and its partners do not do enough to promote.
As an aside, I need to pay more attention to the "root"-ability of any Android devices I purchase in the future (though it seems this is getting better). While I got lucky and the tablet is relatively easy to root, my HTC phone is running a hardware-enforced (as I understand it this is known as "NAND" or "S-ON" protection) immutable base image. There are known workarounds (downgrading to a previous release, or a special image from HTC), but its much more complicated than it should be.