PIN 또는 기타 보안 수단을 사용하여 iPhone에서 Bluetooth 페어링 시작

PIN 또는 기타 보안 수단을 사용하여 iPhone에서 Bluetooth 페어링 시작

저는 라즈베리 파이 3(raspbian jessie)를 가지고 있으며 파이에서 페어링을 스캔하고 시작하면 현재 휴대폰과 페어링할 수 있습니다 bluetoothctl. 두 가지 주요 질문이 있습니다.

  • 해당 장치가 휴대폰의 Bluetooth 장치 목록에 나타나지 않습니다.
  • 현재 페어링하려면 Pi와의 인간 상호 작용이 필요합니다.

hcitool첫 번째 질문은 제가 광고하는 내용과 관련이 있을 수 있습니다. 저는 과거에 패킷을 설정하고 iOS Bluetooth 사양으로 작업해 왔습니다.

두 번째는 제가 주장하는 것입니다. 이상적으로는 휴대폰에 고정 PIN을 입력하고 연결하는 것이 좋습니다. 그런데 이 방법은 시대에 뒤떨어져 bluetooth-agent MY_PIN작동하지 않는다는 말을 들었습니다. (명령어를 찾을 수 없습니다.) 페어링 인증을 끄고 싶지 않습니다. 이렇게 하면 내 주변의 모든 사람들이 연결할 수 있기 때문입니다.

사용할 수 있는 더 나은 접근 방식이 있나요? 그렇지 않은 경우 PIN 인증을 작동시키는 방법에 대한 지침을 찾고 있습니다.

답변1

나는 한동안 (5 개월) 같은 문제를 겪고 있었고 우연히 발견했습니다.이 페이지어제

처음 몇 가지 설명에서는 Pi에서 Bluetooth PIN을 구현하는 방법을 보여줍니다. 설치 후 그것은 나를 위해 일했습니다이것(PIN을 구현하기 위해 일부 파일을 변경하기 전에 이것을 설치했습니다.

기본적으로 절차는 다음과 같습니다.

존재하다/etc/apt/sources.list, "deb-src"로 시작하는 줄의 주석 처리를 제거한 후 a sudo apt-get update및 a를 실행합니다.cd /usr/src; sudo apt-get source bluez


파일에서 /usr/src/bluez-5.23/test/simple-agent이 섹션을 변경하십시오 . return ask("Enter PIN Code: ")
다음을 입력하십시오. return "1234"여기서 1234는 사용하려는 핀 코드입니다.
그 후 다음 스크립트를 생성합니다./usr/빈, btscript.sh라고 부르겠습니다.

#!/bin/sh
result=`ps aux | grep -i "simple-agent" | grep -v "grep" | wc -l`
if [ $result -ge 0 ]; then
    sudo hciconfig hci0 piscan
    sudo hciconfig hci0 sspmode 0
    sudo /usr/bin/python /usr/src/bluez-5.23/test/simple-agent &
else
    echo "BT Agent already started" 
fi

파일 앞에 다음 행을 추가하여 sudo chmod +x
스크립트를 실행 가능하게 만듭니다 .exit 0/etc/rc.local
/usr/bin/btscript.sh

그런 다음 컴퓨터를 다시 시작하세요.sudo reboot

PIN을 사용하여 Pi에 연결할 수 있어야 합니다.

그래도 앞서 언급했듯이여기, iOS 기기를 사용하여 Pi를 볼 수 있지만 한 번만 볼 수 있으므로 기기에서 Pi를 잊어버리지 않도록 하세요. 그렇지 않으면 더 이상 Pi에 연결할 수 없게 됩니다.

이 문제를 해결하려면 다음과 같은 스크립트를 작성하십시오.bt_iphone.sh를 입력하고 다음 코드를 입력하세요.

#!/bin/sh
sudo hciconfig hci0 sspmode 1 # Activate SSP which is the current standard
# for bluetooth pairing, this will make the RPi discoverable again but
# with a passkey instead of a PIN code
echo -e 'power off\n quit ' | bluetoothctl # Make the RPi undiscoverable
sleep 5
echo -e 'power on\n quit ' | bluetoothctl # Make the RPi discoverable again
sleep 1
sudo hciconfig hci0 sspmode 0 # Deactivate SSP and activate PIN code authentication
exit 0

실행 가능하게 만들고 sudo chmod +x bt_iphone.shcrontab을 사용하여 매분마다 이 스크립트를 실행합니다. crontab -e파일 끝에서 다음을 수행합니다. * * * * * sudo bash /path/to/bt_iphone.sh

우아하지는 않지만 작동하는 것 같습니다. 누구든지 마지막 문제에 대한 더 나은 해결책을 가지고 있다면 제안을 받을 수 있습니다.

문제가 여전히 존재하며(iDevices에만 해당), PIN 코드에 대한 시간 초과가 발생하고, PIN 코드 화면이 나타난 후 3초 이내에 PIN 코드를 입력하고 확인하지 않으면 연결할 수 없습니다. 아직 해결책을 찾지 못했습니다.

관련 정보