Table des matières

Installation de LineageOS sur Honor 5x

Discussion

Le développement de CyanogenMod (CM) a été arrêté. LineageOS en prend la suite. Techniquement parlant, il en est la continuation1).

Pourquoi ?

Les arguments en faveur du remplacement du système propriétaire d'origine par un système open source sont les mêmes que pour un ordi. LineageOS présente les mêmes avantages que ceux que présentait CM, en son temps.

Pour les personnes ayant déjà installé CM, il est impératif de le remplacer par LineagesOS. Pour des raisons élémentaires de sécurité, on ne peut pas se reposer sur un système qui n'est plus maintenu! De plus, LineageOS permettra de bénéficier de versions récentes d'Android.

Migration de CM à LineageOS

Certains androphones bénéficient d'une procédure de migration de CM à LineageOS qui permet de changer le système sans perdre ses données2). Ce n'est pas le cas du Honor 5x. On doit donc réaliser une installation complète qui entraînera l'effacement de toutes les données internes.

Préparation de l'installation

La cas d'utilisation décrit ci-après est celui d'une installation de LineageOS en remplacement de la dernière mise à jour disponible de CM13 disponible pour le Honor 5x.

On peut tout faire depuis son androphone mais nous allons partir du principe qu'on utilise un ordi.

  1. Télécharger la dernière version3) officielle de LineageOS pour Honor 5x (≈ 480 Mo)
  2. Télécharger l'extension SU4) correspondant à la version du système installée
  3. Télécharger la dernière version d'OpenGapps pour la version de LineageOS choisie à l'étape précédente5).
  4. Vérifier les sommes de contrôle (md5) des fichiers
  5. Copier les fichiers sur la carte SD (Ordi → SD)
  6. Vérifier les md5 des fichiers copiés sur la carte (voir alternatives)
    1. Copier les fichiers en sens inverse (SD → Ordi)
    2. Vérifier les md5 des fichiers ainsi recopiés
À la différence de CyanogenMod, LineageOS ne s'utilise pas conjointement à l'app SuperSU. Il faut utiliser l'extension système SU indiquée précédemment.L'installation de SuperSU risque d'entraîner des dysfonctionnement 6).

Vérification des md5 sur la carte SD

La vérification des md5 peut s'effectuer directement sur l'androphone.

Vérification manuelle

Si votre androphone est équipé d'une App (par exemple ES File Explorer) permettant de calculer la somme de contrôle (md5) des fichier copiés, Cette option est intéressante si l'on télécharge directement sur l'androphone, sans passer par un ordi.

Vérification automatique

Une fois le fichier téléchargé sur l'ordi, on peut enregistrer la somme de contrôle dans un fichier texte. Dans un terminal, on tapera la commande suivante :

$ md5sum mon_fichier_téléchargé.zip > mon_fichier_téléchargé.zip.md5

On procède ainsi pour les trois fichiers téléchargés. On dispose alors de trois fichiers zip et de trois fichiers md5. On copie ces six fichiers sur la carte SD.

Lorsqu'on demandera au Recovery d'installer un fichier zip présent sur la carte SD, il trouvera lui-même le fichier md5 associé et vérifiera automatiquement que la somme de contrôle est correcte, c'est-à-dire que le fichier n'a pas été altéré lors de l'enregistrement sur la carte SD.

Installation

Pré-requis

Les pré-requis sont les mêmes que pour installer n'importe quelle ROM custom sur le Honor 5x :

Procédure

Effectuer une sauvegarde sur la carte SD7) des applications et données (Titanium Backup). Cette sauvegarde permet de restaurer les données dans le nouveau système.
  1. Démarrer le Honor 5x en mode recovery
    1. Faire une sauvegarde du système. Cette sauvegarde permet une restauration intégrale en cas d'échec de d'installation.
    2. Faire une remise à zéro des réglages du système : Wipe (le wipe proposé par défaut par TWRP)
    3. Installer la ROM
    4. Installer les Gapps
    5. Installer l'extension SU
  2. Redémarrer le Honor 5x
  3. Activer le mode Développeur8)
  4. Entrer dans Paramètres > Options pour les développeurs
    1. activer le mode Root (Root access)
    2. autoriser le debug Android (ex-debug USB)
  5. Dans les paramètres de sécurité
    1. autoriser les sources inconnues (Titanium Backup restore)

