Installer CyanogenMod sur un HTC One (M8)

Je possède un smartphone HTC One (M8), et récemment, il m'a proposé d'effectuer une mise à jour OTA (Over The Air) pour passer d'Android 4.4 (Kitkat) à Android 5.0 (Lollipop). Ce genre de mises à jour, proposées par le constructeur ne pose normalement pas de souci : on appuie sur "OK", la mise à jour se fait, puis le téléphone redémarre sur le nouveau système. Je n'ai malheureusement pas eu cette chance. Au lieu de redémarrer sur le nouveau système, mon téléphone est resté bloqué sur un écran affichant un petit logo rouge-qui-n-annonce-rien-de-bon. De plus, plus aucune commande ne répondait, je ne pouvais même pas éteindre le téléphone (avant de trouver une combinaison de touche pas du tout intuitive grâce à @kyriog).

Un peu dépité et n'obtenant pas d"informations utiles du côté de HTC, je me suis dit qu'il était temps d'essayer autre chose. Je me suis donc lancé dans l'installation de CyanogenMod sur le téléphone, et c'est bien sûr de ça dont nous allons parler dans cet article.

CyanogenMod Cid
Attention : Déverrouiller et installer une ROM alternative sur votre téléphone est susceptible de vous faire perdre votre garantie. De plus, toutes les données présentes sur le téléphone seront supprimées. Si vous n'êtes pas sûr de ce que vous faites et que votre téléphone est encore sous garantie, il peut être préférable de contacter le service client HTC pour procéder à une réparation du terminal.
Note : Je vais réaliser l'intégralité des manipulations de cet article sous Ubuntu Linux. Vous pouvez tout à fait utiliser un autre système d'exploitation (autre distribution Linux, Windows, Mac OS X…) il vous faudra toutefois adapter certaines commandes en fonction de votre système.

Installer les outils nécessaires

Avant de commencer, il nous faut installer adb et fastboot sur notre ordinateur afin de pouvoir communiquer avec notre téléphone :

sudo apt-get install android-tools-adb android-tools-fastboot

Une fois ces outils installés, il faut configurer notre système d'exploitation afin qu'il nous autorise à communiquer avec le téléphone en USB. Pour ce faire, il nous faut créer le fichier "/etc/udev/rules.d/51-android.rules" et y insérer la ligne suivante :

SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666"

Pour finir, il faut redémarrer udev :

sudo service udev restart

Voilà, nous sommes maintenant prêts à commencer !

Pour Windows, vous trouverez adb et fastboot sur le forum xda developers. Vous aurez également besoin d'installer HTC Sync Manager qui contient les pilotes USB du téléphone pour Windows.
Pour Mac OS X, vous trouverez adb et fastboot par ici : https://code.google.com/p/adb-fastboot-install/.

Accéder au menu de boot

La première étape de notre périple est de réussir à redémarrer le téléphone sur le bootmenu (il s'agit d'un menu caché accessible au démarrage du téléphone).

Éteindre le téléphone (1)

Dans mon cas, le téléphone est bloqué sur un écran affichant un logo rouge, aucune touche ne semble répondre. Pour le forcer à s'arrêter, il faut maintenir les boutons Power et Volume+ enfoncés pendant 10 secondes.

Remarque¹ : Si contrairement au mien votre téléphone n'est pas bloqué, vous pouvez l'éteindre normalement.
Remarque² : Dans mon cas, le téléphone redémarre immédiatement après avoir été éteint. Il faut donc enchaîner avec l'étape suivante dès que l'écran devient noir.

Redémarrer sur le menu de boot (2)

Pour accéder au bootmenu, une fois le téléphone éteint, il faut le rallumer en maintenant les boutons Power et Volume– enfoncés jusqu'à apparition du menu.

Menu de boot (3)

Maintenant que nous avons atteint le bootmenu, il ne nous reste plus qu'à relier le téléphone à l'ordinateur à l'aide d'un câble USB (le même qui sert à charger le téléphone).

Étapes pour accéder au menu de démarrage du HTC One (M8)

Déverrouiller le téléphone

