---
name: "bluetoothctl-mgmt"
section: "1"
platform: "linux"
package: "bluez-utils"
version: "5.87-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/bluetoothctl-mgmt"
---

# bluetoothctl-mgmt(1)

Management Submenu

## Name

bluetoothctl-mgmt - Management Submenu

## SYNOPSIS

**bluetoothctl** \[--options\] \[mgmt.commands\]

**Note:**

This submenu communicates directly with the kernel via the Bluetooth Management socket (mgmt), bypassing the BlueZ D-Bus API. Commands use the Bluetooth Management API defined in the kernel documentation.

## Mgmt Commands

### select

Select a different index

- **Usage**

  **\> select \<index\>**

- **\<index\>**

  Controller index number (0-based) to select

- **Example Select controller index 0 (hci0)**

  ```
  > select 0
  ```

- **Example Select controller index 1 (hci1)**

  ```
  > select 1
  ```

- **Example Select controller index 2 (hci2)**

  ```
  > select 2
  ```

### revision

Get the MGMT Revision

- **Usage**

  **\> revision**

- **Example Display MGMT API revision information**

  ```
  > revision
  ```

### commands

List supported commands

- **Usage**

  **\> commands**

- **Example List all supported management commands**

  ```
  > commands
  ```

### config

Show configuration info

- **Usage**

  **\> config**

- **Example Show current controller configuration**

  ```
  > config
  ```

### info

Show controller info

- **Usage**

  **\> info**

- **Example Show detailed controller information**

  ```
  > info
  ```

### extinfo

Show extended controller info

- **Usage**

  **\> extinfo**

- **Example Show extended controller information**

  ```
  > extinfo
  ```

### auto-power

Power all available features

- **Usage**

  **\> auto-power**

- **Example Automatically power on all available controller features**

  ```
  > auto-power
  ```

### power

Toggle powered state

- **Usage**

  **\> power \<on/off\>**

- **\<on/off\>**

  Power state - "on" to enable controller, "off" to disable

- **Example Power on the controller**

  ```
  > power on
  ```

- **Example Power off the controller**

  ```
  > power off
  ```

### discov

Toggle discoverable state

- **Usage**

  **\> discov \<yes/no/limited\> \[timeout\]**

- **\<yes/no/limited\>**

  Discoverable mode - "yes" for general, "no" to disable, "limited" for limited discoverable

- **\[timeout\]**

  Optional timeout in seconds for discoverable mode duration

- **Example Make controller discoverable indefinitely**

  ```
  > discov yes
  ```

- **Example Make controller non-discoverable**

  ```
  > discov no
  ```

- **Example Enable limited discoverable mode**

  ```
  > discov limited
  ```

- **Example Make discoverable for 30 seconds**

  ```
  > discov yes 30
  ```

- **Example Make discoverable for 2 minutes**

  ```
  > discov yes 120
  ```

- **Example Make discoverable for 5 minutes**

  ```
  > discov yes 300
  ```

- **Example Limited discoverable for 60 seconds**

  ```
  > discov limited 60
  ```

### connectable

Toggle connectable state

- **Usage**

  **\> connectable \<on/off\>**

- **\<on/off\>**

  Connectable state - "on" to allow connections, "off" to reject

- **Example Make controller connectable**

  ```
  > connectable on
  ```

- **Example Make controller non-connectable**

  ```
  > connectable off
  ```

### fast-conn

Toggle fast connectable state

- **Usage**

  **\> fast-conn \<on/off\>**

- **\<on/off\>**

  Fast connectable state - "on" to enable fast connection mode, "off" to disable

- **Example Enable fast connectable mode**

  ```
  > fast-conn on
  ```

- **Example Disable fast connectable mode**

  ```
  > fast-conn off
  ```

### bondable

Toggle bondable state

- **Usage**

  **\> bondable \<on/off\>**

- **\<on/off\>**

  Bondable state - "on" to enable bonding capability, "off" to disable

- **Example Enable bonding capability**

  ```
  > bondable on
  ```

- **Example Disable bonding capability**

  ```
  > bondable off
  ```

### pairable

Toggle bondable state

- **Usage**

  **\> pairable \<on/off\>**

- **\<on/off\>**

  Pairable state - "on" to enable pairing capability, "off" to disable

- **Example Enable pairing capability**

  ```
  > pairable on
  ```

- **Example Disable pairing capability**

  ```
  > pairable off
  ```

### linksec

Toggle link level security

- **Usage**

  **\> linksec \<on/off\>**

- **\<on/off\>**

  Link level security - "on" to enable, "off" to disable

- **Example Enable link level security**

  ```
  > linksec on
  ```

- **Example Disable link level security**

  ```
  > linksec off
  ```

### ssp

Toggle SSP mode

- **Usage**

  **\> ssp \<on/off\>**

- **\<on/off\>**

  Secure Simple Pairing mode - "on" to enable SSP, "off" to disable

- **Example Enable Secure Simple Pairing**

  ```
  > ssp on
  ```

- **Example Disable Secure Simple Pairing**

  ```
  > ssp off
  ```

### sc

Toggle SC support

- **Usage**

  **\> sc \<on/off/only\>**

- **\<on/off/only\>**

  Secure Connections support - "on" to enable, "off" to disable, "only" for exclusive use

- **Example Enable Secure Connections support**

  ```
  > sc on
  ```

- **Example Disable Secure Connections support**

  ```
  > sc off
  ```

- **Example Use Secure Connections exclusively**

  ```
  > sc only
  ```

### hs

Toggle HS support

- **Usage**

  **\> hs \<on/off\>**

- **\<on/off\>**

  High Speed support - "on" to enable 802.11 High Speed, "off" to disable

- **Example Enable High Speed support**

  ```
  > hs on
  ```

- **Example Disable High Speed support**

  ```
  > hs off
  ```

### le

Toggle LE support

- **Usage**

  **\> le \<on/off\>**

- **\<on/off\>**

  Low Energy support - "on" to enable LE functionality, "off" to disable

- **Example Enable Low Energy support**

  ```
  > le on
  ```

- **Example Disable Low Energy support**

  ```
  > le off
  ```

### advertising

Toggle LE advertising

- **Usage**

  **\> advertising \<on/off\>**

- **\<on/off\>**

  LE advertising state - "on" to enable advertising, "off" to disable

