No le concedes permiso de root a aplicaciones específicas, pero algunas aplicaciones solicitan permiso de root ejecutando el binario su
. Es el desarrollador de la aplicación quien decide si la aplicación realizará algunas tareas con privilegios de root o no. Para permitir que las aplicaciones soliciten privilegios de root, necesitas rootear tu dispositivo utilizando por ejemplo Magisk, SuperSU, etc. (lo que funcione en tu dispositivo).
Cuando obtienes privilegios de root en adb
(por ejemplo, ejecutando adb root
o adb shell su
), se ejecuta el proceso adbd
en el dispositivo como usuario root (UID 0
). Por lo tanto, todos los comandos que ejecutes a través de adb
tendrán privilegios de root. Para otorgar acceso root a aplicaciones necesitas un binario especial su
que no se incluye con Android.
El binario su
habitual (como en cualquier sistema operativo similar a UNIX) hace una transición a UID 0
mediante la llamada al sistema setuid
al kernel. Esto no es posible en Android debido a ciertas restricciones. El binario especial su
(el proporcionado por soluciones de rooting como Magisk) se conecta a un demonio en segundo plano para obtener un shell de root para la aplicación solicitante, donde la aplicación puede ejecutar comandos con privilegios de root. Sin embargo, la aplicación en sí sigue ejecutándose con su propio UID (asignado en el momento de la instalación).
Para más detalles, consulta: