gb88 / BLEOTA

ESP32 BLE OTA Arduino Library
https://gb88.github.io/BLEOTA/
GNU Affero General Public License v3.0
28 stars 5 forks source link

Potential Conflict with Bluetooth SIG Reserved UUID #14

Closed rokHladin closed 4 days ago

rokHladin commented 4 days ago

Description

Thank you for providing this useful component! While integrating it into my project, I noticed that the OTA BLE Update Service in your implementation uses the following UUID:

00008018-0000-1000-8000-00805f9b34fb

From my understanding, this UUID falls within the Bluetooth SIG (Special Interest Group) 16-bit UUID range (0x8018), which is reserved for official Bluetooth services and characteristics. As per the Bluetooth SIG guidelines, custom services should not use UUIDs in this reserved range to avoid conflicts with standard services.

Potential Issues

  1. The Bluetooth SIG might assign this UUID to a standardized service in the future, causing conflicts.
  2. Other developers might mistakenly assume this is a standardized service.
  3. It may not comply with best practices for Bluetooth LE development.

Suggested Actions

  1. Could you clarify if 0x8018 is intentionally used as part of a Bluetooth SIG-assigned service?
  2. If it’s not officially assigned by the SIG, I suggest updating the UUID to a custom 128-bit UUID that does not conflict with reserved SIG ranges.

This would help avoid potential compatibility issues with other Bluetooth devices that rely on the standard UUIDs defined by the SIG.

Please let me know if you need further details or assistance. Thanks again for your hard work!

gb88 commented 4 days ago

Hi, thanks for the contribution, you are right the 16-bit UUID falls under the reserved range and in the future could be assigned to some others service, when i started the project i just used the UUID that Espressif use for the ble ota component, i don't know if they taked care about this aspect. Anyway to avoid potential conflicts the best way will be to use a custom service. Most of the work is to keep the webapp compatible with the old library to allow the update.