Attended Google Android Developer Labs in Singapore
I attended the Android Developer Labs in Singapore last weekend as a part of the CodeAndroid Malaysia team. IIANM, this is the first event of its kind in South East Asia. Naturally when there were a call for volunteers, the CodeAndroid Malaysia team rallied to it. Besides, it wouldn't hurt to attend a Live Wallpaper code session. Yeah, I could probably read most of it online, but what fun would that be? Furthermore, I've seen many videos of Google events and always wanted to be in one, so this is a fine opportunity to live one.
If there's one thing about Google though, it's to expect the unexpected. I had a few wish list when I attended and here they are in no particular order:
- the announcement of the ability to access paid apps in Singapore
- a chance to purchase Nexus Ones at a subsidised price
- plenty of Google merchandise
I was wrong on all count. The Android advocates just decided to give away Nexus Ones to all attendees. If you're saying to yourself right now "What the #@(^!", I understand completely. Same thing raced through my head when I first heard the announcement. But it's true and I now have in my hand the single most beautiful mobile phone I have ever seen, running the best mobile operating system. Almost *everyone* at work has seen it, and each of them agrees it's an absolute beauty.
By the way, guess what's the first application I tried on it? Of course it's KL Traffic Cam! Man, I've been dying to test my app on that many pixels since they day it was published on Android Market (of course I have already tried it on the emulator, but nothing beats seeing your app running on a real phone). I have one more application that I wanna push out to the market this year. It'll definitely be a live-wallpaper application or a game that'll take advantage of the beast of a CPU in the Nexus One.
The complete write up as well as pictures of the event is available on CodeAndroid Malaysia's blog. If you're an Android developer or thinking of becoming one, please approach CodeAndroid Malaysia (or email me) and we'll do our best to keep you updated on future events like these as well as share plenty of tips and tricks on development.
How To Install Custom (rooted) ROMs Into Your Nexus One
First, you'll need to unlock your bootloader, and while you're at it, get a recovery image that'll do a nandroid backup for you. See How To Unlock Your N1 Bootloader and Install Amon-Ra's Recovery if you're unsure.
- Assuming you've got Amon-Ra's Recovery installed, do a nandroid backup. This is a safety measure that'll ensure easy recovery should anything go wrong.
- Download a custom ROM. Cyanogen's ROM is a good choice. Get the latest one here. There are 2 files to download - the AOSP ROM and also the Google Apps.
- Boot into recovery again, and mount your phone as a mass-storage device (select USB-MS toggle)
- Copy the downloaded ROM (update-something.zip) onto the SD card. Unmount the SD from your computer THEN the phone (select USB-MS toggle again)
- You should be in the recovery menus now. Select wipe -> data/factory reset
- Return to the main recovery menu then select to 'Flash zip from SD card' and select the downloaded ROM. Wait for the flash procedure to complete.
- If you want Google Apps back, repeat step 6. but this time select the Google Apps zip
- Reboot the phone
Once again, I can't be responsible if you blow up your phone
If you get stuck in reboot cycle, remove and re-insert battery and boot into recovery, select nandroid backup, restore your back up.
How To Unlock Your Nexus One Bootloader, Install Amon-Ra’s Recovery Image
There are plenty of guides out there already, but some are outdated, while others have a couple of bumps along the way. So I'm compiling one that should work. Note that this will wipe your settings on the phone (much like a factory wipe). This will also void your Nexus One warranty and there's no way to undo this. Finally, this guide is offered as is, without any warranty whatsoever. I can't be responsible if your phone blows up after this. Having said that, the chances of bricking your Nexus One is pretty slim.
- Download fastboot.zip from here. There are a few files in it, all of them do the same thing, they're merely binaries for different operating systems (really stating the obvious here). Do NOT use any other fastboot executable if you're unsure, they may not work. I will use the shorthand 'fastboot' instead of 'fastboot-linux'/'fastbook-mac'
- If you're on Linux or Mac, you may need to change permission by running 'chmod +x <file>'
- Boot your phone in recovery mode by powering off your phone, and turning it on again while keeping the trackball pressed.
- You should see a few skating androids.
- For Windows users, make sure you have the correct USB drivers installed (if your OS can detect and mount it, the drivers are installed).
- Linux users, view (edit if need be) your udev rules file (/etc/udev/rules.d/51-android.rules). I have the following entries (four lines, each starting with SUBSYTEM):
SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"
SUBSYSTEM=="usb", SYSFS{idVendor}=="18d1", MODE="0666"
SUBSYSTEM=="usb",ATTR{idVendor}=="18d1",ATTR{idProduct}=="0c02",SYMLINK+="android_adb"
SUBSYSTEM=="usb",ATTR{idVendor}=="18d1",ATTR{idProduct}=="0c01",SYMLINK+="android_fastboot" - Reboot if there you changed anything.
- Connect your phone via USB
- Run 'fastboot devices' and make sure you have your Nexus One listed. If its not listed, you did something wrong. Feel free to buzz me.
- Run 'fastboot oem unlock' which should trigger a prompt on your Nexus One. Select the unlock option. At this point your phone will reboot. Let it complete the boot cycle.
- Download Amon-Ra's recovery image here and place it somewhere your can navigate to
- Power off your phone and start it in fastboot again
- Run 'fastboot flash recovery [your amon ra download]'
There you go. To get into recovery mode:
- Boot the phone while holding down the VOLUMEDOWN-key.
- Navigate to RECOVERY with the the VOLUMEDOWN-key.
- Press the POWER-key to select.
For more information, see these 2 threads in XDA developers: Amon Ra's Recovery Image and Newbie's guide to adb/fastboot. Also Google is your friend so use it often.
An Android App In 8 Hours
Inspired by the duo that whipped up an iPhone application within a single weekend, I attempted an Android application within a day. Didn't succeed though - last count there are still 3 open bugs. But what I did manage to do was get a beta out for my friends at CodeAndroid Malaysia to test. A few hours after that, it was in SlideMe, with major bugs fixed.
The application is called - for the lack of a better name - KL Traffic Cam. It's part of a bigger project to provide an Android client for ITIS but due to time constraints, I came up with this. The application is free - as in beer and speech. Yes, you can get it at no cost at SlideMe and checkout its sources from Google Code.
KL Traffic Cam is a community effort by CodeAndroid Malaysia, developed and maintained by your truly. Read more at CodeAndroid Malaysia's blog.
Beautiful Widgets Dev Gets Cease and Desist

HTC apparently sent a C&D to LevelUp Studio, makers of 'Beautiful Widgets' (reviews here and here). This message was posted along with the latest update of the application in Android Market:
HTC sent me a C&D, I have to remove the widgets from the market soon, so please back it up if you want to keep it, using appmanager or ASTRO file manager - LevelUp Studio
I bought the application some time ago, and definitely feel disappointed that HTC decided to deal a low-blow to the developer. Is LevelUp Studio doing any damage at all to HTC? Probably not. Do they have a right to issue a C&D? Probably yes. Doesn't change the fact that this stinks. Reminds me of another C&D issued to a certain well-known ROM developer not too long ago.
I urge LevelUp Studio to modify the widget (use other images perhaps?) and do a new release. I wonder if this kinda of tactics means that widgets that emulates a certain look-and-feel of other widgets might get into trouble. Definitely an ugly precedence.
Update: Looks like the developer has decided to go forward with development - with a twist. The widget now doesn't look like those from HTC. And they are still look as good!
Should a phone be pretty…?
Should it be a tiara-wearing-digitally-clueless beauty queen?
A fun poke at the iPhone obviously. I still want both - brains and beauty.