{{tag>Xenial Trusty Android mtp}}
----
====== Heimdall : logiciel de mises à jour pour smartphone Samsung sous Android ======
Vous êtes utilisateur d'un smartphone Samsung sous [[wpfr>Android]] et votre version d'Android est vieillissante ou présente des bugs, vous souhaitez installer une version plus moderne et libre comme [[https://lineageos.org/|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(c) en alternative au fameux [[https://odindownload.com|Odin]], une des références sous Windows(c)\\
Vous trouverez une liste des appareils compatibles testés au 20/12/2020 [[#Liste des appareils compatibles|en fin de cette page]]
Pour voir le résultat spectaculaire, regardez cette [[https://www.youtube.com/watch?v=r9XNdUck6b8|vidéo]] sur un Samsung S4 8-O
===== Pré-requis =====
* Disposer des [[:sudo|droits d'administration]].
* 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
- Une rom type [[https://download.lineageos.org/|custom rom lineage OS]] au format zip
- Optionnel : Les applications propriétaires Google Apps [[https://opengapps.org/|OpenGsApps pico]].
=====Installation de Heimdall=====
Heimdall est intégré aux [[:dépôts]] d’Ubuntu depuis la version [[trusty|14.04]]. Pour installer ce logiciel, il suffit d'[[:tutoriel:comment_installer_un_paquet|installer les paquets]] **[[apt>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 [[https://glassechidna.com.au/heimdall/|le site de l'auteur]].
===== Lancement=====
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 détecté de la façon suivante :
sudo heimdall detect
Cela devrait renvoyer "Device detected", ensuite suivez la section suivante 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_shell|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.
===== Reconnaissance du téléphone mobile par le logiciel =====
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" :
- Éteignez votre téléphone
- 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).
- 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, allez 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//)
Le téléphone va redémarrer, si vous ne le souhaitez pas, il faut exécuter la commande :
heimdall flash --RECOVERY twrp-3.0.2-0-jfltexx.img --no-reboot
(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 absolument 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émarrer en mode Recovery, maintenez appuyé 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 ====
- 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.
===== Utilisations avancées =====
==== 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 :
- Décompresser le fichier **I9505XXUGNG8_I9505QXXGNH2_XEF.zip** unzip I9505XXUGNG8_I9505QXXGNH2_XEF.zip
- 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
- Décompresser le fichier **I9505XXUGNG8_I9505QXXGNH2_I9505XXUGNG8_HOME.tar** tar xvf I9505XXUGNG8_I9505QXXGNH2_I9505XXUGNG8_HOME.tar
- Éteindre le téléphone.
- 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**.
- 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)
- Exécuter la commande suivante 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 --MODEM 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
Les fichiers décompressés et l’instruction pour le flash peut être différent suivant le modèle du téléphone mobile.
Exemple pour une ROM STOCK d'un Samsung Galaxy S III(GT-I9300):
sudo heimdall flash --BOOTLOADER sboot.bin --TZSW tz.img --BOOT boot.img --RECOVERY recovery.img --RADIO modem.bin --CACHE cache.img --SYSTEM system.img --HIDDEN hidden.img --no-reboot
- En cas d'erreur, changez de port USB puis recommencez. :!: Utiliser le câble USB fourni avec le téléphone limitera le risque d'erreurs.
- Patientez pendant l'installation et ne touchez à rien jusqu'à ce que votre mobile redémarre.
- 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 : [[https://download.chainfire.eu/611/CF-Root/CF-Auto-Root/CF-Auto-Root-jfvelte-jfveltexx-gti9515.zip|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 :
- Décompresser le fichier **CF-Auto-Root-jflte-jfltexx-gti9505.zip** unzip CF-Auto-Root-jflte-jfltexx-gti9505.zip
- 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
- Décompresser le fichier **CF-Auto-Root-jflte-jfltexx-gti9505.tar** tar xvf CF-Auto-Root-jflte-jfltexx-gti9505.tar
- Éteindre le téléphone.
- 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**.
- Connectez le téléphone et vérifiez que celui-ci est bien reconnu avec la commande : dmesg
- Exécuter la commande suivante 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
- Patientez pendant l'installation et ne touchez à rien jusqu'à ce que votre mobile redémarre.
- 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 :
- Exécutez la commande : adb shell
- Passez en mode root : su
- Une requête de demande de droits super-utilisateur apparaît pour l'application **ADB shell**.
- Autorisez la demande et ouvrez l'application **SuperSU**.
- 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ère 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 : https://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 mal supportés, chez moi tous fonctionnent). Si tout se passe bien, au bout de quelques secondes la barre bleue 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 !
===== Liste des appareils compatibles =====
Au 20 décembre 2020 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é [[https://tribaal.io/flashing-cyanogenmod-on-a-samsung-s5-from-ubuntu.html|ici]] sans la modification de Udev et ça marche.
* Galaxy S5-mini (G800F)
* Galaxy S6 / Edge FIXME
* 20/12/20 : Galaxy S7 / Edge (G935F), Téléphone reconnu et connecté mais flash impossible malgré Heimdall 1.4.2 des dépôts ou compilé comme ci-dessus, le téléphone a un verrou logiciel noté "blocked by FRP lock". Une sauvegarde des données est indispensable car le cryptage des données empêchera le démarrage normal de Lineage OS même après flash. Il faut déverrouiller ce verrou avec le mode développeurs USB à activer avant de le mettre en mode download. Pour cela, dans le téléphone avec la rom d'origine, paramètres/à propos du téléphone/ligne kernel, tapez 7 fois de suite, le mode développeurs s'active. Revenez sur Paramètres/à propos du téléphone/options dévelopeurs/activez OEM et USB. Éteindre le téléphone avant le redémarrage en mode download. Téléphone pleinement fonctionnel et ultra-rapide sous Lineage OS 17.1 et Android 10 Q :-D
* Galaxy Tab (7 and 10.1 pouces)
* Galaxy Tab 2 (10.1 pouces - GT5110)
* Galaxy Tab 3 10.1 (GT-P52xx)
* 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é [[https://tribaal.io/flashing-cyanogenmod-on-a-samsung-s5-from-ubuntu.html|ici]])
===== Liste des appareils incompatibles =====
//ERROR: Partition "APNHLOS" does not exist in the specified PIT.//
* Galaxy S 4G Mini (I9195)
* Galaxy J3 2017
===== Pour en savoir plus sur Internet =====
* [[http://www.androidpit.fr/c-est-quoi-rom-custom-android|Qu'est ce qu'une rom custom pour un Smartphone Android ?]] (FR)
* [[https://twrp.me/|Télécharger la dernière version du recovery TWRP pour votre smartphone Samsung]] (EN)
* [[https://download.lineageos.org/|Télécharger la dernière version d'Android Lineage OS pour votre smartphone Samsung]] (EN)
* [[https://opengapps.org/|Télécharger le bon paquet Open GSapps pour son smartphone Samsung]] (EN)
* [[https://ubuntuforums.org/showthread.php?t=2326450|Un guide ultra-complet pour tout réaliser dans votre martphone Samsung sur le site Ubuntu officiel]] (EN)
* [[https://linuxfr.org/news/installer-lineageos-sur-son-appareil-android|article exlicatif de la migration,par Cyprien sur linuxfr]]
* [[https://davideddu.org/blog/posts/how-to-flash-a-recovery-image-using-heimdall/|Utiliser Heimdall en mode graphique]] (EN)
* [[http://www.rootupdate.com/2017/01/install-lineage-os-rom-in-Samsung-galaxy-s4.html|Installer Lineage OS sur un Samsung Galaxy S4]] (EN)
* [[http://rootunroot.com/blog/what-is-lineageos-and-why-you-should-install-it-in-your-phone.html|
Qu'est-ce que LineageOS? et pourquoi vous devriez l'installer dans votre téléphone]] (EN)
* [[https://www.youtube.com/watch?v=Jv538rOL5p0|Utilisation d'Heimdall en vidéo]] (EN)
----
//Contributeurs : // [[utilisateurs:Judibet]], [[utilisateurs:laurentb]], Anawel