如何为内核集成 ReSukiSU
Notes
这个文档修改自 KernelSU 官方文档
ReSukiSU 可以被集成到 GKI / 非 GKI 内核中,现在它最低支持到内核 4.9 版本;理论上也可以支持更低的版本。
由于非 GKI 内核的碎片化极其严重,因此通常没有统一的方法来编译它。但你完全可以自己集成 ReSukiSU 然后编译内核使用。
首先,你必须有能力从你设备的内核源码编译出一个可以开机并且能正常使用的内核,如果内核不开源,这通常难以做到。
如果你已经做好了上述准备,可以通过这个教程来集成 ReSukiSU 到你的内核之中。
构建内核
WARNING
本部分仅适用于 GKI 设备
同步内核源码
repo init -u https://android.googlesource.com/kernel/manifest
mv <kernel_manifest.xml> .repo/manifests
repo init -m manifest.xml
repo sync<kernel_manifest.xml> 是一个可以唯一确定构建的清单文件,您可以使用该清单进行可重新预测的构建。 您应该从 通用内核映像 (GKI) 发布构建 下载清单文件
构建
请先查看 官方文档。
例如,我们需要构建 aarch64 内核镜像:
LTO=thin BUILD_CONFIG=common/build.config.gki.aarch64 build/build.sh不要忘记添加 LTO=thin, 否则,如果您的计算机内存小于 24GB,构建可能会失败.
从 Android 13 开始,内核由 bazel 构建:
tools/bazel build --config=fast //common:kernel_aarch64_dist使用 ReSukiSU 构建内核
把 ReSukiSU 添加到你的内核源码树,在内核的根目录执行以下命令:
curl -LSs "https://raw.githubusercontent.com/ReSukiSU/ReSukiSU/main/kernel/setup.sh" | bash -s builtinTIP
请注意,某些设备的 defconfig 文件可能在 arch/arm64/configs/设备代号_defconfig 或位于 arch/arm64/configs/vendor/设备代号_defconfig。在您的 defconfig 文件中,将 CONFIG_KSU 设置为 y 以启用 ReSukiSU,或设置为 n 以禁用。比如在某个 defconfig 中: arch/arm64/configs/...
+# ReSukiSU
+CONFIG_KSU=y
+CONFIG_KSU_MANUAL_HOOK=y然后,将 ReSukiSU 调用添加到内核源代码 中,改完之后重新编译内核即可。