Командная строка 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):
- bluetoothctl
- устройства
- сканирование
- пара 34: 88:5D:51:5A:95 (34:88:5D:51:5A: 95-это мой код устройства,замените его на ваш)
- доверие 34:88:5D:51:5A: 95
- подключение 34: 88:5D:51:5A: 95
Если вы хотите больше деталей https://www.youtube.com/watch?v=CB1E4Ir3AV4
~ $ hciconfig noauth
это должно сделать трюк (я использую bluez 5.23, и нет более простых-egent и blue-utils). Тем не менее, я пытаюсь найти способ сделать изменения hciconfig постоянными, потому что после отключения питания, а затем включения, аутентификация необходима снова. До сих пор изменения в hciconfig все еще остаются прежними при перезагрузке. он возвращается только при отключении питания. Если кто-нибудь нашел способ сделать hciconfig постоянным, дайте мне знать!