[Edit] 2/05/2011: Use this new guide instead: http://xdaforums.com/showthread.php?p=11087674#post11087674
[Edit] 1/13/2011: If you are on stock 2.2.1 FRG83D, click here to for SuperOneClick Root !
*
So I recently decided to take my 100% stock Nexus One to Sense UI and I've documented every single step of the way. I've written this guide for two reasons. First, this entire process is scattered around in dozens of threads, written by equally as many people. Not only that, but most people in these threads assume that you know by heart exactly what adb, fastboot, recovery, and others are all about. Second, to put it bluntly, most people are pretty terrible at writing documentation. Writing down what you did so other people can follow seems extremely difficult for many people. Luckily, this is a skill I am good at. So here is a full consolidation of all the information, re-writtern for clarity as I went along step-by-step, from my many hours of attempting to bring my Nexus One from 100% stock to Desire's Sense UI. (Edit: Some people have said they'd run through this guide in 20 minutes!! It might look like a lot, but a lot of steps take a few seconds.)
Disclaimer:
Please don't copy/paste this elsewhere (to prevent having outdated info); just link back.
If you need immediate help, these guys might be able to help -> http://webchat.freenode.net -> Channel "modaco".
And this guide is written as if you are using Windows XP.
*(Yes, the above image of Google's campus is totally unrelated, but totally cool!)
Note: the notifications tray is personally modified
-------------------------
--------------------------------------------------
--------------------------------------------------
What's the status on Bluetooth?
Update:
[Edit] 1/13/2011: If you are on stock 2.2.1 FRG83D, click here to for SuperOneClick Root !
*
So I recently decided to take my 100% stock Nexus One to Sense UI and I've documented every single step of the way. I've written this guide for two reasons. First, this entire process is scattered around in dozens of threads, written by equally as many people. Not only that, but most people in these threads assume that you know by heart exactly what adb, fastboot, recovery, and others are all about. Second, to put it bluntly, most people are pretty terrible at writing documentation. Writing down what you did so other people can follow seems extremely difficult for many people. Luckily, this is a skill I am good at. So here is a full consolidation of all the information, re-writtern for clarity as I went along step-by-step, from my many hours of attempting to bring my Nexus One from 100% stock to Desire's Sense UI. (Edit: Some people have said they'd run through this guide in 20 minutes!! It might look like a lot, but a lot of steps take a few seconds.)
Disclaimer:
You agree that by doing this process, I'm not responsible for any bricked devices.
Unlocking the bootloader will void your warranty.
This process will erase all of your phone's data.
Unlocking the bootloader will void your warranty.
This process will erase all of your phone's data.
Please don't copy/paste this elsewhere (to prevent having outdated info); just link back.
If you need immediate help, these guys might be able to help -> http://webchat.freenode.net -> Channel "modaco".
And this guide is written as if you are using Windows XP.
*(Yes, the above image of Google's campus is totally unrelated, but totally cool!)
Note: the notifications tray is personally modified
-------------------------
Backup [Optional]- On PC: www.gmail.com -> Contacts -> Export, choose Google CSV
- On N1: Market -> AppMonster (or any other Backup application you prefer) -> Backup all apps
- (If you want/need to backup sms etc, I don't know what non-root app does this)
- Remove any authenticators etc
- Downloads
- Download nexus-addon-0.1-signed.zip, (From thread: CyanogenMod-5)
- Download Desire Sense UI OR CyanogenMod:
Sense UI:- Download the latest version here: MoDaCo Custom ROM Desire Port (Choose with MoDaCo Additions, without A2SD)
- Alternate download location (mirror) for r21: alpha-r21-update-modacocustomrom-nexusone-desire-withadditions-sig.zip
- CyanogenMod
- Download the "Google Addon" as well
- Don't download any "radio" updates unless you know what you're doing! (I would highly advise against it!)
- Place both zip files (3 for Cyanogen) on N1's sdcard (don't unzip)
- Setup SDK
- Download android-sdk_r06-windows.zip
- Unzip to C:\ drive so it looks like C:\android-sdk-windows\
- Run SDK Setup.exe
- Double click everything so it has a red X except for green check mark next to "USB Driver Package"
(Click for larger image)
- Install
- On N1: Settings -> Application -> Development -> enable USB debugging
- Connect phone to PC, do not mount
- New Hardware Found -> Point the install location to C:\android-sdk-windows\usb_driver\
(Click for larger image)
- PC: Start -> Run -> cmd -> press Enter. A black window should appear.
- Type: cd C:\android-sdk-windows\tools
- Press Enter
- Type: adb devices
- Press Enter
(Click for larger image)
- It should say something similar to "HT123P123456 device" (this is your phone's serial number).
- If it says "cannot find" or "invalid path" etc, make sure you're typing *exactly* what the green text above says.
- If it says something else, try to reinstall the USB Driver package and restart your PC.
- If it still doesn't work, reply to this thread and say "adb devices does not work. When I type 'adb devices', it says _______________. My PC is running _______________." [Choose one: Windows XP | Windows Vista | Windows 7 | Mac | Linux]
- If it works, your PC is correctly recognzing the phone. Continue on to the next step!
- Unlock Bootloader
- Turn phone off -> Hold Trackball, then hold Power until white bootloader screen shows up:
(Click for larger image)
- FASTBOOT should be highlighted. Press the Power Button to go into Fastboot.
- PC: Start -> Run -> cmd -> press Enter. A black window should appear.
- Type: cd C:\android-sdk-windows\tools
- Type: fastboot devices
- Note: Mac users need "fastboot-mac", available here: http://developer.htc.com/adp.html
(Click for larger image)
- It should say something similar to "HT123P123456 fastboot" (this is your phone's serial number). If it doesn't say this, something is wrong. Make sure you pressed the Power Button to go into FASTBOOT.
- If you are typing fastboot devices and it just returns a blank line or ???????? (ie Windows 7 64-bit users), try using USB drivers in the PdaNet install: http://www.junefabrics.com/android/download.php
- If that doesn't work, try not pressing the Power button to enter Fastboot. A few people have had it work that way. (Or may have been holding the Power button for too long.)
- If you can't get this step to work, reply to this thread and say "When my phone is in the bootloader and I type 'fastboot devices', it says __________ instead."
- Type: fastboot oem unlock
- Read what the screen says. (Decision time!) (All data will be wiped here)
(Click for larger image)
- Your phone should reboot with a picture of an open padlock under the Google logo. If so, everything is good so far!
(Click for larger image)
- Turn phone off -> Hold Trackball, then hold Power until white bootloader screen shows up:
- Flash Recovery - (Update 09/01/2010: this may not work on SLCD Nexus Ones. Need an SLCD-supported recovery and then a ROM with SLCD support)
- Turn phone off -> Hold Trackball, then hold Power until white bootloader screen shows up
- FASTBOOT should be highlighted. Press the Power Button to go into Fastboot.
- PC: Download latest .img file - Amon_RA's Recovery Image
- Place img file into C:\android-sdk-windows\tools\
- PC: Start -> Run -> cmd -> press Enter. A black window should appear.
- Type: cd C:\android-sdk-windows\tools
- Type: fastboot devices
It should say something similar to "HT123P123456 fastboot" (this is your phone's serial number). If it doesn't say this, something is wrong. Make sure you pressed the Power Button to go into FASTBOOT. If you can't get this step to work, reply to this thread and say "I'm trying to flash the recovery image. I unlocked my bootloader but fastboot devices doesn't work anymore. When I type 'fastboot devices', it says __________ instead."
- Type: fastboot flash recovery recovery-RA-nexus-v1.7.0.img (Note: the underlined part may be different depending on what you downloaded.) (Tip: On Windows XP, you can press tab to auto-complete the filename.)
- It should say: sending 'recovery' (3962 KB)... OKAY . . . . . writing 'recovery'... OKAY This should take a few seconds.
(Click for larger image)
If it doesn't work, try using Superboot (ignore this unless you're having issues flashing the Recovery):- Modaco's Superboot -> "Before download, check your device 'about' screen to determine whether you need a superboot for 'ERD79' (the original shipping ROM, 'ERE27' (the official update) or ERE36B (the new leaked update)."
- Turn phone off -> Hold Trackball, then hold Power until white bootloader screen shows up
- Don't touch anything
- Open superboot file on PC
- Try to Flash Amon_RA's Recovery again
- If it still doesn't work, reply to this thread and say "When I tried to flash the recovery file, it said ________________ instead."
- If flashing the recovery was successful, use the menu options to boot directly into recovery, or turn the phone off and continue on with next step!
- Root
- Turn phone off -> Hold Volume Down, hold Power button
- Press Volume Down to highlight Recovery -> press Power to select Recovery. Your screen should look like this:
(Click for larger image)
- Do this step only if you didn't use Superboot: Use trackball -> "Flash zip from from sdcard" -> nexus-addon-0.1-signed.zip
- If you get a Triangle with a ! in the middle alongside an Android for 5+ minutes, you MAY have to remove battery and re-flash recovery (I had to do this once.) (Make absolutely sure that nothing is happening on your phone, as removing the battery when it's doing something can cause a brick.)
- Alternatively, try the optional Superboot method, and then re-flash Amon_RA's recovery image.
- Select Reboot.
- Install ROM (Sense UI, Cyanogen, etc)
- Turn phone off -> Hold Volume Down, hold Power button
- Press Volume Down to highlight Recovery -> press Power to select Recovery
- Backup/Restore -> Nand backup
- Wipe -> Wipe data/factory reset
- Wipe -> Dalvik Cache
- Flash zip from sdcard -> alpha-r##-update-modacocustomrom-nexusone-desire-withadditions-signed.zip (Or whatever other ROM you're using.)
- If you get an error such as "E:\Can't open /sdcard/[blah].zip (bad)", the file is probably corrupt. (Modaco has had some issues with this recently; I don't know why.)
- If you want to make sure, use http://portableapps.com/node/19346 and drag the zip file onto it to verify the MD5 sum. For r21 with MoDaCo Additions, the MD5 should be: e5eb15ea971b220ffdfcac8f56037013
- If you're using Cyanogen, flash the Google Addon.
- Reboot
- If a picture of an Android falling out of a box shows up, something went wrong. Just wait for it to reboot into recovery. (Good you made a backup! Just in case.)
- Go back into recovery, Wipe all data again, Wipe Dalvik/cache again, and reflash the Sense ROM.
- If it still doesn't work, reply to this thread and say "I keep getting the Android falling out of the box when flashing the Sense ROM, even after repeated wiping."
- If successful, a white HTC splash screen appears. It should take about 2-3 minutes to load into Sense.
- If it gets past that, congratulations! You made it!
- Post in this thread that it worked! And if you're feeling generous, feel free to send me a beer!
- And finally, enjoy and have fun!
--------------------------------------------------
- Install a Different ROM
- If you want to install a new version of a ROM, switch to a different ROM like Cyanogen, etc, only repeat the "Install ROM" section. The only difference is you'll be downloading / flashing a different zip file of course.
- Make sure you backup (and wipe!) first before flashing any new roms!
- To go back to the original Android ROM, either Restore your backup, or download the zip file from the following thread and repeat the Install ROM section: http://xdaforums.com/showthread.php?t=614850
- Known Issues:
- Bluetooth is known to be buggy / will most likely not work. (Can't be fixed until HTC releases the Desire source code.)
- USB mount notification does not appear - use 'USB Mount' application from menu.
- To set live wallpapers, go into Settings -> Personalize.
--------------------------------------------------
What's the status on Bluetooth?
http://android.modaco.com/content/g...8-mar-desire-port-to-nexus-one-status-update/
A status update!
I now have the release candidate of the Desire ROM!
The new ROM, which is MUCH newer than the build I have been using to date is faster and smoother, the Camera app is better synchronised with the flash, the Live Wallpapers selector is in the right place, the base is ERE27 rather than ERD79 and there are numerous little fixes all over the place! Of course, it will take a bit of time for me to do a full quality port over for the next MCR, but i've done a quick hack to flash it on and see what works.
That's the good news - the bad news is BlueTooth, Camera, USB connect popup and FM Radio still don't work correctly out of the box. BUT - I have discovered why.
Basically, it all comes down to the kernel.
I have confirmed that all of the above (i'm not 100% sure on BT, i'm still investigating that one) use specific features in the Desire kernel that aren't available in the generic kernel. HTC enhancements if you will. The Desire ships with a .29 kernel which, based on what i've seen in the apps and the setup of the config file, is pretty heavily customised. Unfortunately the Desire kernel doesn't boot on the Nexus One, so we're in a bit of a sticky situation until the Desire kernel source gets released, and it's unclear when that will be (HTC's track record in that regard isn't fantastic)!
All is not lost however, as I have started looking at a new approach to fixing the problems, as seen in the camera fix for Alpha 16. I'm basically hunting down the kernel specific hooks and - where possible - i'm rerouting those to an alternate location that I can control. Taking the camera app as an example, the libcamera.so file was checking kernel specific points before deciding whether the flash should fire or not. It was doing things like checking for a phone call, checking for a wimax connection (!), and when these checks didn't work properly, it was preventing the flash firing. By editing this library and rerouting those locations, I was able to make the flash fire - much better than just dropping in the 'wrong' library which was the previous solution. Similarly, the camera application itself was dropping back to 3 Megapixels by default because it was looking for a 'sensor resolution' file produced by the kernel, which didn't exist. By determining this as the cause and reverse engineering the Camera application, I was able to make 5 Megapixels the fallback resolution instead. Problem solved.
Hopefully a similar approach can be used for the other problems (FM radio, USB connection and Bluetooth) and we'll get everything 100% - believe me i'm working on it.
If we CAN get this working fully, the work i'm doing here - if I can get it 100% - will also enable Desire users to have newer kernels and custom kernels with all the goodness that brings, without being dependent on a HTC Kernel source release.
There's lots to do - starting with the RC port to use as a base - but it's been a fun ride and it's gonna get funner. Thanks for all your support!
P
Update:
Last edited: