Libérer son portable (acte 4) passer à LineageOS

Après l’acte 3 créer son propre cloud, l’acte 2 utiliser un catalogue d’applications alternatif et l’acte 1 passer root voici l’étape ultime qui consiste à se libérer totalement de l’univers Google et passer sur un OS totalement open source, également basé sur android, à savoir lineageOS. Le mobile cobaye sera le Motorola Moto E4 plus (modèle XT1771 double carte SIM).

Rien n’est fait pour faciliter les choses et on risque à chaque étape de bloquer définitivement le portable, sans compter qu’on perd la garantie de fait…

Première étape, débloquer le bootloader, le chargeur de boot est un bout de code qui permet de lancer le portable, une sortie de BIOS en quelque sorte. Ce code initialise le matériel et charge le noyau, la mémoire et les autres process, le tout est contenu dans une mémoire permanente qu’on appelle ROM (read only memory). Tout portable est doté d’une ROM officielle (ou stock ROM). Le but de l’opération est donc de remplacer la ROM officielle par une ROM personnalisée (custom ROM) contenant LineageOS. Revenons au bootloader, il est habituellement verrouillé, or il est nécessaire de devoir le déverrouiller pour pouvoir installer une custom ROM, dans le jargon on parle de flasher une nouvelle ROM. On installera tout d’abord des outils de développement Android permettant d’envoyer des commandes au mobile via un PC qu’on trouvera par ici. J’ai évidemment choisi la version pour linux qui propose un ensemble d’outils dans un répertoire platform-tools.

Sur le portable, il est nécessaire d’activer le débogage USB dans les options de développement. Pour cela, dans la section À propos du téléphone dans les paramètres de l’appareil, il faut taper sept fois sur la zone Numéro de build. Au terme des sept appuis, un message vous indique que vous êtes devenu développeur. L’option Options de développement apparaît de nouveau dans les paramétrages Android. On peut alors activer le Débogage USB et Déverrouillage OEM. En branchant alors le mobile sous linux voilà ce que journalctl -f nous sort

[pastacode lang= »bash » manual= »avril%2008%2012%3A06%3A46%20predator.kervao.fr%20kernel%3A%20usb%203-9%3A%20New%20USB%20device%20found%2C%20idVendor%3D22b8%2C%20idProduct%3D2e82%0Aavril%2008%2012%3A06%3A46%20predator.kervao.fr%20kernel%3A%20usb%203-9%3A%20New%20USB%20device%20strings%3A%20Mfr%3D3%2C%20Product%3D4%2C%20SerialNumber%3D5%0Aavril%2008%2012%3A06%3A46%20predator.kervao.fr%20kernel%3A%20usb%203-9%3A%20Product%3A%20Moto%20E%20(4)%20Plus%0Aavril%2008%2012%3A06%3A46%20predator.kervao.fr%20kernel%3A%20usb%203-9%3A%20Manufacturer%3A%20MediaTek%0Aavril%2008%2012%3A06%3A46%20predator.kervao.fr%20kernel%3A%20usb%203-9%3A%20SerialNumber%3A%20ZH33C2DPQC%0Aavril%2008%2012%3A08%3A49%20predator.kervao.fr%20kernel%3A%20usb%203-9%3A%20USB%20disconnect%2C%20device%20number%2014%0Aavril%2008%2012%3A08%3A50%20predator.kervao.fr%20kernel%3A%20usb%203-9%3A%20new%20high-speed%20USB%20device%20number%2015%20using%20xhci_hcd%0Aavril%2008%2012%3A08%3A50%20predator.kervao.fr%20kernel%3A%20usb%203-9%3A%20New%20USB%20device%20found%2C%20idVendor%3D22b8%2C%20idProduct%3D2e76%0Aavril%2008%2012%3A08%3A50%20predator.kervao.fr%20kernel%3A%20usb%203-9%3A%20New%20USB%20device%20strings%3A%20Mfr%3D3%2C%20Product%3D4%2C%20SerialNumber%3D5%0Aavril%2008%2012%3A08%3A50%20predator.kervao.fr%20kernel%3A%20usb%203-9%3A%20Product%3A%20Moto%20E%20(4)%20Plus%0Aavril%2008%2012%3A08%3A50%20predator.kervao.fr%20kernel%3A%20usb%203-9%3A%20Manufacturer%3A%20MediaTek%0Aavril%2008%2012%3A08%3A50%20predator.kervao.fr%20kernel%3A%20usb%203-9%3A%20SerialNumber%3A%20ZH33C2DPQC » message= » » highlight= » » provider= »manual »/]

