Guide to CyanogenMod & AOSP Jellybean / ICS on the HTC One X
There seems to be a lot of confusion about getting the HTC One X running custom firmware.
Its actually quite simple, theres 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. Its also really simple to update as new builds come out, though you need to obviously know about the gotchas or youll get yourself into hot water.
Well begin by unlocking your Bootloader. Speaking from personal experience I can tell you that HTC will still honor their hardware warranty even after you do this (Though theyll kick up a bit of a fuss about it), but if you do happen to brick your phone (With a bad flash somehow) then youre basically on your own. Youre in luck though because its 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 isnt that scary and were here to hold your hand
Before we begin, now is a good time to backup your SMS messages using SMS Backup & Restore: https://play.google.com/store/apps/d…SBackupRestore
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 ( http://www.htcdev.com/register/ ). This is a *must* because HTC will email you the unlock code for your phone.
Once youve gone through the registration process, were going to unlock your Bootloader by going to http://www.htcdev.com/bootloader/ (Or go to htcdev.com and click Unlock Bootloader and then Get Started).
Select your Supported Device on the right-hand side as All Other Supported Models.
Its going to tell you to download the SDK and things. Dont bother, its a pain and takes forever, and you really only need a couple of files from it. Instead, grab this:
fastboot-adb.zip (Windows)
adb-linux.zip (Linux)
Theyre 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 (Youre going to need a valid email address coz it emails you a file to unlock your phone).
I wont go through it here, as HTC do a pretty damn fine job of guiding you step-by-step. Again, Ill just say that you need to follow through their steps provided at http://www.htcdev.com/bootloader/
Once youve got your Bootloader unlocked, itll start rebooting into the standard firmware and youll be greeted with the setup process again.
If you wanna go through it, thats 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). Ive written the guide presuming youre in Windows but Im using Linux myself in the screenshots.
Open a terminal / command prompt and find your extracted adb / fastboot files. You want to run:
adb devices ![HTC Guide to CyanogenMod & AOSP Jellybean / ICS on the HTC One X 415x170xonex 01.png.pagespeed.ic.wHeQRARtMW HTC Guide to CyanogenMod & AOSP Jellybean / ICS on the HTC One X]()
If you dont see your device, then make sure youve got USB Debugging turned on.
Now before we proceed were going to copy the firmware across. You can do this by using copy / paste, or use adb as Im about to show you
Put the gapps and the ROM .zip file into the same directory as your adb files and run:
adb push tg_endeavoru-ota-30.zip /sdcard/tg_endeavoru-ota-30.zip
adb push gapps-jb-20120726-signed.zip /sdcard/gapps-jb-20120726-signed.zip (Again, my screenshot is slightly different because Im running Linux)
You wont see a progress indicator until its done. If the cursor is flashing, thats good, means its copying:
![HTC Guide to CyanogenMod & AOSP Jellybean / ICS on the HTC One X 737x244xonex 02.png.pagespeed.ic.Jgg29XkvBP HTC Guide to CyanogenMod & AOSP Jellybean / ICS on the HTC One X]()
Then later becomes (When its finished copying):
![HTC Guide to CyanogenMod & AOSP Jellybean / ICS on the HTC One X 729x223xonex 03.png.pagespeed.ic.AQC1ZkblSe HTC Guide to CyanogenMod & AOSP Jellybean / ICS on the HTC One X]()
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 its tg_endeavoru-ota-30.zip) and youll 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 well 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:
![HTC Guide to CyanogenMod & AOSP Jellybean / ICS on the HTC One X 169x300xonex 04 169x300.jpg.pagespeed.ic.XXbqCgZrJx HTC Guide to CyanogenMod & AOSP Jellybean / ICS on the HTC One X]()
From here you want to now switch to using the fastboot command rather than adb. Fastboot is used while youre 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:
![HTC Guide to CyanogenMod & AOSP Jellybean / ICS on the HTC One X 735x166xonex 05.png.pagespeed.ic.ilrOBRwaaD HTC Guide to CyanogenMod & AOSP Jellybean / ICS on the HTC One X]()
Next you want to run:
fastboot erase cache Were about to boot into Recovery to do the flashing of the firmware, however first of all were going to need to flash the custom recovery.
Download ClockworkMod Recovery (Touch) from here: http://download2.clockworkmod.com/re…-endeavoru.img
Save that to the same directory as your adb / fastboot files and then run:
fastboot flash recovery recovery-clockwork-touch-5.8.4.0-endeavoru.img 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.
Youll see a few Failed to open
flick past, thats fine, always happens, dont worry. Theyll disappear off your screen in a flash and you should now see:
![HTC Guide to CyanogenMod & AOSP Jellybean / ICS on the HTC One X 169x300xonex 06 e1343871131581 169x300.jpg.pagespeed.ic.hJEpxcwH x HTC Guide to CyanogenMod & AOSP Jellybean / ICS on the HTC One X]()
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:
![HTC Guide to CyanogenMod & AOSP Jellybean / ICS on the HTC One X 169x300xonex 07 e1343871219378 169x300.jpg.pagespeed.ic.XF 5MJ5HOy HTC Guide to CyanogenMod & AOSP Jellybean / ICS on the HTC One X]()
Select install zip from sdcard then choose zip
and scroll right down to the very bottom and select your ROM:
![HTC Guide to CyanogenMod & AOSP Jellybean / ICS on the HTC One X 169x300xonex 08 169x300.jpg.pagespeed.ic.gqb9d9Payu HTC Guide to CyanogenMod & AOSP Jellybean / ICS on the HTC One X]()
You then want to repeat the whole process with the Gapps!
Once youve done that, your screen should look like this:
![HTC Guide to CyanogenMod & AOSP Jellybean / ICS on the HTC One X 169x300xonex 09 e1343871572973 169x300.jpg.pagespeed.ic.Q476ZUeAnW HTC Guide to CyanogenMod & AOSP Jellybean / ICS on the HTC One X]()
Both have installed successfully. Simply hit Go Back a few times to go back and then hit Reboot now.
Your system should reboot and youll now see the lovely Nexus boot animation if youre using the tg-endeavoru Jellybean AOSP ROM:
![HTC Guide to CyanogenMod & AOSP Jellybean / ICS on the HTC One X 169x300xonex 10 e1343871714837 169x300.jpg.pagespeed.ic.r3lB a3PuI HTC Guide to CyanogenMod & AOSP Jellybean / ICS on the HTC One X]()
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, just to be safe.
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
5) fastboot erase cache
6) Boot into Recovery
7) Flash ROM
8) Flash Gapps
9) Reboot
Im boot-looping or cant boot after flashing, what do I do?
You didnt flash the boot.img did you? Reboot into the Bootloader and run:
fastboot flash boot boot.img fastboot erase cache then reboot.
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. Theyre not without the occasional bug, but most definitely USA left as a daily driver.
Why do we have to flash the kernel separately?
HTC havent 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 cant flash the ROM, it fails. Why?
You have a real old version of Recovery, your download was bad, or youre using the International version with the 4G phone
Wheres 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:
https://play.google.com/store/apps/d…ficationToggle
https://play.google.com/store/apps/d…om.painless.pc
Which kernel should I be using for this?
For now its 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, its 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. Thats 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 its just not worth the extra hassle.
Why does my battery life suck?
Its something still being actively worked on.
Where do I see the list of outstanding issues?
You can see all the outstanding issues here: https://github.com/tg-endeavoru-jell…ues?state=open
Issues are best discussed there if you can reproduce it rather than in the XDA Forums
I want to help, I think Ive 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 youre running anything like a custom kernel, or if youve 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 doesnt work is no help. Saying My bluetooth headset wont pair with my phone, but it did previously on stock firmware and on ICS ROMs is much better!