- **Example Enable LE advertising**

  ```
  > advertising on
  ```

- **Example Disable LE advertising**

  ```
  > advertising off
  ```

### bredr

Toggle BR/EDR support

- **Usage**

  **\> bredr \<on/off\>**

- **\<on/off\>**

  BR/EDR support - "on" to enable Classic Bluetooth, "off" to disable

- **Example Enable BR/EDR (Classic Bluetooth) support**

  ```
  > bredr on
  ```

- **Example Disable BR/EDR support**

  ```
  > bredr off
  ```

### privacy

Toggle privacy support

- **Usage**

  **\> privacy \<on/off\> \[irk\]**

- **\<on/off\>**

  Privacy support - "on" to enable privacy features, "off" to disable

- **\[irk\]**

  Optional 32-character hexadecimal Identity Resolving Key

- **Example Enable privacy with auto-generated IRK**

  ```
  > privacy on
  ```

- **Example Disable privacy**

  ```
  > privacy off
  ```

- **Example Enable privacy with specific IRK**

  ```
  > privacy on 0123456789abcdef0123456789abcdef
  ```

- **Example Enable privacy with different IRK**

  ```
  > privacy on 1234567890abcdef1234567890abcdef
  ```

### class

Set device major/minor class

- **Usage**

  **\> class \<major\> \<minor\>**

- **\<major\>**

  Major device class code (hexadecimal)

- **\<minor\>**

  Minor device class code (hexadecimal)

- **Example Set class to Audio/Video - Wearable Headset**

  ```
  > class 0x04 0x01
  ```

- **Example Set class to Audio/Video - Hands-free**

  ```
  > class 0x04 0x02
  ```

- **Example Set class to Audio/Video - Headphones**

  ```
  > class 0x04 0x06
  ```

- **Example Set class to Audio/Video - VCR**

  ```
  > class 0x04 0x0B
  ```

- **Example Set class to Computer - Desktop workstation**

  ```
  > class 0x01 0x01
  ```

- **Example Set class to Computer - Server**

  ```
  > class 0x01 0x02
  ```

- **Example Set class to Computer - Laptop**

  ```
  > class 0x01 0x03
  ```

- **Example Set class to Computer - Handheld PC/PDA**

  ```
  > class 0x01 0x04
  ```

- **Example Set class to Phone - Cellular**

  ```
  > class 0x02 0x01
  ```

- **Example Set class to Phone - Cordless**

  ```
  > class 0x02 0x02
  ```

- **Example Set class to Phone - Smart phone**

  ```
  > class 0x02 0x03
  ```

### disconnect

Disconnect device

- **Usage**

  **\> disconnect \[-t type\] \<remote address\>**

- **\[-t type\]**

  Optional address type (public, random, le\_public, le\_random)

- **\<remote address\>**

  Bluetooth address of device to disconnect

- **Example Disconnect device using public address**

  ```
  > disconnect 00:11:22:33:44:55
  ```

- **Example Disconnect another device**

  ```
  > disconnect AA:BB:CC:DD:EE:FF
  ```

- **Example Disconnect device with public address type**

  ```
  > disconnect -t public 00:11:22:33:44:55
  ```

- **Example Disconnect device with random address type**

  ```
  > disconnect -t random AA:BB:CC:DD:EE:FF
  ```

- **Example Disconnect LE device with public address**

  ```
  > disconnect -t le_public 11:22:33:44:55:66
  ```

- **Example Disconnect LE device with random address**

  ```
  > disconnect -t le_random CC:DD:EE:FF:00:11
  ```

### con

List connections

- **Usage**

  **\> con**

- **Example List all active connections**

  ```
  > con
  ```

### find

Discover nearby devices

- **Usage**

  **\> find \[-l\|-b\] \[-L\]**

- **\[-l\|-b\]**

  Discovery type - "-l" for LE only, "-b" for BR/EDR only (default: both)

- **\[-L\]**

  Limited discovery mode flag

- **Example Discover both LE and BR/EDR devices**

  ```
  > find
  ```

- **Example Discover LE devices only**

  ```
  > find -l
  ```

- **Example Discover BR/EDR devices only**

  ```
  > find -b
  ```

- **Example Discover devices in limited mode**

  ```
  > find -L
  ```

- **Example Discover LE devices in limited mode**

  ```
  > find -l -L
  ```

- **Example Discover BR/EDR devices in limited mode**

  ```
  > find -b -L
  ```

### find-service

Discover nearby service

- **Usage**

  **\> find-service \[-u UUID\] \[-r RSSI\_Threshold\] \[-l\|-b\]**

- **\[-u UUID\]**

  Service UUID to search for (16-bit, 32-bit, or 128-bit)

- **\[-r RSSI\_Threshold\]**

  Minimum RSSI value in dBm for device filtering

- **\[-l\|-b\]**

  Discovery type - "-l" for LE only, "-b" for BR/EDR only

- **Example Find devices with Generic Access service**

  ```
  > find-service -u 0x1800
  ```

- **Example Find devices with Battery Service**

  ```
  > find-service -u 0x180F
  ```

- **Example Find devices with custom service**

  ```
  > find-service -u 12345678-1234-5678-9abc-123456789abc
  ```

- **Example Find devices with RSSI ≥ -60 dBm**

  ```
  > find-service -r -60
  ```

- **Example Find devices with RSSI ≥ -80 dBm**

  ```
  > find-service -r -80
  ```

- **Example Find Battery Service devices with RSSI ≥ -70 dBm**

  ```
  > find-service -u 0x180F -r -70
  ```

- **Example Find Generic Access on LE devices with strong signal**

  ```
  > find-service -u 0x1800 -r -50 -l
  ```

- **Example Find Serial Port Profile on BR/EDR devices**

  ```
  > find-service -u 0x1101 -b
  ```

- **Example Find Battery Service on LE devices**

  ```
  > find-service -u 0x180F -l
  ```

### stop-find

Stop discovery

- **Usage**

  **\> stop-find \[-l\|-b\]**

- **\[-l\|-b\]**

  Discovery type to stop - "-l" for LE only, "-b" for BR/EDR only (default: all)

- **Example Stop all discovery**

  ```
  > stop-find
  ```

- **Example Stop LE discovery only**

  ```
  > stop-find -l
  ```

