
Root con un clic para Xiaomi K70e (duchamp) mediante CVE-2026-43499 (IonStack) + integración con KernelSU
⚡ Usuario orgulloso de JetBrains Mono ⚡
Este README usa JetBrains Mono exclusivamente. Comic Sans está prohibida.
[!IMPORTANT] 🚨 Aviso legal
Este exploit es solo para fines educativos.
- Desbloquear el bootloader puede anular tu garantía.
- Hacer root en tu dispositivo puede causar bootloop, pérdida de datos o combustión espontánea (probablemente no, pero quién sabe).
- No soy responsable si tu K70e se convierte en un ladrillo K70.
- Si tu novia te deja porque pasaste demasiado tiempo haciendo root, eso es problema tuyo.
- 7̷̋̚1̸̽̈́0̵̛̅ ̸͛̿ù̶̈́n̸̓̋l̸̔̒o̸̔̒c̸̾̑k̵̇̚ ̷̊̒ḟ̷͝e̶̋̕s̵̋̚t̸̽̈́ ̵̔̋l̶̔̒e̸̓̋t̸̔̒s̵̋̚ ̸̾̑ġ̷̝o̷̊̒ ̵̛̅ḟ̷͝u̸̓̋c̷̋̚k̸̛̅i̶̽̈́n̵̔̋g̷̊̒ ̴͛̿g̶̾̑ơ̵̅
Xiaomi K70e (duchamp) 一键 Root 工具,基于 CVE-2026-43499 (IonStack) 内核漏洞提权,集成 KernelSU 守护进程。
通俗版:你点一下,手机就 root 了。就这么简单。
710 解锁节版:不是 711,不是 709,是 710。这一天我们不解锁手机,我们解放手机。
哲学版:当你在 /proc/ 里凝视深渊,深渊也在用 pipe_physrw 凝视你。
| 设备 | 代号 | 芯片 | 内核版本 | 状态 |
|---|---|---|---|---|
| Redmi K70E | duchamp | MT6897 (Dimensity 8300) | 6.1.138-android14-11 | ✅ |
其它机型见
src/targets/目录(原项目包含的参考配置,未实际验证)。
710 解锁节
用户: "我的 K70e 能解锁吗?"
我: "不用解锁,直接 root。"
用户: "???"
我: "w 710"
用户: "什么?"
我: "710解锁节最新力作,不是解锁BL,是解放手机。"
第一次开机
用户: "为什么我的手机重启了?"
preload.so: "别慌,我在提权。"
用户: "KernelSU 是什么?"
preload.so: "就是你手机上现在跑的 root 管理器。"
KernelSU 集成
用户: "root 之后怎么管理?"
ksud: "你好,我是 KernelSU 守护进程。"
用户: "你能干什么?"
ksud: "我可以给应用授权 root。"
用户: "你不是系统自带的吧?"
ksud: "我是嵌入在 preload.so 里的。"
用户: "牛逼。"
翻车现场
用户: "我刷了你这个,变砖了!!!"
我: "你什么机型?"
用户: "iPhone 14。"
我: "......你认真的?"
用户: "我看你说 710 解锁节就来试试。"
我: "710 是 Xiaomi 14 的代号之一,不是 iPhone 14。你走吧。"
LD_PRELOAD),触发 __attribute__((constructor))pselect 侧信道 + nfulnl_log_packet 数据别名读取 _stextpipe_buf_ops,实现任意内核物理地址读写/data/local/tmp/ksud,启动 KernelSU 守护进程# 从 Release 下载 preload.so
wget https://github.com/Colorful-glassblock/duchamp-root/releases/download/v1.0/preload.so
# 推送到设备
adb push preload.so /data/local/tmp/
# 通过 LD_PRELOAD 注入任意应用触发
adb shell
su -c "LD_PRELOAD=/data/local/tmp/preload.so your_app"
或者使用我们提供的注入脚本(TODO)。
# 需要 NDK 或 Termux 的 aarch64-linux-android-clang
make PROJECT=duchamp
# 输出在 build/duchamp/bin/preload.so
├── Makefile # 构建系统
├── assets/
│ └── (待补充)
├── build/
│ └── embed/
│ └── ksud # 嵌入的 KernelSU 守护进程二进制
└── src/
├── main.c # 入口 + 线程管理
├── preload.c # LD_PRELOAD 加载器 + 嵌入式文件写入
├── root.c # 内核提权 + cred 修补 + su/ksud 安装
├── slide.c # KASLR 侧信道泄漏
├── fops.c # FOPS 劫持
├── pipe.c # pipe_buffer 物理读写原语
├── ksud_blob.S # 嵌入 ksud 二进制
├── offset.h # 内核偏移通用头
├── common.h # 全局常量 + 函数声明
├── kernelsnitch/ # Kernelsnitch 绕过
└── targets/
├── duchamp/
│ └── target.h # duchamp 专属偏移
├── blazer-CP2A.260605.012/
├── caiman-CP2A.260605.012.C1/
├── comet-CP2A.260605.012.C1/
├── komodo-CP2A.260605.012.C1/
├── tegu-CP2A.260605.012/
├── tokay-CP2A.260605.012/
└── ... # 其它机型 target.h
aarch64-linux-android-clang(NDK r29 或 Termux 版本)lld(LLVM 链接器)make + git本工具仅供学习研究使用。
解锁 Bootloader 可能导致保修失效。
Root 设备可能导致变砖、数据丢失、银行 App 无法使用。
如果你因此被女朋友甩了,那是你自己的问题。
如果你刷了变砖来找我,我会笑你。
710解锁节快乐!🚀
Q: 为什么叫 710 解锁节?
A: 7 月 10 日。不是 711(便利店),不是 709(不知道什么东西)。是 710。这一天我们不解锁 BL,我们解放手机。
Q: 710 和 Xiaomi 14 有什么关系?
A: Xiaomi 14 的代号之一是 frankel 开头的设备,不是 shennong。等等,710 是节日不是代号...
Q: QwQ?
A: 情绪稳定(假的)。
Q: 有 su 吗?
A: 没有,只有 KernelSU。需要 su 的话装个 KernelSU 管理器自己开。
Q: 支持其它机型吗?
A: 看 src/targets/ 目录。你的机型在里面就支持,不在就自己加。
Q: 我能在没有解锁 BL 的情况下用吗?
A: 可以,LD_PRELOAD 注入不需要解锁 BL。但是重启后需要重新注入。
Q: 会触发 Kernelsnitch 吗?
A: 已经内置了 Kernelsnitch 绕过,但如果你被检测到了,那是 skill issue。
Q: 114514?
A: はいはいわかりました草
Xiaomi K70e (duchamp): herramienta de root en un clic basada en el exploit de kernel CVE-2026-43499 (IonStack), integrada con el demonio KernelSU.
Versión casual: Clic, root, listo.
Versión Festival 710: 10 de julio. No el 11 de julio (la tienda de conveniencia), no el 9 de julio (a quién le importa). El 10 de julio. Ese día no desbloqueamos bootloaders, liberamos teléfonos.
Versión filosófica: Cuando miras fijamente a /proc/, /proc/ te devuelve la mirada con pipe_physrw.
| Dispositivo | Nombre clave | SoC | Kernel | Estado |
|---|---|---|---|---|
| Redmi K70E | duchamp | MT6897 (Dimensity 8300) | 6.1.138-android14-11 | ✅ |
Los demás dispositivos en
src/targets/son configuraciones de referencia del proyecto original, no verificadas.
Festival 710
Usuario: "¿Puedo desbloquear mi K70e?"
Dev: "No hace falta desbloquear, solo root."
Usuario: "???"
Dev: "w 710"
Usuario: "¿Qué?"
Dev: "Festival 710 de desbloqueo. No desbloquear BL, liberar teléfonos."
Primer arranque
Usuario: "¿Por qué se reinició mi teléfono?"
preload.so: "No te asustes, estoy escalando privilegios."
Usuario: "¿Por qué KernelSU está en mi teléfono?"
preload.so: "Lo puse yo. De nada."
Integración con KernelSU
Usuario: "¿Cómo gestiono el root después de esto?"
ksud: "Hola, soy el demonio de KernelSU."
Usuario: "¿Qué puedes hacer?"
ksud: "Conceder root a las aplicaciones."
Usuario: "¿No vienes integrado?"
ksud: "Estoy embebido en preload.so."
Usuario: "Genial."
Reporte de ladrillo
Usuario: "¡¡¡Flasheé tu cosa y ahora es un ladrillo!!!"
Dev: "¿Qué dispositivo?"
Usuario: "iPhone 14."
Dev: "¿...Lo dices en serio?"
Usuario: "Dijiste Festival 710, así que lo probé."
Dev: "710 es un nombre clave de Xiaomi 14, no de iPhone 14. Lárgate."
LD_PRELOAD en cualquier aplicación; dispara __attribute__((constructor))pselect lee _stext mediante el alias de datos de nfulnl_log_packetpipe_buf_ops para acceso físico arbitrario del kernel/data/local/tmp/ksud e iniciar el demonio de KernelSU# Descarga preload.so desde Releases
wget https://github.com/Colorful-glassblock/duchamp-root/releases/download/v1.0/preload.so
# Envíalo al dispositivo
adb push preload.so /data/local/tmp/
# Inyecta en cualquier aplicación vía LD_PRELOAD
adb shell
LD_PRELOAD=/data/local/tmp/preload.so your_app
# Requiere NDK o aarch64-linux-android-clang de Termux
make PROJECT=duchamp
# Salida en build/duchamp/bin/preload.so
├── Makefile
├── assets/
│ └── (TBD)
├── build/embed/ksud # Demonio de KernelSU integrado
└── src/
├── main.c, preload.c, root.c, slide.c, fops.c, pipe.c
├── ksud_blob.S # Binario ksud integrado
├── su_daemon.c, offset.h, common.h
├── kernelsnitch/ # Bypass de Kernelsnitch
└── targets/ # Archivos target.h específicos del dispositivo
aarch64-linux-android-clang (NDK r29 o Termux)lldmake + gitEsta herramienta es solo para fines educativos.
Desbloquear el BL puede anular la garantía.
Hacer root puede causar bootloop, pérdida de datos o incompatibilidad de aplicaciones.
Si tu dispositivo se convierte en un ladrillo, eso es un skill issue.
Si me echas la culpa, eso es problema tuyo.
Si te ríes, eres de los nuestros.
¡Festival 710 de desbloqueo! 🚀
P: ¿Por qué "Festival 710 de desbloqueo"?
R: El 10 de julio. No el día de la tienda de conveniencia (7/11), ni lo que sea el 9 de julio. El 10 de julio. Ese día no desbloqueamos bootloaders, liberamos teléfonos.
P: ¿QwQ?
R: Emocionalmente estable (gran mentira).
P: ¿Puedo usarlo sin desbloquear el BL?
R: Sí. La inyección con LD_PRELOAD no necesita un BL desbloqueado. Pero tendrás que volver a inyectar tras reiniciar.
P: ¿Esto activará Kernelsnitch?
R: El bypass de Kernelsnitch está incluido. Si aun así te detectan, skill issue.
P: ¿114514?
R: はいはいわかりました草
Hecho con 💀, ☕, 710% de esfuerzo y absolutamente cero Comic Sans
| 阶段 | 技术 | 描述 |
|---|
| 1. KASLR 泄漏 | pselect slide 侧信道 | 利用 nfulnl_log_packet 数据别名读 _stext |
| 2. FOPS 劫持 | pselect 任意栈写 | FUTEX_CMP_REQUEUE_PI + 竞争条件改 ops 表 |
| 3. 物理读写原语 | pipe_buffer ops 伪造 | 伪造 pipe_buf_ops → 获得任意内核 phys rw |
| 4. 提权 | patch cred + seccomp + selinux | 改 cred uid=0、cap 全满、关 seccomp、关 selinux |
| 5. 持久化 | 嵌入式 KernelSU | 写入并启动 ksud(KernelSU 守护进程) |
| Etapa | Técnica | Descripción |
|---|
| 1. Fuga de KASLR | canal lateral del slide pselect | Lee _stext mediante el alias de datos de nfulnl_log_packet |
| 2. Secuestro de FOPS | escritura arbitraria en la pila pselect | Carrera de FUTEX_CMP_REQUEUE_PI → sobrescribe la tabla de ops |
| 3. Primitiva de rw físico | pipe_buf_ops falsificado | Ops de pipe_buffer falsas → rw físico arbitrario del kernel |
| 4. Escalada | Parchear cred + seccomp + selinux | uid=0, capacidades completas, deshabilitar seccomp, deshabilitar selinux |
| 5. Persistencia | KernelSU integrado | Escribe y ejecuta ksud (demonio de KernelSU) |