en se plaçant dans le répertoire platform-tools en tapant adb devices voilà ce que j’obtiens

[pastacode lang= »bash » manual= »List%20of%20devices%20attached%0A*%20daemon%20not%20running%3B%20starting%20now%20at%20tcp%3A5037%0A*%20daemon%20started%20successfully%0AZH33C2DPQC%20%20%20%20%20%20unauthorized » message= » » highlight= » » provider= »manual »/]

sur le mobile, il y a une fenêtre d’autorisation de connexion qui apparaît, on clique sur Autoriser. Avant d’aller plus loin on va sauvegarder la ROM officielle, on ne sait jamais !

Il existe Miracle Box qui est un outil permettant de sauvegarder les stocks ROM, il fonctionne avec un dongle, on peut trouver néanmoins sur le net une version 2.27a fonctionnant sans (pas sûr que ce soit en toute légalité !). Le voilà en fonctionnement sous windows.

malheureusement bien que le portable soit reconnu proprement (vue à gauche dans les ports COM), Miracle Box n’a jamais reconnu le portable. J’ai donc tout simplement utilisé l’outil officiel de Lenovo de sauvegarde qu’on trouvera par là et qui fonctionne lui aussi sous windows.

j’ai donc pu sauvegarder une stock ROM au cas où les choses tournent mal ou que je souhaite revenir en arrière.  Attention ça ne sauvegarde que le système, il faudra en parallèle sauvegarder toutes les données personnelles (contacts & co).

Maintenant que nous avons assuré nos arrières, nous allons rebooter le mobile en mode fastboot qui est le mode permettant de déverrouiller le bootloader et de flasher les ROM. On revient dans notre shell sous linux sous platform-tools et on tape adb reboot bootloader. Le mobile reboote est à l’écran on voit un =>FASTBOOT mode …

Dans le shell sous linux en tapant fastboot devices on peut constater que le mobile est bien connecté

[pastacode lang= »bash » manual= »ZH33C2DPQC%20fastboot » message= » » highlight= » » provider= »manual »/]

on va taper fastboot getvar all pour obtenir tous les paramètres, voilà le résultat :