- **Example Stop BR/EDR discovery only**

  ```
  > stop-find -b
  ```

### name

Set local name

- **Usage**

  **\> name \<name\> \[shortname\]**

- **\<name\>**

  Complete local name for the controller

- **\[shortname\]**

  Optional shortened local name

- **Example Set complete local name**

  ```
  > name "My Bluetooth Device"
  ```

- **Example Set name without spaces**

  ```
  > name MyComputer
  ```

- **Example Set name with hyphens**

  ```
  > name "Home-Office-PC"
  ```

- **Example Set both complete and shortened names**

  ```
  > name "My Long Device Name" MyDevice
  ```

- **Example Set descriptive and short names**

  ```
  > name "Professional Workstation" ProWork
  ```

- **Example Set audio device names**

  ```
  > name "Bluetooth Audio Headset" BT-Audio
  ```

### pair

Pair with a remote device

- **Usage**

  **\> pair \[-c cap\] \[-t type\] \<remote address\>**

- **\[-c cap\]**

  IO capability (DisplayOnly, DisplayYesNo, KeyboardOnly, NoInputNoOutput, KeyboardDisplay)

- **\[-t type\]**

  Address type (public, random, le\_public, le\_random)

- **\<remote address\>**

  Bluetooth address of device to pair with

- **Example Pair with device using default settings**

  ```
  > pair 00:11:22:33:44:55
  ```

- **Example Pair with another device**

  ```
  > pair AA:BB:CC:DD:EE:FF
  ```

- **Example Pair with display-only IO capability**

  ```
  > pair -c DisplayOnly 00:11:22:33:44:55
  ```

- **Example Pair with display and yes/no capability**

  ```
  > pair -c DisplayYesNo AA:BB:CC:DD:EE:FF
  ```

- **Example Pair with keyboard-only capability**

  ```
  > pair -c KeyboardOnly 11:22:33:44:55:66
  ```

- **Example Pair with no I/O capability**

  ```
  > pair -c NoInputNoOutput CC:DD:EE:FF:00:11
  ```

- **Example Pair with keyboard and display capability**

  ```
  > pair -c KeyboardDisplay 22:33:44:55:66:77
  ```

- **Example Pair with public address device**

  ```
  > pair -t public 00:11:22:33:44:55
  ```

- **Example Pair with random address device**

  ```
  > pair -t random AA:BB:CC:DD:EE:FF
  ```

- **Example Pair with LE public address device**

  ```
  > pair -t le_public 11:22:33:44:55:66
  ```

- **Example Pair with LE random address device**

  ```
  > pair -t le_random CC:DD:EE:FF:00:11
  ```

- **Example Pair LE device with keyboard/display capability**

  ```
  > pair -c KeyboardDisplay -t le_public 00:11:22:33:44:55
  ```

- **Example Pair random address device with display/yes-no capability**

  ```
  > pair -c DisplayYesNo -t random AA:BB:CC:DD:EE:FF
  ```

### cancelpair

Cancel pairing

- **Usage**

  **\> cancelpair \[-t type\] \<remote address\>**

- **\[-t type\]**

  Address type (public, random, le\_public, le\_random)

- **\<remote address\>**

  Bluetooth address of device to cancel pairing with

- **Example Cancel ongoing pairing with device**

  ```
  > cancelpair 00:11:22:33:44:55
  ```

- **Example Cancel pairing with another device**

  ```
  > cancelpair AA:BB:CC:DD:EE:FF
  ```

- **Example Cancel pairing with public address device**

  ```
  > cancelpair -t public 00:11:22:33:44:55
  ```

- **Example Cancel pairing with LE random address device**

  ```
  > cancelpair -t le_random AA:BB:CC:DD:EE:FF
  ```

### unpair

Unpair device

- **Usage**

  **\> unpair \[-t type\] \<remote address\>**

- **\[-t type\]**

  Address type (public, random, le\_public, le\_random)

- **\<remote address\>**

  Bluetooth address of device to unpair

- **Example Remove pairing with device**

  ```
  > unpair 00:11:22:33:44:55
  ```

- **Example Remove pairing with another device**

  ```
  > unpair AA:BB:CC:DD:EE:FF
  ```

- **Example Unpair public address device**

  ```
  > unpair -t public 00:11:22:33:44:55
  ```

- **Example Unpair LE public address device**

  ```
  > unpair -t le_public 11:22:33:44:55:66
  ```

- **Example Unpair LE random address device**

  ```
  > unpair -t le_random CC:DD:EE:FF:00:11
  ```

### keys

Load Link Keys

- **Usage**

  **\> keys**

- **Example Load stored link keys**

  ```
  > keys
  ```

### ltks

Load Long Term Keys

- **Usage**

  **\> ltks**

- **Example Load stored LE long term keys**

  ```
  > ltks
  ```

### irks

Load Identity Resolving Keys

- **Usage**

  **\> irks \[--local index\] \[--file file path\]**

- **\[--local index\]**

  Local controller index to use

- **\[--file file path\]**

  Custom IRK configuration file path

- **Example Load IRKs with default local index and file**

  ```
  > irks
  ```

- **Example Load IRKs for controller index 0**

  ```
  > irks --local 0
  ```

- **Example Load IRKs for controller index 1**

  ```
  > irks --local 1
  ```

- **Example Load IRKs from custom configuration file**

  ```
  > irks --file /etc/bluetooth/irks.conf
  ```

- **Example Load IRKs from user file**

  ```
  > irks --file /home/user/bluetooth_irks.txt
  ```

- **Example Load IRKs for hci0 from specific file**

  ```
  > irks --local 0 --file /etc/bluetooth/hci0_irks.conf
  ```

### block

Block Device

- **Usage**

  **\> block \[-t type\] \<remote address\>**

- **\[-t type\]**

  Address type (public, random, le\_public, le\_random)

- **\<remote address\>**

  Bluetooth address of device to block

- **Example Block device using default address type**

  ```
  > block 00:11:22:33:44:55
  ```

- **Example Block another device**

  ```
  > block AA:BB:CC:DD:EE:FF
  ```

- **Example Block device with public address**

  ```
  > block -t public 00:11:22:33:44:55
  ```

- **Example Block device with random address**

  ```
  > block -t random AA:BB:CC:DD:EE:FF
  ```

- **Example Block LE device with public address**

  ```
  > block -t le_public 11:22:33:44:55:66
  ```

