Оригиналът е на руския потребител KorDen32, който предоставя интересен материал за размисъл
През месец май тази година в различните теми на форума 4PDA и другите интернет портали започнаха да се появяват съобщения от типа „Моят смартфон започна нещо твърде зле да приема сигналите от GPS сателитите и не показва точните координати на моето местоположение“. Мнозина си помислиха, че причината за това са излезлите нови фърмуери и някои хора започнаха да се връщат към техните предишни версии, да пробват да използват най-различни специализирани приложения за промяна на различните GPS настройки в ОС Android. Постепенно стана ясно, че във всичките оплакания от подобен род се повтарят две неща: това са единствено смартфоните, базирани на чиповете Qualcomm Snapdragon и че всички пострадали потребители са от територията на Руската Федерация. Да се опитаме да разберем какво се случва.
За да може дадено мобилно устройство да определи своето местоположение с помощта на сателитните навигационни системи (GPS, ГЛОНАСС, Galileo, Beidou, …), то трябва да приеме и успешно да декодира сигналите от минимум четири от тези сателита, за които самото устройство има информация къде се намират.
Известно е, че ефемеридите са прецизна информация за сателита на дадена орбита, която се обновява на всеки няколко часа. Всеки сателит излъчва единствено своите ефемериди, а тяхното приемане става за около от 20 до 60 секунди.
Алманасите показват ориентировъчното положение на сателитната групировка за през следващите седмици. Разполагайки с тези алманаси и помнейки своето предишно местоположение и знаейки текущото време, на мобилното устройство не се налага да анализира цялата честотна лента, а може веднага да изчисли кои сателити на какви честоти с поправка на доплеровия ефект, могат да бъдат очаквани да бъдат чути. По този начин значително се опростяват изчисленията и алгоритмите, но от друга страна, ако вашият GPS не е бил използван в продължение на дни или седмици или е бил транспортиран на значително разстояние, докато е бил изключен, са му необходими около 10-15 минути уверен прием на сигналите от GPS сателитите, за да започне да определя координатите.
Устройствата без връзка с интернет, като например автономните GPS навигатори, получават тези данни единствено от сателитите и тяхното студено стартиране на открито отнема няколко минути, но те работят уверени при всякакви условия. От друга страна, устройствата с достъп до интернет получават ефемеридите, алманасите и точното време именно чрез интернет и всъщност затова тази технология носи името A-GPS. Освен това смартфоните по специално, могат да определят своето местоположение използвайки информацията от базовите станции на мобилните оператори, по някои големи Wi-Fi точки и други. Дори и ако във вашия мобилен телефон е изключена геолокацията чрез мобилните мрежи на Google и Apple, някои приложения (картите на Яндекс и други) могат да откриват местоположението на смартфона чрез своите специално подготвени бази данни.
Благодарение на всичко това хората свикнаха да виждат приблизителното си местоположение само няколко секунди след като отворят приложението Google Maps и други подобни, да видят точката с точното местоположение на електронната карта. Интересно е, че много хора считат, че геолокацията работи само чрез интернет, и в гората, където няма покритие от нито един мобилен оператор, по принцип е невъзможно да бъде определено местоположението. Това може и да е вярно, понеже някои смартфони са проектирани по такъв начин, че не могат да покажат точното местоположение без да имат достъп до Глобалната мрежа.
И така, през лятото на тази година моят Android смартфон започна да определя местоположението с много голямо забавяне. Отворих GPSTest (има го в Google Play), за да се опитам да си изясня какво става.
Ето какво се случва:
- Смартфонът вижда сигналите от 7 GPS сателита, 4 GLONASS сателита и 3 сателита на системата Galileo (колонката C/N0)
- За Русия са налични ефемеридите (Е в колонката Flags) от само един GPS сателит, един GLONASS сателит и един Galileo сателит
- Има алманаси за GLONASS и Galileo (А колонката Flags)
Ако изчакаме малко повече, смартфонът ще получи и ефемеридите на още една двойка сателити и вече ще може да пресметне своето местоположение, а в колонката Flags можем да видим сигналите от кои всъщност сателити са използвани за пресмятането на местоположението. Те са обозначени с U (Used)
Но чакайте, чакайте малко! Защо имаме алманаси за GLONASS и Galileo, а нямаме за GPS? Та нали на практика всички смартфони най-напред приемат GPS информацията?
Безсмислено пробвам в менюто на GPSTest да кликна върху Clear Assist data, Inject PSDS data, рестартирам приложението, рестартирам и смартфона… Сега пък нищо няма и ще трябва да чакам над 10 минути, докато се появят ефемеридите за поне 4 сателита. Да, GPS очевидно не работи. Дали Роскомадзор няма нещо общо с това…
Всъщност, откъде смартфонът получава A-GPS данните? Едно бързо търсене с търсачката на Google показа абревиатурите XTRA, SUPL …
Изключвам мобилната мрежа в опциите на мобилния телефон, оставям само Wi-Fi и стартирам tcpdump в рутера, правя Clear Assist data, рестартирам и търся в дъмпа нещо интересно…

