website/docs/ja_JP/guide/rescue-from-bootloop.md
デバイスに書き込む際、デバイスが「文鎮化」状態になる場面に遭遇することがあります。理論的には、fastboot で boot パーティションを書き込んだだけだったり、不適切なモジュールをインストールしてデバイスが起動しなくなったりした場合なら、適切な操作で復旧できます。このページでは、「文鎮化」状態になったデバイスを復旧させるための緊急手段を紹介します。
KernelSU では、以下のような状況で boot パーティションを書き込んだときに文鎮化する場合があります:
gz なのに lz4 形式のイメージを書き込んでしまうと、起動しなくなります。どのような状況であっても、純正の boot イメージを書き込むことで復旧できます。したがって、インストールする前にまずは純正の boot パーティションをバックアップすることを強くおすすめします。バックアップしていない場合は、あなたと同じデバイスを持つ他のユーザー、または公式ファームウェアから純正の boot イメージを入手できます。
モジュールのインストールはデバイスを文鎮化させる一般的な原因です。モジュールを未知のソースからインストールしないでください!モジュールは root 権限を持つため、あなたのデバイスに不可逆的なダメージを与える可能性があります!
安全であることが確認されているモジュールをインストールしてデバイスが起動しなくなった場合、KernelSU では心配することなく簡単に復旧できます。KernelSU には、デバイスを救出するためのセーフモードが組み込まれています:
セーフモードを使用して復旧を試みることができます。セーフモードに入ると、すべてのモジュールが無効化されます。
セーフモードに入るには、2つの方法があります:
セーフモードに入ると、KernelSU Manager のモジュールページにあるすべてのモジュールが無効になります。「アンインストール」操作を行うことで、問題を起こしている可能性のあるモジュールをアンインストールできます。
内蔵のセーフモードはカーネルに実装されているため、キーイベントを見逃す可能性はありません。ただし、GKI 以外のカーネルでは手動によるコードの統合が必要な場合があるため、公式ドキュメントを参考にしてください。
::: warning
KernelSU はカーネルモジュールの初期化中(LKM モードでカーネルが init プロセスを実行する際に読み込まれる)に音量キーリスナーを登録し、on_post_fs_data ステージ(起動アニメーションの前)で登録を解除します。タイミングを把握し、最初の起動画面の後に音量下キーをすばやく 3 回押す必要があります。デバイスの起動が速い場合や操作が遅れた場合、セーフモードがトリガーされない可能性があります。
モジュールが initrc に不合理なコードを書き込み、デバイスが起動しなくなった場合、これらのコードはセーフモードでも実行されます。 :::
セーフモードで問題が解決しない場合は、手動での復旧を試すことができます。デバイスの状態に応じて、以下の方法を選択してください。
方法 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 はモジュールをロードしなくなります。
操作手順:
mount /data
rm -f /data/adb/ksud
mount /metadata
rm -f /metadata/ksu/modules.rc
rm -f /metadata/watchdog/ksu/modules.rc
reboot
再起動後、KernelSU はすべてのモジュールの読み込みをスキップします。システムに入ったら、KernelSU Manager を再度開いてモジュールの問題に対処できます。
上記の方法でデバイスを救出できない場合、インストールしたモジュールが悪意のある操作をしているか、他の手段でデバイスを損傷している可能性が高いです。この場合、2つの方法しかありません: