nonymous.fr

Archives 2014

Installation de CyanogenMod 11 / Android 4.4 (Kitkat) sur Samsung Galaxy S2 (GT-i9100)

Rédigé par nonymous - - 31 commentaires

Tout ce qui suit est basé sur la documentation officielle fournie sur le site CyanogenMod.

Attention, cette dernière n'est pas totalement fiable, et j'ai quasi-briqué mon téléphone plusieurs fois avant que ça fonctionne.
Pour résumer, l'installation de Cyanogen sur ma Galaxy Tab, c'était déjà rock n' roll. Mais alors sur le Samsung S2, c'est carrément hardcore badass. Dans cet article, je vais essayer de résumer ce qu'il faut faire, en vous épargnant les multiples tentatives et erreurs par lesquelles je suis passé.

Et comme c'est vraiment hardcore badass, je vais te tutoyer.

Pour faire cette installation, j'utilise un PC sous Linux Mint 17 x64 Cinnamon.

Étape 1 : la sauvegarde

J'utilise l'application "Sauvegarde ton portable".
Personnellement, je coche les éléments suivants :

  • Contacts
  • Journaux d'appels
  • SMS, MMS
  • Paramètres système
  • APN

Une fois réalisée, la sauvegarde se présente sous la forme d'un fichier dont le nom est sous la forme :

backup_2014-11-05-21-52-50

Il s'agit en fait d'un fichier zip dans lequel tu peux fouiller un peu pour retrouver tout ton petit boxon. Retrouve ce fichier dans l'arborescence de ton téléphone, puis copie le au chaud quelque part sur ton PC.

Par ailleurs, personnellement, je sauvegarde tout ce qui est photos et vidéos manuellement (dossier DCIM/camera).

Installation de Heimdall

Heimdall est l'outil qui va permettre d'installer un Recovery Mode alternatif. Le recovery mode est un outil spécial qui va installer l'OS proprement dit. Il s'exécute au démarrage de l'appareil lorsqu'une certaine combinaison de boutons est effectuée.

L'installation se fait par la commande suivante :

sudo apt-get install heimdall-flash

Pour tester le fonctionnement :

heimdall version
v1.4.0

Télécharger le ClockWorkMod Recovery Mode 6.0.4.6

Pour installer CyanogenMod 11, il faut un recovery mode compatible avec cette version. Tu utiliseras ClockWorkMod Recovery 6.0.4.6.

Le fichier est disponible ici : recovery-clockwork-6.0.4.6-i9100.zip.

Ouvrir le fichier zip et extraire le fichier recovery.img dans un emplacement dont tu te rappelleras.

Télécharger la ROM CyanogenMod 11

