Да, передатчики Android рандомизируют MAC-адрес Bluetooth. Это не относится ни к Eddystone, ни к передатчикам маяков Android всех типов, а точнее к рекламе Android BLE.
Чтобы доказать это, я провел несколько тестов на своем Nexus 5X. Используя приложение Locate Beacon для передачи маяка в формате iBeacon (те же результаты применимы к Eddystone и другим форматам), я вижу, что передаваемый MAC-адрес меняется каждый раз, когда я останавливаю и запускаю рекламу.
Мой Nexus 5X показывает свой MAC-адрес Bluetooth в меню «Настройки» -> «О телефоне» -> «Статус» -> «Адрес Bluetooth». Это 64:bc:0c:xx:xx:xx
(Примечание: я удалил последние три байта MAC-адреса, относящиеся к конкретному устройству, открыв только первые три байта, которые представляют собой OUI компании, назначенный LG Electronics, производителю Nexus 5X.)
Для этого теста я запускаю сканирование Bluetooth LE на устройстве Linux, настроенном с помощью BlueZ. Сканирование выводит MAC-адрес каждого нового найденного устройства BLE. BlueZ не шифрует этот MAC-адрес.
Далее я несколько раз запускаю и останавливаю передатчик на Nexus 5X. Каждый раз, когда я это делаю, в результатах сканирования появляется новый MAC-адрес. В приведенном ниже выводе я нажимаю клавишу возврата пару раз, чтобы после каждого обнаружения были пустые строки, чтобы показать, когда я выключаю и снова включаю передатчик.
$ sudo hcitool lescan
LE Scan ...
5C:62:56:18:DA:A5 (unknown)
5C:62:56:18:DA:A5 (unknown)
6A:E8:D1:90:CA:26 (unknown)
6A:E8:D1:90:CA:26 (unknown)
70:A8:86:F7:E9:68 (unknown)
70:A8:86:F7:E9:68 (unknown)
66:F6:B4:24:89:44 (unknown)
66:F6:B4:24:89:44 (unknown)
Как видите, каждый раз, когда передатчик запускается, он отправляет новый рандомизированный MAC-адрес, который не имеет ничего общего с физическим MAC-адресом, указанным в настройках.
person
davidgyoung
schedule
09.02.2017