Zurück zu den Updates
New releaseAug 20, 2026

duchamp-root v52c8d05bcf

Xiaomi K70e (duchamp) Ein-Klick-Root über CVE-2026-43499 (IonStack) + KernelSU-Integration

Teilen

中文 | English

Besucherzähler


GitHub release (latest by date) GitHub last commit Platform Android Kernel License

Stolzer Nutzer von JetBrains Mono
Diese README verwendet ausschließlich JetBrains Mono. Comic Sans ist verboten.

[!IMPORTANT] 🚨 Haftungsausschluss

Dieser Exploit dient nur zu Bildungszwecken.

  • Das Entsperren des Bootloaders kann Ihre Garantie ungültig machen.
  • Rooten Ihres Geräts kann zu Bootloop, Datenverlust oder spontaner Selbstentzündung führen (wahrscheinlich nicht, aber wer weiß).
  • Ich bin nicht verantwortlich, wenn Ihr K70e zu einem K70-Ziegelstein wird.
  • Wenn Ihre Freundin Sie verlässt, weil Sie zu viel Zeit mit Rooten verbringen, ist das Ihr Problem.
  • 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 K70EduchampMT6897 (Dimensity 8300)6.1.138-android14-11

其它机型见 src/targets/ 目录(原项目包含的参考配置,未实际验证)。


🧠 漏洞链

阶段技术描述
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 守护进程)

🎭 用户故事

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。你走吧。"

⚙️ 工作原理

  1. 加载 preload.so — 注入任意应用(LD_PRELOAD),触发 __attribute__((constructor))
  2. 泄漏 KASLR 基址 — 通过 pselect 侧信道 + nfulnl_log_packet 数据别名读取 _stext
  3. 劫持 FOPS 表 — 利用 futex PI 竞争条件 + pipe 操作改写文件操作的 ops 指针
  4. 获得 phys rw — 伪造 pipe_buf_ops,实现任意内核物理地址读写
  5. 修补 cred — 找到 root child 进程的 cred,改 uid=0、cap 全满、sid=kernel
  6. 关安全机制 — 关 seccomp、清 TIF_SECCOMP、写 selinux enforce=0
  7. 启动 KernelSU — 提取嵌入的 ksud 到 /data/local/tmp/ksud,启动 KernelSU 守护进程

📦 使用方式

前置条件

  • Xiaomi K70e (duchamp) 或其它支持的设备
  • 已解锁 Bootloader(或不解锁的临时 root 也支持)
  • ADB 调试已开启
  • 一个不怕变砖的勇气

快速开始

# 从 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解锁节快乐!🚀

💡 彩蛋 / FAQ

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: はいはいわかりました草


710 footer


📖 Englisch

🤔 Was ist das

Xiaomi K70e (duchamp) One-Click-Root-Tool basierend auf dem CVE-2026-43499 (IonStack) Kernel-Exploit, integriert mit KernelSU-Daemon.

Locker gesagt: Klicken, Root, fertig.

