2026年8月2日星期日

IOS26免越狱修改定位拉起CTExcel Wi-Fi calling教程:Shadowrocket(小火箭)+WLOC

 https://forum.naixi.net/thread-13769-1-1.html

iPhone免越狱修改定位教程:Shadowrocket(小火箭)+WLOC模块

本教程基于开源项目:Yu9191/wloc
支持使用Shadowrocket(小火箭)修改Apple网络定位服务返回的坐标。
无需越狱、无需电脑、无需开发者账号。


一、先说明原理和限制

在高版本iPhone IOS系统中除了使用GPS,还会通过附近的WiFi和基站向Apple网络定位服务查询当前位置。只靠爱思助手改定位就拉不起需要定位的Wi-Fi calling了

WLOC模块会通过Shadowrocket拦截Apple网络定位服务的响应,并将其中的坐标替换为用户设置的位置。

简单理解:

text
iPhone请求网络定位
↓
Apple返回当前位置
↓
Shadowrocket模块拦截响应
↓
将坐标替换为目标位置
↓
系统读取修改后的坐标
↓
正确符合运营商要求
↓
成功拉起WI-FI calling

需要注意:

  • 本项目修改的是Apple的网络定位(WiFi/基站定位);
  • 它不是直接修改GPS硬件数据;
  • 在室内、GPS信号较弱、主要依赖WiFi定位时效果最好;
  • 在室外GPS信号很强时,系统或部分App可能重新使用真实GPS坐标;
  • 不保证所有App都能长期稳定使用修改后的坐标;
  • iOS高版本存在较强的定位缓存,切换坐标后可能需要重启设备。

二、准备工作

开始前需要:

  1. 一台iPhone;
  2. 已安装Shadowrocket(小火箭);
  3. 可以正常联网;
  4. Shadowrocket中存在一条可用英国代理;
  5. 系统已允许Shadowrocket创建VPN连接。

项目地址:

https://github.com/Yu9191/wloc

Shadowrocket模块地址:

https://raw.githubusercontent.com/Yu9191/wloc/refs/heads/main/modules/wloc.module


三、导入WLOC模块

打开Shadowrocket,依次进入:

text
配置 → 模块 → 右上角“+” → 来自URL

粘贴以下模块地址:

text
https://raw.githubusercontent.com/Yu9191/wloc/refs/heads/main/modules/wloc.module

下载并保存。

返回模块列表,找到:

text
Apple WLOC 定位修改

确认模块已经启用,右侧应显示启用标记。

如果导入后找不到模块,请确认链接完整,并检查Shadowrocket是否能够正常访问GitHub Raw地址。


四、开启HTTPS解密

WLOC模块需要拦截Apple定位服务器的HTTPS请求,因此必须开启Shadowrocket的HTTPS解密功能。

不同版本Shadowrocket的入口可能不同。

新版常见入口

text
Shadowrocket → 配置 → 当前正在使用的配置文件 → 右侧“ⓘ” → HTTPS解密

部分旧版入口

text
Shadowrocket → 设置 → HTTPS解密

找到后打开:

text
HTTPS解密

如果在“设置”页面找不到HTTPS解密,请返回“配置”页面,点击当前配置文件右侧的“ⓘ”进入。


检查MITM域名

导入模块后,以下两个域名通常会自动加入HTTPS解密列表:

text
gs-loc.apple.com
gs-loc-cn.apple.com

如果没有自动出现,请手动添加。

可以使用逗号分隔:

text
gs-loc.apple.com,gs-loc-cn.apple.com

保存后,确认HTTPS解密开关仍然处于开启状态。


五、生成、安装并信任证书

这是整个教程中最重要的一步。

只开启HTTPS解密开关还不够,还需要安装并信任Shadowrocket的CA证书。

1. 生成证书

在Shadowrocket的HTTPS解密页面中点击:

text
证书 → 生成新的CA证书 → 安装证书

系统会提示已经下载描述文件。


2. 安装描述文件

打开iPhone系统设置,依次进入:

text
设置 → 通用 → VPN与设备管理

找到刚刚下载的Shadowrocket证书描述文件,然后点击:

text
安装

按照提示输入锁屏密码并完成安装。


3. 完全信任证书

安装描述文件后,还需要手动开启完全信任。

