Технология A-GPS: что это и как работает?
Все чаще смартфоны используются их владельцами в качестве навигаторов, так как очень удобно всегда иметь под рукой компактное устройство, позволяющее определить свое местоположение или построить маршрут до нужного объекта.
Модуль GPS в смартфоне связывается со спутниками на орбите, получая от них сигнал, и показывает на карте свои координаты. Иногда в силу различных обстоятельств обнаружение доступных спутников может быть затруднено и занимает длительное время. Это происходит в зданиях, тоннелях, а также вблизи источников электромагнитного излучения. Даже на открытом воздухе в крупных городах с плотной застройкой могут наблюдаться перебои со спутниковым сигналом.
Для исправления этой ситуации используется функция A-GPS, которая есть в большинстве современных смартфонов.

Технология A-GPS
A-GPS — технология, предоставляющая GPS-модулю дополнительную информацию о наиболее доступных спутниках и интенсивности их сигнала. При включении навигации смартфон практически мгновенно определяет свое местоположение на карте, а поиск спутников возможен даже в закрытых помещениях, а межэтажные перекрытия не являются помехой.
Успешный старт A-GPS произошел в США осенью 2001 года в рамках коммуникационных сетей национальной службы спасения (911).
Как работает A-GPS?
Для получения актуальной информации данная технология использует альтернативные каналы связи. В случае с нашими смартфонами это интернет, предоставляемый сотовым оператором или через Wi-Fi.
A-GPS связывается со своими серверами, передавая сведения о местонахождении, которое определяется по базовым станциям (вышкам) оператора. В ответ с этих серверов поступают свежие сообщения об активных спутниках в данной местности. Используя их, геолокационный модуль смартфона оперативно устанавливает связь с нужными спутниками, не тратя время на поиск всех подряд. Чем больше базовых станций вокруг смартфона, или чем ближе пользователь находится к сотовой вышке, тем точнее регистрируется местоположение смартфона, а значит правильнее информация об имеющихся спутниках.

Плюсы и минусы A-GPS
Как мы видим, преимущества от наличия A-GPS неоспоримы. Это и быстрая установка связи со спутниками, и экономия батареи, так как при «холодном» старте и поиске сигналов модуль GPS интенсивно потребляет заряд аккумулятора. При этом связь с серверами потребляет очень мало интернет-трафика — до 10 килобайт за одну сессию. Важно, что A-GPS не требует участия пользователя, а обновление данных происходит автоматически по мере необходимости.
Но есть у данной функции и недостатки, хотя и незначительные. Она не обеспечит быструю связь со спутниками в местности с дефицитом вышек сотовых операторов или их отсутствием. Следовательно, в дали от цивилизации A-GPS бесполезен.
Несмотря на скромное потребление интернета, регулярное частое обновление и синхронизация A-GPS приведет к увеличению трафика. А при нахождении в роуминге, особенно международном, расходы на связь могут значительно увеличиться.
Как включить и отключить A-GPS?
При активации функции «Геоданные» (GPS-навигация, геолокация) смартфон предлагает выбрать метод определения местоположения. Пользователь может отдать предпочтение сохранению батареи или точности геолокации. Как правило, доступны следующие методы (названия пунктов меню могут различаться в зависимости от версии Android и производителя телефона):
- По всем источник (высокая точность). Определение местоположения происходит при помощи GPS, Wi-Fi и интернет-трафика мобильных сетей. Технология A-GPS активна.
- По координатам сети (сохранение заряда аккумулятора). Местоположение обнаруживается при помощи Wi-Fi и и мобильных сетей. Протокол GPS отключен, A-GPS активен.
- По спутникам GPS (только устройство). Определение местоположения исключительно по спутникам без использования дополнительных каналов связи. Технология A-GPS отключена.

Технология A-GPS необходима для нормальной навигации при помощи смартфона — ее можно использовать регулярно.
Эмбарго на A-GPS или почему смартфоны стали плохо определять местоположение

