vlad.wtf

Install a ROM, hboot and recovery without working volume buttons on HTC Desire (Bravo)

Before you follow this article to install the ROM on your device, please note that the result will be a slow, annoying phone.

My motivation for writing this article and taking this approach in the first place is that my phone does not have working volume buttons at all and it is totally possible to install a newer version of Android.

My phone is a HTC Desire Bravo running Android 2.3 with ROM CyanogenMod-7.2.0.1-bravo. It is rooted and has S-OFF. If you’re looking on how to root your phone, there are plenty of tutorials on the web. This in only about how to flash a hboot, recovery, boot into recovery and flash a ROM without using the volume buttons.

If you want to read about fastboot, there is a full fastboot and adb guide on xda-developers.

Now all the steps required to install Android 4.4.4 on your HTC Desire are:

  1. Download all necessary files.
  2. Install AlphaRev Jelly Hboot (250/5/282).
  3. Install the 4ext recovery.
  4. Backup your current system.
  5. Create ext4 partitions on the SD Card.
  6. Copy the ROM and GApps files on the SD Card.
  7. Wipe everything.
  8. Flash ROM.
  9. Flash GApps.
  10. Reboot the ROM, welcome to Android 4.4.4.
  11. Enable A2SD.

Booting into the bootloader

The volume-key solution is to hold the volume up (or down) button and press the power button. A less-known (at least for me it was not known until today) solution is to hold the back button and press the power button.

Still you won’t be able to navigate though the menus but you can use the fastboot command from there (more above).

Another way is using the adb command line tool. Assuming you have adb installed, in $PATH and all the drivers installed (in any requied, e.g. on Windows):

  1. Connect the phone to your computer.
  2. Enable USB debugging (if not already enabled).
  3. Sanity check: adb devices should list your device.
  4. Now reboot to the bootloader using: adb reboot bootloader. You can also reboot directly to recovery with adb reboot recovery.

adb reboot command

Useful to have this command highlighted and on hand.

$ adb reboot [bootloader|recovery]

All usages with description:

adb reboot              // reboots the phone
adb reboot bootloader   // reboots into the bootloader
adb reboot recovery     // reboots into the recovery

1) Download all necessary files

AlphaRev Jelly Hboot (250/5/182)

MD5: 7393e92a6d4f6b6060d236c27d944ad3

Direct link and more information form this xda-developers thread.

4ext recovery

MD5: 79496e1478ea56e33f3f2d90ac88adfe

Direct link and more information form this xda-developers thread.

Android 4.4.4 ROM KitKANG (version 1.0)

MD5: 21f917cec9b6edcfac81a8d1e2818446

The xda-developers thread for the ROM includes more information about the ROM, known issues, a changelog and it might be more up to date than the links in this article.

GApps slim for KitKANG v1.0

MD5: e533d3ac1457160d378fd9a7ed119a49

2) Install AlphaRev hboot

This should work with other hboots as well.

  1. Boot into the bootloader using the guide above (short: adb reboot bootloader).
  2. fastboot devices should list your phone if everything is connected properly.
  3. fastboot erase cache to erase the cache.
  4. fastboot oem rebootRUU to reboot into RUU. Now a HTC logo should appear on the screen of your device.
  5. flashboot flash zip <path-to-alpharev-jelly-hboot> to flash the hboot.
  6. flashboot reboot-bootloader to reboot into the bootloader again. It should now be AlphaRev.

Instructions from xda-developers, credits going to thehiggins.

3) Install 4ext recovery

Now we are in the bootloader, using flashboot we can easily flash a recovery.

  1. unzip <path to recovery> to unzip the 4ext recovery. It should unpack a recovery.img file.
  2. fastboot flash recovery recovery.img to flash the recovery. And we’re done.

Boot into recovery

To boot into the recovery, boot into Android, and use adb reboot recovery. This step is not required if your volume buttons are working - only select recovery from the menu then.

4) Create a backup

Do NOT skip this. Create a backup using the recovery options. Will be really useful if something goes wrong. In fact, it is pretty much the only salvation.

  1. go to backup | restore
  2. hit backup and follow the on-screen instructions. The backup is now on your SD card, on the FAT partition.

5) Partition SD Card

You need at least 512MB of ext4 space on your SD Card for this ROM.

You can do this by either using the 4ext recovery or by using GParted. The linked guide has detailed description of both methods but the 4ext solution is straightforward in this case, given we’re already booted into the recovery and the SD Card is in the phone. Just follow the instructions from the tools > partition sd card menu. Skip swap space and the second ext4 partition.

6) Copy files to SD Card

This is trivial but worths mentioning because we do not need to turn off the phone to get the SD Card out. Conveniently 4ext has a toggle usb storage option.

  1. tap toggle usb storage, see the SD card FAT partition on computer.
  2. copy the ROM zip file cm-11-20140921-UNOFFICIAL-bravo.zip on the SD Card.
  3. copy the GApps zip file spz_gapps-slim-kitkang-1.0.zip on the SD Card.
  4. copy the backup from the SD Card to your computer.
  5. eject the drive and tap disconnect.

7) Wipe everything

I have tried without wiping everything and it did not boot (Cyannogen mod logo appeared but stayed there for ages). Wipe everything and it should be alright.

  1. open wipe | format menu
  2. select format all except sd card

8) Installing ROM

  1. go to install from sd card
  2. select zip form sd card
  3. Select the ROM file cm-11-20140921-UNOFFICIAL-bravo.zip

9) Install GApps

Same as the ROM, except choose the GApps file instead spz_gapps-slim-kitkang-1.0.zip.

10) Reboot

You have now installed Android 4.4.4 on your device. Now reboot your phone and you will see the Cyannogen Mod logo for a while (about 10 minutes), then Android 4.4.4 should load.

If it takes longer than 10-15 minutes you should consider restoring your back-up and trying again. It happened to me when I did not wipe all data before installing the ROM.

11) Install A2SD

HTC Desire (bravo) has a very low internal memory. A2SD for the rescue:

  1. Open terminal emulator.
  2. type su and choose to allow this time only in the pop-up
  3. type a2sd install, and do either y (yes) to cache, y to data or only yes to cache. Yes to reboot.

NOTE The more you put on the SD Card, the slower your system will be. At the same time, if you put nothing, you don’t have space for anything.

You’re done. Enjoy Android 4.4.4.

Restoring from a backup

If something went wrong you can rollback to your backup quite easily. If you can go to the recovery mode just use the interface: backup | restore > restore and follow instructions. However, in the case of only being able to access the bootloader and the volume buttons are broken, you should have a decent kernel to boot the

In the backup you made, there is a (sub)folder like 2015-01-17.19.40.42_CyanogenMod7.2.0.1bravo. Inside that folder, you find these files:

boot.img
cache.yaffs2.img
data.yaffs2.img
fsinfo
nandroid.md5
recovery.img
sd-ext.yaffs2.img
system.yaffs2.img

We are interested in system.yaffs2.img, data.yaffs2.img and boot.img. Follow these commands to roll back to your backup:

fastboot erase system -w
fastboot erase boot
fastboot flash system system.yaffs2.img
fastboot flash userdata data.yaffs2.img
fastboot flash boot boot.img
fastboot reboot

And now you should be back to your initial system, except for the SD card, but you can probably roll that back as well. I had a new card for the setup so I didn’t run into this problem - therefore I’m not sure how rolling it back works, but it is likely related to the sd-ext.yaffs2.img file. Maybe just a dd command like dd if=sd-ext.yaffs2.img of=/dev/sdc1 will do (assuming /dev/sdc1 is the ext4 partition of the card on your computer).

Review of the system

I’ve been using this system for about two months. It is horrible. It might be that the SD card I have is too slow, but the system is very slow overall. And I’m not talking almost-usable-but-annoying slow, but annoyingly unusable slow. When someone calls me, it takes some time for the phone to turn on the screen and show who is calling me. When I want to send a text back, there is a huge wait from pressing the notification to the reply pop-up to show. Taking pictures is nearly impossible.