BLE-verkeer observeren en onbekende pakketten omzetten in gedocumenteerde, testbare kennis van het protocol.
Eigen project / onderzoek naar een hardwareprotocol
Fiido Air BLE Tools
Eerst het protocol begrijpen. Pas naar de fiets schrijven als het bewijs sterk is.
01 / Doel
Doel en scope.
Een onderzoekstoolkit in Python en een native Android-app om Bluetooth Low Energy-functies van de Fiido Air e-bike te onderzoeken, te documenteren en, waar ze begrepen zijn, voorzichtig te bedienen.
Begrepen, alleen-lezen fietsgegevens tonen in een terminaldashboard en een Android-interface.
Alleen bewust ingeschakelde, bevestigde schrijfacties toestaan voor goed begrepen instellingen.
Onbekende bits behouden en firmware, remmen en andere veiligheidskritische onderdelen uitsluiten.
02 / Beslissingen
Technische beslissingen.
Observeren vóór schrijven
Reverse engineering wordt gevaarlijk wanneer een aannemelijke gok wordt behandeld als bewezen bediening.
Samengepakte bits behouden
Het wijzigen van één bekende instelling mag aangrenzende velden waarvan de betekenis nog onbekend is niet overschrijven.
Onveilige gebieden uitgesloten
Firmware, remmen, de interne werking van de controller en het omzeilen van beperkingen vallen buiten de scope van de tool.
Twee interfaces, één protocolmodel
Python versnelt het onderzoek, terwijl de Android-app test of het begrepen deel een bruikbare native bediening kan worden.
03 / Architectuur
Hoe het werkt.
Observeren
Scannen, verbinden en notificaties vastleggen, zonder aan te nemen dat een onbekend veld veilig te interpreteren is.
Modelleren
Herhaalbare frames vertalen naar parsers, terwijl onbekende en vermoedelijke velden zichtbaar gelabeld blijven.
Bevestigen
Een vermoede betekenis controleren met herhaalde metingen bij stilstand en met protocoltests.
Voorzichtig bedienen
Een schrijfactie moet expliciet worden ingeschakeld en laat niet-gerelateerde bits intact, in plaats van een hele instellingsbyte te vervangen.
04 / Technologie
De onderdelen.
05 / Projectstatus & roadmap
Huidige stand en volgende stappen.
- De Python-toolkit heeft geautomatiseerde controles en bewijs uit het echte protocol.
- De terminaltools bieden inspectie en een begrensde set bedieningsopties.
- Er is een native Android-app die de standaard BLE-API’s van het platform gebruikt.
- De Android-app moet nog voor het eerst getest worden op een echte telefoon, met de fiets stilstaand.
- Alleen-lezen het in kaart brengen van onopgeloste protocolvelden voortzetten.
- De verbinding en bediening van de Android-app testen op de stilstaande fiets.
- Alleen herhaaldelijk bevestigde velden toevoegen aan de bediening.
- Veiligheidsgevoelige onderdelen en updates van de fabrikant uitgesloten houden.