3 votes

Est-ce que les utilisateurs du AOSP ont des "noms d'utilisateur"?

Comme le montre cette révision pertinente de la question Stack Overflow, en appelant $USER à l'intérieur d'un terminal (comme Termux), un nom d'utilisateur tel que u0_a272 est fourni. Cependant, chaque développeur d'application à qui j'ai parlé à ce sujet et qui a pu en discuter m'a informé que cette valeur diffère pour chaque application, et la documentation AOSP semble corroborer cela.

En conséquence, devrais-je considérer la section u0 comme l'identifiant de l'utilisateur, et la section _.* comme l'identifiant de l'application, ou une méthode complètement différente est-elle utilisée pour désigner un utilisateur ?

6voto

pr0nin Points 353

Il est bien connu qu'Android utilise le système utilisateur Linux comme système sandbox simple pour séparer les applications les unes des autres.

L'identifiant utilisateur Android tel que u0_a272 (UID 10272) peut être interprété de la manière suivante :

  • u0 signifie qu'il appartient au premier compte utilisateur sur l'appareil (cette fois-ci au compte utilisateur Linux mais utilisateur humain).
  • a est peut-être l'identificateur indiquant que le compte utilisateur appartient à une application (pas sûr à 100%)
  • 272 est le modulo UID Linux UserHandle.PER_USER_RANGE.

L'UID est calculé comme suit :

UID = UserHandle.PER_USER_RANGE × utilisateur + app + Process.FIRST_APPLICATION_UID

Les constantes dans Process spécifient la plage d'UID autorisée pour une utilisation par les applications. Sur Android M, la plage va de 10000 à 19999.

Les comptes utilisateurs sont créés dynamiquement lors de l'installation de l'application, puis enregistrés dans un fichier XML où tous les détails, y compris ceux de toutes les applications installées, sont enregistrés. De cette manière, Android peut rechercher à quel uid appartient quelle application et vice versa.

Pour plus de détails sur ce sujet, consultez les questions connexes et leurs réponses :

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