Отсутствует PIN-код или ключ BlueZ, хотя они уже были сопряжены

Я разрабатываю периферийное устройство BLE на основе Linux (bluez 5.48) и приложения QT для службы gatt. Я также разрабатываю приложение для телефона Android для подключения устройства.

Моя проблема связана со вторым соединением (# 3), как показано ниже:

  1. Устройство запускает рекламу -› Android-приложение сканирует его и подключается -› Android-приложение пытается написать характеристику, которая имеет безопасность аутентификации -› произошла недостаточная аутентификация, и на телефоне появилось сообщение о вводе PIN-кода -› Введите PIN-код, успешное сопряжение и запись характеристика в порядке.
  2. Отключить
  3. Устройство запускает рекламу -› Android-приложение сканирует его и подключается -› Android-приложение пытается написать характеристику, которая имеет безопасность аутентификации -› произошла недостаточная аутентификация, и на телефоне появился ввод пин-кода ????????????

В журнале устройства обнаружена ошибка отсутствия пин-кода или ключа. Кажется, мое устройство распознает телефон как новое устройство из-за случайного MAC-адреса телефона. Любая идея или решение этой проблемы?

Ps: устройство bluez настроено на DisplayOnly

Спасибо, Кальвин


Я добавил журнал устройства вышеуказанной тестовой последовательности. Почему происходит Удаление временного устройства...?

=============== первое подключение и сопряжение с моим тестовым приложением для Android: подключение -> соединение -> отключение от приложения =========

17 декабря 07:35:38 bluetoothd[368]: ../bluez-5.50/src/agent.c:agent_ref() 0xfd1000: ref=1

17 декабря 07:35:38 bluetoothd[368]: ../bluez-5.50/src/agent.c:register_agent() агент: 1.49

17 декабря 07:35:38 bluetoothd[368]: ../bluez-5.50/src/agent.c:unregister_agent() агент: 1.49

17 декабря 07:35:38 bluetoothd[368]: ../bluez-5.50/src/agent.c:agent_disconnect() Агент: 1.49 отключен

17 декабря 07:35:38 bluetoothd[368]: ../bluez-5.50/src/agent.c:agent_destroy() агент: 1.49

17 декабря 07:35:38 bluetoothd[368]: ../bluez-5.50/src/agent.c:agent_unref() 0xfd1000: ref=0

17 декабря 07:35:38 bluetoothd[368]: ../bluez-5.50/src/agent.c:agent_ref() 0xfd1000: ref=1

17 декабря 07:35:38 bluetoothd[368]: ../bluez-5.50/src/agent.c:register_agent() агент: 1.49

17 декабря 07:35:38 bluetoothd[368]: ../bluez-5.50/src/agent.c:add_default_agent() Агент по умолчанию установлен на: 1.49 /org/bluez/agent

17 декабря 07:35:46 bluetoothd[368]: ../bluez-5.50/src/adapter.c:connected_callback() hci0 устройство 5C:CB:99:7F:77:02 подключено eir_len 0

17 декабря 07:35:47 bluetoothd[368]: ../bluez-5.50/src/adapter.c:user_passkey_notify_callback() hci0 5C:CB:99:7F:77:02

17 декабря 07:35:47 bluetoothd[368]: ../bluez-5.50/src/adapter.c:user_passkey_notify_callback() ключ доступа 859060 введен 0

17 декабря 07:35:47 bluetoothd[368]: ../bluez-5.50/src/device.c:new_auth() Запрос аутентификации агента для 5C:CB:99:7F:77:02

17 декабря 07:35:47 bluetoothd[368]: ../bluez-5.50/src/agent.c:agent_ref() 0xfd1000: ref=2

17 декабря 07:35:56 bluetoothd[368]: ../bluez-5.50/src/adapter.c:new_irk_callback() hci0 новый IRK для 5C:CB:99:7F:77:02 RPA 00:00:00: 00:00:00

17 декабря 07:35:56 bluetoothd[368]: ../bluez-5.50/src/adapter.c:new_csrk_callback() hci0 новый CSRK для 5C:CB:99:7F:77:02 тип 3

17 декабря 07:35:56 bluetoothd[368]: ../bluez-5.50/src/adapter.c:new_csrk_callback() hci0 новый CSRK для 5C:CB:99:7F:77:02 тип 2

17 декабря 07:35:56 bluetoothd[368]: ../bluez-5.50/src/adapter.c:new_long_term_key_callback() hci0 новый LTK для 5C:CB:99:7F:77:02 тип 1 enc_size 16

17 декабря 07:35:56 bluetoothd[368]: ../bluez-5.50/src/device.c:device_set_bonded()

17 декабря 07:35:56 bluetoothd[368]: ../bluez-5.50/src/device.c:device_bonding_complete() статус соединения (ноль) 0x00

17 декабря 07:35:56 bluetoothd[368]: ../bluez-5.50/src/agent.c:agent_unref() 0xfd1000: ref=1

17 декабря 07:35:56 bluetoothd[368]: ../bluez-5.50/src/adapter.c:resume_discovery()

17 декабря 07:35:56 bluetoothd[368]: ../bluez-5.50/src/adapter.c:new_long_term_key_callback() hci0 новый LTK для 5C:CB:99:7F:77:02 тип 1 enc_size 16

17 декабря 07:35:56 bluetoothd[368]: ../bluez-5.50/src/device.c:device_set_bonded()

17 декабря 07:35:56 bluetoothd[368]: ../bluez-5.50/src/device.c:device_bonding_complete() статус соединения (ноль) 0x00

17 декабря 07:35:56 bluetoothd[368]: ../bluez-5.50/src/adapter.c:resume_discovery()

17 декабря 07:36:15 bluetoothd[368]: ../bluez-5.50/src/adapter.c:dev_disconnected() Устройство 5C:CB:99:7F:77:02 отключено, причина 3

17 декабря 07:36:15 bluetoothd[368]: ../bluez-5.50/src/adapter.c:adapter_remove_connection() 17 декабря 07:36:15 bluetoothd[368]: ../bluez-5.50/plugins/policy .c:disconnect_cb() причина 3

17 декабря 07:36:15 bluetoothd[368]: ../bluez-5.50/src/adapter.c:bonding_attempt_complete() hci0 bdaddr 5C:CB:99:7F:77:02 тип 1 статус 0xe

17 декабря 07:36:15 bluetoothd[368]: ../bluez-5.50/src/device.c:device_bonding_complete() статус соединения (ноль) 0x0e

17 декабря 07:36:15 bluetoothd[368]: ../bluez-5.50/src/device.c:device_bonding_failed() статус 14

17 декабря 07:36:15 bluetoothd[368]: ../bluez-5.50/src/adapter.c:resume_discovery()

17 декабря 07:36:36 bluetoothd[368]: ../bluez-5.50/src/agent.c:agent_disconnect() Агент: 1.49 отключен

17 декабря 07:36:36 bluetoothd[368]: ../bluez-5.50/src/agent.c:remove_default_agent() Агент по умолчанию очищен

17 декабря 07:36:36 bluetoothd[368]: ../bluez-5.50/src/agent.c:agent_destroy() агент: 1.49

17 декабря 07:36:36 bluetoothd[368]: ../bluez-5.50/src/agent.c:agent_unref() 0xfd1000: ref=0

17 декабря 07:36:37 bluetoothd[368]: ../bluez-5.50/src/agent.c:agent_ref() 0xfd2808: ref=1

17 декабря 07:36:37 bluetoothd[368]: ../bluez-5.50/src/agent.c:register_agent() агент: 1.51

17 декабря 07:36:37 bluetoothd[368]: ../bluez-5.50/src/agent.c:unregister_agent() агент: 1.51

17 декабря 07:36:37 bluetoothd[368]: ../bluez-5.50/src/agent.c:agent_disconnect() Агент: 1.51 отключен

17 декабря 07:36:37 bluetoothd[368]: ../bluez-5.50/src/agent.c:agent_destroy() агент: 1.51

17 декабря 07:36:37 bluetoothd[368]: ../bluez-5.50/src/agent.c:agent_unref() 0xfd2808: ref=0

============= второе подключение: это устройство непреднамеренно отключилось от системы приложений, как только подключилось ======================= ==============

17 декабря 07:36:37 bluetoothd[368]: ../bluez-5.50/src/agent.c:agent_ref() 0xfd2808: ref=1

17 декабря 07:36:37 bluetoothd[368]: ../bluez-5.50/src/agent.c:register_agent() агент: 1.51

17 декабря 07:36:37 bluetoothd[368]: ../bluez-5.50/src/agent.c:add_default_agent() Агент по умолчанию установлен на: 1.51 /org/bluez/agent

17 декабря 07:36:42 bluetoothd[368]: ../bluez-5.50/src/adapter.c:connected_callback() hci0 устройство 4D:EE:4F:F1:6F:FD подключено eir_len 0

17 декабря 07:36:42 bluetoothd[368]: ../bluez-5.50/src/device.c:device_create() dst 4D:EE:4F:F1:6F:FD

17 декабря 07:36:42 bluetoothd[368]: ../bluez-5.50/src/device.c:device_new() адрес 4D:EE:4F:F1:6F:FD

17 декабря 07:36:42 bluetoothd[368]: ../bluez-5.50/src/device.c:device_new() Создание устройства /org/bluez/hci0/dev_4D_EE_4F_F1_6F_FD

17 декабря 07:36:43 bluetoothd[368]: ../bluez-5.50/src/adapter.c:dev_disconnected() Устройство 4D:EE:4F:F1:6F:FD отключено, причина 3

17 декабря 07:36:43 bluetoothd[368]: ../bluez-5.50/src/adapter.c:adapter_remove_connection()

17 декабря 07:36:43 bluetoothd[368]: ../bluez-5.50/src/adapter.c:adapter_remove_connection() Удаление временного устройства /org/bluez/hci0/dev_4D_EE_4F_F1_6F_FD

17 декабря 07:36:43 bluetoothd[368]: ../bluez-5.50/src/device.c:device_remove() Удаление устройства /org/bluez/hci0/dev_4D_EE_4F_F1_6F_FD

17 декабря 07:36:43 bluetoothd[368]: ../bluez-5.50/src/device.c:btd_device_unref() Освобождение устройства /org/bluez/hci0/dev_4D_EE_4F_F1_6F_FD

17 декабря 07:36:43 bluetoothd[368]: ../bluez-5.50/src/device.c:device_free() 0xff3058

17 декабря 07:36:43 bluetoothd[368]: ../bluez-5.50/plugins/policy.c:disconnect_cb() причина 3

17 декабря 07:36:43 bluetoothd[368]: ../bluez-5.50/src/adapter.c:bonding_attempt_complete() hci0 bdaddr 4D:EE:4F:F1:6F:FD тип 2 статус 0xe

17 декабря 07:36:43 bluetoothd[368]: ../bluez-5.50/src/adapter.c:resume_discovery()


person Calvin    schedule 25.11.2020    source источник
comment
Вы уверены, что сопряжение/соединение включено на обоих устройствах? Случайный адрес Bluetooth не должен быть проблемой, если оба устройства связаны. Посмотрите этот пост для получения дополнительной информации: stackoverflow.com/questions/42862560/   -  person Youssif Saeed    schedule 20.12.2020
comment
Спасибо, Юссиф, я подтвердил, что первое соединение (№ 1) не было проблемой с помощью сниффера. Я добавил журнал устройства.   -  person Calvin    schedule 21.12.2020