华为麒麟970内核编辑集成ReSukiSU+Droidspaces完整教程

一、前置环境与工具说明

1.1 编译运行环境

内核编辑与编译必须在Linux环境下进行(推荐原生Ubuntu/Debian、WSL2),不推荐Windows、macOS直接编译麒麟970老内核,极易出现编译报错、适配异常问题。

1.2 AI编译辅助工具配置

本教程采用AI辅助编译,适配Codex、Claude工具,搭配zcf配置工具,相关执行命令如下:

  • zcf配置工具安装命令

  • npx zcf

  • Codex编译执行命令(绕过沙箱与审批限制)

  • codex --dangerously-bypass-approvals-and-sandbox

  • Claude编译执行命令(绕过Root检测、跳过权限确认)

  • IS_SANDBOX=1 claude --dangerously-skip-permissions

1.3 核心参考资源

1.4 设备适配要求

内核仅适配EMUI 9.1.0.312版本,系统版本不匹配会出现HAL层兼容问题,导致加密WiFi无法连接。不愿降级系统可尝试扩容分区后刷入旧版vendor镜像兜底适配。

二、源码获取与基础环境配置

2.1 拉取内核源码

在Linux终端执行以下命令,克隆适配EMUI9.1的麒麟970内核源码:

1
2
git clone https://github.com/HoleHolo/kirin970-kernel-based-on-emui9.1.git
cd kirin970-kernel-based-on-emui9.1

2.2 源码基础特性说明

该源码已完成基础优化,无需二次修改:

  • 默认集成gcc 10.3编译器,可在Makefile中添加 -w 参数忽略编译警告;

  • 去除华为原生内核Root检测、dm-verify校验;

  • 支持SELinux状态自定义修改、新增多类调度器、WireGuard等功能;

  • 支持Github Action自动化定时编译。

2.3 源码分支选择

  • main分支(推荐):经过编译、实机测试,稳定性最佳,适合日常使用;

  • pure分支:极简修改,无KernelSU/ReSukiSU,仅基础适配;

  • common分支:同步AOSP上游内核,稳定性差,仅用于开发测试;

  • experiment分支:集成各类开发者补丁,自定义修改较多。

三、内核集成ReSukiSU(Non-GKI老内核适配)

ReSukiSU最低支持内核3.4版本,完美适配麒麟970老旧Non-GKI内核,适配步骤如下:

3.1 注入ReSukiSU源码

在内核根目录执行命令,自动拉取并部署ReSukiSU内核文件:

1
curl -LSs "https://raw.githubusercontent.com/ReSukiSU/ReSukiSU/main/kernel/setup.sh" | bash

3.2 修改内核defconfig配置

麒麟970内核配置文件路径:arch/arm64/configs/merge_kirin970_defconfig,添加以下配置开启功能:

Text
1
2
3
4
5
6
# 启用ReSukiSU核心功能
CONFIG_KSU=y
# 手动钩子适配老内核
CONFIG_KSU_MANUAL_HOOK=y
# 开启SUSFS文件系统支持(可选)
CONFIG_KSU_SUSFS=y

注:Non-GKI内核SUSFS补丁需手动移植适配,官方弃置分支不支持自动适配。

3.3 基础适配优化

参考Coconutat大佬EMUI9.1适配教程,修复老内核兼容问题,保留ReSukiSU运行基础环境,保存defconfig配置文件。

四、内核集成Droidspaces(核心避坑方案)

麒麟970内核直接完整开启Droidspaces功能,会导致手机卡开机第一屏、无法进系统,经实测排查,卡死根因为网络命名空间/桥接栈冲突,非IPC配置问题。

4.1 关键配置修改(可开机核心方案)

修改 arch/arm64/configs/merge_kirin970_defconfig 配置文件,严格按照以下规则开关参数:

4.1.1 必须关闭(解决卡启动)

  • 网络隔离核心项:NET_NS

  • 桥接/虚拟网卡相关:BRIDGE_NETFILTERADDRTYPEBRIDGEVETH

  • 辅助关闭:SYSVIPCPOSIX_MQUEUE

4.1.2 必须保留(保证功能正常)

  • 命名空间基础:NAMESPACESPID_NS

  • ReSukiSU全部已开启配置

  • 华为原生管控:HW_CGROUP_PIDSTASK_PROTECT_LRU

4.1.3 必须关闭(系统稳定)

  • MEMCG:非开机关键,但关闭可提升系统稳定性

4.2 适配结论

仅关闭IPC配置仍会卡启动,必须同步关闭网络命名空间及桥接栈相关配置才能正常开机;该方案会轻微缺失Droidspaces部分网络隔离能力,为当前麒麟970设备唯一可稳定开机的适配方案。

五、AI辅助编译内核

  1. Linux环境下完成所有内核配置修改并保存;

  2. 执行 npx zcf 完成编译环境配置;

  3. 根据使用的AI工具执行对应编译命令:

  • Codex:codex --dangerously-bypass-approvals-and-sandbox

  • Claude:IS_SANDBOX=1 claude --dangerously-skip-permissions

  1. 等待编译完成,输出 kernel.img 内核镜像文件。

六、内核刷入教程

6.1 前置准备

设备解锁Bootloader,进入Fastboot模式,电脑配置好Fastboot环境。

6.2 刷入命令

1
fastboot flash kernel kernel.img

6.3 刷入后说明

  • 刷入完成后重启设备,首次开机耗时较长,耐心等待;

  • 支持SELinux两种模式:permissive宽容模式(限制更少、适配性强)、enforcing强制模式(安全性更高),可自行切换;

  • 系统需保持EMUI9.1.0.312版本,避免WiFi加密异常。

七、常见问题总结

  1. 设备卡开机第一屏:检查是否完整关闭 NET_NS/VETH/BRIDGE 等网络相关配置;

  2. 加密WiFi无法连接:系统版本不匹配,降级至9.1.0.312或替换旧版vendor镜像;

  3. 编译报错:确认Linux环境、gcc10.3工具链正常,在Makefile添加 -w 忽略编译器警告;

  4. ReSukiSU无法生效:检查defconfig中 CONFIG_KSU=y 是否正确开启,老内核需手动补全钩子适配。