Unlocking your bootloader will wipe all your data!
Unlocking your bootloader may void your warranty!
It is, however, necessary to root your phone. Currently, there is no other way to unlock the phone or install a custom recovery.
To start, go to http://www.htcdev.com
Then in the top bar, click register. Create an account and fill in all your data. You will get an e-mail from HTC and your account will be activated.
Once you are logged in on the site, you need to go to "Unlock bootloader", and then click get started. On the right, you see a dropdown box. Click it, and select "All Other Supported Models", then click "Begin Unlock Bootloader"
Next install fastboot. I'm not gonna hold your hand here, there are 400+ tutorials on installing fastboot, for every OS you can think of. Search for one and install it.
And, if you are on windows, then install HTC sync as well, pretty basic, even a Windows user should be able to do it
Next, on your phone, got to Settings->Battery and scroll down. There, disable the checkbox "fast boot" (not to confuse with fastboot, that's something entirely different).
Once you have done that, shut down your phone, then hold the volume down button, and the power button. This is commonly referred to as "booting into fastboot".
To move around in the fastboot menu, you need the volume keys to go up and down, and the power keys to select an option.
If the options you can choose from are:
then you need to navigate to fastboot, and then hit the powerkey.
The option you can choose from must be:
Don't use this code, it won't work. Do it yourself!
Problem: I get
FAILED (status malformed (1 bytes))
finished. total time: 0.000s
Solution: Select the fastboot option with the powerkey.
Copy the relevant part to the HTC dev site, and submit your token. You will (should) get an e-mail that contains your unlock code. Save the attachment (Unlock_code.bin) to a location where you can find it.
fastboot flash unlocktoken Unlock_code.bin
If you are in the same location as your unlock code, of course.
On your phone, you will now see a screen where you have to confirm that you want to unlock your phone, and that it will wipe all your data, and may void your warranty. Use the volume buttons and the power button to choose what you want.
If you selected that you want to unlock your device, then: Congrats, your bootloader is unlocked
But hold it, before you reboot your phone to confirm that you will have to re-type your very long wifi password, you might as well continue to installing a custom recovery:
This is actually quite easy, if you just unlocked your bootloader. The only trick will be selecting the right recovery to flash
Dual sim users, be careful here. On some phones flashing cwm or twrp causes serious bootup issues. I don't know a fix, since I only have single sim.
Not everybody has problems, however.
Now, there are two things you need to think about when choosing a recovery:
1. Do I have hboot 1.03 or a lower version
2. Do I want ClockWorkMod or TeamWinRecoveryProject (both are usually abbreviated as you might expect)
1. To check your hboot version, boot your phone into fastboot mode (you got this, check the post up there ^). The third line will be something like:
HBOOT-1.02.0001 or HBOOT-1.01.0001 or HBOOT-1.03.0001. As you might have guessed, this is your hboot
2. cwm or twrp, that's the question.
Cwm is a no touch recovery. That means you have to use the powerbuttons/volumebuttons to move around which is quite annoying. Twrp however, is a touch recovery, much easier to use.
But with twrp, adb doesn't work, which can sometimes be useful if you are a developer.
Wait for it to finish, and then hit BOOTLOADER, and then click one down to RECOVERY, and select it. Your phone should now boot into recovery.
Congrats, you now have a custom recovery!
Now, before jumping with joy because you did it, there is one thing you should do before you do anything else! Make. A. Backup.
Not optional. You need to have a sdcard in your phone. On twrp, touch backup and follow the onscreen instructions (backup all the partitions that are already checked)
On cwm, you will have to use the volume buttons to scroll down to backup and restore, then select backup, and it should begin immediately.
Once you have your recovery installed, you can actually root your phone.
Reboot your phone, then download SuperSU, and put it on your sdcard. Then boot into your new recovery another time. Select either "Install" or "Install zip", then install zip from sdcard, and select the SuperSU.zip you downloaded earlier. Congrats! You now have (partial) root!
Yes, you are not done yet. As an extra layer of security, htc prevents you from editing the system partition, with something called system write protection. To get it away, you need to install a custom kernel.
First, check your software version. You can do this by going to "Settings"->"About Phone"->"Software version".
Mine, for example, is: 1.32.401.3
Now, if your software version starts with 1.20 or something lower, then you must install the Kangbang kernel, else, install the Ultimate kernel.
To install the Kangbang kernel, go here. But the installation instructions are slightly different, basically the only thing you have to do is mount /system, and then flash the zip. Don't forget to mount system!
For installation instruction on flashing the Ultimate Kernel, go here.
Remember, you already flashed a superuser app.
Problem: After installing the kernel I cannot make phone calls
Solution: Install the right kernel, according to your software version
Once you have one of the kernels installed, then your phone is fully rooted!
After unlocking your bootloader, the installation of ota (over the air) upgrades fails, because it requires a locked bootloader.
Steps to install the upgrade anyway:
First, you need to download the ota. Next, pull the zip to your computer, it should be located in your downloads folder.
Next, open the zip and remove the file firmware.zip, you will need it later. Next, open in the zip the file META-INF/com/google/android/updater-script. There, you need to remove this part:
What you find might slightly different. For example, z4u might be z4dug, if you are on dual sim. But it usually starts at the second line of the file, so it should be to hard to find.
Then, restore the first nandroid back-up you made, because the ota checks if the files on your system partition are modified.
Next, you push the zip back to the sdcard again, and then flash it via your custom recovery.
While you are still in your recovery, make a backup of only your data partition! Don't make a backup of your complete system!
Now, to flash the firmware.zip, you need to lock your bootloader. Because you will have to re-unlock your bootloader after you are done, you will lose all your data again. If you are S-off, then you don't have to relock your bootloader, you can skip this.
How to re-lock your bootloader:
1. In recovery, select: Reboot Bootloader
2. Connect your phone to fastboot
3. Type: fastboot oem lock
That was easy! Your phone, however, might not boot. Don't worry about that, we will fix that later.
fastboot oem rebootRUU
fastboot flash zip firmware.zip
This can take a short while.
You now have flashed the firmware.zip
Congrats, you have the ota installed.
It might be a good idea to keep your modified ota around, you might need it later on.
Now, you can unlock your bootloader again (htc dev, second post), check your hboot version again, install a custom recovery again (make a new backup. Don't throw away your old backup), root your phone again etc.
You can now install The Ultimate Kernel!
To sim unlock your device, you need to have CWM on your device and you need to have adb installed.
It doesn't work with twrp, because adb doesn't work.
Boot your device into cwm. Connect your device to your computer (with the cable), and connect with:
strings -n 8 /dev/block/mmcblk0p7
The output will be a lot of rubbish, but you need to
look for a 8 digit combination that MAKES SENSE for a CODE.
And In the case of ATRAC3, it was K65151479, so his unlock code was 65151479. I haven't tested this myself, because my device was never sim locked, but it should work.
Full credits for this go to @ATRAC3, this post.
Well, everything is done and working. You have rooted your phone, installed a custom kernel and a custom rom, and everything is working fine.
But, then, at once, you get: "unfortunately camera has stopped" and your camera app refuses to start. And now, when you tell the dev that the camera is not working, he replies:
So, I'll explain what they both are:
dmesg - This is basically a print of /devlog/kernel_log. All the messages from the kernel get stored there. If you think a problem is kernel related, you should at least include this.
logcat - This is a print of /devlog/system_log. All other messages get stored there. If you think something is related to a rom, you should at least include it.
It requires you to have adb installed.
How to get one:
1. Enable adb on your phone. Go to Settings->Developer Options->enable it->enable USB-debugging
2. Next, connect your phone with a cable, and type (on the computer cmdline): adb devices
You should see something like: SH3BRWE00258 device. This means your phone is succesfully connected.
If you want a logcat, now type: adb logcat > logcat
This stores all the logs in logcat. You have to let this run for a few seconds, and then hit ctrl+c. Then, there should be a file called logcat, containing, well, your logcat.
If you want a dmesg, type: adb shell
Then, you need to check, whether the text you see ends with a #. If it doesn't, type: su, and then unlock your phone. You might see a warning, asking for superuser access, grant it.
If you are sure it ends with #, then type: dmesg > storage/sdcard0/dmesg
The dmesg is then stored on your sdcard (called dmesg), pull it to your computer and post it on the forums.
One glance at any developer section of any device forum on XDA and youll find … more
21 Sep 2014
XDA Developers was founded by developers, for developers. It is now a valuable resource for people who want to make the most of their mobile devices, from customizing the look and feel to adding new functionality. Are you a developer?