Skip to content

NetPilot 1.4.0 — 假满格限定 5G / 5G+ + 判定参数默认值调整

Choose a tag to compare

@katiusu katiusu released this 05 Oct 06:35
· 9 commits to main since this release

这一版修了什么

「回到 4G 之后 ping 一大就一直触发假 5G 满格」—— 排查下来是三条成因互相咬合,缺任何一条都不会是「一直」:

  1. 判定没有制式门控:规则只读 RSRP / SINR / Ping,从不看当前驻留在几 G,所以真 4G 上信号强 + Ping 高就被当成「假 5G 满格」。
  2. 降级目标就是 4G:在 4G 上写「4G 优先」,射频侧毫无变化,唯一效果是把 5G 门关死。
  3. 降级后永久卡死:落到 4G 后判据依然成立,recoveryCount 永远攒不够,只有「连续 2 轮彻底无网」才可能出来,之后立刻又被判回去。

第 3 条是关键:这不是偶尔误判,而是单次误判之后无法自愈。

怎么修的

  • 假满格限定 5G / 5G+(默认开,可关)。5G = 数据网络直接上报 NR;5G+ = 数据网络仍报 LTE 但小区列表已见到 NR 小区(NSA / EN-DC)。4G+(LTE 载波聚合)不算 5G。
  • 弱信号规则一位没改,它与假满格前提互斥(一个要 RSRP > −85,一个要 < −110),判定结果逐位不变。
  • 判定依据里写明制式;被门控挡住时明确说「本轮不检查 Ping 与 SINR」,把「没判」和「判了正常」区分开。

默认值调整

参数 旧 新
Ping 上限 200 ms 300 ms
降级冷却 60 秒 120 秒
自适应灵敏度 10 dBm 20 dBm
自适应缩短倍率 硬编码 20% 15%(0.85 倍),可在功能页调(0.50–0.95)

Ping 读数是含 DNS 与建连的完整首字节耗时,不是无线 RTT,200 ms 对 4G 尾段偏紧。

这些默认值只对「从没调过这一项」的用户生效:滑块读的是「当前值 ?: 默认值」,只在你真的拖过之后才记住。调过的用户保留自己的数字,升级不会悄悄覆盖你设过的参数。

需要你留意

  • 从 1.2.0 升级上来:1.3.0 起 Tasker / Locale 接口默认关闭,记得去功能页「自动化接口」打开一次。
  • 部分机型在 NSA 下读不到 NR 小区(缺「精确位置」权限)时会退化成「只在 SA 上判」,真 5G 也可能不再触发降级。遇到就把功能页的「假满格只在 5G / 5G+ 判定」关掉,即完全退回 1.3.0 行为。

验证

  • assembleDebug / assembleRelease 均 EXIT=0 且 APK_CHECK ... OK(分两次单独构建)
  • versionCode=2026100503 · versionName=1.4.0 · targetSdk=36 · compileSdk=37
  • 签名与本项目历次同一把 release key(SHA-256 34100875...4c4c)
  • 16 KB 页对齐:zipalign -c -P 16 -v 4 → Verification successful
  • 未新增任何依赖;未引入唤醒锁、精确闹钟权限或第二个前台服务通知

下载:NetPilot-1.4.0-2026100503-release.apk · 33,152,441 B · SHA-256 2196f71e3ab30b8e618ab69b37be06bc956302fb8180f73db1c58f2e7463ea31

完整排查与逐条证明见 docs/POWER_REPORT.md §7。