Показать сообщение отдельно
Старый 11.01.2011, 21:48   #1
micle-b
Старичок
 
Аватар для micle-b
Доп. информация
По умолчанию Учимся самостоятельно делать прошивки для навигаторов Tibo

Постараюсь доступным языком рассказать, как самим изменять прошивки навигаторов на WinCe на примере Тибо А4050. Весь процесс описывать достаточно долго, так что буду выкладывать информацию по частям, как только будет появляться свободное время. Все что будет сказано про модель А4050, относится и к другим моделям этой марки.
И так, первое что необходимо понять, для чего собственно нам необходимо что-то менять в прошивке навигатора. Дело в том что, сама система WinCe навигатора располагается не как в обычном компьютере на жестком диске, а зашита в память микросхемы (ROM). С одной стороны это делает приборы не убиваемыми, они не боятся вирусов и «кривых рук» пользователей. Так как стоит перегрузить приборчик и все вернется к заводским настройкам. С другой стороны при таком подходе, становится не возможно, что либо, изменить, или добавить в функционал и настройки устройства без перепрошивки ROM памяти. Сами навигаторы по своему устройству очень близки к КПК, отличает их обычно только урезанная операционная система. Производители обычно блокируют доступ к привычному для пользователей виндоус рабочему столу и панели управления. Заменяя все это своей оболочкой рассчитанной на одну, максимум две навигационные программы. Если заменить меню производителя на свое, то появляется возможность расширить возможности навигатора (запускать любое количество нави программ, войти в виндоус, подключить интернет, установить дополнительные программы). Все это называется РАЗЛОЧИТЬ навигатор. Но и тут не все так просто. Многие программы, работающие на КПК, отказываются запускаться на разлоченом навигаторе, так как в виндоусе навика не хватает многих библиотек для запуска этих программ. Дело еще осложняется и тем, что в WinCe может существовать огромное количество файлов с одинаковым названием, но с разными подключенными функциями. К тому же реестр в WinCe бывает двух типов, первый может сохранять пользовательские настройки, а второй весь зашит в ROM и любые изменения не сохраняет. В навигаторы Тибо установлен именно такой тип реестра, без возможности вносить любые изменения.
Думаю, что с начальной теорией достаточно…. теперь надо решить, что мы хотим добавить, изменить, или удалить в виндоусе навигатора – то есть в прошивке. Про удалить я не описался, дело в том, что нам может не хватить места в прошивке для добавления нужных нам библиотек и желательно это место освободить, убрав те компоненты, которые точно не будут использоваться. Например, все, что связано с печатью на принтере.
И так, опишу, что можно добавить и изменить в базовой прошивке навигаторов ТИБО
1) Заменяем файлик wince.nls на аналогичный но в котором есть поддержка русской локализации. ( для чего это нужно я уже не раз писал ) К тому же размер русского в 6 раз меньше чем тот что включен в стандартную прошивку, за счет того что в нем отсутствуют китайские, японские, турецкие, узбекские и другие редко используемые языки.
2) На всех навигаторах Тибо ,кроме V4150 нет возможности использовать SD карты объемом больше 4гиг. То есть SDHC карты, хотя сам процессор Samsung 2440 их прекрасно понимает. Для этого нам потребуется заменить в прошивке два файла на полнофункциональные. Sdhc.dll и sdhc_sc2440.dll
3) Желательно добавить русскую клавиатуру Micron.dll
4) Для A4050 есть смысл удалить файлик ACout.exe, который отвечает за автоматическое отключение навигатора через 10 секунд после пропадания питания.
5) В реестре : настроить русский по умолчанию, клавиатура микрон по умолчанию, можно добавить ассоциацию файлов к определенным программам, изменить цветовую схему в виндоус, сделать папку на Flash Disk (например Xwindows ) в которую можно будет потом докладывать нужные библиотеки и картинки заставки без перепрошивки, подключить возможность читать MUI и настроить на чтение русских 0419.
6) Добавить в прошивку эти самые MUI0419, после чего виндоус станет полностью на русском языке.
7) Попытаться изменить тип реестра, чтобы появилась возможность сохранять пользовательские настройки. ( К сожалению я это еще не пробовал, но на других навигаторах это уже делали ).
8) Добавить часто используемые библиотеки Aygshell.dll, toolhelp.dll.
9) Для добавления возможности подключения к ПК в режиме накопителя mass-storage добавить usbmsfn.dll

Теперь переходим к действиям…. Для начала нам потребуется базовая прошивка от Вашей модели навигатора ( в нашем случае A4000os.bin для А4050) Внимание A4000bl.bin не трогаем !!!Прошивку скачиваем тут [[Ссылки могут видеть только зарегистрированные пользователи. ]]> И сама программа для разборки прошивки [[Ссылки могут видеть только зарегистрированные пользователи. ]]> XIP_Port от уважаемого «holod» с сайта 4pda.ru С его разрешения выкладываю ее здесь. В настоящее время им созданы и другие программы для разборки прошивок, но описывать принцип работы с прошивками буду на примере этой программы. Кому интересно сможет в дальнейшем самостоятельно освоить и другие более поздние разработки этого автора. [[Ссылки могут видеть только зарегистрированные пользователи. ]]> Прежде чем разобрать файлик прошивки A4000os.bin его расширение необходимо переименовать в nb0. Так как структура файла прошивки Tibo именно nb0, а не bin. Вот теперь A4000os.nb0 можно разложить на составляющие с помощью XIP_Port. Еще необходимо запомнить размер файла оригинальной прошивки, для A4050 это 14680064. Для Tibo это важное условие, если размер будет отличаться от оригинала, прошивка будет нерабочей!!! Для того что бы размер был именно таким, в конце прошивка добивается нулями до заданного размера. Это можно сделать XIP_Port –ом или любым HEX-редактором.
Теперь создаем любую папку, например Temp и помещаем в нее файлик программы XIP_Port.exe и саму прошивку A4000os.nb0. Затем запускаем XIP_ Port.

