Introduction
This project tries to unify several projects for simpler handling of custom BT-devices with Apple’s FindMy network. The goal is to run a headless MacOS without the need to have a real Mac and have to install mail plugins or openhaystack itself.
This is project is just a playground for checking technical feasibility and should not be used otherwise.
Included projects are (Credits goes to them for the hard work):
- The original Openhaystack
- Android application
- ESP32 firmware
- Biemster’s FindMy
- The standalone python webserver for fetching the FindMy reports
- Positive security’s Find you
- ESP32 firmware customization for battery optimization
- acalatrava’s OpenHaystack-Fimware alternative
- NRF5x firmware customization for battery optimization
- Optional: Dockerized MacOS by Sickcodes
- Optional: mac OS serial generator by Sickcodes
Changes to the original projects
Openhaystack
Stripped down to the mobile application (Android) and ESP32 firmware. ESP32 firmware combined with FindYou project and optimizations in power usage.
Biemster’s FindMy
Customization in keypair generator to output an array for the ESP32 firmware and a json for import in the Android application.
Instructions
- Host: Set up your virtual or real MAC
- Install python dependencies
pip install cryptography argparse pyobjc six
(pip command depends on your version and installation) - Host or MacOS-Guest: Run
generate_keys.py
(check the projects webserver-folder) to generate your key (e.g../generate_keys.py -p PREFIX
). All files will be in output-folder (All keys as information, PREFIX_keyfile for ESP32 and PREFIX_devices.json for import in application) - Host: Install ESP32-firmware with your key or/and (see note)
- Host: Install NRF5x-firmware with your key (see note)
- Optional: Mobile: Install application
- Optional: Host: Browse to Github Page (s. Notes on SSL usage)
- Optional: Host: Browse to http://localhost:56443/
- Mobile or Host: Import PREFIX_devices.json to your application
Note
In general, any OpenHaystack-compatible device or its firmware is also compatible with HeadlessHaystack (i.e. the ST17H66). Typically, only the Base64-encoded advertisement key is required, which can be found in the .keys file after key generation.