Мобильные ОС используют широковещательные запросы Wi-Fi не только чтобы найти точку доступа для подключения, но и чтобы определить местоположение устройства в помещении. У Google и Apple есть база MAC-адресов точек доступа и их географического расположения. Получив ответ от очередной точки доступа, устройство отправляет его MAC на сервер и в ответ получает координаты.
Еще по теме: Автоматическая смена MAC-адреса в Windows
Рандомизация MAC-адреса в Android Oreo
Этот механизм отлично работает, но его же можно повернуть и другим образом. Крупные торговые центры используют его, чтобы отслеживать по MAC-адресам смартфонов перемещения покупателей, более мелкие магазины — чтобы узнать, сколько раз тот или иной покупатель приходил к ним. Но еще есть спецслужбы и те, кто могут продавать такую информацию на третью сторону.
Один из методов борьбы с этим явлением — полное отключение любых сканов Wi-Fi. В Android 6, 7, 8 это можно сделать, отключив опцию Settings → Location → Scanning → Wi-Fi Scanning, в более старых версиях — через расширенные настройки Wi-Fi.
Но гораздо более правильный подход — рандомизировать MAC-адрес при каждом скане. В iOS такая функция появилась еще в восьмой версии, однако до Android, в силу огромной фрагментации и существования множества производителей чипсетов Wi-Fi, она добралась только сейчас с версией Android 8 (Android Oreo).
Функция рандомизации должна работать как минимум в Pixel, Pixel XL и Nexus 5X.