Celle que j'utilise est située ici : http://download.cyanogenmod.org/?device=i9100&type=nightly, en l'occurence le fichier cm-11-20141108-NIGHTLY-i9100.zip (mais je te conseille de prendre le plus récent disponible). Il s'agit d'une version "Nightly" (donc pas une release stable - c'est un risque à prendre, sur mon téléphone ça fonctionne bien).

Le changelog des nightlies sur Samsung S2 est disponible ici : http://www.cmxlog.com/11/i9100/. C'est toujours intéressant d'y jeter un oeil.

Il faut que tu télécharges également les Google Apps, afin d'avoir accès par exemple au Play Store. Il te faut une version des Google Apps compatible avec la version de Cyanogenmod ci-dessus. Par ailleurs, en raison d'une limitation du S2 (une histoire de taille de partition je crois, selon la doc officielle), il faut prendre la version 20140105, disponible ici.

Stocker ces fichiers à un endroit facile d'accès (c'est à dire pas dans les tréfonds d'une arborescence délirante). A ce stade, on a 3 fichiers :

  • recovery.img : le recovery mode
  • cm-11-20141108-NIGHTLY-i9100.zip : la ROM proprement dite de Cyanogenmod
  • gapps-kk-20140105-signed.zip : les Google Apps

ULTRA IMPORTANT

important

Recopie les 2 fichiers suivants sur ton téléphone depuis ton PC :

  • cm-11-20141108-NIGHTLY-i9100.zip
  • gapps-kk-20140105-signed.zip

Si ces fichiers ne sont pas sur le téléphone, tu es dans un monde merdique.

ULTRA IMPORTANT

importantimportant

Recopie les 2 fichiers suivants sur ton téléphone depuis ton PC :

  • cm-11-20141108-NIGHTLY-i9100.zip
  • gapps-kk-20140105-signed.zip

Oui, je viens de le dire, mais c'est tellement ultra important que je préfère me répéter.

Sinon → monde merdique.

Pourquoi ? Parce que la plupart des docs que j'ai vues parlent d'utiliser "adb" pour transférer les fichiers. C'est un système de communication basée sur les API Google. Or, je n'ai jamais réussi à faire communiquer le téléphone avec mon PC en utilisant adb. Sauf qu'une fois en mode Recovery, si t'as pas accès aux fichiers de ROM à installer, tu y es (dans le monde merdique).

Ca y est ? Tu es prêt ?

Il est encore temps de renoncer...

Passer en "Download Mode"

OK, t'es pas un ptit joueur, on y va.

Avant tout, débrancher le câble USB. Puis :

download mode boutons

Tu appuies simultanément sans jamais lâcher sur les boutons Volume Down + Home + Power. Tu ne lâches que lorsque tu as l'écran ci-dessous :

download mode warning

Ici, tu appuies sur "Volume UP" pour accepter.

Tu es alors en "Download Mode" :

download mode

Le téléphone est un dans un mode d'attente : toi, tu en profites pour lui envoyer des choses à l'aide d'un outil spécialisé via le câble USB. C'est ici qu'entre en jeu Heimdall.

Tu branches ton câble USB, puis tu ouvres un terminal. Tu te déplaces dans le dossier où ton fichier recovery.img a été stocké, puis tu saisis :

sudo heimdall flash --KERNEL recovery.img --no-reboot --verbose

Cela veut dire en gros :

"Cher Heimdall, veux-tu bien s'il te plait écrire le contenu de recovery.img sur la partition de mon téléphone nommée KERNEL ?"

Il est crucial de respecter la syntaxe et la casse des caractères.

Normalement, ton Linux va te demander ton mot de passe root, puis tu vas voir défiler ceci :

Heimdall v1.4.0
Copyright (c) 2010-2013, Benjamin Dobell, Glass Echidna
http://www.glassechidna.com.au/
This software is provided free of charge. Copying and redistribution is
encouraged.
If you appreciate this software and you would like to support future
development please consider donating:
http://www.glassechidna.com.au/donate/

Initialising connection...
Detecting device...
      Manufacturer: "SAMSUNG"
           Product: "Gadget Serial"

            length: 18
      device class: 2
               S/N: 0
           VID:PID: 04E8:685D
         bcdDevice: 021B
   iMan:iProd:iSer: 1:2:0
          nb confs: 1

(...)

Setting up interface...

Initialising protocol...
Protocol initialisation successful.

Beginning session...

Some devices may take up to 2 minutes to respond.
Please be patient!

Session begun.

Downloading device's PIT file...
PIT file download successful.

Uploading KERNEL
0%
15%
31%
46%
62%
77%
93%
100%
KERNEL upload successful
Ending session...
Releasing device interface...
Re-attaching kernel driver...

Sur le téléphone, une barre bleue de progression complète s'affiche :

download complete

Passer en Recovery Mode

C'est un peu comme le download mode, c'est un mode spécial, auquel on accède avec une combinaison de bouton spéciale. Ici, c'est Volume UP + Home + Power : (ne jamais relâcher tant qu'on n'a pas obtenu l'écran Recovery Mode).

recovery mode boutons

On obtient l'écran ci-dessous :

recovery mode

Attention, ici c'est une photo (moche) de la version 4.0.1.5 que j'ai utilisée avant de m'apercevoir que je me plantais. Je n'ai pas fait de photo de la version 6.0.4.6, mais c'est quasiment pareil, en bleu.
On navigue dans ces menus avec Volume Up/Volume Down et Power pour valider.

Faire une sauvegarde

Ca m'a sauvé la vie. Je te conseille vraiment de le faire, même si ça saoule.

Tu vas donc dans "backup and restore" et tu valides. Ca va faire une sauvegarde complète de ton OS, je n'ai aucune idée de où ça s'enregistre, mais ça le fait.

