华为970进行内核编辑和支持Droidspaces
华为麒麟970内核编辑集成ReSukiSU+Droidspaces完整教程
一、前置环境与工具说明
1.1 编译运行环境
内核编辑与编译必须在Linux环境下进行(推荐原生Ubuntu/Debian、WSL2),不推荐Windows、macOS直接编译麒麟970老内核,极易出现编译报错、适配异常问题。
1.2 AI编译辅助工具配置
本教程采用AI辅助编译,适配Codex、Claude工具,搭配zcf配置工具,相关执行命令如下:
zcf配置工具安装命令
npx zcfCodex编译执行命令(绕过沙箱与审批限制)
codex --dangerously-bypass-approvals-and-sandboxClaude编译执行命令(绕过Root检测、跳过权限确认)
IS_SANDBOX=1 claude --dangerously-skip-permissions
1.3 核心参考资源
麒麟970 EMUI9.1内核源码:kirin970-kernel-based-on-emui9.1
ReSukiSU内核集成官方教程:如何为内核集成 ReSukiSU
EMUI9.1内核适配教程:KernelSU适配EMUI9/9.1内核指南
Droidspaces内核配置文档:Droidspaces Non-GKI内核配置
1.4 设备适配要求
内核仅适配EMUI 9.1.0.312版本,系统版本不匹配会出现HAL层兼容问题,导致加密WiFi无法连接。不愿降级系统可尝试扩容分区后刷入旧版vendor镜像兜底适配。
二、源码获取与基础环境配置
2.1 拉取内核源码
在Linux终端执行以下命令,克隆适配EMUI9.1的麒麟970内核源码:
1 | git clone https://github.com/HoleHolo/kirin970-kernel-based-on-emui9.1.git |
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,添加以下配置开启功能:
1 | # 启用ReSukiSU核心功能 |
注: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_NETFILTER、ADDRTYPE、BRIDGE、VETH辅助关闭:
SYSVIPC、POSIX_MQUEUE
4.1.2 必须保留(保证功能正常)
命名空间基础:
NAMESPACES、PID_NSReSukiSU全部已开启配置
华为原生管控:
HW_CGROUP_PIDS、TASK_PROTECT_LRU
4.1.3 必须关闭(系统稳定)
MEMCG:非开机关键,但关闭可提升系统稳定性
4.2 适配结论
仅关闭IPC配置仍会卡启动,必须同步关闭网络命名空间及桥接栈相关配置才能正常开机;该方案会轻微缺失Droidspaces部分网络隔离能力,为当前麒麟970设备唯一可稳定开机的适配方案。
五、AI辅助编译内核
Linux环境下完成所有内核配置修改并保存;
执行
npx zcf完成编译环境配置;根据使用的AI工具执行对应编译命令:
Codex:
codex --dangerously-bypass-approvals-and-sandboxClaude:
IS_SANDBOX=1 claude --dangerously-skip-permissions
- 等待编译完成,输出
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加密异常。
七、常见问题总结
设备卡开机第一屏:检查是否完整关闭
NET_NS/VETH/BRIDGE等网络相关配置;加密WiFi无法连接:系统版本不匹配,降级至9.1.0.312或替换旧版vendor镜像;
编译报错:确认Linux环境、gcc10.3工具链正常,在Makefile添加
-w忽略编译器警告;ReSukiSU无法生效:检查defconfig中
CONFIG_KSU=y是否正确开启,老内核需手动补全钩子适配。




