惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

雷峰网
雷峰网
G
Google Developers Blog
Blog — PlanetScale
Blog — PlanetScale
P
Proofpoint News Feed
博客园 - Franky
L
LangChain Blog
GbyAI
GbyAI
A
About on SuperTechFans
MongoDB | Blog
MongoDB | Blog
F
Fortinet All Blogs
Y
Y Combinator Blog
Stack Overflow Blog
Stack Overflow Blog
博客园 - 叶小钗
N
Netflix TechBlog - Medium
D
DataBreaches.Net
Martin Fowler
Martin Fowler
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Hugging Face - Blog
Hugging Face - Blog
博客园_首页
爱范儿
爱范儿
罗磊的独立博客
H
Help Net Security
云风的 BLOG
云风的 BLOG
C
Check Point Blog

开源软件

分享一个免费汇率 API:已经稳定运行 2 年(每月 500 万次请求) - V2EX [开源分享] 仅需一个脚本就能将目录转 s3 服务, FluxonFS vs Alluxio 5x 吞吐 - V2EX 推荐自用「文字转朗读音频」工具: Edge TTS 语音合成助手(开源 · 免费 · Windows) - V2EX 做一个 iOS 27 风格的 V2EX 客户端 - V2EX macOS 原生终端 Termite 1.18 版本发布-新增工作区灵感来自 ARC 浏览器 - V2EX 今天给 Berth 连发了 v1.3 和 v1.4 两个版本 - V2EX [开源]给分散 Cursor 账号做了个自托管额度与用量看板 - V2EX [开源] Git AI Control: Git AI 的本地隐私与策略控制面板 - V2EX 我做了一个可从手机远程管理 Mac 的开源控制台: Flux Monitor - V2EX 什么都没干 被帖上莫须有的罪名! - V2EX 你们都在用 AI,而我用古法编程做了一个剪映 - V2EX 终于有可以替代剪映的开源视频工具了!数据全本地,还能用 AI 聊天剪视频 - V2EX 开源一款 MAC 原生终端和一款原生 SSH 客户端 PurePic:一个由 AI 全制作的轻量图片查看器 然人赚不到自己认知以外的钱! 写了一个轻量的后台导航页 Admin Dock, Docker 一键部署 终于做出了我理想中的那个优雅的跨平台阅读软件 cursor canvas 技能复刻 一款跨设备的重复文件清理器 Excelize 开源十周年,发布 2.11.0 版本 OmenXHub 更美观 轻量 功能完备的暗/光影精灵控制中心 boss 直聘 ai 招聘助手(hr 用 [独立开发] 因为嫌 Quicker 限制多且收费,我用业余时间写了款免费开源的 Windows 效率神器 [开源分享] RPG Roleplay Platform:把你收藏的小说变成可交互游戏世界的自托管 LLM 引擎 [开源] 告别“删库跑路”的恐惧:我做了一款跨平台的磁盘清理工具 Skiff [开源] 一个支持自定义管理 github star 页的浏览器插件 [Github 开源] 个人自托管、零运维的 A 股「选股 + 监控 + 回测」智能量化工作台 [开源] 嘴遁 TalkOut: AI 斗嘴游戏 用一张嘴说服一个死活不松口的 AI 开源了一个自托管的 Agent 编排项目,不想再用拖拽画工作流了 [Github 开源] Obsidian 星标管理插件: obsidian-github-stars-manager
轻量 macOS 上模拟 iOS 设备定位的工具
marlkiller · 2026-07-03 · via 开源软件

VirtualLocation

macOS 上模拟 iOS 设备定位的工具,支持 普通模式 (DVT)代理模式 (MITM) 两种方案。

代理模式目前可过某企业 x 信

preview

构建

# 编译
swift build -c release

# 打包 .app
./build_app.sh arm     # Apple Silicon
./build_app.sh intel   # Intel
./build_app.sh u2b     # Universal

# 如遇到「 Apple 无法验证 'VirtualLocation.app' 是否包含可能危害 Mac 安全或泄漏隐私的恶意软件」提示,请运行以下命令解除隔离标记:
xattr -cr /Applications/VirtualLocation.app

两种方案

1. 普通模式 (DVT)

通过 USB 利用 Apple 的 DVT (Developer Tools) 协议直接向 iOS 设备注入定位。

  • 原理:Mac 通过 usbmuxd 与 iPhone 通信,调用 pymobiledevice3developer dvt simulate-location set 命令,将坐标写入设备的 GPS 子系统。DVT 进程需保持运行以维持模拟定位。
  • 优点:设置简单,即插即用。
  • 缺点:必须插线,依赖 Python 环境。

用法:

  1. 数据线连接 iPhone ,确保已开启开发者模式
  2. 点击工具栏安装 pymobiledevice3(自动创建 ~/.venv_pmd3/ 虚拟环境)
  3. 选择设备,点击地图选点后按 应用

2. 代理模式 (MITM)

在 Mac 上启动 HTTP/HTTPS 代理,对 iPhone 的 WiFi 定位请求进行中间人劫持,篡改定位响应。

  • 原理:iPhone 会向 gs-loc.apple.com / gs-loc-cn.apple.com 发起 WiFi 定位请求( protobuf 格式)。代理拦截该请求,完成 TLS 握手后解析 protobuf 载荷,找到其中的经纬度字段进行替换,再返回篡改后的响应给 iPhone 。
  • 细节:代理自动生成 CA 证书,并为 Apple 定位域名动态签发服务器证书;支持 gzip 压缩的 protobuf 响应解包与回包。
  • 优点:无线操作,无需数据线。
  • 缺点:需要配置 WiFi 代理并手动安装/信任 CA 证书。

用法:

  1. iPhone 连接 Mac 同个 WiFi ,先关闭 iPhone 上的 VPN/代理软件,再设置 WiFi 代理为 Mac IP + 指定端口(默认 8888 )
  2. 用 Safari 访问 http://<Mac IP>:<端口> 下载并安装 CA 证书
  3. 在 iOS 设置 > 通用 > 关于 > 证书信任设置中启用该证书
  4. 点启动代理,选点后按 应用
  5. 关闭/重新打开 iOS 设备的定位服务

代理启动后会自动生成 CA 证书并导入 macOS 钥匙串。

代理模式的实现参考了 proxypin-wloc-spoofer —— 一个通过 ProxyPin 脚本劫持 Apple WLOC 定位响应的开源项目。

系统要求

  • macOS 14+
  • Xcode Command Line Tools
  • 普通模式:USB 连接的 iOS 设备
  • 代理模式:OpenSSL 、同一 WiFi 下的 iPhone

Release: https://github.com/marlkiller/VirtualLocation/releases/tag/v0.0.1