Files
SukiSU-Ultra/Website/docs/zh/guide/how-to-integrate.md

3.8 KiB
Raw Blame History

集成指导

SukiSU 可以集成到 GKI 和 non-GKI 内核中,并且已反向移植到 4.14 版本。

有些 OEM 定制可能导致多达 50% 的内核代码超出内核树代码,而非来自上游 Linux 内核或 ACK。因此non-GKI 内核的定制特性导致了严重的内核碎片化,而且我们缺乏构建它们的通用方法。因此,我们无法提供 non-GKI 内核的启动映像。

前提条件:开源的、可启动的内核。

Hook 方法

  1. KPROBES hook:

    • GKI kernels 的默认 hook 方法。
    • 需要 # CONFIG_KSU_MANUAL_HOOK is not set(未设定) & CONFIG_KPROBES=y
    • 用作可加载的内核模块 (LKM).
  2. Manual hook:

  3. Tracepoint Hook:

如果您能够构建可启动内核,有两种方法可以将 KernelSU 集成到内核源代码中:

  1. 使用 kprobe 自动集成
  2. 手动集成

与 kprobe 集成

适用:

  • GKI 内核

不适用:

  • non-GKI 内核

KernelSU 使用 kprobe 机制来做内核的相关 hook如果 kprobe 可以在你编译的内核中正常运行,那么推荐用这个方法来集成。

请参阅此文档 https://github.com/~。虽然标题为“适用于 non-GKI”但仅适用于 GKI。

替换 KernelSU 添加到内核源代码树的步骤的执行命令为:

curl -LSs "https://raw.githubusercontent.com/SukiSU-Ultra/SukiSU-Ultra/main/kernel/setup.sh" | bash -s main

手动修改内核源代码

适用:

  • GKI 内核
  • non-GKI 内核

请参考此文档 https://github.com/~ (non-GKI 内核集成)https://github.com/~ (GKI 内核构建) 进行手动集成。虽然第一个链接的标题是“适用于 non-GKI”但它也适用于 GKI。两者都可以正常工作。

还有另一种集成方法,但是仍在开发中。

将 KernelSUSukiSU添加到内核源代码树的步骤的运行命令将被替换为

GKI 内核

curl -LSs "https://raw.githubusercontent.com/SukiSU-Ultra/SukiSU-Ultra/main/kernel/setup.sh" | bash -s main

non-GKI 内核

curl -LSs "https://raw.githubusercontent.com/SukiSU-Ultra/SukiSU-Ultra/main/kernel/setup.sh" | bash -s nongki

带有 susfs 的 GKI / non-GKI 内核(实验)

curl -LSs "https://raw.githubusercontent.com/SukiSU-Ultra/SukiSU-Ultra/main/kernel/setup.sh" | bash -s susfs-{{branch}}

分支:

  • main (susfs-main)
  • test (susfs-test)
  • 版本号 (例如: susfs-1.5.7, 你需要在 分支 里找到它)