
Herramienta de rooteo del kernel de Android con un solo clic que explota CVE-2026-43499 para instalar KernelSU, con fuentes de payload .so oficiales, integradas y personalizadas.
⚠️ Aviso: las políticas de programación de los modelos de la marca Blue son bastante estrictas, y los procesos hijos pueden ser reclamados por el sistema al escalar privilegios. Activa primero «Detener la restricción de procesos hijos» en «Opciones de desarrollador» antes de ejecutar la escalada de privilegios; la tasa de éxito será mayor.
Herramienta de escalada de privilegios KernelSU con un solo clic basada en la vulnerabilidad del kernel CVE-2026-43499 (GhostLock).
Esta rama toma KSuRoot como base, sincroniza completamente las actualizaciones de la línea principal de Root-My-Galaxy v0.2.6, y sobre esta base añade construcción de payloads, payloads de fabricante integrados y todo un conjunto de interfaz de usuario de cristal líquido.
Mod by hmascs · Versión 4.1.2 · Apache-2.0 Repositorio: https://github.com/hmascs/KSuRoot
vr.ko marca las tareas provenientes de la app, y ese desplazamiento tiene dos variantes: 0x04 / 0x06, y además está grabado en el payload en tiempo de compilación, no se puede parchear. Lo más problemático es que dos copias de vr.ko en el mismo dispositivo tienen cada una la suya
(en el vendor_boot del Y300 Pro+ hay dos copias, con srcversion idéntico) —
elegir mal se manifiesta como «se limpian los bytes equivocados, la marca no se borra, y el proceso hijo sigue siendo eliminado», mientras que en los registros todo parece normal.
Ahora la solución para la marca Blue te pedirá que proporciones un vendor_boot.img: la aplicación lee el desplazamiento real de este dispositivo desde el lib/modules/vr.ko que realmente se carga dentro de la imagen, y luego reescribe el payload. Las cuatro bibliotecas incluidas/compiladas
(libbaseline_6_1 / libbaseline_6_12 / libbs / libionstack) se fuerzan a emparejar con su propio perfil,
y si eliges mal serás detenido en el acto por la compuerta de cero coincidencias, en lugar de darte un producto copiado tal cual.
Además se añade «Importar paquete de flasheo completo»: selecciona directamente el zip OTA o el tgz de fastboot que descargaste,
y él mismo extrae boot y vendor_boot, sin que tengas que descomprimir primero ni extraer manualmente.
⚠️ El paquete completo debe copiarse entero en la caché de la aplicación para poder leerlo aleatoriamente (el directorio central del ZIP está al final del paquete, y el uri de SAF no se puede convertir en File). Si no hay espacio suficiente se rechazará en el acto, y la caché se elimina inmediatamente tras la extracción.
4.1.2 = 4.1.0 + 19 commits. Estos commits originalmente estaban detenidos en la rama fix/baseline-routing,
y ahora se han fusionado en main. El paquete de instalación 4.1.0 ya publicado no los incluye — cada uno de los siguientes puntos se corrigió después de eso.
| # | Defecto | Consecuencia |
|---|---|---|
| 1 | VR_TAG_A_OFF de 6.1 rellenado como 0x06 (en la práctica debería ser 0x04) | En los modelos 6.1 de la marca Blue la marca no se borra ni un solo byte, mientras que la autocomprobación reporta éxito. Se manifiesta como "el proceso hijo es eliminado inmediatamente después de una escalada exitosa", sin poder ver que esta es la causa |
| 2 | La localización de la tabla de desplazamientos de kallsyms usaba módulo negativo (traducción literal de la semántica de Python) | Falla completa en kernels 6.4+, la dirección base se obtiene de un fragmento de texto ASCII |
| 3 | El criterio de la tabla de desplazamientos solo miraba «los tres primeros elementos son monótonos» | Casi nula capacidad de discriminación (cualquier posición de la tabla es monótona); se ha cambiado para verificar la forma de la tabla |
| 4 | BASELINE_6_12.imageBase rellenado con la dirección base objetivo | Todos los puntos de construcción en forma de dirección absoluta quedaron sin modificar (39 → 9) |
| 5 | Cuando los símbolos no se alinean solo se deja vacío el producto, y gate sigue siendo Proceed | blocked=false y producto de 0 B, la UI no muestra el cuadro de bloqueo |
| 6 | El fallback de FopsSlot nunca se llegó a usar | Si no se encuentra la tabla se abandona directamente, sin poder recurrir a símbolos de respaldo |
TARGET_ASHMEM_FOPS_UNSYMBOLED)07-文档/6.1-6.12-双方案清单.md0x04, 6.6 / 6.12 = 0x06 (el vr.ko en el firmware de fábrica de tres dispositivos reales)载荷构建/): anteriormente en el repositorio había 15 referencias apuntando a un directorio inexistenteEl resultado de ejecutar la construcción en el X100 Pro (6.1.145) es:
偏移解析: 28 / 28 项
需要改写: 26 项 · 校验通过: 0 项
该动态库未引用 26 项偏移
Esto no es "no hay nada que cambiar", es "estas dos cosas no son un conjunto". La causa raíz es que dos rutas independientes tomaron decisiones divergentes:
| Qué elegir | Según qué elegir | Seleccionado en 6.1.145 |
|---|---|---|
| Biblioteca base | Familia de estructuras (F6_1) | libbaseline_6_1.so (valor antiguo proveniente de baseline-6.1-tokay/target.h) |
| Nivel | Enrutamiento de tres niveles (cadena del kernel) | up-6-1-145-… (valor antiguo proveniente de offsets.h de GhostLock) |
La forma de parchear es «tomar el valor antiguo del nivel e ir a buscar el literal en el .so». Los dos conjuntos de valores antiguos no tienen intersección alguna, por lo que ninguno de los 26 elementos coincide, y el producto equivale a una copia idéntica de la biblioteca base.
Por qué la compuerta dura original no lo detuvo: el criterio de hasFailures es changed && !ok && !absent ——
absent queda explícitamente excluido. Esa razón ("la versión antigua del .so puede no tener la ruta de código correspondiente") es válida para claves individuales,
pero no para "todas las claves están absent".
Dos formas de corregirlo:
libbaseline_6_1.so / libbaseline_6_12.so)
deben emparejarse con su propio nivel (baseline-6-1-tokay / baseline-6-12-honor),
los niveles up-* de origen solo aplican al .so de origen. Se añadió BaselineLibraries.profileIdForLibrary().kind a SpecOutcome.Los casos de regresión están en BaselineLibraryPairingTest (4 casos), uno de los cuales afirma directamente que los dos conjuntos de valores antiguos no tienen intersección ——
convirtiendo "por qué deben emparejarse" en un hecho ejecutable.