问题 用于BLE广告的Android 5静态蓝牙MAC地址
Android 5引入了BLE MAC地址轮换以增加隐私。每次调用BluetoothLeAdvertiser.startAdvertising()时,MAC地址都会更改。
是否可以禁用地址旋转,并在BluetoothLeAdvertiser的整个生命周期内使用相同的MAC地址?
8509
2018-02-19 09:26
起源
答案:
MAC地址是物理地址,不会更改。在BLE术语中,它是BR / EDR的公共设备地址或BD_ADDR。我没有尝试过,但是用readAddress()读取它应该每次都返回相同的值。
Android的BLE框架所做的是在广告时不使用该地址。它通过使用可以每隔几分钟左右更改一次的私有可解析地址来实现隐私,但仍然允许绑定设备使用在绑定时交换的IRK来识别它。
出于明显的隐私原因,Android的BLE框架不允许您在广告时将Controller设置为使用公共地址。所以你不能禁用“地址旋转”。
13
2018-02-19 17:06
你能加点某种来源吗? - DagW
蓝牙4.2核心规格: bluetooth.org/DocMan/handlers/DownloadDoc.ashx?doc_id=286439 - Bogdan Alexandru
@BogdanAlexandru如果广告包只有Private Resolvable Addresses,那么,怎么做 ScanFilter 基于MAC地址工作?任何想法? - Khaled Alanezi
@KhaledAlanezi没有。过滤可解析的唯一方法是使用4.2的增强隐私功能,将IRK设置为控制器,后者在扫描期间自动解析。但是,和许多其他事情一样,我不认为这些选项在Android的公共API中可用。 - Bogdan Alexandru
答案:
MAC地址是物理地址,不会更改。在BLE术语中,它是BR / EDR的公共设备地址或BD_ADDR。我没有尝试过,但是用readAddress()读取它应该每次都返回相同的值。
Android的BLE框架所做的是在广告时不使用该地址。它通过使用可以每隔几分钟左右更改一次的私有可解析地址来实现隐私,但仍然允许绑定设备使用在绑定时交换的IRK来识别它。
出于明显的隐私原因,Android的BLE框架不允许您在广告时将Controller设置为使用公共地址。所以你不能禁用“地址旋转”。
13
2018-02-19 17:06
你能加点某种来源吗? - DagW
蓝牙4.2核心规格: bluetooth.org/DocMan/handlers/DownloadDoc.ashx?doc_id=286439 - Bogdan Alexandru
@BogdanAlexandru如果广告包只有Private Resolvable Addresses,那么,怎么做 ScanFilter 基于MAC地址工作?任何想法? - Khaled Alanezi
@KhaledAlanezi没有。过滤可解析的唯一方法是使用4.2的增强隐私功能,将IRK设置为控制器,后者在扫描期间自动解析。但是,和许多其他事情一样,我不认为这些选项在Android的公共API中可用。 - Bogdan Alexandru
您可以禁用BLE隐私功能以避免MAC地址旋转,
并更改bluedroid源代码如下:
*切换支持一般LE隐私功能,如远程地址
*分辨率,本地地址轮换等
* /
#ifndef BLE_PRIVACY_SPT
- #define BLE_PRIVACY_SPT TRUE
+ #define BLE_PRIVACY_SPT FLASE
#万一
1
2018-01-19 08:15