29 июля 2012

Русская клавиатура на навигаторе JJ Connect 2100 wide CE 5.0


Выяснилось, что на этом устройстве через панель задач или Input Panel можно вызывать только одну малюсенькую виртуальную клавиатуру размером 240х104 с английской раскладкой и кракозяброй за место русских символов.  Работать с ней можно только при помощи стилуса. Вот и появилась потребность организовать удобный  пальцевый ввод символов на великом и могучем русском языке. 


В терминологии WinCE клавиатура называется панелью ввода символов SIP и представляет собой одну dll библиотеку, которая имеет уникальный идентификатор.  В реестре WinCE [HKCU\ControlPanel\Sip] в ключе "DefaultIm" задана клавиатура "по умолчанию" с идентификатором 42429667-ae04-11d0-a4f8-00aa00a749b9, которая располагается в файле /windows/msim.dll. Для установки новой клавиатуры достаточно скопировать ее dll файл на устройство и изменить идентификатор в вышеуказанном ключе, а так же некоторые другие параметры в реестре.

В интернете нашлось большое количество SIP клавиатур для WinCE 5.0, но к сожалению ни одна из них запускаться не захотела. Были опробованы такие клавиатуры с русской раскладкой, как EuroKeyboard, RussKey, Micron, Resco keyboard, Cyrillic Keyboard, MSH Keyboard, CEKeyboard, Qkeys, VGAKEY, Fat Keyboard и DynaType. Клавы появляются в списке Input Panel, регируют на кнопку Options... и даже открывают окна настроек, но запускается только стандартная клавиатура. Если в реестре [HKEY_CURRENT_USER\ControlPanel\Sip] в ключе "DefaultIM"="{42429667-ae04-11d0-a4f8-00aa00a749b9}" задать другую клавиатуру, то после перезагрузки перестает запускаться и стандартная. По отзывам пользователей на других навигаторах, например  jj-2000 и jj-320 они работают на ура и даже на более новом JJ Connect 2100 wide WinCE 6.0 после обновления прошивки эти клавиатуры запускаются. Но оказалось, что конкретно на этом устройстве запуск сторонних SIP клавиатур не возможен  из-за сильно урезанной WinCE и отсутствия каких то компонентов. Каких именно мне выяснить не удалось. На примере CyrLat посмотрел зависимости dll, плагин к TC Fileinfo показал, что CyrLat.dll использует COREDLL.dll и AYGSHELL.dll, подгрузка и замена этих библиотек с других устройств результатов не дала. Было желание собрать свой образ оси на Platform Builder и попытать удачу с заменой  компонентов из эмуляторной сборки, но без исходников BSP я не стал рисковать и отказался от этой затеи. 

Далее пошли эксперименты с прошивками. Для обновления достаточно скопировать файл прошивки .img в корень вашей SD карты объемом не более 2-х Гб (файл btld82C.bld можно не записывать, это - бутлоадер), вставить флешку в устройство и перегрузиться, после форматирования и загрузки прошивки вынуть флешку и удалить с нее файлы, которые записывали, иначе аппарат будет прошиваться постоянно.
Для JJ Connect 2100 wide на базе WinCE 5.0 существует единственная официальная прошивка версии 7DA82C.2100.JJ.YF.T.22 (15.9 Мб). После обновления конечно же никакого чуда нее произошло и клавиатуры не заработали, поскольку она точно такая же как была в навигаторе. 

Судя по аббревиатуре прошивки навигатор JJ-Connect 2100 wide сделан на платформе OS82C китайской фирмы YangFeng. Для этих навигаторов есть две версии прошивок подходящих для jj-2100 wide CE 5.0 7DA82C.YF.F.2.26 и более новая 7DA82C.YF.F.3.12
Я обновился на версию  3.12, для чего скопировал файл os82c.img на флешку и перезагрузился.
После этого русские клавиатуры стали устанавливаться!

Я поставил две клавиатуры миниатюрную Cyrillic Keyboard как замену стандартной, но с русской раскладкой и пальцевую CEKeyboard от SeNS (smartqmid.ru).
Для установки первой нужно скачать CyrKeyb.7z, распаковать и папку CyrKeyb скопировать в корень карты памяти, затем запустить CyrLat.exe и усыпить навигатор кнопкой Power на 5-10 сек для сохранения реестра, перезагрузиться и можно вызвать русскую клавиатуру через иконку на панели задач и делать заметки в блокноте.


Для установки CEKeyboard нужно скачать CEKeyb+Skin.ZIP, (или здесь) разархивировать в любое место на устройстве и запускайте файл KeyBoard.EXE, появится диалоговое окно установки, где нужно выбрать нужные параметры после установки так же необходимо усыпить навигатор кнопкой Power на 5-10 сек и перезагрузиться. Вызов осуществляется так же через Control panel > Input panel или через панели задач.


В итоге мы установили две сторонние виртуальные SIP клавиатуры с русской раскладкой, вызвать и переключаться между ними можно на панели задач, выбирая нужную галочкой.