Now with soju!

I've just released some factory images for 4.0.4.

The most noteworthy item is that we now have a factory image for Nexus S, for the first time.

The benefits have been discussed already: factory images allow to experiment with custom AOSP builds with the knowledge that it's possible to update the bootloader and radio firmware, and to go back to a factory state if anything goes wrong.

Like your custom build? Stick with it, and update the radio as new versions are released. Don't like your custom build? Reflash your device to its original state, and you'll even start receiving OTA updates again.

Update: Get them straight from the download page
4.0.4 factory images are live, Jean-Baptiste Queru, 3/29/12 3:38 PM, The factory images that match recent OTAs are now live: yakju (i.e. the variant of GSM Galaxy Nexus that is supported in AOSP) is h...
Thomas Tenkely's profile photoGaurang Divecha's profile photoAlan Cohen's profile photoJean-Baptiste “JBQ” Quéru's profile photo
soju are saying this is a good thing?
OTA' had to laugh there. Half the time we are able to fix the problems long before they push them.
any chance you know where to get a pit file for use with ODIN for a nexus s 4g (sprint) a friends phone has all the partition tables messed up badly
+Josh Kimble - Sorry, I don't, as I understand that's specific to Samsung, and AOSP (which is my domain of expertise) tends to only have portable tools and formats.
Great job JBQ. Finally we are moving forward... Thank you for never giving up...
+Josh Kimble - I'm not sure. I've never had that happen to any of my phones. If the bootloader is still working it's possible that reflashing a factory image might restore it, once sojus factory images are available, but even in that case I'd be worried about losing the factory data (MEID, antenna and camera calibration, etc...)
How do I find out if it has the yakju build?
So this confirms no i9020a yet (no sojua). But, perhaps soon! The web site will update with those links within the next few hours.
+Frank Dillinger Google has next to nothing to do with that update. HTC has the code, its all up to them and the carriers to make that update happen.
Nice.... I'll be trying that for sure!
@ Andrew, yes sir, im aware, but its up to Android to deliver to HTC, then HTC delivers to Carriers. Its a process. However, It was stipulated in several posts that The Sensation was to get it on the first release before the others. Maybe it wasnt true. I dont know
+Josh Kimble - No 2.3 images available at this point. I'll wait until I'm done with all the 4.0.4-related tasks on my plate to check the OTA situation for the different soju variants and decide whether to release 2.3 images as a stop-gap.
Thank you so much for pushing this release!

On my Nexus One, I was able to download the updates and save them to /sdcard/ and force a manual upgrade by holding down the power and volume buttons while booting.

On my Galaxy Nexus, I entered system recovery mode by pressing the volume buttons and power, and then volume up + power, but the only option that looks promising is "apply update from /cache"