Ориентировочно с мая 2022 года в разных темах на форуме 4PDA и других интернет-площадках начали появляться сообщения вида «Что-то смартфон стал плохо ловить спутники GPS и показывать точное местоположение». Многие связывали это с обновлениями прошивок, пробовали откатываться на старые версии, использовать различные приложения, дергающие различные API Android для сброса настроек GPS.
Объединяло все эти жалобы два момента: все смартфоны на чипах Qualcomm Snapdragon различных поколений, и все пользователи были из РФ.
Но давайте по порядку.
Disclaimer: я не специалист GNSS и могу в чем-то ошибаться. Для раскладывания по полочкам знаний о GPS очень помогли комментарии @Jef239к одному посту.
Чтобы устройство могло определить свое местоположение по спутниковым навигационным системам (GPS, ГЛОНАСС, Galileo, Beidou, . ), ему надо принимать и успешно декодировать сигналы минимум от четырех спутников, для которых устройство знает их точное положение.
Эфемериды — это точное положение спутника на ближайшие несколько часов. Каждый спутник передает только свои эфемериды, и их прием занимает порядка 20-60 секунд.
Альманахи — это ориентировочное положение всех спутников группировки на ближайшие недели. Имея альманахи, помня свое старое местоположение и зная текущее время, устройство на старте может не анализировать всю полосу частот, а сразу вычислить, какие спутники на каких частотах (с учетом доплеровского смещения) можно ожидать услышать. Правда, это дает обратный эффект например после перелета в другой город. Прием альманахов на смартфоне занимает минимум 10-15 минут при уверенном сигнале. (В комментариях подсказывают: полное время передачи суперкадра — 12.5 минут для NAVSTAR/GPS и 2.5 минуты для GLONASS, но на практике на смартфоне в городе у меня всегда получалось больше)
Устройства без связи с интернетом (скажем, автономные GPS-навигаторы) получают эти данные только со спутников, и холодный старт на открытой местности обычно занимает несколько минут.
Устройства с доступом в интернет могут получать эфемериды, альманахи и время через интернет (это и называется A-GPS). Кроме того, смартфоны также могут определять свое приблизительное местоположение, используя информацию о вышках мобильных операторов или точках WiFi. Даже если у вас в настройках выключена геолокация по сетям от Google/Apple, некоторые приложения (скажем, 2ГИС или Яндекс Карты) могут использовать свои базы.
Благодаря всему этому люди привыкли видеть приблизительное местоположение уже через несколько секунд после открытия карты, а еще через несколько секунд ожидают увидеть точную точку на карте. А многие сейчас вообще считают, что геолокация работает только через интернет и в лесу без покрытия мобильной сети местоположение не определить в принципе — этому мнению способствует и динамическая подгрузка карт через интернет.
Итак, летом Android-смартфон стал определять местоположение с очень большой задержкой. Открываю GPSTest и пробую понять что происходит:
Смартфон видит сигналы от 7 спутников GPS, 4 спутников GLONASS и 3 спутников Galileo (столбец C/N0).
Есть эфемериды («E» в столбце Flags) только одного спутника GPS, одного спутника GLONASS (но мы его не слышим сейчас) и одного спутника Galileo.
Есть альманахи для GLONASS и Galileo («A» в стобце Flags) и в списке отображается, какие еще спутники предположительно можем услышать.
Если подождать подольше, смартфон получит эфемериды еще парочки спутников и сможет рассчитать свое местоположение, а в столбце Flags у использованных для вычисления местоположения спутников появится «U» (used):

Постойте, а почему это у нас нет альманахов для GPS? Ведь A-GPS в большинстве смартфонов в первую очередь передает данные для GPS!
Бездумно пробую в меню GPSTest нажать «Clear Assist data», «Inject PSDS data», перезапускаю приложение, перезагружаю смартфон. Теперь вообще ничего нет, и приходится ждать минут десять, пока появятся эфемериды хотя бы 4 спутников. Да, явно не работает A-GPS. На ум лезут мысли про блокировки Роскомнадзора.
А откуда там смартфон получает данные A-GPS? Гуглежка подсказывает аббревиатуры XTRA, SUPL, .
Отключаю мобильную сеть, оставляю только WiFi, запускаю tcpdump на роутере, «Clear Assist data», перезагрузка, ищу в дампе что-нибудь интересное.

