Skip to content

常见问题

刷入后抓包仍证书错误 / 断网?

先确认模块侧正常:

  1. 重启,WebUI / 简介为大状态「✅运行正常」(不是「⚠️异常」「🔎检测中」)
  2. 日志里 PID 1、Zygote 注入无报错
  3. 强制停止并重新打开被抓包的 App,以及 Reqable / ProxyPin(已在运行的进程不会自动吃到后续挂载)
  4. 若简介为「证书集未就绪」「注入失败」,或日志写「实时证书集合生成失败」「开机证书注入失败」,查看实时源数量与注入结果

若以上都正常仍 TLS 失败 / 断网,优先怀疑证书本身不一致(见下一节)。若只有「单应用白名单」断网、「抓全部」正常,见 白名单单应用断网

为什么状态正常,抓包还是断网?

很常见:你本机抓包软件正在使用的根证书,和模块里启用的那张不是同一张。

证书为什么会不一样?

  1. Reqable 与 ProxyPin 不一样

    • Reqable:安装或「重新生成证书」后常会换新根证。模块只从已安装 App 读取(不内置);未生成或路径变化时需自定义导入。开机还会尝试再刷新。
    • ProxyPin:优先 App;未检测到且安装时启用了 ProxyPin 则用内置兜底。自行换过 ProxyPin 证书时,仍以 App 内当前证为准。
      名字一样没用——指纹对不上就不算同一张证
  2. 「用户证书」和「系统证书」不是同一层

    • 用户证书(凭据 / cacerts-added):很多 App 不会按系统 CA 同等信任
    • 系统证书(system / Conscrypt APEX):本模块注入目标
      只在「用户」里装好了 ≠ 系统信任库已是你当前那张 CA。临时把用户区证提到系统层,请用可选热挂载
  3. 编码和后缀
    PEM(BEGIN CERTIFICATE)与 DER(二进制)按内容识别;.crt 可能是任一种。系统库文件名是 8 位 subject_hash_old,CA 一变 hash 就变。

  4. 大小相同也可能内容完全不同
    请以 App 内指纹 / 序列号 / 主题对照模块里启用的证书(WebUI 可点开详情)。

安装时若检测到 HttpCanary、ADGuard,可按提示导入为自定义。

怎么处理?

  1. 推荐 · App 导入 / WebUI 自定义(永久) — 保存后重启
  2. 临时 · 热挂载(已安装该组件时)— 用户区或 /sdcard/CertBridge;重启后失效
  3. 进阶 · 放入 certs/custom/,下次开机合并

确认 App 内指纹与导入结果一致后再抓包。

其它情况:

  1. 目标 App 仍是旧进程 → 强停再开或再重启
  2. 个别机型路径可见但读库异常 → 再重启,看日志
  3. 抓包软件单应用白名单 → 见下一节

白名单为空能抓、只抓单个 App 却断网?

多数情况下与证书桥无关,是抓包软件(Reqable / ProxyPin 等)的拦截范围问题。

现象

  • 白名单为空 / 抓全部:能上网也能抓
  • 只勾某一个 App:该 App 立刻「没网」

若「抓全部」已能解密 TLS,说明系统 CA 基本生效;单应用断网优先查 VPN / DNS,而不是重装证书。

原因简述

单应用 VPN 只把该 UID 丢进隧道:DNS、IPv6、多进程未进白名单时更容易直接断网;全局抓包时路径更完整。

怎么处理?

  1. 先用「抓全部」确认证书
  2. 关掉系统 Private DNS 再试单应用
  3. 抓包软件里禁用 IPv6(若有)
  4. 白名单勾全相关包名 / 分身 / 多进程
  5. 看抓包列表区分 DNS 失败还是 TLS 握手失败

设置里看不到系统证书?

部分系统对「可信凭据 → 系统」展示有延迟。先看 WebUI 状态,或重启后再查。

与其它系统 CA 模块一起用可以吗?

