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.apkse ha instalado mágicamente, posiblemente junto conbusyboxy 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:
suestá presente y trabajandoSuperuser.apkestá 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.apken 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
suySuperuser.apklos 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
subinario (ver la fuente y también esta pregunta ). Estaba (incorrectamente) pensando quesuera 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
suque 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
suque 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 unsubinario 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 permissionscomo si esto fuera fácil sin un exploit, el exploit es la magia.