Почему в ваших кастомах плохо работает GPS
Постараюсь описать все это максимально кратко. Я исследовал несколько файлов 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