Custom Lightweight UUID Exchange Schema (CLUES!)
No Additional ItemsThe core information which must be in every element of the base array
Must include UUID in either of the following formats
UUID16 as hex_str.
Must be at least 4 characters long
Must be at most 4 characters long
UUID32 as hex_str.
Must be at least 8 characters long
Must be at most 8 characters long
UUID128 as big-endian hex_str. Can be encoded with dashes or without, but it must be exactly 32 (without dashes) or 36 (with dashes) hexadecimal characters long.
UUID128 as big-endian hex_str without dashes.
UUID128 as big-endian hex_str with dashes.
Name of company associated with this UUID.
This should be the name of the UUID without including the company name, or the words 'Service' or 'Characteristic', unless the name explicitly includes those designators as indicated by abbreviations. E.g. in 'Nordic Status Message Service (NSMS)' it would be acceptable to include both the company name and the word Service. If the name is unknown, use 'Unknown' with that capitalization.
Freeform description of what the high level purpose of this UUID is used for by the given company. E.g. "('Legacy'/insecure) DFU: Control Point" or "UART: Receive (RX)". Leave out the company name so that it is not duplicative if a user of the JSON file interpolates with the "company" string before this string. But include model information if the UUID is known to be model-specific. E.g. if the entry was describing UUID adab6552-6e7d-4601-bda2-bffaa68956ba it should be mentioned that this is used for Fitbit One devices (per https://darkmentor.com/bt.html#It%20Was%20Harder%20to%20Sniff%20Bluetooth%20Through%20My%20Mask%20During%20the%20Pandemic...)
How is this UUID used? E.g. GATT Service/Characteristic? Beacons? SDP? (More types can be added if they are found to be needed for being more descriptive of other protocols and profiles.)
No Additional ItemsHow is this UUID used? E.g. GATT Service/Characteristic? Beacons? SDP? (More types can be added if they are found to be needed for being more descriptive of other protocols and profiles.)
Evidence for the UUID's company/usage, which can be one or more of URL, description, and/or submitter.
This optional field is just for GATT type UUIDs, to nest Characteristic UUIDs under parent Service UUIDs, to make it easier to keep files sorted, so that they're more human-readable by having associated UUIDs in close proximity to each other.
Same definition as UUIDWhere, if anywhere, this UUID appears in advertisement channel traffice (ADV_IND, ADV_NONCONN_IND, SCAN_RSP, etc.) E.g. a GATT Service UUID may or may not appear in advertisements. If it does not, this field should not be present.
No Additional ItemsWhere, if anywhere, this UUID appears in advertisement channel traffice (ADV_IND, ADV_NONCONN_IND, SCAN_RSP, etc.) E.g. a GATT Service UUID may or may not appear in advertisements. If it does not, this field should not be present.
What type of AdvData field this UUID appeared in, if any. E.g. 0x02 = "Incomplete List of 16-bit Service or Service Class UUIDs", 0x14 = "List of 16-bit Service Solicitation UUIDs", etc. Note: numeric order corresponds to string ordering in advdatatype_str.
No Additional ItemsWhat type of AdvData field this UUID appeared in, if any. E.g. 0x02 = "Incomplete List of 16-bit Service or Service Class UUIDs", 0x14 = "List of 16-bit Service Solicitation UUIDs", etc. Note: numeric order corresponds to string ordering in advdatatype_str.
What type of AdvData field this UUID appeared in, if any. E.g. 0x07 for 16-bit UUIDs, 0x16 for 128-bit UUIDs, etc.
No Additional ItemsWhat type of AdvData field this UUID appeared in, if any. E.g. 0x07 for 16-bit UUIDs, 0x16 for 128-bit UUIDs, etc.
This UUID is stored in a format where the character 'X' is a wildcard for the regular expression '[a-fA-F0-9]'. This allows the regex to still conform to the length sanity checks required for UUID16/32/128s in this schema. Users of an entry where this is true must replace the 'X' character with with '[a-fA-F0-9]' before using the UUID as a regex within their application. E.g. the common UUID pattern used by many Fitbit devices (described in https://darkmentor.com/bt.html#It%20Was%20Harder%20to%20Sniff%20Bluetooth%20Through%20My%20Mask%20During%20the%20Pandemic...) could be given as adabXXXX-6e7d-4601-bda2-bffaa68956ba, if one wanted to find new probably-Fitbit devices, even if the exact model was not known.
Information about Android packages where this UUID has been observed.
No Additional ItemsInformation about an Android package where this UUID has been found. This can help indicate which company, product, or product type this UUID is associated with.
Unique identifier for the Android package (like "com.firewalla.chancellor")
Version code of the Android package (like "1540").
Version name of the Android package (like "1.56.81").
Optional path to the Android package. (Useful for local repository lookup.)
Optional description of the Android package. (Useful for describing data that wasn't extracted automatically, or possibly automatically extracting android app description from store listing.)