I've been using Cyanogenmod for over a year now, with my own modifications to the dalvik VM. I have teamwin recovery installed on my Samsung Galaxy S3, which I use to install new builds of cyanogenmod. One problem I've always had and have been unable to find an explanation for is that installing the new build of cyanogenmod would fail with some assert until I remove the assert lines from META-INF/com/google/android/updater-script in cyanogenmod zip file. I'm trying to figure out how to install cyanogenmod properly so I don't get the assert error (cyanogenmod already works for me (though it crashes sometimes, but I think that's normal), I just want to make sure I'm doing it right).

I'm reading this PSA on Cyanogenmod's website, which I was linked to from here, which I found by searching the word "I747MVLDLK4", which I found in my phone's "baseband version" in the settings menu (I was thinking I need a different version of cyanogenmod other than d2att - one which has "I747MVLDLK4" listed in its assert lines), and I don't understand a single thing it's saying.

As we march towards the 10.1 release of CyanogenMod, we have folks updating from older ICS stock builds.

What is ICS?

However, there is an incompatibility between the ICS bootloader firmware and Android 4.1 and above releases


Find a heimdall/odin or recovery-installable package of your device’s firmware, and install it.

What is a heimdall/odin or recovery-installable package of my device's firmware? Is that the bootloader firmware? Or, is it the entire "firmware" as in the way people call cyanogenmod a "firmware"? Or, are they telling me to install the default software that came with my phone when I bought it (where can I even get that?)?

To make sure your device is primed and ready for this state, the following lists the bootloaders compatible for each device:

d2att: I747UCDLK3 & I747MVLDLK4

Is this a different thing? Or is it the "firmware" they referred to above in my previous question?

  • ICS is Ice Cream Sandwich, aka CyanogenMod 10. Heimdall/Odin are flashing tools geared towards Samsung devices.
    – t0mm13b
    Apr 23, 2014 at 19:38
  • So what are they telling me to change? The bootloader? This person says "On many devices there is really no good way to even overwrite the bootloader"
    – Dog
    Apr 23, 2014 at 19:44
  • An official bootloader update will not be bound by the restrictions of protected memory (e.g. whether the bootloader code is "locked" or "unlocked") because it is signed by the manufacturer. If there is an official update for your bootloader, then there should be no reason it cannot be installed in some fashion. It may not necessarily be something that the CyanogenMod install package can (or should) do, however. Most manufacturers have specific methods for performing bootloader updates instead. Apr 23, 2014 at 19:48

1 Answer 1


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
    1. Download Odin: link
    2. 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.
    3. Launch Odin, then connect the USB cable to your device.
    4. Click the "PDA" button and select the package you downloaded in step
    5. 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
    1. If you've downloaded a flashable .ZIP from above, copy it to your SD card or internal storage.
    2. 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.
    3. 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.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .