Saturday, August 25, 2012

Manual Install of Jellybean on Nexus S (i9020a AT&T)

[Update 11/8/2012: Tethering may not work after updating. I have not figured out why.]

My Nexus S does not get OTA updates. (I suppose this is because I bought it new and unlocked, and not from my carrier.) I had to update it to Ice Cream Sandwich manually, and it looks like I will be doing the same for Jellybean. I’m making a few notes this time.

I own a Nexus S i9020a (the model for AT&T frequencies), so I grabbed the JRO03E factory image “sojua” from Google’s factory images site. Update 12/17/2012: The JRO03E image is no longer available since 4.1.2 is now available. Just choose the appropriate souja version from Nexus Factory Images.

The md5 checksum checks out fine.

$ md5 sojua-jro03e-factory-1ac76773.tgz
MD5 (sojua-jro03e-factory-1ac76773.tgz) = 39f0a4079f81882d354f228000ccf8f4

 

You don’t have to root the device to do this update. Just use the fastboot tool to drop the factory image onto the device. However, you will lose all your application data, so you may want to back it up.

To backup the primary contents of your device (i.e. your apps and your network settings, etc.), I enable the built-in google Backup & Reset settings. This will make the recovery step so much simpler after you install the new OS. This is highly recommended. (If you are just now turning these settings on, you’ll need to wait until everything is sync’d to the cloud before proceeding.)

Screenshot_2012-08-26-01-43-28

Because your data will be wiped, you will lose the arrangement of all your app icons on your home screens. I suggest taking a screen shot of each home screen to speed up this task later. (Press volume-down and power buttons simultaneously to get a screen capture.)

To backup the remaining contents of your phone (including the screen shots you just made), simply mount it via USB and manually copy all the folders to a backup location on your PC. Note that if you wish to restore any of this back to your “new” phone (like photographs from your DCIM folder), you will have to copy these files manually again. Note: I don’t think your SMS messages will be backed up by this method. (There are other apps in the android market that backup all this stuff for you.)

To mount as a disk via USB, drag down the notifications bar from the top of the screen, where the USB symbol is showing as a notification. Then click the “USB connected” notification, then on the next screen, click the “Turn on USB storage” button.

turn-on-usb-storage

This should let you see all your (user) files on your Nexus S. I simply copy everything to a backup folder on my PC. It took about 8 minutes. :-|

nexus-s-files

Now turn off USB storage:

 

turn-off-usb-storage 

Now it is time to put your device in fastboot mode. To do this you first need to be sure you have a copy of fastboot.exe on your path. (You need to have a copy of the Android SDK, and you’ll find fastboot.exe living in platform-tools directory.)

Confirm you have fastboot.exe on your path by executing ‘fastboot –?’:

fastboot_path

You will also need to have your USB driver setup properly. But that is beyond the scope of this post. If you encounter a < waiting for device > message when you use the fastboot.exe tool, then you need to update your USB driver.

To get in fastboot mode, first power off your Nexus S. Then boot into fastboot mode by pressing and holding the volume-up key and continue holding it while you press and hold the power key. You will get the fastboot screen, which looks like this:

fastboot-screen-1

You will need an unlocked bootloader to flash a factory image. Check your fastboot screen on your device to see if it says “LOCK STATE – LOCKED” or “LOCK STATE – UNLOCKED”.

Unlocking your bootloader will wipe your device of all data. Unlock it from the command line using the fastboot oem unlock command. (you should still have your device plugged in via USB)

fastboot-oem-unlock

You will have to use the Volume-Up/Down buttons to select “Yes”, followed by the Power button to accept. The screen will not respond to touch controls. Here’s what it looks like:

bootloader-unlock-yes

And then you should be unlocked:

bootloader-unlocked

Now change to your unzipped “sojua-jro03e” directory. You should these files:

sojua-jro03e-dir Have a look at the file flash-all.sh. This file contains the sequence of commands to execute, which I will execute manually, rather than rely on the timing of sleep commands. (Also, this particular machine of mine is not a unix box, so the shell script is somewhat useless as an executable.) Here’s what the shell script contains:

fastboot flash bootloader bootloader-crespo-i9020xxlc2.img
fastboot reboot-bootloader
fastboot flash radio radio-crespo-i9020uckj1.img
fastboot reboot-bootloader
fastboot -w update image-sojua-jro03e.zip

 

