4 votos

¿Cómo regula su los permisos de las aplicaciones?

He visto muchas aplicaciones en el mercado que dan funcionalidad de superusuario a las aplicaciones. Sin embargo, hay un requisito previo de rootear el teléfono. Tengo curiosidad por saber cómo un teléfono rooteado ya tiene esos permisos?

He descargado el código fuente y he conseguido localizar el archivo su.c que podría invocar una aplicación para cambiar. Pero todavía no estoy seguro. ¿Puede alguien dar una idea sobre esto?

¿En qué archivos reales se delegan los permisos? ¿Todas las aplicaciones del sistema tienen permisos Root al iniciarse?

0 votos

setuid no funciona en Android desde la versión 4.3. Así que un demonio privilegiado se ejecuta en el arranque: ¿Cómo funciona Magisk?

20voto

Lie Ryan Puntos 15629

Érase una vez, hay un ciudad amurallada con un gran, puerta cerrada atado por una cerradura mágica que sólo puede abrirse con una espada mágica. Según las tradiciones de los habitantes de la ciudad, quien traiga la espada mágica y desbloquee la puerta mágica está destinado a ser el señor de la ciudad.

Un día, un joven héroe llega a la ciudad, trayendo consigo la espada mágica que tomó del root del árbol Yggdrasil. Golpeó ligeramente la espada en la puerta, e inmediatamente la puerta mágica se desbloqueó y se abrió de par en par. Los habitantes de la ciudad aplaudieron y, según su tradición, ungieron al joven héroe como señor de la ciudad.

Como señor de la ciudad, hay muchas tareas que tiene que hacer, una de las cuales es garantizar la seguridad de su pueblo, especialmente ahora que la puerta está abierta y los bandidos y ladrones pueden intentar entrar en la ciudad y robar las pertenencias de los ciudadanos.

Para asegurar los días de paz de los habitantes de la ciudad, el sabio señor contrató a un administrador de confianza del SU para que vigilara la puerta; obedientemente, el administrador del SU entra en la ciudad, y cerró la puerta tras de sí y pone una cerradura que sólo él puede abrir, luego crea un gran pomo para que los extraños llamen a la puerta, un pequeño agujero en la puerta donde puede asomarse al exterior y mirar a los extraños, luego pregunta el señor de la ciudad si permite o no la entrada de extraños.

En la eternidad, el sabio señor gobernó la ciudad durante mucho tiempo y los habitantes de la ciudad vivieron felices para siempre.

7 votos

Esto es genial (no downvote), pero un poco demasiado obtuso (no upvote).

2 votos

Me he reído con esto

1 votos

Una buena historia con final feliz.

7voto

Bryan Denny Puntos 18960

¿Qué archivos reales delegan los permisos?

Normalmente hay una aplicación de "superusuario" que se incluye en los procesos del rooting. Esta aplicación es el guardián/controlador de qué aplicaciones obtienen acceso Root. Cada vez que una aplicación solicite acceso Root, esta aplicación aparecerá y te pedirá que apruebes o rechaces la solicitud.

¿Todas las aplicaciones del sistema tienen permisos de root en el inicio?

Que yo sepa, todo debe pasar por la aplicación "superusuario".

0 votos

A menos que exploten alguna otra hazaña para conseguir Root. Esto, con suerte, no es una gran amenaza para la mayoría de los usuarios.

3voto

Michael Ekstrand Puntos 219

Yo mismo he estado buscando una respuesta para esto, y la información ha sido realmente esquiva. Pero entre otras respuestas y preguntas aquí, y la lectura del blog Superuser, creo que he sido capaz de pieza juntos cómo funciona.

En un sistema *Nix estándar, su comprueba si el usuario está autorizado a convertirse en Root (en algunos sistemas, todos lo están; en otros, tienen que ser miembros del grupo wheel o algo así), pide la contraseña de root y luego concede el acceso a root.

En un Android rooteado, lo que parece ocurrir es que Superuser viene con una versión personalizada de su que averigua qué aplicación la ha invocado, y luego comprueba en la base de datos de acceso de superusuario si esa aplicación tiene o no permiso para convertirse en Root. Si lo está, entonces hace el salto a Root. Si no es así, se lanza la interfaz de usuario de autorización.

2voto

mercutio Puntos 5828

Un desarrollador tiene que llamar a su dentro de la aplicación. una vez que llama a eso, y el usuario ha concedido permiso para usar su , entonces ejecutan comandos en el shell que tiene permisos de Root.

En cierto modo, las aplicaciones del sistema tienen permisos "especiales", pero no Root como los que obtendría una aplicación al llamar a su . Tienen los permisos que Android concede a las aplicaciones del sistema.

0voto

Tisha Puntos 6

Los sistemas basados en Unix tienen un tipo de permiso especial llamado setuid que permite que un archivo sea ejecutado por un usuario que no sea Root como si fuera el usuario Root.

En nuestro caso particular, su tiene el setuid permiso y por lo tanto se está ejecutando como el root usuario.

Una vez invocado el su binario comprueba (con la aplicación SuperUser) si debe conceder la solicitud de root a la aplicación solicitante, si la solicitud es aprobada entonces se abre un shell como root (que su puede hacer ya que él mismo se ejecuta como root debido a la setuid permiso que tiene).

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X