[Android] Flasher le recovery avec fastboot

Un grand nombre de site préconise d’utiliser une application disponible sur le PlayStore pour flasher le recovery d’un téléphone Android.

Ce que peu d’entre eux précisent, c’est qu’il est possible de réaliser cette opération directement en la ligne de commande avec fastboot. Une fois l’appareil en mode « bootloader », il est donc possible d’utiliser la commande suivante (Exemple générique pour TWRP) :

fastboot flash recovery twrp-2.8.x.x-xxx.img

La dernière version de TWRP pour le Sony Xperia Z1, nom de code honami est ici : twrp-3.0.2-0-honami.img.

 

 

Téléphone, sécurité et mise à jour. C’est le bordel…

Mon téléphone actuel est un Xperia Z1 de marque Sony. Première apparition sur le marché en 2013, j’utilise le mien depuis presque trois années, autant dire une éternité pour un téléphone « moderne ». J’ai arrêté les téléphones vendus par les opérateurs depuis un bout de temps : rien à cirer de la surcouche opérateur ajoutant son lot d’applications inutiles et difficiles, voir impossible à désinstaller. Dans le cas de mon Z1, nous étions donc sur un téléphone constructeur, que je n’ai pas tardé à rooter, pour y faire tourner une ROM alternative, en l’occurrence CyanogenMod en version Nightly et en partie libérée de Google avec freecygn.
Que dire de plus si ce n’est que, pour le moment, il fonctionne parfaitement. Mais, …

Car il y a bien un mais. Le constructeur a arrêté les mises à jour d’Android à la version 5.0.2 en juin 2015 soit à peine plus de 2 ans après la sortie du téléphone. Au revoir mise à jour de sécurité via le canal officiel.  A cette époque, je faisais encore le malin puisque je venais de mettre à jour Cyanogen vers sa version 12-1 soit un Android 5.1.1. C’est ici que s’arrête l’histoire pour les mises à jour. Quelques commits ont eu lieu sur une branche cm-13.0 du dépôt Git, mais pas de builds officiels. Et cela ne risque pas de s’améliorer puisque CyanogenMod a cessé d’exister en décembre 2016. La communauté a repris le projet sous le nom LineageOS, mais l’âge du téléphone n’y changera rien, il y a peu de chance que j’obtienne un binaire pour mettre à jour ou remplacer mon système vers une version récente d’Android.

En parallèle, de nombreuses failles qui se sont succédées, surtout pour 2016, parmi lesquelles de nombreuses failles critiques. Youpi, mon téléphone est donc tout troué du point de vue de la sécurité. Du côté d’Android, il faut noter que nous sommes face à un système qui se ferme de plus en plus. L’article The proprietarization of android google play services and apps nous apprend par exemple que de nombreuses fonctionnalités de base, sont progressivement déplacées du système en lui-même vers le Google Play Services. Il devient alors toujours plus difficile de faire fonctionner des applications sans ce composant, si on a fait le choix de s’en passer, ou si le système ne l’intègre pas (Jolla Sailfish, …). Une alternative semble toutefois se dessiner avec le projet microG.

Bref, je n’ai pas envie d’acheter un nouveau téléphone au prix d’un ordinateur, alors que mon téléphone actuel continue de fonctionner. Du côté sécurité, Apple ne semble pas s’en tirer trop mal, mais les prix sont prohibitifs et je reste réfractaire à l’environnement IOS qui vient avec.

Quelles alternatives alors ?

  • Qu’on ne me parle pas de Windows Phone. Ça ne me tente pas du tout. Les ajouts de type surveillance de l’utilisateur me disent de rester loin de la plateforme mobile de Microsoft en tant qu’utilisateur.
  • Un téléphone chinois pour moins de 100E ? Pourquoi pas, mais à condition d’être certain qu’il n’y ai pas de backdoor. Par ailleurs, le problème des mises à jour n’arrivant plus risque de rester le même et on se retrouve donc à jeter un appareil fonctionnel pour faire tourner la machine économique. On garde donc dans un coin l’idée du téléphone chinois de transition à prix réduit; avec le moins possible de Google dedans ou en remettant une custom rom directement.
  • Le Neo900 encore en cours d’élaboration. Principe très attractif car séparation matérielle du modem et du CPU, l’alimentation du modem pouvant être désactivée (si j’ai bien suivi). Relativement inaccessible de par son prix (Environ 990E , même si réparti sur plusieurs années, cela pourrait se justifier). OS disponible relativement flou pour l’instant. Quelles possibilités ?
  • Dans la même idée, le GTA04.
  • Jolla. Les infographies semblaient proposer quelque chose d’un peu nouveau. Ils se sont plantés avec les tablettes, donc ils se concentrent sur le soft. Une base Linux. Plus de stock de téléphone au moment où j’écris ces lignes. Une entreprise indienne a produit quelques téléphone embarquant le système d’exploitation Jolla pour le marché indien. La poste Russe a annoncé vouloir acquérir des téléphones tournant sous Sailfish OS.
  • Ubuntu Phone. Pas vraiment de stock.
  • Une Fairphone ? Un téléphone plus « éthique » dans ses choix, pourquoi pas, mais le problème de version reste le même. Ici, du Android 5.1. Pour le prix, compter au moins 500E.
  • Construire sa propre ROM en se basant sur AOSP et sur la documentation Sony. Cela semble plutôt bien expliqué et cela me permettrait de mettre en application ce que j’avais eu l’occasion d’apprendre en cours.

