Última hora: Chainfire ha anunciado hoy SuperSU Beta 2.27, eliminando la necesidad de modificaciones del disco ram del kernel para hacer uso del acceso root en Android 5.0
Hasta ahora, si querías obtener root en Android 5.0, necesitabas instalar un kernel modificado en tu dispositivo para evitar algunas restricciones de SELinux. Desarrollador senior reconocido de XDA Fuego en cadena Recientemente lanzó lo que antes era necesario. CF-Auto-Root paquete, que realizó las modificaciones necesarias en el disco ram del kernel para eliminar la restricción SELinux del script install-recovery.sh en AOSP. Esta mañana, sin embargo, Chainfire hizo sonreír a muchos rostros, mientras anunciado en Twitter que esto ya no sería necesario en el futuro.
Hasta hoy, Chainfire había planeado lanzar una herramienta automatizada de parcheo basada en ZIP, para automáticamente parchear imágenes del kernel desde dentro de la recuperación TWRP, hasta que encontró un método adecuado para eliminar la necesidad de este.
Esta revelación significa que los usuarios de Android 5.0 ya no necesitan ejecutar un kernel modificado para obtener acceso root a través de SuperSU (u otras soluciones root). Si bien no es un gran problema en los dispositivos Nexus con cargadores de arranque desbloqueables, la necesidad de modificaciones en el disco ram sí era preocupante para muchos usuarios de dispositivos bloqueados con gestor de arranque para los cuales no hay desbloqueo disponible (sí, desafortunadamente lo tienen) existir). La respuesta a sus oraciones ya está aquí y podemos presentar una explicación exclusiva de los cambios necesarios. Al menos por ahora (hasta/a menos que Google parchee esto), es posible obtener acceso de root y luego instalar y usar SuperSU en un dispositivo Android 5.0, sin ningún ajuste en el disco RAM del kernel. La razón de esto es la necesidad de que SuperSU ejecute un servicio como root, para permitir el acceso root sin restricciones en dispositivos protegidos con SELinux.
Anteriormente, SuperSU aprovecharía el AOSP preinstalado recuperación_flash servicio (utilizado en AOSP para actualizar la recuperación después de una instalación OTA) para iniciar el demonio SuperSU (que en realidad proporciona privilegios de root para las aplicaciones que lo solicitan). Con el lanzamiento de Lollipop, este servicio se agregó a un contexto SELinux restringido, lo que significa que ya no tiene acceso puro al sistema. Las modificaciones anteriores del kernel buscaban eliminar las restricciones de SELinux de este script.
La última versión beta de SuperSU de Chainfire resuelve este problema mediante el uso del servicio central 'Zygote' (responsable de iniciar todos los servicios Java y, por lo tanto, todas las aplicaciones instaladas en un dispositivo). Dado que Zygote es uno de los únicos servicios disponibles en Android L, que se inicia como root dentro del contexto SELinux "init" sin restricciones, esto lo convierte en un objetivo principal para su uso en la operación de SuperSU. Después del arranque, el contexto "init" de SELinux del servicio Zygote pasa a su contexto final (restringido) "Zygote". Chainfire ha logrado modificar con éxito los archivos Zygote para poder ejecutar el código como usuario root. dentro del contexto "init" sin restricciones, devolviendo así SuperSU a Android L, sin kernel modificaciones.
Esta no es la primera vez que Chainfire recurre a Zygote para resolver estos problemas; la versión beta anterior 2.23 usaba Zygote como un medio para posiblemente evitar algunos otros problemas de SELinux (que causaban que las aplicaciones raíz se rompieran en Android L). Esto permitió que algunas (pero no todas) las aplicaciones que no funcionaban funcionaran; el resto requiere algunas actualizaciones por parte de sus desarrolladores. Desafortunadamente, cuando se consultó el código AOSP 5.0, resultó que Google ya había roto este método de hacerse cargo del servicio Zygote. Dado que todos sus intentos anteriores de apoderarse de Zygote habían fracasado, este es un paso adelante prometedor.
Chainfire quiso señalar que SuperSU ha podido durante mucho tiempo modificar las políticas de SELinux en un sistema en ejecución (y advierte sobre la facilidad con qué un OEM podría deshabilitar esto y realmente evitar un acceso raíz simple y significativo) y cómo se deben realizar las modificaciones realizadas en Zygote con cuidado, dado que el servicio se ejecuta desde varios contextos diferentes, para diferentes tareas, y esto plantea la posibilidad de una serie de (desagradables) fallos sutiles. Esta nueva versión beta 2.27 de SuperSU es una versión para que los entusiastas y otros técnicos jueguen y descubran qué falla. Crucemos los dedos: no hay errores inesperados que detengan el espectáculo, y esta es una forma viable de avanzar.
Tome nota: incluso si esta versión beta funciona y Zygote es la vía preferida para obtener acceso raíz, en el futuro, todo el proceso será solo un cambio de una sola línea. lejos de ser roto por Google, lo que haría que los discos ram del kernel parcheados fueran el futuro para el acceso root en Android (descartando así el root para dispositivos bloqueados por el gestor de arranque). dispositivos). De hecho, como aviso, es posible que el nuevo proceso ni siquiera funcione en una compilación AOSP completamente actualizada, debido a algunos problemas de SELinux bastante grandes. cambios en los últimos meses, que no se incluyeron en los dispositivos minoristas, pero que sin duda estarán allí en el futuro lanzamientos. Sin embargo, tarde o temprano, parece probable que se necesiten discos RAM del kernel modificados para rootear, pero esta nueva versión beta puede ofrecer una breve suspensión de la ejecución antes de que debamos ir en esa dirección.
Verificar las notas de lanzamiento para obtener más información sobre los riesgos que implica probar esto y para enlaces. Los desarrolladores también deben tener en cuenta que Chainfire está trabajando arduamente en la actualidad. Guía "Cómo hacer SU" (completamente actualizado para Android 5.0), que debería estar disponible en los próximos días.
[Muchísimas gracias a Chainfire por su trabajo aquí y por su ayuda en la preparación de este artículo].