update README

This commit is contained in:
Lurkars 2020-07-25 14:00:51 +02:00
parent 33ac1ef68a
commit 115d511b6b

View File

@ -5,23 +5,24 @@ More information about the Covid-19 Exposure Notification at [Apple](https://www
The main source (the Exposure Notification API) is a separate module in [**components/ena**](components/ena). The main source (the Exposure Notification API) is a separate module in [**components/ena**](components/ena).
This implementation fully covers the BLE part including the cryptography specifications needed (see Bluetooth Specifications and Cryptography Specifications documents in the links above) and the exposure check for now: This implementation fully covers the BLE part including the cryptography specifications needed and the exposure check.
* send beacons
* store TEKs on flash (last 14) ### Features implemented
* receive beacons * send/receive BLE beacons as defined in [Bluetooth® Specification (Apple/Google)](https://blog.google/documents/70/Exposure_Notification_-_Bluetooth_Specification_v1.2.2.pdf) and [Cryptography Specification (Apple/Google)](https://blog.google/documents/69/Exposure_Notification_-_Cryptography_Specification_v1.2.1.pdf)
* received beacons are stored after 5 minutes threshold (storage is limited, ~100k beacons can be stored) * BLE privacy (change random MAC address in random interval)
* parse key export binaries as defined in [Exposure Key export file format and verification](https://developers.google.com/android/exposure-notifications/exposure-key-file-format) (big thanks to [nanopb](https://github.com/nanopb/nanopb) for making this easier than I thought!) * permanent storage on flash of last keys, beacons and exposures (storage is limited, ~100k beacons can be stored)
* calculating risks scores (after adding reported keys and storing exposure information) * parsing of Exposure Key export binaries as defined in [Exposure Key export file format and verification](https://developers.google.com/android/exposure-notifications/exposure-key-file-format) (big thanks to [nanopb](https://github.com/nanopb/nanopb) for making this easier than I thought!)
* calculating exposure risks/scores (after adding reported keys and storing exposure information) as defined in [ENExposureConfiguration (Apple)](https://developer.apple.com/documentation/exposurenotification/enexposureconfiguration)
Additional features for full ENA device Additional features for full ENA device
* RTC support with DS3231 * RTC support with DS3231 (for correct system time)
* display support with SSD1306 * display support with SSD1306
* interface to * interface to
* set time * set time
* show exposure status * show exposure status
Extensions planned: ### Features in development
* automatically receive key export from web (will test [Corona Warn App](https://github.com/corona-warn-app)) * automatically receive Exposure Key export from web (started with [Corona Warn App](https://github.com/corona-warn-app))
* send infected status (will test [Corona Warn App](https://github.com/corona-warn-app)) * send infected status (will test [Corona Warn App](https://github.com/corona-warn-app))
* battery support * battery support
* 3d print case * 3d print case
@ -29,12 +30,16 @@ Extensions planned:
* delete data * delete data
* report infection * report infection
Limitations/Problems ### Limitations/Problems
* storage only ~2.8mb available * storage only ~2.5mb available
* WiFi or other external connection needed for infections status (auto-connect to open WiFis?) * WiFi or other external connection needed for infections status (auto-connect to open WiFis?)
* obtaining accessibility * obtaining accessibility
* all parameters (scanning time, thresholds etc.) * all parameters (scanning time, thresholds etc.)
### Questions/Problems/Annotations
* memory is really low with BLE and WiFi enabled, unzipping a Key Export not possible for now, maybe disable BLE service for download.
* service UUID is send reversed, RPI and AEM also send in reverse? Don't know BLE specification enough
The following acronyms will be used in code and comments: The following acronyms will be used in code and comments:
* *ENA* Exposure Notification Api * *ENA* Exposure Notification Api
* *ENIN* ENIntervalNumber - timestamp with 10 minutes resolution * *ENIN* ENIntervalNumber - timestamp with 10 minutes resolution
@ -42,15 +47,11 @@ The following acronyms will be used in code and comments:
* *RPI* Rolling Proximity Identifier - send and received identifer changed every 10 minutes * *RPI* Rolling Proximity Identifier - send and received identifer changed every 10 minutes
* *AEM* Associated Encrypted Metadata - send and received metadata * *AEM* Associated Encrypted Metadata - send and received metadata
Open questions/problems
* memory is really low with BLE and WiFi enabled, unzipping a Key Export not possible for now, maybe disable BLE service for download.
* service UUID is send reversed, RPI and AEM also send in reverse? Don't know BLE specification enough
## How to use ## How to use
### Hardware Required ### Hardware Required
For now just an ESP32 is required. For full device later RTC (DS3231) and Display (SSD1306) will be required. For now just an ESP32 is required. DS3231 RTC and SSD1306 Display are required for a complete device.
### Configure the project ### Configure the project
@ -70,7 +71,6 @@ debug options
* Log output set to Debug * Log output set to Debug
* Exposure Notification API / Storage enable *Dump storage* * Exposure Notification API / Storage enable *Dump storage*
### Build and Flash ### Build and Flash
May flash partition table: May flash partition table: