Речь пойдёт о той части ROM, которая называется IMGFS
Разборка:
Подготовка:
распаковываем ехе с прошивкой любым архиватором, копируем nk.nbf в каталог с утилитами.
1. Запускаем 1_typho5.bat - получаем распакованные из nk.nbf 5 файлов (если прошивка полная)
90000000-IPL.nb, 91000000-SPL.nb, 96000000-GSM.nb, 82040000-OS.nb, 92000000-Splash.nb
2. Запускаем 2_prepare_imgfs.bat - получаем imgfs_raw_data.bin и imgfs_removed_data.bin
3 Запускаем 3_viewimgfs.bat - получаем папку dump в которой находятся модули и файлы из которых состоит 82040000-OS.nb (кроме XIP)
прошивка распакована.
Редактирование:
Удаление файлов:
прошивка состоит из модулей (каталог в котором находится собственно файл ехе или dll и несколько служебных файлов) и файлов.
Насколько я понял, модули расположены в памяти статически и способ замены модуля модулем на сегодня неизвестен.
Для удаления файлов из прошивки достаточно просто удалить файлы/модули из папки dump, рекомендую не удалять файлы, а перемещать их в отдельный каталог, например DEL т.к. размер добавленных файлов не может превышать размер удалённых, то будет удобнее потом ориентироватся при добавлении файлов.
Прошивка имеет пакетную структуру, т.е. все программы и группы файлов разделены на пакеты по назначению.
Пакеты делятся на две части OEM и SYS
OEM содержит драйвера и программы которые добавленны производителем устройства, часть из них могут работать только на определённых устройствах.
SYS основная часть прошивки, содержит такие пакеты как OS, SHELL, NETCF и т.д, а так же все микрософтовские программы.
Состав пакета на примере NETCF:
1. fee507c4-1f41-46f2-a341-62b4bc1a9d80.dsm - содержит описание состава пакета
2. fee507c4-1f41-46f2-a341-62b4bc1a9d80.rgu - файл формата REGEDIT4, имеет такое же имя как и .dsm. Содержит изменения и дополнения в реестре, необходимые для работы файлов из которых состоит пакет. Наличие .rgu не обязательно, он есть в том случае, когда необходимы изменения в реестре.
3. Собственно файлы
Для корректного и полного удаления ненужных программ, удобно разбить прошивку на пакеты (не всегда явно понятно какие файлы входят в ту или иную программу)
Я для этой цели использовал Package Tool 1.01 от bepe (для WM6)- полезная утилита, позволяет разложить прошивку по полочкам (пакетам).
Создаём копию папки dump и далее работаем с ней.
Использование:
Необходимо выбрать папку (в нашем случае dump), в которой находится файл packages.sof
После выбора будет показана некоторая информация о прошивке.
После этого необходимо выбрать в меню Tools пункт Build Packages,
будут созданны две папки OEM и SYS, если разбирали офпрошивку, то все файлы будут разбиты на пакеты, если самодельную
то часть файлов останется в папке dump (в том случае если не использовалась пакетная сборка прошивки, см. ниже)
Дальше смотрим из каких файлов состоит та программа(пакет) которую хотим удалить, и перемещаем эти файлы из первоначального каталога dump (который не разбит на пакеты) в каталог с теми файлами которые хотим удалить из прошивки (DEL).
Добавление файлов:
Просто копируем необходимые файлы в папку dump, в том случае если хотим заменить модули, предварительно удаляем весь модуль (всю папку с содержимым) из dump-а
Обратите внимание, файлы из модулей не имеют подписи, поэтому их необходимо подписать перед добавлением в прошивку.
Перед добавлением файлов в dump, рекомендую сначала все файлы копировать в отдельный каталог, например ADD, для того чтобы можно было сравнить размер удалённых и добавленных файлов.
Создание ярлыков в меню "Пуск" и копирование файлов в каталоги:
Изначально все файлы находятся в каталоге windows, куда будут скопированы файлы и какие созданы каталоги при первой загрузке системы описано в файле initflashfiles.dat
initflashfiles.dat это текстовый файл в кодировке UNICODE
Формат команд достаточно прост и интуитивно понятен, например
Directory("\Windows\Start Menu"):-File("Internet Explorer.lnk","\Windows\pie.lnk") - скопировать в каталог \Windows\Start Menu файл из каталога \Windows\pie.lnk переименовав его в Internet Explorer.lnk
После внесения изменений необходимо проверить первые два байта, открыв файл любым НЕХ редактором.
Если это будут FE FF, то их необходимо удалить. Файл должен начинатся с 3В 00.
На моей практике, FE FF возникают при использовании для редактирования файла такой непотребной программы как Блокнот
Рекомендую использовать AkelPad (
http://akelpad.sf.net/), программа позволяет редактировать и сохранять initflashfiles.dat с атрибутом "Только для чтения"
и после редактирования FE FF не появляются (как впрочем и после Notepad++ и EmEditor)
Добавление записей в реестр, сертификатов и т.д.
Добавить записи в реестр можно двумя способами, прямое редактирование файлов реестра(об этом ниже) и с помощью файлов *.provxml
.provxml это XML файлы в кодировке UTF-8, с помощью которых выполняются различные операции - добавление записей в реестр (<characteristic type=Registry" ), операции с файлами (<characteristic type=FileOperation" , копирование (Copy) и создание ярлыков (Shortcut)), добавление записей в mxip базы ( characteristic type=Metabase" ), добавление сертификатов ( characteristic type=CertificateStore" )
можно использовать любой .provxml
Как получить в нужном формате записи которые необходимо добавить в .provxml
Если программа которую нужно добавить в прошивку в виде САВа, то все записи в реестр можно взять из _setup.xml
Т.е. берём все записи которые начинаются с characteristic type=Registry" и добавляем .provxml
Если необходимо добавить программу, скажем из другой прошивки, то нужные записи можно найти в .rgu пакета этой программы и
добавить непосредственно в реестр или например мне было удобней создать САВ и взять все записи из того же _setup.xml.
То же самое относится и к добавлению сертификатов. Только в этом случае берём записи которые начинаются с characteristic type=CertificateStore"
FileOperation, Metabase и прочее нужно смотреть в уже имеющихся .provxml и делать по аналогии.
Для редактирования .provxml удобно использовать редактор с синтаксической подсветкой и проверкой синтаксиса.
Я использовал Notepad++ (
http://notepad-plus.sourceforge.net/)
Редактирование реестра:
Процесс редактирования реестра Strik3r описал тут
http://forum.wce.by/download.php?id=10432Я редактировал реестр только для удаления ненужных записей, т.е. ненужные записи локализации для других языков, параметр который вызывает стандартную камеру по нажатию на соответствующую кнопку и т.п.
Все добавления в реестр делал с помощью .provxml, мне кажется это более удобным для редактирования и поиска ошибок.
Сборка:
После того как все файлы добавлены, реестр отредактирован, .provxml изменены, приступаем к сборке.
Запускаем 4_buildimgfs.bat, видим процесс добавления файлов и 5_make_imgfs.bat, получаем обновлённый 82040000-OS.nb
Обратите внимание, размер и дата создания файла 82040000-OS.nb не изменятся, это нормально.
И последний этап создание нового файла nk.nbf.
Для этого используется утилита nb2nbf_tornado.exe
Добавляем все пять файлов из которых состоит прошивка, как показано на рисунке и нажимаем "Translate", получаем обновлённый nk.nbf.
Если в прошивке изменённая OS, то заполнение верхних полей (Model ID, Language и т.д.) не обязательно, т.к. прошить такую прошивку можно только на устройство с убранным CID производителя (с SuperCID).
Если вы хотите обновить например только радио (GSM), при этом не обязательно делать SuperCID, достаточно просто пересобрать прошивку, заменив только 96000000-GSM.nb то необходимо заполнить все поля аналогично официальной прошивке, посмотреть что там написано можно с помощью TyphoonNbfTool.exe или NBFViewer.exe.
Извлечение XIP:
Скопировать 82040000-OS.nb в каталог XIP_extract, запустить Make_XIP.bat.
Эту операцию можно проделать ради интереса, "посмотреть что там внутри", как добавить изменённый XIP в прошивку я не знаю.
Пакетное строительство.
Для редактирования прошивок различных устройств созданы так называемые кухни (Kitchen),
на своём опыте могу сказать, что инструменты для редактирования ROM-ов Wizard-a, подходят для Торнадо.
В частности CorePRO_Kitchen (
http://forum.xda-developers.com/showthread.php?t=309549), также хорошее описание на русском языке по работе с кухней можно почитать тут
http://3ppc.net/index.php?showtopic=1684 Лирическое заключение.
Что бы перевести смартфон в режим бутлоадера нужно выключить смартфон, нажать и удерживать кнопку "Камера" и нажать на кнопку питания на одну-две секунды, должен мигнуть красным левый индикатор, после этого нужно отпустить кнопку питания, продолжая удерживать кнопку "Камера".
Когда увидите на экране три полоски RBG цветов, подключите смартфон к компьютеру, на экране, в нижнем левом углу, появится надпись USB.
Далее прошивка стандартным способом, думаю эта инфа пригодится не раз.
Удачи.
Необходимые утилиты в архиве.
Дополнительную информацию по редактированию прошивок можно почитать тут:
Редактирование прошивки MPx200E-ten M500. Прошивка WM5 и ее редактированиеASUS P525. Редактирование прошивок.А так же любую тему, на любом форуме, которая посвящена редактированию прошивок для любых устройств на WM5/6.
Прошивки Dump которых можно использовать для Tornado
VOX
http://www.dopodasia.com/download/RUU_V ... 0_Ship.exe HTC S710 dump
http://rs118.rapidshare.com/files/42928 ... .1_RUS.rarhttp://ifolder.ru/2674324 - Доступен до: 2007-09-13 17:07:57
содержат только RAW файлы, тоже самое что и imgfs_raw_data.bin, извлекаются так же.
Graphite
http://xdagraphite.asus.com/o2/Graphite ... V3.4.0.zip Excalibur
ftp://htc_us:htc_us_0426@66.185.19.164/ ... 0_Ship.exehttp://rs146.rapidshare.com/files/52468 ... 0_Ship.exe Windows Mobile 6 Localized Emulator Images
http://www.microsoft.com/downloads/deta ... laylang=en Если вы не очень хорошо понимаете о чём речь, не обладаете элементарными навыками в работе с консольными приложениями и XML, не пытайтесь делать ничего из вышеописаного.
Вложение:
PagePool_Changer.rar
Вложение:
EditingROM.rar
Вложение:
provxml.rar
Вложение:
WM.Emulator.Images.Dumper.rar
Вложение:
file.jpg