Install CyanogenMod on Asus TF300T

CyanogenMod is a custom version of the android operating system. It is intended to replace the stock-android that was preinstalled by the vendor. More information is found on the CyanogenMod Site.

This post explains how to install CyanogenMod on an Asus Transformer TF300T tablet. We are starting with a non-rooted Asus Transformer TF300T which has received upgrades to Android 4.2.1 (Jelly Bean). Linux Mint is used on the PC-side of things.

More information is available on the TF300T Support Site for CM and in the CM-wiki's Installation Guide for the TF300T.

In short, installation of CyanogenMod requires that a custom Recovery Image is installed which allows us to change the operating system. To install such a recovery image, we will need to unlock the boot loader.

Preparation

Install Tools

Two tools from the Android SDK are required to install CyanogenMod, so the SDK should be installed. We will use the adb and fastboot executables from the SDK to communicate with the device. These tools must be in our PATH.

Alternatively, install them from the distros repository:

# apt-get install android-tools-adb android-tools-fastboot

Enable USB Debugging

The Android Debugging Bridge (adb) requires to have USB debugging enabled on the android device. By default, this is off and the option to turn it on is hidden.

To enable USB-debugging on Android Jelly Bean (from thesmarthacks):

  1. Go to Settings > About Tablet
  2. Find the entry named Build Number
  3. Tap it seven times (7x)
  4. A small text-notification should appear: "you are now a developer".
  5. A new entry Developer options has appeared in the settings menu
  6. In Developer options, enable the USB debugging option

When the device is connected to the PC via USB the tablet should show a notification "USB debugging connected" and the device should be listed when you invoke the command adb devices.

Enable 3d Party Apps

The Installation of third-party apps must be enabled on the device.

  1. Go to Settings > Security
  2. Enable the Unknown sources option

Unlock the Boot Loader

A Boot Loader is a small program that is executed when the computer starts and is responsible for starting the actual operating system. If more than one OS is installed, a boot loader might allow to select an OS to boot into.

Normally, the boot loader is locked on Android devices, meaning that it will not boot anything other than the preinstalled OS. Unlocking will mean that you lose the warranty for the device.

An Unlock App can be obtained from the vendor's website. The application is downloaded onto the PC and then installed on the tablet. After installation it is run on the tablet to unlock the boot loader.

To download and install the unlocker, go to the Asus TF300T Support Site, navigate to Support, Drivers & Tools and select Android, then Utilities and download the unlocker.

There are two versions available.

Version V8: Unlock_V8.rar containing Unlock_V8.apk. Use this for for Android Jelly Bean (Android 4.2)
Version V7: UnLock_Device_App_V7.apk. Use for 4.0 and 4.2

Connect the device via USB and install the unlocker:

$ adb install Unlock_V8.apk

Depending on the security settings, the tablet will show a dialog asking for confirmation. You must manually accept installation before the install can finish.

On the tablet, a new entry Unlock Device should have appeared in the applications menu. Run this app and confirm security warnings. If the device is associated to a Google account, the password to that account is required. The tablet will then restart, showing a small notification message during boot ("The Device is UnLocked").

Flash a Custom Recovery

The recovery mode is a boot option that will not load the "normal" OS but a special "recovery" environment. The recovery environment is very simple and allows to troubleshoot or update the system. Most importantly, it allows to install a new OS.

Read more about recovery mode: http://wiki.cyanogenmod.org/w/All_About_Recovery_Images

On most devices a recovery image with limited functionality will already be installed. We will replace this with one that has more capabilities.

It is a bit difficult to find a recovery image that is compatible with the Asus TF300T. Asus changed the behavior of the boot loader between Android versions, meaning that only some of the recovery images are compatible with a given Android version. Installing the wrong recovery image is not (too) bad - it simply means that recovery mode won't work until a working recovery image is flashed onto the device. One can still boot into the normal OS and access the device through adb.

This guide refers to a tablet with the Android 4.2.1 version with a 10.6.1.x build number received as an OTA update some time after the tablet was bought. The TWRP Recovery Image for that version is used.

Note

The CyanogenMod wiki describes a process based on Android 4.1 using the ClockworkMod recovery image. The process still works, but depending on the version of the boot loader, a different recovery image is required.

Also, the CyanogenMod version to be installed later must be compatible with the Asus boot loader.

Download the TWRP recovery from the TeamWin site (specifically: here: http://teamw.in/project/twrp2/97); make sure to fetch the correct file (ending in "-4.2" for Android 4.2 version).

Reboot the tablet into fastboot mode (device is connected via USB):

$ adb reboot bootloader

Alternatively, shutdown and start manually using <Power>+<Volume-Down>.

After the device has booted, check that is it visible (as root)...

# fastboot devices

...and flash the recovery image on the device:

# fastboot -i 0xb05 flash recovery twrp_recovery.img

Then reboot the device once more to verify that the installation was successful. Boot into recovery mode if you want to check the TWRP interface.

Create a Backup

Not strictly necessary, but recommended. Before installing the new OS, create a backup of the existing system. To do this, boot into recovery mode:

$ adb reboot recovery

In the TWRP menu, select Backup. Using TWRP 2.6.3.0, the backup only worked when the compression-option was enabled. Also, consider setting a nicer name for the backup.

When the backup is complete, reboot and - optionally - copy the backup to local disk.

$ mkdir android-backup
$ adb pull /sdcard/TWRP/BACKUP/<key>/<backup-name>/recovery.log
$ adb pull /sdcard/TWRP/BACKUP/<key>/<backup-name>/system.ext4.win
$ adb pull /sdcard/TWRP/BACKUP/<key>/<backup-name>/system.ext4.win.md5

Where <key> is a generated(?) key/name for the folder containing the backups and <backup-name> is the name of the backup. There are three separate files to secure.

Install CyanogenMod

Download

There are pre-built releases available for download. Since the stable 10.0 version does not support Asus 4.2.x boot loader, install the 10.2 version from the TF300T nightlies. To download the 10.2 version (and compare the checksum):

$ wget http://download.cyanogenmod.org/get/jenkins/47682/cm-10.2-20131115-NIGHTLY-tf300t.zip
$ md5sum cm-10.2.-20131115-NIGHTLY-tf300t.zip

Install

On the device, there should be a partition /sdcard/ (even if the device does not have a removable SD-card). Use adb to place the downloaded or self-built CyanogenMod release into the root of sdcard.

$ adb push RELEASE.zip /sdcard/

Boot the device in recovery mode:

$ adb reboot recovery
  • Select The Wipe and perform a factory reset. http://teamw.in/whattowipe
  • Select Install and choose the CyanogenMod release to be installed.
  • after the install is complete, select Reboot Now to boot into the new operating system.

That's it - CyanogenMod should now be running on the tablet.

CyanogenMod 10 boot-logo

The boot-screen of your tablet with CyanogenMod installed.