Pixel 2 et LineageOS 17.1
Faire durer un téléphone (soit-disant) intelligent au-delà de 2 ans est devenu un véritable défi, voire un calvaire...
Aujourd'hui je me décide donc à remplacer la version d'Android pour tenter de rouler quelque chose de plus léger et espérer gagner quelques années contre l’obsolescence programmée du bidule.
Une bonne occasion aussi de (re)plonger en douceur dans ces ordinateurs de poche... On range les tournevis, ça se passe avec le clavier aujourd'hui.
T'embarques ?
Avec la version actuelle du système (qui est celle d'origine pré-installée par le fabricant, dans le jargon rom stock
), j'observe 2 ou 3 secondes de latence systématique. Ce soucis de performance dégrade considérablement l’utilisation de l'appareil alors qu'il n'est clairement pas périmé. En tout cas, beaucoup moins que le beurre de peanut
qui traîne dans mon frigo. Les exemples les plus frustrants sont le déclenchement de l'appareil photo avec 3 secondes de retard ou le téléphone qui sonne sans afficher immédiatement le numéro de l'appelant.
Moi qui aime bien l'électronique et les microcontrôleurs justement pour le côté réactif et instantané, c'est un peu le malaise...
C'est d'autant plus frustrant que depuis 2 ans, j'applique scrupuleusement une hygiène numérique pour éviter de surcharger le système d'exploitation en n'installant ni jeux, ni application gratuite à la con...
Malgré cette rigueur, rien n'y fait. Android est malheuresement lui aussi une bombe a retardement qui se ralentit lui même années après années. Ce n'est pas sans me rappeler un autre OS d'ailleurs. Genre celui qui équipe le plus d'ordinateur dans le monde. Cela m'a toujours fasciné comment l'informatique est devenue cruciale mais totalement merdique en même temps.
Bref.
Comme d'habitude sur ce blog, je vais passer rapidement sur les étapes qui sont expliquées des milliards de fois sur l'Internet (en spécifiant les mot-clés à rechercher) mais plutôt essayer de donner un peu de perspective et de contexte à cette démarche.
Dans le cas des téléphones et d'Android, les versions évoluent de toute façon tellement vite que si l'idée te prends de faire la même chose, tu gagneras probablement du temps à comprendre la démarche (qui est relativement la même depuis plusieurs années) et l'adapter plutôt que de copier coller des recettes obsolètes qui plantent pour un détail.
1. Débloquer le bootloader du téléphone
Pour installer une OS alternatif sur un téléphone (peu importe lequel), il faut en premier lieu débloquer le bootloader
.
De mon côté, j'ai toujours utilisé des téléphones vendu par Google (Nexus, Pixel, ...) car cette étape est officiellement supportée.
Concrètement, cela veut dire que quelque part dans les paramètres de mon téléphone, je vais pouvoir cocher des options en ce sens. Simple !
Il est bon de le préciser car certains fabricants dépensent une énergie folle en code et en surcouches pour t'empêcher de faire cela aussi facilement (ie: Motorola). Pour moi c'est devenu un critère d'achat.
Dans mon cas donc (et oui c'est mon blog camarade!), il suffit d'aller dans Options pour les concepteurs
(comment afficher ce menu ?) puis activer les 2 options suivantes:
> Débogage USB
> Déverrouillage par le fabricant ou OEM Unlock in english...
Elles sont assez explicites pour ne pas perdre de temps dessus.
Maintenant que ces options sont activées, il va être possible de débloquer le bootloader
depuis le PC (connecté au téléphone en USB).
Pour accéder au menu du bootloader
d'un périphérique Google Android, il suffit d'éteindre le téléphone, puis de le rallumer en maintenant power
et volume bas
appuyé.
Quand le téléphone est dans ce menu, il est possible de communiquer avec lui depuis le PC, en utilisant la commande fastboot
:
$ sudo fastboot devices
FAXXXXXXXX42 fastboot
Pour le déverrouiller donc:
$ sudo fastboot flashing unlock
OKAY [ 8.054s]
Finished. Total time: 8.054s
Voilà. C'est pas sorcier comme dirait Jamy. Bon, t'es encore là ? Ok, on passe à la suite alors.
2. Démarrer le téléphone en recovery
Maintenant, l'étape suivante consiste à mettre le téléphone dans le mode “récupération” (a.k.a recovery) car c'est dans ce “mode” (et seulement dans ce mode) qu'il est possible d'écrire une image Android sur la mémoire interne.
Tu connais peut-être déjà ce mode (sans le savoir) si tu as déjà fait un retour aux paramètres d'usine
(a.k.a factory reset
). C'est l'étape généralement fortement conseillée pour être sûr de ne rien laisser traîner quand on se sépare d'un téléphone.
La procédure normale prévu par le fabriquant n'est pas interactive. Le téléphone redémarre, puis re-écrit tout seul la mémoire interne avec la version d’origine d'Android qu'il avait gardé dans un coin de sa table de partition. Tu te rappelles ? Ok.
Dans notre cas, nous allons utiliser ce mode aussi, mais pas exactement comme il a été est prévu par le fabriquant.
D'abord, nous avons besoin d'utiliser un logiciel de récupération différent que celui qui est actuellement installé (car à part re-écrire automatiquement la version d'usine d'Android d'usine, il ne sait rien faire d'autre).
Le logiciel choisi est TWRP
(Team Win Recovery Project ). C'est un logiciel Open Source qui permet d'effectuer des opérations de bas niveau sur un téléphone en mode recovery
(comme par exemple sauver la ROM installée dump
, écrire une rom
install
ou formater la mémoire wipe
).
twrp
est distribuée sous forme d'image bootable (donc un kernel
et un ramdisk
).
$ file twrp-3.3.0-0-walleye.img
twrp-3.3.0-0-walleye.img: Android bootimg, kernel (0x8000), ramdisk (0x1000000), [...]
Pour le démarrer, il faut donc configurer le téléphone pour booter
sur cette image. C'est possible directement via l'USB. On pourrait voir ça à la manière d'un système LiveCD avec un PC classique.
Cela implique au passage de bien télécharger la version spécifique
au modèle précis du téléphone puisque cela va être consommé directement par le bootloader
du téléphone.
Puisque nous sommes encore dans le menu du bootloader
, c'est encore avec la commande fastboot
que cela se passe:
$ sudo fastboot boot twrp-3.3.0-0-walleye.img
Downloading 'boot.img' OKAY [ 1.068s]
booting OKAY [ 0.052s]
Suite à cette commande, le téléphone boote immédiatement sur twrp
.
Maintenant que le téléphone à démarré twrp
, il est en mode recovery
. L'outil pour communiquer avec lui n'est plus fastboot
mais adb
.
$ adb devices
List of devices attached
FAXXXXXXXX42 recovery
Une fois la rom
téléchargée, pas la peine se ruer sur le bouton install
... Il faut d'abord pousser le fichier sur le téléphone puisque (à ma connaissance) on ne peut pas le lire en USB et l'écrire en même temps sur la mémoire interne.
L'idée est donc de pousser le fichier zip
de la rom
que l'on va flasher sur un stockage temporaire dans le téléphone. Il y a un pointeur (lien) générique à cet effet qui fonctionne presque tout le temps /sdcard
.
$ adb push lineage-17.1-20201117-nightly-walleye-signed.zip /sdcard/
lineage-17.1-20201117-nightly-walleye-signed.zip: 1 file pushed. 26.7 MB/s (748842785 bytes in 26.742s)
Depuis twrp
, dans install
, il va être maintenant possible d'écrire la rom
de son choix sur la mémoire interne du téléphone. Dans mon cas, j'installe LineageOS
donc lineage-17.1-20201117-nightly-walleye-signed.zip
. Il y en a d'autres, plus ou moins maintenues. Toutes les réponses à tes questions sont sur le forum XDA Developers
;)
Il est fortement conseillé de formater les différentes zones mémoires avant de procéder (Depuis le menu wipe
).
Tout est super génial! En fait pas forcément.
Quoi d'autre ? Google.
Dans une autre vie... où j'étais plus jeune, je me serai arrêté là. Qu'en aurais-je bien eu à foutre de la suite Google et de son Play Store à mârde remplit d'applications farcies de tracker à pubs ?
Les versions custom
d'Android n'incluent pas les applications Google car elles ne sont, ni libres, ni Open Source. Pour faire court, si tu veux le Play Store officiel et toute la m*rde qui vient avec (Gmail, Calendrier, Photos, Maps, etc...), il y a encore une étape.
Si tu es encore plein d'espoir et de courage, tu peux redémarrer le téléphone maintenant et installer le store Open Source F-Droid
. Ta vie avec un téléphone dé-google-lisé commence maintenant. Sinon rendez-vous au paragraphe suivant.
3. (Optionnel) Installer les machins-trucs de Google
Toute la suite de Google est donc dans un package qui s'installe aussi depuis le mode recovery
et surtout avant de démarrer le firmware alternatif pour la première fois.
Par contre, à la différence de la rom custom
, nous ne pouvons pas utiliser twrp
. Cela doit être fait depuis le mode recovery
de la rom
en question car certaines vérifications de compatibilité de versions ne marcheront pas.
Oui je sais c'est long et chiant... Alors imagine pauvre de moi qui essaye de mettre ça par écrit pour éclairer ta lanterne. Un véritable calvaire.
Parce-que c'est bien fait, lorsque que l'on flashe le téléphone avec LineageOS
, il installe aussi (en plus de la rom
), une image de recovery
. Cela permet entre autre de disposer, comme une version d'usine d'Android, d'une fonction de factory reset
ou d'installer des mises à jours.
Ce coup-ci donc, pas besoin de télécharger une image ou quoi que ce soit, il suffit de démarrer la-dessus !
Comme précisé plus haut, il est important de ne pas encore démarrer la nouvelle rom
alternative car les Google Apps doivent être installées avant ce premier boot
. On peut basculer du mode recovery
de twrp
directement sur le mode recovery
de LineageOS
depuis le menu: Reboot
puis Recovery
.
Depuis l’outil de recovery
de LineageOS
, le package Google s'installe depuis le menu Apply update
puis Apply from ADB
. Sur le PC, on pousse le fichier en sideload
depuis la commande suivante:
$ sudo adb sideload open_gapps-FIXED-arm64-10.0-nano-20200131.zip
Total xfer: 1.00x
Le tour est joué.
Maintenant que le package
est installée (et seulement maintenant), on peut démarrer sur la rom
alternative.
Ça va bien aller!
La suite plus tard. Passez une belle journée.
^EOF