«embargo.xboxprod.izatcloud.net». Имя говорит само за себя.
Смартфон идет за файлом http://path3.xtracloud.net/xtra3Mi_eph.bin
Из РФ домен «path3.xtracloud.net» резолвится так:
Отдаваемый файл xtra3Mi_eph.bin весит 191 байт.
С виртуалки в Европе:
И файл уже имеет размер 386 байт.
Все эти домены принадлежат Qualcomm. Формат данных A-GPS — проприетарный и у каждого вендора свой.
Завернув трафик смартфона в VPN на роутере, A-GPS ожил. Таким образом, стало понятно, что проблема наверняка затрагивает не одну модель, и не одного производителя смартфонов — а большинство смартфонов на чипах Qualcomm.
Как заметил @ValdikSSв комментариях, NS-сервер домена qcomgeo2.com похоже обрабатывает EDNS Client Subnet (подсеть клиента) из DNS-запроса, который передают многие публичные DNS-серверы. Таким образом, возможно простым решением может быть использование DNS-серверов, не передающих эти данные.
Возможно, некоторые производители используют другие адреса и проксируют данные через себя, но как минимум Asus, Nokia и OnePlus получают данные с этого адреса. При получении файла с домена embargo.xboxprod.izatcloud.net некоторые смартфоны затирают данные альманахов как минимум для GPS, даже если они были получены со спутников.
Обновление: в комментариях выяснили (1, 2), что как минимум некоторые смартфоны на чипах Samsung Exynos и Huawei Kirin, а так же некоторые смартфоны Samsung на чипах Qualcomm для получения информации A-GPS используют домен gllto.glpals.com , который сейчас для IP-адресов РФ выдает ошибку 403:
Судя по SOA-записи домена glpals.com, этот домен принадлежит Broadcom:
Таким образом, можно говорить о том, что устройства с чипами GNSS от Broadcom тоже не имеют возможности обновлять информацию A-GPS в РФ.
Что такое A-GPS и в чем разница от обычного GPS?
Начнем с того, что GPS или Global Positioning System является глобальной системой позиционирования. Если сказать совсем просто, то данная система представляет из себя виртуальную карту, с помощью которой пользователь может определить свое местоположение. Стоит отметить, что названная выше система не имеет ничего общего с GPRS (General Packet Radio Service), поскольку последняя представляет из себя так называемую надстройку GSM для пакетной передачи данных для доступа к мобильному Интернету.

Если все же вернуться к технологии GPS, то ею пользуются не только автомобилисты, как многие думают. Сфера использования системы GPS намного шире. К примеру, она очень популярна среди путешественников, охотников, рыбаков и прочих людей, предпочитающих активное времяпрепровождение и которым время от времени требуется информация о собственном нахождении или местоположении той или иной локации. Кроме того, если необходима информация по скорости передвижения транспортного средства и ориентировочного времени прибытия к пункту назначения – GPS может стать незаменимым средством.
Отметим, что GPS-приёмники отличаются скоростью, с которой они с момента включения могут вычислить координаты, а также чувствительностью и точностью позиционирования. Все эти параметры зависят от чипсета, который оснащен GPS-приёмник. На рынке представлены чипсеты для GPS-устройств от целого ряда производителей, однако, самыми востребованными считаются чипсеты SiRfstarIII, которые производит компания SiRf Technology. Приёмники, в оснащение которых входит чипсет SiRfstarIII, демонстрируют короткое время так называемого холодного старта, когда системой навигации не пользовались продолжительное время, оно насчитывает пару секунд. К тому же эти чипсеты дают возможность приёма сигналов сразу от 20 спутников. Более того, GPS-приёмники с чипсетами SiRfstarIII считаются самыми чувствительными и обладают высокоточной способностью определения координат.
В чем же состоит разница между GPS и A-GPS?
Для начала стоит упомянуть о том, что в технических спецификациях смартфонов фигурирует информация о разных модулях. Если в одних речь идет о GPS-модуле, то в других – о A-GPS. Та в чем же их отличие? Если в оснащение устройства входит обычный GPS-приёмник, то в ходе холодного старта (что это такое – читайте выше) поиск может затянуться поскольку навигатор не может быстро найти спутник, причем это может продолжаться не одну минуту. Причина долгого поиска спутника GPS-навигатором проста – отсутствие информации о фактическом местоположении спутника.

