Guide to CyanogenMod & AOSP Jellybean / ICS on the HTC One X

August 2, 2012 Chilling_Silence How-To's / Guides / Tech info

UPDATE: FAQs are at the very bottom of the page! 🙂

There seems to be a lot of confusion about getting the HTC One X running custom firmware.

It’s actually quite simple, there’s just a few steps that you need to take in order to first unlock the Bootloader, and then flashing the new firmware.

Thankfully the current AOSP Jellybean builds have matured incredibly quickly and bugs are minimal. It’s also really simple to update as new builds come out, though you  need to obviously know about the “gotchas” or you’ll get yourself into hot water.

There are two “main” parts to this process of getting Jellybean on your phone:
1) Unlocking your Bootloader — Following HTC’s guide
2) Flashing the custom firmware — Following this guide

We’ll begin by unlocking your Bootloader (Following  HTCs guide).

Speaking from personal experience I can tell you that HTC will still honor their hardware warranty even after you do this (Though they’ll kick up a bit of a fuss about it), but if you do happen to brick your phone (With a bad flash somehow) then you’re basically on your own. You’re in luck though because it’s pretty tough to permanently brick your phone, and following this guide will go a long way towards helping. That said I obviously take no responsibility for anything that goes wrong etc…

YOUR DATA WILL BE WIPED! FULLY! EVERYTHING! Including whats in /mnt/sdcard!

(The FULL wipe occurs when you unlock your Bootloader, on any phone. If your bootloader is already unlocked then the /mnt/sdcard contents will likely be kept)

That said, the process isn’t that scary and we’re here to hold your hand

Part 1) Unlocking the Bootloader
(Following HTC’s Guide)

Before we begin, now is a good time to backup your SMS messages using SMS Backup & Restore:

So make sure that you take your SMS Backup XML file and copy it to your PC!!

Now, first of all, you need to go through the HTC registration process by clicking on “Register” at the *very* top-most part of the screen ( ). This is a *must* because HTC will email you the unlock code for your phone.

Once you’ve gone through the registration process, we’re going to unlock your Bootloader by going to (Or go to and click “Unlock Bootloader” and then “Get Started”).

Select your Supported Device on the right-hand side as “All Other Supported Models”.

It’s going to tell you to download the SDK and things. Don’t bother, it’s a pain and takes forever, and you really only need a couple of files from it. Instead, grab this: (Windows) (Linux)

They’re just the essential files needed to run adb and fastboot.

Extract them and use them when it references adb and fastboot.

Follow through all the steps to unlock your Bootloader (You’re going to need a valid email address coz it emails you a file to unlock your phone).

I won’t go through it here, as HTC do a pretty damn fine job of guiding you step-by-step. Again, I’ll just say that you need to follow through their steps provided at

Part 2) Flashing the custom firmware

Once you’ve got your Bootloader unlocked, it’ll start rebooting into the standard firmware and you’ll be greeted with the setup process again.

If you wanna go through it, that’s cool, basically just skip *everything* and turn on USB Debugging

NOTE: For Linux, you run something by typing ./adb or ./fastboot whereas in Windows you just type adb or fastboot (When in the same directory). I’ve written the guide presuming you’re in Windows but I’m using Linux myself in the screenshots.

Open a terminal / command prompt and find your extracted adb / fastboot files. You want to run:

adb devices

If you don’t see your device, then make sure you’ve got USB Debugging turned on.

Now before we proceed we’re going to copy the firmware across. You can do this by using copy / paste, or use adb as I’m about to show you

Put the gapps and the ROM .zip file into the same directory as your adb files and run:

adb push /sdcard/
adb push /sdcard/

(Again, my screenshot is slightly different because I’m running Linux)

You won’t see a progress indicator until its done. If the cursor is flashing, that’s good, means it’s copying:

Then later becomes (When it’s finished copying):

This will copy the ROM and the GApps across to your phone ready to be flashed!

