gpt4 book ai didi

bluetooth - 当您信任蓝牙设备时,存储信任的配置文件在哪里?

转载 作者:行者123 更新时间:2023-12-03 08:25:45 25 4
gpt4 key购买 nike

假设我运行这个命令

pi@raspberrypi:~ $ bluetoothctl
Agent registered
[bluetooth]# paired-devices
[raspberrypi]# paired-devices
Device XX:XX:XX:XX:XX:XX MyDevice
[raspberrypi]# trust XX:XX:XX:XX:XX:XX
[CHG] Device XX:XX:XX:XX:XX:XX Trusted: yes
Changing XX:XX:XX:XX:XX:XX trust succeeded

存储可信设备列表的实际文件在哪里?

最佳答案

如果您执行类似 $ sudo grep -Ri trust/var/lib/bluetooth 的操作,您将看到一些信息。

这确实带来了一个重大警告,即这不是获取信息的预期方式。其目的是通过 BlueZ API 的记录来访问它:

https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc

官方示例位于:

https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/test

通常这意味着使用 D-Bus 绑定(bind)。从命令行,您可以获得 BlueZ 所知道的所有内容的列表:

busctl call org.bluez / org.freedesktop.DBus.ObjectManager GetManagedObjects

在像Python这样的语言中,它会是:

import pydbus

bus = pydbus.SystemBus()
mngr = bus.get('org.bluez', '/')

mngd_objs = mngr.GetManagedObjects()

for path in mngd_objs:
device_info = mngd_objs[path].get('org.bluez.Device1')
if device_info:
print(f'Device: {device_info.get("Address")} is Trusted={device_info.get("Trusted")}')

扩展此内容以回答以下有关如何删除任何受信任设备的问题...

这是由适配器接口(interface)和 RemoveDevice 控制的方法。我们需要知道 Adapter 对象的 D-Bus 路径。您可以通过多种方式找到此信息,在命令行上使用 busctl tree org.bluez 可能是最快的。该路径通常为 /org/bluez/hci0 并将在您的所有设备前面添加。有了这个假设,您可以扩展上面的示例来删除受信任的设备,如下所示:

import pydbus

bus = pydbus.SystemBus()
mngr = bus.get('org.bluez', '/')

mngd_objs = mngr.GetManagedObjects()
dongle = bus.get('org.bluez', '/org/bluez/hci0')

for path in mngd_objs:
device_info = mngd_objs[path].get('org.bluez.Device1')
if device_info:
trusted = device_info.get('Trusted')
if trusted:
print(f'Removing Device: {device_info.get("Address")}')
dongle.RemoveDevice(path)

关于bluetooth - 当您信任蓝牙设备时,存储信任的配置文件在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66712520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com