Android 5的BLE广告静态蓝牙MAC地址

15

Android 5引入了BLE MAC地址轮换以增加隐私保护。每次调用BluetoothLeAdvertiser.startAdvertising()时,MAC地址都会更改。

是否可以禁用地址轮换,并在整个BluetoothLeAdvertiser生命周期内仅使用相同的MAC地址?

2个回答

19

MAC地址是物理地址,不会更改。在BLE术语中,它是BR/EDR的公共设备地址或BD_ADDR。我没有尝试过,但使用readAddress()读取它应该每次返回相同的值。

Android的BLE框架所做的事情并不是在广告中使用该地址。它使用私有可解决地址通过启用隐私,这些地址每隔几分钟就可能更改一次,但仍允许已经绑定的设备使用在配对时交换的IRK来识别它。

由于明显的隐私原因,Android的BLE框架不允许您设置控制器在广告中使用公共地址。因此,您无法禁用“地址轮换”。


你能添加一些来源吗? - DagW
2
蓝牙4.2核心规范:https://www.bluetooth.org/DocMan/handlers/DownloadDoc.ashx?doc_id=286439 - Bogdan Alexandru
@BogdanAlexandru 如果广告数据包只有私有可解析地址,那么基于MAC地址的ScanFilter如何工作?有任何想法吗? - Khaled Alanezi
@KhaledAlanezi 这不行。筛选可解析地址的唯一方法是使用4.2增强隐私功能,在其中将IRK设置到控制器,并在扫描期间自动解析。然而,就像许多其他事情一样,我认为这些选项在Android的公共API中不可用。 - Bogdan Alexandru

3
您可以禁用BLE Privacy功能,以避免MAC地址旋转,并按照以下方式更改bluedroid源代码:
    * 切换支持一般LE隐私特性(如远程地址解析、本地地址旋转等)。
    */
#ifndef BLE_PRIVACY_SPT -#define BLE_PRIVACY_SPT TRUE +#define BLE_PRIVACY_SPT FLASE #endif
请点击此处获取更多信息。

错了吧?别开玩笑了,伙计 :) - KaHa6uc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接