Je suis l’heureux propriétaire d’un HTC One S, et même si la ROM Sense d’origine est très stable et plutôt agréable à utiliser, je n’ai pas pu résister à l’appel de CM9 !
Vous l’avez probablement lu sur les interwebs, CM9 vient d’être officielement publiée par l’équipe en charge du projet. Une information à tiroirs, car en fait seulement une pincée d’appareils est officiellement supportée à ce jour (la communauté doit alors travailler sur d’autre terminaux qui, selon la stabilité de la chose, seront intégrés ou non dans la branche officielle).
C’est dans cet esprit qu’un portage sur HTC One S est en cours, et est aujourd’hui très proche de son pendant officiel… raison amplemant suffisante pour me lancer dans l’aventure. Je vais donc vous expliquer le processus, vous trouverez certainement des explications plus détaillées ailleurs, je vais donc surtout insister sur les points qui me semblent importants… et surtout comment je me suis sortit de quelques mauvaises passes.
N’hésitez pas à utiliser les commentaires pour poser vos questions :)
ROM ? Flash ? Kernel ? ADB ?!
Avant de rentrer dans le vif du sujet une petite explication sur les principes de base s’impose. Installer (ou flasher) une ROM sur un terminal Android c’est 3 étapes majeures :
* Déverouiller le bootloader, ou plus simplement : virer ces p**** de protections inutiles
* Flasher une Recovery, c’est à dire installer un système de gestion du terminal très bas-niveau, indépendant de la version d’Android. C’est en quelque sorte un BIOS.
* Flasher la ROM (installer le système d’exploitation)
Ces étapes font appel à plusieurs outils, que je connais finalement très peu, mais voici ce que j’en ai compris :
* ADB, un outil pour discuter avec le terminal depuis une autre machine en USB. Je me l’explique comme un terminal SSH.
* Fastboot, le truc un peu obscur qui sert à flasher tout et son contraire… (heureux ?)
Je vous invite très fortement à sauvegarder toute information importante en dehors de votre terminal… on ne sais jamais. Pensez aussi à activer la synchronisation des paramètres avec votre compte Google, vous gagnerez un temps précieux à la réinstallation.
Clic clic ?
Il est tout à fait possible d’effectuer toute la manipulation sans toucher la ligne de commande, c’est d’ailleurs ce que j’ai fait lors de mes premières tentatives (oh, si j’avais su…).
L’outil incontournable c’est le All-in-one toolkit for HTC One S, très bien documenté un peu partout sur le web.
Seul élément qui m’a posé problème c’est l’installation du Recovery, pour une raison que j’ignore seul TWRP est fonctionnel (CWM ne démarrait pas sur mon appareil). Oh et si vous avez des difficultés pour faire reconnaître votre appareil : mettez-vous en mode stockage USB, et activez le déboggage.
Hop, un saut dans le temps et vous voila avec votre terminal déverrouillé, direction la ligne de commande pour la suite.
adb shell push kamoulox flash recovery
Démarrez votre terminal en recovery, téléchargez les images CM9 à jour et copiez-les sur le téléphone avec un adb push mon_zip.zip /sdcard
, facile, non ? Utilisez ensuite le menu de votre Recovery pour installer les .zip.
Il faut ensuite flasher le boot.img
, soit le noyau de votre linux embarqué (qui va charger les drivers pour le matériel par exemple) : fastboot flash boot boot.img
.
On pense bien à vider le cache et le cache dalvik et on redémarre… et oh magie CID (la mascotte) est bien là, sur son fond clignotant. Il a clignoté un bail dans mon cas. A vrai dire il a tellement clignoté que je me croyais en boite de nuit… bref : BOOT LOOP !!!
Une boot loop c’est une installation mal faite ou buggée qui n’arrive pas à se lancer et tourne en boucle… Arf !
Après quelques recherches, flash, recherches, une solution : démarrer en recovery et faire un Factory reset.
Bien, le téléphone démarre enfin sur la ROM, tout à l’air parfait (et fluide !). “You can now unmout sdcard”. Wat ? Mon cher CM9 ne reconnaît donc pas le stockage interne du téléphone. Me voila de retour en recovry, Factory reset, reboot, idem, Factory reset, idem, flash, idem… et puis le lendemain matin la révélation : je démarre mon terminal, pas de sdcard bla bla, un petit tour dans Settings > Backup & reset > Factory data reset
et hop, mon téléphone redémarre et reconnait sa sdcard !
Nous raconte pas ta vie !
Pour résumer :
* Installer CM9 depuis la Recovery
* Démarrer une première fois. Si boot loop alors retour en Recovery et Factory reset
* Android se lance correctement, si problème de sdcard non reconnue : Settings > Backup & reset > Factory data reset
“J’ai tout pêté, ça marche plus, je pleure…”
Si jamais vous vous trouvez dans une impasse avec un sytème qui ne démarre plus sa ROM, vous pouvez vous en sortir en suivant ces explications. Comme indiqué dans le tutoriel, vous allez avoir besoin d’une “RUU”, c’est à dire de la ROM officielle du constructeur. Chaque ROM dépend de votre opérateur et de votre version Radio (les chiffres affichés dans le meu du bootloader). Un seul endroit pour trouver votre bonheur : ce post sur le forum xda, fouillez bien les réponses car certains membres donnent des liens de téléchargement alternatifs.
De manière générale, documentez-vous bien avant de bidouiller les outils, pour éviter de vous planter… et surtout pour apprendre un maximum sur cet univers passionnant :)