Сегодня в очередной раз задумался над темой плохого приема GPS сигнала на моем китайском смартфоне Jiayu G2. Но, неожиданно для меня, проблема решилась буквально за пару минут — «китаец» находит спутники в течение 20 секунд. А теперь обо всем по-порядку. В октябре мне пришел китайский телефон, заказанный на Aliexpress. Телефон за такие деньги отличный, и все было бы идеально, но модуль GPS находил спутники очень-очень долго, примерно за час, не быстрее. И это при включенном Wi-Fi и установленных галочках A-GPS и GPS EPO assistance. Меня это совсем не радовало и пришлось вспоминать полезный пост в блоге livejournal, советами из которого я пользовался настраивая еще свой первый смартфон на Android. Суть сводилась к редактированию gps.conf вспомогательными программами. «Китайскому приятелю» это помогло, но после первого (и пока последнего) сброса на заводские настройки GPS стал ловить еще хуже — оставлял на час на открытом воздухе в на поиск спутников и никакого результата. И вот сегодня я начал опять искать тот полезный пост в блоге livejournal и наткнулся на обновление в шапке поста:

«Фантастика!» подумал я и без промедления перешел по ссылке. По сравнению с первым постом в этот раз предлагались еще более конкретные действия, а именно заменить содержимое файла gps.conf (его можно найти по пути /etc/gps.conf, должны быть root-права) на следующие настройки: Эти настройки рассчитаны на жителей Украины, но для жителей России их очень легко адаптировать заменив ua.pool на ru.pool. Далее нужно перезагрузить Android, а затем запустить программу для работы с GPS и наслаждаться стабильным сигналом. От себя могу добавить, что я пользуюсь приложением GPS Status и после перезагрузки при первом запуске приложения я сделал сброс данных кэша: в программе вызываем меню, далее выбираем Tools, там Manage A-GPS state и жмем Reset, а затем Download. Снимаю шляпу перед автором оригинального поста, уважаемым mechanicuss. Его совет помог не только мне, и может помочь еще многим страдающим. На этом все. Всем чистого неба и стабильного сигнала из космоса. 587 431.1k 587 Я уже давно заметил, что мой любимый смартфон ищет спутники неприлично долгое количество времени даже для кирпича за 150$. Конечно же, использование навигатора не входит в мои каждодневные задачи, однако же хочется, чтобы при случае вся эта котовасия длилась не 10-15 минут, а в человеческих пределах.Как выяснилось, конфиг GPS на андроидофонах хранится в файле gps.conf (лежит он по адресу /etc/gps.conf). Но это на нормальных, у меня его вообще не было. Никто, однако, не мешает его создать в кошерном блокноте и добавить туда волшебные строчки:gps.conf

 NTP_SERVER=ru.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 SUPL_HOST=supl.google.com SUPL_PORT=7276 

Пара слов о том, как это работает. Есть такая технология — A-GPS, которая ускоряет «холодный» старт GPS-приемника, для этого используются базовые станции и сервер поддержки (SUPL-сервер). Еще для успешного определения местоположения используется NTP-протокол для синхронизации точного времени. Некоторые конфиги настроены не совсем корректно (например, указаны басурманские NTP-сервера), поэтому все так долго происходит. В общих чертах как-то так, короче.Особо жопорукие могут скачать готовый файл: gps.conf :-)Предвосхищая некоторые вопросы:

  1. Да, нужен рут!
  2. Редактировать этот файл можно в Root Explorer, предварительно дав права R/W.
  3. Да, работает только при включенном инете, если у вас нет постоянной связи с сетью, юзайте GPS Updater.
  4. Если вы не знаете, что такое рут и рекавери, даже не пытайтесь ничего делать.
  5. Мне похуй, что это всем известно, я нашел этот способ только сегодня.
05.04.2015(UPD 08.01.2016)

