Эмбарго на A-GPS или почему смартфоны стали плохо определять местоположениеКупил тут отцу новый телефон, настраиваю его, чтобы он его о скорости и камерах предупреждал (а то лихачит он на старости лет, штрафы только успеваю оплачивать). А трубка не определяет местоположение в квартире, долго не определяет, очень долго. Странно. Оказалось не я один вижу странности.
Краткое изложение. Установлено опытным путем, что Qualcomm, Broadcom и MediaTek блокируют получение данных A-GPS, которые позволяют быстрее находить спутники. Серверы, выдающие эти данные принадлежат санкционерам, они блокируют получение данных с российских IP-адресов. Более того, обновленные прошивки некоторых телефонов удаляют полученные данные, если использовать VPN.
Статья с Хабра с сокращениями.
Ориентировочно с мая 2022 года в разных темах на форуме 4PDA и других интернет-площадках начали появляться сообщения вида "Что-то смартфон стал плохо ловить спутники GPS и показывать точное местоположение". Объединяло все эти жалобы два момента: все смартфоны на чипах Qualcomm Snapdragon различных поколений, и все пользователи были из РФ.
Чтобы устройство могло определить свое местоположение по спутниковым навигационным системам (GPS, ГЛОНАСС, Galileo, Beidou, ...), ему надо принимать и успешно декодировать сигналы минимум от четырех спутников, для которых устройство знает их точное положение.
Эфемериды - это точное положение спутника на ближайшие несколько часов. Каждый спутник передает только свои эфемериды, и их прием занимает порядка 20-60 секунд. Альманахи - это ориентировочное положение всех спутников группировки на ближайшие недели. Прием альманахов на смартфоне занимает минимум 10-15 минут при уверенном сигнале.
Устройства без связи с интернетом (скажем, автономные GPS-навигаторы) получают эти данные только со спутников, и холодный старт на открытой местности обычно занимает несколько минут.
Устройства с доступом в интернет могут получать эфемериды, альманахи и время через интернет (это и называется A-GPS). Кроме того, смартфоны также могут определять свое приблизительное местоположение, используя информацию о вышках мобильных операторов или точках WiFi. Даже если у вас в настройках выключена геолокация по сетям от Google/Apple, некоторые приложения (скажем, 2ГИС или Яндекс Карты) могут использовать свои базы.
Благодаря всему этому люди привыкли видеть приблизительное местоположение уже через несколько секунд после открытия карты, а еще через несколько секунд ожидают увидеть точную точку на карте...
А откуда там смартфон получает данные A-GPS? Гуглежка подсказывает аббревиатуры XTRA, SUPL, ... Отключаю мобильную сеть, оставляю только Wi-Fi, запускаю tcpdump на роутере, "Clear Assist data", перезагрузка, ищу в дампе что-нибудь интересное...
Смартфон идет за файлом
http://path3.xtracloud.net/xtra3Mi_eph.bin. Из России отдаваемый файл xtra3Mi_eph.bin весит 191 байт. Через европейский VPN 396 байт.
Все эти домены принадлежат Qualcomm. Формат данных A-GPS - проприетарный и у каждого вендора свой.
Завернув трафик смартфона в VPN на роутере, A-GPS ожил. Таким образом, стало понятно, что проблема наверняка затрагивает не одну модель, и не одного производителя смартфонов - а большинство смартфонов на чипах Qualcomm.
Возможно, некоторые производители используют другие адреса и проксируют данные через себя, но как минимум Asus, Nokia и OnePlus получают данные с этого адреса. При получении файла с домена embargo.xboxprod.izatcloud.net некоторые смартфоны затирают данные альманахов как минимум для GPS, даже если они были получены со спутников.
В комментариях выяснили, что как минимум некоторые смартфоны на чипах Samsung Exynos и Huawei Kirin, а так же некоторые смартфоны Samsung на чипах Qualcomm для получения информации A-GPS используют домен gllto.glpals.com, который сейчас для IP-адресов РФ выдает ошибку 403. Судя по SOA-записи домена glpals.com, этот домен принадлежит Broadcom
У меня все телефоны на Mediatek'е. Пока-что не видел описанного. Но я и пользуюсь редко. И телефоны далеко не разрекламированных топовых марок.