[[Ссылки могут видеть только зарегистрированные пользователи. ]]>

Жмем кнопку "dump nb0" в появившемся окне выбираем файл прошивки и нажимаем кнопку "открыть" После чего в нашей папке TEMP появится новая папка Out. Это и есть содержимое нашей прошивки! Если зайти в папку Out, то в ней мы обнаружим еще две подпапки Files и Modules, а так же два текстовых файла PARTHDR.txt и ROMHDR.txt. Дело в том, что в прошивке большинство исполняемых файлов храняться не в виде привычных нам EXE или DLL, а в виде модулей. В модулях отсутствует таблица реалокации и они жестко привязаны по адресам. В свою очередь модули еще состоят из регионов. Для экономи места файлы и модули в прошивке находятся в сжатом виде,за исключением лишь файла WINCE.NLS и файлов размер которых меньше 1кб. При развертывании системы, обращение к NLS файлу происходит на самом раннем этапе, когда система еше не умеет декомпрессировать файлы находящиеся в прошивке. В связи с этим, при модернизации прошивки, имеет смысл применять "русский" NLS файл как можно меньшего размера, для экономии места в будущей прошивке. У меня есть два русских wince.nls Вы можете использовать любой из них. [[Ссылки могут видеть только зарегистрированные пользователи. ]]>
Если мы нажмем кнопку "write maps", то в папке Out появятся еще два файлика MAP.physical.txt и MAP.txt это и есть карта нашей прошивки. Если открыть текстовый файл, то мы увидим, по каким адресам располагаются файлы и модули с регионами в нашей прошивке. Это очень важная информация, так как при замене, или добавлении файлов в прошивку придется изменять привязки по адресам. Делать это приходится для того, чтобы избежать дыр в прошивке после удаления не нужных файлов, или для того чтобы впихнуть новый файл в прошивку. Сейчас не буду описывать весь этот процесс подробно, позже к этой теме еще вернемся.
Теперь можно попробовать на практике внести самые простые изменения в реальную прошивку.Для примера, можно взять мою прошивку для А4050 где уже заменен wince.nls и сделана поддержка SDHC карт, а теперь удалим файл из прошивки который отвечает за выключение прибора через 10 сек после пропадания напряжения питания. И так, как я уже описывал выше, разбираем файл прошивки. Переходим на третью вкладку XIP-porta «ADD» и нажимаем кнопку «Delete file». В появившемся окне выбираем нашу папку Out, а в ней папку FILES. В этой папке выбираем файлик XACOUT.exe.imageinfo.txt и нажимаем кнопку «Открыть». Файл XACOUT.exe.imageinfo.txt представляет текстовое описание самого файла XACOUT.exe. Для удаления файла или модуля из прошивки Xip-port у нужно указать именно текстовый файл описания того файла который мы хотим удалить. После чего выбранный файл будет извлечен из прошивки. Далее нам нужно пересчитать физические адреса в прошивке. Это нужно для экономии пространства в ROM памяти после внесенных изменений в прошивку. Это нужно делать каждый раз, как мы что либо удаляем, заменяем, или добавляем в прошивку. XIP-port это делает автоматически при нажатии кнопки «realloc P» Теперь осталось собрать измененную прошивку. Нажимаем кнопку «write nb0»,выбираем место куда хотим сохранить файл прошивки и выбираем ему название. Удобнее всего в папке Temp создать еще подпапки, например «1», «2», «3» и туда помещать измененные прошивки и описания произведенных изменений, что бы потом не запутаться. В результате мы получим файл прошивки в формате nb0, нам нужно еще подогнать размер нашей прошивки к размеру оригинала. Для этого заходим на четвертую закладку «Misc» и набираем в окне, где стоит «0» нужный нам размер. В нашем случае это 14680064 байт. Затем нажимаем кнопку «write 0x00 to end» и выбираем наш файл прошивки. Если все сделано верно, то размер нашей измененной прошивки станет равной размеру оригинала. Остался последний шаг, переименовываем нашу прошивку в A4000os.bin. Этим файлом можно попробовать перепрошить навигатор.
Примите мои поздравления! Вы смогли сами сделать простейшую операцию над прошивкой.О более сложных изменениях расскажу позже. Я старался как можно проще описать процесс изменения прошивки, без каких либо технических и теоретических подробностей. Тем, кто желает более подробно разобраться с тонкостями «ромоделания», рекомендую почитать тут.
[[Ссылки могут видеть только зарегистрированные пользователи. ]]>

У кого получилось по моему описанию модернизировать прошивку, (удалить XAcout.exe ) выкладывайте ее на форум. На ее основе продолжим дальнейшую модернизацию навигатора, сделаем WinCe5 полностью на русском.
Вложения
Тип файла: rar XIP_Port.rar (130.4 Кб, 330 просмотров)
micle-b вне форума  
8 пользователя(ей) сказали cпасибо:
 
Время генерации страницы 0.03391 секунды с 12 запросами