
今天尝试了一个 iPhone 网络定位测试方案:通过 Quantumult X 拦截苹果的网络定位请求,替换 Wi‑Fi/基站定位返回的坐标。
它不是修改 GPS 硬件信号,而是影响苹果网络定位服务的结果。因此在室内、GPS 信号较弱时更可能有效;如果在室外,真实 GPS 信号很强,地图 App 可能仍优先使用真实位置。
配置过程
使用的工具是 Quantumult X,并导入 WLOC 的重写资源:
https://raw.githubusercontent.com/Yu9191/wloc/refs/heads/main/modules/wloc.conf导入时需要放在 Quantumult X 的“重写资源(Rewrite Resources)”中,而不是节点订阅。
导入成功后,MITM 主机名中会自动出现:
gs-loc.apple.com
gs-loc-cn.apple.com这两项配置正确,且应避免添加 *.apple.com 或 * 之类的全域规则,以免扩大 HTTPS 解密范围。
证书配置
由于定位响应使用 HTTPS,Quantumult X 必须生成并安装自己的 CA 证书。
流程如下:
- 在 Quantumult X 的
设置 → MitM中生成 CA。 - 选择安装证书。
- 在 iPhone 的
设置 → 通用 → VPN 与设备管理中安装描述文件。 - 到
设置 → 通用 → 关于本机 → 证书信任设置,开启 Quantumult X CA 的“完全信任”。 - 回到 Quantumult X,打开 MitM、Rewrite 和 WLOC 重写资源,并启动连接。
如果 Quantumult X 已有 CA,不必重复生成;重新生成会让旧证书失效,需要重新安装和信任。
设置测试坐标
项目提供了“wloc 设置地理位置”快捷指令。安装后,需要让它出现在 iOS 共享菜单中:
- 打开“快捷指令”App,进入该快捷指令的详情。
- 开启“在共享表单中显示”。
- 接收类型选择 URL/链接。
之后可以在苹果地图或高德地图中选点,点击“共享”,选择“wloc 设置地理位置”。
快捷指令提示“已更新位置”,只表示目标坐标已写入 Quantumult X 的持久化存储,并不代表地图一定已经显示新位置。
快捷指令跳转到定位服务页面
执行快捷指令后,系统会停留在“定位服务”设置页面。这不是报错,而是为了刷新定位权限和系统缓存。
可以按以下顺序操作:
- 保持 Quantumult X 已连接,确认 Rewrite、MitM、WLOC 都已开启。
- 关闭“定位服务”总开关。
- 完全退出高德地图和苹果地图。
- 重新打开“定位服务”。
- 若 App 再次请求定位权限,可先选择“下次询问或在我共享时”。
- 优先用苹果地图验证,再测试高德地图。
如果系统版本较新、地图仍显示旧位置,重启手机往往更有效。重启后,应先启动 Quantumult X 并确认 VPN 图标出现,再开启定位服务和地图。
恢复真实位置
测试完成后,应运行“清理恢复位置”快捷指令,关闭或删除 WLOC 重写资源。若地图仍显示旧位置,重启手机后再确认。
不再测试时,建议关闭 MitM,并撤销 Quantumult X CA 的完全信任或删除证书。因为 HTTPS 解密证书属于高权限配置,应只保留在自有设备、授权测试场景中。