Heimdall : logiciel de mises à jour pour smartphone Samsung sous Android

Vous êtes utilisateur d'un smartphone Samsung sous Android et votre version d'Android est vieillissante ou présente des bugs, vous souhaitez installer une version plus moderne et libre comme Lineage OS (EN) qui remplace le très célébre Cyanogenmod. Pour réaliser cette opération, vous aurez besoin d'un logiciel permettant de flasher votre téléphone afin de lui permettre d'installer autre chose que la configuration d'origine proposée par Samsung ou un opérateur de téléphonie mobile. Il est possible d'utiliser Heimdall sous GNU/Linux ou MacOS© en alternative au fameux Odin, une des références sous Windows©

 Capture d'écran d'Heimdall

Vous trouverez une liste des appareils compatibles testés au 27/08/2019 en fin de cette page

Pour voir le résultat spectaculaire, regardez cette vidéo sur un Samsung S4 8-O

  • Disposer d'une connexion à Internet configurée et activée.
  • Avoir téléchargé dans le dossier Documents les fichiers adaptés à votre smartphone Samsung, un fichier de type recovery TWRP au format img.
Pour finaliser l'installation de votre smartphone il faudra aussi télécharger les fichiers adaptés à votre modèle de type custom rom lineage OS au format zip et la version la plus simplifiée de Google Apps appelée OpenGsApps pico.

Heimdall est intégré au dépôts d’Ubuntu depuis la version 14.04. Pour installer ce logiciel, il suffit d'installer les paquets heimdall-flash,heimdall-flash-frontend

Pour ceux qui utilisent le logiciel en ligne de commande, seul le paquet heimdall-flash est nécessaire.

Il est également disponible sur le site de l'auteur.

ATTENTION : il faut que votre répertoire dans lequel vous installez le package soit sans accents ou caractères "bizarres".
Créer par exemple un dossier rom_heimdall et n'UTILISEZ PAS le répertoire "Téléchargements" dans votre Dossier Personnel (car il contient des accents !)

Heimdall en ligne de commande

Pour utiliser Heimdall en ligne de commande. Connectez votre téléphone Samsung à votre PC Vous pouvez vérifier qu'il est bien detecté de la facon suivante :

sudo heimdall detect

Cela devrait renvoyez "Device detected", ensuite suivez la section suivant pour savoir comment flasher le téléphone.

Ou pour vérifier qu'il est bien reconnu via la commande

lsusb

Cela doit renvoyer une ligne ressemblant à ceci

Bus 001 Device 004: ID 04e8:685d Samsung Electronics Co., Ltd GT-I9100 Phone [Galaxy S II] (Download mode)

Heimdall en mode graphique

Pour lancer Heimdall dans une interface graphique, saisissez dans un terminal la commande suivante (en root) :

sudo heimdall-frontend

FIXME En cas de problème "X Error: BadAccess (attempt to access private resource denied)"

sudo QT_X11_NO_MITSHM=1 heimdall-frontend

L'interface graphique vous permettra ensuite de naviguer jusqu'aux fichiers pour votre smartphone.

Vous allez maintenant vérifier si votre téléphone mobile est bien reconnu par Heimdall, et pour ce faire, vous allez le connecter en mode "download" :

  1. Éteignez votre téléphone
  2. Au lieu de le rallumer comme à votre habitude:
    • Appuyez simultanément sur les touches: "Volume bas" (celle du côté gauche dans sa partie basse)), "Home" (milieu bas en façade) et "Power" (celle du côté droit). Les positions des touches étant ici donnée pour un téléphone de type Samsung Galaxy.
    • Sitôt qu'un écran apparaît ("Warning" en vert, une dizaine de lignes puis un triangle d'attention en jaune), relâchez les trois touches.
    • Maintenant, appuyez sur la touche "Volume haut" (celle du côté gauche dans sa partie haute).
  3. Connectez votre téléphone à l'ordinateur avec le câble USB.

Heimdall en ligne de commande

Dans le terminal, la commande :

lsusb

vous indique la présence de votre appareil.

Ensuite aller sur le site officiel de TWRP et recherchez l'image de votre téléphone : https://twrp.me/Devices/ .

Pour flasher le recovery TWRP dans votre appareil, utilisez la commande :

heimdall flash --RECOVERY twrp-3.0.2-0-jfltexx.img

(le nom du fichier sera à adapter comme dans celui-ci utilisé sur un Samsung S4 GI9505, twrp-3.0.2-0-jfltexx.img)

:!: Sur Samsung S3 Mini gt i8190, il faut écrire –Kernel2 au lieu de –RECOVERY

La procédure de flash est très rapide, au bout de 15 secondes, Heimdall redémarre le téléphone, il faut absoluement redémarrer en mode RECOVERY comme indiqué ci-dessous, sinon vous devez recommencer la procédure car le téléphone redémarre par défaut sur ses paramètres d'usine en effaçant votre travail.

Pour redémarrez en mode Recovery, maintenez appuyées en même temps les touches VOLUME HAUT + BOUTON du CENTRE + BOUTON POWER. Le téléphone redémarre alors sur TRWP et vous allez pouvoir installer la custom ROM Lineage OS et le paquet OpenGSapps depuis la carte micro SD introduite dans votre téléphone.

Heimdall en mode graphique

  1. Allez sur l'écran où se trouve 'heimdall-frontend':
    • dans le menu Advanced, cochez "Verbose output"
    • Allez ensuite sur l'onglet "utilities" et cliquez sur "detect".
      Dans la fenêtre du bas, vous devriez voir l'un des deux résultats suivants:
      • Device detected
      • Failed to detect … etc.

Si par malheur vous obtenez la seconde réponse, et si vous avez scrupuleusement suivi ce tutoriel, il semblerait que votre téléphone ne soit pas compatible avec Heimdall.

Pour savoir comment utiliser le logiciel en mode graphique, lisez le lien donné en bas de cette page.

Mise à jour du firmware en lignes de commandes

ATTENTION : il faut que votre répertoire dans lequel vous installez le package soit sans accents ou caractères "bizarres".
Créer par exemple un dossier rom_heimdall et n'UTILISEZ PAS le répertoire "Téléchargements" dans votre Dossier Personnel (car il contient des accents !)
Dans notre tutoriel, nous utilisons la ROM STOCK I9505XXUGNG8_I9505QXXGNH2_XEF du Galaxy S4 GT-I9505 mais elle fonctionne aussi avec la ROM STOCK I9505OXXHOB4_XEF par exemple :-).
Vous devez changer le nom du fichier en fonction de la ROM utilisée.
Veuillez utiliser uniquement une version propre à votre appareil.

Placez-vous dans le répertoire ou les fichiers ont été extraits et lancez la commande suivante :

  1. Décompresser le fichier I9505XXUGNG8_I9505QXXGNH2_XEF.zip
    unzip I9505XXUGNG8_I9505QXXGNH2_XEF.zip
  2. Retirer l’extension .md5 du fichier extrait afin d'obtenir un fichier .tar
    mv  I9505XXUGNG8_I9505QXXGNH2_I9505XXUGNG8_HOME.tar.md5  I9505XXUGNG8_I9505QXXGNH2_I9505XXUGNG8_HOME.tar
  3. Décompresser le fichier I9505XXUGNG8_I9505QXXGNH2_I9505XXUGNG8_HOME.tar
    tar xvf I9505XXUGNG8_I9505QXXGNH2_I9505XXUGNG8_HOME.tar
  4. Éteindre le téléphone.
  5. Sur votre téléphone, appuyez simultanément sur les touches Volume Bas + Home + Power puis ensuite Volume Haut pour redémarrer votre mobile en mode download.
  6. Connectez le téléphone (Il est parfois nécessaire de connecter le téléphone sur un port USB de la carte mère et non sur ceux en facade de la machine utilisée)
  7. Exécuter la commande suivantes en tant que root, sinon, ça ne fonctionnera pas :
    sudo heimdall flash --APNHLOS NON-HLOS.bin --ABOOT aboot.mbn --BOOT boot.img --HIDDEN hidden.img.ext4 --MDM modem.bin --RECOVERY recovery.img --RPM rpm.mbn --SBL2 sbl2.mbn --SBL3 sbl3.mbn --SYSTEM system.img.ext4 --TZ tz.mbn --CACHE cache.img.ext4
  8. En cas d'erreur, changez de port USB puis recommencez. :!: Utiliser le cable usb fournis avec le téléphone limitera le risque d'erreurs.
  9. Patientez pendant l'installation et ne touchez à rien jusqu'à ce que votre mobile redémarre.
  10. Voilà, c'est fini, d'ailleurs, le premier démarrage est assez long mais tant que vous voyez la diode bleue allumée, patientez, même si vous êtes au logo Samsung ;-).
