TI中文支持网
TI专业的中文技术问题搜集分享网站

LAUNCHXL-CC26X2R1: 成功绑定配对过某个手机后(绑定过多台设备),BLE端如何删除某个手机配对绑定时保存的LTK?

Part Number:LAUNCHXL-CC26X2R1

成功绑定配对过某个手机后(绑定过多台设备),BLE端如何删除某个手机配对绑定时保存的LTK?

Yolande Wang:

我们的第一个建议是,在所有连接终止后进行擦除。 

如果是针对删除某个手机配对绑定的LTK,设备得有一个管理程序才能做到删除某个。

,

疾风亦有归途:

这个索引区间存储的是LTK吗?

如果是,协议栈是按照BLE_NVID_GAP_BOND_START自增的顺序去存储不同手机的LTK?

Yolande Wang said:设备得有一个管理程序才能做到删除某个。

假设是自增存储,应用程序将当前绑定的手机与BOND_INDEX联系起来存储到用户的BLE_NVID_CUST_START,您说的是这个意思吗?

,

Yolande Wang:

我刚刚查阅了资料,您说的是对的,GAP Bond Manager 将使用 OSAL SNV 来存储持久数据,例如来自 bond 的加密密钥。

,

Yolande Wang:

疾风亦有归途 said:应用程序将当前绑定的手机与BOND_INDEX联系起来存储到用户的BLE_NVID_CUST_START

认为是这样的,具体可以参考以下链接,https://software-dl.ti.com/simplelink/esd/simplelink_cc13x2_26x2_sdk/3.30.00.03/exports/docs/ble5stack/ble_user_guide/html/ble-stack-common/flash_memory-cc13x2_26x2.html#non-volatile-storage-architecture

,

疾风亦有归途:

疾风亦有归途 said:协议栈是按照BLE_NVID_GAP_BOND_START自增的顺序去存储不同手机的LTK?

那这个呢?

,

Yolande Wang:

在一个设备中,可以存在多个LTK,会存储在设备的flash中,这些LTK的排列方式并不是固定的,具体还是得看代码实现。

,

疾风亦有归途:

LTK生成及存储均有BLE协议栈管理,且如您所说排列方式不是固定,我理解我·还是无法将LTK信息和对应手机联系起来

,

Yolande Wang:

是的,目前看来是无法对应起来的,LTK没有一个唯一的特征值,比如说某个手机的Mac地址,这个东西可以是唯一的。

如果一定要操作,那么设备端首先要提供移除LTK的API出来,其次,要知道LTK与手机的对应关系,不然我们不知道删除哪个,因此,想要移除某个时间点配对绑定的手机LTK,还没有现实的方法。

所以一般来说,我们是在手机上忽略与蓝牙设备的连接;或者,手机与它连上了,有个专门的APP管理,能够看到它之前和哪些手机连接过。

我会继续跟进,后续如果有新的方法会回复您的。

,

Yolande Wang:

我明白您可能是担心设备会主动连接上之前配对过的手机,但很抱歉暂时没有找到可以删除对应手机LTK的方法。您可以在手机上进行忽略此设备/忘记此设备的操作。

,

疾风亦有归途:

手机端操作是一种办法,但是这个手机属于客户操作(我们无权控制),我们只能操作26×2端,我们还是希望操作BLE端

,

Yolande Wang:

已明确您的需求,需要一些时间。

,

疾风亦有归途:

好的,麻烦了Pray

,

Yolande Wang:

那直接删绑定记录可以达到您的目的吗?

GAPBondMgr_SetParameter(GAPBOND_ERASE_ALLBONDS, NULL, NULL),用这个API可以清除所有绑定信息。

,

Yolande Wang:

询问了嵌入式工程师,我们协议栈里没有单独删除LTK的API。

上个回答您看看能否实现您的目的。

,

疾风亦有归途:

怎么感觉这俩接口可以实现

,

Yolande Wang:

GAPBOND_ERASE_SINGLEBOND是删除单个纪录

GAPBOND_ERASE_ALLBONDS是删除所有记录

根据目前了解到的信息,您可以通过GAPBOND_ERASE_SINGLEBOND删除某个LTK,对应关系是通过地址对应的,您得知道手机的蓝牙地址。

,

疾风亦有归途:

比如刚连接某一手机(之前配对过),发现某些信息过期,记住该手机的MAC,断开连接后删除LTK是否可行?

衍生问题就是手机一般都是可解析地址,删除单个这种,可以直接使用对端的可解析地址吗?

,

Yolande Wang:

疾风亦有归途 said:比如刚连接某一手机(之前配对过),发现某些信息过期,记住该手机的MAC,断开连接后删除LTK是否可行?

可以的。

,

Yolande Wang:

衍生问题您可以开一个新帖子,因为后面可能也会有其他用户遇到和您相同的问题,新开的帖子会方便他们更容易检索到,谢谢。

,

Yolande Wang:

疾风亦有归途 said:手机一般都是可解析地址,删除单个这种,可以直接使用对端的可解析地址吗

前提是您的应用程序具有配对设备生成的IRK来执行地址解析的动作。

,

疾风亦有归途:

感谢解答Heart,我先试下,IRK那个到时候新提一个

,

Yolande Wang:

不客气,很高兴解决了问题,新问题可以再发帖提问!

赞(0)
未经允许不得转载:TI中文支持网 » LAUNCHXL-CC26X2R1: 成功绑定配对过某个手机后(绑定过多台设备),BLE端如何删除某个手机配对绑定时保存的LTK?
分享到: 更多 (0)