我使用bluez4库API开发了BLE扫描应用程序。我能够使用root用户运行应用程序但是由于安全原因,我需要运行非root用户的应用程序。
使用setcap包我可以做" hcitool lescan"作为非root用户,
=> sudo setcap' cap_net_raw,cap_net_admin + eip' which hcitool
=> getcap!$
getcap which hcitool
但是这些更改在以非root用户身份运行我的ble扫描应用程序时不起作用,并且它被API" hci_send_req"返回错误"无法设置扫描参数数据。操作不允许"。
请有人帮我解决这个问题。
此致 Nishith
答案 0 :(得分:1)
也许晚了两年,但我得到了同样的错误,答案很简单。 您只需要对要执行的二进制文件执行setcap操作,以便可以访问蓝牙操作。命令如下:
sudo setcap 'cap_net_raw,cap_net_admin+eip' /absolute/path/to/your/executable/file
希望有所帮助!