
Эксперименты с навигатором. Прокачиваем обычный GPS-навигатор
Степан «Step» Ильин (step@real.xakep.ru)
GPS-навигатор. Вроде бы все просто, как дважды два: программа навигации, мультимедиа-проигрыватель и меню для запуска – ни шага в сторону. Но не только на это готов девайс с полноценной Виндой внутри. Уж мы-то знаем, что выжать из него можно намного больше!
Долгое время в качестве GPS-навигатора я использовал обычный коммуникатор на базе Windows Mobile. Поначалу это казалось мне чрезвычайно удобным. С одной стороны – обычный телефон с классными возможностями, но ведь в случае необходимости – еще и полноценный GPS-навигатор! С ним я перестал бояться уехать не туда, простояв пару часов в московской пробке, а в прошлогодней новогодней поездки девайс не дал нам с Никитозом умереть в машине, подсказав как доехать до ближайшего отеля. Отель в маленьком финском городе Хамина оказался выше всяческих похвал – в тот момент мы окончательно прониклись реализованной функцией POI, представляющей полезную базу для туристов (отели, кафе, заправки, гостиницы, достопримечательности и т.д., и т.п.). Надо сказать, что у платформы просто огромный выбор по части программ для навигации. Только для России есть четыре отличных продукта, которые развиваются семимильными шагами, выпуская обновления и новые и более детальные карты, не только Питера и Москвы, но и многих других, даже небольших городов.

Не все так гладко. За год использования дали знать о себе несколько неприятных моментов подобной системы, и если поначалу я вполне мирился с ними, то со временем они начали не на шутку напрягать.
К сожалению, коммуникатор, снаряженный GPS-навигацией и еще 1000 и одной утилитой для комфортной жизни, работал очень туго. В лучшем случае это были просто тормоза, а в худшем – вылеты программы навигации. Полагаю, не надо рассказать про мои чувства, когда из-за пропущенного в такой ситуации поворота приходится стоять два часа в пробке, чтобы попробовать повторить маневр? :) Ситуацию отчасти помогли решить альтернативные прошивки, в которых энтузиасты лихо оптимизировали, борясь за каждый свободный мегабайт оперативы. Однако проблемы, когда во время работы GPS-навигатора поступали звонки, по-прежнему возникали. К тому же, сильно запарило включать и выключать громоздкие навигационные пакеты, ожидая сигнал со спутников. Короче говоря, вывод для себя я сделал однозначный – если используешь GPS часто, то это должно быть отдельное устройство, а не модифицированный телефон!
Проблемы Embedded-устройств
Если не коммуникатор (и не КПК, что, по сути, то же самое), – что тогда? Ответ тут самый простой, а для большинства, вообще, очевидный: GPS-навигатор, который продается в любом магазине электроники. Выбор огромный: навигаторы сейчас можно купить от самых разных производителей (в действительности многие из них выпускаются на одних и тех же китайских фабриках, но под разными лейблами). Разница лишь в том, какое программное обеспечение на них установлено. И в этом и кроется самая главная загвоздка. Поскольку это user-friendly девайсы, то никаких возможности для маневров в них по умолчанию нет. При включении сразу запущена программа навигации или в лучшем случае – оболочка, через которую можно добраться до самых примитивных настроек и запустить мультимедиа-проигрыватель (в случае большого экрана с его помощью можно вполне сносно смотреть фильмы). И все! Никаких там Windows, установки и удаления программ, реестра – бери, что дают. Но значит ли это, что сделать с «тупым» девайсом ничего нельзя? Вовсе нет.
Разблокируем прибор
Этим летом мне посчастливилось поучаствовать в мероприятии «Новые территории GPS», проводимом компаниями Voxtel и Навител, где в команде с новыми товарищами я зарешал конкурентов (три десятка других участников) и получил в качестве бонуса новенькой навигатор Voxtel Carrera X433. В качестве жертвы эксперимента я буду использовать именно его, но эти же самые подходы применимы к большинству GPS-навигаторов, представленных на рынке.

Сначала давай разберемся, что же вообще находится внутри нашего девайса? Понятно, что разработчики навигационных продуктов пишут не для конкретной архитектуры девайса, а для какой-то платформы, и платформа эта – Windows CE (WinCE). Это специальная версия Windows с ядром, предназначенным для работы на встраиваемых системах. Система разработана таким образом, чтобы работать на устройствах, имеющих минимальный объем памяти. Так, ядро Windows CE теоретически может работать на 32 Кб памяти, но это уже крайность.
С графическим интерфейсом GWES-устройствам требуется от 5 Мб оперативки. Некоторые устройства не имеют дисковой памяти и могут быть сконструированы как «закрытые», без возможности расширения пользователем (ОС в этом случае «зашита» в ПЗУ), но с GPS-навигаторами такой подход встречается очень редко. До ОС можно добраться и можно ее использовать – осталось только разобраться, как.
Итак, у нас есть персональный навигатор (его часто называют PND или PNA – учти это при поиске программ), у которого по умолчанию сразу стартует симпатичная менюшка с кнопками для запуска программы GPS-навигации, включения BT-гарнитуры, открытия окошка с настройками и проигрывания музыки/видео/фоток. Ни шага вправо, ни шага влево – все для ушастых пользователей (зато просто и стабильно – огромный плюс подобных девайсов). Придется его разлочить или, другими словами, каким-то образом добраться до самой Windows, где уже можно будет делать что угодно: менять оболочку, устанавливать альтернативные приложения и т.д. Покопавшись на замечательных форумах www.gps-club.ru и 4pda.ru, я быстро нашел основной способ разлочки Embedded-девайсов, который по идее подходит для большинства PND-моделей.
Смысл в том, чтобы взять SD-карточку и создать на ней файл shell.ini со следующим содержанием:
\windows\explorer.exe
Можно было воспользоваться card-ридером, но при установленной программе ActiveSync от Microsoft карточка, вставленная в девайс, отлично монтировалась в системе (естественно, при подключенном по USB устройстве). После создания девайс должен был его прочитать и запустить вместо оболочки и программы - explorer.exe (обычную Винду). Но не вышло!

