El proceso consta de varias partes:
-
Desbloqueo o anulación de cualquier protección del cargador de arranque, lo que permite escribir en la partición del sistema.
-
Instalar los binarios pertinentes para adquirir Root.
Estas dos etapas pueden variar de un teléfono a otro, pero aquí tienes algunos ejemplos:
Desbloqueo del cargador de arranque
En muchos teléfonos OEM, esto implica tradicionalmente explotar una vulnerabilidad en parte del sistema para reescribir ciertas particiones. A veces significa flashear un nuevo gestor de arranque, un nuevo recovery (esto es cada vez más común) o arrancar temporalmente desde una imagen a través de USB, con el fin de obtener acceso de recuperación a la partición del sistema.
En la gama de teléfonos Nexus, y en los teléfonos de desarrollo que fueron lanzados por Google, es tan sencillo como ejecutar "fastboot oem unlock", aunque esto borrará el teléfono. Además, cediendo a la presión de la comunidad de desarrolladores, muchos fabricantes ofrecen ahora una ruta oficial para desbloquear el cargador de arranque.
Instalación de los binarios Root.
Una vez que se ha descifrado la partición del sistema, el resto es bastante sencillo. Básicamente se trata de instalar el binario "su" (que otorga permisos de superusuario) y un apk que proporciona una interfaz de Android para "su" y avisa al usuario cuando una aplicación solicita permiso Root.
Hay varios enfoques para esta segunda etapa. El más común ha sido utilizar una ROM prearraigada proporcionada por la comunidad. A menudo hay donde elegir, desde la ROM de fábrica proporcionada por el fabricante y luego modificada para añadir los binarios, hasta toda una serie de ROMs AOSP (Android Open Source Project), como CyanogenMod (a la que yo contribuyo).
Existen otros métodos. Por ejemplo, algunos teléfonos (como el Galaxy Nexus) pueden utilizar un gestor de arranque "superboot", que manipula la ROM existente durante el proceso de arranque. Se flashea en el teléfono mediante el programa fastboot.
Normalmente, habrá un único método preferido para cada teléfono.