iPhone 网络定位测试:用 Quantumult X 配置 WLOC 的一次记录

技术专业 · 今天

今天尝试了一个 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 证书。

流程如下:

  1. 在 Quantumult X 的 设置 → MitM 中生成 CA。
  2. 选择安装证书。
  3. 在 iPhone 的 设置 → 通用 → VPN 与设备管理 中安装描述文件。
  4. 设置 → 通用 → 关于本机 → 证书信任设置,开启 Quantumult X CA 的“完全信任”。
  5. 回到 Quantumult X,打开 MitM、Rewrite 和 WLOC 重写资源,并启动连接。

如果 Quantumult X 已有 CA,不必重复生成;重新生成会让旧证书失效,需要重新安装和信任。

设置测试坐标

项目提供了“wloc 设置地理位置”快捷指令。安装后,需要让它出现在 iOS 共享菜单中:

  1. 打开“快捷指令”App,进入该快捷指令的详情。
  2. 开启“在共享表单中显示”。
  3. 接收类型选择 URL/链接。

之后可以在苹果地图或高德地图中选点,点击“共享”,选择“wloc 设置地理位置”。

快捷指令提示“已更新位置”,只表示目标坐标已写入 Quantumult X 的持久化存储,并不代表地图一定已经显示新位置。

快捷指令跳转到定位服务页面

执行快捷指令后,系统会停留在“定位服务”设置页面。这不是报错,而是为了刷新定位权限和系统缓存。

可以按以下顺序操作:

  1. 保持 Quantumult X 已连接,确认 Rewrite、MitM、WLOC 都已开启。
  2. 关闭“定位服务”总开关。
  3. 完全退出高德地图和苹果地图。
  4. 重新打开“定位服务”。
  5. 若 App 再次请求定位权限,可先选择“下次询问或在我共享时”。
  6. 优先用苹果地图验证,再测试高德地图。

如果系统版本较新、地图仍显示旧位置,重启手机往往更有效。重启后,应先启动 Quantumult X 并确认 VPN 图标出现,再开启定位服务和地图。

恢复真实位置

测试完成后,应运行“清理恢复位置”快捷指令,关闭或删除 WLOC 重写资源。若地图仍显示旧位置,重启手机后再确认。

不再测试时,建议关闭 MitM,并撤销 Quantumult X CA 的完全信任或删除证书。因为 HTTPS 解密证书属于高权限配置,应只保留在自有设备、授权测试场景中。

Theme Jasmine by Kent Liao