Mise à jour

Le premier [re]démarrage après une mise à jour est inhabituellement long. Ne pas s'alarmer.

Mise à jour OTA

LineageOS signale automatiquement l'existence de mises à jour que l'on peut télécharger via le réseau9). Vu la taille des fichiers à télécharger, faites la mise jour à travers une connexion WiFi. Ces mises à jour apportent des améliorations et des correctifs à la version déjà installée. Elles ne permettent pas de passer de la version 13 (Android 6) à la version 14 (Android 7).

Lorsqu'une mise à jour est signalée, il suffit de la lancer. Tout se fera automatiquement jusqu'au moment où le Recovery présentera un écran permettant de rebooter l'androphone.

À la différence de CM, ces mises à jour ne demandent pas la réinstallation de SU.

Mise à jour manuelle

À la date de la rédaction, je n'ai réalisé aucune mise à jour manuelle. Dans ce cas, le surcoût de reflashage de l'extension SU étant minime j'aurais tendance à l'effectuer…

Montée de version de LineageOS 14.1 vers 15.1 (upgrade)

sources :

Avertissements

La marche à suivre diffère selon que vous utilisiez ou non les Open GApps10), sur votre version actuelle de LineageOS.
Cette procédure a été validée pour une montée de version de Lineage0S 14.1 vers 15.1, sur un Honor-5X KIW-21 utilisant les Open Gapps (1er janvier 2019).
Utilisant le recovery TWRP3.0.2-0, l'installation de la mise à jour officielle, téléchargée depuis le serveur de LineageOS échoue11). J'ai utilisé une solution de contournement qui fonctionne parfaitement12).
Comme c'était à craindre, le contournement évoqué dans la note précédente ne fonctionne que pour la mise à jour manuelle. Les mises à jour OTA suivantes échoueront systématiquement. Le passage à une version plus évoluée de TWRP13) ou d'un recovery permettant une exécution correcte du script d'installation natif est donc indispensable. Je recommande donc de commencer par ça. La procédure décrite ci-dessous restera valable. Il suffira de sauter les étapes concernant le patch de la mise à jour.

L'application de mise à jour OTA signale la montée de version mais ne permet pas de l'effectuer. Il faut procéder à une installation manuelle. Tout peut se faire depuis votre androphone mais il est préférable14) d'utiliser un ordi relié à l'androphone.

Procédure

Cette procédure n'a pas conduit à un système durablement stable. L'upgrade de LOS 14 à LOS 15 kiwi s'est avéré être un échec cuisant. Une procédure de première installation a été nécessaire pour obtenir un système stable.

Pour ce type d'opération, il est vivement conseillé de lire l'intégralité de la prcédure avant de commencer à l'éxécuter.

  1. sur le Honor 5X, faire des captures d'écran de l'écran d'accueil et des écrans satellites
  2. sur l'ordi
    1. télécharger :
    2. vérifier les sommes de contrôles des trois fichiers téléchargés (ne jamais sauter cette étape !)
  3. patcher la sauvegarde (contournement des limites de TWRP 3.0.2-0)
    1. dezipper la mise à jour de LineageOS dans un répertoire vierge, créé à cet effet
    2. éditer le fichier META-INF/com/google/android/updater-script15)
    3. supprimer les deux premières lignes, celles qui font appel à la fonction assert
    4. enregistrer le fichier modifié en écrasant le fichier d'origine
    5. recomposez l'archive zip en respectant la structure du zip initial (ne pas enregistrer la racine !)
    6. mettre de côté le zip initial et renommer le zip modifié du même nom
  4. générer les sommes de contrôle md5 pour les fichiers de mise à jour de LineageOS(modifié) et su add-on
  5. si besoin, charger le Honor 5X à 60%
  6. relier le Honor 5X à l'ordi par un câble USB
  7. effectuer une sauvegarde intégrale des vos applications et de vos données (Titanium Backup)
  8. activer le Débogage Android : Paramètres > Options pour les développeurs > Débogage Android
  9. vérifier la connectivité ordi-androphone (adb devices)
  10. depuis l'ordi, transférer (adb push vers /sdcard/) vers le Honor 5X,les deux fichiers précédemment téléchargés et le fichier patché ainsi que les trois fichiers de somme de contrôle md5
    • les fichiers se trouvent alors à la racine de la mémoire interne du Honor 5x. Vous pouvez le vérifier à l'aide du navigateur de fichiers
      • par anticipation de ce qui pourrait se produire dans un futur plus ou moins éloigné, copier ces fichiers sur la carte SD, via le navigateur de fichier de l'androphone
  11. déconnecter le câble USB, éteindre votre Honor 5X
  12. le démarrer en mode recovery (Vol+ puis simultanément Power)
    1. faire une sauvegarde intégrale de votre système sur la carte SD (Backup)
    2. installer (Install) dans l'ordre suivant :
      1. la mise à jour de LineageOS
      2. les Open GApps
      3. le su ad-on
    3. redémarrer le Honor 5X sur son nouveau système (Reboot > System)

