Hace un par de años, era fácil rootear cualquier dispositivo: instale KingRoot, KingoRoot o una aplicación similar, presione el botón ROOT grande y deje que haga el resto. Después de 5 minutos más o menos, un mensaje verde "Root Succeeded!" Aparecerá un mensaje y podemos optar por mantener la aplicación raíz o desinstalarla e instalar una aplicación de administrador raíz limpia como SuperSU/Superuser.
¿Cómo trabajan?
¿Por qué ya no están trabajando?
Y si funcionan, ¿debería usarlos o no?
Tuve esta pregunta hace unos meses y encontré esta respuesta a través de algunas investigaciones, así que pensé en compartir mi investigación en este sitio respondiendo a mi pregunta, considerando la información falsa en línea. (Por ejemplo, el sitio oficial de KingoRoot dice que puede rootear Android Oreo, lo cual es información completamente incorrecta)
¿Cómo funcionan las aplicaciones de rooteo?
Hay bastantes aplicaciones de enraizamiento, KingRoot, KingoRoot, Z4Root, Root Genius, Universal Androot, por nombrar algunas aplicaciones populares/que solían ser populares. Todos ellos usan exploits/vulnerabilidades/lagunas en el sistema operativo Android para otorgarse privilegios reservados a las aplicaciones del sistema o incluso al propio sistema operativo Android. Y luego montan como lectura/escritura el directorio llamado /system
que alberga los procesos necesarios para que el sistema funcione y las aplicaciones del sistema, y colocan un nombre binario su
en un lugar del directorio, es decir /system/bin/su
, . Si alguna aplicación requiere root, la aplicación ejecuta ese binario y verá un mensaje para permitir o rechazar el acceso de root.
Los exploits/vulnerabilidades que se descubren reciben un CVEID, y luego se detallan en el sitio web de CVE y se corrigen en los Boletines de seguridad de Android . Un ejemplo es la infame vulnerabilidad DirtyC0W a la que se le otorgó el CVEID CVE-2016-5195
, que afectó y aún afecta a los kernels de Linux más antiguos. Casi todas las aplicaciones mencionadas anteriormente explotan esta vulnerabilidad.
¿Por qué las aplicaciones de rooteo ya no funcionan?
Como se menciona en los Boletines anteriores, Google corrige una serie de problemas en Android todos los meses. Por lo tanto, el alcance de las vulnerabilidades está disminuyendo considerablemente. Todas las vulnerabilidades que utilizan las aplicaciones de enraizamiento hasta la fecha se corrigieron en los parches de seguridad alrededor de enero de 2018 .
¡Pero puede haber problemas que algunos fabricantes olvidaron parchear! ¿Que hay de ellos?
En Android 6.0.0 o posterior, eso solo hará que el dispositivo ya no arranque. Para entender la razón de esto, tenemos que mirar un concepto llamado Cadena de Confianza .
Chain of Trust , abreviado CoT, es un mecanismo de seguridad que se introdujo para proteger el sistema operativo Android de virus y modificaciones no autorizadas. Funciona como una cadena de hardware y software, donde cada parte verifica la siguiente parte. Paso a paso:
Si el cargador de arranque está bloqueado , verifica si la siguiente parte de CoT que se ejecutará está intacta y, si lo está, el cargador de arranque la ejecuta. Si no es así, puede apagarse, reiniciarse o atascarse en un modo de cargador de arranque especial según el modelo del dispositivo.
Si el cargador de arranque está desbloqueado, no verifica la siguiente parte de CoT, sino que la carga directamente.
Como se mencionó primero, estas aplicaciones raíz explotan las vulnerabilidades para modificar /system
, lo cual es verificado por la partición de arranque como se mencionó en la Etapa 4 anterior. Por lo tanto, cualquier modificación hará que el dispositivo no arranque. Este estado se conoce comúnmente como un "ladrillo blando", que solo se puede solucionar con un re-flash.
Por lo tanto, los dispositivos más nuevos requieren que el cargador de arranque esté desbloqueado si desea rootear su dispositivo. Estos dispositivos se enraizan al actualizar una recuperación con más opciones que la recuperación normal (como TWRP, ClockWorkMod), generalmente denominada recuperación personalizada, y usarla para modificar la partición de arranque (y deshabilitar la verificación del sistema). También es posible modificar directamente la partición de arranque sin una recuperación personalizada.
Algunos fabricantes ofrecen una forma de desbloquear el gestor de arranque y otros no. Los dispositivos populares con cargas de arranque bloqueadas (por ejemplo, dispositivos Samsung S bloqueados por un operador de EE. UU.) tienden a ser explotados por la comunidad de modding de Android.
¡Mi dispositivo sigue siendo Android 5.1.1 o anterior! ¿Debo usar estos para rootear?
La mayoría de esos dispositivos más antiguos se pueden rootear con las aplicaciones de rooteo. Entonces, podrías. ¿Deberías? Eso depende de tus preferencias. El acceso a la raíz otorga el poder sobre todo en el sistema operativo, y con el acceso a la raíz, por lo general, no toma ni un microsegundo para asegurarse de que su dispositivo nunca vuelva a arrancar. Es muy probable que las aplicaciones de enraizamiento nunca hagan eso, pero podrían hacerlo. Además, con la raíz, una aplicación podría acceder a todo lo que hace su dispositivo y todo lo que tiene en su memoria, incluida la información de su tarjeta de crédito, contraseñas, etc. Si eso le parece una amenaza grave a la privacidad, tal vez no use las aplicaciones raíz. Si no te importa eso, puedes probarlos.
Si es lo suficientemente inteligente, existen las fuentes de casi todos los exploits que usan esas aplicaciones raíz. Puede intentar buscarlos por CVEID, buscarlos en Git, compilarlos y ejecutarlos e intentar obtener un shell raíz, y podrá instalar el su
binario y las otras dependencias usted mismo.
Además, KingoRoot es conocido por enviar datos altamente confidenciales como IMEI y número de serie a sus servidores. Lo más probable es que nunca los usen, pero al final esa es su decisión. Y KingRoot es conocido por instalar una puerta trasera en su SDK que permitió que algunas aplicaciones obtuvieran acceso de root no autorizado por el usuario.
Conclusión
La era de las aplicaciones de enraizamiento se ha ido. Las aplicaciones de enraizamiento ya no funcionan y si las usa en versiones más nuevas de Android, corre el riesgo de dañar su dispositivo y probablemente perder todos sus datos. Si los usa en versiones de Android compatibles, funcionarán la mayor parte del tiempo, pero hay problemas de privacidad y seguridad que debe considerar antes de continuar.
Espero que mi investigación ayude a alguien en el futuro que tenga el mismo problema que yo. :)
Irfan Latif
VERIFIED / SECURE BOOT
sección: forum.xda-developers.com/android/general/…