依次进入:

text
设置 → 通用 → 关于本机 → 证书信任设置

找到Shadowrocket生成的证书,打开对应的信任开关。

系统弹出警告后,确认启用完全信任。

很多人只安装了描述文件,却没有在“证书信任设置”中开启完全信任,最终导致模块没有效果。


六、开启Shadowrocket代理

回到Shadowrocket首页:

  1. 选择一条可以正常联网的代理;
  2. 打开顶部总开关;
  3. 第一次使用时允许Shadowrocket添加VPN配置;
  4. 确认页面显示“已连接”;
  5. 确认状态栏或控制中心出现VPN标志。

后续设置定位时,需要同时满足:

  • Shadowrocket代理已连接;
  • WLOC模块已启用;
  • HTTPS解密已开启;
  • CA证书已经安装并完全信任;
  • gs-loc.apple.com和gs-loc-cn.apple.com已加入解密域名。

七、设置目标位置

项目目前提供两种设置方式:

  1. 使用快捷指令设置,操作最方便;
  2. 使用在线选点页面设置。

推荐优先使用快捷指令。


方法一:使用快捷指令设置位置

安装“设置地理位置”快捷指令

打开:

https://www.icloud.com/shortcuts/a82717d8fdad4e6280866fcf911173f7

添加快捷指令:

text
wloc 设置地理位置

安装“恢复真实位置”快捷指令

打开:

https://www.icloud.com/shortcuts/f42632d406504f24a2cd163af4fe012f

添加快捷指令:

text
wloc 清理恢复位置


在苹果地图中选择位置

  1. 打开苹果地图;
  2. 搜索需要修改到的地点;
  3. 长按地图上的目标位置;
  4. 打开该地点的信息卡片;
  5. 点击“共享”;
  6. 在共享菜单中选择“wloc 设置地理位置”;
  7. 等待快捷指令运行完成。

操作路径:

text
苹果地图 → 长按目标位置 → 共享 → wloc 设置地理位置


在高德地图中选择位置

  1. 打开高德地图;
  2. 搜索或者长按目标位置 (CTExcel就英国);
  3. 点击“分享”;
  4. 点击“更多”;
  5. 选择“wloc 设置地理位置”;
  6. 等待快捷指令运行完成。

操作路径:

text
高德地图 → 选择位置 → 分享 → 更多 → wloc 设置地理位置

项目会自动解析高德地图分享短链,并将中国大陆常见的GCJ-02坐标转换为WGS84坐标。

如果共享菜单里没有快捷指令,可以滑到最下面点击“编辑操作”,将“wloc 设置地理位置”添加到共享菜单。


方法二:使用在线选点页面

保持Shadowrocket代理、模块和HTTPS解密处于开启状态,然后使用Safari打开:

https://wloc-pages.pages.dev/

也可以使用项目提供的Worker页面:

https://wloc-spoofer.wloc.workers.dev/

打开页面后:

  1. 在地图上选择位置;
  2. 或者搜索地点;
  3. 或者粘贴地图分享链接;
  4. 确认经纬度;
  5. 点击“储存到设备”。

这里的“储存到设备”不是将数据上传到iCloud,而是通过模块将目标坐标写入Shadowrocket的持久化存储。

页面还支持收藏多个位置,方便以后快速切换。

在线选点页面必须在Shadowrocket代理已经打开的情况下使用,并且Safari流量需要经过Shadowrocket,否则储存请求不会被模块拦截。


八、让新定位生效

设置坐标后,打开苹果地图观察当前位置。

如果没有立即改变,可以先尝试:

  1. 关闭地图App;
  2. 在后台任务列表中彻底划掉地图;
  3. 关闭再打开系统定位服务;
  4. 重新打开地图;
  5. 等待系统再次触发网络定位请求。

iOS 15~18

iOS 15~18通常不需要重启,重新触发定位后即可生效。(如果只是拉Wi-Fi calling甚至都不需要你改定位 关闭手机定位后重启即可)

如果仍然显示真实位置,可以:

  1. 关闭定位服务;
  2. 确认Shadowrocket已经连接;
  3. 确认模块和HTTPS解密已经开启;
  4. 重新打开定位服务;
  5. 打开地图验证。

iOS 26及更高版本