- **Example Block LE device with random address**

  ```
  > block -t le_random CC:DD:EE:FF:00:11
  ```

### unblock

Unblock Device

- **Usage**

  **\> unblock \[-t type\] \<remote address\>**

- **\[-t type\]**

  Address type (public, random, le\_public, le\_random)

- **\<remote address\>**

  Bluetooth address of device to unblock

- **Example Unblock device using default address type**

  ```
  > unblock 00:11:22:33:44:55
  ```

- **Example Unblock another device**

  ```
  > unblock AA:BB:CC:DD:EE:FF
  ```

- **Example Unblock device with public address**

  ```
  > unblock -t public 00:11:22:33:44:55
  ```

- **Example Unblock device with random address**

  ```
  > unblock -t random AA:BB:CC:DD:EE:FF
  ```

- **Example Unblock LE device with public address**

  ```
  > unblock -t le_public 11:22:33:44:55:66
  ```

- **Example Unblock LE device with random address**

  ```
  > unblock -t le_random CC:DD:EE:FF:00:11
  ```

### add-uuid

Add UUID

- **Usage**

  **\> add-uuid \<UUID\> \<service class hint\>**

- **\<UUID\>**

  Service UUID (16-bit, 32-bit, or 128-bit format)

- **\<service class hint\>**

  Service class hint bitmask (hexadecimal)

- **Example Add Serial Port Profile with object transfer hint**

  ```
  > add-uuid 0x1101 0x100000
  ```

- **Example Add A2DP with audio hint**

  ```
  > add-uuid 0x110E 0x200000
  ```

- **Example Add HFP with audio hint**

  ```
  > add-uuid 0x111E 0x200000
  ```

- **Example Add custom service UUID with no hint**

  ```
  > add-uuid 12345678-1234-5678-9abc-123456789abc 0x000000
  ```

- **Example Add custom UUID with object transfer hint**

  ```
  > add-uuid ABCD1234-ABCD-1234-ABCD-123456789ABC 0x100000
  ```

- **Example Add Generic Access with no specific hint**

  ```
  > add-uuid 0x1800 0x000000
  ```

- **Example Add Battery Service with no hint**

  ```
  > add-uuid 0x180F 0x000000
  ```

### rm-uuid

Remove UUID

- **Usage**

  **\> rm-uuid \<UUID\>**

- **\<UUID\>**

  Service UUID to remove (16-bit, 32-bit, or 128-bit format)

- **Example Remove Serial Port Profile UUID**

  ```
  > rm-uuid 0x1101
  ```

- **Example Remove A2DP UUID**

  ```
  > rm-uuid 0x110E
  ```

- **Example Remove custom service UUID**

  ```
  > rm-uuid 12345678-1234-5678-9abc-123456789abc
  ```

### clr-uuids

Clear UUIDs

- **Usage**

  **\> clr-uuids**

- **Example Clear all registered UUIDs**

  ```
  > clr-uuids
  ```

### local-oob

Local OOB data

- **Usage**

  **\> local-oob**

- **Example Generate and display local OOB authentication data**

  ```
  > local-oob
  ```

### remote-oob

Remote OOB data

- **Usage**

  **\> remote-oob \[-t \<addr\_type\>\] \[-r \<rand192\>\] \[-h \<hash192\>\]** **\[-R \<rand256\>\] \[-H \<hash256\>\] \<addr\>**

- **\[-t \<addr\_type\>\]**

  Address type (public, random, le\_public, le\_random)

- **\[-r \<rand192\>\]**

  P-192 random value (32 hexadecimal characters)

- **\[-h \<hash192\>\]**

  P-192 hash value (32 hexadecimal characters)

- **\[-R \<rand256\>\]**

  P-256 random value (64 hexadecimal characters)

- **\[-H \<hash256\>\]**

  P-256 hash value (64 hexadecimal characters)

- **\<addr\>**

  Remote device Bluetooth address

- **Example Set remote OOB data for device (minimal)**

  ```
  > remote-oob 00:11:22:33:44:55
  ```

- **Example Set P-192 random and hash values**

  ```
  > remote-oob -r 0123456789abcdef0123456789abcdef -h fedcba9876543210fedcba9876543210 00:11:22:33:44:55
  ```

- **Example Set P-256 random and hash values**

  ```
  > remote-oob -R 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef -H fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210 AA:BB:CC:DD:EE:FF
  ```

- **Example Set OOB data for LE public address device**

  ```
  > remote-oob -t le_public 11:22:33:44:55:66
  ```

- **Example Set OOB data for LE random address device**

  ```
  > remote-oob -t le_random CC:DD:EE:FF:00:11
  ```

- **Example Set complete OOB data with both P-192 and P-256 values**

  ```
  > remote-oob -t public -r 0123456789abcdef0123456789abcdef -h fedcba9876543210fedcba9876543210 -R 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef -H fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210 00:11:22:33:44:55
  ```

### did

Set Device ID

- **Usage**

  **\> did \<source\>:\<vendor\>:\<product\>:\<version\>**

- **\<source\>:\<vendor\>:\<product\>:\<version\>**

  Device ID in format source:vendor:product:version (all hexadecimal)

- **Example Set USB source with Linux Foundation vendor ID**

  ```
  > did 0x0002:0x1D6B:0x0001:0x0100
  ```

- **Example Set USB device with Cypress vendor ID**

  ```
  > did 0x0002:0x04B4:0x1234:0x0200
  ```

- **Example Set Bluetooth SIG source with Broadcom vendor**

  ```
  > did 0x0001:0x000F:0x0001:0x0100
  ```

- **Example Set Bluetooth SIG source with Apple vendor**

  ```
  > did 0x0001:0x004C:0x0001:0x0100
  ```

- **Example Set custom USB device ID**

  ```
  > did 0x0002:0xFFFF:0x1234:0x5678
  ```

- **Example Set Qualcomm Bluetooth device**

  ```
  > did 0x0001:0x05F1:0xABCD:0x0001
  ```

### static-addr

Set static address

- **Usage**

  **\> static-addr \<address\>**

- **\<address\>**

  Static random Bluetooth address (must have bits 47-46 set to 11)

- **Example Set static random address (bit 47=1, bit 46=1)**

  ```
  > static-addr C0:00:00:00:00:01
  ```

