在没有 GUI 和 HAL 的 android 系统上解决配对 pin 交换

Posted

技术标签:

【中文标题】在没有 GUI 和 HAL 的 android 系统上解决配对 pin 交换【英文标题】:Getting around pairing pin exchange on an android system without GUI and HAL 【发布时间】:2021-02-26 07:38:41 【问题描述】:

android 系统上没有蓝牙 hal 并且只有 hciconfig, hcitool, sdptool and rfcomm我想配对主机和设备(主机:华硕BT400加密狗)。 我在安卓系统上做

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 没有蓝牙 hal 和 GUI,没有 pin diablog。我仍然想找回别针 为这个系统,以便我可以从主机配对。

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

如果有人知道,我可以重新编译 Android 内核并 printk() pin 出现在什么地方?

我不能使用除了可用的hciconfig, hcitool, sdptool and rfcomm 之外的任何其他 bluez 工具,但是如果有一些 ioctl() 或套接字要连接到 看针出现我也许可以写我自己的c-sn-p?在哪里可以找到此类 util 的模板?

最简单的方法是什么?

【问题讨论】:

【参考方案1】:

我还在目标上编译了btmgmt。随着btmgmt 在目标和主机上运行,​​我可以从控制台开始配对周期并在控制台中输入 PIN。 查看btmgmt 的源代码,似乎可以通过观察 MGMT_OP_PIN_CODE_REPLY 事件并发送 MGMT_EV_PIN_CODE_REQUEST 来自动化配对来自动化配对。

【讨论】:

以上是关于在没有 GUI 和 HAL 的 android 系统上解决配对 pin 交换的主要内容,如果未能解决你的问题,请参考以下文章

android Gui系统之SurfaceFlinger---SurfaceFlinger概论

Android HAL

如何在 Android 开发板上测试音频 HAL

Android音视频三:AudioFlinger和HAL

Android中 的HAL层简析

Android中 的HAL层简析