I have installed Ice Cream Sandwich (ICS) on a Google Nexus S. It works perfectly. The process is not complicated but requires some basic technical skills.

What’s interesting about the process is that it is reversible.  Nevertheless, I did not tried it.

I have installed ICS on a GT-9020A without any trouble using Ubuntu 11.10.  You will find below an overview of the process.  As usual, YOU DO IT AT YOUR OWN RISKS.  BEFORE PROCEEDING, BACKUP ALL YOUR DATA, YOU PHONE IS ERASED DURING INSTALLATION.

    1. I have rooted the phone as explained on http://nexusshacks.com/nexus-s-hacks/how-to-root-nexus-s-or-nexus-s-4g-new/. The process is the same for the Nexus S or the Nexus S 4G
    2. I have used the ROM that can be downloaded here. The information page related to this ROM image is on a xda developers forum.
    3. I have installed the ROM using this procedure: http://nexusshacks.com/nexus-s-hacks/how-to-install-a-rom-on-nexus-s-or-nexus-s-4g/.

You will have to add in a file such as /etc/udev/rules.d/75-android.rules the following line in order to have the phone recognized by Ubuntu.  Chances are that this file does not already exists.  Just create it!.

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666"