Saturday, April 13, 2013

Step by step guide to installing CM 10.1 on HTC One X using Ubuntu

While I think the HTC One X is a great bit of hardware I find HTC's changes to Android a little annoying.  I use Nexus devices for my day to day use and find the more pure Android implementation provided by Google much better and generally more attractive than the HTC version.  Fortunately you can use CyanogenMod to get an experience much closer to Android the way Google intended it.  In this guide I will be installing CyanogenMod 10.1 which is based on Android 4.2.2(the latest version at the time of writing).

DISCLAIMER: as usual with all these types of guides it may void the warranty and I am not responsible for any damage you may cause to your phone.  I tested this with Ubuntu Gnome 13.04 and a UK O2 HTC One X with Android 4.1.1.  This process is going to wipe all the data off your phone so make sure everything important is synced and backed up first.

The following is a step by step guide to installing CyanogenMod on your HTC One X using Ubuntu Gnome 13.04.  It should work for other versions of Ubuntu also but I have only tested it in 13.04.  This guide assumes you have a totally unmodified HTC One X, if you have already completed some of the steps previously, ie: unlocking the boot loader or rooting just skip those steps.

Step 1 -Unlocking the bootloader

First you need to install adb and fastboot.

If you are using an Ubuntu version lower than 12.10 then use the instructions here

If you are using Ubuntu 12.10 or above then just run the following at the terminal:

sudo apt-get install android-tools-adb

sudo apt-get install android-tools-fastboot

Fortunately HTC have made it really easy to unlock the bootloader on the One X.  The instructions on the HTC website are mainly based around using Windows  so I will detail exactly what I did for Ubuntu.  Simply follow this link and follow the instructions but refer back to here when the instructions are Windows specific.

NOTE:  at the time of writing the HTC One X is not in the devices dropdown so just select "All Other Supported Models".  You will also need to sign up for a HTC Developer account if you don't already have one.

You will need to follow the directions on page 1 of the "Unlocking Bootloader Instructions" but step 2 is only relevant to Windows so you can just skip straight to Step 3.

On step 3 you need to get the identifier token by entering the following at the terminal:

sudo fastboot oem get_identifier_token

The example given on the HTC site is for Windows but you essentially do the same thing for Ubuntu, just copy the text as shown in the screenshots and paste it into the form at the bottom of the page.

After submitting your identifier token you will be sent an email with further instructions on unlocking your bootloader and a attachment named Unlock_code.bin.  Download the Unlock_code.bin attachment and then open a terminal and change to the directory that you placed the downloaded file in.

Run the following command in the terminal:

sudo fastboot flash unlocktoken Unlock_code.bin

Step 2 - Install ClockworkModRecovery

Download the img file for your HTC One X Variant from here:

Boot into fast boot by first turning off your device and then turning it on by holding the power and volume down buttons together.  Then use the volume buttons to move up and down and the power button to select "FASTBOOT" and then connect the USB cable.

Then in the terminal run the following command:

sudo fastboot flash recovery recovery-clockwork-touch-

NOTE: the version number in the file name may be slightly different to my example above so adjust accordingly.

Now select "POWER DOWN" from the fastboot menu and disconnect your device from the USB cable.

At this point I strongly recommend making a backup of your current installation, to do this boot back into the fastboot menu(by holding power and volume down to turn the device on).  Then use the volume buttons to navigate to "RECOVERY" in the menu and then press power to select it.  Your device will now load the ClockworkMod Recovery menu.  Select "backup and restore" from the menu and then select "backup".  Once the backup has finished reboot the phone and connect it to your USB cable and open your phone storage in your file manager.  The backup should be located in the the "clockworkmod" folder, copy the backup to your computer so that you can do a restore if anything goes wrong.

Step 3 - Install CyanogenMod

Now download the latest CyanogenMod 10.1 nightly for the One X from here:

and the latest Google Apps zip from here:

Extract the file boot.img from the CyanogenMod zip file by running the following command:

unzip -p cm-10.1-* boot.img >boot.img

Turn your device on and once it has booted connect the USB cable.

Copy the CyanogenMod zip file and the Google Apps zip file to the internal storage on the phone(I put them in the Download folder) then power off the device.

Now boot your phone into fastboot mode by holding power and volume down at the same time and selecting "FASTBOOT" from the menu and then connect your phone to the USB cable.

Flash the new boot image by running the following command in your terminal:

sudo fastboot flash boot boot.img

Once the command has run select "HBOOT" to return to the main menu.


Select "wipe data/factory reset" and confirm

Select "install zip from sdcard"

Select "choose zip from sdcard" and then choose the CM nightly zip and then confirm that you want to install it.

Select "choose zip from sdcard" again but this time choose the Google Apps zip file and confirm.

Navigate back to the main menu and select "reboot system now".

The first boot after the CyanogenMod install will take a little longer than usual so give it a few minutes to boot up.  After that you should see all the first run Android stuff like adding your Gmail account etc.

I hope this helps, I struggled to find a concise step by step guide for doing this on Ubuntu so I figured I would document the process for the benefit of all.



  1. Great guide but this guide also removes the baseband. Is there a way of getting the baseband working?

    1. I'm using baseband 5.1204.162.29 and it works fine. What version are you on? Could be a CM issue.

    2. I was on CM10.1 but now have Viper but still no baseband showing. I honestly don't know how to get it working.

    3. hmmmm....I have an O2 HTC One X from the UK I had shipped to Australia and it all worked perfectly, you're not on some US variant with LTE by any chance are you?

    4. Just thinking, it might be worth re-trying the process with a different nightly version. After all the nightly builds are not technically considered "stable". I had issues with some features on an Asus TF101 and just installing a newer nightly build fixed the problems. If the One X is your everyday phone and you are experiencing issues then you can always just flash the stock HTC firmware back on. I don't use the One X as my day to day phone(it's one of my play around phones) but my girlfriend has been using it with CM10.1 for almost a month without any issues so I can confirm that the CM 10.1 nightlies work really well. The only thing I can think of is that is an issue with the particular nightly you installed or it is a hardware variant that has slightly different baseband hardware.

    5. James, I will give it a go. I managed to successfully install Renovate ROM which is a very fast ROM. But I will definitely give CM10.1 another go.

  2. Great guide but after flashing my machine with it my screen gets stuck infinitely. Do you know how to solve it ? Thx for any help.