Unlike the locked down and user-hostile iPhone, the Google Nexus One is not SIM-locked (even when bought subsidized) and ships with a bootloader that can be unlocked to enable custom firmware flashing. More importantly, you can use the Nexus One to make calls that last longer than 10 seconds :)

The Nexus One ships with a 2.6.29 kernel but if you like living on the bleeding edge you can install your own kernel (e.g. the experimental 2.6.32 kernel). Below you’ll find an update image I built which includes a 2.6.32 kernel, su, scp and ssh.

Steps to unlock your Nexus One bootloader and install your own firmware:

  • Verify USB debugging is turned on in your Nexus One settings (Applications -> Development).
  • Install the Android SDK and fastboot.
  • Power off your Nexus One. Hold down the trackball and power the device back on.
  • Run ‘fastboot oem unlock’ and then follow the instructions on the device.
  • Download Amon_RA’s custom recovery image for the Nexus One.
  • Run ‘fastboot flash recovery recovery-RA-nexus-v1.5.3.img’ and then reboot your Nexus One.
  • Copy nexus-2.6.32-root-signed.zip to your Nexus One SD-card and then run ‘adb reboot recovery’.
  • Once the device boots into Android system recovery, select “Flash zip from sdcard” and then nexus-2.6.32-root-signed.zip.

With root on your Nexus One, you can use apps such as n1torch (use your Nexus One camera flash as a flashlight).

Note that for security reasons you may want to replace the standard su with something like superuser.

Btw, my company, doubleTwist, is hiring engineers in San Francisco and Android experience is a plus. Perks include a doubleTwist engraved Nexus One :)