Support #438

Installing CyanogenMod 11 on the Samsung Galaxy S III

Added by Daniel Curtis almost 10 years ago. Updated almost 10 years ago.

Target version:
Start date:
Due date:
% Done:


Estimated time:
2.00 h
Spent time:


The system I used for installing CyanogenMod is Arch Linux, and as such the process for following this guide may differ if running a different Operating System. But Linux is Linux, so it should work in any case.

Migrating Mobile Provider

Since I purchased my phone used, I intend to use it with Ting and as such I need to release the device from its previous carrier, in this case Sprint.

To begin I needed to do a factory reset and make sure the device is running a stock ROM. I have included the stock JellyBean version for my phone for posterity.

  • Upload the ROM to the phone using adb:
    sudo adb server-start
    cd /path/to/rom
    adb push /storage/sdcard1
  • Open the Dialer app:
    • Now enter Dial the following number:

This will either prompt to reboot the phone or ask for a Master Subsidy Lock (MSL) code. This code will be provided by the new carrier, since they are unique to each phone.

Important Notes

Note: Unified device

Soon after the release of CM 11 M3, all Qualcomm-based variants of this device were merged into a single build: d2lte. The device information pages for the individual variants still exist so that you can reference any device-specific unlock instructions, download recoveries, or would like to build, for example, CM 10.2: d2att, d2cri, d2mtr, d2spr, d2tmo, d2usc, d2vzw.

WARNING: Firmware update notice

CM10.1 and newer are not compatible with ICS bootloaders on this device. Update your device's firmware or you will get assert failures in recovery.

WARNING: Verizon variant

The d2vzw variant cannot follow these installation instructions. For this variant, reference the device-specific installation instructions: Install CM for d2vzw.

Installing a custom recovery on Galaxy S III LTE

Samsung devices come with a unique boot mode called Download Mode which is very similar to Fastboot Mode on some devices with unlocked bootloaders. Heimdall is a cross-platform, open source tool for interfacing with Download Mode on Samsung devices. The preferred method of installing a custom recovery is through this boot mode. Rooting the stock firmware is neither recommended nor necessary.

1 - Download and install the Heimdall Suite

  • Linux: Pick the appropriate installation package based on your distribution. The -frontend packages are not required for this guide. After installation, heimdall should be available from the terminal; type heimdall version to verify installation succeeded.
  • Building from source: The source code for the Heimdall Suite is available on Github. For more details about how to compile the Heimdall Suite, please refer to the README file on Github under the relevant operating system directory. You can also refer to the Install and compile Heimdall instructions on this wiki.

2 - Download recovery -- visit to check for the latest version of ClockworkMod (if your device can be found there). Be careful to select the right image! I have included a copy of the Galaxy S III Sprint recovery images for posterity.

3 - Power off the Galaxy S III LTE and connect the USB adapter to the computer but not to the Galaxy S III LTE, yet.

4 - Boot the Galaxy S III LTE into download mode.

  • Power off the device and hold Home & Volume Down & Power, then Accept the disclaimer on the device, and finally insert the USB cable into the device.
  • Build and install heimdall from the Arch User Repository:
    sudo pacman -S install android-udev gvfs-mtp android-tools
    mkdir ~/src && cd ~/src
    tar xzf heimdall.tar.gz
    cd heimdall
    makepkg -s PKGBUILD
    sudo pacman -U heimdall*.xz

5 - Flash ClockworkMod Recovery

At this point, familiarize yourself with the Flashing heimdall notes below so that you are prepared for any strange behavior if it occurs.

  • Open a terminal in the directory where the recovery image is located and type:
    heimdall flash --RECOVERY recovery-clockwork-touch- --no-reboot

Tip: The file may not be named identically to what's in this command. If the file is wrapped in a zip or tar file, extract the file first, because heimdall isn't going to do it for you.

6 - A blue transfer bar will appear on the device showing the recovery being transferred.

7 - Unplug the USB cable from your device.

8 - You can now manually reboot the phone into recovery mode.

  • Power off the device and hold Vol Up & Home & Power Be sure to reboot into recovery immediately after having installed the custom recovery.

Otherwise the custom recovery will be overwritten and the device will reboot (appearing as though your custom recovery failed to install).

The Galaxy S III LTE now has recovery installed. Continue to the next section.

Note: Flashing with heimdall
  • Protocol initialization can fail if the device is connected via a USB hub - connect the USB cable directly to the PC
  • It may be necessary to run the heimdall flash command as root in Linux or Mac OS X: sudo heimdall flash [...]. Typical symptoms of this are:
    • a blue bar doesn't show up after the process has finished
    • Failed to confirm end of file transfer sequence!
  • It may be necessary to capitalize the name of the partition on some devices. Try --KERNEL instead of --kernel and/or --recovery instead of --RECOVERY.
  • If on Linux 64bit you get "unable to execute ./heimdall: No such file or directory", try the 32bit version and make sure to run it with sudo: reference.

