
sdptool Command in Linux
Bluetooth technology enables wireless communication between devices. It allows seamless data transfer and connectivity without the need for physical cables or network infrastructure. Managing Bluetooth services is crucial for stable and efficient communication between paired devices.
In Linux, the sdptool command helps query and administer the Service Discovery Protocol (SDP) for Bluetooth devices. With sdptool, users can browse device services, search for specific functionalities, and manage local SDP records. This tool is essential for troubleshooting and configuring Bluetooth connections in Linux.
Table of Contents
Here is a comprehensive guide to the options available with the sdptool command −
- Understanding of sdptool Command
- How to Install sdptool Command in Linux?
- Browsing Services on a Bluetooth Device
- Searching for a Specific Service
- Common Issues and Fixes
- Best Practices for Using sdptool Command in Linux
Let's start with some basic information on the sdptool utility.
Understanding of sdptool Command
The sdptool utility is part of the BlueZ package, the official Bluetooth stack for Linux. It allows users to interact with SDP, which is responsible for discovering available services on Bluetooth-enabled devices.
With sdptool, you can browse a device's service list or search for a particular service across accessible devices.
Syntax of sdptool Command in Linux
The sdptool command is a useful utility for querying Bluetooth devices and managing services via the Service Discovery Protocol (SDP).
Here is a basic syntax to use this command in a Linux environment −
sdptool [options] {command} [command parameters ...]
sdptool Command Options
sdptool allows users to browse available services, search for specific ones, and administer the local SDP server. Below are the key command options available −
- Browse − Lists all services provided by a specified Bluetooth device.
- Search − Searches for a particular service across all accessible devices.
- Records − Retrieves raw service records from a Bluetooth device.
- Add − Adds a new service record to the local SDP server.
- Del − Removes an existing service record from the local SDP server.
- Help − Displays information about available sdptool commands.
These options help users effectively discover and manage Bluetooth services. To get more detailed information, access the sdptool manual page by executing the following command −
man sdptool

How to Install sdptool in Linux?
Before using sdptool, ensure that it is installed on your Linux system. If your system does not have sdptool, install BlueZ using package manager to get it. For example, the following command install bluez on Debian-based systems −
sudo apt install bluez
Arch Linux users can use the Pacman package manager to install it on their systems −
sudo pacman -S bluez
You can install it on Fedora using dnf −
sudo dnf install bluez
After installing BlueZ, verify the availability of sdptool on your system by running the following command −
sdptool --help

Browsing Services on a Bluetooth Device
To check the services available on a specific Bluetooth device, use the browse command with sdptool −
sdptool browse <device_address>
Replace <device_address> with the MAC address of the Bluetooth device. This command returns a list of all services the device provides, including their unique identifiers.
For example the following command returns a list of services offered by the device with the address 00:1A:7D:DA:71:13 −
sdptool browse 00:1A:7D:DA:71:13
Searching for a Specific Service
If you need to find a particular service on Bluetooth devices, you can run the sdptool command with search command, as follows −
sdptool search <service_code>
Here, <service_code> is the identifier for the service you want to find. It scans all accessible Bluetooth devices for the specified service and prints the service name along with a brief description.
For instance, we can search for the Hands-Free Profile (HFP) service by executing the following command −
sdptool search HFP
If a device in range offers the service, sdptool will display the full-service name and description.
Common Issues and Fixes
You may encounter several issues while working with the sdptool command. Hereâs how you can fix them −
sdptool Command Not Found
This error occurs when the sdptool utility is missing, usually because the BlueZ package is not installed or incorrectly configured. To avoid this issue, make sure BlueZ is installed and properly configured. You can reinstall it with the command −
sudo apt install --reinstall bluez
Device Not Discoverable
The target Bluetooth device may not be in discoverable mode, or Bluetooth may be disabled on your system. Some devices also disable discovery automatically after a certain time. To avoid this issue, make sure Bluetooth is enabled and the device is in discoverable mode. You can manually enable discovery with the âbluetoothctl discoverable onâ command.
No Services Found
This issue occurs if the target device does not support SDP (Service Discovery Protocol) or is not properly paired with your system. A misconfigured Bluetooth service can also cause this problem.
To fix this issue, you must run the âbluetoothctl pair <device_address>â and âbluetoothctl trust <device_address>â commands to ensure the device is paired and trusted. After this, restart the Bluetooth service with âsudo systemctl restart bluetoothâ command to refresh SDP records.
Best Practices for Using sdptool Command in Linux
Follow these best practices to ensure the sdptool command functions properly and troubleshoot common issues effectively.
- Keep BlueZ Updated − Regularly update BlueZ to maintain compatibility with the latest Bluetooth devices and avoid issues caused by outdated drivers or missing features.
- Use Debugging Tools − If sdptool does not return expected results, try debugging with bluetoothctl to get detailed insights into device connections and available services.
- Check Device Compatibility − Not all Bluetooth devices support Service Discovery Protocol (SDP) queries. Some manufacturers disable SDP, limiting the information that sdptool can retrieve. Check the deviceâs documentation to ensure compatibility.
- Diagnose Bluetooth Adapter Issues − If Bluetooth is not working, the problem might be with the adapter rather than sdptool. Use the hciconfig command to check its status and troubleshoot connection issues.
Thatâs all about using the sdptool in Linux.
Conclusion
The sdptool command in Linux is a useful utility for managing Bluetooth services through the Service Discovery Protocol (SDP). It allows users to browse available services, search for specific functionalities, and manage local SDP records.
Ensure that BlueZ is installed and up to date to prevent compatibility issues. If you encounter problems like missing services or non-discoverable devices, troubleshoot them promptly to maintain a stable Bluetooth connection.
In this tutorial, we explained how to install and use the sdptool to enhance Bluetooth connectivity and device communication in Linux.