当前官方边界
Core Location 是多来源融合,不是单一 GPS 开关
Apple 当前支持文档说明,定位服务可以使用蜂窝网络、Wi-Fi、GPS 与蓝牙;设备也会扩充众包的 Wi-Fi 热点和基站位置数据库。因此网络定位只是最终结果的一层。
- 室外强 GPS、蓝牙信标、App 权限和精确位置设置都可能改变最终结果。
- 目标 App 还可能叠加缓存、IP 区域、账号状态和服务端风控。
- 所以“补丁成功”不等于“所有 App 都必须显示目标点”。
兼容软件 · WPS 技术说明
WLOC 本身不是 VPN。坐标管理可独立使用;要运行网络定位响应测试,需要另行安装一款兼容的 iOS 网络客户端,由它提供本机网络隧道、限定主机的 HTTPS 检查和脚本执行能力。
App Store 上架名称为「WLOC」。如果直接链接打开了地区首页,请在 App Store 搜索「WLOC」。
直接回答
Shadowrocket、Surge 5、Quantumult X、Loon、Stash 或 Egern 任选其一即可,不需要全部安装。WLOC 负责目标坐标、配置文件、状态桥接、诊断和恢复;第三方客户端负责把相应规则放进 iOS 网络路径。客户端由各自开发者独立提供,WLOC 不销售、不捆绑,也不代表 Apple 或这些客户端厂商背书。
iOS network clients
下面的兼容关系来自 WLOC 当前实际生成器与 App 内引导。第三方客户端版本、菜单名称和地区可用性可能变化,应以各自 App Store 页面和当前版本为准。
| 客户端与官方页面 | WLOC 输出 | 如何接入与注意事项 |
|---|---|---|
| Shadowrocket ↗ | wloc.module | 作为模块导入,再只为列出的两个 Apple WPS 主机开启 HTTPS Decryption。当前 App 内引导把它作为优先验证路径。 |
| Surge 5 ↗ | wloc.sgmodule | 订阅或导入 Surge 模块,并启用其中的 MitM 主机列表。使用 WLOC 原生生成的 Surge 格式。 |
| Quantumult X ↗ | wloc.conf | 导入 Rewrite 与 MitM 段;脚本资源和主机列表必须同时生效。诊断旧脚本前先更新资源。 |
| Loon ↗ | wloc.lpx | 把地址作为插件安装并启用,再完成插件的证书配置。保持插件和脚本资源为最新版本。 |
| Stash ↗ | wloc.stoverride | 直接订阅 .stoverride,并启用其中的脚本与 MitM 范围。不要通过 Script Hub 转换该文件。 |
| Egern ↗ | wloc.sgmodule | 使用 Surge 格式模块,再为限定主机生成并信任 Egern 自己的 CA。Egern 复用 Surge 输出;WLOC 不为它生成单独文件。 |
已经有其中一款?先安装 WLOC,从 App 内复制与你所选客户端匹配的官方 wloc.app 配置地址。
在 App Store 打开 WLOCVPN ≠ IP location
这些客户端常使用 iOS 的 VPN/Network Extension 通道接管本机规则流量,所以状态栏可能出现 VPN 标识;这并不等于 WLOC 向远程 VPN 服务器发送全量流量。
| 组件 | 负责什么 | 不负责什么 |
|---|---|---|
| WLOC | 保存目标、生成匹配配置、触发状态桥接、展示诊断与恢复步骤。 | 不创建 VPN 隧道,不改变公网 IP,不安装 CA,也不直接写 GPS 硬件。 |
| 兼容网络客户端 | 创建本机网络路径,加载规则,按限定主机执行 HTTPS 检查与响应脚本。 | 不是 WLOC 的组成部分;其权限、计费、隐私和运行状态由各自产品负责。 |
| 远程 VPN/代理服务 | 如果用户另行配置,可能改变网络出口 IP 或传输路径。 | WLOC 不要求远程 VPN 订阅,也不会把 IP 地区与坐标目标当成同一个开关。 |
End-to-end path
每一步都可能单独失败,因此 WLOC 记录桥接、请求、补丁和直通证据,而不是只看 VPN 图标。
Wi-Fi Positioning System
iPhone 的最终位置不是只来自 GPS。Apple 当前说明定位服务会综合蜂窝网络、Wi-Fi、GPS 和蓝牙;WPS(Wi-Fi Positioning System)把附近接入点当作位置地标。
当前官方边界
Apple 当前支持文档说明,定位服务可以使用蜂窝网络、Wi-Fi、GPS 与蓝牙;设备也会扩充众包的 Wi-Fi 热点和基站位置数据库。因此网络定位只是最终结果的一层。
论文与历史资料
2024 年 IEEE S&P 论文描述了 Apple WPS 的实验模型:设备提交附近 Wi-Fi 接入点的 BSSID,服务返回这些地标及附近地标的坐标,设备在本机计算并缓存。Apple 2010 年致美国国会议员的历史信函也曾披露,设备会取得附近基站和 Wi-Fi 接入点的已知位置,并与可用 GPS 信息结合。
WLOC 实现
WLOC 的响应脚本识别 Apple WPS 二进制响应中的兼容 Wi-Fi、蜂窝和 location 记录,把其中的经纬度与精度字段替换为当前目标或路线节点。清除目标后脚本不再替换响应。
High-trust operation
Apple WPS 请求使用 HTTPS。兼容客户端要在设备上检查并修改响应,就必须为限定主机解密 HTTPS;因此会生成本机 CA、安装描述文件并在 iOS 中手动完全信任。这是一项高权限操作,不应该被包装成无风险的一键开关。
Diagnostics
把故障定位到客户端、证书、规则、WPS 响应或目标 App,能减少反复切开关的无效操作。
| 现象 | 更可能的层 | 下一步 |
|---|---|---|
| 没有 VPN 标识或客户端未连接 | 本机网络路径未启动。 | 确认所选客户端的连接、当前配置与 iOS VPN 权限。 |
| HTTP 状态桥可用,但 HTTPS 检查为 Not found | 配置已加载,但 HTTPS 解密、CA 信任或主机列表未生效。 | 检查客户端开关、系统证书完全信任和两个限定主机。 |
| 没有观察到 /clls/wloc 请求 | 规则未命中、资源过期、主机被直连绕过,或当前场景未触发 WPS。 | 更新配置,检查绕过规则,再用低风险地图查询触发。 |
| 补丁成功,但目标 App 仍是原位置 | GPS、权限、缓存、IP、账号或服务端规则覆盖了网络定位结果。 | 核对目标 App 权限与时间线,重新打开 App,并把 IP 与坐标分开测试。 |
| 已清除目标,但 App 仍显示旧位置 | 目标 App 或 iOS 缓存尚未刷新。 | 确认 passthrough,完全重新打开目标 App;WLOC 无法代替 iOS 清理 locationd。 |
Common questions
先判断链路到底停在哪一层,再决定是否重开 App、刷新权限或重启设备。VPN 图标本身不是成功证据。
没有生效?
WLOC 支持 Apple Maps、Google Maps、高德、百度链接和直接坐标文本。解析成功只说明目标坐标可用;真正的设备链路还要依次确认客户端连接、HTTPS、WLOC 请求和响应补丁。
确认 VPN 图标出现,所选配置、脚本和限定主机已启用。
HTTP 可用而 HTTPS 为 Not found,通常是 CA 信任、HTTPS 解密或主机列表尚未生效。
诊断中的最近 WLOC 请求时间必须更新;没有请求时,重启不会修复未命中的规则。
只有最近坐标替换时间和统计已更新,才进入权限、缓存与 GPS 层的排查。
取消测试目标
推荐先在 WLOC 内停止并清除活动路线,再使用“恢复真实位置/清除设备目标”。这会移除持久化的 wloc_settings;没有有效路线或模块 fallback 坐标时,响应脚本会进入 passthrough,原样放行 Apple WPS 响应。
passthrough,并观察新的直通时间。优先使用 WLOC 内的恢复操作。只有在状态桥无法访问时,才在对应客户端的脚本环境中清除静态目标:
Surge / Loon
$persistentStore.write(null, "wloc_settings")
Quantumult X
$prefs.removeValueForKey("wloc_settings")
这些命令只清除静态目标,不会停止仍在运行的路线。Shadowrocket、Stash、Egern 的运行环境和菜单可能随版本变化,建议重新导入官方配置或使用 WLOC 内恢复。
能力边界
室内、弱卫星视野、Wi-Fi/蜂窝定位参与度较高,并且目标 App 会采用 Apple 网络定位结果的授权测试场景。
室外强 GPS、蓝牙信标、目标 App 缓存、账号或服务端规则,以及目标 App 根本不采用这条网络响应。
如果要验证 Wi-Fi WPS,请保持可用网络连接;关闭 Wi-Fi 可能减少网络定位触发,不能作为通用提效步骤。
Primary · research · experimental
这些资料回答的问题不同。当前 Apple 文档定义公开边界;历史信函与论文解释演进;GitHub 仓库只作为独立实验佐证。
研究边界:WLOC 引用独立逆向实验来解释可能的私有协议结构,不把 /clls/wloc 称为 Apple 官方公开 API,也不保证未来版本保持兼容。
Authorized testing only
确认设备、网络、App 和账号都属于你或已得到明确授权。
只选择一款兼容客户端,并从其官方 App Store 页面获取。
先在 WLOC 中用公开、低风险地点完成一次静态目标测试。
把证书主机范围限制在两个 Apple WPS 主机,并记录安装与撤销步骤。
验证一次 active、一次 passthrough,以及目标 App 重新打开后的真实位置。
FAQ
不是。WLOC 管理坐标、配置、诊断和恢复;兼容的第三方客户端才创建 iOS 网络路径。
不需要。任选一款当前受支持的客户端即可,并使用对应的 wloc.module、wloc.sgmodule、wloc.conf、wloc.lpx 或 wloc.stoverride。
WLOC 本身不要求远程 VPN 订阅。所选客户端可能有自己的购买、功能或服务条款;WLOC 需要的是它在本机加载规则、检查限定 HTTPS 主机和执行脚本的能力。
兼容客户端可能通过 iOS VPN/Network Extension 通道处理本机规则流量。这个图标表示网络通道已启用,并不证明 WPS 规则、证书或补丁已经成功。
不一定。WLOC 不提供远程出口,也不改变 IP。只有你另行配置的远程网络服务才可能影响公网出口。
因为目标响应是 HTTPS。要检查并修改限定主机的加密响应,客户端需要本机 CA 和系统信任。该权限敏感,应限制主机、使用测试机并在测试后撤销。
支持 Apple Maps、Google Maps、高德、百度链接,也可以直接输入纬度和经度文本。WLOC 会识别来源坐标系并规范为内部 WGS84 目标。
先确认最近的 WLOC 请求和坐标替换时间都已更新;如果只看到 VPN 图标或状态桥,重启不能修复配置、证书或规则未命中。如果补丁已确认但地图仍旧,可先刷新目标 App 权限并重新打开,仍无变化时再重启测试设备。Apple 没有公开 WLOC 专用的 iOS 26/27 缓存或必须重启规则,因此这是排障建议,不是版本保证。
先停止并清除活动路线,再用 WLOC 的恢复真实位置操作清除 wloc_settings,确认状态为 passthrough。当前官方配置没有 113.94114、22.544577 这组透传哨兵;只要模块参数中仍有有效 fallback 经纬度,或路线仍在运行,脚本仍可能继续替换。
不会保证。最终结果还受 GPS、蓝牙、蜂窝、权限、缓存、IP、账号和服务端规则影响;某些 App 也可能完全不采用这条网络定位结果。
先在 WLOC 清除目标并确认 passthrough,再停用或移除客户端配置与 HTTPS 检查,撤销并删除 CA 证书或描述文件,必要时移除 VPN 配置,最后重新打开目标 App 验证真实位置。
WLOC
安装 WLOC,选择公开地点,按 App 内与所选客户端匹配的步骤配置,完成一次保存、诊断、清除和证书撤销闭环。