Helpful Tip

  • The stock ROM may overwrite your custom recovery on boot. To prevent this, boot immediately into recovery after leaving Download Mode instead of letting the ROM boot up normally. If your recovery is overwritten, simply redo the steps you followed above and catch it before it boots next time.
  • Note for upgrades from gingerbread to jellybean remember the recovery is changed. This means once you install do NOT restore to old-gingerbread-stock ROM from cwm-recovery. Trying to do this will completely mess up and lead to phone rebooting in boot screen. In such case download Heimdall firmware packages for stock GT-I9000 from XDA and completely reinstall device.
  • For upgrade from stock/CM7/CM9/CM10.1.2/CM10.1.3 to CM10.2: Reboot into CWM-recovery. Backup. Wipe (data/factory reset), and wipe cache (important). Now install the new CM10.2. If you not wipe cache, you will get new boot animation, spinning arrow forever. The partition layout of CM10.2 is different so it is must to wipe cache. See thread. More about repartitioning. If you missed it (like me), then go back to stock firmware as given in previous step and repeat the whole process.
  • Some users have reported connection errors if the device is connected to a USB hub. If you experience such errors it is recommended that you try connecting your device to a USB port on the motherboard.
  • Antivirus software may prevent Heimdall from connecting properly. Disable your antivirus before proceeding.
  • When Heimdall fails to connect, the Download mode may get stuck, making all further attempts fail too. To retry, you may need to restart the Download mode: turn off the phone by holding Power for 5-10 seconds (or by pulling out the battery), then boot into Download mode and run Heimdall again.
  • If Heimdall fails to connect (errors related to initializing the protocol, or transferring data):
    • if you just installed the driver, try rebooting your computer and trying again.
    • if you still have troubles after reboot, in Zadig try installing the libusbK driver rather than the WinUSB driver.

Installing CyanogenMod from recovery

9 - Download the CyanogenMod package for your device that you'd like to install to your computer. I have included a copy of

Optional: Download 3rd party applications packages, like Google Apps which are necessary to download apps from Google Play.

10 - Boot to recovery mode, and connect the phone to your computer through USB.

  • Power off the device, then hold the Vol Up & Home & Power buttons

11 - In ClockworkMod Recovery, use the physical volume buttons to move up and down.

On most devices, the power button is used to confirm a menu selection, but for some devices a physical home key acts as a selector. Some devices have touch enabled ClockworkMod Recovery, in which case you may be able to swipe to, or touch, menu selections.

Optional (Recommended): Select backup and restore to create a backup of your current ROM.

12 - Select wipe data/factory reset.

Install the CyanogenMod ROM

You have two options for transferring and installing the installation packages. Both cases require adb to be working in recovery. The sideload method is more universal across devices, whereas the push and install method is more commonly used:
  1. Load from a SD Card: Select Install zip > Install zip from sdcard. Follow the on-screen notices to install the package. The installer does not necessarily display an "Install complete." message. You can tell the install is complete if there were no fatal error messages and you have regained control over the menu.
  2. Sideload method: Select Install zip > Install zip from sideload. Follow the on-screen notices to install the package. The installer does not necessarily display an "Install complete." message. You can tell the install is complete if there were no fatal error messages and you have regained control over the menu.
  3. Push and install method: Open a terminal and navigate to the directory holding the package(s) you would like to install. On the device, navigate to the mounts and storage menu. If you see /storage/sdcard0 as a mountable volume, go ahead and mount it. If you do not see this directory, then instead mount the /data directory. Take note of which volume you mounted. Now, push the package(s) to your device:
    • If you mounted /storage/sdcard0, then:
      adb push /storage/sdcard0/
    • If you mounted /data, then:
      adb push /sdcard/0/

Where should be replaced with the package filename.

  • Go back to the main menu and select install zip.
  • Choose to install from the same directory where you pushed the package(s). If you are installing multiple packages, install CyanogenMod first and then install any subsequent packages on top of it.
  • Once installation has finished, return to the main menu and select reboot system now. The device will now boot into CyanogenMod.


Files (216 MB) CyanogenMod 11 for Sprint Samsung Galaxy S III Daniel Curtis, 08/15/2014 10:03 AM
recovery-clockwork- (6.24 MB) recovery-clockwork- ClockworkMod Recovery for Sprint Samsung Galaxy S III Daniel Curtis, 08/15/2014 10:07 AM
recovery-clockwork-touch- (6.24 MB) recovery-clockwork-touch- ClockworkMod Recovery for Sprint Samsung Galaxy S III Daniel Curtis, 08/15/2014 10:07 AM (798 MB) Stock Sprint Samsung Galaxy S III - Android Jellybean Daniel Curtis, 08/15/2014 04:08 PM

Updated by Daniel Curtis almost 10 years ago

  • Description updated (diff)
  • Status changed from New to Resolved
  • % Done changed from 10 to 100

Updated by Daniel Curtis almost 10 years ago

  • Description updated (diff)

Updated by Daniel Curtis almost 10 years ago


Updated by Daniel Curtis almost 10 years ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF