# OpenHayStack Apple FindMy Service AirTag

OpenHaystack ist ein Open-Source-Projekt, das es ermöglicht, eigene Bluetooth-Tracker zu erstellen, die mit dem Apple "Find My"-Netzwerk kompatibel sind. Es bietet eine kostengünstige Alternative zu kommerziellen Trackern wie Apple AirTags, indem es einfache Bluetooth-Geräte wie den ESP32 nutzt, um Signale auszusenden, die von Apple-Geräten erkannt und in das "Find My"-Netzwerk eingespeist werden.

# Installation

# Docker installtion des Servers ohne MacOS

### Beschreibung:

Wir brauchen einen Webdienst der Das Apple FindMy emuliert, da wir keine Apple Geräte haben, oder nutzen wollen.

### Vorrausetzungen:

- Eine neue Emailadresse für die Apple ID z.b googlemail
- Eine Virtuelle Telefonnummer mit SMS Empfang:  
      
    <table border="1" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 49.933%;">**Name**  
    </td><td style="width: 49.933%;">**URL**  
    </td></tr><tr><td style="width: 49.933%;">VSIM Google Play  
    </td><td style="width: 49.933%;">[https://play.google.com/store/apps/details?id=com.tgtools.vnumber&amp;hl=gsw](https://play.google.com/store/apps/details?id=com.tgtools.vnumber&hl=gsw)</td></tr><tr><td style="width: 49.933%;">VSIM Apple Store  
    </td><td style="width: 49.933%;">[https://apps.apple.com/us/app/vsim-sms-verification/id1661720255](https://apps.apple.com/us/app/vsim-sms-verification/id1661720255)
    
    </td></tr></tbody></table>
    
    Denn es kann nur eine Telefonnummer Pro AppleID benutzt werden
- Eine AppleID mit 2FA aber nur SMS. : [https://www.icloud.com/](https://www.icloud.com/)
- Abhänigkeiten auf dem Computer installieren, wo die Schlüssel generiert bwerden sollen.
    
    ```
    sudo apt-get install build-essential libssl-dev libffi-dev python-dev
    pip install cryptography
    ```
- Die Keys Generate py.[generate\_keys.py](https://wiki.hacker-net.de/attachments/56) GIT Repo : [https://github.com/dchristl/macless-haystack/releases/tag/v2.2.0](https://github.com/dchristl/macless-haystack/releases/tag/v2.2.0)
- Hardware  
    <table border="1" style="border-collapse: collapse; width: 100%; height: 87.6px;"><tbody><tr style="height: 29.8px;"><td style="width: 49.933%; height: 29.8px;">Name  
    </td><td style="width: 49.933%; height: 29.8px;">Shop URL  
    </td></tr><tr style="height: 57.8px;"><td style="width: 49.933%; height: 57.8px;">Werese Ibeacons Typ Bluetooth 4.0 Modul Nrf51822 Chipsatz Ibeacon Mit Silikonhülle</td><td style="width: 49.933%; height: 57.8px;">[Amazon Link](https://www.amazon.de/Ibeacons-Bluetooth-Nrf51822-Chipsatz-Silikonh%C3%BClle/dp/B07HG62PCJ/ref=asc_df_B07HG62PCJ?mcid=9ac2a0124c253ed3a204944b190b66a9&th=1&psc=1&tag=googshopde-21&linkCode=df0&hvadid=697136298398&hvpos=&hvnetw=g&hvrand=13709732359773682021&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=9043688&hvtargid=pla-868126949967&psc=1&gad_source=1)
    
    </td></tr></tbody></table>

#### Los ghets:

#### Server Setup

zwei Docker Container in einer VPS Oder wo auch immer erstellen. Mit Linux Mint oder so. Weil der Webbrowser von dort gestartet wird. Am besten xfreerdp drauf installieren.  
Siehe [RDP-Server für Cinnomon Session installieren](https://wiki.hacker-net.de/books/linux-mint-RgK/page/rdp-server-fur-cinnomon-session-installieren "RDP-Server für Cinnomon Session installieren")

Der Amisette Container emuliert einen Mac Book Pro  
Und der macless Container die Schnittstelle zur FindMy Service network. Über den werden die Geräte und Keys erstellt.

Abbhängikeiten installieren

```
apt install docker.io docker-compose apparmor apparmor-utils curl openssl
```

Verzeichnisse estellen

```
mkdir -p ~/openhaystack/


```

Docker Network erstellen

```
docker network create mh-network
```

Nun Anisette starten

```
docker run -d --restart always --name anisette -p 6969:6969 --volume anisette-v3_data:/home/Alcoholic/.config/anisette-v3/lib/ --network mh-network dadoum/anisette-v3-server
```

Nun MACLess im interactiven modus starten umd die AppleID Daten einzugeben

```
docker run -it --restart unless-stopped --name macless-haystack -p 6176:6176 --volume mh_data:/app/endpoint/data --network mh-network christld/macless-haystack
```

wenn diese Zeile drin vorhanden ist im Output dann kann der Container neugestartet werden

```
2024-11-17 15:11:25,898 - INFO - serving at 0.0.0.0:6176 over HTTP
```

Output:

```
024-11-17 15:11:25,897 - DEBUG - Answer from icloud login
2024-11-17 15:11:25,897 - DEBUG - {'dsid': '1148059359', 'delegates': {'com.apple.mobileme': {'status': 0, 'service-data': {'protocolVersion': '2', 'tokens': {'mmeFMFAppToken': 'EAABAAAABLwIAAAAAGc6B50RDmdzLmljbG91ZC5hdXRovQBCUEHE3WxIPLSjjRq8LhHNLSaEEuawxsb9VIXqV3mC4OllmYiE0QOmoVXCNKJ_6flkko_Z6gQeTZk6jyfrW5HPsbXcBks1hmYUI8938OZD2KbHkTzK32gSWokFDOg0zay1yGpZlR2GJVB_zd0-14eiEzZiFQ~~', 'keyTransparencyToken': 'EAABAAAABLwIAAAAAGc6B50RDmdzLmljbG91ZC5hdXRovQBCUEHE3WxIPLSjjRq8LhHNLSaEEuawxsb9VIXqV3mC4OllmYiE0QOmoVXCNKJ_6flkko_Z6gQeTZk6jyfrW5HPsbXcBks1hmYUI8938OZD2MO1bT9UamIarfevKOU7SRR4LVoDoMzKiFjBoZD9_ZSJmK6P5A~~', 'mapsToken': 'EAABAAAABLwIAAAAAGc6B50RDmdzLmljbG91ZC5hdXRovQBCUEHE3WxIPLSjjRq8LhHNLSaEEuawxsb9VIXqV3mC4OllmYiE0QOmoVXCNKJ_6flkko_Z6gQeTZk6jyfrW5HPsbXcBks1hmYUI8938OZD2B_mPZ0aRpM4JLCeSseNCYQWjHM2zRLXgfHp1KD_VXKCS95bcg~~', 'searchPartyToken': 'EAABAAAABLwIAAAAAGc6B50RDmdzLmljbG91ZC5hdXRovQBCUEHE3WxIPLSjjRq8LhHNLSaEEuawxsb9VIXqV3mC4OllmYiE0QOmoVXCNKJ_6flkko_Z6gQeTZk6jyfrW5HPsbXcBks1hmYUI8938OZD2NESM29jzyNNyRDeXuPETVIA5QPGacsli0Gs9mynDfbKVp1sFg~~', 'mmeFMIPToken': 'EAABAAAABLwIAAAAAGc6B50RDmdzLmljbG91ZC5hdXRovQBCUEHE3WxIPLSjjRq8LhHNLSaEEuawxsb9VIXqV3mC4OllmYiE0QOmoVXCNKJ_6flkko_Z6gQeTZk6jyfrW5HPsbXcBks1hmYUI8938OZD2M0JFNHoI9JWQYSNTXcnj_oO_lInYekeD1P3DB_6bWjbWRLOkw~~', 'cloudKitToken': 'EAIBAAAABLwIAAAAAGc6B50RDmdzLmljbG91ZC5hdXRovQBCUEHE3WxIPLSjjRq8LhHNLSaEEuawxsb9VIXqV3mC4OllmYiE0QOmoVXCNKJ_6flkko_Z6gQeTZk6jyfrW5HPsbXcBks1hmYUI8938OZD2OCOg-LaeLU6uphidtslC0yh1raqheK2PYSdWu5ujlN9Mhp5tg~~', 'mmeFMIPSiriToken': 'EAABAAAABLwIAAAAAGc6B50RDmdzLmljbG91ZC5hdXRovQBCUEHE3WxIPLSjjRq8LhHNLSaEEuawxsb9VIXqV3mC4OllmYiE0QOmoVXCNKJ_6flkko_Z6gQeTZk6jyfrW5HPsbXcBks1hmYUI8938OZD2FHj4qZqluHcb1-zJwdBOVe6DENixNM1kiUB8IoG60xXqZkvKw~~', 'mmeFMIPAppToken': 'EAABAAAABLwIAAAAAGc6B50RDmdzLmljbG91ZC5hdXRovQBCUEHE3WxIPLSjjRq8LhHNLSaEEuawxsb9VIXqV3mC4OllmYiE0QOmoVXCNKJ_6flkko_Z6gQeTZk6jyfrW5HPsbXcBks1hmYUI8938OZD2Kr3tpErmq12AyyNsDEMMGzRkxrv88em-xFk0ipZ9DifPJl87w~~', 'mmeAuthToken': 'EAABAAAABLwIAAAAAGc6B50RDmdzLmljbG91ZC5hdXRovQBCUEHE3WxIPLSjjRq8LhHNLSaEEuawxsb9VIXqV3mC4OllmYiE0QOmoVXCNKJ/6flkko/Z6gQeTZk6jyfrW5HPsbXcBks1hmYUI8938OZD2MhF1Ka25UYqzJSn+H1ys60ZQzq/WRwQdEgOXDZdVSfDWY0OQQ==', 'mmeBTMMInfiniteToken': 'EAABAAAABLwIAAAAAGc6B50RDmdzLmljbG91ZC5hdXRovQBCUEHE3WxIPLSjjRq8LhHNLSaEEuawxsb9VIXqV3mC4OllmYiE0QOmoVXCNKJ_6flkko_Z6gQeTZk6jyfrW5HPsbXcBks1hmYUI8938OZD2MZ_9isUKv_8wMtELxpQd-rdePIHGr0LpSK5vTA22GwpAPm9Qw~~'}}}}, 'status': 0}
2024-11-17 15:11:25,897 - INFO - Certificate file /app/endpoint/data/certificate.pem not found, so not using SSL
2024-11-17 15:11:25,898 - INFO - serving at 0.0.0.0:6176 over HTTP
2024-11-17 15:11:25,898 - WARNING - Endpoint is not protected by authentication

```

Wenn vorhanden Container neustarten mit SRTG+C Server stoppen

```
docker restart macless-haystack
```

#### Frontend aufrufen:  
  


Github-Website (Im Privaten Fenster öffnen, Seite hat ein cookie bug) : [https://dchristl.github.io/macless-haystack/](https://dchristl.github.io/macless-haystack/)

Oder die Andorid APP installieren -&gt; [https://github.com/dchristl/macless-haystack/releases/](https://github.com/dchristl/macless-haystack/releases/)

Wir nehmen die Website:

Dort dann auf + Drücken

[![Auswahl_001.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/scaled-1680-/R7U1AOIpeoWlB1Ba-auswahl-001.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-11/R7U1AOIpeoWlB1Ba-auswahl-001.png)

Hardware Setup

Vorrausetzungen:

- ADV\_KEY\_BASE64=YOUR\_ADVERTISEMENT\_KEY diesen bekommen wir wenn wir ein gerät anlegen. Jedes Gerät bekommt sein Advertise Key

Compile Firmware. Diese machen wir auch auf der Server VPS, so haben wir alles zusammen

Firmware flashen

Vorrausetzung

- Es muss Bluetooth am Gerät verfügbar sein.

Installation NFR Tools : [https://www.nordicsemi.com/Products/Development-tools/nRF-Command-Line-Tools/Download](https://www.nordicsemi.com/Products/Development-tools/nRF-Command-Line-Tools/Download)