If I save the file as /cache/ will this work? (My phone is stock, with an unlocked bootloader, and it is using full device encryption) All of the instructions I've found online say to use a different clockwork recovery, but I would like to keep my phone 100% stock.
+Puleen Patel - I'll refer you to the app that +Andrew Martonik mentioned. That being said, if you still have the original build on your phone and just want to update, you really should just wait for an OTA, as those factory images are really meant for people using AOSP builds. Also, if you don't have the original build on your phone any more but don't know what you originally had, it's a bit hard to know. The yakju build was sold in Europe only, and not all phones sold in Europe had yakju builds, so it can be hard to know.
+Keegan Jacobson - Yes, that page will be updated in the next few hours. The plan is to post sojus images as well (that's for Nexus S 4G) at some point in the future, assuming that plans don't change along the way.
+ABDEL GHAFFAR ET-TOBI - Actually, it's not really my job to talk about deployments to retail devices. My AOSP work generally doesn't depend on individual deployments to retail devices, except for the devices for which I provide factory images (but I don't provide such images for Xoom).
+Matt Pandina - If your device is stock, I strongly recommend that you just wait for an official OTA.

That being said, those images aren't meant to be installed through recovery, they install at a lower level (bootloader). Also, the process to install those images erases all data you have on the device.
+Josh Kimble - Indeed, for that use case that'd be helpful. I've got to manage my own time at work, and if I spend a few hours putting 2.3.6 and 2.3.7 images online just to have to spend as much time again to update them to 4.0.4 a few days later, that's not the best use of my time. I'll make a decision after I deal with a few other urgent tasks. Thanks for being patient.
Ah, thanks for the reply. I was hoping to avoid the data wipe by changing the last line in the script to:

fastboot update

and then manually wiping the cache from the recovery, but I'm not sure if this would cause any unwanted side-effects, especially with the full device encryption.
+Matt Pandina - I see you've been looking at the details and you're familiar with those commands :)

I assume that your bootloader is locked (if you worry enough about security to encrypt your device, you're probably not leaving your bootloader unlocked), and unlocking the bootloader erases all your data (specifically to protect you from people who'd try to flash a custom system on your phone).

You're right, though, if you already had an earlier retail build in place, you could update it exactly that way, by removing the -w in fastboot update. The assumption is that people who install factory images through fastboot don't start from a retail build, so it's safer to wipe the device than to risk leaving it with an incompatible data partition.
Not sure if I approve of soju's addition to the image. I've had my fair share and shame because of it.
My bootloader is unlocked actually, since I unlocked it back when I first got the phone. It was not originally a yakju, and the script is how I got it to be on yakju.

I'm just not sure if flashing the image (without -w) through the bootloader would still allow me to access the previously encrypted system, or it it would overwrite the bootloader and system with one that does not expect encryption.

In the desktop world, I've compiled my own Linux kernels, and even built a custom initramfs that supports a fully-encrypted root using Truecrypt; I'm just not as familiar with the lower levels on Android. The way I would expect this process to work on Android is if the update happened in stages, the first being to update the bootloader and/or radio, followed by a reboot that asks for the decryption password, and then once the filesystem has been decrypted, to update the live filesystem and stock recovery. But this is just a guess based on how I would design it.

Is this roughly what would happen, or am I totally off the mark?
+Matt Pandina - I have to admit that I'm not quite entirely familiar enough with the way the data partition is encrypted to be 100% sure that you could update manually.

It's likely that the encrypted userdata partition is self-contained, such that you could update all the other partitions (bootloader, radio, recovery, boot, system) and not have any problems, but I haven't tested that scenario myself so I can't be totally sure off-hand.

Now I'm curious, I'll try to find 5 minutes to give it a shot tomorrow.
JBQ just wanted to say thank you and you rock. That's all! :)
+Frank Dillinger the sensation is not receiving an aosp build so this doesn't apply. It will be getting a 4.0.3 build with sense. Check xda for a beta leak if you're rooted. Tmobile confirmed an official update today but didn't give a date.
Gotcha, I was assuming that the system was encrypted as well (to prevent tampering), but I wasn't sure.

Thank you, and I'll hold off on trying to force the update manually until I have more information.
+John Smith - I'm not 100% sure. I believe soju might be for i9020t, with sojua for i9020a, sojuk for m200 and sojus for d720, but I rarely actually see the product numbers like that so I'm not very confident there.

i9023 is a different beast and I don't think I can support it in AOSP or with factory images - it requires (at least) different radio images that I don't have access to.
+Matt Pandina - I'm pretty sure that the system itself isn't encrypted, as there'd be a chicken-and-egg issue since the system couldn't boot far enough to ask for your decryption password to start decrypting.
+Jean-Baptiste Queru So, since I have the i9023, that means that I can't flash this factory images. Well, thank you very much.
+Jean-Baptiste Queru - I want to thank you for what you do for the Android community. I personally appreciate it. I have one question regarding 4.0.4: Are you aware if the AVRCP profile been brought more up to date to say, 1.3 or 1.4? My stint with using CM7 on my Nexus S 4G spoiled me with that, and I downright miss having it on my Galaxy Nexus.
+John Smith - Indeed, I don't know what would happen in that case (and I wouldn't be able to get you back to a clean state afterward), so I don't recommend it.
According to everything I read, including the OTA from 4.0.3 to 4.0.4 for the Nexus S, i9023 is compatible with i9020t. Not sure about others, and I'm not 100% sure the situation is different with OTA compatibility vs full images, but it would be ideal if someone who tried it or knows could verify i9023.
+Jason Bowers - Thanks for the nice words. I have to admit that I'm not following the gory details of what gets improved all around Android. With literally several hundred changes a day, tracking things would be a full-time job, and in fact that's why we have a small army of product managers :)
+Jean-Baptiste Queru I thought that the difference between the i9020T and the i9023 was just the screen type (S-LCD and AMOLED). But thanks for your hard and good job. I won't flash those factory images. I don't want to brick my phone. Thanks again!
+John Smith - It's possible that things may work, but from what I'm reading the i9023 uses different versions for the radio firmware (e.g. I9023XXKK1 vs I9020XXKI1), which confirms that it's not supported by Google's internal tree or by AOSP.

I'm cautious with that difference, because back in Nexus One (which also had OLED and LCD variants), flashing an OLED build on an LCD device was known to result in a black screen.
The system actually "boots twice" when encryption is enabled. I would guess that the first boot happens from a separate (signed and verified-in hardware) system partition (equivalent to the initramfs that sets up /dev/mapper in the Linux world) and then after setting up the mapping, doing the equivalent of a switch_root to finish booting from the now decrypted root file system (displaying the boot animation again).

That way there wouldn't be a chicken and egg problem. Basically the only thing you would need unencrypted is the kernel and enough user space to make emergency calls and ask for the password.
+Matt Pandina - Actually, the symptom of booting twice is that the framework can boot just far enough without a data partition to ask for the encryption password, but not further, and by the time it reaches that point it's already too far to recover without fully restarting. So, it sets up the decryption on the data partition, then stops itself and restarts itself. In lower-level shell stuff, that's really the equivalent of "adb stop ; adb start".
+Jean-Baptiste Queru I have the stock 4.0.3 version (no mods) and I have the I9023XXKI1 radio. The funny part is that in the bootloader it says: Bootloader version I9020XXKL1 and Baseband version I9020XXKI1.
+John Smith - Wow, that's odd.

I can imagine scenarios where that's just a bug (I've seen bugs in the way radio versions are reported).

I can imagine scenarios where that's good news (where it's the same radio for i9020t and i9023, which reports a different version number to the bootloader and to the OS).