Медленный поиск GPS-спутников — довольно частое явление на смартфонах, купленных из-за рубежа или перепрошитых на кастомные прошивки. Причина проста — настройки A-GPS в них указаны либо местные либо больно уж краткие.

Немного теории с википедии. A-GPS (англ. Assisted GPS) — технология, ускоряющая «холодный старт» GPS-приёмника. Ускорение происходит за счет предоставления необходимой информации через альтернативные каналы связи (расчёт сервером расстояния между сигналами(ом) GSM антенн(ы)). Часто используется в сотовых телефонах, содержащих и приемник GPS.

Теперь ближе к практике. Сами настройки находятся в файле /etc/gps.conf. Редактирование его без root-прав невозможно. Эти настройки подсказывают A-GPS откуда запрашивать текущее местоположение спутников. Разумеется, для работы A-GPS требуется интернет-соединение.

Пример настроек из прошивки CyanogenMod 10.2 (да-да, это полные настройки A-GPS в этой прошивке):

XTRA_SERVER_1=http://xtra1.gpsonextra.net/xtra.binXTRA_SERVER_2=http://xtra2.gpsonextra.net/xtra.binXTRA_SERVER_3=http://xtra3.gpsonextra.net/xtra.bin

Это альтернативные (экстра) серверы и их достаточно для работы, но наша задача ведь в скорости, не так ли? Решение скорости поиска спутников довольно простое: нужно заполнить этот файл оптимальными настройками для Вашего региона.

Если у Вас нет желания искать оптимальные настройки, то можете скачать файл настроек отсюда и заменить имеющийся у Вас. Крайне желательно сохранить где-нибудь прошлую версию файла — бэкапы лишними не бывают. Файл для России находится здесь: ссылка. После замены файла необходимо задать ему разрешения rw-r—r—, затем перезагружайте устройство и проверяйте работу GPS.

Если поиск всё ещё медленный, то проверьте включено ли интернет-соединение и не забывайте, что холодный старт всегда дольше горячего. Поиск длится больше нескольких минут? Продолжим настройки.

Главный минус решения выше в том, что настройки переполнены. Например, они содержат много NTP-серверов — поиск спутников не начнётся пока A-GPS не проверит их всех. Если какой-то из серверов будет недоступен, то попытки соединиться с ним прекратятся через 60 секунд. Три сервера — 3 минуты и т.д. При полной работоспособности всех серверов и быстром интернет-соединении проблем в скорости поиска спутников быть не должно. Но если какое-нибудь из этих условий не выполняется, то лучше сократить список NTP-серверов.

Оптимальным решением будет указывание нескольких основных NTP-серверов, для европейской части России это будут российский (ru.pool.ntp.org) и европейский (europe.pool.ntp.org). Для азиатской части России рекомендую использовать азиатский сервер (asia.pool.ntp.org). Для Украины ua.pool.ntp.org, для Казахстана kz.pool.ntp.org, для Беларуси by.pool.ntp.org. Обратите внимание, что по этим ссылкам даётся подсказка какие NPT-сервера лучше использовать для конкретной страны — их и используйте в gps.conf.

Далее SUPL_HOST и SUPL_PORT. Их существует несколько (свои, например, есть у Nokia и у T-Mobile), но по стандарту можно указать гугловые. Иногда в конфигах можно встретить эту строчку, но она равносильна ошибке, ибо FQDN — это аббревиатура от «Fully Qualified Domain Name», т.е. «полностью определённое имя домена»:

SUPL_HOST=FQDN

В итоге получается вот такой пример оптимального gps.conf для европейской части России (скачать можно отсюда):

NTP_SERVER=ru.pool.ntp.orgNTP_SERVER=0.ru.pool.ntp.orgNTP_SERVER=1.ru.pool.ntp.orgNTP_SERVER=2.ru.pool.ntp.orgNTP_SERVER=3.ru.pool.ntp.orgNTP_SERVER=europe.pool.ntp.orgNTP_SERVER=0.europe.pool.ntp.orgNTP_SERVER=1.europe.pool.ntp.orgNTP_SERVER=2.europe.pool.ntp.orgNTP_SERVER=3.europe.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 SUPL_HOST=supl.google.com SUPL_PORT=7276

