Startup Ideas Bank

Reinventing the wheel with a complex workaround for iOS localization.

AI roast score: 45/100 (F)

The idea

Why would anyone risk breaking their iOS for a virtual location tweak? This is a solution in search of a problem.

In the founder's own words

Yu9191/wloc — 修改 Apple 网络定位(gs-loc)返回坐标 · 支持 Surge / Quantumult X / Loon / Stash · 快捷指令一键设置/恢复定位

Apple WLOC 定位修改

修改 Apple 网络定位服务 (WiFi/基站) 返回的坐标,实现 iOS 网络定位虚拟定位。打开在线选点页面选位置即可生效,无需手动填经纬度。

订阅地址

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 转换


快捷指令(推荐,最方便)

直接用快捷指令切换 / 清除定位,无需打开选点页面:

wloc 设置地理位置 : https://www.icloud.com/shortcuts/a82717d8fdad4e6280866fcf911173f7

wloc 清理恢复位置 : https://www.icloud.com/shortcuts/f42632d406504f24a2cd163af4fe012f

用法

设置位置: 在地图 App 里选好位置(长按地图选点)→ 共享 → 选「wloc 设置地理位置」即可切换。

苹果地图:选点 → 共享 → 「wloc 设置地理位置」

高德地图:选点 → 分享 → 更多 → 「wloc 设置地理位置」

清理位置: 点「wloc 清理恢复位置」即可恢复真实定位。

支持苹果地图、高德(含短链,自动跟跳转 + GCJ-02→WGS84 坐标换算)。

前提:代理已开 + 模块已启用 + 信任 gs-loc.apple.com 。选点页面(Worker / Pages)方案仍保留,见下方。


关于地图链接解析(worker)

为了让苹果地图和高德走同一条流程,链接统一发给 wloc-spoofer.wloc.workers.dev/api/parse 解析:

高德 :分享出来是短链,真实坐标只藏在 302 跳转的 Location 头里,且是 GCJ-02 偏移坐标。快捷指令既读不到跳转头、也难做坐标换算,所以由 worker 跟跳转 → 抠坐标 → GCJ-02→WGS84 → 返回经纬度。

苹果地图 :链接里直接带 coordinate=纬度,经度 ,但在 中国大陆同样是 GCJ-02 偏移坐标 ,所以和高德一样由 worker 做 GCJ-02→WGS84 换算后返回;境外坐标会自动跳过换算( out_of_china 判断)原样返回。除了统一坐标系,走同一接口也方便统一处理短链、文本夹链接、名称解码等。

隐私: /api/parse 是纯转发解析——收到链接 → 跟跳转 → 解析坐标 → 返回 JSON,全程不写任何存储、不记日志、不缓存,处理完即丢。

不放心可自行部署: worker 源码完全开源,可自己部署一份替换上面的地址:

解析逻辑: worker/src/parse.js ,路由: worker/src/index.js

部署后把快捷指令里的 wloc-spoofer.wloc.workers.dev 换成你自己的 worker 域名即可。



使用方法

订阅模块并启用 MITM

打开在线选点页面(公共 Worker,建议添加到主屏幕)

地图选位置 / 搜索地名 / 粘贴地图链接

点击「储存到设备」

下次 Apple 定位触发时自动生效

支持 Apple Maps / Google Maps / 高德 / 百度 / 坐标文本 链接解析。

iOS 26/27 及更高版本注意: Apple 从 iOS 26 开始大幅强化了 locationd 的定位缓存机制,系统会将之前获取的真实定位结果缓存在内存中并长时间复用。这意味着安装模块或切换目标坐标后,即使脚本已成功修改了 WLOC 响应(日志显示"已修改"),系统仍可能继续使用缓存中的旧坐标,导致定位看起来没有变化。

解决方法:重启设备。 重启会清空 locationd 的内存缓存,系统重新发起 WLOC 请求时会拿到修改后的坐标。飞行模式开关、关闭定位服务等方式在 iOS 26+ 上 无法 清除此缓存,必须重启。iOS 15~18 通常不需要重启即可生效。

高版本系统推荐操作流程(成功率最高):

方法一:

先在选点页面选好需要修改的定位并储存到设备

开飞行模式 → 关闭定位服务 → 重启设备

关闭飞行模式(WiFi 也要关)→ 连接代理工具(确认 VPN 图标出现)→ 打开定位服务

打开地图验证

方法二:

关闭定位服务

在选点页面选好位置并储存到设备

打开定位服务 → 弹出「允许访问位置信息」时选择**「下次询问或在我共享时」**

打开地图验证



工作原理
选点页面 → fetch gs-loc.apple.com/wloc-settings/save?lon=x&lat=y
→ 代理模块拦截 → wloc-settings.js 写入 $persistentStore
→ 下次 WLOC 触发 → wloc.js 读取坐标 → patch protobuf 响应

模块包含两条规则:

wloc.js — 拦截 /clls/wloc 响应,解析 protobuf 并替换坐标

wloc-settings.js — 拦截 /wlo

The roast

The idea of modifying Apple’s network location service through a convoluted series of scripts and proxies is as niche as it gets. The average user will find this setup cumbersome and risky, especially with the necessity to reboot the device frequently on newer iOS versions. Additionally, your reliance on multiple third-party services like Surge, Quantumult X, and others only complicates the user experience further. The fact that this solution is targeting general consumers but requires a technical acumen that only a handful possess is a glaring mismatch. No one in their right mind would go through such hoops for something as trivial as location spoofing. The entire concept hinges on users’ willingness to jump through numerous complex steps just to achieve a virtual location—something that most people simply don’t need.

Red flags

Verdict

This idea is overly complex and misaligned with the general consumer market; it's a non-starter.

Start with your own startup idea →

More ideas roasted by AI

Browse all startup ideas →