O, ¿cómo puedo rootear mi dispositivo sin un rooter?
Las instrucciones de enrutamiento para dispositivos Android que he visto suelen tener la siguiente forma:
- Descargar
Gingerbreak.apk
- Ejecute Gingerbreak, haga clic en "dispositivo raíz"
- Observe que
Superuser.apk
se ha instalado mágicamente, posiblemente junto conbusybox
y otras cosas, y disfrute de su bondad fundamental.
Lo que quiero saber es esto: ¿cómo ocurre realmente el rooting? ¿Qué hace Gingerbreak?
Entiendo el resultado final del enraizamiento:
su
está presente y trabajandoSuperuser.apk
está instalado y controla el acceso asu
- Varias utilidades están presentes, proporcionadas por BusyBox (¿opcional?)
También creo que entiendo la idea básica de cómo Gingerbreak comienza: explota alguna vulnerabilidad de escalada de privilegios locales y utiliza sus nuevos poderes para implementar Superusuario y todo lo que sea necesario.
Entonces, a menos que me equivoque en algo de lo que he explicado anteriormente, lo esencial que quiero saber es qué hace el instalador raíz para implementar y activar Superusuario. Parece que simplemente poner Superuser.apk
en el lugar correcto no sería suficiente: ¿cómo se permite el acceso a la raíz? ¿Cómo se engancha para moderar ese acceso para otras aplicaciones?
¿Qué hace Gingerbreak después de la explotación para habilitar y asegurar el acceso a la raíz?
Respuestas:
Lo que hacen el APK y el exploit (generalmente) es lo siguiente:
Como ejemplo, esta página detalla cómo la ira contra la explotación de la jaula intenta obtener privilegios elevados.
fuente
Después de mucho cavar, finalmente lo descubrí. Me equivoqué acerca de dónde está la magia: no está en el script del instalador; todo lo que tiene que hacer es poner el
su
ySuperuser.apk
los binarios en el lugar correcto y establecer sus permisos. Por lo tanto, es tan simple como colocar archivos en su lugar y establecer permisos. Sin cableado mágico.La magia ocurre en el
su
binario (ver la fuente y también esta pregunta ). Estaba (incorrectamente) pensando quesu
era un estándarsu
, y que las cosas de alguna manera estaban conectadas a un acceso moderado a ese binarioSuperuser.apk
.Incorrecto. Lo que sucede es mucho más simple: Superuser proporciona una implementación personalizada
su
que autentica el acceso a través de Superuser y su base de datos de aplicaciones autorizada.Entonces, el proceso de rooting es tan simple como dijo @Sparx. El software desplegado contiene la magia.
fuente
su
que no sea mágico en absoluto, lo único mágico es que el sistema operativo lo trata especialmente. Todo lo que tiene que hacer es devolver "OK" o "Not OK" cuando el sistema operativo le pregunte si permite que una aplicación en particular eleve los permisos. Si falta o siempre devuelve "No está bien", las aplicaciones normales nunca pueden obtener root. Por lo tanto, el enraizamiento es básicamente el proceso de colocar unsu
binario que a veces puede devolver "OK", a la ubicación protegida en un sistema que se supone que no permite que esto se haga.all that has to do is put the su and Superuser.apk binaries in the right place and set their permissions
como si esto fuera fácil sin un exploit, el exploit es la magia.