- **Example Set another static random address**

  ```
  > static-addr D0:11:22:33:44:55
  ```

- **Example Set different static address**

  ```
  > static-addr E0:AA:BB:CC:DD:EE
  ```

### public-addr

Set public address

- **Usage**

  **\> public-addr \<address\>**

- **\<address\>**

  Public Bluetooth address to set for the controller

- **Example Set public Bluetooth address**

  ```
  > public-addr 00:11:22:33:44:55
  ```

- **Example Set different public address**

  ```
  > public-addr AA:BB:CC:DD:EE:FF
  ```

- **Example Set custom public address**

  ```
  > public-addr 12:34:56:78:9A:BC
  ```

### ext-config

External configuration

- **Usage**

  **\> ext-config \<on/off\>**

- **\<on/off\>**

  External configuration - "on" to enable external config, "off" to disable

- **Example Enable external configuration**

  ```
  > ext-config on
  ```

- **Example Disable external configuration**

  ```
  > ext-config off
  ```

### debug-keys

Toggle debug keys

- **Usage**

  **\> debug-keys \<on/off\>**

- **\<on/off\>**

  Debug keys support - "on" to enable debug keys, "off" to disable

- **Example Enable debug key support**

  ```
  > debug-keys on
  ```

- **Example Disable debug key support**

  ```
  > debug-keys off
  ```

### conn-info

Get connection information

- **Usage**

  **\> conn-info \[-t type\] \<remote address\>**

- **\[-t type\]**

  Address type (public, random, le\_public, le\_random)

- **\<remote address\>**

  Bluetooth address of connected device

- **Example Get connection information for device**

  ```
  > conn-info 00:11:22:33:44:55
  ```

- **Example Get info for another device**

  ```
  > conn-info AA:BB:CC:DD:EE:FF
  ```

- **Example Get info for public address device**

  ```
  > conn-info -t public 00:11:22:33:44:55
  ```

- **Example Get info for LE public address device**

  ```
  > conn-info -t le_public 11:22:33:44:55:66
  ```

- **Example Get info for LE random address device**

  ```
  > conn-info -t le_random CC:DD:EE:FF:00:11
  ```

### io-cap

Set IO Capability

- **Usage**

  **\> io-cap \<cap\>**

- **\<cap\>**

  IO capability (DisplayOnly, DisplayYesNo, KeyboardOnly, NoInputNoOutput, KeyboardDisplay)

- **Example Set IO capability to display only**

  ```
  > io-cap DisplayOnly
  ```

- **Example Set IO capability to display with yes/no**

  ```
  > io-cap DisplayYesNo
  ```

- **Example Set IO capability to keyboard only**

  ```
  > io-cap KeyboardOnly
  ```

- **Example Set IO capability to no input/output**

  ```
  > io-cap NoInputNoOutput
  ```

- **Example Set IO capability to keyboard and display**

  ```
  > io-cap KeyboardDisplay
  ```

### scan-params

Set Scan Parameters

- **Usage**

  **\> scan-params \<interval\> \<window\>**

- **\<interval\>**

  Scan interval in hexadecimal (0x0004 to 0x4000, units of 0.625ms)

- **\<window\>**

  Scan window in hexadecimal (0x0004 to 0x4000, units of 0.625ms)

- **Example Set fast scan (16ms interval, 16ms window)**

  ```
  > scan-params 0x0010 0x0010
  ```

- **Example Set moderate fast scan (32ms interval, 32ms window)**

  ```
  > scan-params 0x0020 0x0020
  ```

- **Example Set balanced scan (96ms interval, 48ms window)**

  ```
  > scan-params 0x0060 0x0030
  ```

- **Example Set slow scan (256ms interval, 80ms window)**

  ```
  > scan-params 0x0100 0x0050
  ```

- **Example Set background scan (2.56s interval, 18ms window)**

  ```
  > scan-params 0x0800 0x0012
  ```

- **Example Set very slow background scan**

  ```
  > scan-params 0x1000 0x0020
  ```

### get-clock

Get Clock Information

- **Usage**

  **\> get-clock \[address\]**

- **\[address\]**

  Optional remote device Bluetooth address (omit for local clock)

- **Example Get local Bluetooth clock information**

  ```
  > get-clock
  ```

- **Example Get clock information for remote device**

  ```
  > get-clock 00:11:22:33:44:55
  ```

- **Example Get clock for another remote device**

  ```
  > get-clock AA:BB:CC:DD:EE:FF
  ```

### add-device

Add Device

- **Usage**

  **\> add-device \[-a action\] \[-t type\] \<address\>**

- **\[-a action\]**

  Device action (auto, allow, deny) - "auto" for auto-connect, "allow" for allow-only, "deny" to block

- **\[-t type\]**

  Address type (public, random, le\_public, le\_random)

- **\<address\>**

  Bluetooth address of device to add

- **Example Add device with auto-connect action and default type**

  ```
  > add-device 00:11:22:33:44:55
  ```

- **Example Add another device with defaults**

  ```
  > add-device AA:BB:CC:DD:EE:FF
  ```

- **Example Add device with auto-connect action**

  ```
  > add-device -a auto 00:11:22:33:44:55
  ```

- **Example Add device with allow-only action (no auto-connect)**

  ```
  > add-device -a allow 11:22:33:44:55:66
  ```

- **Example Add device with deny action (blocked)**

  ```
  > add-device -a deny CC:DD:EE:FF:00:11
  ```

- **Example Add device with public address type**

  ```
  > add-device -t public 00:11:22:33:44:55
  ```

- **Example Add device with random address type**

  ```
  > add-device -t random AA:BB:CC:DD:EE:FF
  ```

- **Example Add LE device with public address**

  ```
  > add-device -t le_public 11:22:33:44:55:66
  ```

- **Example Add LE device with random address**

  ```
  > add-device -t le_random CC:DD:EE:FF:00:11
  ```

- **Example Add LE public device with auto-connect**

  ```
  > add-device -a auto -t le_public 00:11:22:33:44:55
  ```

- **Example Add random address device with allow action**

  ```
  > add-device -a allow -t random AA:BB:CC:DD:EE:FF
  ```

- **Example Add LE random device with deny action**

  ```
  > add-device -a deny -t le_random CC:DD:EE:FF:00:11
  ```

