How to hack your Nexus One to run Cyanogen for a good performance boost (and some serious geek cred)

Posted by Antonio 4 days, 14 hours ago (March 7, 2010)

It is a mystery to me how the hobbyist hacker community can make Android so much better than the stock images that Google ships, but if you've got a Nexus one, Cyanogen has just made things much much better. As an iPhone owner from day 1, I can tell you that the simple fact of moving from the stock 2.1 image that comes with your Nexus to the latest Cyanogen creates about the same feeling of improvement that moving from an iPhone 3G to a 3GS provided— except that in this case, you aren't changing your hardware. It is software's true magic!

If you've got a Nexus One, and are interested, read on.

Unfortunately, the process is far from simple and the Android mod community has a lot of new jargon that you have to get used to. If you've ever jailbroken an iPhone or iPod Touch, I'd say this is about 30-50% more involved, so get ready to rumble.

Fortunately, I had the benefit of Eddie's amazingly good notes to guide me through it all. I am reproducing them below, along with a mini glossary at the front, and some comments in places that I found tricky. Your mileage may vary on these, and be aware that you could in theory brick (or destroy) your phone, though practically speaking, I've found this to be almost impossible to do with how well the boot loading sequence has been thought out on Android.

--

Some basic terms:

In Android land, the equivalent of jailbreaking is "rooting" which refers to getting access to the root directory of the phone's ROM (which is not really Read Only since both Google/HTC and you overwrite this with every update). In the steps below, you will be using a command line program called "fastboot" to do the unlocking on that root directory and install custom software. Fastboot is also the name of a mode in the Nexus when you first boot up (it is actually available to all Android phones) that gives you a sort of minimalist OS/boot loader thing to take actions that affect the OS in the phone. It's not quite like a PC BIOS menu, but it can be helpful to think of it that way. Below you'll see the key combination required to get the phone to that which can vary a little by model.

Also, there are three basic software bundles you will be applying after the phone is "rooted:" the recovery image which basically provides a more powerful fastboot environment (to do things like unlocking and backing up), the baseband update (which is just like the iPhone one is that it updates the separate system that runs the radio), and the Cyanogen custom ROM which is the magic that will make your Nexus instantly better.

There is an additional step required which has to do with the crappy licensing around the proprietary Google apps (that you will definitely want on: Market, Gmail, Maps, etc.). Because Google asked the Cyanogen guy to stop including those with his mods, you'll have to apply them as a sort of patch when you are done. This is ok and is actually the easiest part of the update.

We did all of this on a Mac and the instructions below are for that platform— however, I am sure the Android SDK is good enough that it will be a relatively simple exercise to transpose the instructions for Linux and Windows. We did assume however that you are comfortable with the command line.

Finally one important note: in doing this, you will lose all of the data on the phone. Because of Google's phenomenal sync, this won't affect email, contacts, or calendars, and because the media (pictures) are stored on the SD card, you will be fine there, but depending on which apps you've installed, you may lose some local data. You will also have to reinstall all of your apps. You have been warned.

Let's get started:

1. Take a deep breath. It is just software and you are going to master it!

2. Download and install the Mac OSX Android SDK. I am going to assume for the purposes of this list that you have put it in /Applications/android-sdk-mac_86/tools/ but it doesn't matter.

3. Get fastboot-mac from here. Rename it 'fastboot' and put it in /Applications/android-sdk-mac_86/tools/.

4. Get Radio_20100203_2_Signed_PASSION.img,
update-cm-5.0.4.1-N1-signed.zip AND gapps-passion-ERE36B-2-signed.zip
from here and put them in /Applications/android-sdk-mac_86/tools/.

5. Get recovery-RA-nexus-v1.6.2.img from here and put it in /Applications/android-sdk-mac_86/tools/