Ладно, тогда будем действовать по-другому. При подключении девайса к компьютеру в системе появляется два диска – на одном отображается часть файлов с внутренней памяти устройства, а другой, как уже было сказано, карты памяти. На встроенном диске было несколько папок Audio, Music, Video и каталог Navitel, который представлял особый интерес. В качестве стандартной программы навигации на девайсе установлена замечательная софтина «Навител 3.2», у которой, пожалуй, наиболее большее покрытие по России. В папке был исполняемый файл Navitel.exe – можно предположить, что его-то и запускает стандартная оболочка при нажатии на кнопку «GPS-навигация». И что тогда? По большому счету, можно временно переименовать папку с «Навителом», а вместо нее скопировать файлы любой другой навигационной системы, скажем, iGo – тупо переименовав Igo.exe в Navitel.exe. Но это же некрасиво (хотя я проверил и такой способ)!
Возможность запускать любой exe-шник – это уже что-то. Был смысл попробовать подсунуть под видом navitel.exe стандартный файл Винды explorer.exe. К сожалению, ни одна из системных папок на примонтированном диске не отображалась, поэтому взять его было неоткуда. В общем, нужен был обходной путь, и он быстро нашелся – оказалось, есть специальная утилита ceDesktop.exe, которая как раз и открывает рабочий стол Винды. Быстро переименовав его в Navitel.exe, я перезапустил навигатор, выбрал в оболочке пункт «Навигация» и… увидел заветную Винду :). Быстро освоившись с незнакомой ОС, я зашел в панель управления и выяснил, что имею дело с Windows CE 5.0.
Далее через обычный проводник («меню Пуск -> Windows Explorer») нашлась программа, которая запускалась в качестве шелла (\DataStorage\CentralAP.exe), а рядышком был заветный файлик CONF.ini. С его помощью легко можно было переназначить реакцию на нажатие кнопок. Теперь ничего не стоило закачать на навигатор, скажем, iGo и забиндить его запуск на кнопку «GPS», отредактировав следующую строчку:
GPSPath= \User\Navitel\Navitel.exe
Забавно, что рядом была закомментированная строка, запускающая как раз iGO8 :). Отказавшись от стандартной функциональности, можно было забиндить на остальные кнопки запуск любых других навигационных программ (их обзор читай во врезке) – в итоге, мы получали универсальную «машинку», хотя и не в самом красивом виде. Кстати говоря, для более удобной навигации и редактирования файла пришлось отыскать специальную версию TotalComander для WinCE.
А можно ли сделать красиво? Можно!
Альтернативное меню
Что такое меню? По сути, форма с несколькими кнопками – ничего не стоит написать ее самому, совладав с соответствующими возможностями Visual Studio (подробнее – во врезке). Я, впрочем, не стал брать быка за рога и попробовал найти то, что уже сделано умельцами. Очень скоро нашлась специальная сборка для младшей модели от Voxtel, которая самым наглым образом включала в себя три навигационные программы и еще десяток утилит, а самое главное – удобное меню для запуска всего этого пиратского хозяйства. Уверен, что аналогичные вещи энтузиасты с неподдельным интересом варганят для любых производителей. Мне же стало интересно найти универсальную программу, представляющую собой исключительно оболочку без всякой пиратской составляющей – в виде предустановленных навигационных программ. И такой шелл нашелся!
MioPocket 2.0 (http://www.gpspassion.com/forumsen/topic.asp?TOPIC_ID=109690) изначально разработан для девайсов компании Mio, но легко устанавливается и на многие другие модели. Если описывать в двух словах, это самый настоящий универсальный солдат. Вместе с шеллом по умолчанию идет медиаплеер для проигрывания видео и музыки, разные читалки книжек, дюжина игр, несколько графических просмотрщиков, проги для работы с документами MS Office, системные тулзы вроде редактора реестра, файлового менеджера и менеджера задач и т.д. Ну а о том, что ее можно подружить с любыми программами навигации я даже и говорить не буду. Зато хочу открыть секрет: меню большинства разлочек (альтернативных оболочек) построено на основе специальной программы System Infomation (http://gpstacho.bettersoft.de).
Итак, мы достучались до самой Винды, нашли, где хранится оболочка и подыскали ей достойную замену. Остался один вопрос: как поменять оболочку по умолчанию, чтобы каждый раз не запускать ее вручную? Точно так же, как и в обычной Винде: поправить параметры автозагрузки, покопавшись в реестре. Для этого либо придется поставить редактор на сам навигатор, либо сделать это напрямую с компьютера с помощью тулзы Registry Workshop.
Дерзай!
Какую навигационную программу ставить?
«Навител»
Одна из наиболее прогрессивных разработок, которую производители охотно устанавливают в свои навигаторы. В этом нет ничего удивительного – на сегодняшний день у нее наибольший охват территории по России, не считая неофициальных карт, которые выпускаются любителями.
«Автоспутник»
Не успев выйти в 2007, система стала одной из наиболее любимых в народе. В основе лежат карты признанного мирового лидера цифровой картографии - компании Tele Atlas, дополненные дополнительными слоями данных. Интерактивный сервис «АВТОСПУТНИК OnLine» поддерживают подгруздку POI сразу на навигатор (в том числе, камеры, «лежачие полицейские», посты и пикеты ДПС и т.п.) и автоматическое обновление по мобильному интернету.
iGO
Один из мировых лидеров навигационной индустрии, который неплохо работает в России. Восьмая версия приложения поддерживает трехмерное моделирование зданий, рельефа местности и памятников архитектуры, – что выше всяких похвал.
TomTom
Если в Европе и Штатах, слово TomTom давно стало нарицательным, то у нас с ним знакомы пока немногие. Виной тому – долгое отсутствие толковых карт. Однако в конце года компания представила на рынке свои embedded-решения, а это значит, ситуация скоро изменится.
Garmin Mobile XT
С этой системой лично я знаком по использованию в своем телефоне Nokia, однако у нее есть отличные версии для Windows, в том числе и WinCE. Кстати говоря, карты России постоянно обновляются.
Как быстро запустить нужную прогу
Если желания ковыряться во внутренностях девайса, осваивая премудрости общения с Windows CE, у тебя нет, а желание запустить другую программу для навигации, напротив, велико, можно попробовать один простой способ, который работает на многих девайсах. Если тебе скажут «попробуй выполнить продмену», это значит следующее:
- Сначала находим нужную навигационную софтину для PNA;
- Перемещаем ее на карту памяти, причем желательно другую (чтобы ни в коем случае не испортить стандартное ПО, где возможно есть ключи и т.д.);
- На карте памяти переименовываем папку с программой в Mobilenavigator, а exe-файл - в mobilenavigator.exe;
- Запускаем устройство.
Мой Voxtel Carrera хранит все системные файлы и программу навигации во внутренней памяти, поэтому подобный фокус на нем не сработал.
Пишем приложение для WinCE
Если тебя каким-то образом не устраивает стандартное ПО или ты хочешь написать, скажем, свое собственное меню, то никакой проблемы в этом нет. Только придется разобраться с несколькими приложениями.
Visual Studio. Все последние версии Visual Studio (кроме Express-версий) поддерживают создание проектов для Windows CE/ Windows Mobile – позволяют отлаживать приложения как на самом устройстве, подключенном через кабель к компьютеру, так и через специальный эмулятор и набор образов с виртуальными мобильными ОС.
Platform Builder. Специальное средство для разработчика, используемое для создания платформы, драйверов, а также самих приложений. Короче говоря, с ним можно запустить систему на каком-либо девайсе. Интерес также представляет SDK, включенное в состав Platform Builder. В нем хранит инфа о работе с разными микропроцессорами (SuperH, x86, MIPS, ARM).
Embedded Visual C++ (eVC). Специальная сборка Visual C++ для разработки embedded-приложений на базе Windows CE.
WWW
Ответ на свой вопрос по теме практически 100% можно найти на англоязычном форуме gpspassion.com, а также русских gps-club.ru и 4pda.ru.
INFO
Прошить свой навигатор несложно. Берешь карточку на 512 метров (или больше) и форматируешь в fat16 и копируешь в корень содержимое архива. Далее вставляем карточку и, удерживая кнопку питания, переводим движок из положения off в on, отпускаем питание. Все, прошивка началась. Внимание, процесс долгий, минут 10-15. Если кажется, что зависает, не паникуй, – это нормально.
Содержание
ВИДЕО К ЭТОМУ НОМЕРУLiveCD мощное оружие профи Возможность создавать дистрибутив для собственных нужд является одним из самых больших плюсов свободного ПО. В результате на сегодняшний день доступно несколько десятков дистрибутивов, упрощающих работу админа и направленных на решение...
API-внедрение В ролике рассмотрен метод добавления в таблицу импорта PE-файла новой API-функции из сторонней DLL-библиотеки, используя утилиту iidking. Помимо этого мы познакомимся с приемом для запутывания реверсера, заключающийся в модификации кода,...
Самосборные окна Для создания своего образа системы Microsoft предлагает пакет автоматической установки Windows (AIK). Его основная задача - упрощение установки, настройки и развертывания всего семейства операционных систем Windows, включая Vista и ...
|
 |
|