### del-device

Remove Device

- **Usage**

  **\> del-device \[-t type\] \<address\>**

- **\[-t type\]**

  Address type (public, random, le\_public, le\_random)

- **\<address\>**

  Bluetooth address of device to remove

- **Example Remove device using default address type**

  ```
  > del-device 00:11:22:33:44:55
  ```

- **Example Remove another device**

  ```
  > del-device AA:BB:CC:DD:EE:FF
  ```

- **Example Remove device with public address type**

  ```
  > del-device -t public 00:11:22:33:44:55
  ```

- **Example Remove device with random address type**

  ```
  > del-device -t random AA:BB:CC:DD:EE:FF
  ```

- **Example Remove LE device with public address**

  ```
  > del-device -t le_public 11:22:33:44:55:66
  ```

- **Example Remove LE device with random address**

  ```
  > del-device -t le_random CC:DD:EE:FF:00:11
  ```

### clr-devices

Clear Devices

- **Usage**

  **\> clr-devices**

- **Example Clear all devices from the device list**

  ```
  > clr-devices
  ```

### bredr-oob

Local OOB data (BR/EDR)

- **Usage**

  **\> bredr-oob**

- **Example Generate and display local BR/EDR OOB authentication data**

  ```
  > bredr-oob
  ```

### le-oob

Local OOB data (LE)

- **Usage**

  **\> le-oob**

- **Example Generate and display local LE OOB authentication data**

  ```
  > le-oob
  ```

### advinfo

Show advertising features

- **Usage**

  **\> advinfo**

- **Example Display advertising capabilities and supported features**

  ```
  > advinfo
  ```

### advsize

Show advertising size info

- **Usage**

  **\> advsize \[options\] \<instance\_id\>**

- **\[options\]**

  Advertising options flags

- **\<instance\_id\>**

  Advertising instance identifier (0-based)

- **Example Show advertising data size information for instance 0**

  ```
  > advsize 0
  ```

- **Example Show size information for advertising instance 1**

  ```
  > advsize 1
  ```

- **Example Show size information for advertising instance 5**

  ```
  > advsize 5
  ```

### add-adv

Add advertising instance

- **Usage**

  **\> add-adv \[options\] \<instance\_id\>**

- **\[options\]**

  Advertising options (-c connectable, -s scannable, -g general discoverable, -l limited discoverable, -m managed flags, -p TX power)

- **\<instance\_id\>**

  Advertising instance identifier (0-based)

- **Example Add advertising instance 0 with default settings**

  ```
  > add-adv 0
  ```

- **Example Add advertising instance 1**

  ```
  > add-adv 1
  ```

- **Example Add advertising instance 5**

  ```
  > add-adv 5
  ```

- **Example Add connectable advertising instance 0**

  ```
  > add-adv -c 0
  ```

- **Example Add scannable advertising instance 1**

  ```
  > add-adv -s 1
  ```

- **Example Add general discoverable advertising instance 2**

  ```
  > add-adv -g 2
  ```

- **Example Add limited discoverable advertising instance 3**

  ```
  > add-adv -l 3
  ```

- **Example Add managed flags advertising instance 4**

  ```
  > add-adv -m 4
  ```

- **Example Add TX power advertising instance 5**

  ```
  > add-adv -p 5
  ```

- **Example Add connectable and scannable advertising instance**

  ```
  > add-adv -c -s 0
  ```

- **Example Add general discoverable with TX power**

  ```
  > add-adv -g -p 1
  ```

- **Example Add connectable, general discoverable, and scannable**

  ```
  > add-adv -c -g -s 2
  ```

### rm-adv

Remove advertising instance

- **Usage**

  **\> rm-adv \<instance\_id\>**

- **\<instance\_id\>**

  Advertising instance identifier (0-based) to remove

- **Example Remove advertising instance 0**

  ```
  > rm-adv 0
  ```

- **Example Remove advertising instance 1**

  ```
  > rm-adv 1
  ```

- **Example Remove advertising instance 5**

  ```
  > rm-adv 5
  ```

### clr-adv

Clear advertising instances

- **Usage**

  **\> clr-adv**

- **Example Clear all advertising instances**

  ```
  > clr-adv
  ```

### add-ext-adv-params

Add extended advertising params

- **Usage**

  **\> add-ext-adv-params \[options\] \<instance\_id\>**

- **\[options\]**

  Extended advertising options (-c connectable, -s scannable, -d directed, -h high duty cycle, -l legacy PDU, -a anonymous, -i include TX power)

- **\<instance\_id\>**

  Extended advertising instance identifier (0-based)

- **Example Add extended advertising parameters for instance 0**

  ```
  > add-ext-adv-params 0
  ```

- **Example Add extended advertising parameters for instance 1**

  ```
  > add-ext-adv-params 1
  ```

- **Example Add connectable extended advertising for instance 0**

  ```
  > add-ext-adv-params -c 0
  ```

- **Example Add scannable extended advertising for instance 1**

  ```
  > add-ext-adv-params -s 1
  ```

- **Example Add directed extended advertising for instance 2**

  ```
  > add-ext-adv-params -d 2
  ```

- **Example Add high duty cycle extended advertising for instance 3**

  ```
  > add-ext-adv-params -h 3
  ```

- **Example Add legacy PDU extended advertising for instance 4**

  ```
  > add-ext-adv-params -l 4
  ```

- **Example Add anonymous extended advertising for instance 5**

  ```
  > add-ext-adv-params -a 5
  ```

- **Example Add include TX power extended advertising for instance 6**

  ```
  > add-ext-adv-params -i 6
  ```

- **Example Add connectable and scannable extended advertising**

  ```
  > add-ext-adv-params -c -s 0
  ```

- **Example Add connectable extended advertising with TX power**

  ```
  > add-ext-adv-params -c -i 1
  ```

- **Example Add scannable legacy PDU extended advertising**

  ```
  > add-ext-adv-params -s -l 2
  ```

### add-ext-adv-data

Add extended advertising data

- **Usage**

  **\> add-ext-adv-data \[options\] \<instance\_id\>**

- **\[options\]**

  Data options (-s for scan response data, -c for complete data)

- **\<instance\_id\>**

  Extended advertising instance identifier (0-based)

- **Example Add advertising data to extended instance 0**

  ```
  > add-ext-adv-data 0
  ```