Bref, beaucoup de solutions envisageables. Et pourtant, il n’y en a pas une qui me satisfait plus que les autres. D’ailleurs, plus j’y pense et et plus l’idée de mettre les mains dans le cambouis m’attire. Je vois d’ici les heures de travail pour préparer l’environnement de développement, adapter et compiler les sources, puis tester. Le résultat est incertain, l’échec possible, mais voyons le bon côté des choses, la documentation du constructeur semble plutôt complète, il existe quelques dépôts libres sur Github et je ne pars pas de zéro puisque j’ai eu la chance de suivre un cours sur le sujet durant mes études d’ingénieur (LO52 – Merci Fabien !). J’ai donc commencé à lire la documentation et à parcourir les forums, notamment XDA pour mon modèle de téléphone, et ce qu’on peut y lire a de quoi refroidir. A priori, en passant à Android 7, il y a un risque non nul de se retrouver avec un port micro-usb ne rechargeant plus la batterie du téléphone, ce qui est quand même un inconvénient majeur. Par ailleurs, ce qui m’ennuie le plus, c’est d’être obligé de tester directement sur le téléphone que j’utilise quotidiennement. L’idéal serait de mettre la main sur un deuxième exemplaire du téléphone à peu près en état de marche afin de disposer d’une plateforme de test.

Finalement, le problème est intrinsèquement lié au fonctionnement actuel de notre société, basée sur une consommation de masse permanente. Dans ce contexte, un constructeur renouvelle complètement sa gamme en 2 à 3 ans. Au revoir support sur les anciens modèles, les équipes sont assignées à la maintenance de la gamme en cours. Obsolescence par le logiciel donc, le matériel évoluant assez peu, mise à part les ajouts de RAM, puissance de calcul ou nombre de pixel de l’appareil photo. Tout cela pour vider la batterie plus rapidement, bien évidemment.

Pour ma part, je vais donc garder mon téléphone en Android 5.1 pour l’instant et voir comment les choses évoluent.

Libération du téléphone

Depuis quelques mois maintenant, j’ai quitté l’OS Android du constructeur de mon téléphone portable pour migrer vers Cyanogen. J’appréhendais un peu l’opération bien que celle-ci soit bien documentée et que ce ne soit pas la première fois que j’effectuais une migration. Lorsqu’on touche au système du téléphone, le risque zéro n’existe pas… Après relecture de la procédure, je me suis donc lancé.

En premier lieu, il convient de débloquer le bootloader. Cette étape est transparente pour peu que le téléphone ne soit pas un téléphone opérateur; ce qui est mon cas. On demande un code au constructeur et on l’utilise pour débloquer le bootloader. C’est aussi simple que cela. Pour leur part, les téléphones opérateurs sont généralement munis d’une surcouche avec des applications inutiles et impossibles à désinstaller, auquel s’ajoute un blocage fort du bootloader et des droits root. « Malheureux, ce téléphone ne t’appartient pas, nous seuls savons ce qui est bon pour toi (et ne t’avise surtout pas d’utiliser ce téléphone chez un concurrent) ».

Je commence ensuite l’installation de Cyanogen à proprement parler. Rien de bien compliqué, la documentation est complète et bien faite. Tout se passe bien, jusqu’à ce que je tente la sauvegarde du système existant. Zut, la partition est chiffrée ! J’avais oublié ce point. Je continue donc la procédure d’installation sans faire de copie de l’existant. Au passage, j’en profite pour installer immédiatement freecygn et me débarrasser le plus possible de Google. L’installation se termine. Je croise les doigts et redémarre. L’écran s’allume, le logo Cyanogen apparaît. C’est bon ça fonctionne, je peux passer à la personnalisation du système.