Если в устройстве применена технология A-GPS, то необходимая информация в оперативном режиме поступает при помощи сети GPRS, 3G или LTE (4G) (трафик не превышает 12 Кб). По своей сути, A-GPS – это программная надстройка для GPS-приёмника, с помощью которой в значительной степени может быть сокращено время поиска спутника в рамках холодного старта. Как уже было отмечено, ускорение достигается в основном за счет альтернативных каналов связи. По большому счету, чтобы технология A-GPS функционировала, требуется канал связи с удаленным сервером, от которого поступает необходимая для GPS-приёмника информация. Если вернуться к мобильным аппаратам, то в их случае это Интернет-соединение сотовой связи или с помощью Wi-Fi.
Отметим, что надстройка A-GPS имеет как преимущества, так и недостатки. Если начать с преимуществ, то стоит отметить очень быстрое определение координат непосредственно после включения. Кроме того, технология усиливает чувствительность приёма слабого сигнала в так называемых мертвых зонах – тоннелях, в помещении, в долинах т.д. Тем не менее, существенным минусом в A-GPS невозможность работать там, где нет покрытия сотовой сети. Кроме того, применение A-GPS не может быть абсолютно бесплатным, как, к примеру, GPS. Это обусловлено потреблением интернет-трафика надстройкой A-GPS, которые необходимо оплачивать в зависимости от тарификации конкретного интернет-провайдера.
Шпионят ли за мной сервисы геолокации?
Рассказываем, как работают сервисы геолокации и кто узнает, где вы находитесь, когда смартфон определяет свое местоположение.
Недавно техническую прессу обошла сенсационная новость о том, что фирма Qualcomm — один из лидирующих поставщиков чипов для смартфонов — следит за их местоположением при помощи собственного сервиса геолокации. В нашем посте разберемся, что в этой новости — правда, а что — чушь, и как на самом деле можно минимизировать слежку за геолокацией. Но для начала давайте разберемся, как вообще работает геопозиционирование.
Как мобильные устройства определяют, где я нахожусь?
Классический способ определения местоположения — прием сигнала со спутников GPS/ГЛОНАСС/Galileo/Beidou. При этом сам приемник сигнала (чип в смартфоне или навигаторе) проводит вычисления и определяет свое местонахождение. Это достаточно точный метод, который не предполагает передачу устройством какой-либо информации, только прием. Но у него есть и существенные недостатки: он не работает в помещениях и занимает много времени в случае, если приемник используется не ежедневно. Дело в том, что для проведения вычислений устройству необходимо знать точное местоположение спутников, так что ему приходится скачивать так называемый альманах, содержащий информацию об их положении и движении, что занимает 5-10 минут (если качать непосредственно со спутника).
Чтобы минимизировать временные затраты, альманах за пару секунд скачивается из Интернета, это называется Assisted GNSS (A-GPS, A-GNSS). По изначальной спецификации технологии данные передаются только для текущего момента. Но ряд производителей научились снабжать свои приемники A-GPS еще и прогнозом положения спутников на будущую неделю, ускоряя вычисление координат, даже если приемник не будет связываться с Интернетом в ближайшие дни. Такая технология называется Predicted Satellite Data Service (PSDS), и самая яркая ее реализация — фирменный сервис Qualcomm, который мы упоминали в начале поста. Этот сервис появился в 2007 году и получил название GpsOne Xtra, затем в 2013-м он был переименован в IZat XTRA Assistance, а в последней своей версии был скромно назван Qualcomm GNSS Assistance Service.
Как работает прием спутникового сигнала в помещениях и что такое SUPL?
Вернемся к первому недостатку определения местоположения с помощью приема сигнала со спутников — он может быть недоступен в помещениях, поэтому есть и другие способы определить местоположение смартфона. Классический метод еще из девяностых состоит в том, чтобы проверить, какие базовые станции сотовой сети «слышны» в текущей точке, и, сравнив их уровень сигнала и зная точное положение станций, вычислить примерное положение смартфона.
С небольшими модификациями этот метод успешно работает и в современных LTE-сетях. Также смартфоны могут проверять, какие есть поблизости точки доступа Wi-Fi, и определять примерное местоположение по ним. Последняя функция обычно работает благодаря централизованным базам данных о точках Wi-Fi и «завернута» в фирменные сервисы вроде Google Location Service.
Ну а вообще все способы определения местоположения обобщены в стандарт SUPL (Secure User Plane Location), который поддерживается сотовыми операторами, а также производителями смартфонов, ОС и чипов. Любое приложение, требующее определить местоположение, получает его от мобильной ОС при помощи самой быстрой и точной комбинации доступных в данный момент способов.
Конфиденциальность не гарантирована
Обращение к сервисам SUPL не обязательно приводит к нарушению конфиденциальности пользователя, но на практике данные «утекают» часто. При определении местоположения по сотовым базовым станциям оператор точно знает, какой абонент отправил запрос и где он в этот момент находился. Чтобы извлекать выгоду из данных геолокации, Google предоставляет информацию Location Services, записывая местоположение и идентификатор пользователя. Хотя технически мог бы этого и не делать.
Что касается A-GPS, теоретически серверы могут отдавать необходимые данные, вообще не получая идентификаторы абонентов и не сохраняя никакие их данные. Однако многие производители делают и то и другое. Так, стандартная реализация SUPL в Android отправляет в рамках SUPL-запроса IMSI смартфона (уникальный номер SIM-карты). А клиент Qualcomm XTRA на смартфоне передает «технические идентификаторы» абонентов, включая IP-адрес. По заявлению Qualcomm, через 90 дней они удаляют запись о связи идентификаторов и IP-адресов, то есть «деидентифицируют данные», и далее используют их исключительно в неких «бизнес-целях».
Важное «но» — по данным запроса A-GPS невозможно определить положение пользователя. По запросу сервер выдает альманах с информацией о положении спутников, одинаковый для всей планеты, а местоположение пользователя с его помощью вычисляется уже на его устройстве. То есть владельцы подобных сервисов в худшем случае знают, что в такое-то время к серверу обращался пользователь, но где он находился, записать не сможет.
В чем обвиняют Qualcomm
Публикации с критикой Qualcomm ссылаются на опубликованное сайтом Nitrokey исследование некоего человека под псевдонимом Paul Privacy. В этой работе утверждается, что смартфоны с чипами Qualcomm отправляют компании персональные данные пользователей. Причем делают они это без их ведома, а данные передаются по нешифрованному протоколу HTTP. И никто это не контролирует, поскольку функция реализована на уровне самой микросхемы.
Несмотря на описанные выше реальные проблемы с конфиденциальностью данных о геолокации в сервисах, подобных Qualcomm GNSS Assistance Service, это исследование скорее пугает и вводит читателя в заблуждение. Оно содержит ряд неточностей.
- В старых смартфонах информация действительно могла передаваться по незащищенному HTTP, но это прекратилось еще в 2016 году, когда Qualcomm устранила уязвимость в реализации XTRA.
- Согласно лицензионному соглашению, данные вроде «списка установленных приложений» действительно могут передаваться через сервисы XTRA, однако практические эксперименты («прослушивание» пакетов с телефона и чтение исходного кода Android) не подтверждают, что это действительно происходит.
- Вопреки изначальным заявлениям авторов исследования функция передачи данных не «зашита в чипе» (baseband), а реализована на уровне ОС. Поэтому ее вполне могут контролировать — как минимум разработчики ОС, а на практике — еще и сообщество моддеров. Заменять и отключать конкретные SUPL-серверы в смартфоне умели еще в 2012 году, но делали это не столько ради повышения конфиденциальности, сколько для ускорения работы GPS.
Защита от слежки: для всех и для осторожных
В общем, Qualcomm за нами (наверное) не следит. Тем не менее слежка через геолокацию вполне реальна, только на совсем другом уровне — ее систематически ведут погодные приложения и другие безобидные повседневные программы. Поэтому всем и каждому советуем сделать одну простую и важную вещь — сведите к минимуму число приложений, имеющих доступ к данным вашей геолокации. Ваш город в прогнозе погоды можно указать и вручную, да и при покупках через Интернет указать адрес доставки несложно.
А люди, которые вообще не хотят допустить, чтобы их геолокация где-то протоколировалась, должны принять несколько дополнительных мер защиты.