On va s'inspirer lourdement du how to[1] du wiki de CyanogenMod pour arriver à nos fins. La procédure à l'air longue, mais c'est parce que je parle beaucoup. Néanmoins, je vous recommande de tout lire une fois avant de commencer, pour savoir où vous allez.

Avant de commencer

Si vous êtes ici, je pars du principe que vous savez ce que vous voulez, les implications que ça a, à savoir faire sauter la garantie commerciale.
Pour ce qui est des garanties de conformité et surtout celle contre les vices cachés je ne pense pas, mais ça reste à tester…

Je précise que j'ai testé ce que je raconte sur un Galaxy S II acheté chez SFR.
Il est possible que d'autres ROMs soient différentes. Faites quelques recherches avant de vous lancer dans une procédure comme celle-ci, et ne vous lancez pas si vous ne comprenez (vraiment) pas ce que vous faites.

Tout d'abord, téléchargez ce dont on va avoir besoin, à savoir des outils et la ROM.

Pour les outils, le kernel codeworkx avec la Recovery ClockworkMod, et la suite Heimdall :

Recovery Clockwork 4.0.1.4-galaxy2, md5 = 9ad7d943a2afecad09e87b33f3dba677

Suite Heimdall:

(Pour Windows et Mac OS X allez voir sur le wiki de CM)

Pour la ROM, la version de CyanogenMod la plus récente (avec ou sans les Google Apps, selon que vous ayez envie ou non de vendre votre vie privée) :

Bon, maintenant qu'on a tout, et avant quoi que ce soit d'autre, on va surtout bien réfléchir au fait que rooter et passer son Galaxy S 2 sous CyanogenMod implique d'effacer tout ce qu'il y a sur le téléphone (sur le téléphone, pas la carte SD, donc pas les photos par exemple).
Donc, disparaitront SMS, historique de navigation, applis, réglages etc.
Je suppose que vos contacts sont synchronisés sur les serveurs de Google, et reviendront une fois que vous aurez connecté votre téléphone à un compte Google, ce que je suis sûr que vous ferez alors que j'essaye pourtant bien vous faire comprendre que c'est maaal etc.

Si vous êtes un/e vrai/e et que vous ne comptez pas mettre la couche Google avec le paquet gapps, faites un export de vos contacts à partir de l'appli téléphone pour obtenir votre carnet d'adresses sous la forme d'un joli .vcf, et ainsi ne pas vous retrouver comme un con ensuite avec un téléphone tout beau, mais sans personne à appeler.

Si vous le souhaitez, vous pouvez utiliser Titanium backup pour sauvegarder un peu tout ça à la fois. Sinon, si vous souhaitez sauvegarder juste vos SMS, SMS Backup+ est assez chouette au sens où il vous permet de sauvegarder vos SMS sur n'importe quel serveur mail (et donc d'y accéder comme des mails, avec ce que ça implique d'archivage et de recherche) et de les restaurer à partir dudit serveur.

Bref, vous avez tout, vous n'allez pas criser ensuite ? Et votre téléphone est bien chargé ? C'est à dire à fond, histoire de ne pas prendre de risques…

La procédure en elle-même

Phase 1, ClockworkMod recovery

