免越狱修改 iOS 定位:基于 Apple WLOC 的虚拟定位神器,搞定 Wi-Fi Calling 激活与打卡考勤

2260 字
11 分钟
免越狱修改 iOS 定位:基于 Apple WLOC 的虚拟定位神器,搞定 Wi-Fi Calling 激活与打卡考勤

在 iOS 生态中,修改定位一直是个让很多玩家头疼的需求。以往常见的方法要么需要越狱设备、安装巨魔(TrollStore),要么得用电脑连接爱思助手、Xcode 模拟位置,不仅步骤繁琐,而且一旦手机断开或重启就会失效,部分 App 还会检测调试状态与越狱特征。

最近开源社区中出现了一个非常惊艳的项目:Yu9191/wloc。它通过抓包工具的 MITM(中间人解密)能力,直接在协议层篡改 Apple 网络定位(WiFi / 基站定位)的返回结果,实现了免越狱、无需电脑、随时随地一键修改定位

无论是为了激活境外卡(如 Tello、Ultra Mobile、Club Sim)的 Wi-Fi Calling,还是日常钉钉 / 企业微信考勤打卡,这个工具都能带来丝滑的使用体验。

Apple WLOC 定位修改效果
Apple WLOC 定位修改效果


核心原理解析:为什么它能免越狱改定位?#

要理解这个工具的巧妙之处,先要明白 iOS 是如何进行定位的:

  1. GPS 硬件定位:通过内置 GPS 芯片接收卫星信号,室外开阔地带精度极高,但耗电较大且在室内几乎无信号。
  2. 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。
  • 解决方案
    1. 使用 wloc 将定位修改为美国本土(如对应免税州免税区坐标)或香港目标位置。
    2. 手机开启飞行模式,连接 Wi-Fi(配合代理工具分流到对应国家/地区)。
    3. 系统获取到海外网络定位后,Wi-Fi Calling 开关即可顺利点亮并完成鉴权。

2. 钉钉 / 企业微信考勤打卡#

很多公司的考勤打卡设置在写字楼或室内园区:

  • 痛点:高楼大厦内没有 GPS 卫星信号,App 必须依赖系统 Wi-Fi 和基站定位来完成考勤验证。
  • 解决方案
    1. 打开高德地图或苹果地图,长按选择公司打卡范围内的位置。
    2. 配合 wloc 快捷指令一键将定位切换过去。
    3. 项目支持设置 randomRadius(随机扰动半径),例如设置在 10 米内随机漂移,避免每次打卡坐标完全固定引起风控系统怀疑。

3. 社交平台与隐私保护#

  • 朋友圈、微博、小红书等动态发布时自定义地理位置。
  • 隐藏真实的家庭或办公住址,防止被流氓软件追踪实际常驻地点。

模块订阅地址(支持主流代理软件)#

根据你使用的代理客户端,添加对应的模块或重写规则(需确保已开启 MITM 并信任 CA 证书):

客户端订阅模块地址
Surgehttps://raw.githubusercontent.com/Yu9191/wloc/refs/heads/main/modules/wloc.sgmodule
Quantumult Xhttps://raw.githubusercontent.com/Yu9191/wloc/refs/heads/main/modules/wloc.conf
Loonhttps://raw.githubusercontent.com/Yu9191/wloc/refs/heads/main/modules/wloc.lpx
Stashhttps://raw.githubusercontent.com/Yu9191/wloc/refs/heads/main/modules/wloc.stoverride
Shadowrocket (小火箭)https://raw.githubusercontent.com/Yu9191/wloc/refs/heads/main/modules/wloc.module
Tip
  • Egern 可直接使用 Surge 模块。
  • Stash 请直接订阅上面的 .stoverride,无需使用 Script Hub 转换。

使用方式(推荐工作流)#

方式一:快捷指令操作(最方便、秒级切换)#

作者封装了两套官方快捷指令,配合地图 App 分享即可完成切换与恢复,推荐优先使用:

  1. 安装快捷指令
  2. 设置位置
    • 苹果地图:长按选点 → 点击「共享」→ 选择「wloc 设置地理位置」。
    • 高德地图:选点 → 点击「分享」→ 点击「更多」→ 选择「wloc 设置地理位置」。
    • 快捷指令会自动处理短链重定向与 GCJ-02 到 WGS84 的坐标转换,瞬间写入设备存储。
  3. 恢复真实位置
    • 点击运行「wloc 清理恢复位置」即可一键清除虚拟坐标,恢复原生定位。

