Centrale Androïde

Qu'est-ce que l'enracinement de votre téléphone signifie réellement?

protection click fraud

Nous adorons recevoir vos questions. C'est toujours une bonne chose quand nous pouvons nous entraider, et nous apprenons des choses nous-mêmes en cherchant les réponses. Bien que nous ne trouvions pas le temps de répondre à toutes, une certaine question revient parfois suffisamment pour mériter une réponse détaillée.

« Qu'est-ce que racine veux dire?" est l'une de ces questions. Le concept peut être simple pour certains d'entre nous, mais pour beaucoup de gens qui n'ont pas passé de temps à jouer avec Android ou tout autre système d'exploitation basé sur les autorisations, c'est quelque chose à poser des questions. Je vais essayer d'y répondre du mieux que je peux.

Autorisations

autorisations de fichiers

Avant de définir root, il est important de comprendre pourquoi il existe et comment il fonctionne. C'est parce qu'Android utilise des autorisations (des autorisations basées sur Linux, pour être exact) dans la structure des fichiers. Chaque fichier, chaque dossier et chaque partition dispose d'un ensemble d'autorisations. Ces autorisations décident qui peut lire un fichier (consulter ou accéder au contenu sans le modifier), écrire dans un fichier (pouvoir modifier le contenu de ce fichier ou créez un nouveau fichier dans un dossier ou une partition) et exécutez un fichier (exécutez le fichier s'il s'agit d'un type qui peut s'exécuter, comme un application). Cela se fait en fonction des utilisateurs et des autorisations - certains utilisateurs ont accès, tandis que les utilisateurs qui n'ont pas les bonnes autorisations ne peuvent pas y accéder.

Lorsque vous configurez votre téléphone pour la première fois et que vous l'allumez pour la première fois, un identifiant d'utilisateur vous est attribué. Si un autre utilisateur se connecte via Google, un différent ID de l'utilisateur. Lorsqu'une application est installée sur votre téléphone, un ID utilisateur lui est également attribué. Le système lui-même est un utilisateur et d'autres processus qui doivent s'exécuter sur votre téléphone peuvent avoir leur propre ID utilisateur. Tout ce qui peut faire quoi que ce soit sur n'importe quel fichier de votre Android est un utilisateur.

Un système d'utilisateurs et d'autorisations est la façon dont Android garde une trace de qui peut faire quoi.

Disons que vous installez une application de messagerie. Un ID utilisateur lui est attribué lors de son installation. Il obtient également une place sur votre propre partition de données, à laquelle lui seul a accès. Vous disposez des autorisations nécessaires pour exécuter l'application et, lorsque l'application s'exécute, elle est autorisée à accéder à son propre dossier de données et à ses fichiers. L'application peut également demander l'autorisation d'accéder à des éléments tels que votre carnet d'adresses, votre carte SD ou votre photothèque. Si vous répondez oui à ces demandes (ou si vous acceptez les autorisations sur les anciennes versions d'Android), l'ID utilisateur de l'application est accordé l'autorisation d'accéder aux fichiers de données de ces éléments, ce qui signifie qu'il peut consulter le dossier de données et son contenu et éventuellement les modifier ou ajouter nouveaux fichiers. L'application ne peut accéder à aucun fichier de données qu'elle n'est pas autorisée à "examiner". Cela signifie (dans notre exemple) qu'il ne peut pas faire des choses comme regarder la base de données des paramètres ou accéder au dossier de données d'une autre application. Le terme bac à sable est souvent utilisé pour cela - les applications sont en bac à sable et ne peuvent jouer que dans les bacs à sable dans lesquels elles ont la permission d'être.

