вот ещё: как разлачивают навигаторы на Win CE 5.0
Можно было воспользоваться card-ридером, но при установленной программе ActiveSync от Microsoft карточка, вставленная в девайс, отлично монтировалась в системе (естественно, при подключенном по USB устройстве). После создания девайс должен был его прочитать и запустить вместо оболочки и программы - explorer.exe (обычную Винду). Но не вышло!
Добавлено через 1 минуту
Этим летом мне посчастливилось поучаствовать в мероприятии «Новые территории 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.
А можно ли сделать красиво? Можно!