Type: array

Custom Lightweight UUID Exchange Schema (CLUES!)

No Additional Items

Each item of this array must be:


Type: object

The core information which must be in every element of the base array

Type: object

Must include UUID in either of the following formats

Type: string

UUID16 as hex_str.

Must be at least 4 characters long

Must be at most 4 characters long

Type: string

UUID32 as hex_str.

Must be at least 8 characters long

Must be at most 8 characters long

Type: string

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.

Type: object

UUID128 as big-endian hex_str without dashes.

Type: object

UUID128 as big-endian hex_str with dashes.

Type: string

Name of company associated with this UUID.

Type: string

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.

Type: string

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...)

Type: array

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 Items

Each item of this array must be:

Type: enum (of string)

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.)

Must be one of:

  • "GATT Service"
  • "GATT Characteristic"
  • "iBeacon"
  • "Eddystone"
  • "SDP Service"
  • "Advertisement"

Type: object

Evidence for the UUID's company/usage, which can be one or more of URL, description, and/or submitter.

Type: object

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 UUID

Type: array

Where, 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 Items

Each item of this array must be:

Type: enum (of string)

Where, 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.

Must be one of:

  • "EIR"
  • "ADV_IND"
  • "ADV_DIRECT_IND"
  • "ADV_SCAN_IND"
  • "ADV_NONCONN_IND"
  • "SCAN_RSP"
  • "AUX_ADV_IND"
  • "AUX_SCAN_RSP"

Type: array

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 Items

Each item of this array must be:

Type: enum (of integer)

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.

Must be one of:

  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 20
  • 31
  • 21
  • 22
  • 32
  • 33

Type: array

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 Items

Each item of this array must be:

Type: enum (of string)

What type of AdvData field this UUID appeared in, if any. E.g. 0x07 for 16-bit UUIDs, 0x16 for 128-bit UUIDs, etc.

Must be one of:

  • "Incomplete List of 16-bit Service or Service Class UUIDs"
  • "Complete List of 16-bit Service or Service Class UUIDs"
  • "Incomplete List of 32-bit Service or Service Class UUIDs"
  • "Complete List of 32-bit Service or Service Class UUIDs"
  • "Incomplete List of 128-bit Service or Service Class UUIDs"
  • "Complete List of 128-bit Service or Service Class UUIDs"
  • "List of 16-bit Service Solicitation UUIDs"
  • "List of 32-bit Service Solicitation UUIDs"
  • "List of 128-bit Service Solicitation UUIDs"
  • "Service Data - 16-bit UUID"
  • "Service Data - 32-bit UUID"
  • "Service Data - 128-bit UUID"

Type: enum (of boolean) Default: true

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.

Must be one of:

  • true

Type: array

Information about Android packages where this UUID has been observed.

No Additional Items

Each item of this array must be:

Type: object

Information 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.

Type: string

Unique identifier for the Android package (like "com.firewalla.chancellor")

Type: integer

Version code of the Android package (like "1540").

Type: string

Version name of the Android package (like "1.56.81").

Type: string

Optional path to the Android package. (Useful for local repository lookup.)

Type: string

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.)