Voici quelques outils bien utiles pour mettre à jour son téléphone android avec des ROM RUU de chez HTC, dans cet exemple ce sera un HTC Desire.

Extraction du fichier rom.zip d’un exécutable RUU

Pour cela il faut un
– exécutable RUU (dans cet exemple le fichier RUU_Bravo_Froyo_HTC_WWE_2.29.405.5_Radio_32.49.00.32U_5.11.05.27_release_159811_signed.exe pour un HTC Desire)
– le programme unruu
Tout d’abord récupérer les sources de unruu ainsi que la librairie unshield du même auteur :
git clone https://github.com/twogood/unshield.git
cd unshield/
./bootstrap
./configure --prefix=/usr
make
sudo make install

Une fois la librairie installée, faire de même avec unruu :
git clone https://github.com/kmdm/unruu.git
cd unruu
./autogen.sh
./configure
make

Il est maintenant possible d’extraire le fichier rom.zip de la façon suivante :
./unruu RUU_Bravo_Froyo_HTC_WWE_2.29.405.5_Radio_32.49.00.32U_5.11.05.27_release_159811_signed.exe
Il en résulte un fichier rom.zip contenant la ROM, ce fichier peut être renommé en PB99IMG.zip et placé à la racine de la carte SD pour être flashée par le bootloarder.
Pour pouvoir être flashé il faut que le bootloader soit verrouillé, s’il est déverrouillé il faut entrer la commande suivante en mode fastboot :
fastboot oem lock

Flasher la rom par fastboot

Une fois le fichier rom.zip extrait, il est possible de la flasher par fastboot sans la copier sur la carte SD avec la commande suivante :
fastboot flash zip rom.zip

Erreur « Main version is older »

Il arrive que la version à flasher soit plus ancienne que ce peut accepter le téléphone (par exemple avec la mise à jour du hboot 1.03.003 qui a permit de débloquer le téléphone), cela est du au numéro de version présente dans la partition misc.
Il suffit donc d’extraire cette partition avec la commande
cat /dev/mtd/mtd0 > /sdcard/mtd0.img
De modifier avec un éditeur héxadécimal le numéro de version qui se trouve à l’adresse 0xA0 et puis de reflasher ce fichier avec la commande
flash_image misc /sdcard/mtd0.img
Il est maintenant de nouveau possible de flasher la ROM par le bootloader.