J'ai eu cette question il y a quelques mois, et j'ai trouvé cette réponse en faisant des recherches. J'ai donc pensé partager mes recherches sur ce site en répondant à ma question, compte tenu des fausses informations en ligne. (Par exemple, le site officiel KingoRoot dit qu'il peut Rooter Android Oreo ce qui est une information complètement fausse)
Comment fonctionnent les applications d'enracinement ?
Il existe un grand nombre d'applications d'enracinement, KingRoot, KingoRoot, Z4Root, Root Genius, Universal Androot pour ne citer que quelques applications populaires ou qui l'ont été. Toutes utilisent des exploits/vulnérabilités/trous dans le système d'exploitation Android pour se donner des privilèges réservés aux applications système ou même au système d'exploitation Android lui-même. Et ensuite, elles montent en lecture/écriture le répertoire nommé /system
qui héberge les processus nécessaires pour faire fonctionner le système et les applications du système, et place un binaire nommé su
dans un lieu du répertoire, à savoir /system/bin/su
. Si une application nécessite un accès Root, l'application exécute ce binaire et vous êtes invité à autoriser ou à refuser l'accès Root.
Les exploits/vulnérabilités découverts se voient attribuer un CVEID et sont ensuite détaillés dans la base de données de l'UE. Site web de CVE et fixé dans le Bulletins de sécurité Android . Un exemple est la tristement célèbre vulnérabilité DirtyC0W, à laquelle on a attribué le CVEID. CVE-2016-5195
qui pesaient et pèsent encore sur les anciens noyaux Linux. Presque toutes les applications mentionnées ci-dessus exploitent cette vulnérabilité.
Pourquoi les applications d'enracinement ne fonctionnent-elles plus ?
Comme indiqué dans les Bulletins ci-dessus, Google corrige chaque mois une série de problèmes dans Android. L'étendue des vulnérabilités est donc fortement décroissante. Toutes les vulnérabilités que les applications d'enracinement utilisent à ce jour ont été corrigées dans les correctifs de sécurité quelque part autour de 2018 janvier. .
Mais il peut y avoir des problèmes que certains fabricants ont oublié de corriger ! Qu'en est-il ?
Sous Android 6.0.0 ou une version plus récente, l'appareil ne démarrera plus. Pour comprendre la raison de ce phénomène, nous devons examiner un concept appelé Chaîne de confiance .
La chaîne de confiance Le CoT, en abrégé, est un mécanisme de sécurité qui a été introduit pour protéger le système d'exploitation Android contre les virus et les modifications non autorisées. Il fonctionne comme une chaîne de matériel et de logiciels, où chaque partie vérifie la partie suivante. Au fur et à mesure :
- Lorsque vous mettez l'appareil sous tension, une fonction matérielle (parfois appelée Boot ROM) démarre. La ROM de démarrage est gravée dans le matériel et ne peut pas être modifiée.
- La ROM de démarrage vérifie le premier logiciel du CdT, le chargeur de démarrage qui est un blob binaire brut, parfois appelé préchargeur. (De même, la ROM de démarrage charge et utilise parfois des partitions/binaires personnalisés spéciaux en fonction du fournisseur). Si le chargeur de démarrage ne passe pas les vérifications, le dispositif s'arrête. S'il réussit, la ROM de démarrage exécute le chargeur de démarrage.
- Le chargeur de démarrage vérifie les options qui lui sont transmises par la ROM de démarrage et sélectionne le mode de démarrage approprié. Les modes de démarrage habituels qui existent sur presque tous les appareils sont le démarrage normal d'Android, la récupération et le démarrage rapide/le téléchargement.
Si le chargeur de démarrage est verrouillé il vérifie si la prochaine partie du CoT à exécuter est intacte, et si elle l'est, le bootloader l'exécute. Si ce n'est pas le cas, il peut s'arrêter, redémarrer ou rester bloqué dans un mode spécial du chargeur de démarrage, selon le modèle de l'appareil.
Si le bootloader est déverrouillé il ne vérifie pas la partie suivante du CdT mais la charge directement.
- La partie suivante est appelée partition de démarrage . Il gère la manière de démarrer le système lui-même. Dans les versions d'Android sur/nouvelles que 6.0.0 (Lollipop), il vérifie également si le système est intact, et s'il est modifié, il s'arrête.
Comme mentionné en premier lieu, ces applications racine exploitent les vulnérabilités pour modifier /system
qui est vérifié par la partition d'amorçage comme indiqué dans le document Étape 4 ci-dessus. Ainsi, toute modification entraînera le non-démarrage de l'appareil. Cet état est communément appelé "soft-brick", qui ne peut être corrigé que par un re-flash.
Les appareils les plus récents nécessitent donc le déverrouillage du bootloader si vous voulez Rooter votre appareil. Ces appareils sont enracinés en flashant une récupération avec plus d'options que la récupération normale (comme TWRP, ClockWorkMod), généralement appelée récupération personnalisée, et en l'utilisant pour modifier la partition de démarrage (et désactiver la vérification du système). Il est également possible de modifier directement la partition de démarrage sans recourir à une restauration personnalisée.
Certains fabricants proposent un moyen de déverrouiller le bootloader, d'autres non. Les appareils populaires dont le bootloader est verrouillé (par exemple les appareils Samsung S verrouillés par les opérateurs américains) ont tendance à être exploités par la communauté des moddeurs Android.
Mon appareil est toujours Android 5.1.1 ou plus ancien ! Dois-je les utiliser pour Rooter ?
La plupart de ces anciens appareils peuvent être rootés par les applications de rootage. Donc, vous pourriez. Le devriez-vous ? Cela dépend de vos préférences. L'accès Root donne le pouvoir sur tout dans le système d'exploitation, et avec l'accès Root, il ne faut généralement pas même une microseconde pour s'assurer que votre appareil ne démarrera plus jamais. Il est très probable que les applications d'enracinement ne feront jamais cela, mais elles pourraient le faire. De plus, avec Root, une application pourrait accéder à tout ce que votre appareil fait, et à tout ce qu'il contient dans sa mémoire, y compris vos informations de carte de crédit, vos mots de passe, etc. Si cela vous semble être une menace sérieuse pour votre vie privée, n'utilisez pas les applications Root. Si vous ne vous souciez pas de cela, vous pouvez les essayer.
Si vous êtes assez malin, vous trouverez les sources de presque tous les exploits que ces applications Root utilisent. Vous pouvez essayer de les rechercher par CVEID, les chercher dans Git, les compiler et les exécuter et essayer d'obtenir un shell Root. su
et les autres dépendances vous-même.
De plus, KingoRoot est connu pour envoyer des données très sensibles comme l'IMEI et le numéro de série à ses serveurs. Il y a de fortes chances qu'ils ne les utilisent jamais, mais c'est à vous de décider en fin de compte. Et KingRoot est connu pour avoir installé une porte dérobée dans son SDK qui permet à certaines applications d'obtenir un accès Root non autorisé par l'utilisateur.
Conclusion
L'époque des applications d'enracinement est révolue depuis longtemps. Les applications d'enracinement ne fonctionnent plus et si vous les utilisez sur des versions Android plus récentes, vous risquez d'endommager votre appareil et de perdre probablement toutes vos données. Si vous les utilisez sur des versions Android prises en charge, elles fonctionneront la plupart du temps, mais vous devez tenir compte de certains problèmes de confidentialité et de sécurité avant de vous lancer.
J'espère que mes recherches aideront à l'avenir quelqu'un qui rencontre le même problème que moi :)