- **Example Add advertising data to extended instance 1**

  ```
  > add-ext-adv-data 1
  ```

- **Example Add scan response data to extended instance 0**

  ```
  > add-ext-adv-data -s 0
  ```

- **Example Add scan response data to extended instance 1**

  ```
  > add-ext-adv-data -s 1
  ```

- **Example Add complete advertising data to instance 0**

  ```
  > add-ext-adv-data -c 0
  ```

- **Example Add complete scan response data to instance 1**

  ```
  > add-ext-adv-data -c -s 1
  ```

### appearance

Set appearance

- **Usage**

  **\> appearance \<appearance\>**

- **\<appearance\>**

  Appearance value (16-bit integer) representing device type

- **Example Set appearance to Unknown**

  ```
  > appearance 0
  ```

- **Example Set appearance to Generic Phone**

  ```
  > appearance 64
  ```

- **Example Set appearance to Generic Computer**

  ```
  > appearance 128
  ```

- **Example Set appearance to Generic Audio/Video device**

  ```
  > appearance 832
  ```

- **Example Set appearance to Speaker**

  ```
  > appearance 833
  ```

- **Example Set appearance to Microphone**

  ```
  > appearance 834
  ```

- **Example Set appearance to Headset**

  ```
  > appearance 835
  ```

- **Example Set appearance to Headphones**

  ```
  > appearance 836
  ```

- **Example Set appearance to Generic HID**

  ```
  > appearance 960
  ```

- **Example Set appearance to Keyboard**

  ```
  > appearance 961
  ```

- **Example Set appearance to Mouse**

  ```
  > appearance 962
  ```

- **Example Set appearance to Joystick**

  ```
  > appearance 963
  ```

- **Example Set appearance to Generic Health Sensor**

  ```
  > appearance 1344
  ```

- **Example Set appearance to Heart Rate Sensor**

  ```
  > appearance 1345
  ```

- **Example Set appearance to Blood Pressure Monitor**

  ```
  > appearance 1346
  ```

- **Example Set appearance to Generic Sports and Fitness**

  ```
  > appearance 1472
  ```

- **Example Set appearance to Location Display**

  ```
  > appearance 1473
  ```

- **Example Set appearance to Location Navigation Display**

  ```
  > appearance 1474
  ```

### phy

Get/Set PHY Configuration

- **Usage**

  **\> phy \[LE1MTX\] \[LE1MRX\] \[LE2MTX\] \[LE2MRX\] \[LECODEDTX\] \[LECODEDRX\]** **\[BR1M1SLOT\] \[BR1M3SLOT\] \[BR1M5SLOT\]\[EDR2M1SLOT\] \[EDR2M3SLOT\]** **\[EDR2M5SLOT\]\[EDR3M1SLOT\] \[EDR3M3SLOT\] \[EDR3M5SLOT\]**

- **\[PHY flags\]**

  PHY configuration flags to enable (LE1MTX, LE1MRX, LE2MTX, LE2MRX, LECODEDTX, LECODEDRX, BR1M1SLOT, etc.)

- **Example Display current PHY configuration**

  ```
  > phy
  ```

- **Example Enable LE 1M TX PHY**

  ```
  > phy LE1MTX
  ```

- **Example Enable LE 1M RX PHY**

  ```
  > phy LE1MRX
  ```

- **Example Enable LE 2M TX PHY**

  ```
  > phy LE2MTX
  ```

- **Example Enable LE 2M RX PHY**

  ```
  > phy LE2MRX
  ```

- **Example Enable LE Coded TX PHY**

  ```
  > phy LECODEDTX
  ```

- **Example Enable LE Coded RX PHY**

  ```
  > phy LECODEDRX
  ```

- **Example Enable BR 1M 1-slot packets**

  ```
  > phy BR1M1SLOT
  ```

- **Example Enable BR 1M 3-slot packets**

  ```
  > phy BR1M3SLOT
  ```

- **Example Enable BR 1M 5-slot packets**

  ```
  > phy BR1M5SLOT
  ```

- **Example Enable EDR 2M 1-slot packets**

  ```
  > phy EDR2M1SLOT
  ```

- **Example Enable EDR 2M 3-slot packets**

  ```
  > phy EDR2M3SLOT
  ```

- **Example Enable EDR 2M 5-slot packets**

  ```
  > phy EDR2M5SLOT
  ```

- **Example Enable EDR 3M 1-slot packets**

  ```
  > phy EDR3M1SLOT
  ```

- **Example Enable EDR 3M 3-slot packets**

  ```
  > phy EDR3M3SLOT
  ```

- **Example Enable EDR 3M 5-slot packets**

  ```
  > phy EDR3M5SLOT
  ```

- **Example Enable LE 1M TX and RX PHYs**

  ```
  > phy LE1MTX LE1MRX
  ```

- **Example Enable LE 1M and 2M TX/RX PHYs**

  ```
  > phy LE1MTX LE1MRX LE2MTX LE2MRX
  ```

- **Example Enable 1-slot packets for all BR/EDR PHYs**

  ```
  > phy BR1M1SLOT EDR2M1SLOT EDR3M1SLOT
  ```

### wbs

Toggle Wideband-Speech support

- **Usage**

  **\> wbs \<on/off\>**

- **\<on/off\>**

  Wideband Speech support - "on" to enable for audio profiles, "off" to disable

- **Example Enable Wideband Speech support for audio profiles**

  ```
  > wbs on
  ```

- **Example Disable Wideband Speech support**

  ```
  > wbs off
  ```

### secinfo

Show security information

- **Usage**

  **\> secinfo**

- **Example Display security features and capabilities**

  ```
  > secinfo
  ```

### expinfo

Show experimental features

- **Usage**

  **\> expinfo**

- **Example Display available experimental features and their status**

  ```
  > expinfo
  ```

### exp-debug

Set debug feature

- **Usage**

  **\> exp-debug \<on/off\>**

- **\<on/off\>**

  Experimental debug features - "on" to enable, "off" to disable

- **Example Enable experimental debug features**

  ```
  > exp-debug on
  ```

- **Example Disable experimental debug features**

  ```
  > exp-debug off
  ```

### exp-privacy

Set LL privacy feature

- **Usage**

  **\> exp-privacy \<on/off\>**

