Repository navigation
NetPilot 1.4.0 — 假满格限定 5G / 5G+ + 判定参数默认值调整
这一版修了什么
「回到 4G 之后 ping 一大就一直触发假 5G 满格」—— 排查下来是三条成因互相咬合,缺任何一条都不会是「一直」:
- 判定没有制式门控:规则只读 RSRP / SINR / Ping,从不看当前驻留在几 G,所以真 4G 上信号强 + Ping 高就被当成「假 5G 满格」。
- 降级目标就是 4G:在 4G 上写「4G 优先」,射频侧毫无变化,唯一效果是把 5G 门关死。
- 降级后永久卡死:落到 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。