2 votos

¿Es posible parchar el núcleo del Android con Root?

Básicamente hay un exploit de boot rom en los chips Tegra X1, específicamente el Switch de Nintendo que permite enviar cargas útiles mientras está en Modo de Recuperación y básicamente ejecutar código sin firmar (homebrew, firmware personalizado, e incluso lanzar distribuciones de Linux). El lanzador de cargas útiles funciona en PC, Mac y Linux, y ha sido portado a Android, sin embargo para que funcione en Linux requiere un parche de kernel para el controlador EHCI (USB 2.0). Los dispositivos que soportan xHCI (3.0) pueden ejecutarlo sin problemas. En Android se hace con un adaptador USB-OTG por cierto y funciona sin acceso a Root. Sospecho que la única forma de parchear el kernel es con acceso Root o una ROM/kernel personalizado con el parche. Aquí está el parche de un equipo de hackers (fail0verflow) sin ninguna instrucción: https://github.com/fail0verflow/shofel2/blob/master/linux-ehci-enable-large-ctl-xfers.patch

Alguien también escribió un Python script para Linux que parchea la memoria del núcleo aquí: https://gist.github.com/DavidBuchanan314/41b12362cc4d8c539dc441d75155f2e9

Intenté ejecutarlo usando Termux con el paquete de python instalado sin embargo resulta con este error:

0x0
Traceback (most recent call last):
File "ehci_patch.py", line 70, in <module>
" " ".replace("PLACEHOLDER", hex(ksyms["ehci_urb_enqueue"])).replace("PLACE2" hex(ksyms["lookup_address"]))
KeyError: 'lookup_address' 

Traté de hacerlo con su primero pero dice: "pitón: no encontrado". De todos modos, no creo que ese "hotpatch" script pueda siquiera funcionar correctamente en Android como está pensado para los sistemas de escritorio Linux.

Apreciaría cualquier pista o información sobre una forma de parchear el núcleo ya sea con el acceso a root o tal vez una forma de hacer funcionar la pitón script. He creado la aplicación para Android con la esperanza de mejorarla y traducirla a diferentes idiomas y quiero ser capaz de proporcionar una solución con instrucciones para hacerla funcionar en dispositivos EHCI (si es posible en Android). Sería increíble si también es posible con un módulo Magisk.

0 votos

@iBug Tengo tsu instalado y luego tsu me pone en modo superusuario (#) pero después de intentar el comando python (python ehci_patch.py) dice, bash: /data/data/com.termux/files/usr/bin/python: Permiso denegado

0 votos

Aprecio mucho tu pregunta por el perfecto lenguaje y formato en inglés (por eso he subido el voto de esta pregunta fuera de tema), pero desgraciadamente, no queremos preguntas sobre el desarrollo . Probablemente puedas obtener mejores respuestas en el foro XDA Deverloper.

0voto

derobert Puntos 272

Ese Python script parece funcionar generando el código fuente para, luego compilando un módulo de kernel personalizado, y luego cargando ese módulo para hacer el parche real. Espera, entre otras cosas, un compilador de C que funcione, make y las fuentes del núcleo (al menos las cabeceras) del núcleo en el que se está ejecutando /lib/modules/$(uname -r)/build .

Así que, no, eso no va a funcionar con Android. Típicamente no tienes ninguna de esas cosas. Con un entorno de compilación cruzada (en un PC) configurado para construir el núcleo de tu teléfono, es probable que puedas construir ese módulo, copiarlo y luego (como Root en el dispositivo Android) cargarlo. Pero construirlo directamente en el teléfono sería toda una empresa.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X