Отдам этот сайт в добрые руки,желающие забрать его,пишите в личку,мой ник byferman
Коммуник • Просмотр темы - Делаем свою прошивку на примере кухни Mondy для Nataly 2.5
Untitled
Acer ASUS Gigabyte Glofiish HP HTC i-Mate LG Motorola O2 Qtek Rover Samsung Sony T-Mobile Toshiba
Искать в этом форуме:
Текущее время: 28 мар 2024, 19:41

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: Делаем свою прошивку на примере кухни Mondy для Nataly 2.5
СообщениеДобавлено: 23 мар 2010, 17:22 
Аватара пользователя
Репутация
Добавить очки репутации« 14 » Уменьшить очки репутации

Администратор
Не в сети


Зарегистрирован: 19 дек 2009, 10:57
Сообщений: 1387
Cпасибо сказано: 2
Спасибо получено:
32 раз в 31 сообщениях
Мой кпк: ищу подходящий
Заслуги:
За хорошую репутацию За очень хорошую репутацию За 10 Сообщений За 50 Сообщений За 100 Сообщений За 500 Сообщений За 1000 Сообщений
Что представляет из себя файл прошивки (описание от Helge):
1. файл прошивки (файл с расширением .nbh) состоит из:
- и заголовка.
- файла содержащего ось(операционную систему) OS.NB


OS.NB в свою очередь состоит из:
-из заголовка

-OS.NB.payload (контейнера заполненного самой прошивкой)


В состав OS.NB.payload входят:
- xip.bin,
- imgfs.bin


XIP - это набор модулей составляющих ядро оси именно они делают всю основную работу. Когда видишь надпись "OC CE 5.2.20764 " - это и есть версия XIP.
Модули XIP-а деляться на две части, на модули общие для всех девайсов работающих на WM , и на так называемые девайсозависимые модули, то есть модули, работающие только с конкретной моделью. В кухне это соответственно пакеты MSXIPKernel и OEMXIPKernel


Еще в состав XIP-а входит загрузчик, сертификат, и еще кое что, но думаю, что если подробно про XIP, то это отдельная тема.


На разных моделях, девайсозависимые модули имеют разный размер, должны размещаться по разным адресам в памяти.
Портирование XIP-а заключаеться в том, чтобы отделить девайсозависимые модули, удалить их, на их место подставить свои, и согласовать адреса в памяти общих модулей со своими девайсозависимыми модулями.



2. Билд (build) и сборка, это одно и тоже, просто на раздных языках.
Ты уже видел, что кухня разбита на ОЕМ и SYS , так вот SYS - это грубо говоря и есть билд.
3. Билды разрабатывают в MS. К каждой новой прошивке, по заказу производителей, делаеться новый билд. По какому принципу они нумеруються, лучше спросить мелкомягких.


Как происходит загрузка устройства с WM (описание от Helge):
давай посмотрим как ваще запускаеться девайс с WM. Включаем девайс, однокилобайтный M-Systems IPL отображен в память по адресу 0, он стартует, делает минимум инициализации железа достаточный для загрузки SPL в RAM (иногда SPL называют EBOOT, бутлоадер и тп). SPL хранится в binary разделе DOC-чипа, IPL - вообще в отдельной области, которую лучше не трогать. Далее SPL уже полностью инициализирует железо, проверяет надо ли войти в режим бутлоадера, и определяет какую из версий системы требуется загрузить (update loader или нормальную OS). Update loader используется исключительно для установки обновлений ROM рекомендованным микрософтом способом (на уровне отдельных пакетов, а не всей прошивки, и почему-то этот режим НТС никогда не использовало).Далее SPL распаковывает в RAM, по заданному разработчиками адресу, выбранную версию ядра, и прыгает туда. На этом моменте, кстати, мы теряем первые 4 мегабайта оперативки. Это нельзя называть XIP (eXecute-In-Place, хотя формат идентичен), тк исполнение происходит не in-place, а путем предварительной загрузки кода в RAM. Но это дает нам очевидный выигрыш в скорости. Ну а далее уже процесс загрузки идет как обычно. NK грузит device.exe, filesys.exe и тп, инициализируется первая партия драйверов, в частности драйвер DOC, и уже из IMGFS подгружается основной реестр и остальная часть системы. Так как на первой фазе используется другая копия реестра (boot.hv), и writeable копии реестра еще нету, то все хэндлы девайсов, проинициализированных на этой фазе остаются известны только ядру и в hklm\drivers\active не попадают.


Собственно, начинаем работать с кухней:


Качаем архив кухни: http://narod.ru/disk/9068767000/RU_B21051_NATALY_2.5.1_Kitchen.exe.html или http://rapidshare.com/files/236504833/RU_B21051_NATALY_2.5.1_Kitchen.exe



Разорхивируем в любую папку.
Структура каталогово такая:
_ADDS\
RU_KITCHEN\
TOOLSET\
UTILS\


Нас в первую очередь интересует папка RU_KITCHEN\ Заходим в нее:

EXT\
OEM\
ROM\
SYS\
TOOLS\
build_rom.bat
Cleanup.bat
DiamondCustomRUU.exe
oem2ext.exe



Видим папки и файлы.
1) В папке EXT находятся все пакеты (приложения), которые будут в прошивке


2) OEM содержит драйверы на прошиваемый девайс (HTC Diamond). Подходят только для брилианта.


3)Папка ROM состоит из:
XIP\
os.nb.payload
romhdr.bin


Последние два файла - заголовки для прошивки, а в XIP содержатся низкоуровневые программы.


