By Jake Edge
September 1, 2010
Perhaps the novelty should be wearing off, but the ability to update your
phone to code of your choosing is still rather amazing. For those who
have older phones, which are generally neglected by carriers and
manufacturers who quickly move on to the next "big thing", it can extend
the life of a fairly large investment. For others, who just want to
explore the capabilities of the phone hardware outside of the box created
by the industry, changing the firmware provides the freedom many of us have
come to expect from computers. The much-anticipated release of CyanogenMod 6.0 (CM6),
bringing Android 2.2 ("Froyo") along with a bunch of additional features to
many different Android phones, serves as a reminder of the possibilities
available with some phones today.
Amazing though it may be, reflashing a phone is always something of a
nerve-wracking experience. Since I had a "spare" ADP1 phone—fully supported by CM6—sitting around, I decided to try the
release on that phone. While the process went fairly smoothly, ADP1 owners
should be warned that actually using the phone with that code is a bit
painful—or was on my phone. The interface is fairly slow and
unresponsive at times. While poking around, I realized that the Dalvik
just-in-time (JIT) compiler was not turned on by default, but turning it on
and rebooting only made for minor speed improvements. It did
work well enough to convince me to try it on the Nexus One (N1) I use as my
regular phone though.
The instructions for both phones (N1,
ADP1)
require installing a custom recovery image that gives more control over
updating various portions of the firmware. I put the Amon_Ra recovery
image on both, but not without a bit of consternation on the N1.
Perhaps naïvely, I didn't think I needed to unlock the bootloader on
the N1. The phone was given to me by Google at the Collaboration Summit in
April
and I expected it to essentially be the equivalent of the ADP1. So trying
to use the fastboot utility to flash the recovery image gave
an error and choosing recovery from the bootloader menu brought up a picture
of an unhappy android—pulling the battery seemed the only way
to get rid of it.
Unlocking the bootloader is a simple process using fastboot but it
does void the warranty—however much warranty there is on a free
phone—and it also "wipes" the phone, losing any settings, call
records, applications, and so on. I considered fiddling with various
backup solutions before deciding that a clean slate wouldn't be such a bad
thing.
For the ADP1, three pieces were needed after the Amon_Ra recovery image:
DangerSPL, CyanogenMod itself, and the optional Google Apps package. DangerSPL
is a "second program loader" (SPL) that repartitions the system flash to
provide enough space for CM6. It was ported from the HTC Magic phone to
the Dream (aka G1, ADP1) and can brick the phone if used incorrectly, thus
the Danger moniker.
On an amusing side note, I still had the Vodafone pre-paid SIM card from my
recent trip to the Netherlands in the ADP1. I didn't pay too much
attention to the setup screens and suddenly found myself in a
Dutch-language interface. Given the SIM, that's a reasonable assumption
for the phone to make, of course, but it required another wipe to get it
into English. If I had been able to puzzle out enough Dutch to work
through the settings menus, I could presumably have switched it back, but
that proved challenging so I resorted to the wipe.
For the N1, just CM6 and a Google Apps package was required after Amon_Ra.
The zip files
for the various pieces need to be stored on the SD card of the phone and
the Amon_Ra recovery image then allows choosing files from SD to update the
device. While it all worked quite well, and there are detailed, though
somewhat scattered, instructions, it always seems like these upgrades have
a few unexpected, heart-stopping wrinkles. A second, unexplained
appearance of the
unhappy android on the N1 was one such wrinkle.
The Google Apps package contains the closed-source applications that
normally come with the phone: Market, Gmail, Maps, and so on. CyanogenMod
created a separate package for those ("for copyright reasons"
according to the site) after receiving a cease-and-desist
letter from Google for distributing them as part of CyanogenMod. The
"gapps" package does come from a different site, but
at
least so far, there are no reports of nastygrams from the Googleplex. It
doesn't seem completely unreasonable to allow those applications to be
distributed; the
applications won't run on anything other than
Android phones and phone owners are already licensed to use them. Newer
applications that aren't officially available for older handsets like the
ADP1 are perhaps more of a gray area.
So, after 30 minutes of futzing with installation (per phone roughly), what
is CM6 like? It seems to be a very solid release, and I ran it for half a
day on the ADP1 and more than a day on the N1 with no problems (other than
the slowness on the ADP1, which is presumably due to older, slower
hardware). There are many features in CM6 that are different than the
stock Froyo that was previously running on the N1—too many to
fully discover in the short time since it was released.
But there are several obvious things that stand out, starting with
differences in the application "drawer" which shows the icons for all of
the applications installed. Instead of the stock Froyo
four-icon-width screen with 3D effects when scrolling, the application
drawer in
CM6 has five icons across and leaves out the scrolling effects. That, like
many things in CM6, is configurable so that the number of columns can be
changed for both portrait and landscape orientations.
Configurability is definitely one of the strengths of CM6. There are
options for changing the user interface in various ways such as customizing
the status bar, changing the available screen rotations, choosing the trackball
notifications, modifying how the buttons and trackball input work, and lots
more. While the ability to make so many changes is great for sophisticated
users, one can see why Google and the carriers might be interested in
reducing the number of calls they get from customers with wildly different
settings.
It's not just the user interface that can be tweaked in CM6 as there are
options to change application storage behavior (allowing all applications
to be moved to SD and to set a default location for applications to be
stored) as well as performance tweaks. The performance settings screen
comes with a "Dragons ahead" warning because changing them could cause the
phone's performance to get worse. Furthermore, no bug reports will be
accepted for problems found when mucking with things like the VM heap size
or locking the home application into memory. Those options are purely for
experimentation purposes.
There are a whole host of other changes for CM6 that are listed in the changelog,
including things like support for FLAC playback for those with a
distaste for lossy audio formats (and lots of storage space). OpenVPN
support, music application enhancements, browser incognito mode, home button
long-press options,
themable UI elements, and many more are on the list. There is much to
discover in CM6, and I look forward to (too) many hours playing with the
new software.
Unsurprisingly, the N1 (and ADP1 for that matter) still function quite well
as a regular old cell phone since CM6 uses most of the Android code. Also
as expected, it still sends and receives text messages, browses the web,
and plays the bouncing cows game. It is, in short, a major enhancement to
the capabilities already present in Android.
Unlike other Froyo-based "mods", CM6 is built from the Android source,
rather than extracting various binaries from stock firmware. That makes it
easier to trust the CyanogenMod code—one could build their own
version for verification or customization purposes for example—but it
is also what allows CM6 to support so many different handsets. There are
nine separate phones listed as being supported by CM6.
As always, reflashing firmware, unlocking bootloaders, wiping settings, and
voiding warranties should be done with some care and thought. $500+ bricks
are not much fun. But the process has been successfully completed by many,
including notoriously fumble-fingered LWN editors such as myself, and the
additional
capabilities that come with CM6 make it well worth the effort. I certainly
can't see any good reason to return to the firmware distributed by T-Mobile.
(
Log in to post comments)