Traces d'exécution

Les traces d'exécution donnent une idée des temps de transfert. Commencer par un md5 permet de s'assurer que le transfert est instantané.

$ adb devices
List of devices attached 
IMTP1F2JDYJK02051        device
$adb push lineage-15.1-20190101-nightly-kiwi-signed.zip.md5 /sdcard/
20 KB/s (80 bytes in 0.003s)
$ adb push lineage-15.1-20190101-nightly-kiwi-signed.zip /sdcard/
6067 KB/s (508181146 bytes in 81.791s)
[...]
$ adb push addonsu-15.1-arm64-signed.zip /sdcard/
5451 KB/s (1019556 bytes in 0.182s)
$ adb push addonsu-15.1-arm64-signed.zip.md5 /sdcard/
7 KB/s (64 bytes in 0.008s)

Premiers constats post-installation

Bilan après deux mois d'utilisation

Instabilité

Après la première mise à jour de montée de version (décrite ci-avant) satisfaisante, mon Honor 5X a mal supporté la première mise à jour :-( Il restait utilisable mais avec une forte instabilité après chaque redémarrage (freeze, reboot intempestif, apps bloquées…).

J'ai du me résoudre à effectuer une première installation qui a enfin donné un système stable et acceptant parfaitement les mises à jours OTA (après passage en TWRP 3.2.3.0). Ce type d'installation entraîne l'effacement de toutes les données stockées dans la mémoire de l'androphone, d'où l'importance de les sauvegarder.

Avantages

Aucun !!! Les fonctionnalités d'économie d'énergie intégrées à Oréo n'atteignent pas l'efficacité de Greenify. On perd un lanceur d'application qui permettait de construire des écrans complémentaires à gauche et droite de l'écran d'accueil16).

L'unique “bénéfice” est de disposer de mises à jour régulières. Le passage à LOS 15 n'est pas un choix mais une contrainte puisque LOS 14 n'est plus maintenue.

Régressions

Pour en avoir le cœur net, j'ai rejoué une première installation de LOS 1418) et tout refonctionnait parfaitement. C'est donc bien LOS 15 qui est merdique sur Honor 5X !

Conclusion

Une mise à jour dont je me serais bien passée : aucun avantage fonctionnel et une pile d'emmerdements.

Épilogue

Après encore quelques mois d'utilisation et de mises à jour regulières, certaines fonctionnalités sont revenues :

Je n'ai pas tenté de réinstaller les autres application défaillantes sous LOS 15.1

Upgrade de LineageOS 15.1 vers 16.0

Préparation

Téléchargement, contrôles et génération de signatures

Sauvegardes

Installation

La procédure officielle pour le Honor 5X (kiwi) a été suivie avec succès, après y avoir apporté quelques adaptations. L'androphone de test utilisant les GApps sous LOS 15.1, il en a été tenu compte, comme l'indique la procédure.

Principe

Cette procédure utilise une connexion par câble USB entre l'ordi et l'androphone. En théorie, une fois les deux appareils connectés, l'installation s'effectue exclusivement depuis l'ordi (en ligne de commande, depuis un terminal). On n'est pas censées toucher à l'androphone. Les fichiers à installer ayant été récupérés sur l'ordi, on n'aura pas besoin de les recopier sur l'androphone, ni sur la mémoire interne, ni sur la carte-SD. Les commandes d'installation lancées depuis l'ordi effectuent à la fois le transfert et le flashage du système et des applications.

Prérequis

source : What is ADB Sideload and how can I use it ? (twrp.me) (en)

Le prérequis absolu est donc de disposer d'une connexion ADB19) fiable et fonctionnelle entre l'ordi et l'androphone. Cette connexion peut emprunter plusieurs canaux. Le canal le mieux documenté et le plus couramment utilisé est une liaison par câble USB. C'est celui qui a été utilisé dans le cas décrit ci-après.

L'établissement d'une connexion ordi-androphone a déjà été décris dans une fiche précédente.

De plus, il faut vérifier que la version de l'application adb installée sur l'ordi est au minimum 1.0.32 :

$ adb version
Android Debug Bridge version 1.0.32

Si tel n'est pas le cas, la procédure décrite ici n'est pas applicable.

Adaptations

Dans le cas relaté, la procédure officielle n'a pas pu être déroulée telle quelle. En effet, elle suppose :

  1. qu'il est possible, via ADB, de forcer le redémarrage de l'androphone en mode sideload,
  2. que l'androphone reste dans en mode sideload après chaque installation-flashage.

Le fait que la première condition ne soit pas remplie20) s'observe dès la toute première commande de la procédure :

