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.

BLE-verkeer observeren en onbekende pakketten omzetten in gedocumenteerde, testbare kennis van het protocol.

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.

01

Observeren

Scannen, verbinden en notificaties vastleggen, zonder aan te nemen dat een onbekend veld veilig te interpreteren is.

02

Modelleren

Herhaalbare frames vertalen naar parsers, terwijl onbekende en vermoedelijke velden zichtbaar gelabeld blijven.

03

Bevestigen

Een vermoede betekenis controleren met herhaalde metingen bij stilstand en met protocoltests.

04

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.

Python 3BleakBluetooth LEProtocolparsersNative Android (Java)Android BLE-API’sSDK 35Geautomatiseerde tests

05 / Projectstatus & roadmap

Huidige stand en volgende stappen.

Nu
  • 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.
Gepland
  • 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.