2.2.2.2.3 Bluetooth: Advertising Beacon
Bluetooth devices advertise over a beacon. This is the basic beacon structure:
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Length |
0xFF |
Microsoft ID |
|||||||||||||||||||||||||||||
Beacon Data (24 bytes) |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
... |
Length (1 byte): Set to 30 (0x1E).
0xFF (1 byte): Fixed value 0xFF.
Microsoft ID (2 bytes): Set to 0006
Beacon Data (24 bytes): The beacon data section is further broken down. Note that the Scenario and Subtype Specific Data section requirements will differ based on the Scenario and Subtype.
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Scenario_Type |
Version_and_Device_Type |
Version_and_Flags |
Flags_and_Device_Status |
||||||||||||||||||||||||||||
Salt |
|||||||||||||||||||||||||||||||
Device_Hash (19 bytes) |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
... |
Scenario_Type (1 byte): Set to (1) Bluetooth scenario.
Version_and_Device_Type (1 byte): The high three bits are set to 001 for the version number; the lower 5 bits are set to Device Type SKU values as follows, as defined in section 2.2.2.2.2.
-
Value
Meaning
1
Xbox One
6
Apple iPhone
7
Apple iPad
8
Android device
9
Windows 10 Desktop
11
Windows 10 Phone
12
Linux device
13
Windows IoT
14
Surface Hub
15
Windows laptop
16
Windows tablet
Version_and_Flags (1 byte): The high 3 bits are set to 001; the lower 5 bits are set to 00000 or 00001. Setting the lower 5 bits to 00001 indicates that the NearBy share setting is everyone rather than only my devices.
Flags_and_Device_Status (1 byte): The field has the following structure.
-
0
1
2
3
4
5
6
7
A
B
C
D
-
A (2 bits): Unused.
-
B - Bluetooth_Address_As_Device_ID (1 bit): When set, indicates that the Bluetooth address can be used as the device ID.
-
C (1 bit): Unused.
-
D - ExtendedDeviceStatus (4 bits): One of the values in the following table. Values may be ORed.
-
Value
Meaning
None
0x00None.
RemoteSessionsHosted
0x01Hosted by remote session.
RemoteSessionsNotHosted
0x02Indicates the device does not have session hosting status available.<5>
NearShareAuthPolicySameUser
0x04Indicates the device supports NearShare if the user is the same for the other device.
NearShareAuthPolicyPermissive
0x08Indicates the device supports NearShare.<6>
-
Salt (4 bytes): Four random bytes.
Device_Hash (19 bytes): SHA256 Hash of Salt plus Device Thumbprint.