I can imagine scenarios where that's bad news (where something is already off on your device and I can't guess what it is).

Without being able to ask the right experts right now, I can't know what it is and I can't think of a safe way to test it.
So if i9020t is compatible, what are the chances i9020a would be, as it is closer to that than i9023. My head is spinning from all these versions, and GNex is even worse. Yikes.
Any chance of the Sprint crespo4g image? I see mysid is released on Verizon, so maybe Nexus S on Sprint is possible too?
+Artem Russakovskii - sojus (crespo4g) is also in the plans, like I explained earlier in the thread. I'm monitoring the OTA schedule to decide whether to wait for 4.0.4 or do the extra work to release 2.3.7.
Cool. I found a detailed explanation of how encryption was implemented in Android 3.0: and it would appear that only /data is encrypted (with /mnt/sdcard being a FUSE filesystem that is presumably stored on /data). I'm not sure how much has changed with Android 4.0, but it looks like a system update from the bootloader should work fine, since only /data is encrypted.
+Matt Pandina - Ah, cool. I figured that adding a "Tech Info" section to the AOSP site would eventually be useful :) I agree, I'm guessing that things are likely to be fine, but I can do a test tomorrow to be extra sure.

You're currently running 4.0.2, right?
That would be great!

Yes, I'm running 4.0.2, with an unlocked bootloader, device encryption enabled, and Google Wallet. I should probably reset Google Wallet from inside the application, to prevent the secure element from getting bricked in case something goes wrong and I end up doing a full wipe. And on that note, maybe I should also temporarily disable 2-factor authentication as a "just in case" so I don't have to find my recovery passwords…
Got it on my Galaxy Nexus right now. I think it took off at 88mph.
+Jean-Baptiste Queru Similar to +John Smith I also have radio version I9023XXKI1, bootloader version I9020XXKL1 and baseband version I9020XXKI1.
any idea where i can find the radio version I9023XXKI1?
perhaps i can still use the current factory image and then update with the correct radio version.
+Handy Mulyono - That's the part that puzzles me: I'm used to only seeing 2 version numbers (there are only 2 files involved), and the radio and baseband are two names for the same thing (but there are 2 channels to report the version number, so a single radio image could be reporting 2 different version numbers).

It's as if the same binary works on both i9020t and i9023, shows itself as I9020XXKI1 to the bootloader, but could show itself as either I9020XXKI1 or I9023XXKI1 to the OS based on what hardware it's running on. XX is a country/region code that means "worldwide", and "KI1" is a date code (year 11, month 9, 1st build of the month).

I'm confused, and I'll need to ask an expert.
I wonder what is new? any new feature?
Hi Jean-Baptiste,
I have a 9023 version of Nexus S so it means we don't have any chance of having OTA for this build.

That's SAD :(
One More thing

My Bootloader Version is I9020XXKA3 & Baseband Version is I9020XXKF1 & In the zip it says

require board=herring
require version-bootloader=I9020XXJK1|I9020XXKA3|I9020XXKI1|I9020X XKL1
require version-baseband=I9020XXJK8|I9020XXKB1|I9020XXKD1|I9020XXK F1|I9020XXKI1|I9020UCKB2|I9020UCKD1|I9020UCKF1|I90 20UCKJ1|I9020KRKB3|M200KRKC1

So In this secario can I flash it to the factory image that you have provided. Pleaseeeeee Advise

Hi Angel,

Can you please confirm your Baseband & Bootloader version on which you had flashed that Factory image.
My Bootloader Version is I9020XXKA3 & Baseband Version is I9020XXKF1 & In the zip it says

require board=herring
require version-bootloader=I9020XXJK1|I9020XXKA3|I9020XXKI1|I9020X XKL1
require version-baseband=I9020XXJK8|I9020XXKB1|I9020XXKD1|I9020XXK F1|I9020XXKI1|I9020UCKB2|I9020UCKD1|I9020UCKF1|I90 20UCKJ1|I9020KRKB3|M200KRKC1

So In this secario can I flash it to the factory image that you have provided. Pleaseeeeee Advise

Thankfully it would appear I have the yakju build on my nexus. However I'm a little surprised to find out that it's entirely possible I might not have had this build. This would have then left me at the mercy of Samsung to roll out the update for me.

The whole reason I switched to a nexus from a Samsung Galaxy S2 was to avoid being reliant on Samsung for rolling out updates.

I suppose my question is, how can I avoid this problem in future if I purchase the next Nexus phone?
+rocky singh - The factory image package contains the latest bootloader and the latest radio image. The script in there flashes the bootloader, then the radio, then the actual system. The part I'll still need to confirm for sure is whether it works on i9023.
+Mike Dent - With Galaxy Nexus, you're in good hands.

For Galaxy Nexus, we've been able to hit a good balance between how much control Google has and how much expertise and scalability the OEM brings to the table. There wasn't quite enough Google control for Nexus One, and we ended up with e.g. the passion_eu version that got updates on a very different schedule. There was a bit too much control for Nexus S, and we couldn't scale it beyond 4 variants. When it comes to rolling out updates, as far as I'm concerned with Galaxy Nexus we're getting the best of both worlds.