Now, on your PC, open up the firmware file (In this case it’s and you’ll see a “boot.img” file. Extract that one fileand place that into the same directory as your adb and fastboot files. This is the Kernel file that has to manually be flashed at the moment due to restrictions from HTC.

Now comes the juicy part of the flashing!

You should have the boot.img file extracted, and both files pushed across to your phone successfully. Now we’ll restart your phone into the Bootloader using:

adb reboot-bootloader

Your phone will now restart and you should be greeted with a nice mostly white screen:

From here you want to now switch to using the “fastboot” command rather than adb. Fastboot is used while you’re in the bootloader.

Start by running:

fastboot flash boot boot.img

This tells it to flash the /boot partition with the boot.img file that you extracted from the ROM earlier. You should see a nice confirmation on your PC screen, but nothing on your phone screen at this point in time:

Next you want to run:

fastboot erase cache

We’re about to boot into Recovery to do the flashing of the firmware, however first of all we’re going to need to flash the custom recovery.

Download ClockworkMod Recovery (Touch) from here:

Save that to the same directory as your adb / fastboot files and then run:

fastboot flash recovery recovery-clockwork-touch-

Recovery is FLASHED!

Next, on your phone use your Power button to choose “HBOOT”. It should already be highlighted on HBOOT, but if not, use the Vol-Up / Vol-Down keys to select it.

You’ll see a few “Failed to open…” flick past, that’s fine, always happens, don’t worry. They’ll disappear off your screen in a flash and you should now see:

This screen looks similar, but is *slightly* different.

Push Vol-Down once to highlight “Recovery” and then the Power button to go into recovery.

You should now be greeted by ClockworkMod Touch Recovery:

Select “install zip from sdcard” then “choose zip…” and scroll right down to the very bottom and select your ROM:

You then want to repeat the whole process with the Gapps!

Once you’ve done that, your screen should look like this:

Both have installed successfully. Simply hit “Go Back” a few times to go back to the main menu.

Finally, you need to Factory Reset and wipe everything again thats left over from your last ROM.
Do the Factory reset, then go back to the main menu and then hit “Reboot now”.

Your system should reboot and you’ll now see the lovely Nexus boot animation if you’re  using the tg-endeavoru Jellybean AOSP ROM:

Frequent Questions

Do I need to wipe between ROMs?

If changing ROMs such as from AOSP to CyanogenMod or AOKP, then yes.
If you are simply upgrading your current one to a newer build (Such as from build 25 to build 30) then no wipe should be required.


What about going from ICS -> Jellybean?

Yes, wipe, you won’t be coming from the same “vendor” so you should wipe.


How do I upgrade to a new version?

1) Extract the boot.img from the new ROM
2) Copy the new ROM and Gapps (if applicable) across to the phone
3) Reboot into Fastboot
4) fastboot flash boot boot.img
5) fastboot erase cache
6) Boot into Recovery
7) Flash ROM
8) Flash Gapps
9) Reboot


I’m boot-looping or can’t boot after flashing, what do I do?

You didn’t flash the boot.img did you? Reboot into the Bootloader and run:

fastboot flash boot boot.img
 fastboot erase cache

then reboot.
Otherwise, try factory resetting from within Recovery.

How stable are the ROMs?

It varies but already after just 2-3 weeks after Jellybean was released to AOSP we have a number of surprisingly stable ROMs out there. They’re not without the occasional bug, but most definitely usable as a “daily driver”.


Why do we have to flash the kernel separately?

HTC haven’t allowed it to be done from recovery yet, look up “S-OFF” for more info on this. We are hoping this is resolved soon.


I can’t flash the ROM, it fails. Why?

You have a real old version of Recovery, your download was bad, or you’re using the International version with the 4G phone…


Where’s my on screen menu button?

Its gone, the multitasking / app-switcher button is now your Menu button. Push and hold Home for 1 second to switch between apps instead! Its a much better use of screen real-estate!


I want the notification toggles that I had in CyanogenMod! How can I get them back?

Try one of these two apps:


Which kernel should I be using for this?

For now it’s actually best if you stick with the kernel that ships with it. There are a number of other ones out there but while development is still being finalized on the ROM, stick with the standard one. If you experience any issues at all, before you go crying in the XDA Forums, it’s best you do a full re-flash of the ROM and stock kernel, and see if you can reproduce the error.

That, and a number of people just presume they need a non-standard kernel to “get the most outta the phone”. That’s a myth and a lie. More often than not, a standard kernel works marvellously! On top of that, many people struggle to find which kernel to use, how to flash it, and it’s just not worth the extra hassle.


Why does my battery life suck?

It’s something still being actively worked on, but at the moment it’s pretty decent, there’s likely an app causing the issue so look up “Better Battery Stats” and see.


Where do I see the list of outstanding issues?

You can see all the outstanding issues here:
Issues are best discussed there if you can reproduce it rather than in the XDA Forums


I want to help, I think I’ve found a bug, what should I do?

First of all you *need* to provide logs. The more information the better!

You also need to tell us if you’re running anything like a custom kernel, or if you’ve added any other mods such as changes to include Advanced Power Menu and things.

Finally, as many steps as you can about how you reproduced it. Saying “Oh my bluetooth doesn’t work” is no help. Saying “My bluetooth headset won’t pair with my phone, but it did previously on stock firmware and on ICS ROMs” is much better!

Android, AOSP, Bootloader, CyanogenMod, HTC,

50 Responses to “Guide to CyanogenMod & AOSP Jellybean / ICS on the HTC One X”

Leave a Reply

Powered by WordPress. Designed by elogi.