免越狱修改 iOS 定位:基于 Apple WLOC 的虚拟定位神器,搞定 Wi-Fi Calling 激活与打卡考勤
在 iOS 生态中,修改定位一直是个让很多玩家头疼的需求。以往常见的方法要么需要越狱设备、安装巨魔(TrollStore),要么得用电脑连接爱思助手、Xcode 模拟位置,不仅步骤繁琐,而且一旦手机断开或重启就会失效,部分 App 还会检测调试状态与越狱特征。
最近开源社区中出现了一个非常惊艳的项目:Yu9191/wloc。它通过抓包工具的 MITM(中间人解密)能力,直接在协议层篡改 Apple 网络定位(WiFi / 基站定位)的返回结果,实现了免越狱、无需电脑、随时随地一键修改定位。
无论是为了激活境外卡(如 Tello、Ultra Mobile、Club Sim)的 Wi-Fi Calling,还是日常钉钉 / 企业微信考勤打卡,这个工具都能带来丝滑的使用体验。

核心原理解析:为什么它能免越狱改定位?
要理解这个工具的巧妙之处,先要明白 iOS 是如何进行定位的:
- GPS 硬件定位:通过内置 GPS 芯片接收卫星信号,室外开阔地带精度极高,但耗电较大且在室内几乎无信号。
- Apple 网络定位(WLOC / Wi-Fi & 基站定位):在室内或为了快速响应时,iOS 内部的
locationd服务会收集设备扫描到的周边 Wi-Fi 路由器 MAC 地址(BSSID)和蜂窝基站信息,通过 HTTPS 发送给 Apple 定位服务器(gs-loc.apple.com或国内的gs-loc-cn.apple.com)。Apple 服务器查询数据库后,返回计算出的经纬度坐标。
wloc 的工作机制正是切入在第 2 步:
[在线选点页面 / 快捷指令] │ ▼ 保存坐标[Surge / Loon / QX / Stash 代理模块] ── 写入持久化存储 ($persistentStore) │ ▼ 设备触发网络定位时[iOS locationd] ─── 发起 gs-loc 请求 ───▶ [Apple 定位服务器] │ ▼ 返回真实坐标 Protobuf[wloc.js 脚本拦截响应] ◀── 动态 Patch 经纬度 ──┘ │ ▼ 将伪造后的坐标返回给系统[iOS 系统与各大 App 接收到修改后的目标定位]由于是在网络协议层直接修改 Apple 官方下发的数据包,系统会将该结果直接作为权威的 Wi-Fi 定位,App 无法检测出任何注入或外挂行为,隐蔽性极高。
典型实用场景
1. 激活与使用境外卡 Wi-Fi Calling(Wi-Fi 通话)
很多玩境外卡(如美卡 Tello、Ultra Mobile PayGo、Mint,或港卡 Club Sim 等)的朋友都会遇到一个难题:国内无法开启或激活 Wi-Fi Calling。
- 痛点:部分海外运营商在激活 Wi-Fi Calling 时,除了要求走境外节点代理外,还会联合 iOS 调用设备定位。如果系统判定你当前位于中国大陆,直接禁止激活 Wi-Fi Calling。
- 解决方案:
- 使用
wloc将定位修改为美国本土(如对应免税州免税区坐标)或香港目标位置。 - 手机开启飞行模式,连接 Wi-Fi(配合代理工具分流到对应国家/地区)。
- 系统获取到海外网络定位后,Wi-Fi Calling 开关即可顺利点亮并完成鉴权。
- 使用
2. 钉钉 / 企业微信考勤打卡
很多公司的考勤打卡设置在写字楼或室内园区:
- 痛点:高楼大厦内没有 GPS 卫星信号,App 必须依赖系统 Wi-Fi 和基站定位来完成考勤验证。
- 解决方案:
- 打开高德地图或苹果地图,长按选择公司打卡范围内的位置。
- 配合
wloc快捷指令一键将定位切换过去。 - 项目支持设置
randomRadius(随机扰动半径),例如设置在 10 米内随机漂移,避免每次打卡坐标完全固定引起风控系统怀疑。
3. 社交平台与隐私保护
- 朋友圈、微博、小红书等动态发布时自定义地理位置。
- 隐藏真实的家庭或办公住址,防止被流氓软件追踪实际常驻地点。
模块订阅地址(支持主流代理软件)
根据你使用的代理客户端,添加对应的模块或重写规则(需确保已开启 MITM 并信任 CA 证书):
| 客户端 | 订阅模块地址 |
|---|---|
| Surge | https://raw.githubusercontent.com/Yu9191/wloc/refs/heads/main/modules/wloc.sgmodule |
| Quantumult X | https://raw.githubusercontent.com/Yu9191/wloc/refs/heads/main/modules/wloc.conf |
| Loon | https://raw.githubusercontent.com/Yu9191/wloc/refs/heads/main/modules/wloc.lpx |
| Stash | https://raw.githubusercontent.com/Yu9191/wloc/refs/heads/main/modules/wloc.stoverride |
| Shadowrocket (小火箭) | https://raw.githubusercontent.com/Yu9191/wloc/refs/heads/main/modules/wloc.module |
- Egern 可直接使用 Surge 模块。
- Stash 请直接订阅上面的
.stoverride,无需使用 Script Hub 转换。
使用方式(推荐工作流)
方式一:快捷指令操作(最方便、秒级切换)
作者封装了两套官方快捷指令,配合地图 App 分享即可完成切换与恢复,推荐优先使用:
- 安装快捷指令:
- 设置位置:
- 苹果地图:长按选点 → 点击「共享」→ 选择「wloc 设置地理位置」。
- 高德地图:选点 → 点击「分享」→ 点击「更多」→ 选择「wloc 设置地理位置」。
- 快捷指令会自动处理短链重定向与 GCJ-02 到 WGS84 的坐标转换,瞬间写入设备存储。
- 恢复真实位置:
- 点击运行「wloc 清理恢复位置」即可一键清除虚拟坐标,恢复原生定位。
方式二:在线选点 Web 页面
如果不想用快捷指令,也可以直接使用作者提供的在线选点网页:
- 公共选点页面(Workers):
https://wloc-spoofer.wloc.workers.dev/ - 公共选点页面(Pages):
https://wloc-pages.pages.dev/
操作流程:
- 保证代理工具开启状态下,在 Safari 中打开上述页面(建议「添加到主屏幕」当做独立 Web App 使用)。
- 在地图上搜索目标地点、直接点选或粘贴地图链接。
- 支持点击「收藏位置」保存常用地址(如打卡点、海外地址)。
- 点击「储存到设备」,代理模块即可自动捕获保存请求。
模块高级参数配置
在模块配置中,支持根据需求自定义如下高级参数:
| 参数 | 说明 | 默认值 |
|---|---|---|
longitude | 目标经度(在线选点优先) | null (透传) |
latitude | 目标纬度(在线选点优先) | null (透传) |
accuracy | 定位精度(米) | 25 |
randomRadius | 扰动半径(米),每次定位在目标点周围随机偏移,0 表示关闭 | 0 |
logLevel | 日志级别 | info |
关于扰动半径(randomRadius):强烈建议需要考勤打卡的用户开启(例如设为 15 或 20)。开启后每次系统发起网络定位时,返回的坐标会在设定半径内轻微波动,完美模拟真实人手持手机的自然偏移。
恢复真实定位的两种方式
当你不需要虚拟定位时,可以通过以下方式恢复:
- 方法一:快捷指令清除(最快)
运行「wloc 清理恢复位置」,脚本进入透传模式,直接放行 Apple 官方原始定位数据。 - 方法二:在代理工具中关闭模块
直接在 Surge / Loon / QX 中将该模块停用即可。
关键避坑与使用技巧
为了保证修改效果稳定生效,请务必注意以下几点细节:
- 必须完全信任 MITM CA 证书:
不仅要在代理软件内生成并安装证书,还要前往 iOS 「设置」→「通用」→「关于本机」→「证书信任设置」,将你的代理 CA 证书勾选为完全信任,否则无法解密
gs-loc.apple.com流量。 - 室内 vs 室外: 该方案修改的是 Wi-Fi / 基站网络定位。如果在大太阳底下或开阔室外,手机 GPS 芯片搜星信号极强时,iOS 可能会强制采用 GPS 硬件坐标。在室内、写字楼、弱 GPS 场景或开启飞行模式连接 Wi-Fi 时效果最佳。
- 定位缓存问题(高版本 iOS 必备技巧):
Apple 在较新版本系统中大幅强化了
locationd进程的定位缓存机制。即使模块已成功拦截修改,系统可能仍旧复用内存中的旧坐标。- 最高成功率操作流:
- 在选点页面或快捷指令中选好坐标并保存。
- 开启飞行模式 → 关闭系统「定位服务」→ 重启设备。
- 重启后连上 Wi-Fi 与代理工具(确认代理 VPN 图标常驻)→ 重新开启「定位服务」→ 打开地图验证。
- 最高成功率操作流:
- iOS 版本兼容性提示:
Warning
自部分新版本(如 iOS 27 beta 6 起),Apple 在系统 TLS 证书校验层对
gs-loc.apple.com增加了更严苛的限制,即使信任用户 CA 也会拒绝握手。目前项目在未加入强限制的系统版本上运行最为稳定,升级系统前建议关注该项目 Issue 的最新讨论。
开源项目与致谢
- GitHub 仓库:Yu9191/wloc
- 开源协议:AGPL-3.0
- 致谢:感谢作者 @Yu9191 以及社区贡献者 @FFF686868(原始思路)、@NSNanoCat 等开发者的贡献。
如果你经常有 Wi-Fi Calling 激活、免越狱定位测试或室内打卡的需求,不妨在你的代理工具里备上这个模块!
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!