根据项目说明,Apple从iOS 26开始加强了locationd的定位缓存。

即使WLOC脚本已经成功修改服务器响应,系统仍可能继续读取内存中缓存的旧坐标。

这种情况下,单独开关飞行模式或定位服务可能不足以清除缓存,建议直接重启设备。

高版本推荐流程一

text

  1. 先通过快捷指令或选点页面设置目标位置
  2. 打开飞行模式
  3. 关闭系统定位服务
  4. 重启iPhone
  5. 开机后关闭飞行模式
  6. 暂时保持WiFi关闭,使用蜂窝网络联网
  7. 打开Shadowrocket并确认VPN已经连接
  8. 打开系统定位服务
  9. 打开苹果地图验证

系统定位服务入口:

text
设置 → 隐私与安全性 → 定位服务

高版本推荐流程二

text

  1. 关闭系统定位服务
  2. 保持Shadowrocket代理、模块及HTTPS解密开启
  3. 设置并储存目标位置
  4. 重新打开系统定位服务
  5. 出现位置权限提示时,选择“下次询问或在我共享时”
  6. 打开苹果地图验证

如果方法二过一段时间后恢复真实位置,通常是系统重新使用了GPS结果或定位缓存。可以改用方法一,并在GPS信号较弱的室内环境测试。


九、怎么确认是否成功

建议先使用苹果地图验证,不要一开始就用第三方App判断。

成功时通常会看到:

  • 苹果地图当前位置移动到设置的目标地点;
  • 重新打开地图后仍然显示目标位置;
  • Shadowrocket日志出现WLOC脚本执行或坐标修改记录。

如果地图一直转圈、完全不显示位置,通常不是“修改成功”,而是HTTPS解密、证书或网络配置存在问题。


十、恢复真实定位

方法一:使用恢复快捷指令

运行:

text
wloc 清理恢复位置

快捷指令地址:

https://www.icloud.com/shortcuts/f42632d406504f24a2cd163af4fe012f

该快捷指令会清理WLOC模块保存的目标坐标,使脚本进入透传模式。


方法二:关闭WLOC模块

进入:

text
Shadowrocket → 配置 → 模块

关闭:

text
Apple WLOC 定位修改

关闭模块后,Shadowrocket不再修改Apple网络定位响应,系统会恢复使用真实定位。


方法三:删除WLOC模块

如果以后不再使用,可以直接删除模块。

模块删除后还可以按需删除Shadowrocket的HTTPS解密证书:

text
设置 → 通用 → VPN与设备管理

找到Shadowrocket证书描述文件并移除。


高版本恢复定位注意事项

iOS 26及更高版本可能继续使用缓存中的修改坐标。

清理坐标或关闭模块后,建议:

text

  1. 关闭定位服务
  2. 重启iPhone
  3. 确认WLOC模块已经关闭或坐标已经清理
  4. 开机后重新打开定位服务
  5. 打开苹果地图验证真实位置

十一、常见问题

1. Shadowrocket里找不到HTTPS解密

不要在模块页面里寻找。

优先尝试:

text
配置 → 当前使用的配置文件 → 右侧“ⓘ” → HTTPS解密

不同版本入口可能略有区别。


2. 导入模块后没有效果

依次检查:

  • Shadowrocket总开关是否已经打开;
  • VPN图标是否出现;
  • 当前配置文件是否就是导入模块的配置;
  • WLOC模块是否启用;
  • HTTPS解密是否开启;
  • CA证书是否已经安装;
  • 是否已经在“证书信任设置”中开启完全信任;
  • 解密域名是否包含gs-loc.apple.com;
  • 解密域名是否包含gs-loc-cn.apple.com;
  • 设置坐标时Safari是否经过Shadowrocket;
  • 高版本iOS是否已经重启。

3. 地图一直转圈,不显示任何位置

这种情况一般说明定位请求被拦截了,但响应没有被正常解析。

建议:

  1. 临时关闭WLOC模块;
  2. 检查地图是否恢复正常定位;
  3. 重新导入最新版模块;
  4. 重新生成并安装证书;
  5. 再次确认完全信任证书;
  6. 检查是否同时启用了多个修改同一域名的模块;
  7. 查看Shadowrocket日志中是否存在脚本报错。

