Le noyau GMS a une tonne de capacités et ne semble pas fonctionner comme une application typique (comme dans une application vivant dans la couche "Applications" illustrée ci-dessous). Je pensais qu'il aurait plus de privilèges et qu'il pourrait se trouver dans la couche Android Framework ou au même endroit que la mention "Core Libraries". Cependant, j'ai remarqué que u0_a12
UID (pas root
o system
) a été rattaché à la com.google.android.gms
indiquant qu'il s'agit d'une application appartenant à l'utilisateur. Quelqu'un peut-il nous donner quelques précisions à ce sujet ?
Réponse
Trop de publicités?Réserves Android Plage d'UID 10000 à 19999 pour les applications - utilisateur, système ou cadre. u0_a12
n'indique pas une application appartenant à un utilisateur, cela signifie simplement que l'UID 10012
qui peut être attribué à n'importe quelle application. Sur Android, chaque application se voit attribuer un UID unique et non nul. Aucune application ne peut s'exécuter avec les privilèges Root, y compris les applications système.
L'UID 0 (Root) est l'utilisateur privilégié dans le contrôle d'accès discrétionnaire (DAC) mais il faut noter que même un processus s'exécutant avec l'UID 0 peut être non privilégié ou un processus avec un UID non nul peut être privilégié. Reportez-vous à Capacités de Linux notamment Capacités ambiantes .
Cependant, le cadre Java d'Android ne s'appuie pas beaucoup sur le DAC, il dispose de son propre mécanisme de contrôle des privilèges par le biais de permissions, par exemple pour le stockage, l'appareil photo, Internet, etc. Autorisations du manifeste ont des niveaux de protection différents. Certains sont accordés sans demander à l'utilisateur, d'autres nécessitent l'approbation de l'utilisateur pour être accordés ou refusés et certains sont réservés uniquement à l'utilisation du système. Pour plus de détails, veuillez consulter cette réponse .
Les services mobiles de Google (GMS) font appel à la fois à la couche applicative et à certaines fonctionnalités réservées aux applications privilégiées, au système et au cadre. Par exemple, les services Play ont android.permission.INTERNET
qui est accordée à chaque application qui en fait la demande. Mais il a aussi android.permission.READ_LOGS
( 1 ) qui a un niveau de protection signature|privileged
et ne peut pas être accordée aux applications installées par l'utilisateur. De même, GMS Core dispose d'un accès illimité à l'Internet, même dans les cas suivants Économiseur de données y Économiseur de batterie modes ( 2 ) ce qui n'est également possible que pour les applications cadres.
RELATION :