苹果的 AirTag 很贵,虽然某强北有平价代替品,但是仍需要苹果设备才能绑定,才能查看位置。不支持安卓/鸿蒙/PC ,也不支持集成到 Home Assistant 中。
每个 AirTag 都会发送一个蓝牙信号,其可以被临近的苹果设备( iPhone 、iPad 、MAC 等)检测到,这些苹果设备会将这些 AirTag 的位置上报到苹果服务器。这个网络就是 Find My 网络。
国外有人逆向了 AirTag 机制 (github 项目 seemoo-lab/openhaystack) 可以让一些蓝牙设备,比如 ESP32 、树莓派、甚至带蓝牙适配器的 Linux ,模拟发出 FindMy 蓝牙广播。
这样制作出的定位标签,不需要苹果手机绑定,支持安卓/鸿蒙/PC/Home Assistant 查看标签的位置。
我在 gitee 上建了一个项目 https://gitee.com/lovelyelfpop/macless-haystack 整合了 github 上一些内容,并做了如下一些事情: 1 、中文翻译 主要翻译的 github 项目 dchristl/macless-haystack 2 、安卓 app 适配国情 界面汉化,并替换为高德地图和定位 3 、硬件准备和刷机方法详细说明 4 、Home Assistant 集成说明
支持 安卓(有app),iOS/鸿蒙/PC等其他系统(用浏览器访问web 网站) 查看定位标签的位置(下面有截图)。 注意:虽然查看标签的位置不需要苹果手机,但是部署服务时需要有 AppleID 账号(需要在苹果手机上注册,可以找朋友借用注册一个。苹果网站上注册的不行)。 另外,标签上报位置仍然依赖苹果的 FindMy 网络,要求标签附近有苹果设备,因此,人少的地方比如农村不适合使用 AirTag/华强北平替/自己制作的定位标签。
下面是我制作的一些成品定位标签
1
w568w 30 天前
非常强的折腾,如果有 GitHub 项目我就 star 了
|
![]() |
2
musi 30 天前
@w568w 原文中有提到原项目是 http://github.com/dchristl/macless-haystack
|
![]() |
3
coolfan 30 天前
|
4
killeder 30 天前 via Android
有 uwb 吗
|
5
dozer47528 30 天前
既然是私有网络,那就不能利用别人手机上报定位了是吗?
|
![]() |
6
AlexShui 30 天前
🐂🍺我也很愿意给 OP 提供一个 GitHub 的⭐(如果有)
|
![]() |
7
lisxour 30 天前
这么强的项目,华强北居然没出全平台的高仿?
|
![]() |
8
Felldeadbird 30 天前
卧槽!楼主这是打开了新商业模式啊。
支持楼主的开源。 |
9
h4de5 30 天前
不错,支持一下。
|
![]() |
10
cat 30 天前
好家伙,坐在产业园区 突然看到月亮湾的地图…
|
![]() |
11
coolloves 30 天前
之前在淘宝上搜了下宠物定位器,貌似就是利用这个,请问下,自制的话,成本几何?
|
12
macaodoll 30 天前
牛逼 6666
|
![]() |
13
lovelyelfpop OP @killeder 没有 UWB 。华强北平替也没有
|
![]() |
14
lovelyelfpop OP @dozer47528 私有后台是给 app 查看位置用的。tag 利用附近苹果手机上传位置,这个还是一样的
|
![]() |
15
lovelyelfpop OP @coolloves 要准备一些工具,电烙铁 编程器啥的。材料成本看你购买的来源。你也可以画板子批量生产
|
16
whathappen 30 天前
@lovelyelfpop
#14 那我直接买原装或者华强北的 Airtag,是否可以用安卓查看它们的定位? 还是只可以查看“自制”的那些? 安装了这个软件的安卓设备会不会参与分享定位的角式?还是只是纯观看的角式? |
![]() |
17
lovelyelfpop OP @whathappen app 不支持华强北的平替。安卓手机不参与上报 tag 的位置,安卓 app 只用来查看位置
|
![]() |
18
LightofHeven 30 天前
op 动手能力真刚
|
![]() |
19
huguadao 30 天前
这,适合整个新的品牌,作为小孩定位器,众筹一轮
|
![]() |
20
weijancc 30 天前
挺好的, 就是放 gitee 显得 low
|
22
imyip 30 天前
关键是 黄鱼搜蓝牙信标 可以买到很便宜的 nrf51822
|
![]() |
23
xuromky 30 天前
成品多少钱一个,我要买
|
25
undefinedsymbol 30 天前
不错不错,star 来一个
|
26
koast 30 天前
主要问题是首次绑定生成的那个密钥不好导出,导出之后应该是和那华强北平替一样用的吧。毕竟 airtag 是绑定在账号上的,那个协商的密钥肯定也是可以从苹果服务器登陆账号获取的吧,不然新设备登录老账号都要重新绑定一遍 airtag 并且导致老设备的绑定失效听起来挺离谱的。 @lovelyelfpop @whathappen
|
27
koast 30 天前
苹果设计的这个协议很那啥的点在于信标的 mac 地址也是轮换密钥的一部分(和 generate_key.py 生成的那个主密钥不一样),导致要蹭它这个网络,必须得支持更改 mac 地址可以,这就使一些有意思的应用场景用不了。比如给安卓机写一个内核模块加载上,让它定时更改下蓝牙地址发下广播帧之类的。
|
![]() |
28
lovelyelfpop OP @xuromky 我黄鱼有上架几个自己做的,搜索“自制定位标签”
|
29
MacsedProtoss 30 天前 via iPhone
白嫖苹果的定位服务器?那这个是不是其实苹果是有封禁渠道的?
& 既然是到苹果服务器意味着这些设备都会是同一个 Apple ID ?虽然没绑定… 但是既然数据在苹果服务器那么必须得有个 ID 才能去取吧? |
![]() |
30
lovelyelfpop OP @MacsedProtoss 自己部署后台服务,使用自己注册的 AppleID 。如果苹果能封这个机制,那就得给以往发售的所有 AirTag 更新固件(显然不可能)。因为是从 AirTag 逆向过来的。
|
31
wanwaneryide 29 天前
@huguadao #19 pdd 就有的,苹果用的大概也就 20 左右吧,如果是安卓用的一个大概在 60 左右的样子,我买了一个放小电驴上,还行,定位误差有个三五十米左右
|
![]() |
32
lovelyelfpop OP @wanwaneryide 没有 UWB 就是这样,误差大概就是蓝牙的广播范围
|
![]() |
33
lovelyelfpop OP 教程已更新,部署后台服务不再需要魔法了
|