Время от времени возникает желание попробовать новую прошивку на своем HTC Inspire 4g (американский аналог Desire HD). В процессе перепрошивок я заметил такую тенденцию: на прошивках с андроидом 2.x.x. с GPS все в порядке (в течении 5-15 секунд после запуска
Статус GPS ловится 4-9 спутников и определяются координаты). На прошивках же с 4.х.х приходится устраивать танцы с бубном, причем стабильной работы GPS не удается добиться (после запуска Статус GPS спутники либо не ловятся вообще, либо ловится 1-2 - при таком количестве координаты, естественно, не будут определены).
Сегодняшние прошил известную своей стабильностью и скоростью
cm-10.1-20131125-UNOFFICIAL-ace-SR3.zip. GPS ловил 1 спутник - и на этом все.
Решил пробовать шить другие радио. Радио брались и с
XDA и с
4PDA (доработанные
iva37). Напоминаю что перед прошивкой необходимо тщательно проверять MD5-хеш файла с радио, чтобы быть уверенным что шьешь.
Были прошиты:
- 12.69.60.29_26.17.14.11_M
- 12.56.60.25_26.10.04.03_M_RR_02
- 12.54.60.25_26.09.04.11_M2_RR_02
GPS не заработал. Было решено в качестве отправной точки оставить радио
12.54.60.25_26.09.04.11_M2_RR_02, рекомендуемое iva37 как лучшее ("быстрый интерфейс, плавные движения, хорошо держит Wi-Fi, отлично ловит спутники, отлично спит - за ночь уходит 8% заряда"), и пробовать менять gps.conf.
Различных файлов gps.conf было опробовано с десяток - тоже безрезультатно.
В итоге помог
трюк, заключающийся в следующем. Зайти в recovery, записать бекап текущей прошивки CM 10.1, затем прошить какую-либо стоковую прошивку с андроид 2.3.х (я шил
DHD_WWE_3.12.405.1_STOCK_rooted_by_nitr00). Загрузиться в нее, включить GPS, проверить что спутники ловятся. После этого снова идем в recovery и восстанавливаем из записанного бекапа наш CM 10.1. Загружаемся, проверяем GPS - спутники ловятся! Как это работает - я не знаю. Но это работает.
PS - эта тема поднималась на 4PDA, привожу
комментарий iva37:
-----------------------------------------------
Касательно утверждения - "Если не работает GPS, то нужно прошить родную прошивку, потом опять сделать рут и прошить кастом, ляляляля...."
Я не думаю, что это единственно правильное решение. Скорее всего, это либо от недопонимания, либо от лени разобраться. Давайте по порядку:
1. За работу GPS отвечает: Антенна и ее состояние, Микросхема, софтовый радио модуль (то самое радио, которое мы прошиваем), RIL библиотека-компонента, конфигурация GPS в прошивке, и еще несколько бинарников и библиотек тоже в прошивке.
2. Радио модуль или просто Радио внутри себя имеет ряд настроек, в которых также прописываются CID-ы тех телефонов, для которых оно предназначено. Если там вашего СИДа нет, или у вас не золотой он, то возможны сбои.
3. Состояние загрузчика, при котором он либо разрешит вам прошить Радио, либо нет. Его состояние определяется способом, при помощи которого вы получили рут и прочее.. Подробнее - HTC Desire HD - Cyanogen Mod (
Пост #17565783)
Если загрузчик штатный, то он запрашивает у радиомодуля его режим безопасности:
1. ACE PVT SHIP S-ON - Radio S-ON, защита включена, загрузчик активирует защиту от записи в системные разделы (рекавери, радио, hboot) и проверку версий прошиваемого софта.
2. ACE PVT SHIP S-OFF - Radio S-OFF, защита выключена, загрузчик разрешает запись в системные разделы (даже несмотря на то что он сам (загрузчик) с включенной безопасностью) и не контролирует версии прошиваемого софта.
3. ACE PVT ENG S-OFF - Инженерный загрузчик, увидев у себя S-OFF, он отключает безопасность. При этом к радиомодулю он не обращается (не проверяет режим его работы).
- данный режим самый лучший для кастомских прошивок, ограничений не имеет, следовательно потом не придется вычислять какие либо проблемы
4. Конфигурация GPS в прошивке, в которой прописан источник Бинарного файла с информацией GPS для вашего региона, и который потом прошивается в вашу микросхему. Если там записи некорректные, а чаще всего во всех этих улучшателях GPS именно так и есть, то вам в микросхему пропишется не ваша информация. А если при этом еще у вас не полностью разблокирован загрузчик, не позволяющий переписать Радио модуль, то тогда ку-ку.. Поэтому советуют прошивать Стоковую прошивку, а потом опять ломать тело. Сток, при прошивке, прошивает также и Радио модуль стоковый, который затирает информацию в микросхеме. Таким образом - очищается то, что мешало поиску спутников.
Что делать?
Зачем вам так постоянно мучиться? Думаю, что лучше поступить один раз так:
- заново полностью сломать тело с помощью ААНК (или ААНК2) и получить полностью разблокированный инженерный загрузчик - ACE PVT ENG S-OFF
- прошить правильное радио, в котором будет корректная информация (для этого я и провожу эксперимент и пишу вам тут результаты, причины, что да как..)
- в прошивках смотреть что написано в конфигурациях GPS. Обязательно нужны базовые знания - ищите информацию.
Базовая конфигурация GPS для Европы в файле gps.conf
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=
http://xtra1.gpsonextra.net/xtra.binXTRA_SERVER_2=
http://xtra2.gpsonextra.net/xtra.binXTRA_SERVER_3=
http://xtra3.gpsonextra.net/xtra.binSUPL_HOST=supl.google.com
SUPL_PORT=7276
Не пользуйтесь никакими улучшателями, ибо они написаны людьми, которые нифига не понимают в этом и пытаются решить проблемы через задний ход.
Все.
-------------------------------------------------------
PPS согласно рекомендациям iva37, у меня были выполнены все 3 пункта: инженерный загрузчик ACE PVT ENG S-OFF, правильное радио 12.54.60.25_26.09.04.11_M2_RR_02 и правильный gps.conf, и все было безрезультатно. А прошивка стока с последующим восстановлением из бекапа помогла.
PPPS перекопал сегодня множество ресурсов по поводу работы GPS, очень понравилась позиция
dude_sam в ответе на toster.ru: "Не хочу вас расстраивать, то я решал подобную проблему так: не ловит в помещении - выйди на улицу, не ловит на улице - смени устройство. Зачем же себя мучать." :)