अपडेट पर वापस जाएँ
New releaseAug 20, 2026

duchamp-root v52c8d05bcf

Xiaomi K70e (duchamp) एक-क्लिक रूट के माध्यम से CVE-2026-43499 (IonStack) + KernelSU एकीकरण

साझा करें

中文 | English

visitor counter


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

Proud user of JetBrains Mono
This README uses JetBrains Mono exclusively. Comic Sans is forbidden.

[!IMPORTANT] 🚨 अस्वीकरण

यह एक्सप्लॉइट केवल शैक्षिक उद्देश्यों के लिए है।

  • बूटलोडर अनलॉक करने से आपकी वारंटी खत्म हो सकती है।
  • डिवाइस रूट करने से बूटलूप, डेटा हानि या स्वतःस्फूर्त दहन हो सकता है (शायद नहीं, लेकिन कौन जानता है)।
  • अगर आपका K70e ईंट बन जाए तो मैं जिम्मेदार नहीं हूँ।
  • अगर आपकी गर्लफ्रेंड आपको छोड़ दे क्योंकि आपने रूट करने में बहुत समय बिताया, तो वह आपकी समस्या है।
  • 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


📖 अंग्रेज़ी

🤔 यह क्या है

Xiaomi K70e (duchamp) के लिए एक-क्लिक रूट टूल, जो CVE-2026-43499 (IonStack) कर्नेल एक्सप्लॉइट पर आधारित है, और इसमें KernelSU डेमॉन एकीकृत है।

सरल संस्करण: क्लिक करें, रूट हो गया। बस इतना ही।

710 उत्सव संस्करण: 10 जुलाई। 11 जुलाई (सुविधा स्टोर) नहीं, 9 जुलाई (कौन परवाह करता है) नहीं। 10 जुलाई। इस दिन हम बूटलोडर अनलॉक नहीं करते, हम फ़ोन को मुक्त करते हैं।

दार्शनिक संस्करण: जब आप /proc/ में घूरते हैं, तो /proc/ आपको pipe_physrw से घूरकर जवाब देता है।


🎯 समर्थित डिवाइस

डिवाइसकोडनेमSoCकर्नेलस्थिति
Redmi K70EduchampMT6897 (Dimensity 8300)6.1.138-android14-11

src/targets/ में अन्य डिवाइस मूल प्रोजेक्ट से संदर्भ कॉन्फ़िगरेशन हैं, सत्यापित नहीं।


🧠 एक्सप्लॉइट श्रृंखला

चरणतकनीकविवरण
1. KASLR लीकpselect स्लाइड साइड-चैनलnfulnl_log_packet डेटा उपनाम के माध्यम से _stext पढ़ना
2. FOPS हाईजैकpselect मनमाना स्टैक राइटFUTEX_CMP_REQUEUE_PI रेस → ops तालिका ओवरराइट
3. फिजिकल rw प्रिमिटिवनकली pipe_buf_opsनकली पाइप बफ़र ops → मनमाना कर्नेल फिजिकल rw
4. एस्केलेशनcred + seccomp + selinux पैचuid=0, पूर्ण कैप्स, seccomp अक्षम, selinux अक्षम
5. स्थिरताएम्बेडेड KernelSUksud (KernelSU डेमॉन) लिखें और लॉन्च करें

🎭 मीम गैलरी

710 उत्सव

User: "क्या मैं अपना K70e अनलॉक कर सकता हूँ?"
Dev:  "अनलॉक करने की ज़रूरत नहीं, बस रूट करो।"
User: "??? "
Dev:  "w 710"
User: "क्या?"
Dev:  "710 अनलॉक उत्सव। BL अनलॉक नहीं कर रहे, फ़ोन मुक्त कर रहे हैं।"

पहला बूट

User: "मेरा फ़ोन क्यों रीस्टार्ट हुआ?"
preload.so: "घबराओ मत, मैं विशेषाधिकार बढ़ा रहा हूँ।"
User: "मेरे फ़ोन पर KernelSU क्यों है?"
preload.so: "मैंने वहाँ रखा। तुम्हारा स्वागत है।"

KernelSU एकीकरण

User: "इसके बाद रूट कैसे मैनेज करूँ?"
ksud: "नमस्ते, मैं KernelSU डेमॉन हूँ।"
User: "तुम क्या कर सकते हो?"
ksud: "ऐप्स को रूट एक्सेस दे सकता हूँ।"
User: "तुम बिल्ट-इन नहीं हो?"
ksud: "मैं preload.so में एम्बेडेड हूँ।"
User: "बढ़िया।"

