在没有 GUI 和 HAL 的 android 系统上绕过配对引脚交换

Getting around pairing pin exchange on an android system without GUI and HAL

在 Android 系统上 没有 蓝牙硬件并且只有 hciconfig, hcitool, sdptool and rfcomm 我想配对主机和设备(主机:Asus BT400 dongle)。 在 Android 系统上我做

hciconfig hci0 up
hciconfig hci0 sspmode 1
sdptool add SP
rfcomm ...

在我启动的主机上bluetoothctl 并做

power on
agent on
default-agent
scan on
pair <bd-addr>

但是现在要求我提供 PIN。

目标 Andoid 没有蓝牙硬件,没有 GUI,没有 pin diablog。我还是想取回密码 对于这个系统,这样我就可以从主机配对。

我可以通过命令行检索 PIN 码吗?

如果有人知道,我可以重新编译 Android 内核和 printk() 引脚吗 它出现的地方?

除了可用的 hciconfig, hcitool, sdptool and rfcomm,我无法使用任何其他 bluez 工具,但如果有一些 ioctl() 或套接字可以连接 观察出现的 pin 我可以写我自己的 c-snippet 吗?去哪里找这样一个util的模板?

最简单的方法是什么?

我也在目标上编译了btmgmt。在目标和主机上使用 btmgmt 运行 我可以从控制台开始配对周期并在控制台中输入 PIN。 查看 btmgmt 的源码似乎可以通过监视 MGMT_OP_PIN_CODE_REPLY 事件并发送 MGMT_EV_PIN_CODE_REQUEST 来自动配对。