Repository navigation
1.8.3
1.8.3
自 1.8.2 以来的变更。
升级提示
- 数据库结构从 9 升到 10。升级到本版本后不能再装回旧版本:旧版本打不开新结构的数据库,会以「数据库无法打开」停止服务。回退前请先导出备份。
核心
- 内置核心版本不变(Xray v26.10.10、mihomo v1.19.32、sing-box v1.14.3)
- sing-box 补丁集升到 1.14.3-neko-2:WireGuard 启动失败时的报错不再带出完整的接口配置原文(含私钥、对端公钥、预共享密钥的十六进制),这段报错此前会原样进入日志与界面
新增与改进
- 启动、测速、导出前由内置 sing-box 逐个试建节点出站(只解析与构造,不监听、不拨号):选择器成员或路由规则目标的证书不是合法 PEM、ECH 配置损坏、SSH 私钥 / 口令 / 主机公钥读不出来、Shadowsocks 2022 密钥不是 base64 或长度不符、WireGuard 密钥长度不对、自定义出站 JSON 有未知字段等只在 sing-box 加载期才暴露的错误,现在在构建阶段就被识别:该成员被跳过并提示错误类别,其余节点照常启动;选中的节点自身有这类错误时启动失败,提示「节点名: sing-box rejected the outbound options: <类别>」。提示与日志只含错误类别和字段路径,不回显任何取值。此前这类坏成员会让整组启动失败,报错是 sing-box 的原始文本
- 缺少插件时的下载入口统一指向托管该插件的 GitHub Releases 页面(Hysteria、Naive、Mieru 在 MatsuriDayo/plugins,Trojan-Go 在 SagerNet/SagerNet),去掉已不再分发的 Play 商店与 F-Droid 入口;对话框标题改为插件名
- 免映射的 hysteria 1 插件节点(faketcp、链上最先拨号的 wechat-video):分组「节点解析 DNS」里配了明文 udp / tcp、IP 字面量、53 端口的服务器时,插件配置写入
resolver,服务器域名经该服务器解析。此前插件用 Go 的默认解析,Android 上没有系统解析器配置,服务器写成域名的这类节点解析失败。分组 DNS 只有加密 DNS 或域名地址、或没配分组 DNS 时仍然解析不了,留待后续版本在 sing-box 侧提供本机 DNS 入站解决
修复
- 备份恢复与订阅更新的竞争:恢复备份后约 1 秒内仍在进行的订阅更新不再把旧节点写回去覆盖恢复出来的数据。恢复替换节点与分组时记一次数据世代,订阅更新在写库事务里比对,世代变了就整次放弃(下次自动更新照常)
- 订阅「强制解析」:域名解析改为最多 5 个并发。此前所有节点同时解析,几十个节点的订阅一次发出几十个 DNS 查询,容易被上游限速或丢弃
性能
- 节点库(节点、分组、路由规则)的读取全部移出主线程:偏好项摘要、节点与链编辑器、路由页出站名、服务启动与通知标题、快捷切换、磁贴等处改为后台读取或使用已载入的数据,减少界面卡顿与 ANR 的机会;设置项数据库维持原样
构建与工程
- libcore 新增逐出站试建入口
TrialSingBoxOutbound(进程内复用一个从不启动的 sing-box 实例,返回值只有错误类别与字段路径,sing-box 原始报错与配置内容不出 Go)及其回归测试;./run lib test改用与 AAR 相同的构建标签,主机上的测试与设备行为一致 - 黄金基线新增 12 个试建场景与一份试建语料(类别手写、Go 用真实 sing-box 逐条核对、JVM 测试要求每条都被查中),SSH 夹具换成格式真实的测试专用 ed25519 密钥;单元测试从 919 项增至 976 项
- 配置页拆出分组维护操作与搜索接线两个文件;多处英文注释改为中文;修正 1 个在双核 CI 上偶发失败的并发取消用例(只改断言,不改被测代码)
仅发布 universal APK;分 ABI 包已在 CI 中构建并核验,不作为发布资产。
补注(2026-10-24)
- 本版本内置的 Xray v26.10.10 已被上游删除(tag 与发布都已不存在),按本版本的源码已无法重新构建:下载内置核心的一步(
./run lib plugins)会失败。已发布的 APK 不受影响,其中的 Xray 是当时按固定 sha256 校验过的官方二进制。需要从源码构建时请使用 1.9.0-a3 或更新的版本