Saturday, January 2, 2010

T-Mobile G1 + CyanogenMod = Pure Win

In April (2009), I switched to T-Mobile and got the G1. The G1 is one of the first phones running the Open Source operating system developed in part by Google called Android (using the Linux kernel). Recently, you've probably seen commercials for the new Android-based phone from Verizon: the Motorola Droid.

The G1 is great. It's about as tall as the iPhone, not as wide, but almost twice as thick. The reason for its thickness is a full hardware keyboard that slides out from underneath the screen. Most phones with large screens tend to have software keyboards: they are programs running on the screen covering up part of whatever application you're using. While I've never tried an iPhone, I had an iPod Touch (which I've since given to Holly) and tried using the SSH client on the iPhone. It was almost unusable because it covered up half the terminal window.

My old phone, a Palm Treo running PalmOS, was paid for by my previous company and so was the service. So, when I started a new job in May, I knew I needed to buy a new phone...

T-Mobile G1
For my new job, I wanted a phone that was basically a mini laptop. I wanted to be able to quickly check my email with a GUI client (IMAP over SSL) and to be able to use a separate client to check work email (Exchange). Also, and most importantly, I wanted a robust SSH client so that I could connect to my SSH server and have access to my normal text-based desktop: tmux, mutt, irssi, icb, ...

T-Mobile G1
A friend (thanks, jturner) told me all about his T-Mobile G1 and that it seemed exactly like what I was looking for. So, a few days before leaving my old job, I went and got the phone. At first I absolutely loved it. It was freakin' fantastic and everything I was looking for. While I know 99% of the time I would have been satisfied with an iPhone, not having a laptop-like SSH experience would have bothered me. The G1 was perfect.

But, then over time, the phone got slow. And as T-Mobile pushed out new Android updates, the phone got slower and slower. It got to the point that when I would press the Home button, it would take up to a minute to display. The G1 supports using an SD card to store some data, music, pictures, and anything else to be accessed like a USB drive on your computer. But, the phone could not use it to store downloaded applications. As I added more apps and as Android added more features, my phone started to crawl. I got to the point that I couldn't stand it and wanted to throw it out the window.

Then, a co-worker (hi, Jonathan) told me about CyanogenMod. It's a hacked, customized version of the 1.6 version of the Android OS. In order to get it on the phone, you have to install an older version of android that had a flaw allowing one to gain administrative access to the phone. This then allows one to overwrite the recovery ROM which allows for installing a development version of the OS and Cyanogen's ROM.

T-Mobile G1
Cyanogen's ROM is extremely fast. It is highly customized to take advantage of the G1's hardware and allows for running applications from the SD card, freeing up space for the system. Cyanogen, Steve Kondik, has also ported several features from Android 2.0 like Contacts, Gallery (pictures), Browser (web), Calculator, Alarm Clock, IME (on screen keyboard), and the Power Widget. It also includes superuser access.

T-Mobile G1
So, besides being a phone, what makes a good smart phone is its applications. Here are my must have applications:

  • ConnectBot: An SSH client that supports session keep-alive, public key authentication, and port forwarding.

  • Pandora: A client to use the free Internet Radio application.

  • Touchdown: An Exchange client ($25).

  • K-9 Mail: A POP/IMAP email client that extends the built in mail application.

  • Babbler: A Facebook client ($1.49).

  • Advanced Task Manager: Allows user to kill tasks. It also kills tasks that have been running too long ($0.99).

  • OpenTable: Make reservations at

  • Google Maps: Has built-in turn-by-turn Navigation.

Without CyanogenMod, my G1 was unusable. Now it is an extremely useful tool. It's a mobile web browser, mobile email client, SMS client, SSH client, Facebook client, music player, and much more. Oh, yeah, it's also a phone.

The Android platform is a great phone platform and it shows an incredible amount of potential. As an open source system, it allows people like Steve Kondik to make a so-so system into an amazing phone. An iPhone-killer maybe. :)