Остальные настройки маловажны или вовсе не нужны.

Дополнительно

  • GPS Test для тестирования скорости поиска спутников
  • Root Explorer или ES Проводник для доступа к файлу gps.conf

Как ускорить подключение GPS и увеличить точность GPS на Андроид. В данной статье вы узнаете как с помощью не сложных манипуляций в несколько десятков раз ускорить подключение GPS и увеличить и его точность на смартфонах и планшетах на ОС Android!

Теория

GPS () — система необходимая для  высокоточного определения месторасположения, используется для навигации и   других целях.

A-GPS — усовершенствованная система GPS, которая ускоряет холодный и горячий старт, за счет дополнительных каналов связи (WI-FI, сотовая связь), а также повышает точность позиционирования.

Холодный и горячий старт GPS — модуль GPS записывает данные о расположение спутников и другие значения (альманах), при их отсутствие или если данные устарели происходит холодный старт, который может продлиться от 5 — 15 минут, в течение этого времени модуль будет обновляться информация о GPS спутниках и в дальнейшем пытаться к ним подключиться, если модуль имеет все данные и они не устарели происходит горячий старт, время подключения к спутникам длиться 1 — 5 минут.

Абсолютно во всех новых смартфонах и планшетах Android (в которых есть GPS) используется A-GPS.

Ускорить  подключение GPS и увеличить его точность

Необходимое

1. Наличие  Root прав на Android смартфоне или планшете

2. Файловый менеджер с доступом в раздел /system, например Root Browser

3. Компьютер

Извлечь файл GPS.CONF

За работу GPS модуля в Android отвечает файл GPS.CONF, который необходимо извлечь из системного раздела. Находиться он по пути /system/etc/gps.conf и переместить во внутреную память или SD карту, чтобы в дальнейшем редактировать его на ПК.

Редактирование GPS.CONF

Чтобы ускорить подключение GPS и увеличить его точность необходимо изменить настройки GPS.CONF. Откройте его с помощью Notepad++. В зависимости от производителя вы можете увидеть различные внесенные настройки.

Настройка NTP сервера

Приступим к модернизации файла GPS.CONF! Первое что необходимо выполнить — это дописать или переписать NTP_SERVER.  NTP — это это высокоточный сервер синхронизации времени. В зависимости от вашего место расположения необходимо изменять главный NTP сервер. Как вы можете видеть выше на скрине указан сервер north-america.pool.ntp.org, что явно не ускорит подключение к GPS если вы к примеру находитесь в  Белоруссии, Украине, России. Поэтому необходимо прописать «местный» сервер:

Для Белоруссии идеальным NTP является: by.pool.ntp.org
Для Украины идеальным NTP является: ua.pool.ntp.org
Для России идеальным NTP является: ru.pool.ntp.org

Также можно воспользоватся общим сервером для Европы: europe.pool.ntp.org

Пример как должно быть записано

NTP_SERVER=by.pool.ntp.org     <——  Для Белоруссии
NTP_SERVER=ua.pool.ntp.org     <——  Для Украины
NTP_SERVER=ru.pool.ntp.org     <——  Для России

также можно дополнительно внести еще один сервер Европы, в случае не работы из одного из местных серверов

Пример:

NTP_SERVER=europe.pool.ntp.org
NTP_SERVER=by.pool.ntp.org

Некоторые ромоделы кастомных прошивок вносят множество других NTP сервером, что не есть верно, так как, при этом подключение наоборот замедляется, из-за того что 5-6 серверов может не работать, а Android все равно будет тратить время на соединение.

Также существует альтернативные сервера XTRA их рекомендуется вписать и не выполнять никаких изменений

Задействовать или не задействовать WI-FI

