An unofficial build of Android 6.0 Marshmallow update is now available for the Nexus S. Currently running on the Android 4.1.2 Jelly (last updated in Oct 2012), the old hardware on Nexus S (1GHz CPU, 512MB RAM &16GB Memory) is just about capable of running the new Android 6.0 Marshmallow. Interested tech-savvy users can update their Nexus S to Android 6.0 Marshmallow with the unofficial AOSP based ROM
If you own a Nexus S and want to experience Android 6.0 Marshmallow on it, a working Android 6.0 Marshmallow image (Crespo) is now available that you can flash via either fastboot or custom TWRP recover. Thanks to dmitrygr for his work and fully working AOSP Android 6.0 Marshmallow ROM for Nexus S.
In this guide, we will let you know how to flash unofficial AOSP Android 6.0 Marshmallow ROM on Nexus S. The file given below is a recovery flashable image file, so your Nexus S should have root access and TWRP custom recovery installed.
The ROM does not include Google Apps like Play Store. However, since Nexus S is a Google Play edition device, you can legally install Google Apps on this image and enjoy a full Android 6.0 experience.
Disclaimer: This procedure will void your device’s warranty. Follow the instruction at your own risk. We will not be liable if any damage occurs to your device and/or its components. It is recommended for technically talented users only.
2. Boot your Nexus S into TWRP recovery and perform a complete wipe (Cache partition, Dalvik cache, Factory Reset) by selecting Wipe option.
3. Now, install the ROM by selecting Install option. Repeat the same for installing Gapps
4. Once done, once again wipe Cache partition and Dalvik cache.
5. Finally, reboot your phone.
Your Nexus S is now boot into Android 6.0 Marshmallow (It will take more time for the first boot). Any question? Leave it in the comment section below (Source)