Effacer tout

Alors en fait, à ma grande surprise, ça n'efface pas tout. J'ai même eu la surprise de ne jamais perdre mes données (photos, vidéos, etc.) malgré les 150 tentatives que j'ai faites (avec plein de formatages). Par contre tout ce qui est contacts, sms, mms, est perdu.

Dans le Recovery Mode, :

  • sélectionner "wipe data/factory reset", valider
  • sélectionner "wipe cache partition", valider

backup et wipe

Ici, c'est une photo de la version 6.0.4.6. Comme tu peux le constater, c'est bleu. Et un peu de travers.

Installer CyanogenMod 11

Tu n'as pas quitté le recovery mode, tu vas donc dans "install zip".

Tu te rends dans le dossier de ton téléphone où tu avais enregistré tes 2 fichiers zip. Petit piège : ici, les dossiers sont rangés par ordre alphabétique, mais avec toutes les majuscules en premier, puis les minuscules. Donc ton dossier "cyanogen" (si tu l'as appelé comme ça) peut se trouver très bas dans la liste. J'espère que cette explication est claire.

Tu sélectionnes "cm-11-20141108-NIGHTLY-i9100.zip" et tu valides, non sans une réelle appréhension.

Une fois que tu as le message rassurant "Install from sdcard complete", tu recommences avec gapps-kk-20140105-signed.zip.

Si tu es dans un jour de chance et que tu as bien travaillé, tu obtiens ça :

install complete

(Sur la photo, il manque la fin de l'install des Google Apps

Rebooter

Tu es y presque ! Tu sélectionnes "Reboot system now", et là, ton estomac se noue pendant que tu regardes redémarrer la chose.

Normalement, ici, un truc très inquiétant se passe :

warning

Pas de panique. Si tout s'est bien passé, tu attends un peu (environ 10 secondes de pure angoisse) et un magnifique logo Cyanogenmod va remplacer ce vilain écran de la terreur :

startup

C'est fini !

Tu termines l'installation en suivant les instructions, puis tu installes "Sauvegarde ton portable" à partir du Play Store, tu restaures ta sauvegarde, et voilà.

BONUS : Restaurer la ROM officielle en cas de téléphone briqué

Le Samsung S2, lorsqu'il est "briqué", démarre avec un panneau triangulaire Warning et puis... plus rien.

J'ai quand même trouvé une solution pour restaurer une ROM fonctionnelle.

Première étape : télécharger la ROM. J'ai utilisé le fichier "I9100XWLSS_I9100OXFLS3_I9100XXMS2_HOME.tar.md5" que j'ai eu bien du mal à trouver, mais qui au final fonctionne. Je l'ai sous le coude, si nécessaire, je peux le tranférer à qui me le demandera.

Il faut ensuite décompresser ce fichier, ce qui nous donne le contenu suivant :

-rwxr--r-- 1 user user    131072 avril 22  2013 boot.bin
-rwxr--r-- 1 user user  40792236 avril 22  2013 cache.img
-rwxr--r-- 1 user user 486188232 avril 22  2013 factoryfs.img
-rwxr--r-- 1 user user 405809628 avril 22  2013 hidden.img
-rwxr--r-- 1 user user  12583168 févr. 15  2013 modem.bin
-rwxr--r-- 1 user user   1277952 avril 22  2013 param.lfs
-rwxr--r-- 1 user user   1310720 avril 22  2013 Sbl.bin
-rw-r--r-- 1 user user    276480 avril 24  2013 SS_DL.dll
-rwxr--r-- 1 user user   8387840 avril 22  2013 zImage

Passer ensuite en "Download mode" sur le téléphone (voir plus haut), puis lancer une fenêtre de terminal après avoir branché le câble USB. Saisir la commande suivante en respectant la casse :

sudo heimdall flash --BOOT boot.bin --CACHE cache.img --FACTORYFS factoryfs.img --HIDDEN hidden.img --MODEM modem.bin --PARAM param.lfs --SBL1 Sbl.bin --KERNEL zImage --no-reboot

Une fois la commande terminée (ça dure un certain temps quand même), rebooter le téléphone et prier.