4 votes

Comment su régit-il les autorisations d'applications ?

J'ai vu beaucoup d'applications sur le marché qui donnent la fonctionnalité de super utilisateur aux applications. Cependant, il y a un pré-requis pour enraciner votre téléphone. Je suis curieux de savoir comment un téléphone enraciné a déjà ces permissions ?

J'ai téléchargé le code source et j'ai réussi à localiser le fichier su.c qui pourrait invoquer une application à modifier. Mais je ne suis toujours pas sûr. Quelqu'un peut-il me donner un aperçu de la situation ?

Quels fichiers réels délèguent des permissions ? Toutes les applications du système reçoivent-elles des autorisations Root au démarrage ?

20voto

Thej Points 655

Il était une fois, il y a un ville fortifiée avec un grand, porte fermée lié par une serrure magique qui ne peut être ouverte que par une épée magique. Selon les traditions des citadins, quiconque apporte l'épée magique et déverrouille la porte magique est destiné à devenir le seigneur de la ville.

Un jour, un jeune héros arrive dans la ville, apportant avec lui l'épée magique qu'il a prise au Racine de l'arbre Yggdrasil. Il tapa légèrement l'épée sur la porte, et immédiatement la porte magique se déverrouilla et s'ouvrit. Les habitants de la ville ont applaudi et, comme le veut la tradition, ils ont consacré le jeune héros comme le seigneur de la ville.

En tant que seigneur de la ville, il a de nombreuses tâches à accomplir, l'une d'entre elles étant d'assurer la sécurité de son peuple, en particulier maintenant que la porte est ouverte des bandits et des voleurs peuvent tenter de pénétrer dans la ville et de voler les biens des citadins.

Pour assurer la tranquillité des habitants de la ville, le sage seigneur a engagé un gestionnaire de SU de confiance pour garder la porte ; consciencieusement, le gestionnaire de SU entre dans la ville, et il a fermé la porte derrière lui Il crée ensuite un gros bouton de porte pour que les étrangers puissent frapper à la porte, un petit trou sur la porte où il peut jeter un coup d'oeil à l'extérieur et regarder les étrangers, puis demande le seigneur de la ville de laisser entrer ou non des étrangers.

Dans l'éternité, le sage seigneur a régné sur la ville pendant longtemps et les citadins ont vécu heureux pour toujours.

7voto

Bryan Denny Points 21817

Quels sont les fichiers réels délégués les permissions ?

Il y a généralement une application "superutilisateur" qui est incluse dans les processus d'enracinement. Cette application est le gardien/contrôleur des applications qui obtiennent un accès Root. Chaque fois qu'une application demande un accès Root, cette application apparaîtra et vous demandera d'approuver ou de refuser la demande.

Toutes les applications du système sont-elles données les autorisations Root au démarrage ?

Pour autant que je sache, tout doit passer par l'application "superutilisateur".

3voto

JavaRocky Points 141

J'ai moi-même cherché une réponse à cette question, et l'information m'a échappé. Mais entre les réponses et les questions posées ici, et la lecture du blog de Superuser, je pense que j'ai réussi à comprendre comment cela fonctionne.

Dans un système *Nix standard, su vérifie si l'utilisateur est autorisé à devenir Root (sur certains systèmes, tout le monde l'est ; sur d'autres, il doit être membre du groupe wheel ou autre), demande le mot de passe Root, puis accorde l'accès Root.

Sur un Android enraciné, ce qui semble se passer est que Superuser est livré avec une version personnalisée de su qui détermine quelle application l'a invoquée, puis vérifie dans la base de données d'accès des superutilisateurs si cette application est autorisée ou non à devenir Root. Si c'est le cas, elle fait le saut vers Root. Sinon, elle fait apparaître l'interface utilisateur d'autorisation.

2voto

mercutio Points 5828

Un développeur doit appeler su au sein de l'application. Une fois qu'elle l'a appelé, et que l'utilisateur a accordé la permission d'utiliser su puis ils exécutent des commandes dans le shell qui a les permissions Root.

D'une certaine manière, les applications système ont des permissions "spéciales", mais pas Root, comme une application l'obtiendrait en appelant su . Ils disposent des autorisations qu'Android accorde aux applications système.

0voto

Les systèmes basés sur Unix ont un type de permission spécial appelé setuid qui permet à un utilisateur non racine d'exécuter un fichier comme s'il était l'utilisateur racine.

Dans notre cas particulier, su a le setuid et il est donc exécuté en tant que root utilisateur.

Une fois invoqué, le su Le binaire vérifie (avec l'application SuperUser) s'il doit accéder à la demande d'accès à l'Internet. root à l'application requérante, si la demande est approuvée, elle ouvre un shell en tant que root (qui su peut faire puisqu'il fonctionne lui-même comme root en raison de la setuid qu'il a).

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X