Атрибут BLE требует аутентификации, хотя я выполнил сопряжение

(обновлено)

Я пытаюсь связаться с устройством BLE с помощью командной строки или программы.

Я установил сопряжение с этим устройством, используя bluetoothctl v5.50:

[bluetooth]# paired-devices
Device XX:XX:XX:XX:XX:XX Mydevice

Но когда я пытаюсь прочитать его характеристики с помощью gatttool, я получаю ответ Characteristic value/descriptor operation failed: Attribute requires authentication before read/write.

sudo gatttool -b XX:XX:XX:XX:XX:XX -I -t random --sec-level=high
[XX:XX:XX:XX:XX:XX][LE]> connect
Attempting to connect to d2:a7:4c:76:f3:e0
Connection successful
[XX:XX:XX:XX:XX:XX][LE]> char-read-hnd 0x000e
Error: Characteristic value/descriptor read failed: Attribute requires authentication before read/write
[XX:XX:XX:XX:XX:XX][LE]> 

Я также пробовал с bleah и получаю сообщение об ошибке Error from Bluetooth stack (comerr).

С bluetoothctl list-attributes ничего не возвращает. И я не могу прочитать стандартную характеристику, такую ​​​​как 00002a00-0000-1000-8000-00805f9b34fb (имя устройства):

[MyDevice]# list-attributes
[MyDevice]# attribute-info 00002a00-0000-1000-8000-00805f9b34fb
Attribute 00002a00-0000-1000-8000-00805f9b34fb not available

Обратите внимание, что характеристики доступны для чтения (я перечислил устройство с помощью bleah): 0x000e имеет свойство READ.

Может кто подскажет решение для чтения таких характеристик?


person user1381    schedule 20.06.2019    source источник
comment
Похоже, требуется авторизация/аутентификация на уровне характеристик. Не могли бы вы попробовать следующие две вещи: 1) Используйте свой телефон для подключения и считывания характеристики (например, с помощью приложения nRF Connect) и посмотрите, что произойдет, и 2) Используйте команду bluetoothctl для считывания значения характеристики. См. эту ссылку для получения дополнительной информации docs.ubuntu. com/core/en/stacks/bluetooth/bluez/docs/reference/   -  person Youssif Saeed    schedule 21.06.2019
comment
Читаю характеристики без проблем на телефоне если я в паре. С bluetoothctl не получаю список сервисов и характеристик (сопрягаюсь и подключаюсь). Если я выдаю list-attributes MACaddress, он вообще не отвечает.   -  person user1381    schedule 21.06.2019
comment
Это странно. Какую версию BlueZ/bluetoothctl вы используете?   -  person Youssif Saeed    schedule 21.06.2019
comment
bluetoothctl v5.37   -  person user1381    schedule 21.06.2019
comment
ОК, попробуйте последнюю версию BlueZ и bluetoothctl (v5.50), скачав пакет отсюда (bluez.org), а затем следуйте инструкциям по этой ссылке, чтобы установить BlueZ (stackoverflow.com/questions/22358286/how-to-rebuild-bluez/)   -  person Youssif Saeed    schedule 22.06.2019
comment
Я установил v5.50. Это та же проблема. Я могу подключиться и выполнить сопряжение с устройством, но list-attributes не показывает никаких атрибутов. Хоть блеа или гаттул сделай. Если я попробую attribute-info 00001800-0000-1000-8000-00805f9b34fb, он ответит Attribute 00001800-0000-1000-8000-00805f9b34fb not available. Я буду обновлять описание.   -  person user1381    schedule 25.06.2019