Macless-Haystack 自制AirTag
Macless-Haystack 自制AirTag
最近在gitee发现了个有意思的项目
如果是从零开始弄要自己画pcb买芯片“NRF5x系列” 电阻 自己焊接等 很麻烦
然后去咸鱼搜了一下 有人在卖成品 带刷好固件的 直接就跳过了这个项目的前期步骤
只需要用docker去部署一个后端就行
(除非你是需要大量的AirTag 不然不建议自手搓)
(在淘宝 1688 嘉立创等平台买芯片和电阻 pcb等
只有大批量才划算不然不够运费)
安装
服务器设置
服务器设置
1. 创建一个 docker 网络
在终端中执行以下命令,创建一个新的docker网络
docker network create mh-network
2. 运行 Anisette Server
docker run -d --restart always --name anisette -p 6969:6969 --volume anisette-v3_data:/home/Alcoholic/.config/anisette-v3/ --network mh-network dadoum/anisette-v3-server
注意:首次执行该命令会自动从 docker 官方仓库拉取镜像,因国内网络环境的原因,需要设置镜像仓库。如下修改 docker 的配置文件/etc/docker/daemon.json(不存在就新建),增加 registry-mirrors:
{
"registry-mirrors": [
"https://docker.hpcloud.cloud",
"https://docker.m.daocloud.io",
"https://docker.unsee.tech",
"https://docker.1panel.live",
"http://mirrors.ustc.edu.cn",
"https://docker.chenby.cn",
"http://mirror.azure.cn",
"https://dockerpull.org",
"https://dockerhub.icu",
"https://hub.rat.dev",
"https://docker.1ms.run",
"https://hub.1panel.dev",
"https://docker.itelyou.cf"
]
}
之后运行如下命令重启 docker 服务:
systemctl restart docker
# 或者
service docker restart
此时,镜像源应该生效了。可以用 docker info 命令验证,如果输出末尾有如下Registry Mirrors,说明镜像源配置成功了:
Registry Mirrors:
https://docker.1ms.run/
https://hub.1panel.dev/
https://docker.itelyou.cf/
......
如果配置未生效,拉取docker镜像还是出错,可能的原因:
1、Ubuntu 可能是因为你的docker是snap安装的,解决方法请移步 https://blog.csdn.net/lovelyelfpop/article/details/146802408
2、群晖 配置方法请移步 https://post.smzdm.com/p/ag82opxd/ 或 https://blog.csdn.net/Falleaves_Yu/article/details/120316411 或 https://wiki.slarker.me/basic/docker_mirrors.html 3、有些nas系统是有设置界面可以增加自定义镜像源的,在那里添加即可
镜像源配置生效后,继续执行上面安装 Anisette Server 的命令。
要检测 Anisette 是否正常运行,可以浏览器打开 http://服务器ip:6969,如果能访问就说明正常;或者执行命令 curl http://服务器ip:6969,如果有输出{"X-Apple-I-Client-Time":"202......则正常。
如果 anisette 服务起不来,一直显示 restarting,docker 日志报错 Permission denied,特别是在一些 nas 系统上比较常见。解决办法:把当前docker用户设为 /var/lib/docker/volumes/anisette-v3_data 这个目录的拥有者(或者加可读写权限比如775)。详见 Permission denied error
如果你没有在安卓手机或网页端查看 Tag 标签定位的需求,就不用看下面的3、4步骤了。
3. 运行 Macless Haystack 服务
运行下面命令启动 macless-haystack 服务:
docker run -it --restart unless-stopped --name macless-haystack-gitee -p 6176:6176 --volume mh_data:/app/endpoint/data --network mh-network lovelyelfpop/macless-haystack-gitee
启动服务时,系统会要求您输入 Apple ID、密码和两步验证短信验证码(注意如果 AppleID 是大陆手机号,前面要加上 +86)。
如果您看到命令行显示 serving at port 6176 over HTTP 则所有设置均正确。
如果报错503 Server Error: Service Temporarily Unavailable for url: https://gsa.apple.com/grandslam/GsService2,说明服务器 IP 被苹果屏蔽了。
要检测 Macless Haystack 服务是否正常运行,可以浏览器打开 http://服务器ip:6176,如果页面显示Nothing to see here就说明正常;或者执行命令 curl http://服务器ip:6176,如果有输出Nothing to see here则正常。
4. 另开终端重启 Macless Haystack
立即开启另一个终端,执行下面命令重新启动 Macless Haystack 服务
docker restart macless-haystack-gitee
前端应用程序
前端应用程序
如果你没有在安卓手机或网页上查看 Tag 标签定位的需求,就不用看本节内容了。
您可以使用 Gitlab 提供的前端 web 网站,也可以自己托管网站服务器;也可以使用 Android app。
另外,请自己去高德开放平台申请 web 服务 key(key 类型一定要是 Web服务,申请是免费的),在 app/web 网站的设置中需要填入。不填也可以用,但是只会显示位置坐标,不会显示中文地址描述。
安装/打开前端应用
安卓设备请安装 apk
Windows x64 电脑有客户端,下载解压 windows x64 portable.zip后运行 exe
非安卓的设备(iOS/鸿蒙/电脑)可使用浏览器打开网站 Gitlab Pages
注意:上述网站是 https://。因浏览器限制,https:// 的网站只能访问 https:// 的后台服务。所以如果你选择使用 Gitlab Pages,那么必须将 macless_haystack 服务部署为 https://。可选: 如果需要iOS、Linux 或 Windows 客户端,有能力的可以自己打包(本项目前端基于 Flutter)
点击前端应用程序(app 或 网站)右上角齿轮图标进入设置,填写 高德web 服务 key 和 macless haystack 服务 url 地址。其它设置项默认或按需设置。
回主界面,点"+"图标,选择"导入 json 文件",将
XXXXXX_devices.json文件导入前端应用程序内。注意:
1、"高德web 服务 key" 如果不填,位置只会显示成经纬度,而不显示中文地址描述。
2、"macless haystack 服务 url 地址" 形如
http://服务器ip:6176或https://服务器域名,https://服务器域名:端口。
若要在公网使用,需将 macless haystack 服务公开到公网,可以用 路由器端口映射 或 内网穿透 的方式实现。具体操作不属于本文范畴,请自行搜索。3、如果 app 获取位置报告时报错
未获取到位置。AppleID登录失效,请移除 auth.json 并重启 macless-haystack 服务,请移步 FAQ#重新注册/更改账户4、部分国产安卓机因系统魔改,点"导入 json 文件"可能弹不出文件选择。可以安装 "File Manager Plus" 这个文件管理器([GooglePlay] [Apkpure] [百度]),即可支持文件选择。
如果你想自手搓的话 刷固件可以参考这个
一键airtag烧录nrf5x工具 · Issue #IC03GF · lovelyelfpop/macless-haystack - Gitee.com
一键式解决刷固件问题 你只需要解决前期的焊接 以及链接电脑的问题就行
使用体验还不错 一些使用过程中中的图:


文章作者:Ming
文章链接:https://11ao.cn/archives/XikjTFsM
版权声明:本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0 许可协议,转载请注明出处!
评论