Android 5 статический блютуз MAC-адрес для рекламы BLE
Android 5 представляет вращающийся MAC-адрес BLE для повышения конфиденциальности. Каждый раз при вызове BluetoothLeAdvertiser.startAdvertising() MAC-адрес меняется.
Можно ли отключить ротацию адресов и просто использовать один и тот же MAC-адрес в течение всего срока службы BluetoothLeAdvertiser?
2 ответа
MAC-адрес является физическим адресом и не изменяется. В терминологии BLE это адрес публичного устройства или BD_ADDR для BR/EDR. Я не пробовал, но чтение с помощью readAddress() должно возвращать одно и то же значение каждый раз.
Платформа Android BLE НЕ использует этот адрес при рекламе. Скорее, он обеспечивает конфиденциальность, используя частные разрешаемые адреса, которые могут меняться каждые несколько минут или около того, но все же позволяют подключенным устройствам распознавать его, используя IRK, которым обмениваются при соединении.
По очевидным причинам конфиденциальности Android BLE Framework не позволяет вам настроить Контроллер на использование публичного адреса при рекламе. Таким образом, вы не можете отключить "поворот адреса".
Вы можете отключить функцию конфиденциальности BLE, чтобы избежать вращения MAC-адреса, и изменить исходный код bluedroid следующим образом:
http://androidxref.com/5.1.1_r6/xref/external/bluetooth/bluedroid/include/bt_target.h#1326
* Включает поддержку общих функций конфиденциальности LE, таких как удаленный адрес * разрешение, ротация локального адреса и т. д. * / #ifndef BLE_PRIVACY_SPT - # определить BLE_PRIVACY_SPT TRUE +# определение BLE_PRIVACY_SPT FLASE #endif