Vous ne accordez pas certaines applications de permissions root, mais certaines applications demandent des permissions root en exécutant le binaire su
. C'est le développeur de l'application qui décide si l'application effectuera certaines tâches avec des privilèges root ou non. Pour permettre aux applications de demander des privilèges root, vous devez rooter votre appareil en utilisant par exemple Magisk, SuperSU, etc. (ce qui fonctionne sur votre appareil).
Lorsque vous obtenez des privilèges root sur adb
(par exemple, en exécutant adb root
ou adb shell su
), cela exécute le processus adbd
sur l'appareil en tant qu'utilisateur root (UID 0
). Ainsi, toutes les commandes que vous exécutez via adb
ont des privilèges root. Pour accorder l'accès root aux applications, vous avez besoin d'un binaire su
spécial qui n'est pas inclus dans Android.
Le binaire su
habituel (comme sur tout système d'exploitation de type UNIX) effectue une transition vers l'UID 0
en effectuant l'appel système setuid
au noyau. Ceci n'est pas possible sur Android en raison de certaines restrictions. Le binaire su
spécial (celui fourni par des solutions de root comme Magisk) se connecte à un démon en arrière-plan pour obtenir un shell root pour l'application demandante, où l'application peut exécuter des commandes avec des privilèges root. Cependant, l'application elle-même fonctionne toujours avec son propre UID (assigné au moment de l'installation).
Pour plus de détails, voir :