不要同时使用多个拦截gs-loc.apple.com的定位模块,否则可能发生冲突。


4. 修改成功后又跳回真实位置

常见原因包括:

  • 当前环境GPS信号较强;
  • 系统重新使用了真实GPS坐标;
  • locationd仍在复用缓存;
  • 第三方App主动刷新了其他定位来源;
  • Shadowrocket代理中途断开;
  • WLOC模块或HTTPS解密被关闭。

建议在室内测试,并使用高版本推荐流程重新设置。


5. 快捷指令运行了,但地图没有变化

快捷指令的作用是向WLOC模块写入目标坐标,它本身不会直接修改系统定位。

必须同时满足:

text
代理已开启
+ 模块已启用
+ HTTPS解密已开启
+ 证书已完全信任
+ Apple定位域名已加入MITM

然后关闭并重新打开地图。高版本系统还需要重启设备。


6. 可以只关闭Shadowrocket恢复定位吗?

可以。

Shadowrocket停止运行后,模块不再修改新的网络定位响应。

但系统可能继续显示之前缓存的坐标。若关闭Shadowrocket后仍未恢复,请关闭定位服务并重启设备。


7. 为什么部分App不跟随修改?

该项目只修改Apple网络定位服务返回的数据,不是底层GPS模拟器。

部分App可能:

  • 直接使用GPS硬件数据;
  • 同时使用WiFi、基站、蓝牙和IP地址判断位置;
  • 自己维护位置缓存;
  • 对定位结果进行一致性检查。

因此,苹果地图生效不代表所有App都会得到相同效果。


十二、隐私及安全说明

Shadowrocket的HTTPS解密证书具备解密指定HTTPS流量的能力。

建议:

  • 只使用自己生成的Shadowrocket证书;
  • 不要安装陌生人提供的CA证书;
  • 不要将证书私钥发送给其他人;
  • MITM域名只保留项目需要的Apple定位域名;
  • 不再使用时关闭HTTPS解密或删除证书。

WLOC模块实际需要拦截的域名为:

text
gs-loc.apple.com
gs-loc-cn.apple.com


十三、项目原理

模块主要包含两条脚本规则:

text
wloc.js

负责拦截Apple的/clls/wloc响应,解析其中的Protobuf数据并替换坐标。

text
wloc-settings.js

负责拦截/wloc-settings/save请求,将选定坐标写入Shadowrocket的持久化存储。

完整流程:

text
地图选择位置
↓
快捷指令或在线页面提交经纬度
↓
wloc-settings.js保存坐标
↓
iPhone请求Apple网络定位
↓
wloc.js读取已保存坐标
↓
替换Apple返回的网络定位坐标
↓
系统获得修改后的定位


十四、相关链接

项目主页:

https://github.com/Yu9191/wloc

Shadowrocket模块:

https://raw.githubusercontent.com/Yu9191/wloc/refs/heads/main/modules/wloc.module

在线选点页面:

https://wloc-pages.pages.dev/

设置地理位置快捷指令:

https://www.icloud.com/shortcuts/a82717d8fdad4e6280866fcf911173f7

清理恢复位置快捷指令:

https://www.icloud.com/shortcuts/f42632d406504f24a2cd163af4fe012f


十五、特别提醒

  1. 该方法修改的是网络定位,不是GPS硬件定位;
  2. 室内或GPS信号较弱时成功率通常更高;
  3. iOS高版本切换或恢复位置后建议重启;
  4. 首次测试建议使用苹果地图;
  5. 地图一直转圈不代表修改成功,应检查证书和HTTPS解密;
  6. 系统、Shadowrocket及项目更新后,实际界面和效果可能发生变化;
  7. 请勿使用该功能伪造考勤、规避平台规则或实施欺诈行为。

免责声明

本文仅用于介绍开源项目的配置方法和技术原理。使用前请自行了解相关App、平台及服务的使用规则。因配置错误、系统更新、账号风控、定位异常或其他原因产生的影响,由使用者自行承担。

项目代码及具体实现以原仓库最新版本为准:

https://github.com/Yu9191/wloc

改完定位后就可以结合CMlink/CTExcel uk终极激活教程改完定位后的教程继续食用了
其他需要定位才能拉起Wi-Fi calling的运营商也支持上述操作

没有评论:

发表评论