Monday, October 31, 2011

Unlocking your bootloader

Your phone has some sort of BIOS, which is called the bootloader. The only thing we really care about in this thing is how it manages partition sizes in the phone's flash memory (NAND) and the security checks that it performs on each boot.

HTC phones' bootloader is called HBoot. The HBoot can be accessed like this : power down your phone and hold down the VOLUME DOWN key. Now, at the same time, press and hold the POWER button. You should see a white screen with... well, text. On the very top it should say S-ON or S-OFF (S = security). Having a S-ON`ed HBoot (locked) means that you are locked out of /system and /recovery partitions. A locked HBoot also performs something called secuflag, which checks to see if .zip files that you flash via  Recovery (we'll learn about that in the next post) are signed by HTC or not. Most (99.9%) devices are locked, so if you are one of the 0.1% lucky ones... you can skip this post entirely.

Now, there are is some thing you need to know before you proceed. Flashing the HBoot means that you will flash a critical part of your phone. If this gets interrupted or the file is corrupted in any way, your phone will be bricked (= you can experiment whether it survives a 10-floor drop or not). Also, nobody is responsible if you brick your phone : do this at your own risk. But I did it a few times, so I'd say it's pretty safe. And, at the time I did it only AlphaRev 1.7 was available (now we have 1.8, so the process should be even slicker).

HTC users can go to AlphaRev's homepage and follow the guide from there. Basically you'll have to flash another HBoot. Supported devices by AlphaRev custom HBoot are : HTC Desire GSM (including PVT4 devices - which have a smaller NAND), HTC Legend GSM and the HTC myTouch 3G Slide.

Now, here's how you do it. First...
1) You'd better have a rooted phone. Otherwise this is useless and you'll have to root it...
2) Make sure your phone is fully charged. Don't ask why, just do it, even though it sounds pretty lame to consider that 5% in the battery makes a difference or not (at least when you have >70%).
3) Make sure you have a USB cable that works without problems -- no flow interruption when you move it or anything like that.
4) Better do this from a battery-powered laptop, so no power outages can affect you. Or just rely on your local electrical current provider (haha, now THAT's reliable).

Alright, now let's get to work.

Download the AlphaRev 1.8 HBOOT Reflash utility from HERE.

----- For use via CD/DVD
Burn the downloaded "alpharev.iso" file on a blank writeable CD/DVD. Turn off your computer and boot it from that CD/DVD.

----- For use via USB Drive
Download Universal USB Installer from HERE.
Click "I agree" on the license agreement.
From the drop-down menu, select the last option: "Try Unlisted Linux ISO (New Syslinux)".
Click "Browse" and select the downloaded "alpharev.iso" file.
Insert an empty USB drive into your computer and select it from the drop-down menu.
Check "Format Drive as Fat32" (all data on the drive will be erased, obviously).
Click "Create" and confirm the several prompts that you’ll get.
Wait untill the USB drive is prepared and then click "Close".
Turn off your computer and reboot it from the USB drive.

Wait for your computer to boot into the Live Linux system on the CD/DVD/USB Drive and press any key when prompted.
If you get asked whether you also want to flash the custom ClockworkMod AlphaRev Recovery, select "yes" unless you are absolutely sure you want to keep your current recovery.
Connect your phone to your computer via USB while it is powered on normally.
Wait patiently while the S-OFF procedure is performed -- which may take a while (no more than 10 minutes). I'd suggest you not do ANYTHING on your phone or computer before the process finishes and prompts you about it.
Press enter to reboot your computer when the process has finished. Make sure to set it to boot from the hard disk this time so you get back into your OS. Eject the CD/DVD/USB drive before rebooting.



  1. Too bad you still can't do it for HBOOTs newer than 0.93... or is it doable now?