Example 7-18. Using hcitool to get features
root@savagewood:/# hcitool info 00:9E:C8:93:48:C9
Requesting information ...
BD Address: 00:9E:C8:93:48:C9
OUI Company: Xiaomi Communications Co Ltd
(
00-9E-C8
)
Device Name: MIBOX3
LMP Version: 4.1
(
0x7
)
LMP Subversion: 0x6119
Manufacturer: Broadcom Corporation
(
15
)
Features page 0: 0xbf 0xfe 0xcf 0xfe 0xdb 0xff 0x7b 0x87
<3-slot packets> <5-slot packets>
2
Mbps>
3
Mbps>
<3-slot EDR ACL>
<5-slot EDR ACL>
2
Mbps>
3
Mbps> <3-slot EDR eSCO>
Features page 1: 0x0f 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Features page 2: 0x7f 0x0b 0x00 0x00 0x00 0x00 0x00 0x00
What we know from this output is that the MiBox supports synchronous connection-
oriented (SCO) communication. Included in this is the ability to use one, two, and
three slots for communication (HV1, HV2, and HV3). We also know that it supports
Enhanced Data Rate (EDR) for faster transmission speeds. This would be necessary
for any audio streaming that would need more bandwidth than transmitting some‐
thing like a single scan code maybe a few times a second, as would be the case for
keyboards. We can use the information we’ve acquired here to make inferences, but
it’s still helpful to know what profiles the device supports.
To get the profiles, we’re going to turn to using the service discovery protocol (SDP).
We’ll use
sdptool
to get the list of profiles that are supported. With a device as com‐
plex as a MiBox, we’re likely to get several profiles back. Keep in mind that three
dozen profiles are defined at the moment by Bluetooth.
Example 7-19
shows the use
of
sdptool
to browse the MAC address we acquired earlier. You’ll see only a subset of
the entire output here, just to give you a sense of what is available.
Example 7-19. sdptool providing a list of profiles
root@savagewood:/# sdptool browse 00:9E:C8:93:48:C9
Browsing 00:9E:C8:93:48:C9 ...
Service RecHandle: 0x10000