故障排查

为了提高问题定位和处理效率,请在反馈 Cirno 运行异常前,按照本文要求完成基础环境检查,并根据错误类型提供对应的日志及文件。

反馈问题前的基础检查

在反馈问题前,请首先确认以下基础条件:

  1. Cirno 已获得 Root 权限。
  2. LSPosed 已正确激活 Cirno,并为 Cirno 勾选以下作用域:
    1. 系统框架
    2. 系统界面
  3. 已安装 LSPosed 与 ZygiskNext(或其他同类 Zygisk 模块)。
  4. Xposed API 版本为 101 或 102。

如果以上任一条件不满足,请先完成对应的环境配置,再进行问题反馈。

如果基础环境本身不符合要求,后续日志中的错误可能无法用于判断 Cirno 本身的问题。


常见错误类型及反馈材料

Hook 错误与字段设置错误

常见表现

Cirno 日志中出现以下异常或关键词:

  • "NoSuchMethodError"
  • "cannot set"

默认反馈材料

请提供:

  • Cirno 日志
  • /system/framework/services.jar

特殊系统处理

部分系统无需提供 services.jar,请根据系统类型和错误日志中的特征提供对应文件。

小米系统

如果使用小米系统,且错误日志中包含 greeze,则无需提供 services.jar,请提供:

/system_ext/framework/miui-services.jar
ColorOS / RealmeUI / OxygenOS

如果使用 ColorOS、RealmeUI 或 OxygenOS,且错误日志中包含 hans,则无需提供 services.jar,请提供:

/system_ext/framework/oplus-services.jar
vivo OriginOS

如果使用 vivo OriginOS,且错误日志中包含以下字段:

  • FreezeNetCtrl2
  • Packet

则无需提供 services.jar,请提供:

/system/framework/vivo-services.jar

Binder 错误

目前此类问题尚无明确的通用解决方案,主要需要通过日志进一步分析。

常见表现

如果同时出现以下情况,可以初步按照 Binder 错误进行反馈:

  • 首页提示"连接中"或"版本未运行"。
  • Hook 类型显示为"未知"。
  • 白名单、黑名单数量显示正常。
  • Xposed API 显示为 101/102。
  • 运行列表为空。

反馈材料

请提供:

  • LSPosed 日志
  • Cirno 日志

已知情况

此前有用户反馈,重新安装 KernelSU 后该问题消失。

因此,在确认基础环境无误后,可以尝试重新安装 KernelSU,再检查问题是否仍然存在。

UI 类错误

常见表现

  • Cirno UI 闪退。

反馈材料

请提供:

  • LSPosed 日志

如果能够稳定复现闪退,也请在反馈中简单描述触发闪退的操作。

例如:

打开 Cirno → 进入全局设置 → 点击 Hook 方式 → UI 闪退。

Re:Kernel 相关错误

Re:Kernel LKM/KPM 连接错误

常见表现

Cirno 日志中出现:

ReKernel Kernel 连接失败

同时,在全局设置中的 Hook 方式里找不到"ReKernel Kernel"选项。

排查步骤

首先确认设备是否安装了 Re:Kernel LKM/KPM 模块。

未安装 Re:Kernel LKM/KPM 模块

如果设备未安装 Re:Kernel LKM/KPM 模块,则出现上述警告属于正常情况,无需反馈。

已安装 Re:Kernel LKM/KPM 模块

请使用 MT 的终端管理器执行:

su
lsmod | grep rekernel

根据命令结果进行判断:

  • **有输出结果:**说明相关模块可能已经正常加载。请继续反馈问题,并附带 Cirno 日志。
  • **无输出结果:**说明模块可能未正常加载。请尝试重新安装或重新下载 Re:Kernel 模块。

Re:Kernel eBPF 连接错误

排查步骤

首先确认设备是否安装了 Re:Kernel eBPF 模块。

未安装 Re:Kernel eBPF 模块

如果设备未安装该模块,则出现 eBPF 相关错误属于正常情况,无需反馈。

已安装 Re:Kernel eBPF 模块

请检查以下文件是否存在:

/sys/kernel/btf/vmlinux

根据检查结果进行判断:

  • **文件不存在:**可能是当前设备使用的内核不支持 eBPF。
  • **文件存在:**请附带 Cirno 日志进行问题反馈。

反馈信息要求

提供完整日志

请尽量提供完整的 Cirno 日志或 LSPosed 日志,不要只截取单独的一行错误。

如果问题涉及多个组件,请按照对应问题类型同时提供所需日志。

不要只提供截图

截图可以用于辅助说明问题,但通常无法提供完整的错误上下文。

因此,日志文件应作为主要反馈材料,截图仅作为补充。

提供设备及系统信息

反馈时建议同时注明:

  • 设备型号
  • Android 版本
  • 系统名称及版本
  • KernelSU 版本
  • LSPosed 版本
  • ZygiskNext 版本
  • Xposed API 版本

例如:

设备:XXX
Android:XX
系统:OriginOS X.X
KernelSU:X.X.X
LSPosed:X.X.X
ZygiskNext:X.X.X
Xposed API:101

描述问题复现步骤

如果问题可以稳定复现,请说明:

  1. 进行了什么操作;
  2. 出现了什么现象;
  3. 是否每次都可以复现。

例如:

打开 Cirno → 进入全局设置 → 点击 Hook 方式 → UI 闪退。
该问题每次都可以复现。

补充其他相关信息

如果问题是在进行特定操作、安装特定模块或修改特定设置后出现的,请一并说明相关情况。


快速反馈对照表

问题类型常见表现主要反馈材料
Hook / 字段设置错误"NoSuchMethodError"、"cannot set"Cirno 日志 + services.jar
小米特殊情况日志包含 greezeCirno 日志 + miui-services.jar
Oplus 特殊情况日志包含 hansCirno 日志 + oplus-services.jar
vivo OriginOS 特殊情况日志包含 FreezeNetCtrl2、PacketCirno 日志 + vivo-services.jar
Binder 错误连接中、版本未运行、Hook 未知、运行列表为空等LSPosed 日志 + Cirno 日志
UI 错误UI 闪退LSPosed 日志
Re:Kernel LKM/KPMKernel 连接失败、无 ReKernel Kernel 选项Cirno 日志
Re:Kernel eBPFeBPF 连接错误Cirno 日志

请先完成基础环境检查,再按照问题类型准备反馈材料。

提供完整、准确的日志和环境信息,可以减少重复确认,并提高问题定位效率。