¿Qué es exactamente superuser.apk y su?

32

He leído mucho sobre el rooteo de dispositivos Android. Realmente quiero saber exactamente qué está sucediendo en cada paso antes de comprometerme con el proceso.

Estoy un poco confundido sobre de dónde provienen los archivos superuser.apk y su. No parece que sean archivos oficiales de Google, sino más bien archivos creados por un individuo (aleatorio). Dicho esto, ¿qué tan seguros son estos archivos?

De la investigación, tengo una comprensión general de su propósito. Me preguntaba si alguien sabía qué eran estos archivos (¿ejecutables? ¿Scripts?), Qué contenían y cómo funcionan en general.

¡Gracias!

Kaspnord
fuente
Relacionado: ¿Cómo funciona Magisk?
Irfan Latif

Respuestas:

32

su(abreviatura de Switch User) es un ejecutable binario. Lo utilizan Android y otros sistemas basados ​​en * nix para permitir que un proceso cambie la cuenta de usuario con la que está asociado. La razón por la que es importante desde el punto de vista de enraizamiento es que susin ningún otro parámetro se cambiará al usuario raíz, lo que significa que los procesos que requieren permiso de root para su funcionalidad deben invocar su(ya que de forma predeterminada no se ejecutan desde root).

Superuser es una aplicación de Android (.apk es un paquete de aplicación de Android). Funciona como una especie de "gatekeeper" para el subinario. Las aplicaciones que intenten invocar suse verán obligadas a enrutar a través de Superusuario, lo que luego le preguntará al usuario si es una aplicación desconocida o nueva. Luego, el usuario tiene la opción de aprobar o denegar el acceso suy, opcionalmente, hacer que Superusuario recuerde su decisión para que pueda aplicarla automáticamente para las llamadas posteriores de esa aplicación. Al hacer esto, las únicas aplicaciones que tienen permisos de root son las que el usuario elige.

La fuente de ambas aplicaciones está disponible en Github, y puede ser examinada / auditada por cualquiera que desee verla (Superusuario aquí , su aquí ).

Puede encontrar más detalles, así como registros de cambios, en el sitio web de Superuser .

Otras preguntas relacionadas con entusiastas de Android:

eldarerathis
fuente
1
Realmente aprecio la respuesta detallada y los enlaces! ¡Gracias!
kaspnord
1
¿Hay alguna alternativa / equivalente a estos archivos para el rooteo de Android?
kaspnord
1
@kaspnord: No, sues el mismo archivo utilizado para otros sistemas operativos Linux / Unix, y no hay ninguna alternativa a eso, pero podría haberlo para superuser.apk. ¿Por qué quieres una alternativa?
kyrias
3
Tengo curiosidad porque estos archivos, aunque bendecidos por la comunidad de código abierto, no parecen tener un estándar de ningún tipo (es decir, no oficialmente Google). Entonces, eso me lleva a pensar que es posible que otras personas creen otras variantes de los mismos archivos. Para mí personalmente, quiero saber exactamente lo que estoy usando y poniendo en mi dispositivo en lugar de confiar en soluciones de otros donde no puedo saber con 100% de confianza lo que contienen los archivos.
Kaspnord
11

El código fuente de Superuser está disponible en github, el autor principal de Superuser son Adam Shanks ( ChainsDD ) y Koushik Dutta ( koush , también autor de Clockwork Recovery).

Koushik Dutta explicó en su blog cómo funciona Superuser.apk ; tenga en cuenta que la publicación es de la primera encarnación de la aplicación Superusuario, muchas cosas han cambiado desde entonces y parte de lo que se escribió allí ya no es correcto para la implementación moderna de superusuario / su, pero los conceptos básicos deberían ser los mismos.

Ciertamente, su y Superuser pueden ser reemplazados por alternativas, pero en realidad no serviría de mucho, ya que la facilidad que usa su (es decir, las llamadas al sistema exec () y setuid () está disponible para cualquier ejecutable, dado que el ejecutable tenía el correcto bits de permiso (es decir, el bit setuid se establece en root). En esencia, su es un programa muy simple, simplemente genera un proceso como otro usuario; La comprobación de seguridad real la realiza el núcleo.

Por lo tanto, siempre que obtenga la aplicación oficial de usuario y superusuario no modificada y esté instalada correctamente con el permiso adecuado, no tiene nada de qué preocuparse, es de código abierto y seguro, puede verificar la fuente codifícate en github. Sin embargo, es posible obtener un superusuario / su binario troyano, así que asegúrese de que donde sea que obtenga su superusuario / su binario sea confiable (o compile su / superusuario si es realmente paranoico).

Lie Ryan
fuente