Some Disambiguation:
ICS is abbreviation of "Ice Cream Sandwich," or Android 4.0.x release.
Bootloader is code that runs before the operating system even starts. See more details here:
In literal terms, bootloader is code that is executed before any
Operating System starts to run. The concept of bootloaders is
universal to virtually all Operating systems that inculcates operating
systems on your PC, laptop, smartphones, and other such devices.
Bootloaders basically package the instructions to boot operating
system kernel and most of them also have their own debugging or
modification environment. As the bootloader kicks off before any piece
of software on your device, it makes it extremely processor specific
and every motherboard has it’s own bootloader. This is one reason that
all Android phones have different Custom ROMS developed due to high
variance of processing hardware present on the device. ... Every
Android phone has a bootloader that instructs the operating system
kernel to boot normally. But you need to understand one thing here
that as Android OS is an open source OS and is available on a variety
of different hardware, every manufacturer has their own version of
bootloader specific for the hardware present in it’s environment.
Heimdall and Odin are tools for flashing images to Samsung phones.
The Problem:
The issue is that Samsung made some modifications to the bootloader code for their release of Android 4.1 (Jelly Bean) on Galaxy S3 models. This means that custom ROMs that were created on older 4.0 base will no longer be compatible with new bootloader. The new bootloaders, however, are backwards-compatible with older pre-4.1 based ROMs, so upgrading the bootloader will not prevent you from flashing CM9, for example.
The assert errors you are seeing are from trying to flash such incompatible ROMs. These validations were put in for your protection, and you should not remove them from the updater scripts.
The Solution:
You should upgrade your phone's bootloader to the proper version, as specified in that blog post.
The instructions for updating the bootloader are here:
Download the correct update:
I747U (AT&T)
* I747UCALG1 - Jul 1, 2012 - boot_CWM_I747UCALG1.zip - 1.13 MB
* I747UCDLK3 - Nov 3, 2012 - boot_CWM_I747UCDLK3.zip - 1.13 MB
* I747UCDMG2 - Jul 2, 2013 - boot_CWM_I747UCDMG2.zip - 1.13 MB
* I747UCUEMJB - Oct 11, 2013 - boot_CWM_I747UCUEMJB.zip - 1.14 MB WARNING: Do not attempt to downgrade from this bootloader. Doing so will brick your device. Use extra caution when flashing anything via Odin, as many Odin packages will attempt to flash the bootloader.
I747M (Canada and overseas)
* I747MVLUEMK5 - Nov 5, 2013 - boot_CWM_I747MVLUEMK5.zip - 1.14 MB WARNING: Do not attempt to
downgrade from this bootloader. Doing so will brick your device. Use
extra caution when flashing anything via Odin, as many Odin packages
will attempt to flash the bootloader.
Depending on which type of update package you downloaded, follow one
of the following steps:
- Flashing with Odin
- Download Odin: link
- Put your phone into download mode. Some ROMs have this option in the Power > Reboot menu,
otherwise just hold "Volume Down" and "Home" while powering on your
device.
- Launch Odin, then connect the USB cable to your device.
- Click the "PDA" button and select the package you downloaded in step
- Click "Start" in Odin and wait for the process to complete. Your device should reboot automatically when the flash is complete, and you're done.
- Flashing in recovery
- If you've downloaded a flashable .ZIP from above, copy it to your SD card or internal storage.
- Reboot your phone into recovery mode (you can do this by holding "Volume Up" and "Home"
while powering on your device; let go of the buttons when you see
"Recovery booting..." in blue text in the top left of the screen) and
install the .ZIP as an update.
- Reboot, and you're done.
Note: After flashing in recovery, you need to reboot before you (and ROM
installers) actually see the new version number.
It looks like you have the Canadian S3, so you will need to upgrade to the I747MVLUEMK5 bootloader. After you flash it, you should be able to install newer CM versions without any errors.