$ adb reboot sideload
'adb root' is required for 'adb reboot sideload'.

Dans le cas testé, les deux conditions n'étaient pas vérifiées. Les configurations étaient les suivantes :

En conséquence, l'androphone a dû être placé en mode sideload depuis TWRP, avant chaque commande d'installation.

L'essentiel du mode d'installation a cependant été préservé dans la mesure où les commandes d'installation qui ont été utilisées (adb sideload <fichier>) sont exactement celles que préconise la procédure officielle21)

Procédure

  1. préparer l'androphone
    1. débrancher tout cable USB
    2. éteindre
    3. redémarrer en mode recovery (Vol+ et Power simultanément)
    4. activer le mode sideload
  2. relier l'ordi et l'androphone par un câble USB
  3. sur l'ordi
    1. vérfier la connexion
    2. installer LOS 16
      • remettre l'androphone en mode sideload
    3. installer les GApps
      • remettre l'androphone en mode sideload
    4. installer addonsu
    5. redémarrer l'androphone

Avant chaque commande d'installation, on s'assure que l'androphone est bien en mode sideload

$ adb devices
List of devices attached 
IMTP1F2JDYJK02051	sideload

le mot sideload atteste que l'androphone est bien mon de sideload22) et non en mode recovery.

Ce qui donne la séquence d'opérations suivante (les lignes commençant par “@” désignent des actions sur l'androphone, les lignes commençant par “$” désignent des commandes saisies sur l'ordi) :

@ Advanced > ADB sideload > swipe
$ adb devices
$ adb sideload lineage-16.0-20190712-nightly-kiwi-signed.zip
@ Back > Advanced > ADB sideload > swipe
$ adb devices
$ adb sideload open_gapps-arm64-9.0-nano-20190712.zip
@ Back > Advanced > ADB sideload > swipe
$ adb devices
$ adb sideload addonsu-16.0-arm64-signed.zip
$ adb reboot                       

Le premier redémarrage est toujours long…

Premières impressions

Toutes les données applicatives, les comptes et autres configurations des applications sont conservées. Seul l'écran d'accueil (et les écrans satellites) se retrouve fatalement en vrac, d'où l'intérêt d'avoir fait des captures d'écran.

À première vue, aucune des applications tierces installées n'a cessé de fonctionner. TitaniumBackup répond présent et OTG n'a pas disparu. La mise à jour OTA fonctionne.

L'affichage des applications est plus lent sans qu'il soit possible de dire si c'est dû aux effets graphiques inutiles et pénibles ou à un ralentissement plus profond. Une fois l'application chargée, la réactivité semble identique à celle observée sous LOS 15.1. Heureusement, on n'observe pas le ralentissement très net qui avait accompagné le passage de LOS 14 à 15.