En cas de blocage sur le logo Samsung ou de redémarrage en boucle, redémarrez en mode recovery avec la combinaison de touche Volume haut + Home + Power puis faites un Wipe factory reset + Wipe cache partition et redémarrez.
:!: Cette solution de secours effacera toutes les données contenues dans le téléphone mobile.

Rooter le téléphone

Commencez par récupérer la partition recovery modifiée. ChainFire en référence toute une liste pour bon nombre de terminaux : https://desktop.firmware.mobi/

Pour le Galaxy S4 GT-I9515 : CF-Auto-Root

Dans notre tutoriel, nous prenons comme cible le Galaxy S4 GT-I9505.
Dans notre cas le fichier CF-Auto-Root-jflte-jfltexx-gti9505.zip a été téléchargé.
Pensez à adapter les noms de fichiers suivant le terminal utilisé.

Placez vous dans le répertoire de téléchargement et lancez les commandes suivantes :

  1. Décompresser le fichier CF-Auto-Root-jflte-jfltexx-gti9505.zip
    unzip CF-Auto-Root-jflte-jfltexx-gti9505.zip
  2. Retirer l’extension .md5 du fichier extrait afin d'obtenir un fichier .tar
    mv CF-Auto-Root-jflte-jfltexx-gti9505.tar.md5 CF-Auto-Root-jflte-jfltexx-gti9505.tar
  3. Décompresser le fichier CF-Auto-Root-jflte-jfltexx-gti9505.tar
    tar xvf CF-Auto-Root-jflte-jfltexx-gti9505.tar
  4. Éteindre le téléphone.
  5. Sur votre téléphone, appuyez simultanément sur les touches Volume Bas + Home + Power puis ensuite Volume Haut pour redémarrer votre mobile en mode download.
  6. Connectez le téléphone et vérifiez que celui-ci est bien reconnu avec la commande :
    dmesg
  7. Exécuter la commande suivantes en tant que root pour le GT-I9505 :
    sudo heimdall flash --APNHLOS NON-HLOS.bin --ABOOT aboot.mbn --BOOT boot.img --HIDDEN hidden.img.ext4 --MDM modem.bin --RECOVERY recovery.img --CACHE cache.img.ext4

    Pour le GT-I9515 :

    sudo heimdall flash --RECOVERY recovery.img --CACHE cache.img.ext4
  8. Patientez pendant l'installation et ne touchez à rien jusqu'à ce que votre mobile redémarre.
  9. Voilà, c'est fini, vous noterez la présence d'une nouvelle application : SuperSU.

Pour vérifier le rootage et l'obtention de vos nouveaux droits root, procédez comme suit :

  1. Exécutez la commande :
    adb shell
  2. Passez en mode root :
    su
  3. Une requête de demande de droits super-utilisateur apparaît pour l'application ADB shell.
  4. Autorisez la demande et ouvrez l'application SuperSU.
  5. Ici, vous devriez voir la liste des applications profitant des droits root, dont votre ADB shell

Exemple : rooter le Samsung Galaxy A3

Pour rooter le Samsung Galaxy A3, il faut utiliser la commande présentée dans la section précédente. Cependant, lorsque je l'ai lancé, un bug a fait que je n'ai pu l'installer comme prévu, le téléchargement s'est arrêté au milieu. Si ça vous arrive, pas de panique, on va tout reprendre à zéro.

