











相信各位折腾 root 情况下透明代理模块时,都可能会遇到一个非常棘手的问题:
手机网络数据一切正常,但无法拨打或接听电话,短信收发也出现异常
第一反应可能是信号问题,但通常会发现信号是满格的。这其实是一个由代理软件和系统底层 VoLTE 服务冲突导致的典型问题。
现在的 HD 通话是这样实现的
在 LTE/NR 网络下,通话和短信并非通过传统电路,而是依赖于
IMS服务,我们熟知的VoLTE就是其最常见的应用
IMS 服务本身也是通过IP 数据包与运营商的核心网络进行通信的。而Surfing这类透明代理模块,为了实现全局代理,其默认的TUN 模式会在系统层面创建一个虚拟网卡,强制接管设备上几乎所有的网络流量。
当VoLTE/IMS的信令流量也被这个虚拟网卡接管后,这些对延迟和路由极为敏感的数据包被错误地进行了代理、重定向或分流,就会导致IMS 服务注册失败或频繁掉线使电话无法正常拨打
不是信号问题,而是 VoLTE 信令被透明代理劫持了
本质上就是让通话相关的核心服务流量,绕过透明代理,直接与运营商网络通信
注意缩进!
yaml 对缩进有非常非常极端的要求,少一个空格多一个空格都会导致整个炸锅,敢多 space 他就敢跟你爆了
这是最简单直接的方法,让代理排除受影响的 App
需要排除的包名列表 ( 主要针对三星 OneUI):
PRTCL // TEXT
com.qti.qcc # 高通 IMS/VoLTE 调度核心
com.sec.imsservice # 三星 IMS 服务 (VoLTE/VoWiFi)
com.sec.epdg # VoWiFi ePDG 隧道服务
com.samsung.android.messaging # 系统官方短信
com.samsung.android.dialer # 拨号器
com.samsung.android.incallui # 通话界面
com.samsung.android.app.telephonyui # 通话 UI 资源
com.samsung.android.smartcallprovider # 来电识别
com.samsung.android.intellivoiceservice # 智能语音降噪
com.android.settings
(注:非三星手机可根据自身情况,尝试排除 com.android.imsservice 等原生 IMS 服务包名)
/data/adb/modules/box4magisk/config.yaml。tun: -> exclude-package: 部分(约是 137~146 行 )# 注释,如下图所示
此方法对大部分三星手机有效。如果操作后问题依旧,或者您的手机并非三星也遇到了类似问题,请直接尝试方案二
如果方案一无效,或者您想追求一个更稳定、更彻底的解决方案,那么将代理模式从 TUN 切换到 Tproxy 是最佳选择,这绝对是最通用的方案
TUN 模式是应用层逻辑,可以当作全盘接管,排除法有时不够彻底,不严谨的话,可以理解为 VPN 那种全盘接管Tproxy 模式配合 iptables 在更底层的内核层面工作,可以实现更精确的流量控制。模块通常会预设好规则,从一开始就绕过系统内部和运营商的通信流量,只代理用户 App 的流量,从根源上避免了冲突修改 Clash 配置文件,启用 Tproxy 监听
/data/adb/modules/box4magisk/config.yaml。PRTCL // YAML
tun:
enable: false #把这里改成 false
# ... 其他设置保持不变
PRTCL // YAML
tproxy:
enable: true
port: 1536 # 注意:此端口号必须与 tproxy-port 和模块脚本使用的端口一致,Surfing 默认 1536,视你的配置跟随变动,端口在文件顶部的`tproxy-port`
本篇主要是提供具体的解决方案,关于这部分的代理知识后续可以单独分篇来讲(又挖坑)
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。