微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > iPhone使用可解析私有地址的配对问题

iPhone使用可解析私有地址的配对问题

时间:10-02 整理:3721RD 点击:

苹果的描述文件中指出iOS设备使用的是resolvable private address,我将iPhone与我的基于CC2541的BLE设备配对后再连接连不上。所以提出以下两个问题,希望有做过iOS蓝牙外设的可以帮帮忙。

1、iPhone作为主机时,使用的是resolvable private address(random address的一种)与外设通信。那么这种地址,需要怎样进行配对与绑定呢?

基于simpleBLEPeripheral的工程中,以iPhone进行配对,发现外设解析地址类型仍为ADDRTYPE_PUBLIC,(应为ADDRTYPE_PRIVATE_RESOLVE)在GAPBondMgr_ResolveAddr();函数中,这个函数中addrType是消息中传过来的,但是那里释放的消息,我就不清楚了。

    

2、使用resolvable private address的主机,与BLE外设绑定完成后,理论上外设可以通过IRK解析地址,从而识别主机。那么这个时候,主机在我从设备的白名单中吗?

丁鹭,

很好,欢迎来这里多问问。

再来一遍:

首先请注意:iPhone的地址是一直在变化的,每隔15分钟变一次,连着或者没连着外设,都会变。

 

请参考:

1. 所以iPhone 默认是不配对和绑定的。iPhone不会发起配对和绑定请求,除非外设发起。

     外设发起配对情况下,是通过在外设端,是通过IRK解析随机地址来完成绑定的,具体你可以看到gapbondmgr.c中, 有GAPBondMgr_ResolveAddr(),gapBondMgrResolvePrivateAddr() 等等。

 

2. 不在白名单。就像我电话说的,对iPhone来说,白名单不起作用。白名单里面记录的是连接上时候的那个随机地址,你放进去通过IRK解析过的真实地址没用。

我的实验中,配对请求是master发起的,iphone作为master应该会发起配对请求的吧?而且我的设备和iphone配对了的,只是第一次配对成功后,再次重新连接时,会连接不上~

不好意思,你说的是对的。我这边是外设发起了安全请求,这个安全请求会让master那边去选择是否发起配对或认证,所以造成了是iphone发起配对的假象

能够说说最后怎么解决么?谢谢。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top