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

avril 08 12:06:46 predator.kervao.fr kernel: usb 3-9: New USB device found, idVendor=22b8, idProduct=2e82
avril 08 12:06:46 predator.kervao.fr kernel: usb 3-9: New USB device strings: Mfr=3, Product=4, SerialNumber=5
avril 08 12:06:46 predator.kervao.fr kernel: usb 3-9: Product: Moto E (4) Plus
avril 08 12:06:46 predator.kervao.fr kernel: usb 3-9: Manufacturer: MediaTek
avril 08 12:06:46 predator.kervao.fr kernel: usb 3-9: SerialNumber: ZH33C2DPQC
avril 08 12:08:49 predator.kervao.fr kernel: usb 3-9: USB disconnect, device number 14
avril 08 12:08:50 predator.kervao.fr kernel: usb 3-9: new high-speed USB device number 15 using xhci_hcd
avril 08 12:08:50 predator.kervao.fr kernel: usb 3-9: New USB device found, idVendor=22b8, idProduct=2e76
avril 08 12:08:50 predator.kervao.fr kernel: usb 3-9: New USB device strings: Mfr=3, Product=4, SerialNumber=5
avril 08 12:08:50 predator.kervao.fr kernel: usb 3-9: Product: Moto E (4) Plus
avril 08 12:08:50 predator.kervao.fr kernel: usb 3-9: Manufacturer: MediaTek
avril 08 12:08:50 predator.kervao.fr kernel: usb 3-9: SerialNumber: ZH33C2DPQC

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

List of devices attached
* daemon not running; starting now at tcp:5037
* daemon started successfully
ZH33C2DPQC      unauthorized

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é

ZH33C2DPQC fastboot

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

(bootloader) 	max-download-size: 0x8000000
(bootloader) 	partition-size:flashinfo: 1000000
(bootloader) 	partition-type:flashinfo: raw data
(bootloader) 	partition-size:otp: 2b00000
(bootloader) 	partition-type:otp: raw data
(bootloader) 	partition-size:userdata: 32000000
(bootloader) 	partition-type:userdata: ext4
(bootloader) 	partition-size:cache: 19000000
(bootloader) 	partition-type:cache: ext4
(bootloader) 	partition-size:system: c0000000
(bootloader) 	partition-type:system: ext4
(bootloader) 	partition-size:oem: 10280000
(bootloader) 	partition-type:oem: ext4
(bootloader) 	partition-size:hw: 800000
(bootloader) 	partition-type:hw: raw data
(bootloader) 	partition-size:metadata: 2000000
(bootloader) 	partition-type:metadata: raw data
(bootloader) 	partition-size:nvdata: 2000000
(bootloader) 	partition-type:nvdata: ext4
(bootloader) 	partition-size:frp: 100000
(bootloader) 	partition-type:frp: raw data
(bootloader) 	partition-size:utags: 80000
(bootloader) 	partition-type:utags: raw data
(bootloader) 	partition-size:efuse: 80000
(bootloader) 	partition-type:efuse: raw data
(bootloader) 	partition-size:persist: 3000000
(bootloader) 	partition-type:persist: ext4
(bootloader) 	partition-size:tee2: 500000
(bootloader) 	partition-type:tee2: raw data
(bootloader) 	partition-size:tee1: 500000
(bootloader) 	partition-type:tee1: raw data
(bootloader) 	partition-size:keystore: 800000
(bootloader) 	partition-type:keystore: raw data
(bootloader) 	partition-size:secro: 600000
(bootloader) 	partition-type:secro: raw data
(bootloader) 	partition-size:oemkeystore: 200000
(bootloader) 	partition-type:oemkeystore: raw data
(bootloader) 	partition-size:seccfg: 80000
(bootloader) 	partition-type:seccfg: raw data
(bootloader) 	partition-size:expdb: a00000
(bootloader) 	partition-type:expdb: raw data
(bootloader) 	partition-size:logo: 800000
(bootloader) 	partition-type:logo: raw data
(bootloader) 	partition-size:recovery: 1000000
(bootloader) 	partition-type:recovery: raw data
(bootloader) 	partition-size:boot: 1000000
(bootloader) 	partition-type:boot: raw data
(bootloader) 	partition-size:para: 80000
(bootloader) 	partition-type:para: raw data
(bootloader) 	partition-size:lk: 200000
(bootloader) 	partition-type:lk: raw data
(bootloader) 	partition-size:protect2: a00000
(bootloader) 	partition-type:protect2: ext4
(bootloader) 	partition-size:protect1: a00000
(bootloader) 	partition-type:protect1: ext4
(bootloader) 	partition-size:nvram: 500000
(bootloader) 	partition-type:nvram: raw data
(bootloader) 	partition-size:proinfo: 300000
(bootloader) 	partition-type:proinfo: raw data
(bootloader) 	partition-size:preloader: 40000
(bootloader) 	partition-type:preloader: raw data
(bootloader) 	serialno: ZH33C2DPQC
(bootloader) 	off-mode-charge: 1
(bootloader) 	warranty: yes
(bootloader) 	unlocked: no
(bootloader) 	efuse: yes
(bootloader) 	secure: yes
(bootloader) 	kernel: lk
(bootloader) 	product: NICKLAUS
(bootloader) 	hwid: 21 
(bootloader) 	version-preloader: 0.1.00
(bootloader) 	version: 0.5
all: Done!!
finished. total time: 0.005s

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 :

if you unlock the bootloader,you will be able to install custom operating system software on this phone.

A custom OS is not subject to the same testing as the original OS, and can cause your phone and installed applications to stop working properly.

to prevent unauthorized access to your personal data,unlocking the bootloader will also delete all personal data from your phone(a "factory data reset").

press the Volume UP/Down buttons to select Yes or No.

Yes (Volume UP):Unlock(may void warranty).

No (Volume Down):Do not unlock bootloader

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 :

...
(bootloader) Start unlock flow
OKAY [231.377s]
finished. total time: 231.377s

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 :

Orange state

your device has been unlocked and can't be trusted
your device will boot in 5 seconds

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

=> FASTBOOT mode...
=> device unlocked

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 :

erasing 'recovery'...
OKAY [  0.021s]
finished. total time: 0.021s

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

target reported max download size of 134217728 bytes
sending 'recovery' (13478 KB)...
OKAY [  0.327s]
writing 'recovery'...
OKAY [  0.391s]
finished. total time: 0.718s

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.

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.

 

2 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.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.

Vérification anti robot *