Repository navigation
Releases
v1.4.2-9
底栏改为手势驱动
上滑收起、下滑弹出,不再依赖列表滚动 —— 节点少、内容不满一屏的分组也能正常收/起。
未连接代理时底栏固定,不响应滑动。
分组页不再显示底栏
添加/管理订阅分组的页面没有节点列表,速度栏放在那里没有意义。
隐藏「tun 实现」设置
内核已切到 sing-box 1.15 的 sing-tun 自研 TCP/IP 栈,stack 字段废弃,
这个选项选什么都不影响实际行为,隐藏以免误导。
v1.4.2-10
底栏改为手势驱动
上滑收起、下滑弹出,不再依赖列表滚动 —— 节点少、内容不满一屏的分组也能正常收/起。
未连接代理时底栏固定不响应滑动;离开节点页自动隐藏。
修复打开页面就提示「重载代理服务」
导入备份后,进设置或路由页会莫名弹出重载提示。原因是多处「绑定 / 初始化」被当成了用户改动:
下拉项绑定时的 setSelection、路由开关复用 ViewHolder 时残留的监听、内置规则的初始化创建,
以及全局设置监听的误报。这些路径现在只改数据,不再触发提示。
默认远程 DNS 改为 Cloudflare
https://cloudflare-dns.com/dns-query
清理无效设置项
- 删除「像 SagerNet 一样显示底栏」:底栏离开节点页没有意义
- 隐藏「tun 实现」:内核已用 sing-box 1.15 的 sing-tun 自研栈,该选项不再影响行为
v1.4.2-8
修复订阅导入后「VLESS 加密层为空、节点全部超时」的根因。
根因
NekoBox 请求订阅时带的 UA 是:
NekoBox/Android/<版本> (Prefer ClashMeta Format)
机场看到这串,会按 Clash YAML 返回配置,而不是标准的 base64 节点链接。这份 YAML 里其实
带着加密参数:
- { name: '新加坡|三网', type: vless, server: aysg-32.nasajiuai.help, port: 443,
uuid: …, flow: xtls-rprx-vision, tls: true, …,
encryption: mlkem768x25519plus.native.0rtt.…, reality-opts: { … } }但 Clash YAML 解析器只读了 flow / reality-opts / packet-encoding,没有读 encryption ——
于是节点入库时加密层是空的,连接服务端自然全部超时。手动把密钥粘进去就能用,正好反证了这一点。
修复
Clash YAML 解析器的 vless 分支补上 encryption 字段解析,写入节点的加密层。
顺带说明
这就是「同一个订阅在 v2rayNG 里正常、复制到 NekoBox 也能用」的原因:v2rayNG 用的 UA 拿到的是
base64 链接(链接里 encryption= 就在 query 中,NekoBox 的链接解析器一直是对的),只有
Clash 格式这条路漏了字段。
安装
仅 arm64-v8a,release 构建,签名与之前版本一致,可直接覆盖安装。
装好后更新一次订阅,节点详情里的「VLESS 加密层」应该有值了。
v1.4.2-5
切换到 sing-tun 自研的 TCP/IP 栈。
变更
- 启用 sing-box 1.15 的新 TCP/IP 栈:生成 tun 入站时不再写
stack选项。
1.15 起 sing-tun 自带实现,官方称峰值吞吐、功耗、内存占用全面优于旧的
gvisor / system 实现;旧选项自 1.15 废弃,将在 1.17 移除。 - 副作用:设置里的「tun 实现」(system / gvisor / mixed)不再影响生成的配置,
三项现在都走新栈。该选项保留在界面中,避免改动既有节点的配置结构。
已验证
- 不带
stack的 tun 配置可被内核正常解析 - 带
stack的旧写法仍可解析(仅废弃提示),不会因升级而无法启动 - 实机使用正常
安装
仅 arm64-v8a,release 构建(R8),签名与之前版本一致,可直接覆盖安装。
若新栈出现异常(个别应用连不上、DNS 异常等),可回退到 v1.4.2-4。
v1.4.2-4
内核对齐 sing-box 1.15,支持 VLESS 后量子加密(mlkem768x25519plus)。
新增:VLESS Encryption(后量子加密层)
Xray 从 v25.8.31 起在 VLESS 内部加了一层后量子混合加密(ML-KEM-768 + X25519),
服务端启用后,旧客户端会直接断连且没有任何日志提示。上游 sing-box 目前没有实现。
本版补齐:
- 内核新增
protocol/vless/encryption(握手 / AEAD / native·xorpub·random 三种形态) - App 新增独立的「VLESS 加密层」设置项;订阅里的
?encryption=会自动读入,
导出链接时也会带上 - 注意:它与
flow(xtls-rprx-vision)是两个独立参数,可以同时使用
已验证:配置解析与内核初始化通过(真实 1184 字节 ML-KEM 公钥),
实测节点可正常连接。上游参考实现只对 native.0rtt 做过真实服务器验证,
xorpub / random / 1rtt 逻辑完整但未逐一实测。
内核升级到 sing-box 1.15.0-alpha.13
原来的内核 fork(MatsuriDayo/sing-box)已停在 1.14,本版改为直接跟随 SagerNet 上游,
fork 独有的 nekoutils / boxapi(约 16K)移植过来继续使用。
1.15 带来的主要变化:
- 自研 TCP/IP 栈,TUN 吞吐、功耗、内存全面改善(当前仍沿用旧
stack选项) - HTTP 代理重写:默认 HTTP/2、支持 HTTP/3 与 CONNECT-UDP
- 新增 MASQUE client/server、Tailcat、证书 SHA-256 钉扎
- NaiveProxy 更新到 154.0.8037.49-2
1.15 目前只有 alpha 版本,尚无 stable。
修复
- 启动失败
open .../geosite:category-ads-all: no such file:切到上游时丢了 fork 里
geoip:/geosite:前缀的解析补丁,内置规则被当成文件路径去打开。已补回,
并补齐了节点切换回调Selector_OnProxySelected。 - 配置检查工具增加了规则集用例与 geo 钩子,这类回归以后能在打包前发现。
安装
仅 arm64-v8a,release 构建(R8),签名与之前版本一致,可直接覆盖安装。
若 1.15 alpha 出现稳定性问题,可回退到 v1.4.2-3(1.14 内核)。
v1.4.2-3
连接代理后,底栏自动测一次当前节点的延迟。
新增
- 连接后自动测速当前节点:状态栏不再停留在「已连接」,连接成功约 1.2 秒后自动发起一次连接测试,依次显示
已连接→正在测试…→连接可用,XXX ms。- 测的是当前节点的真实链路延迟(走 mixed inbound 请求测试 URL),不是本地 ping
- 正在测速时不会重复触发;连接后立即断开的话,排队的那次不会执行
- 测试地址沿用设置里的
connectionTestURL(默认http://cp.cloudflare.com/)
前置版本(v1.4.2-2)已包含
- 修复手动添加 Snell 节点直接闪退(Activity 未注册)
- 修复新装后速度一直为 0(
speedInterval默认值) - 修复流量统计查不到数据(flow 路径 + 节点 tag 归属)
- 修复进设置页误弹「重启代理服务以应用」
- 修复连接后启动按钮有时候不被底栏抬起
- sing-box 1.14 内核、Naive 内置、Snell 支持、五条内置路由规则默认启用
安装
仅 arm64-v8a,release 构建(R8),签名与上版一致,可直接覆盖安装。
v1.4.2-2
修复 Snell 添加即闪退,并汇总本分支相对上游 1.4.2 的全部改动。
修复
- 手动添加 Snell 节点直接闪退:
SnellSettingsActivity没有在 AndroidManifest 中注册,点击即抛ActivityNotFoundException,进程直接退出。已补上注册。 - 新装后打开代理速度一直是 0:
DataStore.speedInterval没有默认值(读到 0),TrafficLooper遇到 0 会直接退出整个统计循环;而 XML 里的 1000 只有在打开设置页时才会写进数据库,所以必须先进一次设置再重启才正常。已补默认值,并在读到 0 时回退到 1000。 - 速度统计查不到数据:sing-box 1.13+ 的 tun 流量走 flow 路径,
SbStatsService.RoutedFlow原本返回 nil,等于把统计关掉了;另外流量被记在 selector 组 tag 上,而 App 是按节点 tag 查询的。 - 首次启动统计项没被选中:
mainEntId为空时selectMain直接返回,所有统计项保持 ignore=true,主速度恒为 0。 - 进设置页就弹「重启代理服务以应用」:
DropDownPreference绑定时会setSelection并触发callChangeListener。现在初始化期间不提示,且只在值真正变化时才提示。 - 连接后启动按钮有时候不被底栏抬起:底栏靠 translationY 滑动,而 CoordinatorLayout 的 anchor 布局依赖 anchor 的屏幕坐标,translationY 变化不会触发重新布局。现在位移变化时主动请求重排。
内核
- sing-box 升级到 1.14:
adapter.PlatformInterface、六参数box.Context、DNS 新格式(type/server/path、独立 fakeip server、action reject)、route action 体系(sniff / resolve / final / default_domain_resolver)、tunaddress字段、trafficcontrol 替代 conntrack。 - Naive 改为内核内置,不再依赖外部插件。
- 新增 Snell 协议支持(v4 obfs / v6 mode + userkey + reuse)。
其他
- 内置五条路由规则默认启用:屏蔽 QUIC、屏蔽广告、中国 Play 商店、中国域名、中国 IP。
- 内置 geoip / geosite 资源更新(geosite 2018 个分类,cn 220302 条规则)。
安装
仅 arm64-v8a,签名与上一版一致,可直接覆盖安装。
v1.4.2-1
Full Changelog: https://github.com/qingwan123/NekoBoxForAndroid/commits/v1.4.2-1