Android on G1
I just got my hands on a Android HTC Dream aka T-mobile G1. Originally I did not want to get any of those "unfree" Linux devices but a customer wanted me to buy and configure it for him so I thought that might be a good opportunity to play with it and accepted the deal. So here comes my report about it...
First of all the hardware is indeed what HTC calls "Dream" - it has everything that a hacker could want of a decent mobile phone of today:
- a WVGA screen (well, could be a little resolution than 320x480 but hey)
- full keyboard under the LCD with additional buttons on the case (hangup, pickup, home, back)
- a small trackball with push button
- fast CPU (500-something MHz Qualcom ARM based)
- accelerated graphics including OpenGL ES 3D acceleration
- capacitive touchscreen with multitouch capability
- USB (currently client only, maybe it can be OTG enabled)
- 3.5G quadband modem
- 802.11b/g WiFi
- Bluetooth 2.0 (with A2DP!)
- GPS which gets a fix *really* fast
- 2-axis accelerometers
- and, I almost did not believe it, a magnetic compass!
The full spec by HTC can be found here: http://www.htc.com/www/product/dream/specification.html
So far the hardware part. The pity is just that when you buy it in the stores it is tivolized, i.e. the bootloader does a signature check on the kernel and bootable image which effetively stops you from installing anything else than the original Android G1 firmwares. I will come back to this later - with some good news ;)
But first to the Android software. First I was sceptical about the performance since all Android software is Java. As we know from desktop PCs Java is not really a performance beast and usually eats tremendous amounts of RAM. So I really feared that Android might not perform that well. But I was proven wrong! After a quite long boot time the GUI performs extraordinrily well, application are snappy, there almost never delays, user interaction is fluent. Very nice! The UI offers the *bling* that we currently expect to see, i.e. animated transitions, transparency effects, the screen background is blurred when a modal dialog appears etc.
What also amazed me is that no application until now did fail, none. No hickups, no errors, nothing. Again, amazing. The only kind of fault I found was the email app that did not manage to open my IMAP mailbox - It must have been due to the several thousand mails I have in there. This is a problem for many email clients and only hard to solve. The Google Market, the Google equivalent to AppStore, offers a large variety of applications ready to install for Android. Most of them are still free, many are server based, i.e. the application is just a UI proxy for activities that are really performed on some remote server. It can be expected that the apps will remain mostly free of charge but that the service providers will sooner or later either charge for the service or spam you with adds (which already happens in some apps). The pre shipped apps like Google-Maps, YouTube, the browser etc. all work really well and make the device fun to play with and actually use.
There is a lot to try, have fun and play with, definitely! A really nice geek toy.
So far the good news concerning the software, here come the drawbacks.
First of all with Android 1.0 which is still shipped with many G1s it is impossible to get the device up and running without a Google account! It is really amazing, they force you to register else you are stuck in the bootup tutorial. Second is that at this stage it only allows cellular data connections. This means in order to register or sign up you will have to use a potentially expensive GPRS/3G data connection. You cannot enable the WiFi for it - not at this stage (and of course without SIM-card you are completely lost).
Once you have overcome this stage you will notice that there is sporadic data traffic without letting you know who accesses the net with which information and why. Even worse if you enabled GPS sometimes you see the GPS getting a fix and then data traffic, WTF!? Here I would wish more control. On Series60 you can choose to be asked to allow data connections.
Concerning GPS and location based services, this is an intrinsic part of Android. There are two ways to get your location through the Android platform, either by GPS or by using a WiFi-cell/cellular cell database, provided online by Google of course. While this is neat Google requires you to accept upload of *your* personal position and cellular information if you want to use the database method as backup source. This is incredible! This way they can easily collect position and cell infrastructure data. And although they claim that this data is transmitted anonymously you cannot really control or check it. I always loughed when in movies the police "enables GPS in someone's phone to track them without them knowing". Well, with Android I really have the fear that is indeed possible and not only by officials like the police.
Next is the Google Market. While it is a very convenient way to look for and install applications it puts the power over the application provisioning into the hands of Google and their partners. The worst practices we have already seen with Apple's AppStore where apps for no reason do never appear or get removed. With Android the situation is luckily not that dramatic since, until now, you can still install apps from thrid party sources as well. But there are already rumors that providers like T-mobile like to tweak Android in a way that T-mobile Android devices will only see T-mobile blessed apps in the Market and that third party apps cannot be installed anymore. The reason is pretty simple because providers like T-mobile build their new business models upon applications for mobiles and they want to dictate what you can and can not do. A first glimpse on those pratices are the tethering apps, i.e. apps which allow you to use your mobile device as proxy for data connections, e.g. using it as a modem for your laptop. Those apps originally existed in the Market and were removed by Google under pressure from T-mobile. On the iPhone T-mobile sells extra data plans if you want to be able to use your mobile as gateway with your laptop - so this is where they are heading.
Luckily with the current Adroid versions shipped (up to V1.5 aka Cupcake) there are no reports yet that application installation has been crippled by providers. Hopefully this holds on for the future.
I also promised at the very beginning good news about the tivolized bootloader ;)
Yes, we can!
There is indeed a way to free at least the G1 by T-mobile! With this trick you can transform your G1 into an Android development device as it is sold through Google, which can then be freely accessed in any way you like, even flashing completely homegrown systems. The basic two tricks used are HTC Goldcard and console root exploit.
The HTC Goldcard trick is pretty simple. Every SD card has a unique ID number. There is an online service that will create an HTC specific Goldcard bootblock from this ID which then enables flashing of arbitrary flash images through the bootloader, i.e. bypassing all checks usually done by the bootloader, like region checks or signatures. There are not so many bootloader flashable images around but older Android RC versions have leaked, like RC7 which is needed for the second step.
The older RC7 build of Android 1.0 for the G1 has a severe bug - keypresses from the hardware keyboard are also forwarded to the invisible root shell running in the background. What you can do on your homescreen then is to start arbitrary applications with root priviliges! The usual trick is to type "ENTER ENTER telnetd ENTER" which starts a telnet server. You can then telnet without password into your Android and be root - yeha!
The next steps are of little interest at this point, simply google (he ;) for "android root" and you will find plenty of howtos and tutorials with all needed links to the files etc.
But the point is that after becoming root and some addtional steps you can flash an alternate bootloader called "HardSPL" which is essentially the differntiating thing between an ordinary G1 and the development G1. With this alternate bootloader you can run and flash unsigned images which basically frees your hardware!
And no, it will not remove the SIM-lock if you are so unlucky to have it.
So here is my summary: Very nice hardware! Android itself is not as bad as expected. Network traffic should be watched carefully! The T-mobile G1 can be freed and be used for alternate system development.
If you get a good deal on such a device (and only by a SIM-lock and net-lock free one) then I would recommend it.