710-Festival-Version: 10. Juli. Nicht der 11. Juli (Kiosk), nicht der 9. Juli (wen interessiert's). Der 10. Juli. An diesem Tag entsperren wir keine Bootloader, wir befreien Handys.

Philosophische Version: Wenn du in /proc/ starrst, starrt /proc/ mit pipe_physrw zurück.


🎯 Unterstützte Geräte

GerätCodenameSoCKernelStatus
Redmi K70EduchampMT6897 (Dimensity 8300)6.1.138-android14-11

Andere Geräte unter src/targets/ sind Referenzkonfigurationen aus dem Originalprojekt, nicht verifiziert.


🧠 Exploit-Kette

StufeTechnikBeschreibung
1. KASLR-Leakpselect-Slide-SeitenkanalLiest _stext über nfulnl_log_packet-Datenalias
2. FOPS-Hijackpselect beliebiger Stack-SchreibzugriffFUTEX_CMP_REQUEUE_PI-Race → Überschreiben der ops-Tabelle
3. Phys rw-PrimitiveGefälschte pipe_buf_opsFake Pipe-Buffer-ops → beliebiger Kernel-Physik-RW
4. EskalationPatchen von cred + seccomp + selinuxuid=0, volle Caps, seccomp deaktivieren, selinux deaktivieren
5. PersistenzEingebettetes KernelSUksud (KernelSU-Daemon) schreiben und starten

🎭 Meme-Galerie

710 Festival

Benutzer: "Kann ich mein K70e entsperren?"
Entwickler: "Kein Entsperren nötig, einfach rooten."
Benutzer: "???"
Entwickler: "w 710"
Benutzer: "Was?"
Entwickler: "710 Unlock Festival. Nicht BL entsperren, Handys befreien."

Erster Start

Benutzer: "Warum ist mein Handy neu gestartet?"
preload.so: "Keine Panik, ich eskalere Rechte."
Benutzer: "Warum ist KernelSU auf meinem Handy?"
preload.so: "Ich hab's drauf gepackt. Gern geschehen."

KernelSU-Integration

Benutzer: "Wie verwalte ich Root danach?"
ksud: "Hallo, ich bin der KernelSU-Daemon."
Benutzer: "Was kannst du tun?"
ksud: "Apps Root-Rechte geben."
Benutzer: "Du bist nicht eingebaut?"
ksud: "Ich bin in preload.so eingebettet."
Benutzer: "Cool."

Ziegelstein-Meldung

Benutzer: "Ich hab dein Ding geflasht und jetzt ist es ein Ziegelstein!!!"
Entwickler: "Welches Gerät?"
Benutzer: "iPhone 14."
Entwickler: "... Ernsthaft?"
Benutzer: "Du hast 710 Festival gesagt, also hab ich's probiert."
Entwickler: "710 ist ein Codename für Xiaomi 14, nicht iPhone 14. Geh raus."

⚙️ Wie es funktioniert

  1. preload.so laden — Injektion via LD_PRELOAD in eine beliebige App, löst __attribute__((constructor)) aus
  2. KASLR-Basis leakenpselect-Seitenkanal über nfulnl_log_packet-Datenalias liest _stext
  3. FOPS-Tabelle kapern — Futex PI-Race-Condition + Pipe-ops überschreiben
  4. Phys rw erhaltenpipe_buf_ops fälschen für beliebigen Kernel-Physik-Speicherzugriff
  5. Cred patchen — Root-Child-Task finden, uid=0, volle Caps, Kernel-SID patchen
  6. Sicherheit deaktivieren — Seccomp patchen, TIF_SECCOMP löschen, selinux enforce=0
  7. KernelSU starten — Eingebettetes ksud nach /data/local/tmp/ksud extrahieren, KernelSU-Daemon starten

📦 Nutzung

Voraussetzungen

  • Xiaomi K70e (duchamp) oder ein anderes unterstütztes Gerät
  • Entsperrter Bootloader (oder auch nicht – LD_PRELOAD funktioniert in beiden Fällen)
  • ADB-Debugging aktiviert
  • Eine mutige Seele

Schnellstart

# preload.so von den Releases herunterladen
wget https://github.com/Colorful-glassblock/duchamp-root/releases/download/v1.0/preload.so

# Aufs Gerät schieben
adb push preload.so /data/local/tmp/

# In eine beliebige App via LD_PRELOAD injizieren
adb shell
LD_PRELOAD=/data/local/tmp/preload.so deine_app

Aus Quellen bauen

# Benötigt NDK oder Termux aarch64-linux-android-clang
make PROJECT=duchamp

# Ausgabe unter build/duchamp/bin/preload.so

📂 Dateistruktur

├── Makefile
├── assets/
│   └── (TBD)
├── build/embed/ksud             # Eingebetteter KernelSU-Daemon
└── src/
    ├── main.c, preload.c, root.c, slide.c, fops.c, pipe.c
    ├── ksud_blob.S               # Eingebettetes ksud-Binary
    ├── su_daemon.c, offset.h, common.h
    ├── kernelsnitch/            # Kernelsnitch-Bypass
    └── targets/                 # Gerätespezifische target.h-Dateien

🧩 Abhängigkeiten

  • aarch64-linux-android-clang (NDK r29 oder Termux)
  • lld-Linker
  • make + git
  • Ein starkes Herz (Ziegelstein-Warnung)

🛡️ Haftungsausschluss

Dieses Tool dient nur zu Bildungszwecken.
Das Entsperren des BL kann die Garantie ungültig machen.
Rooten kann zu Bootloop, Datenverlust oder App-Inkompatibilität führen.
Wenn dein Gerät zum Ziegelstein wird, ist das ein Skill-Problem.
Wenn du mir die Schuld gibst, ist das dein Problem.
Wenn du lachst, gehörst du zu uns.
710 Unlock Festival! 🚀

💡 Trivia / FAQ

F: Warum "710 Unlock Festival"?
A: 10. Juli. Nicht der Tag des Kiosks (7/11), nicht was auch immer der 9. Juli ist. Der 10. Juli. An diesem Tag entsperren wir keine Bootloader, wir befreien Handys.

F: QwQ?
A: Emotional stabil (große Lüge).

F: Kann ich das ohne entsperrten BL nutzen?
A: Ja. LD_PRELOAD-Injektion braucht keinen entsperrten BL. Aber nach einem Neustart musst du erneut injizieren.

F: Wird das Kernelsnitch auslösen?
A: Kernelsnitch-Bypass ist enthalten. Wenn du trotzdem erwischt wirst: Skill-Problem.

F: 114514?
A: はいはいわかりました草


710 footer


Hergestellt mit 💀, ☕, 710% Aufwand und absolut null Comic Sans

Kategorien