Il y a plusieurs parties à ce processus :
-
Déverrouillage ou contournement de toute protection du chargeur de démarrage, permettant l'écriture de la partition système.
-
Installer les binaires pertinents pour acquérir Root.
Ces deux étapes peuvent varier d'un téléphone à l'autre, mais voici quelques exemples :
Déverrouiller le bootloader
Sur de nombreux téléphones OEM, cela implique traditionnellement l'exploitation d'une vulnérabilité dans une partie du système afin de réécrire certaines partitions. Parfois, cela implique de flasher un nouveau chargeur de démarrage, une nouvelle récupération (ce qui devient courant) ou de démarrer temporairement à partir d'une image sur USB, afin d'obtenir un accès de récupération à la partition du système.
Sur la gamme de téléphones Nexus et les téléphones de développement publiés par Google, il suffit d'exécuter "fastboot oem unlock", bien que cela efface le téléphone. De plus, cédant à la pression de la communauté des développeurs, de nombreux fabricants proposent désormais une voie officielle pour déverrouiller le bootloader.
Installer les binaires de la racine.
Une fois que la partition système a été craquée, le reste est assez simple. Il s'agit essentiellement d'installer le binaire 'su' (qui permet d'obtenir des permissions de super-utilisateur), et un apk qui fournit une interface Android à 'su', et avertit l'utilisateur lorsqu'une application demande la permission Root.
Il existe plusieurs approches pour cette deuxième étape. La plus courante consiste à utiliser une ROM pré-enracinée fournie par la communauté. Il y a souvent un choix, depuis la ROM stock fournie par le fabricant et ensuite bricolée pour ajouter les binaires, jusqu'à toute une gamme de ROMs AOSP (Android Open Source Project), comme CyanogenMod (à laquelle je contribue).
Il existe d'autres méthodes. Par exemple, certains téléphones (comme le Galaxy Nexus) peuvent utiliser un chargeur de démarrage "superboot", qui modifie votre ROM existante au cours du processus de démarrage. Il est flashé sur votre téléphone en utilisant le programme fastboot.
En général, il existe une seule approche privilégiée pour un téléphone donné.