
Xiaomi K70e (duchamp) のワンクリック root 化 (CVE-2026-43499 (IonStack) 経由) + KernelSU 統合
<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="visitor counter" />
</p>
---


-blue)
-green)


> ⚡ **JetBrains Mono の誇り高きユーザー**⚡
> この README は JetBrains Mono のみを使用しています。Comic Sans は禁止です。
> [!IMPORTANT]
> 🚨 **免責事項**
>
> このエクスプロイトは**教育目的のみ**です。
> - ブートローダーのロック解除は保証を無効にする可能性があります。
> - ルート化により、ブートループ、データ損失、または自然発火が発生する可能性があります(おそらく発生しませんが、誰にもわかりません)。
> - あなたの 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** デーモンを統合しています。
**簡単に言うと**:クリックするだけで、電話が 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_buf_ops` | pipe_buf_ops を偽装→任意のカーネル物理読み書きを取得 |
| 4. 権限昇格 | 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. **物理読み書きを獲得** — `pipe_buf_ops` を偽装し、任意のカーネル物理アドレス読み書きを実現
5. **cred を修正** — root 子プロセスの 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 化により、ブートループ、データ損失、銀行アプリの使用不可などが発生する可能性があります。
もし彼女に振られたとしても、それはあなた自身の問題です。
文鎮化したとしても、私は笑います。
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 バイパスが組み込まれています。それでも検出されたなら、それはスキル不足です。
**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+%E3%82%A2%E3%83%B3%E3%83%AD%E3%83%83%E3%82%AF%E3%83%95%E3%82%A7%E3%82%B9%E3%83%86%E3%82%A3%E3%83%90%E3%83%AB%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>
## 📖 英語
<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** デーモンを統合。
**カジュアル版**: クリック、ルート、完了。
**710 フェスティバル版**: 7月10日。7月11日(コンビニ)でも7月9日(誰が気にする?)でもない。7月10日。この日はブートローダーをアンロックするのではなく、電話を解放する日。
**哲学版**: `/proc/` を覗き込むとき、`/proc/` も `pipe_physrw` で覗き返してくる。
---
### 🎯 対応デバイス
| デバイス | コードネーム | SoC | カーネル | ステータス |
|--------|----------|-----|--------|:------:|
| 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_buf_ops` | 偽のパイプバッファ ops → 任意のカーネル物理読み書き |
| 4. 権限昇格 | cred + seccomp + selinux の修正 | uid=0、全 cap、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 ベースをリーク** — nfulnl_log_packet データエイリアスを介した `pselect` サイドチャネルで `_stext` を読み取り
3. **FOPS テーブルをハイジャック** — futex PI 競合状態 + pipe ops の書き換え
4. **物理読み書きを獲得** — `pipe_buf_ops` を偽装し、任意のカーネル物理メモリアクセスを実現
5. **cred を修正** — root 子タスクを見つけ、uid=0、全 cap、カーネル sid に修正
6. **セキュリティを無効化** — seccomp を修正、TIF_SECCOMP をクリア、selinux enforce=0
7. **KernelSU を起動** — 埋め込まれた ksud を `/data/local/tmp/ksud` に展開し、KernelSU デーモンを起動
---
### 📦 使用方法
#### 前提条件
- Xiaomi K70e (duchamp) またはその他対応デバイス
- アンロックされたブートローダー(またはロック解除不要 — LD_PRELOAD はどちらでも動作)
- 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
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 のアンロックは保証を無効にする可能性があります。
ルート化により、ブートループ、データ損失、アプリの非互換性が発生する可能性があります。
デバイスを文鎮化した場合、それはスキル不足です。
私を責めるなら、それはあなたの問題です。
笑うなら、あなたは仲間です。
710 アンロックフェスティバル!🚀
```
---
### 💡 トリビア / FAQ
**Q: なぜ「710 アンロックフェスティバル」?**
A: 7月10日。コンビニの日(7/11)でも、7月9日(何だそれ)でもない。7月10日。この日はブートローダーをアンロックするのではなく、電話を解放する日。
**Q: QwQ?**
A: 感情は安定しています(大嘘)。
**Q: BL ロック解除なしで使えますか?**
A: はい。`LD_PRELOAD` 注入は BL ロック解除を必要としません。ただし、再起動後は再注入が必要です。
**Q: Kernelsnitch をトリガーしますか?**
A: Kernelsnitch バイパスが含まれています。それでも検出されたら、スキル不足です。
**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+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>💀、☕、710% の努力、そして絶対にゼロの Comic Sans で作られました</sub>
</p>