0 votes

Comment l'interface Android fonctionne-t-elle au niveau des autorisations Unix ?

J'aimerais savoir comment le backend/les permissions fonctionnent pour Android (j'utilise la v4.1.2 sur un s3 mini).

Sur Android, je suis capable d'exécuter des applications GUI qui ont différents UID/GID-s sur le système, comme on peut le voir dans la sortie ps/top.

Sur un bureau linux, toutes les applications que vous exécutez sont celles de votre utilisateur, à moins que vous n'utilisiez sudo/su pour exécuter un logiciel en tant que quelqu'un d'autre.

Alors, comment Android peut-il exécuter des applications graphiques sans afficher des erreurs de refus de permission et demander un mot de passe dès le départ ?

J'ai cherché dans les résultats de recherche et je n'ai trouvé personne qui en parle.

0 votes

Pourquoi faudrait-il un mot de passe ? Il ne crée pas de mot de passe pour chaque UID en premier lieu. Il n'y a pas d'erreur de refus de permission parce que les permissions ne sont pas refusées.

0 votes

Bienvenue chez les Enthousiastes d'Android ! Mon conseil spécial pour les nouveaux arrivants : la plupart de nos tags ont des tag-wikis sympathiques attachés, avec quelques premiers secours et des liens utiles. Vous avez déjà identifié le bon tag - mais avez-vous vu son wiki encore ? Cela répondrait à certaines de vos questions :) Également pertinent : autorisations de fichiers - ce sont les "permissions Unix" que vous aviez en tête.

0 votes

Deux choses : les applications comme le lecteur de musique ne nécessitent pas de sudo, même sur un bureau Linux, car elles fonctionnent avec les autorisations de l'utilisateur actuel. C'est la même chose avec Android. Et les services qui nécessitent des autorisations supplémentaires, comme le service Google Play, sont alors configurés dans le processus d'installation.

2voto

Andy Brudtkuhl Points 1714

Android utilise (ou les abus Selon votre point de vue, le système d'utilisateurs et de permissions d'Unix sert à autre chose qu'à séparer des personnes différentes sur un même ordinateur. Au lieu de cela, il les utilise pour isoler les applications les unes des autres. Chaque paquet installé (app) a son propre ID utilisateur Unix créé. Les fichiers appartenant à cette application appartiennent à cet utilisateur Unix et ne sont pas accessibles aux autres utilisateurs Unix. Lorsqu'une application est lancée, l'identifiant zygote (qui est comme le processus init ) permet de s'assurer qu'il passe au bon utilisateur Unix avant d'exécuter le code de l'application. De cette façon, les applications ne peuvent pas lire ou écrire des fichiers appartenant à d'autres applications. Si elles essaient de le faire, elles obtiendront le type d'erreurs "permission denied" que vous demandez.

L'interface graphique n'a vraiment rien à voir avec les autorisations du système de fichiers, car ce n'est pas un fichier du système de fichiers. Seul le système Android lui-même peut écrire directement dans le framebuffer : toutes les applications passent par le canal Flinger de surface le compositeur de GUI, pour présenter leurs GUI à dessiner sur l'écran. Cela ne passe pas du tout par le système de permission d'Unix.

1voto

Hu lv Points 11

Parce que tous les processus d'application sont bifurqués de zygote, qui s'exécute avec Root, il peut utiliser n'importe quel uid pendant la bifurcation.

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