WSABuilds 中 KernelSU 的安装与使用指南:从预构建包到 ADB 一键安装
【免费下载链接】WSABuildsRun Windows Subsystem For Android on your Windows 10 and Windows 11 PC using prebuilt binaries with Google Play Store (MindTheGapps) and/or Magisk or KernelSU (root solutions) built in.项目地址: https://gitcode.com/GitHub_Trending/ws/WSABuilds
KernelSU 是一种基于内核的 Android 根解决方案,与常见的用户态 root 方案(如 Magisk)不同,它以内核模块的形式运行,因此在 WSA(Windows Subsystem for Android)环境中具有更高的隐藏能力和更低的资源开销。本文以 MagiskOnWSA/docs/Guides/KernelSU.md 为核心,结合 MagiskOnWSA/docs/KernelSU.md 的官方安装说明与 构建脚本 的源码实现,系统讲解如何在 WSABuilds 构建的 WSA 中安装 KernelSU Manager 并完成 root 环境搭建。
说明:本文的"官方说明"指仓库内两份 KernelSU 文档(安装 Manager 指南 与 安装 KernelSU 指南),实现细节以 build.sh 等脚本为准。
KernelSU 在 WSABuilds 中的定位
WSABuilds 项目(README.md)提供开箱即用的 WSA 预构建二进制包,可内置 Google Play 商店(MindTheGapps)以及 Magisk / KernelSU 两种 root 方案。KernelSU 与 Magisk 的最大区别在于:
- Magisk采用"无系统修改"的 init 补丁方案,通过修改
initrd.img注入 magiskinit 与 post-fs-data 脚本来实现 root; - KernelSU直接以内核补丁形式集成,将预编译的内核(x64 为
bzImage,arm64 为Image)替换 WSA 自带的Tools/kernel即可,无需修改 initrd。
从 build.sh 可以看到,当ROOT_SOL="kernelsu"时构建流程会执行:
echo "Extracting KernelSU" source "${KERNELSU_INFO:?}" || abort echo "WSA Kernel Version: $KERNEL_VER" echo "KernelSU Version: $KERNELSU_VER" if ! unzip "$KERNELSU_PATH" -d "$WORK_DIR/kernelsu"; then CLEAN_DOWNLOAD_KERNELSU=1 abort "Unzip KernelSU failed, package is corrupted?" fi if [ "$ARCH" = "x64" ]; then mv "$WORK_DIR/kernelsu/bzImage" "$WORK_DIR/kernelsu/kernel" elif [ "$ARCH" = "arm64" ]; then mv "$WORK_DIR/kernelsu/Image" "$WORK_DIR/kernelsu/kernel" fi echo "Integrate KernelSU" mv "$WORK_DIR/wsa/$ARCH/Tools/kernel" "$WORK_DIR/wsa/$ARCH/Tools/kernel_origin" cp "$WORK_DIR/kernelsu/kernel" "$WORK_DIR/wsa/$ARCH/Tools/kernel"即:下载的 KernelSU 内核压缩包解压后,x64 架构取bzImage、arm64 架构取Image,重命名为kernel后替换 WSA 的Tools/kernel,同时将原内核保留为kernel_origin以便回退。因此,使用 WSABuilds 构建的含 KernelSU 包(包名形如WSA_..._-with-kernelsu-<版本>-...)时,内核已被预集成,你不再需要手动替换内核,只需安装 KernelSU Manager 即可。
方法一:使用 WSABuilds 预构建包(推荐)
1. 确认你所下载的包包含 KernelSU
WSABuilds 提供四种 KernelSU 变体(详见 Post-Installation Guides/KernelSU 目录下的说明):
- MindTheGapps and AMZ(含 Gapps 与 Amazon Appstore)
- MindTheGapps and Removed AMZ(含 Gapps、无 Amazon Appstore)
- No Gapps and AMZ(无 Gapps、含 Amazon Appstore)
- No Gapps and Removed AMZ(无 Gapps、无 Amazon Appstore)
构建产物命名规则见 build.sh:
if [[ "$ROOT_SEL" = "none" ]]; then name1="" elif [ "$ROOT_SEL" = "magisk" ]; then name1="-with-magisk-$MAGISK_VERSION_NAME($MAGISK_VERSION_CODE)-$MAGISK_VER" elif [ "$ROOT_SEL" = "kernelsu" ]; then name1="-with-$ROOT_SEL-$KERNELSU_VER" fi因此包名中会包含-with-kernelsu-<版本号>,例如WSA_2309.40000.8.0_x64_-with-kernelsu-10845-NoGApps。请确保下载的包与你的 CPU 架构一致(x64 或 arm64),并且不要选择 "Install GApps and KernelSU" 这种不支持的组合——build.sh 中明确写了abort "Unsupported combination: Install GApps and KernelSU",即在 KernelSU 方案下不能同时集成 GApps,只能选 "No Gapps" 变体;如需 Google 服务可安装 microG 等替代方案。
2. 安装并启动 WSA
按照 Installation.md 完成安装后,启动Windows Subsystem for Android。由于 KernelSU 内核已集成,系统会直接以 root 权限运行,无需额外操作。
3. 通过 ADB 一键安装 KernelSU Manager
KernelSU 官方安装文档(MagiskOnWSA/docs/KernelSU.md)的手动流程是先下载 Manager APK 再用adb install安装;而 WSABuilds 的内置指南(MagiskOnWSA/docs/Guides/KernelSU.md)提供了一条更快捷的路径——系统内已内置ksuinstall脚本,可直接通过 ADB 调用:
连接 WSA 与 ADB:参考 ADB-Sideloading.md:
- 打开 WSA 设置 →Advanced Settings→ 开启Developer mode;
- 记下 Developer mode 中显示的IP address and port;
- 确保 Windows 已安装 ADB;
- 执行配对与连接:
adb pair 127.0.0.1:58526 adb connect 127.0.0.1:58526 - 用
adb devices确认 WSA 已连接。
运行内置安装脚本:
adb shell ksuinstall若安装成功,KernelSU Manager 会自动启动(官方文档原句:"If the installation completes successfully, the KernelSU Manager will launching.")。
提示:
ksuinstall是 WSABuilds 预构建镜像中内置的辅助脚本(对应仓库 post-fs-data.sh 所打出的系统环境),它会自动完成 KernelSU Manager APK 的获取与静默安装,省去了手动下载、校验、push、install 的多步操作。若你的包是基于老版本构建、未内置该脚本,则请参考下文"手动安装"方法。
方法二:手动安装 KernelSU Manager(官方流程)
若你使用的是未预装ksuinstall的包,或希望手动掌控每一步,可参照 MagiskOnWSA/docs/KernelSU.md 的完整流程:
1. 下载 KernelSU Manager
从 KernelSU 官方构建渠道(Build Manager 工作流)下载名为manager的构建产物,得到一个 zip 压缩包。解压后得到形如KernelSU_vx.x.x-xx-.....apk的 Manager APK。
2. 通过 ADB 安装 Manager
adb install <apkname>.apk其中<apkname>.apk为解压得到的 APK 文件名。也可以先adb push到 WSA 内部再用adb shell pm install安装,但直接adb install更简洁。
3. 安装 / 替换 KernelSU 内核(仅手动构建时所需)
官方流程中,若你使用的是原版 WSA(非 WSABuilds 预构建包),还需要:
- 从 KernelSU 官方Build Kernel - WSA工作流下载预构建内核(注意选择与你的 CPU 架构一致:x64 取
bzImage,arm64 取Image); - 解压得到内核文件;
- 用该内核文件替换 WSA 目录下
Tools文件夹中的kernel; - 重启 WSA。
这一点与 WSABuilds 预构建包有本质区别:使用 WSABuilds 包时内核已在构建阶段由 build.sh 替换完毕(原内核备份为kernel_origin),因此不需要也不能重复替换——直接执行adb shell ksuinstall即可。若你确实想换内核,可参考 Custom Builds.md 使用 build.sh 自行构建。
从源码理解 KernelSU 的集成与版本匹配
内核版本自动匹配
构建含 KernelSU 的包时,脚本会先探测 WSA 自带内核的版本,再据此选择匹配的 KernelSU 内核,见 build.sh:
update_ksu_zip_name() { KERNEL_VER="" if [ -f "$WORK_DIR/wsa/$ARCH/Tools/kernel" ]; then KERNEL_VER=$(getKernelVersion "$WORK_DIR/wsa/$ARCH/Tools/kernel") fi KERNELSU_ZIP_NAME=kernelsu-$ARCH-$KERNEL_VER.zip KERNELSU_PATH=$DOWNLOAD_DIR/$KERNELSU_ZIP_NAME KERNELSU_INFO="$KERNELSU_PATH.info" }而 generateKernelSULink.py 通过 GitHub API 查询 KernelSU v2.1.2 的发布资产,用正则kernel-WSA-<arch>-<kernelVersion>.*\.zip匹配与当前 WSA 内核版本对应的预编译内核,并在多个可用版本中选取最新的一个:
arch = sys.argv[1] abi_map = {"x64": "x86_64", "arm64": "arm64"} ... res = requests.get("https://api.github.com/repos/tiann/KernelSU/releases/tags/v2.1.2") ... for asset in assets: if re.match(rf'kernel-WSA-{abi_map[arch]}-{kernelVersion}.*\.zip$', asset["name"]) and asset["content_type"] == "application/zip": tmp_kernel_ver = re.search(u'\d{1}.\d{1,}.\d{1,}.\d{1,}', asset_name.split("-")[3]).group() if (kernel_ver == 0): kernel_ver = tmp_kernel_ver elif version.parse(kernel_ver) < version.parse(tmp_kernel_ver): kernel_ver = tmp_kernel_ver从中可以看出 KernelSU 与 WSA 内核版本是强绑定的:不同 WSA 版本对应不同内核版本,构建系统会自动挑选匹配项,这正是"替换内核"这一步骤极易出错的原因——手动操作时若版本不匹配可能导致 WSA 无法启动。此外该脚本还处理了 GitHub API 的限流(403 / x-ratelimit-remaining == 0),这也是构建可能失败的原因之一。
版本更新检查
仓库的 KernelSUUpdateCheck.py 用于持续跟踪 KernelSU 最新版本:它读取kernelsu.appversion中记录的当前版本,请求 GitHub API 获取tiann/kernelsu的 latest release 版本号,若不一致则在 CI 中生成 "Update KernelSU Version fromvXtovY" 的提示,从而保证预构建包能跟随 KernelSU 上游更新。这也说明你下载到的预构建包中的 KernelSU 版本可能不是最新,如需最新版可关注该更新检查脚本的同步情况,或手动执行adb shell ksuinstall对应的官方流程更新 Manager。
启动链路与 root 环境
KernelSU 方案的 root 生效不依赖 Magisk 的 init 注入。在 WSABuilds 的构建流程中,KernelSU 分支只做内核替换(见上文代码),而 Magisk 分支才会用magiskboot cpio修改initrd.img(build.sh)。从 post-fs-data.sh 可以看出,Magisk 的 post-fs-data 机制用于在启动早期挂载模块(如 LSPosed 镜像);KernelSU 则完全依赖内核级能力,无需此类用户态脚本,因此其启动链路更短、更隐蔽。
安装后的验证与常见问题
如何确认 KernelSU 已生效
- 打开已启动的 KernelSU Manager,若显示 root 已授权/内核已激活,说明安装成功;
- 或用 ADB 验证:
adb shell su -c id若能返回
uid=0(root)相关内容,说明 root 可用。
常见问题
adb shell ksuinstall报错 / 找不到命令:确认你使用的是 WSABuilds 较新版本的 KernelSU 包(老包未内置该脚本);确认 ADB 已正确连接(adb devices显示device状态,而非offline或unauthorized);必要时重启 WSA 再试。- KernelSU Manager 已安装但无法连接内核:多为内核版本与 Manager 版本不匹配,建议更新包内 KernelSU 版本或使用匹配的 Manager。
- 想要回退到原版内核:预构建包保留的原内核位于
Tools/kernel_origin,将其重命名回kernel并重启 WSA 即可(仅对了解系统结构的用户建议操作)。 - 需要 Google Play 服务但选了 KernelSU:KernelSU 构建变体不支持 GApps(build.sh 明确 abort),请使用 microG 等方案,或改用 Magisk 变体。
- 更多排查:参见 Troubleshooting.md 与 Having Issues.md。
总结
在 WSABuilds 中启用 KernelSU 只需两条核心路径:预构建包用户在装好包并启用 WSA 开发者模式后,执行adb pair/adb connect连接 ADB,再运行adb shell ksuinstall即可完成 KernelSU Manager 的自动安装;手动流程用户则按官方文档依次下载 Manager APK、adb install,若使用原版 WSA 还需替换匹配版本的内核。内核版本的自动匹配与预集成由 build.sh 与 generateKernelSULink.py 在构建阶段完成,这也是 WSABuilds 相对手动折腾的核心价值所在。
【免费下载链接】WSABuildsRun Windows Subsystem For Android on your Windows 10 and Windows 11 PC using prebuilt binaries with Google Play Store (MindTheGapps) and/or Magisk or KernelSU (root solutions) built in.项目地址: https://gitcode.com/GitHub_Trending/ws/WSABuilds
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考