[pastacode lang= »bash » manual= »(bootloader)%20%09max-download-size%3A%200×8000000%0A(bootloader)%20%09partition-size%3Aflashinfo%3A%201000000%0A(bootloader)%20%09partition-type%3Aflashinfo%3A%20raw%20data%0A(bootloader)%20%09partition-size%3Aotp%3A%202b00000%0A(bootloader)%20%09partition-type%3Aotp%3A%20raw%20data%0A(bootloader)%20%09partition-size%3Auserdata%3A%2032000000%0A(bootloader)%20%09partition-type%3Auserdata%3A%20ext4%0A(bootloader)%20%09partition-size%3Acache%3A%2019000000%0A(bootloader)%20%09partition-type%3Acache%3A%20ext4%0A(bootloader)%20%09partition-size%3Asystem%3A%20c0000000%0A(bootloader)%20%09partition-type%3Asystem%3A%20ext4%0A(bootloader)%20%09partition-size%3Aoem%3A%2010280000%0A(bootloader)%20%09partition-type%3Aoem%3A%20ext4%0A(bootloader)%20%09partition-size%3Ahw%3A%20800000%0A(bootloader)%20%09partition-type%3Ahw%3A%20raw%20data%0A(bootloader)%20%09partition-size%3Ametadata%3A%202000000%0A(bootloader)%20%09partition-type%3Ametadata%3A%20raw%20data%0A(bootloader)%20%09partition-size%3Anvdata%3A%202000000%0A(bootloader)%20%09partition-type%3Anvdata%3A%20ext4%0A(bootloader)%20%09partition-size%3Afrp%3A%20100000%0A(bootloader)%20%09partition-type%3Afrp%3A%20raw%20data%0A(bootloader)%20%09partition-size%3Autags%3A%2080000%0A(bootloader)%20%09partition-type%3Autags%3A%20raw%20data%0A(bootloader)%20%09partition-size%3Aefuse%3A%2080000%0A(bootloader)%20%09partition-type%3Aefuse%3A%20raw%20data%0A(bootloader)%20%09partition-size%3Apersist%3A%203000000%0A(bootloader)%20%09partition-type%3Apersist%3A%20ext4%0A(bootloader)%20%09partition-size%3Atee2%3A%20500000%0A(bootloader)%20%09partition-type%3Atee2%3A%20raw%20data%0A(bootloader)%20%09partition-size%3Atee1%3A%20500000%0A(bootloader)%20%09partition-type%3Atee1%3A%20raw%20data%0A(bootloader)%20%09partition-size%3Akeystore%3A%20800000%0A(bootloader)%20%09partition-type%3Akeystore%3A%20raw%20data%0A(bootloader)%20%09partition-size%3Asecro%3A%20600000%0A(bootloader)%20%09partition-type%3Asecro%3A%20raw%20data%0A(bootloader)%20%09partition-size%3Aoemkeystore%3A%20200000%0A(bootloader)%20%09partition-type%3Aoemkeystore%3A%20raw%20data%0A(bootloader)%20%09partition-size%3Aseccfg%3A%2080000%0A(bootloader)%20%09partition-type%3Aseccfg%3A%20raw%20data%0A(bootloader)%20%09partition-size%3Aexpdb%3A%20a00000%0A(bootloader)%20%09partition-type%3Aexpdb%3A%20raw%20data%0A(bootloader)%20%09partition-size%3Alogo%3A%20800000%0A(bootloader)%20%09partition-type%3Alogo%3A%20raw%20data%0A(bootloader)%20%09partition-size%3Arecovery%3A%201000000%0A(bootloader)%20%09partition-type%3Arecovery%3A%20raw%20data%0A(bootloader)%20%09partition-size%3Aboot%3A%201000000%0A(bootloader)%20%09partition-type%3Aboot%3A%20raw%20data%0A(bootloader)%20%09partition-size%3Apara%3A%2080000%0A(bootloader)%20%09partition-type%3Apara%3A%20raw%20data%0A(bootloader)%20%09partition-size%3Alk%3A%20200000%0A(bootloader)%20%09partition-type%3Alk%3A%20raw%20data%0A(bootloader)%20%09partition-size%3Aprotect2%3A%20a00000%0A(bootloader)%20%09partition-type%3Aprotect2%3A%20ext4%0A(bootloader)%20%09partition-size%3Aprotect1%3A%20a00000%0A(bootloader)%20%09partition-type%3Aprotect1%3A%20ext4%0A(bootloader)%20%09partition-size%3Anvram%3A%20500000%0A(bootloader)%20%09partition-type%3Anvram%3A%20raw%20data%0A(bootloader)%20%09partition-size%3Aproinfo%3A%20300000%0A(bootloader)%20%09partition-type%3Aproinfo%3A%20raw%20data%0A(bootloader)%20%09partition-size%3Apreloader%3A%2040000%0A(bootloader)%20%09partition-type%3Apreloader%3A%20raw%20data%0A(bootloader)%20%09serialno%3A%20ZH33C2DPQC%0A(bootloader)%20%09off-mode-charge%3A%201%0A(bootloader)%20%09warranty%3A%20yes%0A(bootloader)%20%09unlocked%3A%20no%0A(bootloader)%20%09efuse%3A%20yes%0A(bootloader)%20%09secure%3A%20yes%0A(bootloader)%20%09kernel%3A%20lk%0A(bootloader)%20%09product%3A%20NICKLAUS%0A(bootloader)%20%09hwid%3A%2021%20%0A(bootloader)%20%09version-preloader%3A%200.1.00%0A(bootloader)%20%09version%3A%200.5%0Aall%3A%20Done!!%0Afinished.%20total%20time%3A%200.005s » message= » » highlight= » » provider= »manual »/]