Alors… Côté ordinateur :

  • Installez la suite Heimdall en double cliquant sur le .deb ou à coup de
    • dpkg --install heimdall_1.3.0_i386.deb.
      (Pour les Windowsien apparemment il faut tout un bordel genre Visual truc 2010, puis faut installer zadig.exe machin, ça a l'air chiant vous êtes prévenus. Sérieux prenez un vrai OS[2].)
  • Dans votre dossier perso, créez un dossier android dans lequel on va travailler :
    • clique droit > créer un dossier ou mkdir ~/android
  • Décompressez le contenu de recovery-clockwork-4.0.1.4-galaxys2.tar (à savoir un seul fichier nommé zImage) dans votre dossier android.
  • Dans un terminal (oui on va pas y couper là au terminal hein, faut savoir ce qu'on veut dans la vie, si on veut rooter son téléphone et bah va falloir faire avec) rendez vous dans le dossier de travail android qu'on a créé :
    • cd ~/android

Côté téléphone (on revient à l'ordi dans une seconde) :

  • Dans le doute (je crois que c'est utile, mais pas sûr), activez le mode déboggage USB :
    • Réglages > applications > développement > activer déboggage USB
  • Éteignez le tél (si si, c'est une étape).
  • Rallumez le téléphone en mode download :
    • Appuyez simultanément sur home + volume bas + power (le home c'est le bouton carré en bas du téléphone hein).
      Votre téléphone doit s'allumer et vous présenter un avertissement comme quoi si vous faites des conneries vous pouvez tout péter et de faire volume haut pour être un ouf gueudin ou bas pour se barrer en scred comme un pleutre. Faites volume haut.
      Votre téléphone est désormais en mode download (ou Odin) en attente qu'on lui envoie un truc cool.
  • Branchez le câble micro USB entre le tél et l'ordinateur.

Côté ordinateur :

  • Dans votre terminal placé dans ~/android dans lequel se trouve le fichier zImage, lancez heimdall avec la commande suivante :
    • sudo heimdall flash --kernel zImage
      Ce qui veut dire en bon français, « heimdall, flashe moi un truc, ce truc est un kernel et il est le fichier zImage ».
      Il faut lancer la commande en tant que root ou avec sudo, sinon vous aurez une erreur lsusb[3].
      Si vous avez un doute sur le fait qu'heimdall trouve ou non votre tel, vous pouvez lancer un heimdall detect qui devrait vous renvoyer un message positif.
  • D'après le wiki de CM une barre bleue de chargement doit apparaître pour montrer le transfert du kernel vers le téléphone. Je sais pas, je l'ai pas vue, je devais être trop distrait par les primaires socialistes. Ça doit être ça.
  • Bref, votre téléphone redémarre. Et revient à un truc qui a l'air tout pareil (et pour cause, il l'est). Damnède, tout ça pour ça ?

Phase 2, CyanogenMod

Oui, tout ça pour ça. On vient d'installer une recovery bien plus utile, ouverte et puissante que celle livrée de base.

Celle-ci va nous permettre de sauvegarder et restaurer notre téléphone, installer les ROMs qu'on veut, et autre fioritures. On s'en tiendra à ces deux là pour l'instant.

Le téléphone étant allumé, on va en profiter pour y copier le .zip contenant la ROM CyanogenMod à proprement parler (quelque chose comme cm_galaxys2_full-39.zip) et les gapps si vous les voulez vraiment. Montez donc la mémoire du téléphone pour pouvoir y accéder depuis votre ordinateur et — après avoir vérifié les hash md5 hein — copiez le(s) fichier(s) zip à la racine de la mémoire du Galaxy S 2. Démontez tout ça, débranchez le câble, et en route pour la libération cyanogenmodesque[4].

  • Éteignez le téléphone.

On va le rallumer cette fois-ci en mode recovery (« Ahh, c'est pour ça qu'on a mis une recovery améliorée ! »[5]).

Pour ce faire, on fait :

  • home + volume haut + power.
    L'écran de démarrage du Galaxy S 2 doit apparaître, avec un /!\, et au bout de quelques instants, le menu de Clockwork Recovery.

À partir de là, c'est assez simple. En utilisant les boutons de volume pour vous déplacer vers le haut et le bas, le home pour sélectionner et le power pour revenir en arrière :

  • Optionnel, mais ne mange pas de pain : faites une sauvegarde du système existant
    • Sélectionnez backup and restore puis backup pour créer une sauvegarde de l'installation actuelle de votre Samsung Galaxy S II.
  • Puis faites une remise à zéro du téléphone avec l'option Wipe data/factory reset.
  • Faites de même pour le cache avec l'option Wipe cache partition.
  • Enfin, on installe CM à proprement parler : choisissez Install zip from sdcard
  • …Puis Choose zip from sdcard et choisissez cm_galaxys2_full-39.zip qui doit se trouver à la racine de la mémoire de votre tel. Au bout de quelques instants (pas 2 secondes non plus), vous devriez voir mention du succès de l'opération.
  • Si vous avez décidé d'installer les gapps, faites de nouveau Install zip from sdcard, puis Choose zip from sdcard et choisissez cette fois-ci le zip avec les gapps. Encore une fois, il devrait vous dire que tout est bon.
  • Retournez au menu principal du ClockworkMod Recovery et choisissez Reboot system now pour redémarrer.

Votre téléphone doit démarrer sur CyanogenMod : félicitations, vous avez réussi/vous êtes libre[6]/*insérer slogan de victoire ici*.
(Le premier démarrage est un peu plus long que d'habitude, mais ne dure pas non plus 10 mimutes.)

Vous n'avez plus qu'à installer vos applis préférées et régler votre CyanogenMod aux petits oignons.

Si vous n'avez pas installé la couche Google avec les gapps et que vous voulez un market alternatif, F-Droid est un marché ne proposant que du logiciel libre avec plein d'applis utiles et sympa.[7]

En cas de problème

Si le téléphone reste bloqué (plus de quelques minutes) sur le premier écran de démarrage du téléphone (c'est moche, mais ça arrive), pas (trop) d'inquiétude. C'est justement l'intérêt d'avoir une recovery : de vous rattraper en cas de problème. Essayez d'éteindre le téléphone, et s'il ne veut rien entendre, enlevez la batterie.

Retournez en recovery, et reprenez la procédure à base de wipe, wipe cache, installation de CyanogenMod, installation des gapps si nécessaire, et redémarrage. Il arrive en effet que CyanogenMod ne s'installe pas complètement la première fois (la preuve, ça m'est arrivé).

Dans tous les cas, vous pourrez trouver de l'aide sur IRC, les gens de #cyanogenmod sur irc://chat.freenode.net sont moqueurs et parfois taquins, mais souvent pleins de bons conseils.

Conclusion

Voilà, en espérant avoir pu rendre cette procédure un peu longuette moins chiante et qu'une version française ait été utile, je vous souhaite beaucoup de plaisir à découvrir les multiples options et bidouiller CM. Un bien beau chronophage vous attend.

Notes

[1] Si vous ne savez pas ce qu'est un how to je peux vous faire un how to sur les how to si vous voulez.

[2] Bravo si tu as reconnu le troll caché dans ce billet.

[3] Et là, on espère que heimdall ne contient pas de backdoors dégueulasses ou de trucs dans le genre qu'il profiteraient des droits root pour installer… m'enfin, le code est accessible, donc y'a peu de chances.

[4] Si si, c'est un adjectif. Un de mes amis l'a déjà utilisé une fois. À moins que c'était le verbe « cyanogenmoder », hmm.

[5] Oui mais pas que : ça permet aussi de se protéger grandement contre les risques de briquer le téléphone en offrant presque toujours possibilité de débriquer.

[6] Oui, on peut débattre de l'ouverture réelle d'Android et de sa liberté réelle considérant que les versions mises en avant par Google, HTC et/ou les opérateurs sont pleines d'applis proprio, voir sont des versions proprios pour Sense, et pleines de saletés, que l'on sait désormais que Google a pour but de faire apparaître le développement d'Android comme ouvert tout en ne publiant le code que tardivement etc. Il n'en reste pas moins qu'à part en utilisant un OpenMoko ou un N900 sur Maemo, AOSP est l'OS le plus libre qu'on puisse faire tourner sur un téléphone à l'heure actuelle.

[7] Si vous avez du temps, le projet a besoin d'aide pour valider de nouvelles applis.