Смартфонът търси файла http://path3.xtracloud.net/xtra3Mi_eph.bin. За територията на Русия домейнът path3.xtracloud.net се преобразува по следния начин:
path3.xtracloud.net. 32 IN CNAME path3_new.qcomgeo2.com.
path3_new.qcomgeo2.com. 29 IN CNAME embargo.xboxprod.izatcloud.net.
embargo.xboxprod.izatcloud.net. 26 IN A 54.70.12.181
embargo.xboxprod.izatcloud.net. 26 IN A 54.70.147.98
embargo.xboxprod.izatcloud.net. 26 IN A 34.215.213.136
От така преобразувания домейн се изтегля файла xtra3Mi_eph.bin с големина 191 байта.
Сменям IP адреса да е европейски. И се получава следното:
path3.xtracloud.net. 0 IN CNAME path3_new.qcomgeo2.com.
path3_new.qcomgeo2.com. 0 IN CNAME xtrapath6.xboxprod.izatcloud.net.
xtrapath6.xboxprod.izatcloud.net. 0 IN A 18.66.97.127
xtrapath6.xboxprod.izatcloud.net. 0 IN A 18.66.97.57
xtrapath6.xboxprod.izatcloud.net. 0 IN A 18.66.97.95
xtrapath6.xboxprod.izatcloud.net. 0 IN A 18.66.97.23
Да, големината на този файл е 386 байта.
Всички тези домейни принадлежат на Qualcomm. Разбира се, форматът на A-GPS е фирмен и е различен за всеки производител на смартфони.
След като прехвърлих трафика на смартфона да минава през VPN, A-GPS моментално оживя. По този начин стана ясно, че проблемът със сигурност не засяга само един модел смартфони и дори не само един производител на смартфони. Проблемът се проявява във всички мобилни телефони с чипове на Qualcomm. Това е така, понеже именно през техните домейни преминава A-GPS информацията и там се осъществява това така нареченото в името на домейна „ембарго“, което важи само за територията на Руската Федерация.
Възможно е редица други производители на смартфони да използват други домейни с други адреси или да използват някой собствен прокси сървър, за да изпращат тези данни. Но нашата малка проверка показа, че минимум ASUS, Nokia и OnePlus получават необходимите данни именно по този адрес. Има и още – при получаването на данните от домейна embargo.xboxprod.izatcloud.net с наложено ембарго, някои смартфони направо изтриват данните на алманасите за GPS навигацията, дори и те успешно да са получени от сателита.
Статията предизвика огромен интерес и много коментари, явно защото включва интересна и проверена на практика информация. Техническото решение на този проблем е едно истинско предизвикателство. Направените от многобройните потребители проверки показаха, че при използването на DNS гейтуей 8.8.8.8 на Google и 1.1.1.1 на Cloudflare, адресът за получаване на A-GPS данните също включва думата embargo и това не може да реши проблема. А използването на 9.9.9.9 на quad9.net препраща към коректния домейн, който няма embargo. Само след няколко часа и 9.9.9.9 престана да препраща към оригиналния домейн и започна да връща преобразувания адрес на домейна, в който има embargo.
От същия проблем започнаха да се оплакват и притежателите на автомобили с автомобилни навигатори, в които се използва Android само с GPS, Оказа се, че при тях това е започнало през месец април тази година. Но тези оплаквания не са много и не са потвърдени.