Updating my Nexus S from 2.3.6 to 4.0.3 I have an unlocked GSM Nexus S I bought from a friend. I'm currently running version 2.3.6 (which was pre-loaded on the phone). I really like the way Ice Cream Sandwich looks, so I would like to upgrade to 4.0.3.

I've looked around for tutorials and it seems I'm going to have to root my device and install a ROM. However, I can't seem to find an ICS (4.0.3) download from any reputable sources. They all seem to be hosted independently by users. Is there a place I can download the update from Google/Android directly?
Google hosts their flagship device OTAs online, fortunately, under the codename crespo for the Nexus S.  Some searching along those line resulted in this Android Police post (affiliate links removed):


  Well, that didn't take long. Here are the instructions to [get] your Nexus S rocking ICS right now. Do not try this on the CDMA Nexus S!
  
  
  Download the OTA Package
  
  Rename it to update.zip
  Copy it to the root of the internal storage
  Power off the device, hold Volume Up and Power to reboot into the bootloader
  Select "recovery," then hit the power button
  Once the warning triangle appears, hold the power button and hit volume up
  Select "apply update from /sdcard" and choose the update.zip
  Once the process is finished, simply choose "reboot system now"
  
  
  
  Once it reboots, BAM! You've got ICS. Congratulations!


The link there is http://android.clients.google.com/packages/ota/google_crespo/VQ8PQk_V.zip.  Koush notes that this is for the T-Mobile version, the i9020T.  From dottech.org:


  There are unofficial reports that the update works for i9023 (the Super LCD version of Nexus S); and can work for i9020A (the AT&amp;T/Telus/Koodo Nexus S) by flashing compatible radio files. If you are a brazen fellow you can attempt to update your i9023/i9020A with the T-Mobile ICS package but be warned: You might get a brick.