Постараюсь описать все это максимально кратко. Я исследовал несколько файлов gps.conf, которые в своих релизах ROM'ов используют разные разработчики, а также скрипты для модификаций, твиков, которые обычно описывают как "ЛУЧШИЙ ФИКС GPS!!!111стоодиннадцать". В этих файлах, на самом деле, много НЕВЕРНОЙ, НЕВЕРНОЙ, НЕВЕРНОЙ информации. И вот почему.
Первое, что обнаруживается - подавляющее большинство "твиков", которые вы можете найти, берут свое начало с XDA, но по мере распространения по форумам и сайтам, вбирали в себя все больше мусора. Не используйте этот пример, он содержит ошибки настроек!
NTP_SERVER=COUNTRY.pool.ntp.orgNTP_SERVER=0.COUNTRY.pool.ntp.org
NTP_SERVER=1.COUNTRY.pool.ntp.org
NTP_SERVER=2.COUNTRY.pool.ntp.org
NTP_SERVER=3.COUNTRY.pool.ntp.org
NTP_SERVER=0.REGION.pool.ntp.org
NTP_SERVER=1.REGION.pool.ntp.org
NTP_SERVER=2.REGION.pool.ntp.org
NTP_SERVER=3.REGION.pool.ntp.org
XTRA_SERVER_1=http://xtra1.gpsonextra.net/xtra.bin
XTRA_SERVER_2=http://xtra2.gpsonextra.net/xtra.bin
XTRA_SERVER_3=http://xtra3.gpsonextra.net/xtra.bin
# DEBUG LEVELS: 0 - none, 1 - Error, 2 - Warning, 3 - Info
# 4 - Debug, 5 - Verbose
DEBUG_LEVEL =0
# Intermediate position report, 1=enable, 0=disable
INTERMEDIATE_POS=0
# Accuracy threshold for intermediate positions
# less accurate positions are ignored, 0 for passing all positions
ACCURACY_THRES=0
# Report supl ref location as position, 1=enable, 0=disable
REPORT_POSITION_USE_SUPL_REFLOC=1
# Wiper (wifi positioning), 1=enable, 0=disable
ENABLE_WIPER=1
################################
##### AGPS server settings #####
################################
# FOR SUPL SUPPORT, set the following
SUPL_HOST=supl.google.com
SUPL_PORT=7276
SUPL_NO_SECURE_PORT=3425
SUPL_SECURE_PORT=7275
SUPL_TLS_HOST=FQDN
SUPL_TLS_CERT=/etc/SuplRootCert
# FOR C2K PDE SUPPORT, set the following
C2K_HOST=c2k.pde.com
C2K_PORT=1234
CURRENT_CARRIER=common
DEFAULT_AGPS_ENABLE=TRUE
DEFAULT_SSL_ENABLE=FALSE
# TRUE for "User Plane", FALSE for "Control Plane"
DEFAULT_USER_PLANE=TRUE
Вначале вы видите множество серверов. Некоторые авторы кастомов и твикоделы пошли так далеко, что даже скопировали все NTP серверы США/мира (в буквальном смысле) и вставили их в конфигурационный файл. Проблема в том, что смартфон пытается подключиться ко всем этим серверам. И если "*.pool.ntp.org" почти никогда не бывает в дауне, то некоторые хосты в бизнес доменах и .edu, обычно мертвы уже в момент создания кастома. Смартфон ждет ответа от них... и ждет... и ждет... до тех пор, пока не получит отлуп о невозможности подключиться к сервису. Умножьте эти ожидания на 15 и более - все это куча впустую потраченного времени. А ведь достаточно было прописать ТОЛЬКО пул Северной Америки.
Нужен пруф?
Этот код показывает, как на самом деле Android использует файл gps.conf. Прокрутите чуть вниз и посмотрите на уровне строки 161. "Сколько ждать, если имеется сетевая проблемы получения данных с NTP или XTRA; текущее значение - 5 минут." Похоже на время, необходимое для синхронизации при фиговом GPS, правда? И запомните, что это относится НА КАЖДОЕ СОЕДИНЕНИЕ/К КАЖДОМУ СЕРВЕРУ, перечисленным к конфигурационном файле.
Далее SUPL_HOST. На самом деле в примере значение параметра корректно, хотя существует и другие значения для ввода. Гугл - один из лучших. Свои параметры используют Nokia (supl.nokia.com), Sony (supl.sonyericcson.com), T-Mobile (10.176.29.225) и некоторые другие. Учтите, что вы можете прописать только ОДИН сервер для SUPL_HOST. Если вы видите что-то вроде этого, то знайте - это мусор:
SUPL_HOST=FQDN
Вот это (все такие классы) НЕПРАВИЛЬНО, НЕПРАВИЛЬНО, НЕПРАВИЛЬНО!!! В конфиге говорят = FQDN, то есть у вас спрашивают HOST=ЗДЕСЬ САМ ХОСТ. FQDN - это Fully Qualified Domain Name (полностью определенное имя домена), то есть вас просят в этом поле ВПИСАТЬ его; запрашивают это имя. А так как код не закомментирован, он выполняется; производятся попытки подключения к несуществующему "FQDN". Соединение, само-собою, подвиснет, а затем отвалится по таймату. Такое мусорное значение намного хуже пустого. Это как кричать "Эй, ты!" в толпе из миллиардов человек.
Как вам это? Видели эту строку? SUPL_TLS_HOST=ЭЙ, ТЫ! М-дааааа...
Касаемо этого SUPL_TLS_HOST - обычно этот параметр определяется оператором. Для T-Mobile, мы увидим "lbs .geo.t-mobile.com" и это значение корректро для сертификата. И снова, тут может быть только ОДИН КОНКРЕТНЫЙ сервер. Если у вас все равно остаются проблемы подключения, попробуйте удалить/закомментировать эту строку полностью.
Далее поддержка C2K PDE. Здесь кроется небольшая заковырка, ведь полянка ВЫГЛЯДИТ совершенно нормально (в конце-концов, у нее ведь есть имя, верно?), но это не так. Первый показатель, что здесь что-то не так - это странный номер порта "1234". Хмммм, у меня такой же код был на чемодане. Не вдаваясь в детали, это значение для проверки GPS антенны в стенах производителя и значение "c2k .pde.com" не валидно. Оно актуально только для тестирования в лабораторном окружении.
Я уверен, что владельцы сайта "pde.com" ради возросшему мобильному трафигу, но они не помогут людям получить нужные данные A-GPS. ЭТО ПОЛЕ ДОЛЖНО БЫТЬ УДАЛЕНО ИЗ ВАШЕГО КОНФИГУРАЦИОННОГО ФАЙЛА. ВЫ НЕ ИСПОЛЬЗУЕТЕ ЕГО, ВЫ И НЕ СМОЖЕТЕ ЕГО ИСПОЛЬЗОВАТЬ. НЕ ТРАТЬТЕ БУКВЫ. :)
Раз уж заговорили об этом. SUPL_SECURE_PORT и SUPL_NO_SECURE_PORT по умолчанию вообще отсутствуют в нормальных конфигах. Не знаю, кто впервые вписал их в конфиги кастомных прошивок, но делать им там нечего.
Вообще, в конфиге еще есть ошибки, но не вижу смысла переводить их все. Читателям уже очевидно, что во многих кастомах просто мусор, который значительно ухудшает работу GPS. Автор текста привел пример нормальной конфигурации, для Америки, конечно. Посмотрите, как одно должно выглядеть.
NTP_SERVER=north-america.pool.ntp.orgXTRA_SERVER_1=http://xtra1.gpsonextra.net/xtra.bin
XTRA_SERVER_2=http://xtra2.gpsonextra.net/xtra.bin
XTRA_SERVER_3=http://xtra3.gpsonextra.net/xtra.bin
SUPL_HOST=10.176.29.225
SUPL_PORT=7275
SUPL_TLS_HOST=lbs.geo.t-mobile.com
SUPL_TLS_CERT=/etc/SuplRootCert
PHONE_TYPE=UMTS