blob: 397f81f0f0eed5ee7ceb7269f6f6b38bb3b52ec0 [file] [log] [blame] [view]
This directory contains command-line tools for Bluetooth development.
## bt-hci-tool
`bt-hci-tool` uses the [host HCI library](../../../drivers/bluetooth/lib/hci) to send
HCI commands directly to a bt-hci device (`/dev/class/bt-hci/000` by default)
Currently all bt-hci devices are automatically claimed by the bt-host driver. To
use bt-hci-tool, disable the bt-host driver by passing `driver.bthost.disable`
to the kernel command line:
On host machine:
```
$ fx pave -- driver.bthost.disable
```
On Fuchsia:
```
$ bt-hci-tool reset
Sent HCI_Reset (id=1)
Command Complete - status 0x00 (id=1)
$ bt-hci-tool read-bdaddr
Sent HCI_Read_BDADDR (id=1)
Command Complete - status 0x00 (id=1)
BD_ADDR: 00:1A:7D:DA:71:0A
```
## bt-snoop-cli
`bt-snoop-cli` is a command line client of the `bt-snoop` service. `bt-snoop` monitors snoop
channels for all bluetooth adapters on the system.
`bt-snoop-cli` subscribes to snoop logs for HCI devices and writes traffic to a file (stdout by
default) supporting the pcap format. The captured packets can be visualized using any protocol
analyzer that supports pcap (e.g. Wireshark).
This will fetch the current buffer of packets for all devices under `/dev/class/bt-hci/`,
output the traffic to stdout, then exit:
```
$ bt-snoop-cli --dump --format pretty
```
To initiate a live capture using Wireshark (on host):
```
$ fx shell bt-snoop-cli | wireshark -k -i -
```
To specify a custom HCI device ("005") and output location (on device):
```
$ bt-snoop-cli --output /my/custom/path --device 005
```
Logs can then be copied from the Fuchsia device and given to any tool that can
parse BTSnoop (e.g. Wireshark):
```
$ fx cp --to-host :/tmp/btsnoop.log ./
$ wireshark ./btsnoop.log
```
See the tool's help for complete usage:
```
$ bt-snoop-cli --help
```
## bt-cli
`bt-cli` is a command-line interface for the Generic Access Profile (using the
[control](../../../public/fidl/fuchsia.bluetooth.control/control.fidl) FIDL interfaces).
This can be used to query available Bluetooth controllers, to perform dual-mode
discovery and connection procedures, and to respond to pairing requests.
The `bluetooth` process does not need to be run directly before using
bt-cli, as it will be launched by sysmgr if necessary.
```
$ bt-cli
bt> list-adapters
Adapter:
Identifier: 35700c9b-6748-4676-bd2c-1d863fd89210
Address: 28:C6:3F:2F:D4:14
Technology: DualMode
Local Name: fuchsia fuchsia-unset-device-name
Discoverable: false
Discovering: false
Local UUIDs: None
```
## Other Tools
This package contains additional tools. Refer to each tool's own README for
more information.