-- Leo's gemini proxy

-- Connecting to unbon.cafe:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini;

Nettoyage Android


2023-07-28


Après 10 ans de bons et loyaux services, je comptais remercier mon Sony Xperia M C1904 au profit d'un téléphone plus récent et issu d'une réflexion sur la durabilité[1][2]. C'était sans compter sur mes proches qui changent encore régulièrement de téléphone par plaisir, et qui m'ont généreusement fait don d'un Samsung J7 2016 (SM-J710-FN). Parfaitement fonctionnel, je souhaite limiter autant se peut mes liens avec Google en faveur de solutions libres. Ma première et dernière opération similaire en date remonte à 2013 sur mon téléphone actuel – Qui fonctionne encore. J'ai pour ainsi dire tout oublié des manipulations à réaliser, et les décris ici comme pense-bête pour la prochaine fois (que ce soit à usage personnel ou pour des proches).


À noter que j'ai tendance à laisser l'animation de démarrage[3] telle qu'elle, l'effort à fournir n'est pas immense mais je considère ne pas redémarrer mon téléphone assez souvent pour en profiter pleinement. De plus, les distributions ont généralement leur propre animation.


Plutôt qu'un nettoyage complet, il est possible et de manière assez simple d'utiliser Universal Android Debloater GUI pour désactiver quelques applications système[4]. C'est simplement une interface graphique, sur des scripts Bash, pour des commandes adb.


Arborescence Android


Android Open Source Project est la base d'un système dit Android, c'est une librairie parallèle aux pilotes matériels. Les appareils d'une société sont généralement vendus avec une surcouche propriétaire, en plus d'applications Google standard. Cela n'est pas une fatalité, et pour encourager les alternatives je préfère utiliser une distribution LineageOS agrémentée de la bibliothèque F-droid[5].


bootloader
├── /boot
│   └── /system
│       └── /data
└── /recovery
fastboot

Dans le cadre d'un usage normal, le système est démarré via le `/bootloader`, `/boot`, et `/system`. Seul le dossier `/data` est alors accessible en écriture. Pour pouvoir modifier les dossiers `/boot` et `/system`, il est nécessaire de passer par le dossier parallèle `/recovery`, `/bootloader` ou `/fastboot` en amont.


Débogage Android


La première étape est d'activer le débogage Android via USB. Cette option est disponible dans les paramètres du téléphone dans la catégorie « Options pour développeurs » qui n'est accessible qu'après avoir cliqué sept fois sur le « Numéro de build » dans « État du téléphone » – Cela permet notamment de simuler un écran en nuances de gris, ou désactiver les animations.


Les logiciels Android Debug Bridge et Fastboot permettent respectivement d'accéder aux fichiers sous `/bootloader`, et `/fastboot`.


FRP et OEM


Depuis la version Android 5 (surnommée Lollipop) en 2014, Google a ajouté au système la fonction Factory Reset Protection qui empêche toute modification du système à partir du moment où un compte Google est lié à l'appareil.


Pour le désactiver, il suffit d'effectuer une restauration des paramètres d'usines à partir des options du téléphone.


De son côté, Samsung ajoute sur ses appareils la fonction Original Equipment Manufacturer qui bloque l'accès au bootloader – Nécessaire par la suite.


Une option permet de la désactiver dans les « Options de développeurs ».


Modes de démarrage Samsung


Les appareils Samsung disposent de deux modes de démarrage auxiliaires :


Le mode récupération – Démarrage sur la partition `/recovery` – via les boutons Volume Haut, Accueil, et Marche-Arrêt ;

Le mode téléchargement (Équivalent du Fastboot) via le mode récupération, ou les boutons Volume Bas, Accueil, et Marche-Arrêt.


Les combinaisons ci-dessus sont pour mon appareil, et diffèrent d'un modèle à l'autre.


Protocole Odin


Samsung a développé le protocole propriétaire Odin, et le logiciel éponyme permettant de communiquer avec le logiciel Loke en charge des fonctions d'installation. Pour un public général, on utilise le logiciel libre Heimdall[7] pour interagir avec Loke, les opérations étant faites avec l'appareil en mode Téléchargement.


Son usage n'est pas indispensable pour l'opération, c'est une méthode parallèle à adb, fastboot, et le mode récupération (une fois celui-ci débloqué).


Environnement de Récupération


L'appareillage du téléphone peut être vérifiée à l'aide de la commande `lsusb` après l'avoir connecté en mode Téléchargement.