So we simply execute these one at a time, executing reboots in between, and seeing small changes to the fastboot screen each time.

fastboot flash bootloader bootloader-crespo-i9020xxlc2.img

The screen shows “Verify Image (IBPL) … Success”:

verify-image-IBPL-success

fastboot reboot-bootloader

The device reboots, and shows an updated bootloader version on the fastboot screen. In the same fashion we update the radio.

fastboot flash radio radio-crespo-i9020uckj1.img

We see “Verify Image (RADIO) … Success” on the screen, and then we reboot it again

fastboot reboot-bootloader

The device reboots, and then we issue the big update command, which gives us the new OS.

fastboot -w update image-sojua-jro03e.zip

flash-all-sequence

When it reboots, you’re done. You’ll have Jellybean running. You’ll have to sign in with your google account and give it a few minutes to download and restore all your apps and settings. Hopefully you have some bandwidth. You’ll still have to put the app icons back on the home screens yourself. You can find those screen shots in the “Pictures/Screenshots” directory that you backed up over USB.

Screenshot_2012-08-25-22-19-51

18 comments:

  1. I read some other guides but yours was really helpful. Thanks so much!

    Writing commands manually worked like charm!

    Thanks again

    ReplyDelete
  2. I used your guide to update my phone .. It is just perfect. Thank you.

    ReplyDelete
  3. It worked but my baseband version changed from i9020AUCKJ1 to NO DGSXXKI1. NO DGSXXKI1's signal is not as strong as previous the i9020AUCKJ1.

    ReplyDelete
  4. This is the method I ended up using. I can't believe this is the only page on the internet that doesn't insist on replacing your stock recovery. I used the shell script with no issues.

    ReplyDelete
  5. Thanks for this post. It helped a lot.

    Anyone else having problems with wireless tethering on Nexus S - Jellybean?

    ReplyDelete
    Replies
    1. Wireless tethering doesn't work for me in JB

      Delete
    2. I just confirmed that tethering doesn't work for me either. I am able to connect to the WiFi successfully, but it is not routing any packets through the device.

      I just put a note at the top of the post to warn people.

      Delete
  6. awesome. It is really great worked like charm. :) I am on jelly bean 4.1 now

    ReplyDelete
  7. Great manual! I was able to update my Wife's Nexus S! One thing that I noticed about the tutorial. The link to the factory image is actually pointing to the SOJU not the SOJUA version of the Nexus S. Other than that It worked like a charm

    ReplyDelete
    Replies
    1. Hey Emil, nice catch. I went to check and correct the URL for that image file and it looks like JRO03E is now gone since 4.1.2 is now available. I still updated the post so people can find the right link. Thanks.

      Delete
    2. By the way Emil, did you install 4.1.1 or 4.1.2? Does tethering work for you?

      Delete
    3. No problem, I installed the 4.1.2 version (that's the newest one up there for Sojua. I tested the tethering and it works great.

      You might laugh but one of these days I'll use the method above to take the phone back to 2.3.6 since it's my wife's phone she actually prefers the Android before 4.0. Ever since I updated her on 4.0.4 she's been unhappy and when I did 4.1.2 she is even more against updates. Go figure. Women.

      I have 4.2.1 on my Nexus 4 and can't be happier... to each his own I guess.

      Thanks for the nice tutorial again.

      Delete
  8. Wow thank you so much! It took me 5 hours to do it (get the SDK, find fastboot.exe, get cmd prompt to work with my path, get the proper USB driver with NRT etc etc) but it was so worth it! Thanks!! I learned so much :)

    ReplyDelete
  9. Thanks a lot. Did this for my Mom's Nexus S, I have the Galaxy Nexus myself. Took a half day to do it (same reasons Arno said), but it was definitely worth it. Appreciate the walk-through :-)

    ReplyDelete
  10. Hi Broc, I have an unlocked, nexus S, I9020A on T-Mobile network, if I upgrade to jelly bean, do I loose connectivity to T-Mobile?
    Thank you.

    ReplyDelete
    Replies
    1. To be honest, I'm not certain. I'd hate to give you the wrong advice.

      Delete
    2. Broc, thanks so much for the time you took to reply. I went for it. I upgraded to Jellybean, and I still have connection to T-Mobile.

      Delete