On repère bien que le bootloader est verrouillé. On va maintenant le déverrouiller en tapant fastboot oem unlock ATTENTION, ça va faire comme un reset et de fait toutes les données seront effacées ! Voilà le message d’alarme qui apparaît sur le mobile :

[pastacode lang= »bash » manual= »if%20you%20unlock%20the%20bootloader%2Cyou%20will%20be%20able%20to%20install%20custom%20operating%20system%20software%20on%20this%20phone.%0A%0AA%20custom%20OS%20is%20not%20subject%20to%20the%20same%20testing%20as%20the%20original%20OS%2C%20and%20can%20cause%20your%20phone%20and%20installed%20applications%20to%20stop%20working%20properly.%0A%0Ato%20prevent%20unauthorized%20access%20to%20your%20personal%20data%2Cunlocking%20the%20bootloader%20will%20also%20delete%20all%20personal%20data%20from%20your%20phone(a%20%22factory%20data%20reset%22).%0A%0Apress%20the%20Volume%20UP%2FDown%20buttons%20to%20select%20Yes%20or%20No.%0A%0AYes%20(Volume%20UP)%3AUnlock(may%20void%20warranty).%0A%0ANo%20(Volume%20Down)%3ADo%20not%20unlock%20bootloader » message= » » highlight= » » provider= »manual »/]

On choisit donc Yes en notant bien qu’on fait une croix sur la garantie constructeur. Et voilà le résultat dans le shell linux :

[pastacode lang= »bash » manual= »…%0A(bootloader)%20Start%20unlock%20flow%0AOKAY%20%5B231.377s%5D%0Afinished.%20total%20time%3A%20231.377s » message= » » highlight= » » provider= »manual »/]

et un message sur le mobile your devices has been unlocked. A ce stade le mobile peut rebooter normalement, on a un warning au boot :

[pastacode lang= »bash » manual= »Orange%20state%0A%0Ayour%20device%20has%20been%20unlocked%20and%20can’t%20be%20trusted%0Ayour%20device%20will%20boot%20in%205%20seconds%0A » message= » » highlight= » » provider= »manual »/]

et vous retrouver la stock ROM avec le système officiel. Maintenant on va récupérer TWRP qui est un soft alternatif de restauration système qui va nous permettre d’installer une ROM personnalisée, on ne peut pas installer n’importe quelle version, il faut qu’elle soit adaptée au téléphone, pour ma part j’ai utilisé cette version. On place le fichier img (en le renommant twrp.img) sous platform-tools. S’il ne l’est pas déjà, on reboote en mode fastboot adb reboot bootloader, voilà le résultat maintenant

[pastacode lang= »bash » manual= »%3D%3E%20FASTBOOT%20mode…%0A%3D%3E%20device%20unlocked » message= » » highlight= » » provider= »manual »/]

on installe TWRP en supprimant d’abord le logiciel de restauration d’origine en tapant fastboot erase recovery voilà le résultat dans le shell :

[pastacode lang= »bash » manual= »erasing%20’recovery’…%0AOKAY%20%5B%20%200.021s%5D%0Afinished.%20total%20time%3A%200.021s » message= » » highlight= » » provider= »manual »/]

on installe maintenant TWRP en lieu et place en tapant fastboot flash recovery twrp.img voilà le résultat dans le shell :

[pastacode lang= »bash » manual= »target%20reported%20max%20download%20size%20of%20134217728%20bytes%0Asending%20’recovery’%20(13478%20KB)…%0AOKAY%20%5B%20%200.327s%5D%0Awriting%20’recovery’…%0AOKAY%20%5B%20%200.391s%5D%0Afinished.%20total%20time%3A%200.718s » message= » » highlight= » » provider= »manual »/]

