¿Es posible parchear el kernel de Android con root?

Básicamente, hay un exploit de rom de arranque en los chips Tegra X1, específicamente el Nintendo Switch que le 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 iniciador de carga útil funciona en PC, Mac y Linux, y se ha portado a Android; sin embargo, para que funcione en Linux, se requiere un parche de kernel para el controlador EHCI (USB 2.0). Los dispositivos que admiten xHCI (3.0) pueden ejecutarlo sin ningún problema. En Android se hace usando un adaptador USB-OTG por cierto y funciona sin acceso de root. Sospecho que la única forma de parchear el kernel es con acceso de root o una ROM/kernel personalizado con el parche. Aquí está el parche de un equipo de piratería (fail0verflow) sin ninguna instrucción:https://github.com/fail0verflow/shofel2/blob/master/linux-ehci-enable-large-ctl-xfers.patch

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

Intenté ejecutarlo usando Termux con el paquete python instalado, sin embargo, aparece 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' 

Intenté ejecutarlo también con su primero, pero dice sh: python: no encontrado. De todos modos, no creo que el script "hotpatch" pueda funcionar correctamente en Android, ya que está destinado a sistemas Linux de escritorio.

Apreciaría cualquier pista o información sobre una forma de parchear el kernel, ya sea con acceso de root o tal vez una forma de hacer que el script de Python funcione. Bifurqué la aplicación de Android con la esperanza de mejorarla y traducirla a diferentes idiomas y quiero poder brindar una solución con instrucciones para que funcione en dispositivos EHCI (si es posible en Android). Sería increíble si también es posible con un módulo Magisk.

@iBug Tengo tsu instalado y luego tsu me pone en modo superusuario (#) pero después de probar el comando python (python ehci_patch.py) dice, bash: /data/data/com.termux/files/usr/bin/python : Permiso denegado
Realmente aprecio su pregunta sobre el idioma y el formato perfectos en inglés (es por eso que voté a favor de esta pregunta fuera de tema), pero desafortunadamente, no queremos preguntas de desarrollo . Probablemente puedas obtener mejores respuestas en XDA Deverloper Forum.

Respuestas (1)

Esa secuencia de comandos de Python parece funcionar generando el código fuente, 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, makeun programa y fuentes del kernel que funcionen (al menos encabezados) para el kernel que está ejecutando /lib/modules/$(uname -r)/build.

Entonces, no, eso no va a funcionar en Android. Por lo general, no tienes ninguna de esas cosas. Con un entorno de compilación cruzada (en una PC) configurado para compilar el kernel de su teléfono, es probable que pueda compilar ese módulo, copiarlo y luego (como root en el dispositivo Android) cargarlo. Pero construirlo directamente en el teléfono sería toda una tarea.