Bien que disposant d'outils, la partition `/recovery` est relativement sommaire. Il est d'usage d'y installer le logiciel Team Win Recovery Project[8] (d'autres existent) qui remplacera le mode Récupération par défaut.


Via Heimdall, le fichier image TWRP 3.2.1[9] est à installer – Différent de Odin sous Windows, qui utilise l'archive tar.


heimdall flash --RECOVERY recovery.img --no-reboot

Une fois installé l'appareil continue d'afficher le message « Downloading... Do not turn off target!! ».


Une étape de confirmation apparaît généralement après l'installation. Il est également nécessaire selon le modèle de directement redémarrer en mode récupération à défaut de quoi les modifications seraientt écrasées pour restaurer la partition par défaut.


Certains appareils sont pris en charge par la Team Win et il serait possible de passer directement via leur application officielle plutôt que par ces étapes. De la même façon, en compilant soi-même LineageOS l'image de récupération est générée.


Mon conservationnisme m'aura fait perdre l'équivalent d'une journée, il est indiqué explicitement que la distribution que je souhaite installer fonctionne uniquement avec Orange Fox[10] (plutôt que TWRP). À défaut, celui-ci bloquait systématiquement à l'étape de modification de répertoire `/vendor` pour une raison qui m'échappe totalement.


Changer de distribution


Pour changer de distribution il suffit ensuite de démarrer en mode de récupération, de formater les partitions, et d'y installer la distribution adéquate – Ce qui dans mon cas sera une version non-officielle de LineageOS 17, la plus récente me paraissant de confiance[11].


À noter que les instructions fournies pour cette distribution demandent d'utiliser un script de repartition modifiant, entre autres, la taille des différentes partitions. Peut-être accessoire, dans le doute je préfère faire confiance à autrui, et m'exécute.


Les éléments à formater sont les suivants :


System ;

Cache ;

Dalvik ;

Vendor ;

Data ;

Internal storage.


C'est explicite, tout sera supprimé de l'appareil.


Pour installer LineageOS, la méthode officielle est d'utiliser l'archive zip via ADB tandis que l'appareil est en récupération en mode « Apply update »/« Apply from ADB ».


adb sideload Archive.zip

Le terminal devrait retourner le message « Total xfer: 1.00x », des messages d'erreurs peuvent subvenir même en cas de succès.


Autrement, il est possible de directement installer le fichier zip via le mode récupération. Pourquoi s'embêter ?


GApps


Le formatage entraîne la suppression de librairies Google. Celles-ci sont malheureusement nécessaires pour de multiples fonctions de l'appareil, il est ainsi possible d'en télécharger différentes versions selon son propre usage des services Google[12].


En parallèle, microG[13] fournit la fonction de géolocalisation WiFi et cellulaire via des librairies libres.


Comme d'autres avant moi, je considère ne pas avoir besoin de Google[14].


À noter qu'en cas d'utilisation, ces éléments sont à installer après la distribution mais avant son premier lancement !


Droits root


Par défaut, la partition `/system` n'est pas accessible en écriture, et nécessite des droits supplémentaires.


Ce qui peut se faire via l'installation d'une image de la partition `/boot` peut généralement être facilitée via Magisk[15]. D'une manière ou d'une autre la partition est remplacée, et il est préférable de réaliser cette opération avant toute utilisation de l'appareil. L'application Magisk Manager permet de directement transformer une image `/boot` pour en avoir les accès root. Il m'a fallu extraire l'image de l'archive LineageOS sur mon ordinateur, l'envoyer sur mon téléphone (via `adb push`), faire mouliner l'application, puis réinstaller la partition à partir du mode récupération.


Références


[1] Comparatif de téléphones, LeJun 2023

[2] Phone recommendations, GearJail 2023

[3] Android : Animation démarrage, LeJun 2023

[4] Universal Android Debloater GUI, W1nst0n 2021

[5] Android : Magasin d'applications, LeJun 2023

[6] ANDROID DEVICE PARTITIONS and FILESYSTEMS, mirfatif 2017

[7] Heimdall, Dobell 2010

[8] TWRP for j7xelte, TeamWin 2017

[9] TWRP, Team Win 2014

[10] ARM64 LineageOS 17.1 for the Galaxy J7 2016 J710 02.02.2021, GonicTEAM 2021

[11] OrangeFox recovery, OrangeFox 2020

[12] OpenGApps, The Open GApps Team 2015

[13] microG Project, microG Team 2017

[14] Getting rid of trackers using LineageOS, Groeneveld 2021

[15] Magisk Installation, Wu 2016

-- Response ended

-- Page fetched on Sun May 19 01:15:49 2024