It's true that there are still a few rough spots with AOSP support for Galaxy Nexus. We're learning from those, and that has already been fed back into the setup for future flagship devices. Those rough spots don't affect the process to deploy updates to end-users.
Now I konw JBQ is your name.NIce! I'm not clear about the difference between i9020a and i9020t.Could you tell me something about it?
i9020a and i9020t have different hardware at the level of the cell radio. They're used on different carriers, and they are each fine-tuned for the matching networks, so they also run very slightly different versions of Android.
Thank you.At the first time nexus s OTA,some i9020a users just flash the i9020t radio then they flash the android 4.0 for i9020t,it works.So I thought the main difference is radio.
+Tang Wei - it might look like it's working, but such mix-and-matching is known to cause issues like weaker reception, increased battery life, and sometimes features going entirely missing. It's definitely not recommended. In the worst case, I'd recommend leaving an older I9020UC radio in there, it's likely to work better on that hardware than a newer I9020XX one.
Thanks again!Maybe that's why they complain about the weak signal- -
Better late than never for the Nexus S :)

Thanks +Jean-Baptiste Queru !

Incidentally, since the Nexus S does have a separate sdcard partition, does this update maintain usb mass storage (UMS) gadget functionality? Or are users forced to switch to MTP?

It makes a huge difference for Linux & Mac users. The CM9 image that was floating around did not support UMS and that was a bit of a dealbreaker for me :P
+Christopher Friedt - It's amazing how long non-technical issues can take to get resolved, isn't it? I really appreciate that all the users out there patiently trusted that I was doing everything possible to get those out.

As far as I can tell 4.0.4 on Nexus S supports UMS.
It looks like when comparing my fastboot screen to the android-info.txt file that my baseband, bootloader, and product is supported by this release, is there more to take into account? I have an i9020a er sojua...
But I guess the specific bootloader and radio contained here aren't appropriate...
+Jean-Baptiste Queru it isn't totally trivial though - IIRC the Android userspace needs to know the right block device / offset and report that to sysfs (which might have changed api between releases). We had to do something similar on the "imerj phone".
+Matthew Nickerson - One of the unfortunate aspects of Nexus S is that all hardware variants call themselves "herring" at the fastboot level, and that prevents from properly separating them in a safe way over the fastboot protocol. So, we end up with content in board-info.txt / android-info.txt that lists all the radios as being OK on all the hardware variants, when in fact they're not.

It'd be nice to have the bootloader provide more information about the exact hardware variant, and to have a richer syntax for board-info.txt that allows to specify which exact radio versions are meant to be used with each variant.
Any change we can have a full update image, that keeps all the settings and data intact?
Waiting for the OTA update can take ages. I tried using the 4.0.4 incremental update manually. I get a "Status 7" error.
Please reply. :)
+Amarjeet Rai - On the AOSP side, which is what I release factory images for, the assumption is that you're not starting from a factory build in the first place, so there's no point trying to keep the data as it wouldn't be compatible.

For your use case, the recommended approach is simply to wait for the OTA.

That being said, if your bootloader happens to already be unlocked, those factory images can be applied to retail devices without wiping, you just need to be sure to remove the -w parameter in fastboot update.
+Matt Pandina - Updating encrypted devices via factory images seems fine.

Here's what I did:
-I started from yakju device with an unlocked bootloader
-I flashed 4.0.2 (with the distributed factory image), wiping everything.
-I booted, and encrypted the device.
-I made some changes that I'd easily recognize.
-I got into the bootloader, flashed the new bootloader, radio, and android partitions, without wiping.
-I rebooted, and the device was still encrypted, with my changes still present.

