
Xiaomi K70e (duchamp) Ein-Klick-Root über CVE-2026-43499 (IonStack) + KernelSU-Integration
<!-- Language selector -->
<p align="right">
<a href="#中文版">中文</a> |
<a href="#english">English</a>
</p>
<p align="center">
<a href="https://github.com/Colorful-glassblock/duchamp-root">
<img src="https://readme-typing-svg.demolab.com?font=JetBrains+Mono&size=28&pause=800&color=00FF88%C2%A2er=true&vCenter=true&width=700&lines=duchamp-root+%F0%9F%94%93;Xiaomi+K70e+(duchamp)+One-Click+Root;CVE-2026-43499+(IonStack)+Exploit;710%E8%A7%A3%E9%94%81%E8%8A%82%E6%9C%80%E6%96%B0%E5%8A%9B%E4%BD%9C+%F0%9F%94%A5"/>
</a>
</p>
<p align="center">
<img width="20%" src="https://count.getloli.com/@duchamp-root?name=duchamp-root&theme=random&padding=7&offset=0&align=top&scale=1&pixelated=1&darkmode=auto" alt="Besucherzähler" />
</p>
---


-blue)
-green)


> ⚡ **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̶̾̑ơ̵̅**
---
<a name="中文版"></a>
## 📖 中文版
<p align="center">
<img src="https://readme-typing-svg.demolab.com?font=JetBrains+Mono&size=24&pause=800&color=FF8800%C2%A2er=true&vCenter=true&width=600&lines=710%E8%A7%A3%E9%94%81%E8%8A%82%E6%9C%80%E6%96%B0%E5%8A%9B%E4%BD%9C+%F0%9F%94%A5;%E5%B0%8F%E7%B1%B3+K70e+%E4%B8%80%E9%94%AE+Root;%E4%B8%8D%E6%98%AF%E5%9C%A8%E8%A7%A3%E9%94%81%EF%BC%8C%E6%98%AF%E5%9C%A8%E8%A7%A3%E6%94%BE"/>
</p>
### 🤔 这是什么
**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/` 目录(原项目包含的参考配置,未实际验证)。
---
### 🧠 漏洞链
| 阶段 | 技术 | 描述 |
|------|------|------|
| 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 调试已开启
- 一个不怕变砖的勇气
#### 快速开始
```bash
# 从 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)。
#### 自行编译
```bash
# 需要 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: はいはいわかりました草
---
<p align="center">
<img src="https://readme-typing-svg.demolab.com?font=JetBrains+Mono&size=20&pause=1000&color=00FF88%C2%A2er=true&vCenter=true&width=600&lines=710+%E8%A7%A3%E9%94%81%E8%8A%82%E6%9C%80%E6%96%B0%E5%8A%9B%E4%BD%9C+%F0%9F%94%A5;Root+it+like+it%27s+710;Skill+Issue+++You+Leak+Creds+++L+/+Bozo" alt="710 footer" />
</p>
---
<a name="english"></a>
## 📖 Englisch
<p align="center">
<img src="https://readme-typing-svg.demolab.com?font=JetBrains+Mono&size=24&pause=800&color=00FF88%C2%A2er=true&vCenter=true&width=600&lines=710+Unlock+Festival+Latest+Masterpiece+%F0%9F%94%A5;Xiaomi+K70e+One-Click+Root;It%27s+not+unlocking,+it%27s+liberating"/>
</p>
### 🤔 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ät | Codename | SoC | Kernel | Status |
|--------|----------|-----|--------|:------:|
| Redmi K70E | **duchamp** | MT6897 (Dimensity 8300) | 6.1.138-android14-11 | ✅ |
> Andere Geräte unter `src/targets/` sind Referenzkonfigurationen aus dem Originalprojekt, nicht verifiziert.
---
### 🧠 Exploit-Kette
| Stufe | Technik | Beschreibung |
|-------|-----------|-------------|
| 1. KASLR-Leak | `pselect`-Slide-Seitenkanal | Liest `_stext` über nfulnl_log_packet-Datenalias |
| 2. FOPS-Hijack | `pselect` beliebiger Stack-Schreibzugriff | FUTEX_CMP_REQUEUE_PI-Race → Überschreiben der ops-Tabelle |
| 3. Phys rw-Primitive | Gefälschte `pipe_buf_ops` | Fake Pipe-Buffer-ops → beliebiger Kernel-Physik-RW |
| 4. Eskalation | Patchen von cred + seccomp + selinux | uid=0, volle Caps, seccomp deaktivieren, selinux deaktivieren |
| 5. Persistenz | Eingebettetes KernelSU | ksud (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 leaken** — `pselect`-Seitenkanal über nfulnl_log_packet-Datenalias liest `_stext`
3. **FOPS-Tabelle kapern** — Futex PI-Race-Condition + Pipe-ops überschreiben
4. **Phys rw erhalten** — `pipe_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
```bash
# 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
```bash
# 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: はいはいわかりました草
---
<p align="center">
<img src="https://readme-typing-svg.demolab.com?font=JetBrains+Mono&size=20&pause=1000&color=00FF88%C2%A2er=true&vCenter=true&width=600&lines=710+Unlock+Festival+Latest+Masterpiece+%F0%9F%94%A5;Root+it+like+it%27s+710;Skill+Issue+++You+Leak+Creds+++L+/+Bozo" alt="710 footer" />
</p>
---
<p align="center">
<sub>Hergestellt mit 💀, ☕, 710% Aufwand und absolut null Comic Sans</sub>
</p>