Summary
After four independent device-pair hardware validation runs (iPhone 13 ↔ SM-T577U, SM-T390, R52, plus reverse), the only cross-platform route that reliably delivers full MX envelopes (>31 bytes) between Android and iOS is:
MB legacy 22-byte manufacturer-data beacon (as cue) + GATT fetch (responder serving the complete envelope over the MeshX fetch service).
Direct-MX service-data (custom 128-bit UUID) and extended AUX advertising were exhaustively tested in both directions and rejected due to iOS CoreBluetooth foreground restrictions.
Production status (2026-05-18)
- Positive MB + GATT round-trips validated on SM-T390 (API 28, awake) and SM-T577U (API 33) using the main app
BleSelfTest path.
- iOS harness can emit clean MB cues and serve full envelopes over GATT.
- Android production scanner (post main-looper fix) receives the cue and performs the fetch.
Request
In the official mob / mob_dev BLE transport documentation and any "getting started" or "advertising carriers" sections, please:
- List "MB legacy beacon cue + GATT fetch" as the supported production path for full MX envelopes when iOS is involved.
- Note the iOS limitations on direct manufacturer-data / custom service-data / AUX paths (with links to the two limitation issues).
- Keep the direct-MX and hybrid paths as "experimental / Android-only / future iOS platform evolution" with clear caveats.
This gives downstream projects (such as MeshX) a clear, low-surprise target instead of having to discover the limitation through extensive recapture sessions.
Related
Summary
After four independent device-pair hardware validation runs (iPhone 13 ↔ SM-T577U, SM-T390, R52, plus reverse), the only cross-platform route that reliably delivers full MX envelopes (>31 bytes) between Android and iOS is:
MB legacy 22-byte manufacturer-data beacon (as cue) + GATT fetch (responder serving the complete envelope over the MeshX fetch service).
Direct-MX service-data (custom 128-bit UUID) and extended AUX advertising were exhaustively tested in both directions and rejected due to iOS CoreBluetooth foreground restrictions.
Production status (2026-05-18)
BleSelfTestpath.Request
In the official mob / mob_dev BLE transport documentation and any "getting started" or "advertising carriers" sections, please:
This gives downstream projects (such as MeshX) a clear, low-surprise target instead of having to discover the limitation through extensive recapture sessions.
Related
docs/ble_carrier_decision.mdanddocs/BLE_BRIDGE.mdcontain the full evidence tables and "do not attempt without new proof" criteria.