Pour les fichiers qui sont des programmes et peuvent s'exécuter (comme des applications), le même modèle d'autorisation s'applique. Votre ID utilisateur est autorisé à exécuter les applications que vous avez installées lorsque vous êtes connecté. L'utilisateur du système est autorisé à les exécuter et d'autres utilisateurs au niveau du système peuvent avoir accès aux applications ou à certains processus utilisés par les applications. Les autres applications ne peuvent pas démarrer des applications qu'elles n'ont pas l'autorisation de démarrer. Si vous avez ajouté un utilisateur secondaire, il n'a pas accès à vos applications ou fichiers et vice-versa. Il y a des fichiers, des dossiers et des applications sur votre téléphone que votre ID utilisateur n'a pas avoir la permission de voir, de modifier ou de courir. Habituellement, ces parties d'Android nécessitent des autorisations au niveau du système (l'ID utilisateur du système) pour faire quoi que ce soit, et vous n'êtes pas l'utilisateur du système ou un utilisateur disposant d'autorisations au niveau du système.

Changer les autorisations

SuperSU

Bien qu'il soit techniquement possible de modifier la façon dont votre téléphone démarre et les fichiers qu'il utilise pour démarrer le système en cours d'exécution et attribuer des autorisations élevées à votre ID utilisateur, ce n'est ni sûr ni pratique. Mais Android (et la plupart des systèmes basés sur Unix ou Linux) ont ce qu'on appelle un utilisateur root et prennent en charge le SubstituteUser binaire (considérez un binaire comme une petite application) pour modifier les ID utilisateur. Ceux-ci sont utilisés pour administrer le système au cœur niveau.

Parce que les personnes qui ont fabriqué votre téléphone ne veulent pas que vous ayez un accès facile à l'ID utilisateur racine - et toutes les raisons ne sont pas égoïste car il vous protège également, vous et vos données privées - le binaire SubstituteUser n'est pas inclus dans la plupart des versions de Android. Sans SubstituteUser, nous ne pouvons pas changer notre ID utilisateur. Soit dit en passant, la plupart des choses au niveau du système dans Android ont des noms simples similaires. La sécurité principale (fichiers du chargeur de démarrage et/ou du noyau lui-même) est également conçue de manière à vous empêcher de changer d'ID utilisateur dans le cadre de SELinux (Ssécurité-Enhanced Linux - vous a dit que les noms sont faciles) module de noyau. Certains téléphones (on pense à Knox de Samsung) disposent de protections supplémentaires, et presque toutes les entreprises qui fabriquent des androïdes exigent que, pour apporter des modifications, le chargeur de démarrage doive être déverrouillé afin que ces fichiers puissent être modifiés et vous permettent de changer d'ID utilisateur. Certains téléphones, comme le BlackBerry Priv, vont même plus loin et ne démarreront pas si nous modifions quoi que ce soit (même si nous pourrait).

Pour devenir root, vous avez besoin d'un moyen de changer votre ID utilisateur.

Une fois que nous avons dépassé tout cela - soit en déverrouillant le chargeur de démarrage par des moyens autorisés, soit en utilisant une sorte d'exploit - nous pouvons placer le binaire SU (SubstituteUser) à un endroit où il peut s'exécuter lorsqu'il est appelé à s'exécuter - cela s'appelle un CHEMIN. Si une application se trouve dans le PATH de votre ID utilisateur, elle s'exécutera sans dire au système exactement où elle se trouve. Vous devez également vous assurer que le binaire SU se trouve à un endroit où votre ID utilisateur est autorisé à exécuter (exécuter) des fichiers. Toute autre application (Google Play contient de nombreuses applications nécessitant des autorisations root) aura également besoin du même accès. Lorsque vous utilisez une méthode pour rooter votre téléphone, tout cela est réglé par les personnes qui ont construit la méthode root.

Une fois que tout cela est en place, nous pouvons exécuter le binaire SU (ou une autre application peut exécuter le binaire SU).

Obtenir un accès root

je suis Groot

