Ce post a été publié sur LinuxFr.org. Vous pouvez le lire là bas, ainsi que les commentaires associés
Ce juornal n’est pas un juornal sur le cyclimse, ni sur les tranpsorts en commun.
J’ai acheté mon premier smartphone en 2013 pour une raison toute simple : je me suis retrouvé à aller travailler à l’autre bout de la ville et je faisais le trajet en voiture, vingt à quarante minutes matin et soir selon le trafic, pas fun. À l’époque Waze était au sommet de sa popularité, ce qui m’a motivé à acheter l’appareil qui va bien pour pouvoir circuler confortablement avec l’aide de l’app.
En pratique ça n’a pas changé grand chose malgré son slogan « Outsmarting traffic, together » puisque quand des milliers de personnes veulent traverser la ville en voiture au même moment, la solution la plus rapide reste de prendre les grands axes ; même si cela signifie que l’on va rouler à dix kilomètres par heure dans des bouchons stressants. Pareil pour traverser le fleuve, quand il n’y a que deux ponts, et bien ils sont tous saturés. Enfin bon, grâce à l’app je suis passé de « c’est pas vrai j’en ai bien pour une heure à rentrer » à « allez courage, plus que quarante minutes, en plus ça se dégage un peu plus loin ». C’est déjà moins stressant.
Enfin bon, ce n’est pas le sujet.
Mon premier smartphone, donc, était un tout beau Nexus 4 que j’avais choisi principalement parce qu’étant vendu par Google j’étais sûr d’avoir un Android vanilla, sans les surcouches des concurrents, et aussi parce qu’il était fabriqué par LG, une marque qui m’inspirait vaguement confiance. Il m’avait coûté 260 euros neuf et j’en étais plutôt très content. Il faisait de belles photos, je pouvais envoyer des messages un peu plus riches à mes proches, bref je découvrais un nouveau monde ma foi assez plaisant sur certains aspects.
Le temps passant je fis le tri dans les applications pourries, je m’attristais un peu de voir l’appareil bloqué en Android 5, me disant que je ne profiterais plus des nouveautés hormis les nouvelles failles de sécurité qui ne seront plus corrigées, et puis entre-temps je faisais bien sûr mon trou de balle de consommateur : « Quoi ? Il faut que je paye deux euros pour pouvoir poursuivre dans cet excellent jeu, parfaitement réalisé, et qui me divertit depuis plusieurs semaines ? Je désinstalle ! »
Et puis un jour, ce fut le drame. La chute de trop. L’appareil est tombé en biais sur l’angle de la base en pierre de la cheminée et l’écran éclata. Plus moyen d’interagir avec le téléphone. Il avait à peine deux ans. La base de la cheminée, elle, n’a rien eu. C’est déjà ça.
Moi je n’aime pas trop racheter des trucs. Déjà que j’ai du mal à acheter un jeu qui me plaît, t’imagines bien que je ne vais pas changer un appareil quand une seule pièce est défectueuse… Et puis en tant qu’humain qui consomme des ressources limitées et partagées avec d’autres humains, ça me fait un peu iéch de jouer le cycle acheter-casser-jeter en boucle. C’est du behaviour-smell, pour parler à mes camarades développeurs. En général ça ne parle pas trop aux gens alors disons que c’est surtout une question de thunes. Ouais, la thune !
Du coup j’ai cherché un écran de remplacement. Pas de chance, sur le Nexus 4 on ne peut pas changer juste le verre, il y a tout un composant en monobloc avec. Je n’avais pas trouvé beaucoup de choix alors j’avais pris une sorte de composant compatible dans les 75 € à l’époque. L’affichage était un peu plus petit et plus terne que la pièce originelle mais ça faisait le taf'.
Et puis un jour, ce fut le drame. Le téléphone se vautra comme un gros crétin, l’écran se fendit et devint inutilisable.
Dilemme. Repends-je le même écran, terne, petit et apparemment fragile, pour maintenir en vie un appareil obsolète ? Ou bien sauté-je le pas pour un nouvel appareil ? Je finis par opter pour la seconde solution. À l’époque ma copine avait un Nexus 5 assez sympathique que nous n’avons malheureusement jamais pu connecter à un ordinateur. J’ai lu ici ou là que ça arrivait, que certains appareils avaient un défaut qui empêchait la connexion, etc. deal with it. Mouais, je n’ai pas pris le risque et je suis parti sur un Nexus 5X.
Le Nexus 5X a une lettre en plus que le Nexus 5. Une lettre hyper cool qu’on utilise par exemple pour marquer l’emplacement d’un trésor, représenter une inconnue, nommer des rappeurs, entre autres choses. En pratique le X signifie ici un peu plus grand (pour la même résolution), un peu plus lourd, légèrement mieux sur l’appareil photo et la batterie, un processeur 40% plus lent mais avec deux cœurs en plus, et d’autres bricoles. Il utilise aussi des cartes nano-SIM ce qui est bien mieux que les cartes micro-sim du 5 car, euh… c’est sûrement mieux.
Au départ je n’étais pas hyper satisfait de l’appareil mais ça ne s’est pas amélioré par la suite. Déjà le smartphone est trop gros. Je le tiens à peine dans une de mes grandes mains et je suis bien incapable de traverser l’écran avec le pouce sans utiliser l’autre grande main. C’est un problème que le Nexus 4 n’avait pas et que malheureusement bon nombre d’appareils récents ont. Certes je peux profiter d’une version un peu plus récente d’Android, jusqu’à la version 8, mais à 320 € l’appareil je trouve que ça fait bien cher pour une mise à jour et une légère upgrade du matériel.
Par rapport au Nexus 5 la version 5X a aussi un lecteur d’empreinte digitale au dos, qui m’a rendu fou à plusieurs reprises avant que je comprenne qu’il faisait popper les notifications quand on le frôlait du doigt, ce qui m’arrive fréquemment par inadvertance.
À l’usage je le trouve hyper poussif, de plus en plus avec la mise à jour des apps Google. Inutile d’espérer prendre des photos HDR, c’est une trop grosse charge de travail pour l’application d’appareil photo qui se plante à chaque essai comme une otarie bourrée à la bière. Un panorama peut-être ? Nope, les photos sont prises mais la fusion plante et je n’ai jamais l’image finale. J’ai aussi eu des photos avec flash décalé, genre la lumière s’allume, s’éteint, puis la photo est prise.
À côté de ça la barre de recherche Google est aussi vive qu’un Steven Seagal post 2010. En pratique ça donne ça : je clique dessus, commence à saisir « météo » et cette idiote ne réagit que plusieurs secondes après en écrivant « téo ». Pourquoi ? Tout simplement parce qu’elle préfère faire une requête pour récupérer des termes de recherche populaires qu’elle m’affiche sous la barre ; des recherches telles que « marie papillon angèle couple » (je ne sais pas qui c’est) ou « explosion station service russie » (j’en ai rien à faire). Mais bon sang, à quoi sert cette feature ? Je ne tape pas sur cette barre pour faire du tourisme, je sais ce que je cherche. Tous ces efforts pour afficher des trucs qui ne m’intéressent pas et qui entravent ma recherche, c’est… c’est… c’est de la merde.
Et voilà, j’m’énerve.
Reprenons. Le Nexus 5X n’est donc pas un super appareil au final, mais bon, j’arrive à vivre avec.
Et puis un jour, ce fut le drame. Alors que je jouais tranquillement à une app de mots croisés, l’appareil s’arrêta. Plus moyen de l’allumer, pas de diode qui clignote ni de signal de charge. Ça craint. Je doutais que l’application y fut pour quelque chose puisque c’était loin d’être la première fois que je l’utilisais, et je soupçonnais un coup de chaud.
Le téléphone ayant moins de deux ans, je l’amenai au service après-vente qui me confirma après quelque temps que le problème venait d’un composant de l’appareil photo qui avait trop chauffé. Mais je n’utilisais pas l’appareil quand ça a planté ! Oui mais c’est ainsi. Ils me donnèrent un autre appareil, le même modèle, en guise de réparation.
Quelque part j’étais assez content de récupérer un appareil sans avoir à en acheter un nouveau. La vie reprit son cours, le téléphone était toujours trop gros, tout ramait toujours, etc.
Et puis un jour, ce fut le drame. Alors que je le sortais de ma poche, l’appareil ne s’alluma plus. Pas de diode qui clignote ni de signal de charge. Ça craint. Je soupçonnais un coup de chaud, d’autant plus que c’est arrivé pendant une sortie en été où je prenais beaucoup de photos, un point faible, décidément extrêmement faible, de cet appareil.
Le plus gros problème dans cette histoire est que toutes les photos de mes vacances étaient perdues. En effet, point de carte mémoire sur un Nexus 5X (ni sur le 5 ou le 4 d’ailleurs). Si tu voulais plus de mémoire il fallait raquer plus. Ouais, la thune ! Mais quoi qu’il arrive tu seras toujours limité par la taille définie à la conception et tu ne pourras pas extraire les données d’un appareil mort. Killer feature.
Cette fois il n’y a plus de SAV, la panne étant arrivée après presque trois ans suivant l’obtention de l’appareil de rechange. J’optais donc pour un remplacement de carte-mère que j’effectuerais moi-même. J’ai commandé la carte sur AliExpress et j’en ai profité pour y commander aussi un écran pour mon vieux Nexus 4 qui traîne sur une étagère. Ouais, j’ai parfois du mal à jeter. Finalement ça fera un super appareil photo pour les enfants.
Je ne connaissais pas du tout AliExpress mais je n’ai pas eu beaucoup de choix. Des copains y ont acheté des pièces type Lego sans le logo sur les tétons (des pièces, pas des copains). Je n’ai pas trop aimé, ça sentait la contrefaçon et le travail douteux. Mais bon je suis peut-être parano.
Au moment de valider l’achat j’ai bien sûr utilisé la carte de crédit de ma copine pour pouvoir recevoir le code de confirmation sur son téléphone. Lorsque la page demandant la confirmation s’afficha, j’attrapai machinalement mon téléphone et la diode rouge de « plus de batterie » s’alluma. Nom d’une pipe ! Allait-il refonctionner ? Je partis le brancher pendant que ma copine confirmait la commande.
Après quelques minutes de charge, le téléphone démarra correctement. Je m’empressai de sauvegarder mes photos et essayai de me remettre de l’achat inutile que je venais de faire.
Quelques semaines après je reçus la carte-mère, que je m’empressais de poser sur une étagère pour l’oublier. J’ai ensuite reçu l’écran du Nexus 4.
Ayant déjà fait la manip’, je me suis lancé sans hésiter sur le changement d’écran : enlève la coque, débranche tout, dévisse les vis, enlève les caches, déboîte les circuits et la batterie, enlève les autocollants du nouvel écran, mets-y les circuits et la batterie, revisse les vis, force un peu car ça résiste, ignore le petit craquement, rebranche tout, remets la coque.
Mais… mais… Ah mais quel crétin de b****l de m***e !
J’avais oublié de remettre les caches en remontant l’appareil, caches pris en compte dans le calibrage des vis. Forcément sans eux ça visse plus profond.
Vexé, je commandais alors un autre écran sur AliExpress. Dans la foulée je commandais sur Amazon une coque de protection pour l’appareil en prévision des futures chutes. Ce qui est marrant avec Amazon c’est qu’il s’obstine à mettre en adresse de livraison celle de ma toute première commande, destinée à la fille d’un copain habitant à six-cents kilomètres de chez moi. C’est dommage que je n’y ai pas prêté attention pour la coque sinon je l’aurais déjà reçue. Et je ne vous parle pas de la déception de l’enfant qui a reçu un colis à son nom contenant une bête coque d’un appareil qu’il n’a pas.
À la réception du deuxième écran (donc le quatrième dans la vie de l’appareil) je m’attaquais au démontage-remontage très méticuleusement. Cette fois je n’ai pas oublié les caches mais les vis résistent beaucoup ; certaines dépassent même de deux millimètres. Cette fois je ne pris pas de risque, j’ai directement limé les vis pour les raccourcir. Avec ça la fixation se fit sans encombre, je remontai l’appareil et, hourra, il s’alluma sans souci.
Pour bien terminer la rénovation de ce téléphone il fallait bien sûr y installer LineageOS. L’appareil étant très vieux il n’y a pas d’image officielle et la procédure consiste donc à compiler le tout en suivant la documentation.
De la page d’installation pour Mako (le nom de code du Nexus 4) je suis donc allé sur la page de build pour Mako. Là plusieurs commandes sont données pour cloner les dépôts, dont repo sync
. Avec ma pauvre connexion à 300 ko/s ça a pris plusieurs jours, et puis surtout il y a eu un paquet de timeouts de Curl. Forcément quand on partage 300 ko/s sur quatre processus il ne reste plus grand-chose. Je réessayais donc avec repo sync -j 1
. Cette fois il n’y a plus d’erreurs mais cela restait très long. Après un peu de RTFM j’ai découvert l’option qui me manquait : repo sync -j 1 --current-branch
. Voilà, avec ça la synchro ne prit que le top du dépôt, sans l’historique (un shallow clone de Git en fait) et se fit en une nuit.
Ensuite la doc indique de récupérer les blobs propriétaires à partir d’un zip de LineageOS, sans donner de lien vers le zip. Pas très pratique. Après quelques recherches sur le web j’en trouvai un qui me permit d’avancer.
Enfin, une fois que tout cela a été récupéré il ne restait plus qu’à lancer le build avec un breakfast mako
. Sans surprise c’est très long, et sans surprise ça échoue.
À ce moment j’arrivais aux limites de ma patience. Après tout je ne savais même pas si ça allait fonctionner. Autant mettre directement l’image récupérée dans le zip précédent. J’hésitais à prendre une image tirée d’un forum simplement parce que je ne savais pas ce qu’il y avait dedans. Enfin bon, après-tout l’appareil n’est pas destiné à être connecté à internet, ce devrait juste être un appareil photo. Du coup j’ai récupéré l’image la plus récente que j’ai pu trouver, étonnamment récente d’ailleurs ; je ne pensais pas qu’il y aurait des gens pour maintenir l’image pour un vieil appareil.
Après quelques difficultés à faire démarrer le téléphone dans le système de récupération j’ai finalement pu y transférer l’image. En quelques minutes c’était terminé, beaucoup plus simple et efficace que de générer l’image à partir des sources. À ma grande surprise le système est un Android 8.1, beaucoup plus moderne que le 5.1 précédent.
Au final je suis bien content d’avoir rénové cet appareil. Les enfants étaient très contents d’avoir un appareil photo pour eux. Quant à moi je me demande si je ne vais pas passer à LineageOS sur mon Nexus 5X…