The free and open source software community has been waiting for the G1 cell phone since it was first announced in July. Source code for Google's Android mobile platform has been available, but the G1 marks its commercial debut. It's clearly a good device, but is it what Linux boosters and FOSS advocates have long been anticipating?
As a consumer-oriented mobile phone, the G1 competes on equal footing with high-end offerings from the other major players. It supports 3G, Wi-Fi, Bluetooth, and GPS connectivity. The hardware sports both a capacitive touch screen and a slide-out QWERTY keyboard -- not to mention a trackball -- dedicated phone and volume control buttons, 256MB of built-in storage and a microSD slot, an accelerometer, and a 3.2-megapixel camera. The second revision of the device (currently shipping, although we did not receive one) sports a standard headphone jack; early models use the mini-USB jack for audio in addition to charging.
The included applications, from contact manager and dialer to browser and email, are also up to snuff. Kinetic scrolling is everywhere, as are flashy touches such as translucency, blur, and fade-in/fade-out animation.
You won't forget for an instant that the G in "G1" stands for Google. The phone is preloaded with a cornucopia of Google-branded applications, including Google Talk, Google Maps, and a YouTube viewer. There is a POP/IMAP mail client, which works great, and a dedicated Gmail client with additional bells and whistles. When first setting up the phone, you must "associate" it with a Google Account, which allows the device to synchronize calendar, contacts, and Gmail messages over the air.
It's a platform
What about the Linux-based open source Android platform that runs underneath all of the consumer-level apps and features? The easiest way to get a feel for Android as a platform is to explore what developers are doing with it. The G1 includes an over-the-air application catalog and installer tied to the Android Market, through which you can browse hundreds of Android apps and read the reviews of other users.
So far, all of the apps in Android Market are free of charge, which cannot be said of the other two officially sanctioned Android app portals run by longtime mobile app vendors Handango and MobiHand. Selections include the usual bevy of single-purpose IM clients and Web app front ends from sites you've never heard of -- but they also include some interesting utilities that actually try to add functionality to the phone.
Several apps tweak the behavior of built-in apps, such as by adding to the default email client. Others are attempts to add useful apps such as barcode scanning and text editing that are commonplace on other mobile phone platforms. One of my personal favorites is G1 Central, which alters your outgoing Caller ID to reflect your GrandCentral phone number -- functionality not provided on the G1 even though GrandCentral is a Google service.
Then are the utilities you won't find anywhere else, such as terminal emulation, or a full-fledged IRC client. The app browser even has a category for software libraries, which includes text-to-speech and file format conversion.
Whenever you click on an Android Market app to install it, the phone prompts you with a warning about the potential hazards of installing third-party software. But unlike most other devices I have seen, the G1's alert is thorough, listing exactly which data and services the new app will have access to. For instance:
Full Internet access
Intercept outgoing calls
Read system log files, modify global system warnings
Your personal information
Write contact data, read contact data
Ideally, if a purported background wallpaper package provokes such a reaction from the operating system, users will think twice before installing it.
It's almost free
But what free software fanatics really want to see is an entirely open phone, with source code from the firmware right on up to the applications, and no digital hijinks preventing the owner from tweaking the device to his heart's content. And that the G1 is not -- though it is not far from it. Shortly after the G1's official release, enterprising hackers discovered how to jailbreak the device: install a terminal emulator, then start telnetd from the command line. The Telnet daemon runs as root, so you can connect to it via the Telnet app from Android Market or from another computer on the LAN, and free yourself from the manufacturer's restrictions by, for instance, remounting the filesystem as read/write.
Immediately after the initial jailbreak there were not a tremendous number of hacks for the G1. Most were simple adjustments, such as moving app storage and the browser cache to the SD card to conserve space. Some did go much further, such as replacing the OS with Debian. But it did not matter much; in a matter of weeks, Google released a firmware update that closed the telnetd security hole. Firmware updates are downloaded over the air in the background, and once one becomes available you are prompted to install it once every few minutes.
I found such a firmware update available for the review phone I received from T-Mobile, and elected not to install it. Sure enough, the telnetd trick still worked, even though the device in question was sent several weeks after the hole was publicly announced. I verified that a root shell was available with ls, but did not do anything further.
Ironically, the day after T-Mobile asked for the review phone to be returned, Google announced a similar yet strikingly free-er device, the Android Dev Phone 1. The Dev Phone 1 uses the same hardware as the G1, but is SIM- and bootloader-unlocked, meaning you can use it with any service provider and you can install your own custom system images onto it. It costs $399 -- the same price as a no-contract G1 -- but you must also pay Google a $25 Android Developer registration fee, ostensibly to help the poor company stave off bankruptcy for yet another day. The Dev Phone 1 is a buyer-beware, use-at-your-own risk purchase.
Androids among us
Ultimately, the importance of the G1 depends on what you as a buyer bring to it. If all you want is a good phone, or even a good Linux-based phone, the G1 is a winning proposition. If you want a "free software" phone, buy the Dev Phone 1 instead.
The biggest question surrounding Android is what affect it will have on the mobile phone marketplace. I decline to prognosticate based solely on my experience with the G1, but I will say that I believe that what makes or breaks a smartphone platform is not the device or even the built-in services, but rather the community of third-party applications -- and on that front, Android is doing it right. I have tremendous respect for what the Openmoko team is doing, but right now its energy is focused on building the lower-level phone OS; third-party applications are few. Critics may object to Android's SDK, APIs, or sort-of-Java-but-sort-of-not development scheme, but it is attracting a swarm of developers, many of whom are drawn by the open source licensing. That's a huge leg up, because if there is one thing the FOSS community knows how to do, it is code applications.
Maemo developer Henri Bergius succinctly described the difference between the Nokia N-series and iPhone experiences on his blog: Nokia's preloaded apps encourage you to create -- shoot video, share photos, blog, etc. -- while the Apple platform encourages you to consume -- buy music, buy games, buy apps. Thus far, the Android platform is encouraging users to develop. That could make all the difference.