不建议。证书桥会把开机时已可见的其它模块证书一并复制进本次证书集,但后执行的模块仍可能覆盖先前挂载,请尽量只保留一个。

为什么 system/ 里只放几张证有时正常、有时会变成「系统只剩这几张」?

关键在 Magic Mount 如何处理模块里的目录

  • 正确的轻量叠层system/etc/security/cacerts/只有要追加的 hash.0。管理器把这些文件叠进真实系统目录 → 原有大量系统 CA 还在,只是多了几张。证书桥的「轻量 Magic」模式就是这样写目录的。
  • 错误 / 不兼容的挂载实现:把模块里的 cacerts 整目录替换到系统路径。目录里只有几张证时,系统信任库就只剩这几张,TLS 会大面积失败。

因此默认「完整兼容」模式不依赖 Magic Mount、也不长期放整库到 system/。若启用轻量模式后证书总数骤降,请改回完整兼容并重启;KernelSU 用户请确认挂载/元模块提供的是文件叠层而非整目录替换。

轻量 Magic 模式一定要装元模块吗?

  • Magisk:一般不需要,自带 Magic Mount。
  • KernelSU:取决于管理器是否对 system/ 做正确文件叠层;很多人依赖挂载相关元模块。若启用轻量后系统 CA 数量骤降,立刻改回完整兼容并重启。
  • APatch:视版本而定,异常时用完整兼容。

两种模式的对照表见 配置说明 · 挂载模式

WebUI 打不开 / 无法执行命令?

确认安装时选择了 WebUI,且存在 webroot/index.html。请用 KernelSU 管理器、MMRL / WebUI-X 等支持模块 WebUI 的客户端;普通浏览器没有执行桥接。

为什么没有“临时免重启挂载”?

自定义安装时若跳过热挂载,不会保留 bin/hot_mount.sh,WebUI 与 Action 菜单也会隐藏或提示未安装。请重新刷入并勾选,或选默认安装。

已安装时:Action 音量上刷新,音量下进入挂载/卸载菜单。

自定义证书无法上传?

模块用自带 X509 工具(完整版 OpenSSL / Lite cbx509)校验,并拒绝无效、过期、非 CA:TRUE 或超过 64 KiB 的证书。文件名无需手动改为 hash。若提示工具不可用,见下一问。

完整版和 Lite 有什么区别?

安装与升级 · 下载哪个包。Lite 依赖 app_process;完整版自带 OpenSSL,Recovery 刷入更稳。

为什么提示缺少 nsenter 或 OpenSSL / X509?

热挂载需要 nsenterstatreadlink,以及能算 subject_hash_old 的 X509 工具。部分 Android 7–8 或精简 / 纯 Recovery 环境可能缺少这些能力,模块会拒绝热挂载而不是降低校验强度;开机永久注入通常仍可用。Lite 在无法运行 app_process 时也会无法解析证书。

为什么修改开关后没有立即生效?

永久开关与 WebUI 自定义证书需重启。免重启请用热挂载(用户区 / 存储卡)。

临时证书能完全无痕卸载吗?

可以。按会话标记只对本次临时层 umount 并删除临时目录;系统文件、用户证书和永久配置不变。其它模块叠在上方时会拒绝误拆。

为什么部分 App 没有立即信任证书?

开机 service 补齐 PID 1、Zygote、Settings、Reqable、ProxyPin 等关键命名空间,不会扫全机应用(避免卡住)。新启动的 App 一般继承 Zygote 挂载;已在运行的目标 App 请强停再开。热挂载才会尝试覆盖更多当前可访问的活动命名空间;WebUI 可能显示部分未覆盖,可强停后重挂或重启。

为什么不再保存系统 CA 基线?

系统 / APEX / 其它模块都会让旧基线过期。当前每次重启直接读实时信任库生成完整证书集;源或生成结果不安全时不挂载,无需长期保存副本。

CertBridge · 证书桥