LOS 15 n'a été qu'une version de transition qui aura vécu à peine quelques mois. Elle ne m'aura laissé aucun bon souvenir, bien que Pie annonce quelques améliorations régressions, tel l'affichage de l'historique en mode exclusif “pas trop d'informations, il me reste 3 neurones”…

Upgrade de LineageOS 16.1 vers 17.1

Si la réception FM est une fonctionnalité nécessaire, ne pas effectuer cette mise à jour car elle entraîne sa disparition.

Cette mise à jour est censée conserver les données et les comptes enregistrés sur le Honor 5X. C'est effectivement ce que j'ai constaté après une installation qui s'est déroulée sans problème. Comme toujours avant ce type d'opération, il est plus que recommandé d'effectuer une sauvegarde aussi ample que possible.

Mise à jour officielle

Tant que l'information est en ligne sur le site de LineageOS, je reproduis et documente les informations disponibles.

Sources :

Prérequis et limites

La procédure officielle suppose que la mise à jour se fait en utilisant la dernière version du recovery de LineageOS pour Honor 5X. S'il n'est pas déjà installé, la procédure officielle stipule qu'il faut l'installer23).

La procédure de mise à jour24)ne traite pas du rootage du système. C'est d'autant plus regrettable que la technique utilisée jusqu'ici (LOS 16) est inopérante25).

Se procurer LOS 17 pour kiwi

Le Honor 5X n'étant plus maintenu par LineageOS, aucun paquetage officiel d'installation n'est proposé au téléchargement. On peut toutefois se procurer un paquetage de deux manières :

Paquetages complémentaires (add-ons)

Si l'on souhaite utiliser des paquetages complémentaires (par exemple, les Google Apps) il est impératif de se les procurer avant de procéder à la mise à jour de LOS.

Préparation

Procédure officielle

sur le Honor 5X : 
Paramètres > Système > Options avancées > Options pour les développeurs > Débogage Android : oui
Paramètres > Système > Options avancées > Options pour les développeurs > Accès root : ADB uniquement

Sur l'ordi :
adb -d root
adb -d reboot sideload
adb -d sideload /path/to/zip (inserting the path to your LineageOS package).

!!! NE PAS redémarrer le Honor 5X !!!

Sur le Honor 5X :
Apply Update > Apply from ADB

Sur l'ordi :
adb -d sideload /path/to/zip those packages in sequence.

Once you have installed everything successfully, click the back arrow in the top left of the screen, then “Reboot system now”

Mise à jour effective

Je décris ici la procédure que j'ai suivie.

La version de TWRP installée étant la dernière produite pour le Honor 5X (3.4.0.0), je ne change pas de recovery.

OpenGapps signalant des instabilités sous Android 10 et ayant atteint une taille colossale (289 Mio contre 168 Mio lors de l'installation de LOS-16), je bascule sur MinTheGapps (127 Mio).

Je choisis d'installer Magisk suivant la procédure “périmée” (via TWRP + run) qui semble la plus sûre (déjà validé sur le Poco F3 et recommandée par ailleurs

Procédure utilisée

Le recovery installé étant TWRP, il est impossible de suivre scrupuleusement la procédure officielle. Les principes fondamentaux sont néanmoins respectés. Dans la procédure ci-après, le préfixe de chaque action précise sur quoi on agit :

@ Paramètres > Système > Options avancées > Options pour les développeurs > Débogage Android = coché
@ Paramètres > Système > Options avancées > Options pour les développeurs > Accès root > ADB et applications

$ adb devices         // pour vérifier que ça fonctionne
$ adb reboot recovery    // adb sous TWRP tourne automatiquement sous root 
$ adb reboot sideload      // attendre l'écran de sideload sur l'androphone
$ adb sideload OS/lineage-17.1-20210311-nightly-kiwi-signed.zip
$ adb reboot sideload      // attendre l'écran de sideload sur l'androphone
$ adb sideload OpenGapps/MindTheGapps-10.0.0-arm64-20220224_161733.zip
$ adb reboot sideload      // attendre l'écran de sideload sur l'androphone
$ adb sideload Magisk/Magisk-v27.0.zip

@ Reboot > System
@ Magisk  >>> se laisser guider par Magisk pour terminer l'installation et le rootage

Premiers constats

La radio-FM faisant partie du cahier des charges de cet androphone, j'arrête les tests.

Non testé

L'androphone n'étant pas équipé d'une carte SIM, les fonctionnalités suivantes n'ont pas été testées :

Mais aussi :

Restauration LOS-16

Ayant effectué une sauvegarde complète préalable, sous TWRP, il m'a suffit de la restaurer pour retrouver un Honor 5X exactement dans l'état où il était avant la montée de version en LOS-17 : système, applis32), données, réglages ! :-)