On va récupérer maintenant LineageOS, là aussi il faut une ROM adaptée au mobile. L’équipe LineageOS entretient un certain nombre de ROM qui sont supportés de manière officielle pour un nombre limité de support, dont on trouvera la liste par ici. On pourra trouver ailleurs sur le net des ROM adaptés à d’autres mobiles non officiellement supportés par l’équipe LineageOS (notamment sur le forum XDA). Pour ma part, j’ai trouvé une ROM non officielle LineageOS pour la version 15 par ici, mais qui ne fonctionne pas, ou du moins il n’y a pas de reconnaissance du wifi et de la carte SIM ce qui est quand même plutôt gênant. J’ai donc récupéré la version 14.1 disponible ici qui est également une ROM non officielle LineageOS. Attention une ROM officielle LineageOS vous permettra de récupérer des mises à jour régulières alors qu’une ROM non officielle est bien souvent figée et ne bénéficie d’aucune mise à jour…

A ce stade, le portable boote normalement on retrouve toujours le système d’origine. On copie l’image ROM de LineageOS sur le mobile avec adb (par exemple) en tapant adb push lineage-14.1-20171120_160133-UNOFFICIAL-nicklaus.zip /sdcard. On peut faire le choix maintenant d’installer les outils Google ou pas, ça peut paraître une hérésie, mais il faut savoir que beaucoup d’applications ne fonctionneront pas sans l’écosystème Google, donc c’est à vous de voir ce que vous voulez faire et vous contentez des applis F-Droid. En tout état de cause, il faut retenir qu’il est impératif d’installer les applis Google qu’on trouvera dans la foulée de LineageOS.  Il est toujours possible de se contenter de LineageOS dans un premier temps, de voir ce que ça donne, puis de réinstaller LineageOS avec les applis Google par la suite, j’ai fait le choix d’installer les applis Google.

Phase finale, on reboote maintenant en mode recovery pour lancer TWRP comme indiquer par , au lieu d’avoir le robot droid posé sur le sol avec le capot ouvert avec No command, vous allez avoir TWRP qui va se lancer. Autre possibilité taper dans le shell adb reboot recovery

on efface d’abord le système avec la commande Wipe, on sélectionne data, system, cache et dalvic cache et on prend soin également de cliquer sur Format data (pour une histoire d’encodage sinon ça génère une tonne d’erreurs). On revient à la page d’accueil et on sélectionne Install on installe le zip de LineageOS, puis éventuellement le zip des applications Google, on reboote et c’est tout bon !

de prime abord ça ressemble fortement à Android et pour cause ! On retrouve donc tout l’univers Android avec néanmoins des fonctionnalités supplémentaires par rapport aux ROM constructeurs, comme un éditeur de thème intégré, des options d’interface supplémentaires, le support natif du codec audio FLAC et même la possibilité d’overclocker le processeur.

 

4 réflexions sur « Libérer son portable (acte 4) passer à LineageOS »

  1. J’ai testé la ROM Lineageos V15.1 sur un Samsung Galaxy J5 (non officielle, hélas car Lineage ne gère pas le J5).
    Effectivement rien à redire : légère, rapide, ergonomique et efficace.
    Sauf que la camera vidéo n’est pas supportée et d’après le développeur qui gère celle-ci, ne le sera pas !
    Je suis donc repassé sur la rom officielle sur laquelle j’ai quand même viré de nombreux bloatware.
    Dommage !

  2. j’ai également une ROM LineageOS non officielle, j’aurais dû effectivement précisé qu’il existe des ROM supportés officiellement par l’équipe LineageOS et d’autres aux sources plus ou moins diverses.
    De mon côté, j’ai du bol, tout fonctionne sur mon motorola e4 plus.

  3. Bonjour,

    Déjà merci pour ce tuto ! Il m’a permis de m’initier au monde des roms pour mon moto e4 plus.

    Actuellement je n’ai pas sû trouver de rom bien adaptées: lineage os / viper os / crDroid… Systématiquement la reconnaissance d’empreintes plante.

    J’ai tenté RR (Resurrection remix): impossible de l’installer pour l’instant mais je suis en plein apprentissage.

    Auriez-vous des sources d’informations pour me permettre d’installer cette rom sur mon portable svp ? Ou encore de faire un tutoriel dans ce sens ?

    En attendant, même si c’est encore loin d’être parfait pour mon moto e4 plus c’est très intéressant de pouvoir se passer d’Android.

    Cordialement, Skwal

Laisser un commentaire