Командная строка Linux как принять сопряжение для устройства bluetooth без pin-кода

есть ли способ сопряжения устройства в linux, не требуя pin-кода (для целей тестирования, поэтому мне нужно, чтобы это было сделано без человеческого взаимодействия, предполагая, что у вас есть root-доступ)?

bluez-simple-agent, похоже, требует pin-кода, за исключением некоторых простых устройств, таких как мыши.

6 ответов


попробуйте установить безопасность в /etc/bluetooth/hcid.conf

http://linux.die.net/man/5/hcid.conf

Это, вероятно, будет работать только для устройств HCI(мышь, клавиатура, spaceball и т. д.). Если у вас есть другой тип устройства, вероятно, есть другая, но похожая настройка для изменения.


ввод PIN-кода на самом деле является устаревшим методом сопряжения, теперь называемым Наследие Сопряжения. Безопасный простой режим сопряжения доступен в Bluetooth v2.1 и позже, который включает в себя большинство современных устройств Bluetooth. Аутентификация SSPMode обрабатывается стеком протоколов Bluetooth и, таким образом, работает без взаимодействия с пользователем.

вот как можно подключиться к устройству:

# hciconfig hci0 sspmode 1
# hciconfig hci0 sspmode
hci0:   Type: BR/EDR  Bus: USB
BD Address: AA:BB:CC:DD:EE:FF  ACL MTU: 1021:8  SCO MTU: 64:1
Simple Pairing mode: Enabled
# hciconfig hci0 piscan
# sdptool add SP
# hcitool scan
    00:11:22:33:44:55    My_Device
# rfcomm connect /dev/rfcomm0 00:11:22:33:44:55 1 &
Connected /dev/rfcomm0 to 00:11:22:33:44:55 on channel 1
Press CTRL-C for hangup

Это позволит установить последовательное соединение с устройством.


это сработало как шарм для меня,конечно, это требует привилегий суперпользователя: -)

# hcitool cc <target-bdaddr>; hcitool auth <target-bdaddr>

и <target-bdaddr> вы можете выполнить следующую команду:
$ hcitool scan

Примечание: Исключить # & $ поскольку они являются подсказками командной строки.

вежливость


для Ubuntu 14.04 и Android попробуйте:

hcitool scan #get hardware address
sudo bluetooth-agent PIN HARDWARE-ADDRESS

диалоговое окно PIN появляется на устройстве Android. Введите тот же PIN-код.

Примечание: sudo apt-get install bluez-utils может быть необходимым.

Note2: если диалоговое окно PIN не отображается, сначала попробуйте выполнить сопряжение с Android (не удастся из-за неправильного PIN-кода). Повторите, как описано выше.


следуйте инструкциям (CentOs):

  1. bluetoothctl
  2. устройства
  3. сканирование
  4. пара 34: 88:5D:51:5A:95 (34:88:5D:51:5A: 95-это мой код устройства,замените его на ваш)
  5. доверие 34:88:5D:51:5A: 95
  6. подключение 34: 88:5D:51:5A: 95

Если вы хотите больше деталей https://www.youtube.com/watch?v=CB1E4Ir3AV4


~ $ hciconfig noauth

это должно сделать трюк (я использую bluez 5.23, и нет более простых-egent и blue-utils). Тем не менее, я пытаюсь найти способ сделать изменения hciconfig постоянными, потому что после отключения питания, а затем включения, аутентификация необходима снова. До сих пор изменения в hciconfig все еще остаются прежними при перезагрузке. он возвращается только при отключении питания. Если кто-нибудь нашел способ сделать hciconfig постоянным, дайте мне знать!