Tenía esta pregunta hace unos meses, y encontré esta respuesta a través de algunas investigaciones, por lo que pensé en compartir mi investigación en este sitio respondiendo mi pregunta, considerando la información falsa en línea. (Por ejemplo, el sitio oficial de KingoRoot dice que puede rootear Android Oreo, que es información completamente incorrecta)
¿Cómo funcionan las aplicaciones de rooteo?
Hay bastantes aplicaciones de rooteo, KingRoot, KingoRoot, Z4Root, Root Genius, Universal Androot para nombrar algunas aplicaciones populares / que solían ser populares. Todos ellos utilizan exploits / vulnerabilidades / lagunas en el sistema operativo Android para darse privilegios reservados a las aplicaciones del sistema o incluso al sistema operativo Android en sí. Y luego se montan como lectura / escritura en el directorio llamado /system
que alberga los procesos necesarios para ejecutar el sistema y las aplicaciones del sistema, y colocan un binario llamado su
en un lugar del directorio, a saber /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 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 que se le dio a CVEID CVE-2016-5195
, que plagó y todavía plaga los núcleos 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 soluciona una serie de problemas en Android cada mes. Por lo tanto, el alcance de las vulnerabilidades está disminuyendo mucho. Todas las vulnerabilidades que las aplicaciones de rooteo usan hasta la fecha se corrigieron en los parches de seguridad en algún lugar 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 no arranque más. 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. Paso a paso:
- Cuando enciende el dispositivo, se inicia una función de hardware (a veces denominada Boot ROM). La ROM de arranque se graba en el hardware y no se puede cambiar.
- La ROM de arranque verifica el primer software en el CoT, el gestor de arranque que es un blob binario sin procesar, a veces llamado preloader. (Además, la ROM de arranque a veces se carga y utiliza particiones / binarios personalizados especiales según el proveedor) Si el gestor de arranque no pasa las verificaciones, el dispositivo se apaga. Si pasa, la ROM de arranque ejecuta el gestor de arranque.
- El gestor de arranque comprueba las opciones que le pasa la ROM de arranque y selecciona el modo de arranque apropiado. Los modos de arranque habituales que existen en casi todos los dispositivos son el arranque normal de Android, Recuperación y Fastboot / Download.
Si el gestor de arranque está bloqueado , verifica si la siguiente parte de CoT a ejecutar está intacta, y si lo está, el gestor de arranque lo 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 gestor de arranque está desbloqueado , no verifica la siguiente parte de CoT, sino que lo carga directamente.
- La siguiente parte se llama partición de arranque . Maneja la forma de iniciar el sistema en sí. En las versiones de Android en / más reciente que 6.0.0 (Lollipop), también verifica si el sistema está intacto, y si se modifica, se apaga.
Como se mencionó primero, estas aplicaciones raíz aprovechan las vulnerabilidades para modificar /system
, lo cual se verifica mediante la partición de arranque como se menciona 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 puede repararse mediante un flash.
Por lo tanto, los dispositivos más nuevos requieren que el gestor de arranque esté desbloqueado si desea rootear su dispositivo. Estos dispositivos se basan en flashear una recuperación con más opciones que la recuperación normal (como TWRP, ClockWorkMod), generalmente conocida como 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 dan una forma de desbloquear el gestor de arranque, y otros no. Los dispositivos populares con bootloades bloqueados (por ejemplo, un operador de EE. UU. Bloqueó los dispositivos Samsung S) 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 antiguos son posibles de rootear mediante 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, generalmente no toma ni un microsegundo para asegurarse de que su dispositivo no vuelva a arrancar nunca más. Es muy probable que las aplicaciones de rooteo nunca lo hagan, 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 guarda en su memoria, incluida la información de su tarjeta de crédito, contraseñas, etc. Si no te importa eso, puedes probarlos.
Si eres lo suficientemente inteligente, existen las fuentes de casi todos los exploits que utilizan 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 esa es su decisión al final. Y KingRoot es conocido por instalar una puerta trasera en su SDK que permite que algunas aplicaciones obtengan acceso a la raíz sin autorización del usuario.
Conclusión
La era de las aplicaciones de rooteo ha pasado hace mucho tiempo. Las aplicaciones de enrutamiento ya no funcionan y si las usa en versiones más recientes de Android corre el riesgo de bloquear su dispositivo y probablemente perder todos sus datos. Si los usa en versiones compatibles de Android, funcionarían 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. :)
VERIFIED / SECURE BOOT
sección: forum.xda-developers.com/android/general/…