4) Папка SYS содержит системные приложения Windows Mobile



5) Tools - сердце кухни. Состоит из распаковщика IMGFS и сборщика прошивки htcrt.exe


6) Скрипт build_rom.bat запускает процесс сборки прошивки


7) Скрипт Cleanup.bat - удаляет следы сборки и временные файлы


8) DiamondCustomRUU.exe - программа-прошивальщик


9) oem2ext.exe - на этот файл надо перетянуть папку OEM, если в ней лежат пакеты для "старой" кухни- и тогда они "перепрыгнут" в папку \EXT\Diamond, но уже в формате для "новой"


Для особо нетерпеливых сделаем прошивку для которой и была написана сия кухня.
Запускаем build_rom.bat


на экране бушуют надписи в черных окошках, после чего взору предстает программа HTC ROM TOOL 1.1.4 c предложением что-нибудь нажать. Нажимаем "Build". Программа от нас еще чего-то хочет. Ага. Автоматически перешли на вторую вкладку. Выбираем устройство Diamond, надписи в окошечках ниже заполняются сами. Лучше не трогать :)

Справа под словом "Firmware content" (содержимое прошивки) в последнем пункте жмем на три точки и выбираем файл xxx.nb. Программа сразу предлагаем что-то сохранить - сохранить окончательный файл прошивки. Даем ему имя и жмем сохранить. Программа кое-что покажет и скажет ОК! Закрываем ее. Видим появление на свет нового файла - xxx.nbh - его-то мы и будем прошивать в телефон с помощью DiamondCustomRUU.exe. Дальше следуем так сказать инструкциям "мастера".


Если уже можем собирать прошивку, то можно для начала и пакет (программу) включить в прошивку. Для этого - качаем кабик (ххх.cab). Дальше со слов ScorpionSPB и lucky3d:
"lucky3d" :" я пользую утилиту package-creator-v2.7 .. (если не найдешь напиши выложу).
в ней указываешь файл - получаешь на выходе пакет для прошивки. всё


в итоге ты получаешь в папке:
1. файлы из прошивки

2. rgu файл с реестром из твоего каба.
3. dsm файл - индетификатор файлов содержащихся в пакете. (В последней кухне от bepe они не нужны..я убиваю.. но можно и оставить)
3. файл initflashes.txt который описывает куда переместятся файлы после распаковки (по умолчанию они падают в Windows). если никуда - то его можно грохнуть. Файл должен быть в юникоде. Я пользуюсь утилитой InitFFBuilder.exe если надо править.
4. option.xml - содержит инфо о пакете используется в старой кухне от Bepe. (Я тоже грохаю)


dвот и всё .. эту папку с пакетом кидай в OEM или SYS"

// Самому пока не очень понятно. Позже проделаю сам и постараюсь написать по-проще. И дополню, что куда копировать дальше.


Теперь - как разобрать прошивку :)
ВНИМАНИЕ:

Дополнение от ssergey
Сразу обратите внимание, что разобрать самодельную прошивку (например от mondi, aserg, korand) полноценно не возможно. И это не потому, что они такие злые волшебники, а просто суть кухни- при создании прошивки удаляются (точнее остаются в кухне, но не попадают в файл прошивки) ненужные уже больше файлы, которые содержат данные о пакетах- вот и при разборке все файлы распаковываются кучей.
Полноценно распаковать на пакеты можно только оф. прошивку от HTC


Видео-инструкция: http://www.bepe80.com/test/1/
Действия делать надо в проводнике Windows.
Качаем какую-нибудь прошивку RUU_signed.nbh. Данный файл состоит собственно из прошивки и заголовка прошивки. Для извлечения прошивки потребуется утилита nbhtool.exe в папке \RU_B21051_NATALY_2.5.1_Kitchen\UTILS\. Копиреум ее в папку с прошивкой, запускаем. Указывам путь к файлу nbh и жмем кнопку. Для любителей командной строки есть там же утилита nbhextact.exe
В итоге у нас есть файл ххх.nb
Этот файл перетаскиваем на файл Dump_800.bat в папке TOOLSET. Снова наслаждаемся диким количеством цифр и букв в черном окошке. Жмем любую клавишу и видим в папке с прошивкой появились файл ххх.nb.payload и папка IMGFS

В файле nb.payload содержится XIP - его будем извлевать:
Заходим в папку dump xip уровнем выше. И также наводим файл nb.payload на dumpxip.bat
Появилась папка XIP и файл romhdr.bin
Дальше из папки IMGFS будем делать пакеты программ:
Снова возвращаемся в папку TOOLSET и наводим взор на программу packagebuilder. Кроме взора на нее нужно навести папку IMGFS
Тут я остановился, т.к. никаких действий не происходит. Видимо это первое несоответствие видео и кухни.
Кажется я начал понимать: больше из папки IMGFS выжать ничего не получится. Формат папки такой:
к примеру: папка acmdwrap.dll\ состоит из:
acmdwrap.dll

imageinfo.txt
S000
S001
S002
S003
imageinfo.bin


В кухне от Mondy похожая структура наблюдается в папке KITCHEN\SYS\OS.

_________________
Извините, что я говорю, когда вы перебиваете.


Вернуться к началу
 Профиль  
Cпасибо сказано 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Искать в этом форуме:
Перейти:  
cron
Рейтинг@Mail.ru Rambler's Top100
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Вы можете создать форум бесплатно PHPBB3 на Getbb.Ru, Также возможно сделать готовый форум PHPBB2 на Mybb2.ru
Русская поддержка phpBB