方式二:在线选点 Web 页面#

如果不想用快捷指令,也可以直接使用作者提供的在线选点网页:

  • 公共选点页面(Workers):https://wloc-spoofer.wloc.workers.dev/
  • 公共选点页面(Pages):https://wloc-pages.pages.dev/

操作流程

  1. 保证代理工具开启状态下,在 Safari 中打开上述页面(建议「添加到主屏幕」当做独立 Web App 使用)。
  2. 在地图上搜索目标地点、直接点选或粘贴地图链接。
  3. 支持点击「收藏位置」保存常用地址(如打卡点、海外地址)。
  4. 点击「储存到设备」,代理模块即可自动捕获保存请求。

模块高级参数配置#

在模块配置中,支持根据需求自定义如下高级参数:

参数说明默认值
longitude目标经度(在线选点优先)null (透传)
latitude目标纬度(在线选点优先)null (透传)
accuracy定位精度(米)25
randomRadius扰动半径(米),每次定位在目标点周围随机偏移,0 表示关闭0
logLevel日志级别info
Note

关于扰动半径(randomRadius:强烈建议需要考勤打卡的用户开启(例如设为 1520)。开启后每次系统发起网络定位时,返回的坐标会在设定半径内轻微波动,完美模拟真实人手持手机的自然偏移。


恢复真实定位的两种方式#

当你不需要虚拟定位时,可以通过以下方式恢复:

  • 方法一:快捷指令清除(最快)
    运行「wloc 清理恢复位置」,脚本进入透传模式,直接放行 Apple 官方原始定位数据。
  • 方法二:在代理工具中关闭模块
    直接在 Surge / Loon / QX 中将该模块停用即可。

关键避坑与使用技巧#

为了保证修改效果稳定生效,请务必注意以下几点细节:

  1. 必须完全信任 MITM CA 证书: 不仅要在代理软件内生成并安装证书,还要前往 iOS 「设置」→「通用」→「关于本机」→「证书信任设置」,将你的代理 CA 证书勾选为完全信任,否则无法解密 gs-loc.apple.com 流量。
  2. 室内 vs 室外: 该方案修改的是 Wi-Fi / 基站网络定位。如果在大太阳底下或开阔室外,手机 GPS 芯片搜星信号极强时,iOS 可能会强制采用 GPS 硬件坐标。在室内、写字楼、弱 GPS 场景或开启飞行模式连接 Wi-Fi 时效果最佳
  3. 定位缓存问题(高版本 iOS 必备技巧): Apple 在较新版本系统中大幅强化了 locationd 进程的定位缓存机制。即使模块已成功拦截修改,系统可能仍旧复用内存中的旧坐标。
    • 最高成功率操作流
      1. 在选点页面或快捷指令中选好坐标并保存。
      2. 开启飞行模式 → 关闭系统「定位服务」→ 重启设备
      3. 重启后连上 Wi-Fi 与代理工具(确认代理 VPN 图标常驻)→ 重新开启「定位服务」→ 打开地图验证。
  4. iOS 版本兼容性提示
    Warning

    自部分新版本(如 iOS 27 beta 6 起),Apple 在系统 TLS 证书校验层对 gs-loc.apple.com 增加了更严苛的限制,即使信任用户 CA 也会拒绝握手。目前项目在未加入强限制的系统版本上运行最为稳定,升级系统前建议关注该项目 Issue 的最新讨论。


开源项目与致谢#

如果你经常有 Wi-Fi Calling 激活、免越狱定位测试或室内打卡的需求,不妨在你的代理工具里备上这个模块!

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

免越狱修改 iOS 定位:基于 Apple WLOC 的虚拟定位神器,搞定 Wi-Fi Calling 激活与打卡考勤
https://github.com/Yu9191/wloc
作者
Suki
发布于
2026-09-07
许可协议
CC BY-NC-SA 4.0
分类
站点信息
构建平台
ESA Pages
文章许可
CC BY-NC-SA 4.0