Voeg post-flash CRC/SHA verificatie toe aan USB flashing #18

Closed
opened 2026-08-04 18:35:54 +02:00 by eddy · 1 comment
Owner

Probleem:
EspFlasher.kt schrijft firmware naar ESP32 via USB CDC maar verifieert niet dat de geschreven data correct is. OTA (BLE) heeft wél SHA-256 verificatie.

Voorstel:

  1. Voeg een verify-stap toe na het flashen:

    • Lees geschreven regio terug via stub
    • Vergelijk met originele binary
    • Of: gebruik stub-level checksum indien ondersteund door esp32-flash-lib
  2. Alternatief: documenteer waarom dit niet nodig is (stub betrouwbaar?)

Locatie:
EspFlasher.kt:117-128 (writeFlash loop)

Labels: enhancement, android, firmware
Prioriteit: medium

**Probleem:** `EspFlasher.kt` schrijft firmware naar ESP32 via USB CDC maar verifieert niet dat de geschreven data correct is. OTA (BLE) heeft wél SHA-256 verificatie. **Voorstel:** 1. Voeg een verify-stap toe na het flashen: - Lees geschreven regio terug via stub - Vergelijk met originele binary - Of: gebruik stub-level checksum indien ondersteund door esp32-flash-lib 2. Alternatief: documenteer waarom dit niet nodig is (stub betrouwbaar?) **Locatie:** `EspFlasher.kt:117-128` (writeFlash loop) **Labels:** enhancement, android, firmware **Prioriteit:** medium
eddy closed this issue 2026-08-05 08:15:04 +02:00
Author
Owner

Opgelost.

De bibliotheek esp32-flash-lib voert al impliciet MD5-verificatie uit na elke writeFlash() — de 2-arg versie roept intern writeFlash(addr, data, true) aan, wat verifyFlash(addr, data) uitvoert. Bij MD5-mismatch wordt ProtocolFatalException gegooid en faalt de flash.

Er is een Log.i logregel toegevoegd zodat verificatie zichtbaar is in de logs. De OTA SHA-256 verificatie blijft ongemoeid — die dient een ander doel (BLE-transmissie-integriteit). Geen extra CRC/SHA verificatie nodig.

**Opgelost.** De bibliotheek `esp32-flash-lib` voert al impliciet MD5-verificatie uit na elke `writeFlash()` — de 2-arg versie roept intern `writeFlash(addr, data, true)` aan, wat `verifyFlash(addr, data)` uitvoert. Bij MD5-mismatch wordt `ProtocolFatalException` gegooid en faalt de flash. Er is een `Log.i` logregel toegevoegd zodat verificatie zichtbaar is in de logs. De OTA SHA-256 verificatie blijft ongemoeid — die dient een ander doel (BLE-transmissie-integriteit). Geen extra CRC/SHA verificatie nodig.
Sign in to join this conversation.
No description provided.