Для увеличения точности навигации, а также увеличения подключения к спутинкам GPS можно задействовать беспроводной протокол передачи данных WI-FI. Для этого необходимо вписать следущий параметр:

ENABLE_WIPER=

Значение 1 разрешит использовать WI-FI, значение 0 наоборот запретит

Например:

ENABLE_WIPER=1     <—— использовать WI-FI
ENABLE_WIPER=0    <—— не использовать WI-FI

Отчет промежуточных позиций (точность GPS или скорость подключения)

Данный параметр отвечает за скорость и точность GPS, если  больше скорость (холодный и горячий старт), то меньше точность

INTERMEDIATE_POS=

Значение 0 —  точные данные, медленней подключение.

Значение 1 — менее точные данные (чем дольше проработает, тем точней будут в течение одной сессии), но быстрей подключение.

Например:

INTERMEDIATE_POS=0    <—— точно, но медленно
INTERMEDIATE_POS=1    <—— не точно, но быстро

Порог точности промежуточных позиций (точность GPS)

Данный параметр, откидывает погрешности

INTERMEDIATE_POS=

Значение 0 — учитывать все данные

Значение 100, 200, 300, 1000, 5000 — удаляет погрешности

Рекомендуется выставлять параметр 0, но вы можете поэкспериментировать

Например

INTERMEDIATE_POS=0    <——  все промежуточные позиции
INTERMEDIATE_POS=5000    <—— игнорируются менее точные

 Задействовать A-GPS (скорость, точность)

Параметр отвечает за то будет включен или отключен A-GPS (при включенном точней)

DEFAULT_AGPS_ENABLE=

Значение TRUE —  использовать A-GPS

Значение FALSE — не использовать A-GPS

Например

DEFAULT_AGPS_ENABLE=TRUE    <——  использовать
DEFAULT_AGPS_ENABLE=FALSE    <——  не использовать

 Подключение к точки соединения (Supplicant)

Прописать такие значения если не указаны:

SUPL_HOST=supl.google.comSUPL_PORT=7276

Тип использования передачи данных в A-GPS

Параметр отвечает за количество передаваемой информации, служебная «Control Plane» или широкая передача абонентских данных «User Plane» . Рекомендуется использовать «User Plane».

DEFAULT_USER_PLANE=

Значение TRUE —  использовать User Plane

Значение FALSE — использовать Control Plane

Например:

DEFAULT_USER_PLANE=TRUE    <—— User Plane
DEFAULT_USER_PLANE=FALSE    <—— Control Plane

 Итоговый вариант файла GPS.CONF

Отредактированный вариант файла GPS.CONF сохранить и забросить обратно в Android и перезагрузить его! Поздравляю вы смогли ускорить подключение GPS и увеличить его точность на вашем Android!

Легкий способ для Ленивых

Для тех кто не хочет экспериментировать и хочет положиться на чужой опыт, можете воспользоваться готовым, модифицированным файлом gps.conf. По заявлению авторов BlackIce Team подключения к GPS спутникам происходит практически мгновенно.

Все что вам нужно — это скачать gps.conf для своей страны и забросить его по пути /system/etc, после чего перезагрузить Android.

