Bluez 我可以手动控制外设的启动器密钥分配吗?

问题描述 投票:0回答:1

内核:Linux 4.9.84 armv7l 搭载
蓝兹:5.65
对等:Android 12 和 IOS 16.6
作用:Central是我的手机,Peripheral是我的板子
应用:

  • 使用 btmgmt 创建一个可绑定代理并将 io-cap 设置为 NoInputNoOutput
btmgmt power off
btmgmt connectable on
btmgmt pairable on
btmgmt le on
btmgmt bondable on
btmgmt power on
btmgmt advertising on
  • 使用手机配对开发板。

结果:

我的手机成功连接到我的开发板并为链接添加了加密,但配对过程后,中央设备未分配 IRK。没有 IRK,我无法解析中央可解析 MAC 地址。

期望:
我想使用上次生成的 LTK 来处理重新配对问题。但是,如果没有 IRK,我无法对这些 LTK 建立索引。因此,我想将 IRK 分发并存储在本地以处理重新配对问题。

我已经知道,如果外设的发起者密钥分配不包含IdKey,则中心设备将不会发送IRK。
我已经尝试过更改外设的IO能力和配对模式(从Legacy到Secure Connections),但我仍然无法更改外设的启动器密钥分配。

ps:参见 Core v5.4 vol3,H 部分,第 1602 页

任何有关此事的帮助将不胜感激!

bluetooth bluez
1个回答
0
投票

btmgmt 已经提供了处理外设 IdKeys(IRK) 分发的方法。

btmgmt privacy on // 'btmgmt power off' first or this command will be rejected 

然后,您的外设将分发其 IRK 并接收 Central 的 IRK,这将有助于解析 Central 的随机可解析地址。

© www.soinside.com 2019 - 2024. All rights reserved.