How to Install any Jelly Bean or Ice Cream Sandwich ROM on a Nexus One

Posted: July 29, 2012

This guide will show you how to install any Jelly Bean (JB) and Ice Cream Sandwich (ICS) ROMs on your Nexus One. I wanted to update my aging nexus one with ICS or JB but couldn't find a very good update guide for beginners, so I decided to write one.

Note: this was initially written specifically for SpazeDog roms, but as they have not been updated in a while I have provided links to the Evervolv roms as well. If you would like to try a different ICS or JB rom this guide should work, just substitute with the appropriate rom and depending on the one you choose, you may also need to install Google apps (if not included).

Disclaimer: This guide involves making changes to your phone that potentially could brick your phone leaving it unusable. I am not liable for any changes you make or problems you may have with your phone. You should at least be familiar with entering commands using command prompt. This procedure will erase ALL the data on your phone.  Make sure you have a backup of everything. A nandroid backup is recommended. Proceed at your own risk.

Before we get started make sure you have the following: a rooted Nexus One, a USB cable to attach your phone to a computer, and the Android SDK. If you are just now installing the Android SDK, open the SDK manager and make sure to install the "Tools" and in "Extras" the "Google USB Driver" as shown in the screenshot. Alternatively, you just download ADB and Fastboot (just google "ADB Fastboot Download"). If you have a Mac see this thread to get started with ADB and Fastboot.


If you Nexus One is NOT already rooted, then follow this guide from Cyanogenmod to root your phone.

Links to popular roms that will work using this guide:



Step 1 - Download everything you will need:
  1. 4EXTRecovery Updater - the first link will download the .apk.
  2. BlackRose - go down to bottom of the first post to "Attached Files" and download the latest BlackRose zip file.
    1. If you don't want to do it yourself, check out this thread to flash a pre-made partition scheme. Often the developers (Evervolv) will also have a partition schemes that you can flash via Fastboot from your PC as well.
  3. Your rom of choice - go to the downloads section and choose which rom you would like to try. Download the zip installation file.
  4. Since you will be decreasing the size of your partition that apps can be stored on consider something like Mounts2SD or AD2SDX to move apps to your SD card, otherwise you are likely to run out of free space quickly.
Step 2 - Install and use 4EXTRecovery Updater on your phone:
  1. The easiest thing to do is go to this 4ext link, download and install it, directly from your Nexus One. You can also install it by copying the APK file to your SD card, then using a file manager to find it and install it or you can use command prompt by opening command prompt, cd to the location of the Android SDK tools, and then type in the following command (replacing "path" with the path to where the APK is located on your computer):    
    Code:
    adb install /path/4EXTRecoveryUpdater.apk

  2. After you have installed 4ext open the 4EXT Recovery Updater.  Tap "Settings" → "Allow" superuser request → "Yes" to connect to 4ext to get new data.  Now select "Online install/upgrade" → "Yes" assuming it detects your Nexus One correctly → select and install the latest 4ext recovery (at the top of the list).
  3. IMPORTANT: After 4ext has installed, it will have placed a recovery image on your SD card - find it (it is called recover.img) and it should be located in SD/Download/4EXT_Recovery_Touch/ folder. Copy this to your computer in case something goes wrong later and you need to re-flash the recovery image!
  4. After installation of the 4ext recovery turn off your phone and boot into recovery by turning off your phone, turning it on again while holding the trackball down. Your Nexus One will now boot into the bootloader. Once in the bootloader press the trackball once to select "bootloader", use the Volume Down key to select "recovery" and press the trackball to select. Alternatively, you can input the following: 
  5. Code:
    adb reboot recovery
  6. Your phone should now boot into the 4ext recovery menu.  Select "tools" →“partition sd card” → “remove all partitions and start from scratch.” Then for the 1st partition select “1024″ for a 1GB partition (this will be where ICS or JB will be able to put your applications & data). Select "skip" for the 2nd partition and for the swap partition. Finally select the final system “ext4″. 
Step 3 - Copy the Evervolv, SpazeDog, or whatever zip installation file you have chosen to your phone's SD card
  1. Download the ICS or JB zip file above and copy it to the root of your newly formatted SD card.
Step 4 - Installing and using BlackRose to resize the system partition:
  1. Download the BlackRose application and install it on your computer.  
    1. This is not always necessary. Some developers have made flash-able partition schemes that you can just flash from your PC - usually links are provided in the rom's installation thread, Evervolv's here). If you do have access to a computer you can check out this thread at xda developers to download files you can flash from recovery.
    2. If you choose to change your partition scheme using one of the above methods skip to step 5.
  2. Make sure your Nexus One is attached via USB to your computer and is booted into Android normally.
  3. Open the BlackRose application and follow the instructions as shown in this video. Note that the video resizes for JB roms, so if you are planning to use an ICS rom follow the instructions below.
    1. Open the application and BlackRose will install on your phone, rebooting once. The application will then close.  
    2. Open BlackRose again and then select "apply stock/custom blackrose" by pressing 1 and enter.
    3. Then select "custom blackrose" by pressing 2.
    4. Then type "resize" when prompted.
    5. Now the sizes depend on whether you are installing the ICS or JB Roms:
    6. You will need to change the sizes of the system partition to 220 (ICS) or 260 (JB)
    7. Change the cache size to 10.
    8. Finally name the new system partition, you can name it "ICS" or "JB" depending on which ROM you plan to install.
