Nexus S (GSM) android 4.0.4 Official update (with download links !!)

Search This thread

caliban2

Senior Member
Mar 9, 2009
2,187
407
I have Nexus I9250XXKK6, running Android 4.0.2 Build No. ICL53F. On Rogers Wireless in Canada and no update till now. Any idea when or how to get it?

This is the forum for the nexus s... ;)
But isn't the update for the galaxy nexus rolling out as well? In waves, as always with Google and nobody knows when your number is up?
 
  • Like
Reactions: horoscope55

qorron

Member
Dec 5, 2011
27
32
Solution (well maybe...)

So.. from what I read in this thread I derive some more or less useful observations:
It works and fails on slightly modified roms.
It works and fails on unmodified roms.
It tends to fail more often with the stock recovery.

Here is my story: 9023, cwm5023, manually flashed 4.0.3 in december, rooted, rom slightly modified (hosts file, some extra ogg files in the notifications dir, root, rootkeeper, and deleted recovery-overwrite-script).

What I did: put the file from the first post in /sdcard/, reboot, recovery, apply update.zip, first the 404, then root (just to be sure), fix permissions (don't know if necessary), reboot, got 404.

But the reports of failed updates made me curios.

(at this point this analysis may get a little bit above the level of understanding of a regular Joe android user)

So, I had a look at the source.
(extract the zip, searched for something that looks like an update script)
got this one:
Code:
/META-INF/com/google/android/updater-script

And right here at the end of this little code block in line 652:
Code:
assert(apply_patch_check("/system/vendor/lib/libwvm.so", "6f03d4b266d99f2e79a617786d4ba4981a2bc4e5", "aa466817fc702b7764ac442452aea2c4593503e3"));
set_progress(0.983189);
assert(apply_patch_check("MTD:boot:3526656:40d819a22242be448d36e61b1ad42501e88838cb:3526656:877503a77928e449c8bff451ea7a3e783a4b607f"));
set_progress(1.000000);
assert(apply_patch_space(15916988));

Here is the feared apply_patch_space call.
Still no real clue what it does.

So, I googled and found:
http://www.freeyourandroid.com/guide/introdution_to_edify

The interesting part:
Function Name: apply_patch_space

Function Syntax: apply_patch_space(bytes)

Parameter Details: bytes = number of bytes to check for

Action: Checks the cache to verify that there is enough space to write the patched files to it and returns something. Need to test this function to verify.

Ok.. so, the problem is not a modified file (files are checked too, you can see which ones by reading the script) but more a lack of free space on a 'cache' (who's location is yet to be determined).

So, thats about 15MB of free space required.
Looking at /cache with root explorer: 466MB free

Found a lead to the source files here:
http://tjworld.net/wiki/Android/UpdaterScriptEdifyFunctions

Again, use the source Luke!

I had the android source lying around somewhere from the time I wrote this (completely unrelated) post: http://xdaforums.com/showthread.php?p=20017514#post20017514

I had to jump through quite a bunch of C-source files (I'll spare you the story) until i got the answer:
Code:
size_t free_now = FreeSpaceForFile("/cache");
So, it really is /cache
There may be many reasons why this fails:
  • There is not enough space left on /cache (obvious)
  • /cache is not mounted but it should be (it failed to mount somehow? maybe a prior wipe or backup unmounted it?)
  • It is mounted read only and it should be mounted rw.

To be sure, I had a quick look at the situation right after the device enters the (cwm) recovery:
Code:
~ # mount
rootfs on / type rootfs (rw)
tmpfs on /dev type tmpfs (rw,relatime,mode=755)
devpts on /dev/pts type devpts (rw,relatime,mode=600)
proc on /proc type proc (rw,relatime)
sysfs on /sys type sysfs (rw,relatime)
/dev/block/mtdblock4 on /cache type yaffs2 (rw,nodev,noatime,nodiratime)
~ #

if you are there, you can check the free space with the df command:
Code:
~ # df
Filesystem           1K-blocks      Used Available Use% Mounted on
tmpfs                   176532        32    176500   0% /dev
/dev/block/mtdblock4    480768      2588    478180   1% /cache
~ #

The expected situation right before the update should be:
/cache is mounted read/write and has plenty of free space.
(note: df displays capacities in numbers of 1k blocks)

I have no idea what all you guys did before the update, but this may help if you have this 'apply_patch_space' error:
  • Ensure a working 4.0.3 is on the device.
  • After entering the recovery, immediately apply the update.
  • If you have the urge to backup, wipe, whatever, do it and then reboot once more for the update to ensure all effects of that actions on the /cache are gone.

Again: I have no idea if this solves your case, but it is my best guess and I think it has a good chance of success.
 

oldblue910

Senior Member
Jan 1, 2011
4,248
3,156
Durham, NC
Excellent post! I'll bet you dollars to doughnuts that if you flash the OTA update manually, it re-mounts cache RO, causing the OTA to fail. If you go from the OTA software in the ROM, it probably sets some flag that causes the stock recovery to keep the cache partition RW so the flash will succeed.

The OTA update works fine as long as you wait for the popup, then tap "restart and install". If you try to flash it manually, it will fail in the ICS stock recovery 100% of the time. Works fine if you flash it from CWM or a stock Gingerbread recovery though.

Your post pretty much cements that there was some kind of change in the ICS stock recovery images that makes it impossible to manually flash OTA images anymore. I can understand the reasoning for this on Google's part...but I don't agree with it. I'm sure in the end, they figure people like us probably aren't using stock recovery anyway, so we'll get the updates installed no matter what. At the same time, it keeps not-so-technical users in check and stops them from doing something potentially dangerous.
 
Last edited:
  • Like
Reactions: dbal

GoldMamba

Member
Aug 19, 2010
9
0
Santa Ana
Excellent post! I'll bet you dollars to doughnuts that if you flash the OTA update manually, it re-mounts cache RO, causing the OTA to fail. If you go from the OTA software in the ROM, it probably sets some flag that causes the stock recovery to keep the cache partition RW so the flash will succeed.

The OTA update works fine as long as you wait for the popup, then tap "restart and install". If you try to flash it manually, it will fail in the ICS stock recovery 100% of the time. Works fine if you flash it from CWM or a stock Gingerbread recovery though.

Your post pretty much cements that there was some kind of change in the ICS stock recovery images that makes it impossible to manually flash OTA images anymore. I can understand the reasoning for this on Google's part...but I don't agree with it. I'm sure in the end, they figure people like us probably aren't using stock recovery anyway, so we'll get the updates installed no matter what. At the same time, it keeps not-so-technical users in check and stops them from doing something potentially dangerous.

I just flashed stock 4.0.3 then the 4.0.4 update coming all the way from 2.3.6, so I don't know what's going on. But now Nexus S just won't turn on after I rebooted. Definitely didn't work out for me too well.
 

mindwalkr

Senior Member
Jun 6, 2011
109
8
Just finished installing 4.0.4.... phew!! It wasn't easy peezy...

So to start off I restored a previous NANDroid backup with the full 4.0.3 download installed previously with root access right after installation / rooting in December.

So I just tried to copy the 4.0.4 update to the SD card as update.zip, and use the stock recovery -> I did get a little android icon and then a black screen for some 3 minutes. After that the phone rebooted and I was still in 4.0.3. didn't get any errors, however. Still had root access.. as if nothing had happened.

So I downloaded again the full 4.0.3. ROM from December, and copied that to the sdcard as update.zip. Again tried the stock recovery and after some 3 minutes of blank screen I get to 4.0.3 unrooted. So this time the update went through. I then copied again the 4.0.4 update into the sdcard as update.zip and tried the stock recovery again. After 3 minutes of blank screen and no errors, I finally reboot back into 4.0.3 so apparently the update didn't work!

Now, I use CWR instead to flash the update.zip and it works. I boot into Android 4.0.4. At this point I try to use Titanium Backup the restore my previous settings and it somehow messed Google Play.. it is now force closing all the time.. no reboot or cache wiping helps!

So I just go back to 4.0.3, update back to 4.0.4 and don't use Titanium Backup to restore all my system data settings (I manually pick just the contact and sms database). It seems to be working all fine now...

So for me it also didn't work with the stock recover thus I didn't get any errors...

Running i9023 here

Bottom line.. it's easier if you just use CWR to flash this update
 

nexususer

Senior Member
Nov 21, 2011
165
51
Kirack Hyderabadi
easy method

So.. from what I read in this thread I derive some more or less useful observations:
It works and fails on slightly modified roms.
It works and fails on unmodified roms.
It tends to fail more often with the stock recovery.

Here is my story: 9023, cwm5023, manually flashed 4.0.3 in december, rooted, rom slightly modified (hosts file, some extra ogg files in the notifications dir, root, rootkeeper, and deleted recovery-overwrite-script).

What I did: put the file from the first post in /sdcard/, reboot, recovery, apply update.zip, first the 404, then root (just to be sure), fix permissions (don't know if necessary), reboot, got 404.

But the reports of failed updates made me curios.

(at this point this analysis may get a little bit above the level of understanding of a regular Joe android user)

So, I had a look at the source.
(extract the zip, searched for something that looks like an update script)
got this one:
Code:
/META-INF/com/google/android/updater-script

And right here at the end of this little code block in line 652:
Code:
assert(apply_patch_check("/system/vendor/lib/libwvm.so", "6f03d4b266d99f2e79a617786d4ba4981a2bc4e5", "aa466817fc702b7764ac442452aea2c4593503e3"));
set_progress(0.983189);
assert(apply_patch_check("MTD:boot:3526656:40d819a22242be448d36e61b1ad42501e88838cb:3526656:877503a77928e449c8bff451ea7a3e783a4b607f"));
set_progress(1.000000);
assert(apply_patch_space(15916988));

Here is the feared apply_patch_space call.
Still no real clue what it does.

So, I googled and found:
http://www.freeyourandroid.com/guide/introdution_to_edify

The interesting part:


Ok.. so, the problem is not a modified file (files are checked too, you can see which ones by reading the script) but more a lack of free space on a 'cache' (who's location is yet to be determined).

So, thats about 15MB of free space required.
Looking at /cache with root explorer: 466MB free

Found a lead to the source files here:
http://tjworld.net/wiki/Android/UpdaterScriptEdifyFunctions

Again, use the source Luke!

I had the android source lying around somewhere from the time I wrote this (completely unrelated) post: http://xdaforums.com/showthread.php?p=20017514#post20017514

I had to jump through quite a bunch of C-source files (I'll spare you the story) until i got the answer:
Code:
size_t free_now = FreeSpaceForFile("/cache");
So, it really is /cache
There may be many reasons why this fails:
  • There is not enough space left on /cache (obvious)
  • /cache is not mounted but it should be (it failed to mount somehow? maybe a prior wipe or backup unmounted it?)
  • It is mounted read only and it should be mounted rw.

To be sure, I had a quick look at the situation right after the device enters the (cwm) recovery:
Code:
~ # mount
rootfs on / type rootfs (rw)
tmpfs on /dev type tmpfs (rw,relatime,mode=755)
devpts on /dev/pts type devpts (rw,relatime,mode=600)
proc on /proc type proc (rw,relatime)
sysfs on /sys type sysfs (rw,relatime)
/dev/block/mtdblock4 on /cache type yaffs2 (rw,nodev,noatime,nodiratime)
~ #

if you are there, you can check the free space with the df command:
Code:
~ # df
Filesystem           1K-blocks      Used Available Use% Mounted on
tmpfs                   176532        32    176500   0% /dev
/dev/block/mtdblock4    480768      2588    478180   1% /cache
~ #

The expected situation right before the update should be:
/cache is mounted read/write and has plenty of free space.
(note: df displays capacities in numbers of 1k blocks)

I have no idea what all you guys did before the update, but this may help if you have this 'apply_patch_space' error:
  • Ensure a working 4.0.3 is on the device.
  • After entering the recovery, immediately apply the update.
  • If you have the urge to backup, wipe, whatever, do it and then reboot once more for the update to ensure all effects of that actions on the /cache are gone.

Again: I have no idea if this solves your case, but it is my best guess and I think it has a good chance of success.

bro can you explain it to me easy method so that i can install the update pls !! i dont want to flash or root or do any thhing that will brick my phone just tell me simple step by step instruction for noob to update thanx

i have completely stock 4.0.3 i9020T
 

caliban2

Senior Member
Mar 9, 2009
2,187
407
bro can you explain it to me easy method so that i can install the update pls !! i dont want to flash or root or do any thhing that will brick my phone just tell me simple step by step instruction for noob to update thanx

i have completely stock 4.0.3 i9020T

Then wait until the update gets pushed to your phone. Simple as that.
 
  • Like
Reactions: qorron

oldblue910

Senior Member
Jan 1, 2011
4,248
3,156
Durham, NC
bro can you explain it to me easy method so that i can install the update pls !! i dont want to flash or root or do any thhing that will brick my phone just tell me simple step by step instruction for noob to update thanx

i have completely stock 4.0.3 i9020T

Unless you're willing to unlock your bootloader (which will wipe all data on your phone) and flash a custom recovery, you're not going to be able to update manually. You'll have to wait for the OTA notification to pop up on your phone.
 

m.sabra

Senior Member
Sep 3, 2011
131
548
Beirut
To clear things up,this update is only flashable via CWM,it will never work with the stock recovery,it's an official update but the thing is the new ICS recovery,the recovery will not flash any update manually,it will only flash pop up OTA notification you get on the phone,as many users noticed when android 4.0.2 was release to the Galaxy Nexus no one was able to flash the update via stock recovery,the only way to flash the update was to unlock the bootloader and use CWM,so here it is the same problem again but this time with the nexus s,that confirms that this not a device or update package problem,it's really how the ICS recovery behave,it will only flash updates that you get on the phone from google,manual updates are a no go,i think google did that for security reasons,so in theory a gingerbread recovery would work but the best choice is to use CWM.
 
Last edited:

draugaz

Senior Member
May 13, 2009
520
141
The expected situation right before the update should be:
/cache is mounted read/write and has plenty of free space.
(note: df displays capacities in numbers of 1k blocks)

I have no idea what all you guys did before the update, but this may help if you have this 'apply_patch_space' error:
  • Ensure a working 4.0.3 is on the device.
  • After entering the recovery, immediately apply the update.
  • If you have the urge to backup, wipe, whatever, do it and then reboot once more for the update to ensure all effects of that actions on the /cache are gone.

Again: I have no idea if this solves your case, but it is my best guess and I think it has a good chance of success.

It looks like there are problems with recovery itself. Maybe it was corrupted during update to 4.0.3 or whatever, I don't know.

My i9023 is completely stock, was never rooted and there is definitely enough space in the cache partition (466M free out of 469M), but the updater still claims there is not enough space. I even wiped (reformatted) it, so it was be absolutely empty and with fresh filesystem.

So it is either not mounted or the recovery yaffs2 implementation has some bugs.
 

Mic43

Senior Member
Mar 31, 2009
92
0
I have a problem installing update. I have LCD i9023 stock 4.0.3 and it says "signature verification failed" during installation :( Is this due to my mobile operator?
 

DarkhShadow

Senior Member
Sep 25, 2011
1,808
268
Essex
It looks like there are problems with recovery itself. Maybe it was corrupted during update to 4.0.3 or whatever, I don't know.

My i9023 is completely stock, was never rooted and there is definitely enough space in the cache partition (466M free out of 469M), but the updater still claims there is not enough space. I even wiped (reformatted) it, so it was be absolutely empty and with fresh filesystem.

So it is either not mounted or the recovery yaffs2 implementation has some bugs.







To clear things up,this update is only flashable via CWM,it will never work with the stock recovery,it's an official update but the thing is the new ICS recovery,the recovery will not flash any update manually,it will only flash pop up OTA notification you get on the phone,as many users noticed when android 4.0.2 was release to the Galaxy Nexus no one was able to flash the update via stock recovery,the only way to flash the update was to unlock the bootloader and use CWM,so here it is the same problem again but this time with the nexus s,that confirms that this not a device or update package problem,it's really how the ICS recovery behave,it will only flash updates that you get on the phone from google,manual updates are a no go,i think google did that for security reasons,so in theory a gingerbread recovery would work but the best choice is to use CWM.



Sent from my ice cream powered Nexus S
 
D

Deleted member 1919717

Guest
To clear things up,this update is only flashable via CWM,it will never work with the stock recovery,it's an official update but the thing is the new ICS recovery,the recovery will not flash any update manually,it will only flash pop up OTA notification you get on the phone,as many users noticed when android 4.0.2 was release to the Galaxy Nexus no one was able to flash the update via stock recovery,the only way to flash the update was to unlock the bootloader and use CWM,so here it is the same problem again but this time with the nexus s,that confirms that this not a device or update package problem,it's really how the ICS recovery behave,it will only flash updates that you get on the phone from google,manual updates are a no go,i think google did that for security reasons,so in theory a gingerbread recovery would work but the best choice is to use CWM.

Sounds reasonable...this also would mean that nobody was successfully yet to install this update.zip via stock recovery.

All the ones reported successful update to 4.0.4 must have used either CWM or received it OTA.

Correct?

Sent from my Nexus S using xda premium
 

sluma

Senior Member
Apr 12, 2010
75
6
Calgary
I managed to get past error 7 by installing CWM recovery and then using it to flash 4.0.4


We have a Winner!! :)

I was about to post the exact same after I finished my updated. I'll provide the exact steps that I did

Prior to trying this I too had this show up when I tried to update manually:

"assert failed: apply_patch_space(15916988)
E:Error in /tmp/sideload/package.zip
(Status 7)"



OK so here goes the steps:

Notes:
*My phone's model is GT-I9020T from WIND
*I was running the previously leaked 4.0.3 that was freshly installed
*My Phone was rooted and had the bootloader unlocked
*I tried this on my windows system
*Make sure that your phone is plugged into your computer

1. Get a hold of the hR7QFEtn.zip(the leaked 4.0.4 update) and place it in the root of your phone's SD Card( in the / directory of the Sdcard)
2. Download recovery-clockwork-touch-5.8.0.2-crespo.img from the clockworkmod website and place it in the following directory "C:\Program Files (x86)\Android\android-sdk\platform-tools"
3. open up your command prompt and go to the "C:\Program Files (x86)\Android\android-sdk\platform-tools" directory
4. Run the following command: adb reboot-bootloader
5. Once your phone is in the bootloader screen run the following command in your command prompt: fastboot flash recovery recovery-clockwork-touch-5.8.0.2-crespo.img

You will get a "Finished" message on your command prompt informing you that it flashed the recovery image

6. selected recovery option on your phone's bootloader screen and clockworks will do the update automatically for you

I did not have to apply root access again at all. My root privilege stayed the same after the upgrade and I am now on 4.0.4!!

I hope this helps someone out because I was frustrated to no end last night and this morning because of that status 7 error.

I would also have to agree that using google's default recovery is no longer viable for manual updates as they seem to have secured that portion and we have to resort to using our own means.
 

caliban2

Senior Member
Mar 9, 2009
2,187
407
Sounds reasonable...this also would mean that nobody was successfully yet to install this update.zip via stock recovery.

All the ones reported successful update to 4.0.4 must have used either CWM or received it OTA.

Correct?

Sent from my Nexus S using xda premium

seems to be the case, yeah...
it also makes sense this being a security-feature by google, preventing those with locked bootloader from doing anything stupid. once you unlock it, you're on your own anyway... or it's because the 4.0.4-ota is just a small patch, thus special precautions are in place.

how big has the 4.0.2-update for the galaxy nexus been? also just a few mb or more the usual size? (100+)
 

draugaz

Senior Member
May 13, 2009
520
141
Sounds reasonable...this also would mean that nobody was successfully yet to install this update.zip via stock recovery.

All the ones reported successful update to 4.0.4 must have used either CWM or received it OTA.

Correct?

Sent from my Nexus S using xda premium

To me it sounds like a very strange conspiracy theory. If google would intend to do such a thing, they could simply remove the corresponding recovery menu item and be done with it.
Normal users would be stuck, and more advanced would still use CWM and avoid that restriction.

It just does not make any practical sense. If I wanted to restrict it just to the OTA users it would be so much simpler to do it using some cryptography.
 

Top Liked Posts

  • There are no posts matching your filters.
  • 11
    Yes here it is the nexus s official android 4.0.4 from google :)
    this needs to be flashed over the stock 4.0.3 official rom from google it's a 17.8 mb update not a full rom so you can only flash it over stock 4.0.3 i repeat only over stock or else it will fail.
    i managed to get the download link from google servers here it is http://android.clients.google.com/packages/ota/google_crespo/hR7QFEtn.zip as you can see an official google link.
    so far i noticed that the recovery is fixed (no longer disappear on i9023 devices)
    and battery problems solved too.

    ONLY FLASHABLE VIA CWM
    the reason is here:http://xdaforums.com/showpost.php?p=24198556
    5
    Solution (well maybe...)

    So.. from what I read in this thread I derive some more or less useful observations:
    It works and fails on slightly modified roms.
    It works and fails on unmodified roms.
    It tends to fail more often with the stock recovery.

    Here is my story: 9023, cwm5023, manually flashed 4.0.3 in december, rooted, rom slightly modified (hosts file, some extra ogg files in the notifications dir, root, rootkeeper, and deleted recovery-overwrite-script).

    What I did: put the file from the first post in /sdcard/, reboot, recovery, apply update.zip, first the 404, then root (just to be sure), fix permissions (don't know if necessary), reboot, got 404.

    But the reports of failed updates made me curios.

    (at this point this analysis may get a little bit above the level of understanding of a regular Joe android user)

    So, I had a look at the source.
    (extract the zip, searched for something that looks like an update script)
    got this one:
    Code:
    /META-INF/com/google/android/updater-script

    And right here at the end of this little code block in line 652:
    Code:
    assert(apply_patch_check("/system/vendor/lib/libwvm.so", "6f03d4b266d99f2e79a617786d4ba4981a2bc4e5", "aa466817fc702b7764ac442452aea2c4593503e3"));
    set_progress(0.983189);
    assert(apply_patch_check("MTD:boot:3526656:40d819a22242be448d36e61b1ad42501e88838cb:3526656:877503a77928e449c8bff451ea7a3e783a4b607f"));
    set_progress(1.000000);
    assert(apply_patch_space(15916988));

    Here is the feared apply_patch_space call.
    Still no real clue what it does.

    So, I googled and found:
    http://www.freeyourandroid.com/guide/introdution_to_edify

    The interesting part:
    Function Name: apply_patch_space

    Function Syntax: apply_patch_space(bytes)

    Parameter Details: bytes = number of bytes to check for

    Action: Checks the cache to verify that there is enough space to write the patched files to it and returns something. Need to test this function to verify.

    Ok.. so, the problem is not a modified file (files are checked too, you can see which ones by reading the script) but more a lack of free space on a 'cache' (who's location is yet to be determined).

    So, thats about 15MB of free space required.
    Looking at /cache with root explorer: 466MB free

    Found a lead to the source files here:
    http://tjworld.net/wiki/Android/UpdaterScriptEdifyFunctions

    Again, use the source Luke!

    I had the android source lying around somewhere from the time I wrote this (completely unrelated) post: http://xdaforums.com/showthread.php?p=20017514#post20017514

    I had to jump through quite a bunch of C-source files (I'll spare you the story) until i got the answer:
    Code:
    size_t free_now = FreeSpaceForFile("/cache");
    So, it really is /cache
    There may be many reasons why this fails:
    • There is not enough space left on /cache (obvious)
    • /cache is not mounted but it should be (it failed to mount somehow? maybe a prior wipe or backup unmounted it?)
    • It is mounted read only and it should be mounted rw.

    To be sure, I had a quick look at the situation right after the device enters the (cwm) recovery:
    Code:
    ~ # mount
    rootfs on / type rootfs (rw)
    tmpfs on /dev type tmpfs (rw,relatime,mode=755)
    devpts on /dev/pts type devpts (rw,relatime,mode=600)
    proc on /proc type proc (rw,relatime)
    sysfs on /sys type sysfs (rw,relatime)
    /dev/block/mtdblock4 on /cache type yaffs2 (rw,nodev,noatime,nodiratime)
    ~ #

    if you are there, you can check the free space with the df command:
    Code:
    ~ # df
    Filesystem           1K-blocks      Used Available Use% Mounted on
    tmpfs                   176532        32    176500   0% /dev
    /dev/block/mtdblock4    480768      2588    478180   1% /cache
    ~ #

    The expected situation right before the update should be:
    /cache is mounted read/write and has plenty of free space.
    (note: df displays capacities in numbers of 1k blocks)

    I have no idea what all you guys did before the update, but this may help if you have this 'apply_patch_space' error:
    • Ensure a working 4.0.3 is on the device.
    • After entering the recovery, immediately apply the update.
    • If you have the urge to backup, wipe, whatever, do it and then reboot once more for the update to ensure all effects of that actions on the /cache are gone.

    Again: I have no idea if this solves your case, but it is my best guess and I think it has a good chance of success.
    3
    guys can you post instruction on how to do it blind using 4.0.3 stock and not rooted.

    THanks.
    2
    I do believe I've got to the bottom of the Error 7 and there doesn't appear to be a damn thing we can do about it. It appears as though Google has made it so that we can't flash OTA updates manually in stock recovery anymore.

    The guys over on the Xoom thread were having the exact same problem with the Xoom WiFi 4.0.4 OTA. Same package.zip error status 7. My friend with a WiFi Xoom got an OTA update on his, so I told him not to install it. Instead we downloaded the OTA update manually and attempted to flash it through stock recovery. It errored out with the package.zip error status 7. So I had him reboot the tablet, go into the OTA software and tap "reboot and install". It flashed without problem.

    I have a feeling this will be the exact same thing with the Nexus S. So it looks like we all either wait for the OTA popup on our phones, or we have to unlock our bootloaders, install either a stock Gingerbread or ClockworkMod recovery, then flash the OTA manually.
    2
    Thats the error I'm getting. It then comes up:

    E:Error in /tmp/sideload/package.zip
    (Status 7)
    Installation aborted.

    I've tried to find that file in the 4.0.4 update and the full 4.0.3 update but cant find it

    I tried outputting the contents of /cache/recovery/log-* and it appears that the /cache partition is full or not mounted (0 bytes free). The stock recovery even tried to delete old files, but failed. My guesses are:
    1) bug in stock recovery (not mounting /cache correctly). It's strange though that after rebooting the logs are correctly placed in /cache/recovery/log-*
    2) bug on the 4.0.4 update (or incompability with the ROM)

    The update successfully completes the validation/checksum verification phase. It's also possible that Google added some kind of verification to prevent people from downloading the ROM without before getting a notification.