ब्रिक रिपोर्ट

User: "मैंने तुम्हारी चीज़ फ़्लैश की और अब वह ब्रिक हो गया!!!"
Dev:  "कौन सा डिवाइस?"
User: "iPhone 14."
Dev:  "... सच में?"
User: "तुमने कहा था 710 उत्सव, तो मैंने कोशिश की।"
Dev:  "710 Xiaomi 14 का कोडनेम है, iPhone 14 नहीं। चले जाओ।"

⚙️ यह कैसे काम करता है

  1. preload.so लोड करें — किसी भी ऐप में LD_PRELOAD के माध्यम से इंजेक्ट करें, __attribute__((constructor)) ट्रिगर करता है
  2. KASLR बेस लीक करेंpselect साइड-चैनल via nfulnl_log_packet डेटा उपनाम _stext पढ़ता है
  3. FOPS तालिका हाईजैक करें — futex PI रेस कंडीशन + पाइप ops रीराइट
  4. फिजिकल rw प्राप्त करें — मनमाना कर्नेल फिजिकल मेमोरी एक्सेस के लिए pipe_buf_ops forge करें
  5. cred पैच करें — रूट चाइल्ड टास्क ढूँढें, uid=0, पूर्ण कैप्स, कर्नेल sid पैच करें
  6. सुरक्षा अक्षम करें — seccomp पैच, TIF_SECCOMP साफ़ करें, selinux enforce=0
  7. KernelSU लॉन्च करें — एम्बेडेड ksud को /data/local/tmp/ksud में निकालें, KernelSU डेमॉन शुरू करें

📦 उपयोग

पूर्वापेक्षाएँ

  • Xiaomi K70e (duchamp) या अन्य समर्थित डिवाइस
  • अनलॉक किया हुआ बूटलोडर (या नहीं — LD_PRELOAD दोनों तरह काम करता है)
  • ADB डीबगिंग सक्षम
  • एक बहादुर आत्मा

त्वरित आरंभ

# रिलीज़ से 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
LD_PRELOAD=/data/local/tmp/preload.so your_app

स्रोत से बनाएँ

# 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, root.c, slide.c, fops.c, pipe.c
    ├── ksud_blob.S               # एम्बेडेड ksud बाइनरी
    ├── su_daemon.c, offset.h, common.h
    ├── kernelsnitch/            # Kernelsnitch बाईपास
    └── targets/                 # डिवाइस-विशिष्ट target.h फ़ाइलें

🧩 निर्भरताएँ

  • aarch64-linux-android-clang (NDK r29 या Termux)
  • lld लिंकर
  • make + git
  • एक मजबूत दिल (ब्रिक चेतावनी)

🛡️ अस्वीकरण

यह उपकरण केवल शैक्षिक उद्देश्यों के लिए है।
BL अनलॉक करने से वारंटी शून्य हो सकती है।
रूट करने से बूटलूप, डेटा हानि या ऐप असंगतता हो सकती है।
यदि आप अपना डिवाइस ब्रिक करते हैं, तो वह कौशल की कमी है।
यदि आप मुझे दोष देते हैं, तो वह आपकी समस्या है।
यदि आप हँसते हैं, तो आप हममें से एक हैं।
710 अनलॉक उत्सव! 🚀

💡 तथ्य / सामान्य प्रश्न

Q: "710 अनलॉक उत्सव" क्यों?
A: 10 जुलाई। सुविधा स्टोर दिवस (7/11) नहीं, जो भी 9 जुलाई है वह नहीं। 10 जुलाई। इस दिन हम बूटलोडर अनलॉक नहीं करते, हम फ़ोन मुक्त करते हैं।

Q: QwQ?
A: भावनात्मक रूप से स्थिर (बड़ा झूठ)।

Q: क्या मैं BL अनलॉक किए बिना इसका उपयोग कर सकता हूँ?
A: हाँ। LD_PRELOAD इंजेक्शन को अनलॉक BL की आवश्यकता नहीं है। लेकिन रीबूट के बाद आपको पुनः इंजेक्ट करना होगा।

Q: क्या यह Kernelsnitch को ट्रिगर करेगा?
A: Kernelsnitch बाईपास शामिल है। यदि फिर भी पकड़े जाते हैं, तो कौशल की कमी है।

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


710 footer


Made with 💀, ☕, 710% effort, and absolutely zero Comic Sans

श्रेणियाँ