There are various protocols used in
Bluetooth. One of them is the HCI(Host/Controller interface) protocol, which is used in the communication between the host stack(BlueZ or Affix) and the controller(Bluetooth chip). Today using the "scanner" program from the
previous article and the "
hcidump" tool we will see how the HCI protocol packets look like. The "
hcidump" tool dumps HCI data coming from and going to a Bluetooth controller (Ubuntu users can install it by "
sudo apt-get install bluez-hcidump"). To view dumped files we need the
wireshark program also (Ubuntu users:
sudo apt-get install wireshark).
Run
hcidump in background mode and then run the "scanner"
$ sudo hcidump -i hci0 -w dump &
$ ./scanner
By the -i option Bluetooth device is specified and by the -w option the output file is specified.
When "scanner" finish, kill the background hcidump and then open "dump" file with
wireshark program:
|
WireShark | |
In the screenshot you can see two type of HCI packets: HCI_CMD -- computer sends commands to the controller and HCI_EVT -- the controller sends the result. The info column of HCI_CMD packets shows the command sent within a packed. Two type of commands shown in screenshot: "Inquiry" (op code: 0x0401) and "Remote Name Request" (op code: 0x0419). They are the commands sent when the "hci_inquiry" and the "hci_read_remote_name" functions where called(see the source code of "scanner").
The selected packet is a description of the device find by the scanner (as we can see from the fields "BD_ADDR" and "Class of Device" it is a Nokia mobile phone).
why add infterface bluetooth to wireshark linux ubuntu
ReplyDeletei cannot find interface bluetooth
help me