Avec cette nouvelle installation, je suis donc privé de PlayStore. Cela ne me pose pas de problème, puisque j’utilise F-Droid comme alternative et que 90% des applications que j’utilise en proviennent. Pour éventuellement installer une application disponible uniquement sur le PlayStore de Google, j’ai découvert le très utile GooglePlayDownloader de Tuxicoman et plus récemment, son adaptation disponible via http. Très pratique pour récupérer une application sans avoir à installer le logiciel ou lorsqu’on ne dispose pas d’un ordinateur à proximité.

Mon téléphone est désormais un peu plus libre qu’avant, avec moins de contact avec Google. Une autre possibilité serait de construire soi-même son système Android en partant des sources de l’AOSP. Cette perspective ne me semble pas insurmontable, néanmoins, je n’ai pas spécialement l’intention de réaliser les tests de fonctionnement sur le téléphone que j’utilise quotidiennement au risque de devoir tout réinstaller ou de le rendre inutilisable. Je n’envisage pas non plus de faire l’acquisition d’un deuxième téléphone juste pour les tests (du moins pour le moment). Du reste, j’ai découvert le Jolla phone de l’entreprise finlandaise Jolla (à l’avenir incertain puisque actuellement en difficulté financière) qui m’a l’air d’être une alternative intéressante aux Android de Google, notamment avec son SailfishOS basé sur un cœur Linux et du Qt. Je n’envisage néanmoins pas de changer de téléphone à moyen terme quand mon téléphone actuel fonctionne très bien.

Au revoir Android. Bonjour Cyanogen!

Novembre 2012

En lisant la Newsletter de Novembre 2012 de la FSFE, je suis tombé sur un article qui clarifie les choses du côté de la garantie en cas de modification  du logiciel présent sur le téléphone. Celui-ci explique donc que si vous avez acheté votre appareil dans l’Union Européenne, vous conservez la garantie constructeur de 2 ans même si vous modifiez le côté logiciel. Une bonne nouvelle donc, qui me pousse à ne pas attendre la fin de ma garantie et à installer Cyanogen sur mon téléphone.

Après avoir assister à la conférence Libérez votre Android! de la FSFE lors des Journées du Logiciel Libre de Lyon, je me lance dans l’aventure le soir même. L’installation des logiciels nécessaires se passent plutôt bien, puis vient le premier problème: impossible de démarrer le téléphone en mode fastboot. En effet, l’opérateur a semble-t-il désactivé ce mode… Fin de l’histoire donc; pour l’instant, jusqu’à ce que je trouve une solution.

Juillet 2013

Après différentes recherches complémentaires et diverses lectures pendant ces quelques mois, j’ai fini par trouver une solution à mon problème. Seul petit bémol, celle-ci est payante mais a le mérite de fonctionner: WotanServer. Ce site propose différents services allant du désimlockage à la mise à jour du système. Dans mon cas, l’opération de désimlockage a également pour effet de débloquer le mode fastboot et donc de me permettre de commencer l’aventure Cyanogen.

Je commence donc par l’installation de l’environnement nécessaire sous Arch Linux grâce aux dépôts: yaourt -S fastboot  android-sdk-platform-tools android-udev  android-sdk-build-tools .

Je décide de choisir la version Nightly de Cyanogen pour être sûr de bénéficier de la correction de la faille Master Key touchant toutes les versions d’Android.

Pour la suite, il est donc nécessaire de passer en mode fastboot sur le téléphone, dans mon cas, pour un Xperia Mango SK17:

    • Éteindre le téléphone.
    • Maintenir le bouton volume haut.
    • Connecter le cable USB au téléphone après l’avoir connecter à l’ordinateur au préalable.

Le téléphone devrait avoir démarrer en mode fastboot et la led en haut à gauche s’allumer en bleue.

Enfin, il suffit de suivre le tuto d’installation sur le wiki. Celui-ci est bien détaillé et complet. Simplement, ne pas oublier d’utiliser sudo pour fastboot si besoin. La page Sony pour obtenir le code de déverrouillage du bootloader (Pas nécessaire avec la procédure WotanServer).

J’utilise donc Cyanogen depuis quelques jours maintenant, pas de difficulté particulière pour s’habituer au système. De nouvelles fonctionnalités intéressantes. Enfin, ajout du dépôt d’applications F-Droïd pour avoir accès à un choix d’applications libres.