Pour pouvoir installer une ROM non officielle sur le téléphone, il faut le déverrouiller. Par chance, HTC propose cette procédure sur son site dédié aux développeurs.

Afin de procéder au déverrouillage de l'appareil, il faut commencer par activer le mode fastboot. Pour ce faire,

  1. Mettez "FASTBOOT" en surbrillance en utilisant les boutons Volume+ et Volume– (normalement il devrait déjà être sélectionné).
  2. Appuyez sur le bouton Power pour valider.
  3. Si tout s'est bien passé, le titre du menu doit indiquer "FASTBOOT USB".
Étapes pour accéder au téléphone via fastboot

Maintenant nous allons vérifier que l'ordinateur reconnaît bien le téléphone. Pour cela, ouvrez un terminal puis entrez la commande suivante :

fastboot devices

Si la commande retourne une ligne semblable à celle-ci, vous êtes prêt à passer à la suite, sinon, vérifiez que votre téléphone est bien relié à votre ordinateur et que les permissions sont correctes (voir le passage sur udev dans la première partie de cet article) :

XXXXXXXXXXXX     fastboot

Afin de pouvoir suivre la procédure de déverrouillage sur le site de HTC Dev, il faut commencer par vous y inscrire :

Suivez en suite la procédure indiquée sur cette page :

Peu de temps après avoir suivi les instructions du site, vous devriez recevoir un e-mail contenant en pièce jointe le fichier nécessaire au déverrouillage du téléphone ("Unlock_code.bin"). Une fois cet e-mail reçu, suivez les instructions de la page suivante pour procéder au déverrouillage du téléphone :

Votre téléphone est à présent déverrouillé, nous allons enfin pouvoir entrer dans le vif du sujet.

Flasher l'image recovery