YMMV, but as far as I can tell this seems safe enough. Just be careful to not pass a -w option to fastboot. And this is definitely a good time to do a backup.
+Jean-Baptiste Queru - Wow, that is great! Thank you so much for taking the time to test this for me. I did make a backup using "adb backup \-apk \-shared \-all", and then I used "adb pull /mnt/sdcard" to back up what is on the virtual SD card. I'll flash it when I get home tonight. :-)
Hopefully the image will be available for the i9020a. I really want ICS on my device. I'm still on 2.3.6. Pretty depressing since most users have had ics since december... and now the new update for 4.0.4. Hopefully the OTA comes soon, I've been waiting... and waiting... and waiting.
+Martin Paluchowski - I understand the frustration, I really do. I have to deal with my wife every day asking me when her Galaxy Nexus will update from 4.0.2, and that's nothing compared to still having 2.3.6. I can't release the image until it's been approved, though, so I've got to patiently wait with all of you waiting for something I have no influence over.
+Jean-Baptiste Queru - Thank you so much for all of your help! I successfully forced a manual upgrade using "adb reboot bootloader" and a modified "" script (to remove the -w option). Everything is working great so far. Damn this build feels snappy!
+Jean-Baptiste Queru Hopefully the image for sojua will be approved soon. I can't wait... But do you have any clue why google keeps holding back on the i9020a? Why don't they just let you release the image?
Hi i was so impatient to upgrade my i9020A Nexus S to ICS 4.0.4 that i downloaded the factory image. I flashed the radio using the radio-crespo-i9020xxki1.img file and i can confirm that it does not work. I can't access the network in 2G anymore (can't try in 3G i don't have a data plan). I hope i'll be able to recover from this situation and an ICS radio file for the 9020A will be released soon :-(
+Kevin Crowston Many thanks, it now works (using the uckf1 file not the uckf1 new).
I'll check periodically this thread for the official radio files.
I also noticed after the upgrade to 4.0.4 of my Nexus S i9020A that the USB transfer rate has dropped down to 1.4 mbytes/sec :-(
I've just flashed the factory image on my NS I9023 and it worked like a charm, no hiccups, no errors, bootloader - OK, radio - OK, recovery - OK, system and data - OK & OK. If all I9023 are the same, hardware wise, which they should be, then the update should, in fact, work for everybody.
Hi +Jean-Baptiste Queru, I have Nexus S running 4.0.3. Still I haven't received the 4.0.4 OTA update. When would I get it? Is there way to do manual update to 4.0.4 in the normal way?

You are star man.

I have just flashed mine 9023 Nexus S from 2.3.6 to 4.0.4 & All things working fine & snappy

Thanks A ton
+Maxime Laverdière - (Answering in English for everyone's benefit, I hope that's OK).

For each Nexus device, both Google and the device manufacturer get closely involved in all phases of development (including testing), along with the relevant silicon vendors and operators who each bring their own expertise.

At the technical level, generally speaking there are different mechanisms used in the Android ecosystem to deploy updates to user devices. Google has its OTA mechanism, which is used for all Nexus devices (as well as some other devices). That means that at the technical level the OTA is sent from Google servers. That's just the technical aspect, though.

When it comes to approvals, it becomes hard to speak in general. Lots of companies have some input, and the process for the final approval and the OTA schedule depends on many factors, which vary per manufacturer, per device, per country and per operator.

Because there are very many combinations, and because my job is somewhat remote from those concerns, I'm not in a position to provide with certainty all the details that could be relevant to a single device (in your case, sojua at Rogers). At the level of my job and in the context of this post, I know that there've been enough approvals to allow me to distribute 4.0.4 factory images for soju and yakju, but not yet for the other variants.
After you update.. can you lock your bootloader?
in limba romana ne poate explica si noua cineva cum putem face acest update sau noi suntem din lumea a 3-a si trebuie sa ne descurcam cum putem....rusine google
I had to use Google Translate. I hope that I understood correctly.

I am sorry that the instructions to install those factory images have not been written yet. This is part of my job, and I have not yet done that part.

Now that the process to handle factory images is becoming stable, I will be able to write those instructions and to publish them.

Thank you for your patience and for your understanding.
Guys I just flashed the official i9020a OTA update! Someone in Canada just received the update and posted the URL for the official OTA. Either wait for the OTA or flash this official google update now.
Scroll through the thread to find the link. Many thought it's an April Fools prank but it's NOT. I repeat it's NOT. i9020a users rejoice!
if it's an i9020a it's a sojua. it it's soju it's an i9020t. You can find this info under settings-->about phone and look at the baseband it should say if it's i9020a or i9020t
+khalil kalwar - If it's a Korean one, it's an M200, and the build is sojuk. If it's a Sprint one, it's a D720, and the build is sojus. If it uses the AT&T frequencies (850 and 1900 MHz), it's i9020a and the build is sojua. Otherwise it's i9020t (AMOLED screen) or i9023 (SLCD) and the build is soju. In the specific case of the i9023, I'm waiting for confirmation that the factory image can be safely flashed.
I had the 4.0.4 OTA on my i9020a, I Installed it, but when it rebooted, the update was not applied and it followed in 2.3.6 :( Now I have wiped, but the update doesn't appears again :(
+Jean-Baptiste Queru one more question, i have manually updated my nexus s i9023 to ICS 4.0.3., so i want to know, is my phone in normal condition or eligible to receive OTA updates?
the info in (About phone) is [(Android version-4.0.3) (Baseband version-I9023XXKI1) (Kernel version 3.0.8-gb55e9ac android-build@apa28#1) (Build number-IML74K)
+khalil kalwar - At the moment, I'm digging through layers of people who can get me closer to that answer. If I can actually get an answer out of that, I'll certainly make it known.
Haha. Reverted back to stock 2.3.6 out of curiosity... and there it was the official OTA update for the i9020a. (Fido in Canada)... WOOHOO
A full set of factory images for Nexus S will be available at in the next few hours (it's already there for me, but there might be additional replication delays around the world that are outside of my control).

This includes 4.0.4 for sojua for the i9020a 850MHz version to match the OTA that has started for those devices outside the US, as well as 2.3.6 sojuk for the m200 Korean variant and 2.3.7 sojus for the d720 Sprint variant, matching the latest versions approved for those.

I don't have any hard data about the i9023 yet, so I'm not quite 100% certain that the soju factory image is expected to work perfectly on those.
bookmarking this page I'm also waiting for the news about i9023.. thank you for your help =)
Is sojua 850MHz version different from the U.S AT&T 19020a? It's grueling seeing all these "but what about us Nexus S 4G owners?" posts when it's really the GSM AT&T users who are forgotten.
Yes, sojua covers all the carriers using 850MHz spectrum, including AT&T in the US and several in Canada.
Okay, thanks. So is the image for sojua that you uploaded effectively going around the OTA? For example, can you guarantee that image is going to be the same as what I would get if I waited for the OTA?
+Jean-Baptiste Queru
First and foremost: On behalf of all of us users of Android: THANKS for your time and patience replying to all our (sometimes dumb) questions. Guess what: here is mine:
I got my Galaxy Nexus brand new with the following specs, still stock, bootloader locked and SIM locked
Device: maguro
Product: yakjuxw
Android: 4.0.2
Bootloader: PRIMEKK15
Display & Build Number: ICL53F.I9250XWLA2
Baseband: I9250XXKK6

I want to "convert" this GN into a yakju stock 4.0.4 device AND make it SIM unlocked.
I know and understand the method to achieve the yakjuxw to yakju conversion but, will this also leave the phone as a stock SIM unlocked device (as if I had purchased it unlocked originally... sadly none of those here!) ?

If not (which is what I suspect...) what are the extra required steps to achieve Galaxy Nexus with the pure pristine Google stock 4.0.4 sim unlocked state ?

Thanks again. Best regards from Mexico.
Unfortunately, I'm not sure about your specific situation.

First, at a general level, I don't know exactly what's supposed to happen when flashing a yakju build on a device that was originally sold as a yakjuxw.

As for the specific issues of SIM-locking, I also don't know exactly what's supposed to happen in that case. As far as I know SIM-locking happens at a lower level than Android, but the two are still somewhat interrelated, and it's possible that flashing a yakju factory image would re-activate SIM-locking on your device.

Unfortunately, the short answer to all your questions is really "I don't know". I know just enough about the plain yakju phones to be able to support them in AOSP, but when it comes to variants like yakjuxw I'm not familiar enough with the exact details to be able to support them. My best recommendation is to stick with the official OTAs as they get sent to your device, those are the most likely to work as intended without negative effects.
Mr. Queru,
Thank you SO much for your help with all of this. I haven't done a thing with my phone since my old RAZR seven years ago, and tonight I was able to muddle through it and get ICS up and running! Thanks again!!!!!!
+Jean-Baptiste Queru Thanks for your comment and suggestion. I'll keep you posted on what goes on....

This leads me to another question. Are all Galaxy Nexus devices equal, hardware wise ? In other words, what is or may be different in a yakju versus a yakjuxw is indeed determined by software ? (as you said, probably, at lower levels than Android itself) ?

Thanks again.
+Daniel Hendrix - Glad you got it to work, and sorry for the trickiness. This is still designed with a very narrow use case in mind, and some more work is needed to make it easier and more versatile.
+Felipe Barousse - From the discussions I've had with people who know those details better, there are hardware-level differences between the variants of Galaxy Nexus, such that starting with a yakjuxw device and installing a yakju build on it could have negative consequences.

I don't have deep details, though, especially as there are so many combinations. Chances are, devices that are sold in the same countries and are meant to be used on the same networks (e.g. yakju and yakjuxw in Europe) are less likely to have problems when doing a mix-and-match than devices targeting entirely different locations (Japan and Australia come to mind as more likely to have deeper hardware-level differences).

Still, I don't recommend that you attempt such experiments on your primary device.
+Matt Pandina You wrote earlier in this thread: "My bootloader is unlocked actually, since I unlocked it back when I first got the phone. It was not originally a yakju, and the script is how I got it to be on yakju."

Out of curioisty:
What "model" was your GN originally (before converting it to a yakju) ?
Was your original GN yakju** SIM locked ? Is it now ?
Have you experienced any troubles , issues, strange stuff than can be directly attributed to the vonersion to yakju** to yakju ?
Any comments on your experience related to this issues are appreciated. Thanks in advance.

+Jean-Baptiste Queru Thaks again for your comment. Yes, indeed it is not a wise idea to play that hard with the primary device.
Nevertheless, if this is not the primary device and just stick to experimenting with firmware at the Android level, it can always be restored to stock.....isn't that the one premises of the Nexus class phones (or at least that is true with the GN in this scenario)?
Hope I am not mistaken... ;)

Thanks to all.
At my level, i.e. using the files described in this post, I only have the files necessary to restore a plain yakju device back to stock. I don't have the equivalent files for yakjuxw, so if you experiment in one direction I won't be able to provide any path back, unfortunately.
+Jean-Baptiste Queru I see...
...and, in your expert opinion, for all of us who are originally NOT in yakju. Is there someone who can be in a position to do what you do with yakju and for all of yakju's device owners ? In other words, would you say that non yakju device owners are just left to die alone ? Out of the Nexus experience / philosophy ?

As you can see, I am trying to find a way to experiment with a Galaxy Nexus, but playing by the rules, not sort of getting into "dark zones" to name it somehow, to be able to mod, and customize our GN phones. I had a Nexus One (purchased directly to Google online in the USA) and it was great having a pristine Android device... now, it feels like the Nexus promise is broken. Oh well, that is a story for another book.... sorry anyway. But would love to read your opinion on the above paragraph.

Thanks again.
Unfortunately, there are some subtle differences between yakju and the variants (like yakjuxw) that are visible at the level of what I can do with the Android Open-Source Project. I don't expect those differences to affect end-users, especially when compared with what had happened for Nexus One.

I think that the current situation (factory images immediately available for some variants) is an improvement over Nexus One (no factory images available) and Nexus S (factory images available in 2012 for a phone that shipped in 2010). I could mention other ways in which each Nexus has done better than the previous one. There's still some room for improvement, but I think that we're going in the right direction. I very much understand how the differences between variants are frustrating, though, and I'd feel happier myself if I could provide the same support uniformly to all Nexus users.
Why can the Nexus S i9023 not be supported by AOSP? AFAIK, its distinguishing property is that it has an S-LCD screen instead of S-AMOLED. Why should it have different radios, and why should there be a problem supporting standard GSM radio for Europe?
+Felipe Barousse - I actually don't remember what it was before. I saw that I wasn't on yakju, got pissed, and unlocked the bootloader, and applied the yakju factory image the day after I got my phone. I do remember that on the old build, when I went to the Market and searched for all Google apps (find a Google app, then click on More by Google Inc) it would only show me 6 Google apps versus a ton on my Nexus One.

It was not SIM locked, and it is not SIM locked now.

No strange things. It actually installed a more inclusive set of stock apps (apps that aren't available in other regions).

Bottom line, if you are using the phone in the US, you want to be running yakju. If I didn't have another pure Google device to compare my yakju** build with, I might not have realized how many apps were missing.

If you want to completely backup your existing build before you unlock your bootloader (assuming you haven't already), you will have to root your phone using an exploit. Instructions here:

My friend +Jason Donenfeld actually wrote that "mempodipper" exploit for Linux, and saurik adapted it to work on Android.

In case you are curious how that root exploit works (it is rather fascinating, and Linus Torvalds himself, was the one that patched that bug in the Linux kernel) you can read about it here:
Anyone know where I could find a how-to to install the image using a windows machine? EDIT: Can I just copy the commands in the flash-all.SH file?
+Oliver Schoett - I'm concerned that i9023 seems to report different radio versions, and I'm trying to get to the bottom of it. We've had issues in that specific domain with past phones (dream and passion), so I prefer to be cautious than to give people instructions that then cause difficulties.
+Jean-Baptiste Queru do you know how the roll-out of 4.0.4 works, ie how it is prioritised? I have the Galaxy Nexus with yakju build, completely stock. It has 4.0.2 and despite numerous checks it still shows as no update being available.
+Philip Caraci - I don't follow the exact details of the various approvals... It's too complex to follow from the sidelines, and I let the specialists focus on that while I take care of AOSP.
FYI - 4.0.4 is rolling out on the i9023 for Vodafone in Australia. My wife's got the OTA (from 4.0.3) a couple hours ago. The details in the About screen exactly match those on my i9023 that I flashed with the images +Jean-Baptiste Queru posted.

EDIT: Vodafone Australia just posted some extra details on the i9023 OTA build which may be useful to some of the people who have commented on this post:

Android Version: 4.0.4
Baseband Version: I9023XXKI1
Kernel Version: 3.0.8-g6656123andriod-build@vpbs1
Build Number: soju-userdebug 4.0.4 IMM76D 299849
+Philip Caraci - I have a 9020a, and if you're feeling impatient like I was, download the sojua image and do it yourself. it wasn't that bad, just takes a little trial and error. I was up and running in about an hr, so, depending on your skills/confidence, it might be worth a try.
I'm going to need a bit of assistance from owners of 9023 running 4.0.4.

I'd like one user who had a 9023 as unmodified as possible (i.e. if possible that had never been used with a custom / community build) and who received the 4.0.4 OTA to tell me which exact version they have for the baseband in the bootloader and in Settings -> About Phone.

To get to the bootloader, power down, and press-and-hold volume-up while powering up. Once in the bootloader, use volume-down to select "reboot" and press power.

I'd like one 9023 user who flashed the soju factory images to tell me the same details.

My goal is to check that they match.

Hi, +Jean-Baptiste Queru

I flashed the soju factory image on my i9023. I have never unlocked my bootloader. I unlocked it for the first time to flash the factory image.

Follows the data on my i9023:
- Baseband version in settings: I9023XXKI1
- Baseband version in bootloader: I9020XXKI1

Thanks +Paulo Giron, that's the kind of information I was looking for.

Can someone who received the OTA confirm that they have the same version numbers? Thanks in advance!
I can confirm what +Paulo Giron posted:

- Baseband version in settings: I9023XXKI1
- Baseband version in bootloader: I9020XXKI1

I asked also on another website,, and the ones that received the OTA on the I9023 (from 4.0.3 to 4.0.4) have the same baseband.

However, I would say that the answer that would help us a lot would be from a user that never ever installed any custom rom, radio, bootloader and was still full stock on 2.3.6 when he/she received the update to 4.0.4. I would say that that is the most accurate answer so we can see what radio version the OTA sent out.

Also, +Jean-Baptiste Queru , where exactly did you see the I9023XXKK1 radio ? I never found it on any website... The most recent radio that I could find, before KI1 of course, is KF1.
+Radu Eugen Pal - Well, that's the part that's been puzzling me. From what you and +Paulo Giron just told me, the exact same radio image returns a different version number depending on whether it's running on i9020t or i9023 (and, when running on i9023, doesn't return the same version number in the bootloader and in Android). The non-uniqueness of those version numbers is what's been making my life hard, as without a reliable 1:1 mapping between images and version numbers it's tricky to know what needs to be sent where.
+Jean-Baptiste Queru - And can you remember where you saw that KK1 radio ? I am really curious because as I mentioned, I have never seen it anywhere... Also, could you tell me when exactly is most likely that the radio/bootloader/system versions might have been split between I9020T and the I9023 ? I mean, on every website, including XDA, all radios, bootloaders, etc. are the same for both phones, but since they are different (at least screen wise), when do you think that the update versions might have been split between these 2 phones ?
Let's be sure that we talk about the full version numbers.

As far as I know bootloader and system images are the same, radio is the one I'm not sure about as we don't seem to have the same version number on all devices.

I don't know if there's a split, that's what I'm trying to find out. The factory images I distribute have a single radio image, but I'm seeing people report different version numbers with it, and that's why I'm puzzled and cautious.
+Jean-Baptiste Queru - Thank you for your reply and for taking the time to do all of this for us ! Thank you ! Thank you ! Hopefully we will get to the bottom of this and we will find out the truth about the I9023 a lot faster !
Just received OTA update on i9023 in Pakistan :)
+khalil kalwar . Cool. If you can find time for it, is there any chance you could post your baseband version numbers? I explained a few posts ago how to get them. Thanks!
+Jean-Baptiste Queru In bootloader,
" bootloader version - I9020XXKL1"
"baseband version - I9020XXKI1"

In About Phone,
"baseband version - I9023XXKI1"
Thanks +khalil kalwar, very much appreciated.

I didn't get any fully authoritative answer, but I got evidence from 3 different sources that the same radio image is used on i9020t and i9023.

In a nutshell: you can safely flash the soju factory images on i9023.

I'll update the web page at the first opportunity, most probably sometime next week.

Thanks everyone for being patient while we investigated that situation.
The primary use case is for situations where you've been building and flashing your own custom system based on the Android Open-Source Project, and then want to get your phone back to a retail state.

There are definitely other situations where those are relevant, but using them in such cases isn't as straightforward.

I put a small documentation blurb on the download page a few days ago, hopefully that'll clarify things.
+Jean-Baptiste Queru - Thank you so very much !!! I also have a friend who hasn't made any changes to his phone ever and just received the update to 4.0.4 OTA. I will post the info as soon as I meet up with him. In any case, thank you once more for everything !
Alright, so I have some news. I just spoke to my friend that received the 4.0.4 OTA update from a stock 2.3.6. He made no changes whatsoever to his phone EVER ( no unlocked bootloader, no custom roms etc. ). His baseband on the phone is I9023XXKI1 and under fastboot, he has

Bootloader version : I9020XXKL1
Baseband version : I9020XXKI1

Hope this helps to clarify things :)
Same here in Indonesia. i9023, no OTA yet but I flashed the image that updates from 2.3.6 to 4.0.4. after using it for about a day, I could say everything worked perfectly (screen, radio, wifi, battery life). btw maybe it's just me loving my new update, but I feel like multitasking feels smoother now. I don't know if that's possible, because the hardware didn't change and the Nexus S only has 1 core, but does ICS bring that improvement? cause it made me love my phone even more =)
+Кирилл Тарасенко - Sorry, I don't know the details about the OTA plans and schedules for all variants, (because each goes through slightly different approvals). The factory images for 2.3.6 on the m200 are available at the usual location, and if you're currently running a custom build and go back to the stock version you'll be eligible for any future OTAs.
+Jean-Baptiste Queru I've just flashed 4.0.4 ICS image (flash-all) into my Nexus S i9023 and everything is working fine so far. Thanks Jean.
+Jean-Baptiste Queru, having those factory images available is really a nice feature. Do you plan to release older factory images for soju/i9023, especially 2.3.x? I'm searching for a phone where I can easily switch back and forth between gingerbread and ICS for app testing purposes. Or as an alternative, is there a way to extract factory images myself from a freshly purchased soju using fastboot?
+Kolja Nowak - That's a useful scenario indeed, and that's why back in the days of ADP1 / ADP2 we asked HTC to make factory images available.

I'll keep it in mind, but I can't promise anything. There's no fundamental reason why I couldn't do it, I just need to find a few hours to prepare the files, test them, and put them on the relevant servers.
OK, I've played around in Fastboot and recovery trying to learn having fun, etc., but I'm totally lost as to how to run the script to handle all operations for flashing my crespo (soju) back to factory. I've checked on XDA but it just shows flashing each file individually (or so as I can find). Did I misread or misinterpret something?
This is for Nexus S..any luck for Galaxy Nexus??
yakju and takju are GSM (yakju is one of the European variants, takju is the one some on Google Play), mysid is the VZW variant. They're not meant to be flashed on other variants of Galaxy Nexus, as things are known to break in that case.
+Jean-Baptiste Queru, is there an OTA update coming for Nexus S 3G I9020A (purchased from Best Buy)? I'm still waiting and still on Gingerbread. If not, what's the recommended way to get to 4.0.4 or 4.1 for this phone?
+Alan Cohen - Sorry, I don't know, I don't track the details of each OTA, there are too many combinations of devices and carriers to keep track of at a glance.
Add a comment...