C'est là que la racine entre en jeu. Le binaire SU utilise des indicateurs lors de son exécution pour indiquer au système vers quel ID utilisateur vous souhaitez basculer. Par exemple, si j'exécute le binaire SU sur mon ordinateur Ubuntu comme ceci "su Jim -c nano", j'exécuterai la commande nano en tant qu'utilisateur Jim (après avoir fourni le mot de passe de Jim). Si vous exécutez le binaire SU sans indicateur ni argument, il vous fait basculer vers l'utilisateur root. Normalement, vous auriez besoin de fournir un mot de passe, mais puisque "root" est un utilisateur inutilisé sur Android, il n'a pas de mot de passe. L'exécution de la commande "su" vous fera basculer vers l'utilisateur root, vous attribuera l'ID utilisateur 0 et vous placera dans le groupe root. Vous êtes maintenant le super utilisateur.

En tant que super utilisateur, vous pouvez faire n'importe quoi sur n'importe quel fichier, dossier ou partition sur votre Android. Par n'importe quoi, nous entendons littéralement n'importe quoi. Vous pouvez supprimer les applications bloatware et vous pouvez également supprimer les fichiers système essentiels qui cassent votre téléphone. Vous pouvez également faire des choses sur le matériel, comme changer la fréquence du processeur et ruiner votre téléphone pour toujours.

Root est le super utilisateur, qui peut tout faire. Et nous voulons dire n'importe quoi.

Les applications peuvent faire la même chose. SU est placé là où il se trouve dans le PATH de l'application et n'importe quelle application peut l'appeler et l'exécuter. Cette application dispose alors d'autorisations de super utilisateur et peut faire tout ce qu'elle veut sur n'importe quel fichier n'importe où sur votre téléphone. C'est pourquoi les personnes qui ont fabriqué votre téléphone ne veulent vraiment pas que vous ayez ce niveau d'accès, et les entreprises qui vous permettent de déverrouiller le chargeur de démarrage et de changer les choses, ne placez toujours pas le binaire SU sur votre téléphone en défaut. Avoir un accès root sans aucun moyen de contrôler qui ou quoi peut l'utiliser est dangereux pour le logiciel de votre téléphone et vos données personnelles.

C'est pourquoi vous devez installer une application qui vous oblige à autoriser l'accès root chaque fois que vous ou une autre application essayez d'invoquer les autorisations de super utilisateur. La plupart du temps, lorsque vous utilisez une méthode racine pour votre téléphone, celle-ci sera incluse, ainsi que d'autres fichiers binaires utiles comme l'ensemble d'outils BusyBox. Si vous avez fait les choses à la main, vous devrez en installer un vous-même. SuperSU par Chainfire dans Google Play est un bon point de départ.

Bouts

De nombreux téléphones et certaines méthodes root font les choses un peu différemment (Android 4.3 a apporté beaucoup de changements) et nécessitent scripts ou un démon (vous verrez des mots comme daemonsu ou su.d mentionnés) au lieu de simplement déposer le binaire SU dans lieu. Ceux-ci sont utilisés pour appeler SubstituteUser afin que vous puissiez passer à l'utilisateur root, tout comme la méthode binaire brute. Les personnes qui ont compris comment rooter votre téléphone ont réglé tout cela et cela fonctionnera de la même manière du côté utilisateur.

Il est également possible de « temp-rooter » certains androïdes. Cela signifie que vous pouvez avoir des autorisations de super utilisateur et faire certaines choses que vous devez faire, mais un redémarrage supprime l'accès root. De même, vous pouvez avoir un "shell-root" où vous ne pouvez accéder à l'utilisateur root que via adb De votre ordinateur.

Enfin, je tiens à souligner que si vous avez ces questions, vous devez vous demander si vous êtes prêt à avoir un Android rooté. Nous ne plaisantions pas lorsque nous avons dit qu'il est facile de ruiner votre téléphone avec un accès SuperUser. Il n'y a aucune raison d'avoir honte que vous ayez besoin de lire un peu ou de poser quelques questions supplémentaires avant de faire des choses qui peuvent casser votre téléphone ou donner à une application rouge un accès aléatoire à toutes vos données.

C'est pour ça qu'on est là.

instagram story viewer