23 votos

¿Cómo funciona el rooting?

O bien, ¿cómo puedo rootear mi dispositivo sin un rooter?

Las instrucciones de rooteo para dispositivos Android que he visto suelen ser de la siguiente forma:

  1. Descargar Gingerbreak.apk
  2. Ejecuta Gingerbreak, haz clic en "Root device".
  3. Observe que Superuser.apk se ha instalado mágicamente, posiblemente junto con busybox y otras cosas, y disfrutar de su bondad de root.

Lo que quiero saber es lo siguiente: ¿cómo se produce realmente el rooting? ¿Qué hace Gingerbreak?

Entiendo el resultado final del rooting:

  • su está presente y funciona
  • Superuser.apk está instalado y controla el acceso a su
  • Hay varias utilidades, proporcionadas por BusyBox (¿opcional?)

También creo que entiendo la idea básica de cómo se pone en marcha Gingerbreak - explota alguna vulnerabilidad local de escalada de privilegios y utiliza sus nuevos poderes para desplegar Superuser y cualquier otra cosa que sea necesaria.

Así que, a menos que me equivoque en algunos de los conocimientos que expuse anteriormente, el núcleo de lo que quiero saber es lo que hace el instalador Root para desplegar y activar el Superusuario. Parece que sólo poner Superuser.apk en el lugar correcto no sería suficiente - ¿cómo se le permite el acceso a root? ¿Cómo se conecta para moderar ese acceso para otras aplicaciones?

¿Qué hace Gingerbreak después de la explotación para permitir y asegurar el acceso a root?

16voto

Sparx Puntos 9124

Lo que el APK y el exploit hacen (normalmente) es lo siguiente:

  • El APK pone los archivos adecuados en el lugar correcto para ejecutar el exploit
  • El APK ejecuta el exploit
  • El exploit intenta obtener acceso a root
  • Si tiene éxito, el exploit vuelve a montar /system como lectura-escritura y ejecuta el instalador script
  • El instalador script intenta instalar el binario su y el APK de superusuario, y se reinicia

Como ejemplo, esta página detalla cómo el exploit rageagainstthecage intenta obtener privilegios elevados.

9voto

Michael Ekstrand Puntos 219

Después de mucho indagar, finalmente lo descubrí. Me equivoqué sobre dónde está la magia - no está en el instalador script; todo lo que tiene que hacer es poner el su y Superuser.apk binarios en el lugar correcto y establecer sus permisos. Así que realmente es tan simple como colocar los archivos en su lugar y establecer los permisos. No hay cableado mágico.

La magia ocurre en el su binario (véase el fuente y también esta pregunta ). Estaba pensando (incorrectamente) que su era un estándar su y que las cosas estaban conectadas de alguna manera para moderar el acceso a ese binario a través de Superuser.apk .

Equivocada. Lo que ocurre en realidad es mucho más sencillo: Superuser proporciona una implementación personalizada de su que autentifica el acceso a través del Superusuario y su base de datos de aplicaciones autorizadas.

Así que el proceso del rooting es tan sencillo como dijo @Sparx. El software desplegado contiene la magia.

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