- **\<on/off\>**

  Experimental Link Layer privacy - "on" to enable LL privacy features, "off" to disable

- **Example Enable experimental Link Layer privacy features**

  ```
  > exp-privacy on
  ```

- **Example Disable experimental Link Layer privacy features**

  ```
  > exp-privacy off
  ```

### exp-quality

Set bluetooth quality report feature

- **Usage**

  **\> exp-quality \<on/off\>**

- **\<on/off\>**

  Experimental quality reporting - "on" to enable Bluetooth quality reports, "off" to disable

- **Example Enable experimental Bluetooth quality reporting**

  ```
  > exp-quality on
  ```

- **Example Disable experimental Bluetooth quality reporting**

  ```
  > exp-quality off
  ```

### exp-offload

Toggle codec support

- **Usage**

  **\> exp-offload \<on/off\>**

- **\<on/off\>**

  Experimental codec offload - "on" to enable codec offload support, "off" to disable

- **Example Enable experimental codec offload support**

  ```
  > exp-offload on
  ```

- **Example Disable experimental codec offload support**

  ```
  > exp-offload off
  ```

### exp-iso

Toggle ISO Socket support

- **Usage**

  **\> exp-iso \<on/off\>**

- **\<on/off\>**

  Experimental ISO Socket support - "on" to enable ISO Socket support, "off" to disable

- **Example Enable experimental ISO Socket support**

  ```
  > exp-offload on
  ```

- **Example Disable experimental ISO Socket support**

  ```
  > exp-offload off
  ```

### read-sysconfig

Read System Configuration

- **Usage**

  **\> read-sysconfig**

- **Example Read current system configuration parameters**

  ```
  > read-sysconfig
  ```

### set-sysconfig

Set System Configuration

- **Usage**

  **\> set-sysconfig \<-v\|-h\> \[options...\]**

- **\<-v\|-h\>**

  Verbose output or help flag

- **\[options...\]**

  System configuration options (--br-page-scan-type, --br-page-scan-interval, etc.)

- **Example Show help for system configuration options**

  ```
  > set-sysconfig -h
  ```

- **Example Set system configuration with verbose output**

  ```
  > set-sysconfig -v
  ```

- **Example Set BR/EDR page scan type with verbose output**

  ```
  > set-sysconfig -v --br-page-scan-type=0
  ```

- **Example Set BR/EDR page scan interval**

  ```
  > set-sysconfig -v --br-page-scan-interval=0x800
  ```

- **Example Set BR/EDR page scan window**

  ```
  > set-sysconfig -v --br-page-scan-window=0x12
  ```

- **Example Set BR/EDR inquiry scan type**

  ```
  > set-sysconfig -v --br-inquiry-scan-type=0
  ```

- **Example Set BR/EDR link supervision timeout**

  ```
  > set-sysconfig -v --br-link-supervision-timeout=0x2000
  ```

- **Example Set LE minimum connection interval**

  ```
  > set-sysconfig -v --le-min-connection-interval=0x18
  ```

- **Example Set LE maximum connection interval**

  ```
  > set-sysconfig -v --le-max-connection-interval=0x28
  ```

- **Example Set multiple BR/EDR scan parameters**

  ```
  > set-sysconfig -v --br-page-scan-type=0 --br-page-scan-interval=0x800 --br-page-scan-window=0x12
  ```

- **Example Set multiple LE connection parameters**

  ```
  > set-sysconfig -v --le-min-connection-interval=0x18 --le-max-connection-interval=0x28 --le-connection-latency=0
  ```

### get-flags

Get device flags

- **Usage**

  **\> get-flags \[-t type\] \<address\>**

- **\[-t type\]**

  Address type (public, random, le\_public, le\_random)

- **\<address\>**

  Bluetooth address of device to query flags for

- **Example Get device flags for device using default type**

  ```
  > get-flags 00:11:22:33:44:55
  ```

- **Example Get flags for another device**

  ```
  > get-flags AA:BB:CC:DD:EE:FF
  ```

- **Example Get flags for public address device**

  ```
  > get-flags -t public 00:11:22:33:44:55
  ```

- **Example Get flags for random address device**

  ```
  > get-flags -t random AA:BB:CC:DD:EE:FF
  ```

- **Example Get flags for LE public address device**

  ```
  > get-flags -t le_public 11:22:33:44:55:66
  ```

- **Example Get flags for LE random address device**

  ```
  > get-flags -t le_random CC:DD:EE:FF:00:11
  ```

### set-flags

Set device flags

- **Usage**

  **\> set-flags \[-f flags\] \[-t type\] \<address\>**

- **\[-f flags\]**

  Device flags bitmask in hexadecimal (0x01=remote wake, 0x02=privacy)

- **\[-t type\]**

  Address type (public, random, le\_public, le\_random)

- **\<address\>**

  Bluetooth address of device to set flags for

- **Example Set default flags for device**

  ```
  > set-flags 00:11:22:33:44:55
  ```

- **Example Set default flags for another device**

  ```
  > set-flags AA:BB:CC:DD:EE:FF
  ```

- **Example Set remote wake flag for device**

  ```
  > set-flags -f 0x01 00:11:22:33:44:55
  ```

- **Example Set device privacy flag**

  ```
  > set-flags -f 0x02 AA:BB:CC:DD:EE:FF
  ```

- **Example Set both remote wake and privacy flags**

  ```
  > set-flags -f 0x03 11:22:33:44:55:66
  ```

- **Example Set remote wake for public address device**

  ```
  > set-flags -f 0x01 -t public 00:11:22:33:44:55
  ```

- **Example Set privacy flag for LE public device**

  ```
  > set-flags -f 0x02 -t le_public 11:22:33:44:55:66
  ```

- **Example Set multiple flags for LE random device**

  ```
  > set-flags -f 0x03 -t le_random CC:DD:EE:FF:00:11
  ```

- **Example Clear all flags for device**

  ```
  > set-flags -f 0x00 00:11:22:33:44:55
  ```

- **Example Clear all flags for LE public device**

  ```
  > set-flags -f 0x00 -t le_public 11:22:33:44:55:66
  ```

## RESOURCES

\<http://www.bluez.org\>

## REPORTING BUGS

\<linux-bluetooth@vger.kernel.org\>

## Copyright

Free use of this software is granted under the terms of the GNU Lesser General Public Licenses (LGPL).
