
Xiaomi K70e (duchamp) рут одним кликом через CVE-2026-43499 (IonStack) + интеграция KernelSU
<!-- Language selector -->
<p align="right">
<a href="#中文版">Китайский</a> |
<a href="#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="счетчик посетителей" />
</p>
---


-blue)
-green)


> ⚡ **Гордый пользователь JetBrains Mono** ⚡
> В этом README используется исключительно JetBrains Mono. Comic Sans запрещён.
> [!IMPORTANT]
> 🚨 **Отказ от ответственности**
>
> Данный эксплойт предназначен **только для образовательных целей**.
> - Разблокировка загрузчика может лишить вас гарантии.
> - Root-доступ к устройству может вызвать bootloop, потерю данных или самовозгорание (вероятно, нет, но кто знает).
> - Я не несу ответственности, если ваш K70e превратится в кирпич K70.
> - Если ваша девушка уйдёт от вас из-за того, что вы слишком много времени потратили на рутинг, это ваша проблема.
> - **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**.
**Простыми словами**: нажал — и телефон рутирован. Всё просто.
**Версия «Фестиваль разблокировки 710»**: Не 711, не 709, а 710. В этот день мы не разблокируем телефон, мы освобождаем его.
**Философская версия**: Когда ты смотришь в `/proc/`, `/proc/` смотрит в тебя через `pipe_physrw`.
---
### 🎯 Текущая поддержка
| Устройство | Кодовое имя | Чип | Версия ядра | Статус |
|------------|-------------|-----|-------------|:------:|
| Redmi K70E | **duchamp** | MT6897 (Dimensity 8300) | 6.1.138-android14-11 | ✅ |
> Другие модели см. в каталоге `src/targets/` (эталонные конфигурации из исходного проекта, не проверенные на практике).
---
### 🧠 Цепочка уязвимостей
| Этап | Метод | Описание |
|------|-------|----------|
| 1. Утечка KASLR | Побочный канал `pselect` slide | Чтение `_stext` через псевдоним данных nfulnl_log_packet |
| 2. Перехват FOPS | Произвольная запись в стек через `pselect` | FUTEX_CMP_REQUEUE_PI + состояние гонки для перезаписи таблицы ops |
| 3. Примитив физического чтения/записи | Поддельные `pipe_buf_ops` | Подделка pipe_buf_ops → произвольный физический rw в ядре |
| 4. Повышение привилегий | Патч cred + seccomp + selinux | Изменение 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, изменение uid=0, полные cap, sid=kernel
6. **Отключение защиты** — патч seccomp, сброс TIF_SECCOMP, selinux enforce=0
7. **Запуск KernelSU** — извлечение встроенного ksud в `/data/local/tmp/ksud`, запуск демона KernelSU
---
### 📦 Использование
#### Предварительные требования
- Xiaomi K70e (duchamp) или другое поддерживаемое устройство
- Разблокированный загрузчик (или неразблокированный — временный root тоже работает)
- Включена отладка ADB
- Храбрость, не боящаяся кирпича
#### Быстрый старт
```bash
# Скачать preload.so из Release
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`
- Крепкое сердце (предупреждение о кирпиче)
---
### 🛡️ Отказ от ответственности
```
Данный инструмент предназначен только для учебных и исследовательских целей.
Разблокировка загрузчика может привести к аннулированию гарантии.
Root-доступ к устройству может вызвать bootloop, потерю данных, неработоспособность банковских приложений.
Если вы из-за этого расстались с девушкой — это ваша проблема.
Если вы получили кирпич и пришли ко мне — я буду смеяться.
С фестивалем разблокировки 710! 🚀
```
---
### 💡 Пасхалки / ЧаВО
**В: Почему «Фестиваль разблокировки 710»?**
О: 10 июля. Не 711 (магазин), не 709 (непонятно что). 710. В этот день мы не разблокируем BL, мы освобождаем телефон.
**В: QwQ?**
О: Эмоционально стабилен (нет).
**В: Есть su?**
О: Нет, только KernelSU. Если нужен su, установи менеджер KernelSU и включи сам.
**В: Поддерживаются ли другие модели?**
О: Смотри каталог `src/targets/`. Если твоя модель там — поддерживается, если нет — добавляй сам.
**В: Можно ли использовать без разблокировки BL?**
О: Да, внедрение через `LD_PRELOAD` не требует разблокировки BL. Но после перезагрузки нужно будет внедрять снова.
**В: Сработает ли Kernelsnitch?**
О: Обход Kernelsnitch уже встроен. Если тебя всё равно поймают — это skill issue.
**В: 114514?**
О: はいはいわかりました草
---
<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" />
</p>
---
<a name="english"></a>
## 📖 Английская версия
<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>
### 🤔 Что это
**Xiaomi K70e (duchamp)** — инструмент для root в один клик, основанный на уязвимости ядра **CVE-2026-43499 (IonStack)**, со встроенным демоном **KernelSU**.
**Неформальная версия**: Клик, root, готово.
**Версия «Фестиваль 710»**: 10 июля. Не 11 июля (магазин), не 9 июля (кому какое дело). 10 июля. В этот день мы не разблокируем загрузчики, мы освобождаем телефоны.
**Философская версия**: Когда ты смотришь в `/proc/`, `/proc/` смотрит в тебя с `pipe_physrw`.
---
### 🎯 Поддерживаемые устройства
| Устройство | Кодовое имя | SoC | Ядро | Статус |
|------------|-------------|-----|------|:------:|
| Redmi K70E | **duchamp** | MT6897 (Dimensity 8300) | 6.1.138-android14-11 | ✅ |
> Другие устройства в каталоге `src/targets/` — эталонные конфигурации из оригинального проекта, не проверены.
---
### 🧠 Цепочка эксплойта
| Этап | Метод | Описание |
|------|-------|----------|
| 1. Утечка KASLR | Побочный канал `pselect` slide | Чтение `_stext` через псевдоним данных nfulnl_log_packet |
| 2. Перехват FOPS | Произвольная запись в стек через `pselect` | Состояние гонки FUTEX_CMP_REQUEUE_PI → перезапись таблицы ops |
| 3. Примитив phys rw | Поддельные `pipe_buf_ops` | Подделка pipe_buffer ops → произвольный физический rw в ядре |
| 4. Повышение | Патч cred + seccomp + selinux | uid=0, полные caps, отключение seccomp, отключение selinux |
| 5. Постоянство | Встроенный KernelSU | Запись и запуск ksud (демона KernelSU) |
---
### 🎭 Галерея мемов
**Фестиваль 710**
```
Пользователь: "Могу я разблокировать свой K70e?"
Разработчик: "Не нужно разблокировать, просто рутируй."
Пользователь: "??? "
Разработчик: "w 710"
Пользователь: "Что?"
Разработчик: "Фестиваль разблокировки 710. Не разблокировка BL, а освобождение телефонов."
```
**Первый запуск**
```
Пользователь: "Почему мой телефон перезагрузился?"
preload.so: "Не паникуй, я повышаю привилегии."
Пользователь: "Почему на моём телефоне KernelSU?"
preload.so: "Я его поставил. Пожалуйста."
```
**Интеграция 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, изменение uid=0, полные caps, sid=kernel
6. **Отключение защиты** — патч seccomp, сброс TIF_SECCOMP, selinux enforce=0
7. **Запуск KernelSU** — извлечение встроенного ksud в `/data/local/tmp/ksud`, запуск демона KernelSU
---
### 📦 Использование
#### Предварительные требования
- Xiaomi K70e (duchamp) или другое поддерживаемое устройство
- Разблокированный загрузчик (или неразблокированный — LD_PRELOAD работает в любом случае)
- Включена отладка ADB
- Храброе сердце
#### Быстрый старт
```bash
# Скачать preload.so из Releases
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
```
#### Сборка из исходников
```bash
# Требуется NDK или Termux с aarch64-linux-android-clang
make PROJECT=duchamp
# Результат в build/duchamp/bin/preload.so
```
---
### 📂 Структура файлов
```
├── Makefile
├── assets/
│ └── (TBD)
├── 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 может аннулировать гарантию.
Root может вызвать bootloop, потерю данных или несовместимость приложений.
Если вы получили кирпич — это skill issue.
Если вы обвиняете меня — это ваша проблема.
Если вы смеётесь — вы наш человек.
С фестивалем разблокировки 710! 🚀
```
---
### 💡 Мелочи / ЧаВО
**В: Почему «Фестиваль разблокировки 710»?**
О: 10 июля. Не день магазина (7/11), не чёрт знает что 9 июля. 10 июля. В этот день мы не разблокируем загрузчики, мы освобождаем телефоны.
**В: QwQ?**
О: Эмоционально стабилен (большая ложь).
**В: Можно ли использовать без разблокировки BL?**
О: Да. Внедрение через `LD_PRELOAD` не требует разблокированного BL. Однако после перезагрузки нужно будет внедрять заново.
**В: Сработает ли Kernelsnitch?**
О: Обход Kernelsnitch включён. Если вас всё равно поймают — skill issue.
**В: 114514?**
О: はいはいわかりました草
---
<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" />
</p>
---
<p align="center">
<sub>Сделано с 💀, ☕, 710% усилий и абсолютно без Comic Sans</sub>
</p>