Note: some people have reported having problems getting into recovery at this point (if not move on to step 5). If that happens, luckily for you, 4ext put a recovery image in the downloads folder of your SD card and if you did what I said in step 2 you saved it to your computer. Try reflashing that recovery image using fastboot (remember the one that was in SD/Download/4EXT_Recovery_Touch/ and is named "recovery.img"). Put your phone into the bootloader by turning off your phone, turning it on again while holding the trackball down. To reflash the recovery image open command prompt and cd to the location of the Android SDK tools. Then type in the following command (replacing "path" with the path to where the recovery image is located on your computer):
    Code:
    fastboot flash recovery /path/recovery.img
If that does not solve your problems (inability to get into recovery) then I would recommend going back to the cyanogenmod wiki and installing Amon_Ra's recovery. Then you can use it to flash your installation zip.

Step 5 - Install ICS or JB:
  1. Now turn your phone off and boot into recovery as you did in step 2.4.
  2. 4ext will load.  Select "wipe/format" → "format all partitions (except sdcard)" and then also "wipe data/factory reset."
  3. Now go back and select "install from sdcard"→ "choose zip from sdcard" → and then select the ICS or JB zip you copied to the SD card in step 3.  
  4. Now the installer will load.  Just follow the prompts to install and enjoy!
Update #1: If you do not like the stock boot animation, I wrote a short post about how to change it here.

Update #2: Learn how to install Google Now on SpazeDog rom, one of the major new features in Jelly Bean (Evervolv roms you can just install the Google search app from the play store).

Update #3: Updated guide to reflect easier ways to do certain things like flash partition schemes, provided links for apps-to-sd scripts and others, and emphasized steps that will save you if anything happens to go wrong during the process. Hope it is more helpful.

9 comments:

Unknown said...

Hi,
I ran blackrose BEFORE partioning sd-card as I had already tried another CM9 based ICS.
Also, in the SD Card I left the original FAT32 (with all my data) and added and 1.5GB ext4 partition.
SpazeDog ICS installed fine, however it seems not using the sdcard for storing apps as I'm already running out of space.
Is the problem related to the fact that I ran blackrose before partitioning the sdcard or do I have to wipe the entire sdcard and recreate partitions?
Thanks

c2med said...

It is usually safest to start from scratch with the SD card, but you may be fine.

Go to "Settings" → "Performance" → "Disk Manager" and make sure it sees your sd-ext partition (if not skip to next paragraph and reformat from scratch). From that screen press "Disk Manager Settings" and make sure it is enabled with "applications" and "application data" checked. If it is not enabled and those are not check - do the above, then restart and see if it moves your apps.

If all of that did not help then I would backup your SD card to a computer, then re-format the SD with 4ext recovery from scratch. (4ext recovery → tools → partition sd card → remove all partitions and start from scratch.)

Blackrose is partitioning your internal system memory so it has nothing to do with your SD card - it shouldn't matter wether you did it before or after the SD as far as I know.

Unknown said...

Hi, thank you very much for your post.

I wanted to follow your instructions but I imediatelly came across to a problem... under "Settings" -> "Performance" I don't have "Disk Manager"... I only have "Processor", "Memory management", "Surface dithering" and "16bit transparency"...
An I searching in the wrong place???
Thanks

c2med said...

No that is the right place. Are you using the latest version of Spazedog, ICS 0.9.0 Update 1? http://forum.xda-developers.com/showthread.php?t=1813744

If you are then it should be there... perhaps it is not there because it is not finding an sd-ext partition on your SD card? If you are running the latest version from the above link then I would backup your SD and reformat it from scratch. As you can see from the above link at XDA the disk manager is one of the features of the Spazedog roms so it should definitely be there. Hope that helps.

Unknown said...

Yes... I downloaded from there... BTW, I've reformatted the sd-card, wiped all (factory reset, cache etc) and I'm now re-downloading from the link you posted (http://viperbravo.info/dk/SpazeDog-ICS-0.9.0U1.zip).

Once completed, I'm going to re-install.

I'll be back soon hopefully with good news

Unknown said...

Ok, the hard reinstallation seems to have worked out. Now I see the Disk Manager menu and settings are as expected.
On the Appliactions menu it still shows me the internal storage space (now 112 MB) but I hope it will use the sd-ext when that space will be over... thanks

c2med said...

Yeah, it will only show the internal storage as the same size in the app or storage sections, but as you add apps you will notice that it never actually fill up because it will move them to the sd-ext partition.

Glad to help.

c2med said...

Sorry, I have not heard of that problem. I would try wiping everything a few times and re-installing. Or, since Spazedog hasn't updated in a while you could try the Evervolv ROM over at XDA instead.

Michael McDonald said...

Just letting you know that your tutorial worked perfectly -- Thank You!