BLE: Pairing schlaegt auf Android fehl — SC_MITM_BOND inkompatibel #4
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
Das Geraet ist per BLE sichtbar (nRF Connect und MeshCore-App zeigen es an), aber das Pairing schlaegt fehl.
Ursache:
SerialBLEInterfacein der MeshCore-Bibliothek setztESP_LE_AUTH_REQ_SC_MITM_BOND:Dieser Modus verlangt MITM-Schutz mit Passkey-Dialog. Android 12+ zeigt diesen Dialog fuer BLE-UART-Geraete nicht mehr als Vordergrund-Dialog an — Verbindung schlaegt still fehl.
Zusaetzlich erscheinen BLE-UART-Geraete grundsaetzlich nicht in den Android-System-Bluetooth-Einstellungen (nur Classic BT / bekannte Profile wie HID).
Betroffene Datei
lib/MeshCore/src/helpers/esp32/SerialBLEInterface.cpp(upstream MeshCore-Submodul)Loesung
Security-Mode auf
ESP_LE_AUTH_BOND(Just Works) aendern:Kein PIN-Dialog — Android verbindet automatisch. Datensicherheit bleibt: MeshCore nutzt eigene ed25519-Verschluesselung, BLE-Transportverschluesselung ist redundant.
Optionen
Behoben via
pre_build.py— Patch wird bei jedem Build automatisch aufSerialBLEInterface.cppangewendet (MeshCore-Submodul bleibt git-sauber):ESP_LE_AUTH_REQ_SC_MITM_BOND→ESP_LE_AUTH_BOND(Just Works, kein PIN-Dialog)ESP_GATT_PERM_READ_ENC_MITM→ESP_GATT_PERM_READ_ENCRYPTEDESP_GATT_PERM_WRITE_ENC_MITM→ESP_GATT_PERM_WRITE_ENCRYPTEDCI-Build erfolgreich mit diesem Patch: Task 1083 ✅
Wiedergeöffnet: BT wird auf Android weiterhin nicht gefunden.
Der
pre_build.py-Patch (MITM → Just Works) war unzureichend — Gerät ist trotzdem nicht sichtbar.Mögliche Ursachen noch zu prüfen:
enable()wird nicht aufgerufen oder schlägt still fehlSERVICE_UUIDnicht korrekt in Advertising-Packet enthalten