Repository navigation
1.8.1
1.8.1
自 1.8.0 以来的变更。
Clash 订阅导入改按 mihomo 的实际行为
内置核心版本不变(Xray v26.10.10、mihomo v1.19.32、sing-box v1.14.3)。Clash 订阅里的节点改为按 mihomo v1.19.32 自己运行时的语义导入,存量订阅下次更新时,下面这些节点的导入结果会变:
- 以前能导入、现在拒绝的写法(mihomo 自己也会拒绝这些节点,导入汇总里列出原因):
- hysteria2 写了
obfs: salamander却没有混淆口令(此前导入成不混淆的节点) - hysteria(v1)的
auth不是标准 base64 - VLESS 的
flow不少于 16 个字节却不以xtls-rprx-vision开头,如xtls-rprx-direct、xtls-rprx-origin(此前丢掉 flow 照常导入) - VMess / VLESS 的
network: h2没开 TLS(mihomo 是明文 h2c)、network: http开了 TLS(mihomo 是 TLS 里的 HTTP/1.1 伪装):本应用表示不了这两种组合,此前会导入成另一种传输方式 - Shadowsocks 的
udp-over-tcp-version不是 0、1、2
- hysteria2 写了
- 导入结果改变的写法:
- hysteria2 只写
obfs-password、没写obfs时不再开混淆 - hysteria(v1)同时写
auth与auth-str时以auth为准,与键的先后无关 - VMess / VLESS / Trojan 只套用当前
network对应的*-opts,其它传输方式的 opts 不再改写 Host、路径与 SNI - Trojan 的
network除 ws、grpc 外一律按 TCP 导入:xhttp、kcp 等此前整个节点被拒,h2、http 此前套用 HTTP 传输 packet-encoding: packet按 packetaddr 导入(此前当作没设置);这类节点自动选核会落到 sing-box- VMess 的
cipher转成小写(大写写法此前在连接时被拒) - AnyTLS 的
ech-opts只写config、没写enable: true时不开 ECH - 顶层
global-client-fingerprint不再读取(mihomo 已移除它),没写指纹的 REALITY 节点用 chrome - Shadowsocks 写了
udp-over-tcp却没写版本时用 UDP over TCP v1(mihomo 的默认值,此前实际是 v2);udp-over-tcp: 1也算开启 - Shadowsocks 的
Plugin、Plugin-Opts、udp_over_tcp等大小写或下划线写法与标准写法一样读取(此前导入成没有插件的节点,或丢掉 UDP over TCP)
- hysteria2 只写
- 导入汇总里的字段记录同样按 mihomo 的读键方式判断:mihomo 读得到而本应用没用上的键记为有损,不再记成「无影响」
新增与改进
- Shadowsocks 节点记录 UDP over TCP 的版本(v1 / v2),Clash 订阅按上面的规则填写;分享链接导入与编辑器新建的节点仍是 v2。存储格式随之升级,1.8.1 导出的备份与通用链接里的 Shadowsocks 节点,1.8.0 及更早版本读不对
- 恢复备份前先检查备份内部的引用(节点所属分组、分组的前置 / 落地节点;有损坏记录时还有链成员与规则出站),发现断链时整体不导入,并列出每类缺失的数量
- 订阅深链的确认框列出链接预设的节点解析 DNS、强制解析与自定义 UA;名称、链接与节点名过长时截断显示,导入的仍是完整值
- 编辑订阅分组时检查链接:只接受单行的 http(s) 链接或「选择文件」得到的本地文件,链接首尾空白自动去掉
- 应用勾选页(分应用代理、路由规则选应用)没有用户应用或搜索无结果时显示提示
- 配置页搜索框展开时,返回键先收起搜索
- STUN 测试的服务器为空时直接提示,不再报
missing port in address - 设置页「启用 DNS 路由」「代理端口」「绕过 LAN」「TUN 实现」「网络变化时重置连接」「MTU」换用贴切的图标
修复
- 流量统计:界面清除节点流量后,运行中的服务不再把清除前的累计写回;落库改为只加新增的部分
- 测速状态:编辑节点或订阅更新后配置真的变了,旧的测速结果随之清除(只改名不清)
- 全局「允许不安全」对 Hysteria 1(faketcp / wechat-video)与 Trojan-Go 插件节点也生效,与其它核心一致
- 备份:恢复前先停止服务,等它确认停止、最后的流量写完再写库,避免旧服务的流量写到恢复后的节点;服务未能及时停止时不导入、现有数据不变;恢复途中旋转屏幕不再中断;导出改为选好保存位置后再生成内容,节点、分组、规则在同一个事务里读取
- 订阅更新:下载期间订阅被改了(链接、类型、自定义 UA、强制解析等),这次结果整体放弃,不再把旧订阅的节点写进已换成新订阅的分组;手动更新时给出提示
- 节点域名解析:分组配了节点解析 DNS 时同时查询 A 与 AAAA(此前 A 有结果就不查 AAAA);订阅强制解析按 IPv6 模式取地址,禁用 IPv6 时不写入 IPv6 地址,仅 IPv6 时不写入 IPv4 地址
- 链接导入:VMess / VLESS / Trojan 链接里的
security(v2rayN 格式的tls)为 xtls 等不认识的值时拒绝导入,不再当作无 TLS 导入成明文节点 - 编辑器:页面初始化途中被重建、或缓存被另一个编辑器接管时,迟到的初始化、选节点、选文件、移动分组的结果不再写进别的编辑器;保存时缓存已不属于本编辑器则提示并关闭
- JSON 编辑器:改回原样视为未修改,旋转后未保存的判断不丢
- 撤销删除:撤销窗口期间别处删改了节点、分组、规则或资源文件时,先提交待删项,撤销不再越界崩溃或插回已删除的行
- 稳定性:读取应用列表失败(如权限被拒)时,分应用代理页、关于页与应用列表摘要不再崩溃,失败后隔一段时间再重试;内置代理应用清单读不出来时取消自动选择,不再清空现有勾选;URL 测试时服务恰好断开不再崩溃
- 日志脱敏:REALITY shortId、SSH 私钥口令、Mieru 用户名、URL 里的用户名一并遮蔽;不支持的 hysteria2 混淆类型名只在形态合格时回显;Neko 插件配置 JSON 解析失败不再把原文写进日志;超长配置脱敏不再栈溢出
- 文案:启动失败提示的冒号后按语言处理空格;「重置路由」的确认框不再沿用「清空配置」的文案;中文「连接被拒绝」与备份页说明改正
- Naive 节点编辑器的隐藏功能开关只在保存时切换
构建与工程
- 移除预览构建工作流与 preview 构建变体,只保留 oss
run脚本拒绝含/、..的脚本名;版本检查新增 Gradle wrapper jar 的 sha256 固定- 界面的数据访问统一经 Repository,节点表只按列写入;拆分能力表、主界面与配置页文件,删除 20 个无引用的配置模型类,动效时长统一取自主题属性
- 新增数据库迁移测试(JVM 上执行 Room 迁移)、协议转换契约测试、存储格式嵌套版本号校验与日志脱敏对账测试;单元测试从 796 项增至 911 项
- 全面代码审查修复 7 项,/simplify 复审精简 11 处重复与冗余
仅发布 universal APK;分 ABI 包已在 CI 中构建并核验,不作为发布资产。
补注(2026-10-24)
- 本版本内置的 Xray v26.10.10 已被上游删除(tag 与发布都已不存在),按本版本的源码已无法重新构建:下载内置核心的一步(
./run lib plugins)会失败。已发布的 APK 不受影响,其中的 Xray 是当时按固定 sha256 校验过的官方二进制。需要从源码构建时请使用 1.9.0-a3 或更新的版本