Installing Android 4.0 on Nexus S

The latest version of Android, Ice Cream Sandwich (ICS), is not officially available for Nexus S yet. However, there are some talented developers who managed to use available SDK and some dump data to port ICS to Nexus S. For this post, I used Drew Garen's Beta v10 port (no longer available - 11/30/2011. See updates at the bottom of the post).

As I explained in my "On Rooting Android" post, I spent the last few days to understand a bit more about inner-workings of Android and rooting landscape. As I now have a good backup of everything I have and I tested that I can restore everything back to that point, it is time to test ICS.

ICS Installation for Nexus S is quite simple but make sure you have read the previous article and have Pre-reqs as described there:
Now you are ready to install ICS:
  • Download the latest Beta from Drew's site
  • Rename the downloaded zip file to (Optional)
  • Connect Your android via USB in USB Mass Storage Mode and copy to the root.
  • Disconnect USB Storage Mode
  • Launch ROM Manager
  • Boot into Recovery Mode
  • Wipe Dalvik Cache in Advanced Mode
  • Wipe Data/Factory Reset
  • Wipe Cache
  • Select Install from zip file and point to /sdcard/
  • Watch it do its magic.

If all goes well, you should have ICS up and running on your Nexus S in 5 mins!

This is the new boot screen. It takes about the same time it used to boot. If there is an improvement, I did not notice it. In fact, it's great that this 'beta' version is able to match Stock 2.3.6 speeds.

Once boot process finishes, you will see a welcome screen. Simply Tap "Start" to kick off Google initialization process.

Then, you can allow or disallow Google location services. Tap "Next" to continue.
At his point , you can either sign in with your Google account or create a new one.

Once the wizard is done, you are going to notice that your apps will start coming down from Android Market. As far as I can tell most of the apps came down just fine. I was however missing the apps that I had installed from Amazon Market. This of course makes sense.

The only surprise I had was about the Google Authenticator App. It did not come down and I had to download and log into it by generating an Application-Specific Password in Two-factor Authentication page.

If you are using two-factor authentication, you might want to make sure your recovery methods for two-factor authentication are still valid before diving into this process.

I've been using ICS Beta Port for a day now and apart from known issues like GPS, the only issue I noticed was the battery killing Google+ app. See the screenshot.

It basically drained the battery to half in only 5hrs. I have not yet looked into what exactly in Google+  is causing this and have not seen any other reports from testers in the related xda-developer forum.

Update: 11/30/2011

After Google released ICS source code, devs at XDA forums started working on it and porting it to different phones. Koushing Dutta, who also owns other popular apps like ClockworkMod Recovery and ROM Manager, was one of the first who came up with a build for Nexus S.

There are several ICS ports right now and many other tweaked the works of rom developers or came up with mixes of those. There are also several kernel releases at this point all available from Nexus S XDA forums here (usually under Development).

Drew Garen has also used Koushik and other's work adding his own stuff on top and his work is available from his new (blogger) site.

By the way, a few times I got  "Random Offset {some number}" when flashing roms but apparently this is NOT an error but related to a new security feature "Address Space Layout Randomization" as mentioned here.

No comments: