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-18.104.22.168-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:
- Download all necessary files.
- Install AlphaRev Jelly Hboot (250/5/282).
- Install the 4ext recovery.
- Backup your current system.
- Create ext4 partitions on the SD Card.
- Copy the ROM and GApps files on the SD Card.
- Wipe everything.
- Flash ROM.
- Flash GApps.
- Reboot the ROM, welcome to Android 4.4.4.
- 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
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):
- Connect the phone to your computer.
- Enable USB debugging (if not already enabled).
- Sanity check:
adb devicesshould list your device.
- 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
Direct link and more information form this xda-developers thread.
Direct link and more information form this xda-developers thread.
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.
2) Install AlphaRev hboot
This should work with other hboots as well.
- Boot into the bootloader using the guide above (short:
adb reboot bootloader).
fastboot devicesshould list your phone if everything is connected properly.
fastboot erase cacheto erase the cache.
fastboot oem rebootRUUto reboot into RUU. Now a HTC logo should appear on the screen of your device.
flashboot flash zip <path-to-alpharev-jelly-hboot>to flash the hboot.
flashboot reboot-bootloaderto reboot into the bootloader again. It should now be AlphaRev.
3) Install 4ext recovery
Now we are in the bootloader, using flashboot we can easily flash a recovery.
unzip <path to recovery>to unzip the 4ext recovery. It should unpack a recovery.img file.
fastboot flash recovery recovery.imgto 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.
- go to backup | restore
- 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.
toggle usb storage, see the SD card FAT partition on computer.
- copy the ROM zip file
cm-11-20140921-UNOFFICIAL-bravo.zipon the SD Card.
- copy the GApps zip file
spz_gapps-slim-kitkang-1.0.zipon the SD Card.
- copy the backup from the SD Card to your computer.
- eject the drive and tap
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.
wipe | formatmenu
format all except sd card
8) Installing ROM
- go to
install from sd card
select zip form sd card
- Select the ROM file
9) Install GApps
Same as the ROM, except choose the GApps file instead
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:
- Open terminal emulator.
suand choose to allow this time only in the pop-up
a2sd install, and do either
y(yes) to cache,
yto 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 >
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
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
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.