UPD — третья часть статьи: Ускорение GPS на Android — 3В первой части статьи Ускорение работы GPS на Android я описывал программы и приемы, ускоряющие работу GPS на Android-устройствах. Там же был приведен пример альтернативного файла gps.conf, ускоряющего процесс определения координат. Файл gps.conf находится в /system/etc/gps.conf , а не на карте памяти, где его обычно ищут начинающие пользователи. Для редактирования нужен root. Редактировать можно с помощью Root Explorer, либо ES Проводник (в меню настроек в разделе «Root-права» включите опцию «Root-эксплорер» и «Подключить системные папки»).Для сравнения — ранее у меня на HTC Inspire 4G спутники ловились единицы минут, после его применения — 30-60 секунд. С тех пор много воды утекло, но я не прекращал поисков еще более быстрого решения. И вот сегодня могу представить вам синтезированный из нескольких найденных в Сети новый файл gps.conf, c которым процесс определения координат занимает 5-10 секунд. Т.е. к моменту завершения запуска программы навигации координаты уже определены. Файл адаптирован для Украины, но его легко переделать и для других стран Европы — в первых нескольких строках меняем «ua», например на «ru» — получаем файл для России, и т.п.

 NTP_SERVER=ua.pool.ntp.org NTP_SERVER=0.ua.pool.ntp.org NTP_SERVER=1.ua.pool.ntp.org NTP_SERVER=2.ua.pool.ntp.org NTP_SERVER=3.ua.pool.ntp.org NTP_SERVER=europe.pool.ntp.org NTP_SERVER=0.europe.pool.ntp.org NTP_SERVER=1.europe.pool.ntp.org NTP_SERVER=2.europe.pool.ntp.org NTP_SERVER=3.europe.pool.ntp.org XTRA_SERVER_1=/data/xtra.bin AGPS=/data/xtra.bin AGPS=http://xtra1.gpsonextra.net/xtra.bin 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 DEFAULT_AGPS_ENABLE=TRUE DEFAULT_USER_PLANE=TRUE REPORT_POSITION_USE_SUPL_REFLOC=1 QOS_ACCURACY=50 QOS_TIME_OUT_STANDALONE=60 QOS_TIME_OUT_agps=89 QosHorizontalThreshold=1000 QosVerticalThreshold=500 AssistMethodType=1 AgpsUse=1 AgpsMtConf=0 AgpsMtResponseType=1 AgpsServerType=1 AgpsServerIp=3232235555 INTERMEDIATE_POS=1 C2K_HOST=c2k.pde.com C2K_PORT=1234 SUPL_HOST=FQDN SUPL_HOST=lbs.geo.t-mobile.com SUPL_HOST=supl.google.com SUPL_PORT=7276 SUPL_SECURE_PORT=7275 SUPL_NO_SECURE_PORT=3425 SUPL_TLS_HOST=FQDN SUPL_TLS_CERT=/etc/SuplRootCert ACCURACY_THRES=5000 CURRENT_CARRIER=common 

UPD — Помним о простых вещах — 2:

    Перед тем как раскрыть вам очередной секрет, скажу что мой путь к его открытию был долгим. Когда смартфон долго не ловит спутники, а нужно вот прям сейчас, то работа мысли становится более интенсивной. И вот в один из таких моментов, ко мне пришла мысль: а не глушит ли чехол на смартфоне сигнал спутника? И хотя я использую классный чехол Speck, я решил проверить. Как только я снял чехол — спутники начали ловиться один за другим. Отсюда вывод — если нужно как можно быстрее поймать GPS — снимите со смартфона чехол. Этот совет был продиктован теми же соображениями, что и предыдущий — «долго не ловит, а нужно вот прям сейчас». Попробуйте изменить ориентацию смартфона в пространстве. Я неоднократно замечал что если держать аппарат вертикально — спутники ловятся быстрее, чем если горизонтально. Возможно в различных моделях будет по разному, но попробовать стоит. Каждый раз при запуске программы Статус GPS заходим в Меню -> Инструменты -> Данные A-GPS — > Сбросить.Выходим. Затем снова Меню -> Инструменты -> Данные A-GPS — > Загрузить. Также в программе Статус GPS (это делается обычно один раз) заходим в Меню -> Настройки -> Датчики -> Фильтрация датчиков. И пробуем разные варианты (в разных источниках рекомендуют пп.3 и 4, у меня обычно лучше работает с п.2): 1) Без фильтрации2) Слабая3) Средняя4) Сильная

PS: вопросы вот такого типа я оставляю без ответа — я не конкурент Google:Если мои советы вам пригодились — поделитесь этой статьей в вашей социальной сети, нажав расположенную ниже кнопку:

ОСТАВЬТЕ ОТВЕТ

Please enter your name here
Please enter your comment!