---
url: https://kernelsu.org/ja_JP/guide/rescue-from-bootloop.md
---
# ブートループからの復旧

デバイスに書き込む際、デバイスが「文鎮化」状態になる場面に遭遇することがあります。理論的には、fastboot で boot パーティションを書き込んだだけだったり、不適切なモジュールをインストールしてデバイスが起動しなくなったりした場合なら、適切な操作で復旧できます。このページでは、「文鎮化」状態になったデバイスを復旧させるための緊急手段を紹介します。

## boot パーティションの書き込みによる文鎮化

KernelSU では、以下のような状況で boot パーティションを書き込んだときに文鎮化する場合があります：

1. 間違った形式の boot イメージを書き込んでしまった場合。例えばお使いのデバイスのパーティション形式が `gz` なのに `lz4` 形式のイメージを書き込んでしまうと、起動しなくなります。
2. お使いのデバイスが起動するために AVB 検証を無効にする必要がある場合（通常、無効にするにはすべてのデータを消去する必要があります）。
3. カーネルにバグがある、または書き込みに適していない場合。

どのような状況であっても、**純正の boot イメージを書き込む**ことで復旧できます。したがって、インストールする前にまずは純正の boot パーティションをバックアップすることを強くおすすめします。バックアップしていない場合は、あなたと同じデバイスを持つ他のユーザー、または公式ファームウェアから純正の boot イメージを入手できます。

## モジュールによる文鎮化

モジュールのインストールはデバイスを文鎮化させる一般的な原因です。**モジュールを未知のソースからインストールしないでください**！モジュールは root 権限を持つため、あなたのデバイスに不可逆的なダメージを与える可能性があります！

### 通常のモジュール

安全であることが確認されているモジュールをインストールしてデバイスが起動しなくなった場合、KernelSU では心配することなく簡単に復旧できます。KernelSU には、デバイスを救出するためのセーフモードが組み込まれています：

#### 音量下ボタンでの復旧 {#volume-down}

**セーフモード**を使用して復旧を試みることができます。セーフモードに入ると、すべてのモジュールが無効化されます。

セーフモードに入るには、2つの方法があります：

1. 一部のシステムの内蔵セーフモード：音量下ボタンの長押しでセーフモードに入れるシステムもあれば、リカバリーでセーフモードに入れるシステム（MIUI/HyperOS など）もあります。システムのセーフモードに入ると KernelSU もセーフモードに入り、自動的にモジュールを無効化します。
2. KernelSU の内蔵セーフモード：最初の起動画面の後、**音量下キーを3回以上連続して押す**と入れます。なお、押す→離す、押す→離す、押す→離すを繰り返すのであって、長押しではありません。

セーフモードに入ると、KernelSU Manager のモジュールページにあるすべてのモジュールが無効になります。「アンインストール」操作を行うことで、問題を起こしている可能性のあるモジュールをアンインストールできます。

内蔵のセーフモードはカーネルに実装されているため、キーイベントを見逃す可能性はありません。ただし、GKI 以外のカーネルでは手動によるコードの統合が必要な場合があるため、公式ドキュメントを参考にしてください。

::: warning
KernelSU はカーネルモジュールの初期化中（LKM モードでカーネルが init プロセスを実行する際に読み込まれる）に音量キーリスナーを登録し、`on_post_fs_data` ステージ（起動アニメーションの前）で登録を解除します。タイミングを把握し、最初の起動画面の後に音量下キーをすばやく 3 回押す必要があります。デバイスの起動が速い場合や操作が遅れた場合、セーフモードがトリガーされない可能性があります。

モジュールが initrc に不合理なコードを書き込み、デバイスが起動しなくなった場合、これらのコードはセーフモードでも実行されます。
:::

#### 手動での復旧 {#manual-rescue}

セーフモードで問題が解決しない場合は、手動での復旧を試すことができます。デバイスの状態に応じて、以下の方法を選択してください。

**方法 1: ADB 経由で ksud を使用してモジュールを管理する**

デバイスが ADB 経由で root シェルを取得できる場合は、`ksud` コマンドラインを使用して、問題のあるモジュールを直接無効化またはアンインストールできます：

::: tip
`metadata` パーティションと `data` パーティションをマウントした後、リカバリーモードで `/data/adb/ksud` コマンドを実行してモジュールを管理できます。

GKI デバイスは `init` を共有しているため、KernelSU カーネルモジュールはリカバリーモードでも読み込まれます。そのため、`ksud` の機能のほとんど（機能の設定など）を通常通り使用できるはずです。
:::

```
adb shell
su
ksud module list          # すべてのモジュールを一覧表示
ksud module disable <id>  # 問題のあるモジュールを無効にする
ksud module uninstall <id> # または直接アンインストール
reboot
```

**方法 2: リカバリーによる手動クリーンアップ**

システムに入ることができない（ADB も接続できない）場合は、デバイスにサードパーティのリカバリー（TWRP など）が必要です。

KernelSU のモジュールの読み込みは、カーネル側の init.rc 注入ファイルとユーザー空間の ksud プロセスに依存しています。これらのファイルを削除して再起動すると、KernelSU はモジュールをロードしなくなります。

**操作手順:**

1. リカバリー（TWRP など）に入ります。
2. data パーティションをマウントします:
   ```
   mount /data
   ```
   （まず data パーティションを復号する必要がある場合があります。具体的な操作はデバイスと復号方法によって異なります。）
3. モジュールのロードを防ぐために ksud を削除します:
   ```
   rm -f /data/adb/ksud
   ```
4. （オプション）metadata パーティションをマウントし、モジュールによって生成された init.rc 注入ファイルを削除します:
   ```
   mount /metadata
   rm -f /metadata/ksu/modules.rc
   rm -f /metadata/watchdog/ksu/modules.rc
   ```
5. デバイスを再起動します:
   ```
   reboot
   ```

再起動後、KernelSU はすべてのモジュールの読み込みをスキップします。システムに入ったら、KernelSU Manager を再度開いてモジュールの問題に対処できます。

### データのフォーマット、またはその他の悪意のあるモジュール

上記の方法でデバイスを救出できない場合、インストールしたモジュールが悪意のある操作をしているか、他の手段でデバイスを損傷している可能性が高いです。この場合、2つの方法しかありません：

1. データを消去して公式システムを完全に書き込み直す。
2. アフターセールスサービスに問い合わせする