1)
Fork.
2)
EXPERIMENTAL build.
3)
Au moment de la rédaction, il s'agissait de la version 14.1 qui incorpore Android 7.1.1 Nougat.
4)
Par défaut, LineageOS est rootable mais n'est pas rooté. Cette extension active le mode rooté. Une extension similaire permet de dé-rooté.
5)
Au moment de la rédaction, pour Honor 5x : arm64, 7.1, nano.
6)
Allant jusqu'à rendre le démarrage impossible (boot loop) !
7)
Alternativement, on peut le faire sur l'ordi, via l'application adb et un câble USB.
8)
Tapoter 7 fois sur ne n° de build.
9)
“Over The Air”, d'où le sigle “OTA”.
10)
Version open source des Google Apps.
11)
Le script d'installation intégré dans la mise à jour vérifie que la mise à jour est bien celle qui convient pour le Honor 5X (kiwi). Or TWRP n'est pas capable de fournir au script le type d'appareil. Le script compare donc la chaîne de caractères “kiwi” à “” (chaîne vide) et, concluant que ce n'est pas le même appareil, bloque proprement l'installation, sans créer le moindre dommage.
12)
Je n'ai pas pris le temps d'analyser plus avant les solutions plus élégantes. Je ne serais très surprise que le problème persiste si on flashe une version plus récente de TWRP ou le recovery maison de LineageOS.
13)
Au 2 janvier 2019, la dernière version est la 3.2.3-0.
14)
Si vous êtes à l'aise pour faire toutes les opérations nécessaires avec votre seul androphone, vous savez ce que vous faites ;-)
15)
Les amatrices de sed feront cette opération et les deux suivantes d'un seul coup, avec une fiabilité accrue : sed -i '/assert/d' ./META-INF/com/google/android/updater-script
16)
Quel débile à pu penser que c'était une amélioration ergonomique ?
17)
Certains évoquent une version buggée de libusb, conservée près de 3 mois après la sortie de LOS 15…
18)
Suivant la même procédure officielle que pour LOS 15.
19)
Android Debug Bridge.
20)
Il faut préciser que dans les “Options pour les développeurs”, l'accès root est autorisé pour ADB, sinon ce ne serait pas drôle…
21)
Le mode d'installation est donc validé même si la procédure complète a été adaptée.
22)
Si ce n'est pas le cas, inutile d'aller plus loin, l'installation ne fonctionnera pas.
23)
Comme on le ferait pour une première installation de LOS.
24)
Pas plus que la procédure d'installation :-\
25)
En raison de l'évolution du schéma de sécurité d'Android 10 qui est au cœur de LOS 17.
26)
Que l'on aura pris la précaution de télécharger avant qu'il disparaisse ! (Par exemple : lineage-17.1-20210311-nightly-kiwi-signed.zip
27)
Que l'on trouvera généralement sur une forum fiable, venant d'une contributrice fiable.
28)
Le câble d'origine est un bon candidat, s'il a pas connu de déboires…
29)
Magisk-v27.0.apk renommé.
30)
L'application (préinstallée) conserve la mémoire des stations détectées sous LOS-16 mais n'accède plus au récepteur FM.
31)
Incluses dans LOS-17.
32)
Y compris la radio-FM, balayant l'hypothèse d'une défaillance ou d'un écrasement du firmware. C'est bien LOS-17 qui est défaillant.