6. Put Get Radio_20100203_2_Signed_PASSION.img,
update-cm-5.0.4.1-N1-signed.zip and gapps-passion-ERE36B-2-signed.zip
on the root of the SD card. You can do this by mounting the phone via a USB cable (this works just like any USB stick except you have to click a button on the phone's UI).

7. In your phone settings > applications > development, set usb
debugging to enabled.

8. Turn off your phone and put the SD card with the 3 files on it
into your phone.

9. Hook up the USB connection to your phone and your mac.

10. Reboot phone into fastboot: Hold down trackball, push the power
button and hold both until you see the fastboot screen. (The fastboot
screen is the one with the Androids on skateboards)

11. In Terminal on your mac, cd to /Applications/android-sdk_mac_86/tools

12. Type ‘./fastboot devices‘ to make sure your phone is recognized
(it should list a device number rather than simply returning to
command prompt with no feedback).

13. Type ‘./fastboot oem unlock‘ to unlock the bootloader (wohoo, your phone is now rooted!)

14. Use volume keys on the phone to navigate to yes and press the
power button to confirm.

15. When the phone finishes booting, in your phone settings >
applications > development, set usb debugging to enabled, then power
it down.

16. Reboot phone into fastboot: Hold down trackball, push the power
button and hold both until you see the fastboot screen. (The fastboot
screen is the one with the Androids on skateboards)

17. (you're still in terminal in /Applications/android-sdk_mac_86/tools)
Type ‘./fastboot flash recovery ./recovery-RA-nexus-v1.6.2.img‘. (Note
filename will change as recovery image is updated)

18. Type './fastboot flash radio ./Radio_20100203_2_Signed_PASSION.img'
to also update your radio at this point

19. Once the Recovery flash is complete (should be almost instant),
press the Power Button. The highlighted blue text should now say
HBOOT. Use the volume down button to highlight "Recovery" and hit the
power button to reboot into recovery.

20. if this step fails, power down the phone, and try this: hold down
the VOLUME DOWN button and then hold the POWER button until you get to
the skateboard screen; use volume down to highlight RECOVERY and hit
the POWER button

21. You should now be in the Recovery screen after a reboot -- this
screen has 9 green text options at the top and an android x in the
center of the screen

22. Once in Recovery Mode, use the trackball to scroll down to
"Backup/Restore" and press the trackball three times, and wait until
the backup is complete.

23. Once backup is complete, wipe, since you're coming from stock
(even fastboot oem unlock may not fully wipe, do it just in case) many
users report the phone not booting properly without a wipe at this
point.

24. Scroll down to "Flash zip from sdcard", and press the trackball.

25. Select the CyanogenMod update (update-cm-5.0.4.1-N1-signed.zip),
and press the trackball again to confirm. Wait until the flash is
complete. (Note: this will take a little while).

26. Once again, Scroll down to "Flash zip from sdcard", and press the trackball.

27. This time, select the Google Apps File
(gapps-passion-ERE36B-2-signed.zip), and press the trackball again to
confirm. Wait until the flash is complete.

28. Once you are back in the main menu, press the trackball select the
first option (Reboot system now) and reboot the phone.

29. If everything was done correctly, the phone should boot into CyanogenMod!

Eddie's extra bonus section— only for the adventurous (I have not tried this!)

Follow the instructions here to download your kernel and associated .ko module, your overclocking tool, and go
to town with undervolted and overclocked goodness!

Good luck. If it works correctly, it should take about 35-45 minutes to do it. And at the end of it, you will not only have one of the coolest hacker phones, but you will have done it! And trust me, it is worth it!

[A big thanks to Eddie, who both plied me with drinks last week to convince me that I should take this on, and then produced the first draft of this document so that I could not end up bricking my own iPhone]

REFERENCE

http://forum.xda-developers.com/showthread.php?t=611829
http://androidandme.com/2010/01/hacks/video-how-to-unlock-and-root-a-nexus-one/
http://forum.xda-developers.com/forumdisplay.php?f=559
http://wiki.cyanogenmod.com/index.php/ADB
http://developer.android.com/guide/developing/tools/adb.html
http://forum.xda-developers.com/showthread.php?t=459830
http://andblogs.net/fastboot/
http://developer.htc.com/adp.html
http://wiki.cyanogenmod.com/index.php/Full_Update_Guide_-_Nexus_One_Firmware_to_CyanogenMod
http://www.mahalo.com/how-to-hack-a-nexus-one#cite_note-4
http://www.cyanogenmod.com/home/cyanogenmod-5-0-nexus-one
http://forum.xda-developers.com/showthread.php?t=633238&page=66


Personal telemetry will make you healthier

Posted by Antonio 1 week, 6 days ago (Feb. 26, 2010)

Over the last 3.5 years I've logged almost 3,000 miles with my Nike+ system, a low-cost pedometer that uses the iPod/iTunes ecosystem to submit my runs to a site for online competitions and other interesting data-oriented tasks. I have come to rely on the Nike system so much that if I find myself without it, I won't run. By just collecting data and transparently uploading it to a place where I can go back and look at it, it has managed to alter my behavior.

This trend appears particularly powerful for health related issues. The Withings scale (WIFI and with the ability to broadcast your weight to various social networks) seems to be popular among the folks I follow on Twitter and the always "almost here" Fitbit promises to track all sorts of activity related stuff for subsequent analysis. As dorky as it sounds, it would appear that "what gets measured gets done" at least by a certain part of the population.

Today I ran into an ingenious mass market personal telemetry device that appears suited for children: simple, stylishly designed (but easy to to personalize), and best of all, cheap, the S2H Replay is essentially a low budget Fitbit/Nike+ system that fits inside of a color rubber wristband and tracks activity. What may make the Replay the Flip of personal telemetry devices though is that rather than relying on any sort of Wifi signal or a complex base station, it just emits a code that details the amount of work you've done to the site where you are then able to earn points.

Fans of the fully automatic will think of this as an ugly hack that disqualifies the Replay from the pantheon of early personal telemetry devices— after all, the user has to remember to go enter his code to claim credit for the exercise done. However, if my experience with the sometimes buggy Nike+iTunes combination is any indication, users will be very motivated to "get credit" for work done.

Which incidentally is where S2H performs its second great hack: getting users to compete for prizes in the forms of certificates to various different e-tailers. Think of it as a credit card reward program used for good.

I'll have more to say in a few weeks after I've used my own two guinea pigs for a test (boys, 7 & 4), but for now I sure am glad that there are so many creative approaches being taken towards kickstarting the personal telemetry revolution!

(And here is the Russell Davies's excellent review that tipped me off to the existence of this neat gizmo).

Tags: ,

Pycon 2010 rocked

Posted by Antonio 2 weeks, 4 days ago (Feb. 21, 2010)

Pycon has always been a fantastic conference— especially given that it is run entirely on the backs of volunteers. Much better than most paid for-profit conferences for sure.

I've posted the notes and slides from my closing keynote this morning— a small contribution to this excellent conference. If you are interested in reading how it was supposed to go (and I think I got close), feel free to go read it.

Looking forward to PyCon 2011.


If you are at Pycon, pay attention

Posted by Antonio 2 weeks, 5 days ago (Feb. 21, 2010)

I am doing the closing Pycon keynote this morning, so apologies to anyone who isn't there (feel free to skip this post, though I'll put up the notes and slides later today if you are interested).

To the other thousand of you, you are here because you're not listening. You've gone to The Google to figure out who this guy is and why he is so animated this early on a Sunday morning. Go back to listening and I promise by the end of the talk— agree or disagree— you'll know why.

Trust me, The Google will still bring you back here after the talk.

For those that just won't take no for an answer, who'd rather listen to frozen me talking to you from the bitstream of the Internet instead of live and in the flesh, I just have one more thing to say:

Python rocks because you do. As a community you do an amazing job of growing, maintaining, and evolving what I think is the greatest treasure that open source has delivered. Whether you agree or disagree with the argument in my talk, I hope at least you'll be entertained.

This talk is for you guys. Python works because you do.

Thank you.

Now go listen!


Big companies, open source, and joint ventures

Posted by Antonio 2 weeks, 5 days ago (Feb. 20, 2010)

During my last job at HP, I got a chance to get up close and personal with a few big partnerships with other tech companies which had similar goals with respect to specific product roadmaps. In all of these cases, the point of the relationships was to work together on projects that would result in a bunch of software that would ultimately be better for both companies.

Now hold that thought for a moment.

Over the last few days I've been having a blast at Pycon, the main annual conference behind the Python programming language. It's fantastic to see how far it has come over the last two decades, almost entirely on the back of committed volunteers who burn nights and weekends maintaining and building a high quality software project which is so critical to many industries, and especially for the future of the open Web OS.

And yet, there are still a few warts on Python that could benefit from the focused effort of sponsored work. Of all of the big companies, Google has done the best job to date here— sponsoring projects like Unladden Swallow, a needed speed boost. There are other big companies that occasionally sponsor Python work, but not as many as you would think— especially not given how strategically important the language is to them.

There are two things that hit me this conference that might provide a solution. The first is that as serious as these warts might be, it would take relatively little manpower to remove them. Specifically, paying for something like 2 engineers for a sustained year of 100% work could go a long way towards solving speed, packaging, or concurrency issues in a really deep way. The second observation is that by the standards of big company budgets— and specifically as applied to the kinds of partnerships I mentioned above— this is an insignificant rounding error when it comes to dollars spent— even for really senior folks.

Instead of spending the money on needlessly flying executives back and forth to regurgitate the same 20 slides over the "partnership possibilities," I wonder whether there isn't the possibility or reallocating these Steaks&Strippers budgets to fund open source wart removal as a kind of joint venture where each side dedicates a couple of engineers to something that would benefit both companies and allow meaningful longterm partnerships to develop.

It would take more thinking to see exactly how this could be fit into something like removing the Python GIL (a impedance to really good concurrency and multicore support), but I'm sure it could be done. Each big company usually has its cash cow business model: Google and web advertising, Intel and chips, HP and ink, etc. And each of these cash cows often generates a whole host of "ecosystem partnerships" that companies go into to ensure the long-term continued growth of X, where X is whatever makes the cash register continue to sing.

In effect, newer projects like Android may provide the perfect test for these types of partnerships. Except of course that a mobile OS is pretty strategic to most big tech companies which is usually code for more Steaks&Strippers and less meaningful partnering.

Something to think about.

Tags: , ,

Page 1 of 102 - See older »