website/docs/ja_JP/guide/installation.md
GitHub Releases から KernelSU Manager アプリをダウンロードし、お使いのデバイスにインストールしてください。
::: info ヒント 非対応と表示されているデバイスについては、非公式の対応デバイスであればご自身でカーネルをビルドできます。 :::
書き込む前に、まず純正の boot.img をバックアップする必要があります。ブートループが発生した場合は、fastboot を使用して純正のブートイメージを書き込むことでいつでもシステムを復旧できます。
::: warning 警告 書き込みによりデータ損失を引き起こす可能性があります。次のステップに進む前に、このステップを必ず行うようにしてください!また、可能であればすべてのデータをバックアップしてください。 :::
このチュートリアルでは、デフォルトで ADB と fastboot のツールを使用します。ご存じない方は、まず検索エンジンを使って勉強されることをおすすめします。
同じ Kernel Module Interface (KMI) のカーネルバージョンは互換性があります。これが GKI の「汎用」という意味です。逆に言えば KMI が異なればカーネルには互換性がなく、お使いのデバイスと異なる KMI のカーネルイメージを書き込むと、ブートループが発生する場合があります。
具体的には GKI デバイスの場合、カーネルバージョンの形式は以下のようになります:
KernelRelease :=
Version.PatchLevel.SubLevel-AndroidRelease-KmiGeneration-suffix
w .x .y -zzz -k -something
w.x-zzz-k は KMI のバージョンです。例えば、デバイスのカーネルバージョンが 5.10.101-android12-9-g30979850fc20 である場合、その KMIは 5.10-android12-9 であり、理論的には他の KMI カーネルでも正常に起動できます。
::: tip ヒント
カーネルバージョンの SubLevel は、KMI の一部ではないことに注意してください。5.10.101-android12-9-g30979850fc20 は 5.10.137-android12-9-g30979850fc20 と同じ KMI を持っているということになります。
:::
新しめの Android 端末には、セキュリティパッチレベルが古い boot イメージのフラッシュを許可しないロールバック防止機構が導入されていることがあります。例えば、もしあなたの端末のカーネルが 5.10.101-android12-9-g30979850fc20 であれば、セキュリティパッチレベルは 2023-11 です。たとえ KMI に対応するカーネルをフラッシュしても、セキュリティパッチレベルが (2023-06 のように) 2023-11 より低い場合、ブートループを起こす可能性があります。
注意: カーネルバージョンと Android バージョンは必ずしも同じではありません。
カーネルのバージョンは「android12-5.10.101」なのに、Android システムのバージョンは「Android 13」などとなっていても、驚かないでください。Android システムのバージョン番号は、必ずしも Linux カーネルのバージョン番号と同じではありません。Linux カーネルのバージョン番号は、通常、デバイスの出荷時にプリインストールされている Android システムのバージョンに一致しています。Android システムが後でアップグレードされた場合、一般的にはカーネルのバージョンは変更されません。フラッシュをする際は、必ずカーネルバージョンを参照してください!!!
バージョン 0.9.0 以降、KernelSU は GKI 端末において 2 つの動作モードに対応しています。
GKI: 端末本来のカーネルを KernelSU によって提供される 汎用カーネルイメージ (GKI) で置き換えます。LKM: 端末本来のカーネルを置き換えずに、カーネルに ローダブルカーネルモジュール (LKM) を読み込みます。これらの 2 つのモードはそれぞれ異なる状況に適しており、必要に応じてどちらかを選ぶことができます。
GKI モードでは、端末本来のカーネルは KernelSU によって提供される汎用カーネルイメージによって置き換えられます。GKI モードの利点は:
LKM モードでは、端末本来のカーネルを置き換えずに、カーネルにローダブルカーネルモジュールを読み込みます。LKM モードの利点は:
:::tip 2 つのモードの共存 マネージャーを開くと、ホームで現在の端末の動作モードを確認できます。GKI モードの優先度は LKM モードより高いことに留意してください。例えば、本来のカーネルを GKI カーネルで置き換えたうえで LKM を使って GKI カーネルにパッチしている場合、LKM は無視され、端末は常時 GKI モードで動作します。 :::
端末が携帯電話の場合、LKM モードを優先することを推奨します。端末がエミュレーター、WSA、または Waydroid の場合、GKI モードを優先することを推奨します。
LKM モードを使うためには、公式ファームウェアを入手し、それを基にパッチを当てる必要があります。サードパーティのカーネルを使う場合、その boot.img を公式ファームウェアとして利用できます。
公式ファームウェアを入手する方法はたくさんあります。端末が fastboot boot に対応している場合、fastboot boot を使って一時的に KernelSU が提供する GKI カーネルを起動する、 最も推奨される、最も簡単な 方法を推奨します。
端末が fastboot boot に対応していない場合、公式ファームウェアのパッケージを手動でダウンロードし、そこから boot.img を展開する必要があります。
GKI モードとは異なり、LKM モードは ramdisk を展開します。そのため、Android 13 の端末では boot パーティションの代わりに init_boot パーティションにパッチを当てる必要があります。一方で、GKI モードは常に boot パーティションを操作します。
マネージャーを開き、右上のインストールアイコンをタップすると、いくつかのオプションが現れます:
fastboot boot で KernelSU の GKI を起動し一時的に Root 権限を獲得したうえでこのオプションを利用することもできます。これは KernelSU をアップグレードする主な方法でもあります。マネージャーを使いたくない場合、コマンドラインを使って LKM をインストールできます。KernelSU の提供する ksud ツールを使うと、迅速に公式ファームウェアにパッチを当てフラッシュすることができます。
このツールは macOS、Linux および Windows に対応しています。GitHub Release から対応するバージョンをダウンロードしてください。
使用方法: ksud bootpatch コマンドの各オプションのヘルプをコマンドラインから確認できます。
oriole:/ # ksud boot-patch -h
Patch boot or init_boot images to apply KernelSU
Usage: ksud boot-patch [OPTIONS]
Options:
-b, --boot <BOOT> boot image path, if not specified, will try to find the boot image automatically
-k, --kernel <KERNEL> kernel image path to replace
-m, --module <MODULE> LKM module path to replace, if not specified, will use the builtin one
-i, --init <INIT> init to be replaced
-u, --ota will use another slot when boot image is not specified
-f, --flash Flash it to boot partition after patch
-o, --out <OUT> output path, if not specified, will use current directory
--magiskboot <MAGISKBOOT> magiskboot path, if not specified, will use builtin one
--kmi <KMI> KMI version, if specified, will use the specified KMI
-h, --help Print help
説明が必要ないくつかのオプション:
--magiskboot オプションは magiskboot のパスを指定します。指定されていない場合、ksud は環境変数を参照します。magiskboot の入手方法がわからない場合、こちら を参照してください。--kmi オプションは KMI バージョンを指定します。端末のカーネル名が KMI の仕様に準拠していない場合は、このオプションで指定することができます。最も一般的な使い方:
ksud boot-patch -b <boot.img> --kmi android13-5.10
GKI モードのインストール方法はいくつかあり、それぞれ適したシーンが異なりますので、必要に応じて選択してください。
この方法は TWRP や root 権限を必要としないので、KernelSU を初めてインストールする場合に適しています。
KernelSU では、GKI デバイス用の汎用 boot.img を提供しています。デバイスの boot パーティションに boot.img をフラッシュする必要があります。
boot.img は、GitHub Release からダウンロードできます。例えば、あなたのデバイスがカーネル android12-5.10.101 の場合、android-5.10.101_yyyy-MM.boot-<format>.imgをダウンロードする必要があります。(KMI を同じにしてください!)。
<format>は純正 boot.img のカーネル圧縮形式を指します。純正の boot.img のカーネル圧縮形式を確認してください。間違った圧縮形式を使うと、ブートループするかもしれません。
::: info 情報
gz か無圧縮が使われます。adb でデバイスを接続し、adb reboot bootloader で fastboot モードにし、このコマンドで KernelSU を書き込んでください:
fastboot flash boot boot.img
::: info 情報
デバイスが fastboot boot をサポートしている場合、まず fastboot boot.img を使えば書き込みせずにシステムを起動できます。予期せぬことが起こった場合は、もう一度再起動して起動してください。
:::
書き込みが完了したら、デバイスを再起動します:
fastboot reboot
前提条件:お使いのデバイスが root 化されている必要があります。例えば、Magisk をインストールして root を取得した場合、または古いバージョンの KernelSU をインストールしており、別のバージョンの KernelSU にアップグレードする必要がある場合などです。お使いのデバイスが root 化されていない場合、他の方法をお試しください。
手順:
カーネル管理アプリは以下のようなものが人気です:
この方法は KernelSU をアップグレードするときに便利で、パソコンがなくてもできます。(まずはバックアップしてください!)
デバイスによっては、boot.img のフォーマットが lz4 や、 gz 、無圧縮などの一般的な形式ではないことがあります。最も典型的なのは Pixel で、boot.img フォーマットは lz4_legacy 圧縮で、RAM ディスクは gz か lz4_legacy 圧縮です。この時、KernelSU が提供した boot.img を直接書き込むとデバイスが起動できなくなる場合があります。その場合は手動で boot.img に対してパッチしてください。
常に magiskboot を利用してイメージにパッチを当てることが推奨されます。2 つの方法があります:
公式の magisikboot ビルドは Android 端末でしか動作しないため、PC で作業したい場合、2 つめの方法を試してください。
:::tip Android-Image-Kitchen は現在非推奨です。セキュリティパッチレベルなどの boot メタデータを正しく扱わないため、一部のデバイスでは動作しない可能性があります。 :::
Image ファイルを取得します。Magisk-*(version).apk を Magisk-*.zip に名前を変更して展開してください。Magisk-*/lib/arm64-v8a/libmagiskboot.soを adb でデバイスに転送します:adb push Magisk-*/lib/arm64-v8a/libmagiskboot.so /data/local/tmp/magiskbootcd /data/local/tmp/ し、chmod +x magiskboot を実行します。cd /data/local/tmp/ し、./magiskboot unpack boot.img を実行して boot.img を抽出します。kernel ファイルが純正カーネルです。kernel を Image で置き換えます: mv -f Image kernel./magiskboot repack boot.img を実行してブートイメージをリパックします。出来上がった new-boot.img を fastboot でデバイスに書き込んでください。magiskboot バイナリを magiskboot_build からダウンロードします。boot.img と Image を PC 上に準備します。chmod +x magiskboot を実行します。./magiskboot unpack boot.img を実行して boot.img を展開します。展開された kernel ファイルが純正のカーネルです。kernel を Image で置き換えてください: mv -f Image kernel./magiskboot repack boot.img を実行し、boot イメージを再パックします。作成された new-boot.img ファイルを、fastboot を利用して端末にフラッシュします。::: info
公式の magiskboot は、Linux 環境においては正常に動作します。Linux を使っている場合、公式のビルドを利用できます。
:::
前提条件:デバイスに TWRP などのカスタムリカバリーがあること。ない場合、または公式リカバリーしかない場合は他の方法を使用してください。
手順:
android12-5.10. 66の場合、AnyKernel3-android12-5.10.66_yyyy-MM.zip(yyyyは年、MMは月)のファイルをダウンロードします。adb sideload AnyKernel-*.zip でインストールできます。この方法は TWRP を使用できるならどのようなインストール(初期インストールやその後のアップグレード)にも適しています。
実はこれらのインストール方法はすべて、元のカーネルを KernelSU が提供するカーネルに置き換えるという主旨でしかなく、これが実現できれば他の方法でもインストール可能です:
::: warning システムファイル変更用の METAMODULE
/system ファイルを変更するモジュールを使用したい場合は、KernelSU インストール後に metamodule をインストールする必要があります。スクリプト、sepolicy、または system.prop のみを使用するモジュールは metamodule なしで動作します。
:::
/system 変更サポートが必要な場合、Metamodule ガイドを参照して:
meta-overlayfs metamodule をインストールするしかし、これらの方法でうまく行かない場合、magiskboot を使う方法を試してみてください。