Premièrement, allez cherchez la dernières version de Heimdall et compilez là (la version que j'avais dans les dépôts n'était pas fonctionnelle, d'où le bug présenté juste au dessus. Vous pouvez essayer avec la version actuelle, mais en cas de bug pensez à essayer avec la dernière).

mkdir root_Galaxy_A3
cd root_Galaxy_A3
git clone https://gitlab.com/BenjaminDobell/Heimdall.git
cd Heimdall
mkdir build
cd build
sudo apt-get install build-essential cmake zlib1g-dev qt5-default libusb-1.0-0-dev libgl1-mesa-glx libgl1-mesa-dev
cmake ..
make
cd ../..

Ensuite, téléchargez les sources, par exemple à l'adresse suivante : http://androidmtk.com/root-samsung-galaxy-a3-sm-a300fu ou encore http://www.phonandroid.com/forum/root-de-votre-samsung-galaxy-alpha-a3-avec-cf-root-t110707.html (version SM-A300FU Europe dans mon cas) :

wget www.mediafire.com/download/48p33wikwo6z0uz/SM-A300FU-4.4.4.zip
unzip SM-A300FU-4.4.4.zip
tar xvf CF-Auto-Root-a3ulte-a3ultexx-sma300fu.tar

(Si vous le faites avec l'autre source, le principe est le même, il faut par contre renommer les fichiers .tar.md5 en .tar)

Il ne reste plus qu'à éteindre votre Samsung Galaxy A3, puis le redémarrer en mode "Download" au moyen des touches de "volume bas" + "Power (bouton à droite)" + "Home (gros bouton en façade)" qu'il faut presser quelques secondes. Branchez ensuite téléphone à l'ordinateur, et lancez la commande (attention, le fichier cache.img.ext4 est tout aussi important à charger que recovery.img !):

sudo ./Heimdall/build/bin/heimdall flash --RECOVERY recovery.img --CACHE cache.img.ext4 --no-reboot

Si vous avez une erreur de protocole qui n'arrive pas à s'initialiser, essayez de changer de port USB (je crois que quand une erreur arrive, le port USB ne fonctionne plus temporairement pour heimdall, d'où l'intérêt de changer de port dans ce cas. Il parait aussi que les ports USB 3.0 sont mals supportés, chez moi tous fonctionnent). Si tout se passe bien, au bout de quelques secondes la barre bleu est au maximum et heimdall indique que tout s'est bien déroulé. Vous devriez également noter un changement dans le texte en haut qui indique que vous n'avez plus la version officielle. Il ne reste plus qu'à redémarrer au moyen des touches "Volume bas" + "Power" à maintenir une dizaine de secondes. Un message devrait apparaître disant qu'il installe la SuperSu. Après quelques secondes, le téléphone redémarre normalement. Pour vérifier que tout s'est bien passé, vous devriez avoir l'application "SuperSu" qui est apparu dans vos applications disponibles. Enjoy !

Au 9 décembre 2014 Heimdall supporte les appareils suivants:

  • Captivate
  • Fascinate
  • Epic 4G
  • Infuse 4G
  • Mesmerize
  • Vibrant
  • Galaxy Note
  • Galaxy Note 2 (GT-N7100 & N7105 & N5110)
  • Galaxy Note 3 FIXME
  • Galaxy Note 4 FIXME
  • Galaxy S 4G
  • Galaxy S (GT-I9000 & GT-I9000T)
  • Galaxy S II (GT-I9100)
  • Galaxy S III (GT-I9300 & I9305)
  • Galaxy S4 (GT-I9505 & I9295)
  • Galaxy S5 (G900F), Téléphone reconnu et connecté mais flash impossible avec Heimdall 1.4.1 des dépôts. Il faut compiler la version 1.4.2 comme indiqué ici sans la modification de Udev et ça marche.
  • Galaxy S6 / Edge FIXME
  • Galaxy S7 / Edge FIXME
  • Galaxy Tab (7 and 10.1 pouces)
  • Galaxy Tab 2 (10.1 pouces - GT5110)
  • Galaxy Tab 3 FIXME
  • Galaxy Tab pro (10.5 pouces - TM-520)
  • Galaxy Trend Lite (GT-S7390G)
  • Galaxy Young (GT-S5360)
  • Galaxy Core Duos (GT-I8262)
  • Galaxy Alpha FIXME
  • Galaxy A3 2016
  • Galaxy A3 2017
  • Galaxy J5 2016 (J510FN), fonctionnel avec la version 1.4.2 (pas dans les dépôts, à compiler comme indiqué ici)

ERROR: Partition "APNHLOS" does not exist in the specified PIT.

  • Galaxy S 4G Mini (I9195)
  • Galaxy J3 2017
  • heimdall.txt
  • Dernière modification: Le 28/12/2019, 10:08
  • (modification externe)