mirror of
https://github.com/seemoo-lab/openhaystack.git
synced 2026-08-19 19:46:24 +00:00
96 lines
4.3 KiB
Dart
96 lines
4.3 KiB
Dart
class DeploymentEmail {
|
|
static const _mailtoLink =
|
|
'mailto:?subject=Open%20Haystack%20Deplyoment%20Instructions&body=';
|
|
|
|
static const _welcomeMessage = 'OpenHaystack Deployment Guide\n\n'
|
|
'This is the deployment guide for your recently created OpenHaystack accessory. '
|
|
'The next step is to deploy the generated cryptographic key to a compatible '
|
|
'Bluetooth device.\n\n';
|
|
|
|
static const _finishedMessage =
|
|
'\n\nThe device now sends out Bluetooth advertisements. '
|
|
'It can take up to an hour for the location updates to appear in the app.\n';
|
|
|
|
static String getMicrobitDeploymentEmail(String advertisementKey) {
|
|
String mailContent = 'nRF51822 Deployment:\n\n'
|
|
'Requirements\n'
|
|
'To build the firmware the GNU Arm Embedded Toolchain is required.\n\n'
|
|
'Download\n'
|
|
'Download the firmware source code from GitHub and navigate to the '
|
|
'given folder.\n'
|
|
'https://github.com/seemoo-lab/openhaystack\n'
|
|
'git clone https://github.com/seemoo-lab/openhaystack.git && '
|
|
'cd openhaystack/Firmware/Microbit_v1\n\n'
|
|
'Build\n'
|
|
'Replace the public_key in main.c (initially '
|
|
'OFFLINEFINEINGPUBLICKEYHERE!) with the actual advertisement key. '
|
|
'Then execute make to create the firmware. You can export your '
|
|
'advertisement key directly from the OpenHaystack app.\n'
|
|
'static char public_key[28] = $advertisementKey;\n'
|
|
'make\n\n'
|
|
'Firmware Deployment\n'
|
|
'If the firmware is built successfully it can be deployed to the '
|
|
'microcontroller with the following command. (Please fill in the '
|
|
'volume of your microcontroller) \n'
|
|
'make install DEPLOY_PATH=/Volumes/MICROBIT';
|
|
|
|
return _mailtoLink +
|
|
Uri.encodeComponent(_welcomeMessage) +
|
|
Uri.encodeComponent(mailContent) +
|
|
Uri.encodeComponent(_finishedMessage);
|
|
}
|
|
|
|
static String getESP32DeploymentEmail(String advertisementKey) {
|
|
String mailContent = 'Espressif ESP32 Deployment: \n\n'
|
|
'Requirements\n'
|
|
'To build the firmware for the ESP32 Espressif\'s IoT Development '
|
|
'Framework (ESP-IDF) is required. Additionally Python 3 and the venv '
|
|
'module need to be installed.\n\n'
|
|
'Download\n'
|
|
'Download the firmware source code from GitHub and navigate to the '
|
|
'given folder.\n'
|
|
'https://github.com/seemoo-lab/openhaystack\n'
|
|
'git clone https://github.com/seemoo-lab/openhaystack.git '
|
|
'&& cd openhaystack/Firmware/ESP32\n\n'
|
|
'Build\n'
|
|
'Execute the ESP-IDF build command to create the ESP32 firmware.\n'
|
|
'idf.py build\n\n'
|
|
'Firmware Deployment\n'
|
|
'If the firmware is built successfully it can be flashed onto the '
|
|
'ESP32. This action is performed by the flash_esp32.sh script that '
|
|
'is provided with the advertisement key of the newly created accessory.\n'
|
|
'Please fill in the serial port of your microcontroller.\n'
|
|
'You can export your advertisement key directly from the '
|
|
'OpenHaystack app.\n'
|
|
'./flash_esp32.sh -p /dev/yourSerialPort $advertisementKey';
|
|
|
|
return _mailtoLink +
|
|
Uri.encodeComponent(_welcomeMessage) +
|
|
Uri.encodeComponent(mailContent) +
|
|
Uri.encodeComponent(_finishedMessage);
|
|
}
|
|
|
|
static String getLinuxHCIDeploymentEmail(String advertisementKey) {
|
|
String mailContent = 'Linux HCI Deployment:\n\n'
|
|
'Requirements\n'
|
|
'Install the hcitool software on a Bluetooth Low Energy Linux device, '
|
|
'for example a Raspberry Pi. Additionally Pyhton 3 needs to be '
|
|
'installed.\n\n'
|
|
'Download\n'
|
|
'Next download the python script that configures the HCI tool to '
|
|
'send out BLE advertisements.\n'
|
|
'https://raw.githubusercontent.com/seemoo-lab/openhaystack/main/Firmware/Linux_HCI/HCI.py\n'
|
|
'curl -o HCI.py https://raw.githubusercontent.com/seemoo-lab/openhaystack/main/Firmware/Linux_HCI/HCI.py\n\n'
|
|
'Usage\n'
|
|
'To start the BLE advertisements run the script.\n'
|
|
'You can export your advertisement key directly from the '
|
|
'OpenHaystack app.\n'
|
|
'sudo python3 HCI.py --key $advertisementKey';
|
|
|
|
return _mailtoLink +
|
|
Uri.encodeComponent(_welcomeMessage) +
|
|
Uri.encodeComponent(mailContent) +
|
|
Uri.encodeComponent(_finishedMessage);
|
|
}
|
|
}
|