anamikalikestocode/nearby
GitHub: anamikalikestocode/nearby
一款原生 macOS 应用,通过解密「查找」本地缓存实现好友近距离 iMessage 提醒,无需服务器、无需注册、数据不离开设备。
Stars: 1 | Forks: 0
# 附近的
**当朋友在步行距离内时,发送短信通知你。**
Apple 不允许你在“查找”(Find My) 的基础上进行开发——没有 API,没有 SDK,什么都没有。`nearby` 是一个变通方案。它会读取 Mac 上“查找”的加密缓存,并在朋友靠近时给你发短信。
原生 macOS 应用。无需服务器。无需注册。你的数据永远不会离开你的设备。
## 工作原理
1. Apple 的 `searchpartyd` 将加密的位置信息存储在 `~/Library/com.apple.icloud.searchpartyd/` 中
2. 这包括**你朋友的**位置和**你自己 iPhone 的** GPS —— 它们都在同一个缓存中
3. 加密密钥 (`BeaconStoreKey`) 位于你的登录钥匙串中
4. 每个 `.record` 文件都使用 AES-256-GCM 加密:`[nonce, tag, ciphertext]`
5. `nearby` 对它们进行解密,通过 haversine 公式计算距离,并通过 iMessage 给你发短信
6. 作为后台调度程序运行 —— 即使合上盖子也能静默运行
**即使合上笔记本电脑也能工作。** 你的 Mac 会从“查找”中读取你 iPhone 的 GPS,因此即使你在走动,它也知道*你*在哪里。合上笔记本电脑,离开家 —— 它仍会在后台持续检查。
## 你会得到什么
每当有朋友靠近时,你会收到一条短信:
```
[09:14] 📍 iPhone GPS: 40.7497, -73.9760
[09:14] 🔔 Taylor is 5 min walk away (400m)
[09:14] 📱 iMessage sent
[09:30] ⏳ Taylor is 380m away (cooldown active)
[11:42] 🔔 Rohan is 2 min walk away (150m)
[11:42] 📱 iMessage sent
[23:02] 💤 Rohan is 450m away but it's quiet hours
```
点击菜单栏图标 → **立即检查 (Check Now)** 即可随时进行手动检查。
## 配置
打开应用 → **设置...** 来更改设置。默认配置:
| 设置 | 默认值 | 描述 |
|---|---|---|
| 提醒范围 | `800m` | 约 10 分钟步行路程 |
| 冷却时间 | `4 hours` | 不对同一个朋友重复提醒 |
| 免打扰时段 | `11pm–8am` | 在你睡觉时不发送提醒 |
## 系统要求
- macOS 13+ (Ventura)
- 登录 iCloud 并启用“查找”
- 至少有一个通过“查找”与你共享位置的人
- 完全磁盘访问权限 (应用在首次启动时会提示你)
## 加密原理
Apple 的“查找”使用[离线查找网络](https://support.apple.com/en-us/HT210515),通过附近 Apple 设备中继的 BLE 信标来定位设备。你的 Mac 会将这些位置缓存为使用 AES-256-GCM 加密的二进制 plist 文件。
解密密钥是一个 32 字节的对称密钥,存储在你登录钥匙串的 `BeaconStore` 服务下。可通过 Security 框架读取 —— 无需修改 SIP,无需 root 权限,无需破解。
每个 `.record` 文件都是一个 plist 数组:`[nonce (16 bytes), tag (16 bytes), ciphertext]`。解密后的 payload 包含 `latitude`、`longitude`、`timestamp`,以及一个标识设备所有者的 `findMyId`。朋友身份通过 `SecureLocationSharedKeys/` 记录进行解析。
## 隐私
- **所有操作均在本地运行。** 没有服务器,没有数据分析,没有遥测。
- **你只能看到已经通过“查找”与你共享位置的人。** 这不会让你获取任何新用户的访问权限。
- **加密密钥在运行时从你的钥匙串中读取。** 它永远不会被写入磁盘或存储在配置文件中。
## 卸载
从菜单栏退出应用,然后将其从“应用程序”中移出。配置存储在 `~/Library/Application Support/com.nearby/` —— 删除该文件夹即可彻底清除。
## 许可证
MIT
由 [@anamika__x](https://x.com/anamika__x) 构建 —— 因为你的手机应该主动告诉你朋友何时在附近。
或者从源代码构建
``` cd NearbyApp && swift build -c release ```标签:AES-256-GCM解密, Haversine公式, HTTP工具, iMessage短信通知, macOS原生应用, macOS钥匙串, searchpartyd, Swift, 位置缓存解密, 位置追踪, 后台监控, 命令行安装, 地理围栏, 无需服务器, 朋友定位, 极客工具, 网络安全, 网络调试, 自动化, 苹果Find My, 距离计算, 近距离提醒, 隐私保护