How to Install CyanogenMod on the Samsung Galaxy S III (T-Mobile) ("d2tmo")

From CyanogenMod
Jump to: navigation, search


This guide will walk you through the process of taking the Galaxy S III (T-Mobile) from stock to having a custom recovery image and the ability to flash the latest version of CyanogenMod.

Note: DISCLAIMER

Modifying or replacing your device's software may void your device's warranty, lead to data loss, hair loss, financial loss, privacy loss, security breaches, or other damage, and therefore must be done entirely at your own risk. No one affiliated with the CyanogenMod project is responsible for your actions. Good luck.


Important Notes

Note: Deprecated in favor of unified build

As of CM 11, this carrier specific device has been deprecated in favor of a new unified device: d2lte. Please visit the d2lte page for information on building and installing the latest version of CyanogenMod. This page exists in case you would like to reference any device-specific unlock instructions, download a recovery, or build an older release of CyanogenMod, for example, CM 10.2.

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.


Installing a custom recovery on Galaxy S III (T-Mobile)

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
    • Windows: Extract the Heimdall suite and take note of the directory holding heimdall.exe. You can verify Heimdall is working by opening a command prompt in this directory and typing heimdall version. If you receive an error, be sure that you have the Microsoft Visual C++ 2012 Redistributable Package (x86/32bit) installed on your computer.
    • 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.
    • Mac: Install the dmg package. 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 koush's recovery -- you can directly download the recovery image using the link below, or visit clockworkmod.com/rommanager to check for the latest version of ClockworkMod (if your device can be found there). Be careful to select the right image!
  3. Windows (only) driver installation - Skip this step if you are using Linux or Mac
    A more complete set of the following instructions can be found in the Zadig User Guide.
    1. Run zadig.exe from the Drivers folder of the Heimdall Suite.
    2. Choose Options » List All Devices from the menu.
    3. Select Samsung USB Composite Device or MSM8x60 or Gadget Serial or Device Name from the drop down menu. (If nothing relevant appears, try uninstalling any Samsung related Windows software, like Samsung Windows drivers and/or Kies).
    4. Click Replace Driver (having selecting "Install Driver" from the drop down list built into the button).
    5. If you are prompted with a warning that the installer is unable to verify the publisher of the driver, select Install this driver anyway. You may receive two more prompts about security. Select the options that allow you to carry on.
  4. Power off the Galaxy S III (T-Mobile) and connect the USB adapter to the computer but not to the Galaxy S III (T-Mobile), yet.
  5. Boot the Galaxy S III (T-Mobile) into download mode. Hold Home, Volume Down & Power. Accept the disclaimer on the device. Then, insert the USB cable into the device.
  6. At this point, familiarise yourself with the Flashing heimdall notes below so that you are prepared for any strange behaviour if it occurs.
  7. On the computer, open a terminal (or Command Prompt on Windows) in the directory where the recovery image is located and type:
    heimdall flash --RECOVERY recovery.img --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.
  8. A blue transfer bar will appear on the device showing the recovery being transferred.
  9. Unplug the USB cable from your device.
  10. You can now manually reboot the phone into recovery mode. 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).
  11. The Galaxy S III (T-Mobile) now has recovery installed. Continue to the next section.


Note: Flashing with heimdall

  • In Windows 7 UAC (User Account Control) may need switching off. Once Heimdall is finished it can be re-enabled.
  • 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.
  • On Mac OS X you may see this message: "ERROR: Claiming interface failed!". If so, you need to disable the default USB drivers with the following commands:
    sudo kextunload -b com.apple.driver.AppleUSBCDC;
    sudo kextunload -b com.apple.driver.AppleUSBCDCACMControl;
    sudo kextunload -b com.apple.driver.AppleUSBCDCACMData;
    If you have installed Samsung Kies, you may further need to unload those USB drivers with the following commands:
    sudo kextunload -b com.devguru.driver.SamsungComposite;
    sudo kextunload -b com.devguru.driver.SamsungACMData
    sudo kextunload -b com.devguru.driver.SamsungACMControl

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

  1. Download the CyanogenMod package for your device that you'd like to install to your computer.
    Optional: Download 3rd party applications packages, like Google Apps which are necessary to download apps from Google Play.
  2. Boot to recovery mode, and connect the phone to your computer through USB.
    • Hold Vol Up, Home & Power.
  3. 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.
  4. Optional (Recommended): Select backup and restore to create a backup of your current ROM.
  5. Select wipe data/factory reset.
  6. 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:
    • 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.
    • Push and install method: Open a command prompt (or Terminal on Mac and Linux) 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 update.zip /storage/sdcard0/
    - If you mounted /data, then: adb push update.zip /sdcard/0/
    where update.zip 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.
  7. Once installation has finished, return to the main menu and select reboot system now. The device will now boot into CyanogenMod.

Helpful Tip

See something wrong on this page? Report it here.