Nous allons à présent installer sur le téléphone un mini système (que l'on appelle recovery) qui va nous permettre de réaliser les diverses opérations nécessaires à l'installation de CyanogenMod (ou de tout autre système Android).

Pour commencer, il faut télécharger ClockworkMod, qui est le recovery que nous allons utiliser par la suite :

Ensuite, il faut démarrer le téléphone en mode fastboot (instructions dans la partie précédente).

Puis enfin, flashez ClockworkMod sur le téléphone à l'aide de la commande suivante (pensez bien à adapter le nom et le chemin du fichier que vous avez téléchargé) :

fastboot flash recovery clockworkmodrecovery.6051.m8.touch.img

Si tout s'est bien passé, la commande devrait retourner une sortie similaire au bout de quelques secondes :

target reported max download size of 1826418688 bytes
sending 'recovery' (13486 KB)...
OKAY [  1.492s]
writing 'recovery'...
OKAY [  0.513s]
finished. total time: 2.005s

Pour finir, nous allons redémarrer le téléphone en mode recovery afin de lancer ClockworkMod :

  • Sélectionnez "HBOOT" à l'aide des boutons Volume+ et Volume–,
  • et validez avec le bouton Power.
  • Puis sélectionnez "RECOVERY" (toujours à l'aide des boutons Volume+ et Volume–),
  • et validez avec… le bouton Power.

Si tout s'est bien passé, vous devriez avoir devant vous le menu de ClockworkMod.

ClockworkMod sur HTC One (M8)

Installer CyanogenMod

Maintenant que nous sommes sur le bootmenu, nous allons pouvoir procéder à l'installation de CyanogenMod.

Télécharger CyanogenMod

Pour commencer, il vous faut télécharger une version de CyanogenMod compatible avec notre téléphone. Prenez la dernière version stable disponible sur cette page :

Effacer toutes les données du téléphone

Ensuite, il faut effacer toutes les données présentes sur le téléphone. Normalement les données ont déjà été effacées lors de la procédure de déverrouillage, mais au cas où, voici là marche à suivre :

  • Sélectionnez l'option "wipe data/factory reset" à l'aide des boutons Volume+ et Volume– et validez en pressant le bouton Power.
  • Confirmez l'effacement en sélectionnant l'option "Yes - Wipe all user data".
Étapes pour effacer les données du téléphone

Envoi et installation de CyanogenMod sur le téléphone

Nous allons maintenant pouvoir installer CyanogenMod sur le téléphone.

Pour commencer, il faut s'assurer que la partition de donnée est bien montée (ça devrait normalement être le cas). Pour ce faire, rendez-vous dans le menu "mounts and storage", puis vérifiez la ligne qui mentionne "/data".

  • S'il est écrit "unmount /data" comme sur l'image ci-dessous, c'est que la partition est bien montée. Quittez le menu sans rien toucher en sélectionnant l'option "+++++Go Back+++++" tout en bas du menu.
  • S'il est écrit "mount /data", sélectionnez cette option afin de monter la partition de donnée puis quittez le menu en sélectionnant l'option "+++++Go Back+++++" tout en bas du menu.
Étapes pour monter la partition de donnée

Ensuite, nous allons envoyer sur le téléphone l'archive zip que nous avons téléchargée. Pour cela, ouvrez un terminal sur votre ordinateur puis entrez-y la commande suivante (en adaptant le nom et le chemin du fichier zip) :

adb push cm-11-20141112-SNAPSHOT-M12-m8.zip /sdcard/

L'opération prend quelques dizaines de secondes. Une fois terminée, le terminal devrait vous afficher une ligne similaire à celle-ci :

12231 KB/s (244823134 bytes in 19.546s)

Enfin, nous allons procéder à l'installation à proprement parler. Prenez votre téléphone, puis effectuez les manipulations suivantes :

  • Sélectionnez "install zip",
  • puis "choose zip from /sdcard",
  • le zip que vous avez envoyé devrait apparaître dans la liste, sélectionnez-le,
  • confirmez l'installation en sélectionnant l'option "Yes - install cm-11-20141112-SNAPSHOT-M12-m8.zip".

Une fois l'installation terminée, vous vous retrouvez de nouveau sur le menu de sélection du zip, et le journal en bas de l'écran devrait afficher "Install from sdcard complete.".

Étapes d'installation de CyanogenMod

Installer les Google App (facultatif)

Maintenant que notre système est installé, nous allons procéder à l'installation des applications Google sur le téléphone. Ceci n'est pas obligatoire, toutefois, si vous ne les installez pas, vous n'aurez pas accès au Play Store, à Google Map, à Youtube, etc.

L'installation des Google App se déroule de la même façon que l'installation de CyanogenMod.

Pour commencer, téléchargez la version des applications Google correspondant à la version de CyanogenMod que vous venez d'installer :

Note : si vous ne savez pas quelle version de CyanogenMod vous avez installé, regardez le nom du zip que vous aviez téléchargé à l'étape précédente. Le nom commence par la version de CyanogenMod (cm-11, cm-12…).

Ensuite, comme précédemment il faut envoyer le zip contenant les Google App sur le téléphone. Ressortez votre terminal et tapez-y la commande suivante (toujours en adaptant les noms de fichiers) :

adb push gapps-kk-20140606-signed.zip /sdcard/

puis, sur votre téléphone :

  • rendez-vous dans le menu "install zip",
  • sélectionnez "choose zip from /sdcard",
  • puis sélectionnez le zip que vous venez d'envoyer,
  • enfin confirmez l'installation en sélectionnant "Yes - install gapps-kk-20140606-signed.zip".

Une fois terminé, vous verrez encore une fois le message "Install from sdcard complete." en bas de votre écran.

Étapes d'installation des Google Apps

Reboot

Vous pouvez à présent redémarrer votre téléphone : retournez dans le menu principal grâce aux options "+++++Go Back+++++" en bas des menus, puis sélectionnez "reboot system now".

Votre téléphone va à présent redémarrer sous CynaogenMod (ça prend un peu de temps la première fois, c'est normal).

C'est reparti \o/

Voilà, votre téléphone fonctionne à nouveau, vous pouvez l'utiliser normalement.

Je vous invite également à lire les pages du wiki de CyanogenMod consacrées au HTC One (M8), et, pour les plus téméraires, à tester d'autres ROMs (les nightly de CyanogenMod 12 par exemple), d'autant que ClockworkMod vous permet de sauvegarder votre système afin de le restaurer rapidement si d'aventure vous tombiez sur une ROM qui ne fonctionnerait pas comme prévu.