Chaque application installée sur votre téléphone reçoit un UID.
C'est un numéro que Android utilise pour identifier les applications afin de vérifier à partir de quelle application les commandes sont exécutées et de vérifier les autorisations de l'application pour voir si celle-ci est autorisée à exécuter la commande. Les privilèges des applications sont assez restreints dans Android. Elles ne peuvent pas voir les dossiers de données d'autres applications, elles ne peuvent pas modifier le système et elles ne peuvent rien faire si l'utilisateur ne leur donne pas la permission.
Par exemple, quand l'application X est installée, elle reçoit l'UID 10000.
Android crée un dossier de données et un dossier de cache pour cette application. Chaque fois qu'une application veut accéder à ces dossiers, Android vérifie l'UID de l'application. Si ce n'est pas l'UID 10000, alors Android refuse l'autorisation.
Il s'agit d'un bon mécanisme de défense qui limite les capacités des applications potentiellement malveillantes qui ont été installées. Toutes les applications ont un accès restreint à presque tout ce qu'elles n'ont pas apporté elles-mêmes à l'appareil en premier lieu.
De plus, l'utilisateur lui-même a un accès limité au téléphone. Ainsi, un utilisateur qui ne sait pas ce qu'il fait ne peut pas nuire.
C'est là que vient tout le concept de root. Le root est un utilisateur spécial avec l'UID 0 et ses capacités ne sont pas restreintes par le système d'exploitation, ce qui lui permet de modifier le système et d'autres applications.