Aller au contenu
Site Communauté

Root, bootloader, recovery, custom ROM [Libérez votre smartphone #1]


Mreve

Messages recommandés

Tutoriel déplacé dans la partie blog du site !
Ce post n'est plus à jour !

 

Cette première partie sert de base théorique avant le passage en pratique en Partie 2.

Les chouettes personnages illustrés ont été dessinés par Simon "Gee" Giraudo. Le texte dans les bulles est de moi (sauf dans le premier dessin). Les illustrations sont sous licence Creative Commons By Sa.

robot.png

Si vous avez l'habitude de fréquenter le forum, vous connaissez sans doute ma position très tranchée vis à vis de la collecte des données personnelles. Je suis en effet convaincu qu'il ne peut y avoir de démocratie et de liberté sans un réel respect de la vie privée. Il s'agit d'ailleurs plus d'une réalité que d'une conviction mais ce tutoriel n'est pas là pour vous convaincre de l'importance de la vie privée. Si vous êtes ici, c'est que vous êtes déjà sensibilisé et que vous voulez agir.

grisbouille_1.png.e8ff461fdfcc208fdf0ed553e113168f.png

Objectif de ce tutoriel :
* Limiter au maximum la quantité de données que vous donnez aux géants du numérique (GAFAM et BATX pour ne citer qu'eux)
* Remplacer un maximum d'applications propriétaires par des applications FOSS (libres et open-source)
* Être capable d'installer un système d'exploitation alternatif sur son smartphone
* Comprendre le jargon technique couramment utilisé et une introduction à l'architecture d'Android
* Améliorer l'autonomie du téléphone en ne gardant que le nécessaire

Surcouche et rootage

Vous l'avez sûrement déjà constaté, lorsque vous achetez un téléphone, le constructeur vous empêche de faire certaines choses. Il vous est par exemple impossible de modifier ou supprimer des applications systèmes. C'est d'autant plus irritant que la plupart des fabricants préinstallent, en échange d'une jolie somme d'argent, des applications directement dans leurs produits.

canvas.thumb.png.91b49bc3492087a4e88d4e0319fee8d2.png

Difficile de d'obtenir les montants en jeu mais on sait par exemple que Google paie plusieurs milliards de dollars par an pour imposer ses applications sur les smartphones Android.
Source

Cette surcouche constructeur ajoute en plus un tas de fonctionnalités dont vous n'aurez sûrement jamais besoin mais qui elles ne manqueront pas d'avoir besoin de votre batterie !

Si vous avez acheté votre smartphone avec un forfait ou bien directement dans la boutique d'un truand opérateur, vous pouvez être sûr qu'il vous a aussi laissé des surprises (applications, jeux, services...) découlant de partenariats douteux avec des entreprises tierces.

La surcouche Google est la plus difficile à supprimer. Android a beau être un projet open-source (AOSP pour être exact), la version d'Android que vous avez sur votre téléphone contient énormément de composant de Google qui ne sont pas open-source eux. Bien qu'Android reste le noyau de votre système, les Services Google Play n'en sont pas moins devenus une brique bien trop importante...

Bien qu'ils embarquent une multitude de fonctionnalités très pratiques pour les développeurs d'applications mobiles, les Services Google Play sont aussi un drain constant pour la batterie de votre téléphone. Notamment à cause de ses sous-services, comme la géolocalisation (Eh oui ! Comment pensez-vous que Google Maps puisse connaître en temps réel le trafic de la planète entière ?), soient très gourmands et non arrêtable facilement. Essayez de tuer les Services Google Play sur votre appareil pour voir !

Bref, ces restrictions d'utilisation, en plus d'empêcher la suppression des surcouches, empêchent d'installer un autre système d'exploitation (OS).

Quand je dis autre système d'exploitation, comprenez une distribution alternative d'Android. Vous ne pouvez pas installer Windows, MacOS ou GNU/Linux.

Lever ces restrictions consiste à rooter son téléphone. En devenant root (aka administrateur sous Windows) l'utilisateur a tous les droits sur le système. Devenir root est nécessaire mais le rester constamment est dangereux car un contenu malveillant aura lui aussi les pleins pouvoirs. C'est entre autre pour cette raison qu'il est indispensable d'installer une gestionnaire de root.

La référence en la matière est Magisk. Il est open-source (le code est disponible ici) et activement maintenu. Magisk Manager dispose de plein de fonctionnalités extrêmement utiles qui permettent de sécuriser votre téléphone rooté et d'étendre ses capacités (en installant des modules).

Un téléphone rooté fait sauter la garantie de votre appareil ! Heureusement, le rootage est réversible. :c_happy:

Certains applications (bancaires bien souvent) refusent de se lancer si le téléphone est rooté. Heureusement pour nous, Magisk est capable de cacher à n'importe quelle application que le téléphone est rooté ! Obama not bad!

root.png.391a209790c227370366d7732ca27cb7.png

Le bootloader
 
Par sécurité mais aussi pour imposer leur système Android (on parle de stock ROM pour le système d'exploitation préinstallé par le fabricant), les constructeurs verrouillent le bootloader des téléphones. Pour faire simple il s'agit de la première chose qui se lance au démarrage d'un téléphone. C'est lui qui explique au téléphone où trouver le noyau du système (aka le kernel Linux, une partie fondamentale de l'OS). Étant le premier bout de code à être exécuté il est particulièrement lié au hardware (matériel électronique). C'est pour cette raison que chaque constructeur implémente différemment son bootloader. Il n'y a donc malheureusement pas de méthode universelle pour le déverrouiller.

Vous l'aurez compris, le rôle du bootloader est vital et c'est pour cette raison qu'il est autant protégé par les constructeurs. Le déverrouillage du bootloader est une étape nécessaire d'une part pour installer une custom ROM (version d'Android modifiée) et rooter son téléphone.
Un bootloader déverrouillé permet également d'utiliser une custom recovery.
recovery.png.153a277945f2a6289faf9e6db690c4ab.png
La recovery
Une recovery est une partition bootable contenue dans la mémoire interne du téléphone. La recovery fournie par les constructeurs (stock recovery) sert principalement à faire une restauration système. En cas de problème au démarrage du téléphone, le bootloader charge le contenu de la recovery.

Vous avez dit bootable ?

Lorsqu'une partition est bootable cela signifie qu'elle peut être chargée avant le système d'exploitation. C'est effectivement le cas de la partition recovery qui est chargée par le bootloader en cas de problème de boot.

Les partitions dans un téléphone Android

Elles sont généralement au nombre de 10. Je ne vais détailler que les plus importantes (nous concernant) :

/boot
C'est la partition qui contient tout le nécessaire pour faire démarrer Android. Elle contient uniquement le noyau (kernel) et un ramdisk (plus particulièrement le initrd)

/system
Cette partition contient le système d'exploitation Android.

/data
Aussi appelée userdata, elle contient les données utilisateur. C'est dans cette partition que se trouvent vos contacts, photos messages, applications que vous avez installés etc...
Formater cette partition revient à peu de chose près à une restauration d'usine (factory reset).

/recovery
On en parlait justement. Cette partition peut donc être considérée comme la partition bootable de secours du téléphone. Les stock recovery permettent de faire des actions de maintenance basiques. Installer une custom recovery remplace le contenu de cette partition.

/cache
C'est ici qu'Android et les applications conservent (temporairement) les données fréquemment utilisées afin d'être plus faciles et rapide d'accès. On dit que ces données sont en cache. Vider cette partition n'est pas dangereux et n'affecte pas les données personnelles.

/sdcard
C'est un espace de stockage libre que vous pouvez utiliser pour stocker vos fichiers (en complément d'userdata). Les applications viennent très souvent stocker par défaut des données et des paramètres dans /sdcard.

Sur les appareils ayant une carte SD interne et externe, la partition /sdcard est toujours utilisée comme référence à la mémoire interne. Par exemple sur les Samsung Galaxy S, la carte SD est représenté par /external_sd.

/misc
Comme son nom l'indique, elle contient des paramètres divers lié au matériel. Elle est utilisé durant le boot. Cette partition est crucial au bon fonctionnement de l'appareil.

----------------
Pour aller plus loin :
https://source.android.com/devices/bootloader/partitions-images
http://newandroidbook.com/Book/2-Excerpt-Data.pdf

Pour y a-t-il un / au début de chaque partition ?

Les utilisateurs de Linux auront reconnu le système de fichier racine (root). En effet, ce / correspond à la racine des répertoires. Toutes les entrées, y compris les partitions montées, sont placées de façon hiérarchique, comme les branches d'un arbre, par rapport à la partition racine. La notation /XXX permet d'indiquer que XXX est directement accessible depuis la racine
partitions1.png.8ee10457973634594bcdc3f7965c3457.png

Remplacer la stock recovery par une recovery modifiée étend drastiquement les capacités du mode recovery de base.

La référence en la matière s'appelle TWRP et est bien évidemment open-source. Elle donne notamment la possibilité de :
  • Créer/restaurer une sauvegarde complète du téléphone (Image système / Nandroid Backup)
  • Gérer les partitions
  • Flasher ("installer") des ROM, applications, kernels…
twrp.png.f8ebe9dff4a986d81f5c97c7c8388097.png

Avec TWRP d'installée, je vous assure que vous n'avez quasiment plus aucun risque de bricker votre téléphone (mais vous n’êtes pas à l’abri de grosses frayeurs en cas de mauvaise manip de votre part ! :tongue:)

undervolt.png.beb4c4a728cda04acf964ceb7b05dbc1.png

Je vous rassure, c'est fini. C'était le dernier prérequis avant de pouvoir commencer à s'amuser (oui c'est amusant ! :biggrin:). Toutes les manipulations pour arriver à ce stade seront détaillées dans la Partie 2 du tutoriel.

====> Libérez votre smartphone — Partie 2 <====

Modifié par Mreve
Migration vers la section Blog
  • J'adore 7
  • Plusser (+1) 3
Lien vers le commentaire

Super tuto, bravo @Mreve:chuck-norris:

Tu expliques bien ce qu'est réellement Android, le système d'exploitation installé sur nos smartphones, et comment il est personnalisé par le fabricant puis par l'opérateur de téléphonie mobile avec des applications préinstallées aussi inutiles que gourmandes. Un beau bordel ! C'est le même monde que celui ces PC Windows finalement.

Ce qui serait top ce serait un schéma pour nous aider à comprendre toute l'architecture autour d'Android, avec le bootloader, le recovery, le root, l'OS... Le visuel c'est cool :c_wink: Je sais pas si ça peut se trouver !

Je ne connaissais pas le terme BATX (Baidu, Alibaba, Tencent et Xiaomi). Tu fais bien de ne pas oublier le "M" de GAFAM, la plupart des médias l'omettent !

Il y a 23 heures, Mreve a dit :

la boutique d'un truand opérateur

:c_lol2:

--

Vivement la partie 2 :c_sunglasses:

  • J'aime 1
  • Plusser (+1) 1
Lien vers le commentaire

Merci @Le Crabe  ! :c_happy:

Le 07/11/2019 à 15:27, Le Crabe a dit :

Ce qui serait top ce serait un schéma pour nous aider à comprendre toute l'architecture autour d'Android, avec le bootloader, le recovery, le root, l'OS... Le visuel c'est cool :c_wink: Je sais pas si ça peut se trouver !

Tu as tout à fait raison. Je vais voir ce que je peux faire !

(Je termine ma Partie 2 avant :wink:)
 

Le 07/11/2019 à 15:27, Le Crabe a dit :
Le 06/11/2019 à 15:42, Mreve a dit :

la boutique d'un truand opérateur

:c_lol2:

Mes doigts ont ripé sur le clavier. :rolleyes:

Lien vers le commentaire
  • 3 semaines plus tard...

Salut @zelandonii

Il y a 5 heures, zelandonii a dit :

Magisk permet-il de contourner les "services Google play" et faire ainsi croire qu'ils sont installés ?

Non.

À ma connaissance, l'unique solution consiste à installer MicroG qui est une ré-implémentation libre des Services Google Play.

Vu que tu as LineageOS c'est relativement simple. Il faut d'abord s'assurer que ta version supporte le signature spoofing. Si tu es sur un build officiel classique ça m'étonnerai puisque tu n'as pas MicroG.

2 possibilités s'offrent à toi :

  • Réinstaller proprement la version MicroG de LineageOS
  • Faire une dirty install (en flashant un ZIP de migration)

Tout est expliqué ici

Je te conseille de lire leur FAQ notamment pour comprendre pourquoi la version "classique" de LineageOS ne supporte pas le signature spoofing :

Citation

Wait, on their FAQ page I see that they don't want to include the patch for security reasons. Is this ROM unsafe?
No. LineageOS' developers decided not to include this patch for various reasons.
The signature spoofing could be an unsafe feature only if the user blindly gives any permission to any app, as this permission can't be obtained automatically by the apps.
Moreover, to further strengthen the security of our ROM, we modified the signature spoofing permission so that only system privileged apps can obtain it, and no security threat is posed to our users.

Garde donc en tête, surtout si ton téléphone est rooté, de faire attention avec les permissions que tu donnes à des applications dont tu n'as pas 100% confiance.

Modifié par Mreve
  • Plusser (+1) 1
Lien vers le commentaire
  • 3 semaines plus tard...
  • 2 semaines plus tard...

@Le PoissonClown

Je viens discrètement de publier la troisième et dernière partie sur mon blog... :c_wink:

Bon oui ça fait pas sérieux tout ça ! :ph34r:

J'aurais pu (et dû) la publier bien bien plus tôt (30 décembre) car elle était fini à ce moment là mais j'ai préféré passer du temps sur mon script de debloat universel que je mentionne dedans.

Ce message n'est pas une annonce officielle. J'ai encore beaucoup beaucoup de choses à faire avant d'en parler autour moi. La documentation notamment prend énormément de temps.

Enfin bon, il faut bien que je publie cette partie 3 quand même.

Modifié par Mreve
  • Plusser (+1) 2
Lien vers le commentaire
  • Mreve a verrouillé ce sujet
Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.
  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...