Приветствую Вас Гость | RSS
Перейти на главную страницу | FAQ по созданию прошивок - Форум | Регистрация | Вход
 Просто он лучший!
 
[Последние сообщения · Участники · Правила форума · Поиск по сайту! · RSS ]
 
Внимание! Прежде чем задать свой вопрос, зайдите сюда, а также в ОБЯЗАТЕЛЬНОМ ПОРЯДКЕ раздел FAQ, так как там уже есть ответы на Ваши вопросы.

  • Страница 1 из 1
  • 1
Модератор форума: alex_bo, GAV, Teo  
Форум » Все для коммуникатора » Прошивки, обновления, драйвера » FAQ по созданию прошивок (от rom_usr)
FAQ по созданию прошивок
GAV Дата: Понедельник, 05.01.2009, 20:45 | Сообщение # 1
Группа: Модераторы
Сообщений: 1766
Город:
Награды: 4  +
Репутация: 72  ±
Замечания:
Статус: Offline
Прежде чем читать, хочу сказать, что я не несу никакой ответственности за "сломанные" девайсы. Все делаем на свой страх и риск. Кто боится или не понимает, что делает - лучше ничего не делать! Прежде чем следать каждое действие - читайте, что это, как это работает и для чего предназначено.

В принципе я писал в форуме все что нужно.
1) Взять набор утилит что собрал juggler (http://forum.xda-developers.com/showthread.php?t=317288) там собрано многое от мамаича, bepe и других "прошивколомателей"
2) Разобрать exe прошивки
0 - 0x017E7FF - это загрузчик (назвать wm6_flasher.dat)
0x17E800 и до конца (-40 байт) - собственно и есть "заливаемый" ROM (назвать wm6.b000ff, по первым ASCII символам B000F)
3) запустить 1dumprom.cmd
Получим
файлы: wm6.nb0, wm6.nb0.payload, wm6.nb0.extra и собственно набор файлов прошивки в каталоге dump
Обратите внимание, что есть обычные файлы, а есть каталоги типа afd.dll внутри которых есть файлы S000, S001 и т.д. такие каталоги называются "модулями" в них хранится информация о размещении это модуля в памяти после прошивки. Так называемая relocation table.
4) Работаем с dump (делаем что хотим)
5) запускаем 3buildrom.cmd
Получаем new.exe - это и есть прошивка.
Пример,
- как поменять logo при загрузке?
Их два. 1-й лого хранится в wm6_flasher.dat (посмотреть можно, например, Samsung Flash Imager v6.1) - это MITTs
определяем адрес этого лого, у меня получилось 0x426d8, далее с помощью PDSR.exe (что выкладывал StSlam в нашей ветке) меняем на др. bmp
Внимание! BMP может быть не любой, если слишком много цветов и оттенков (разных), то замена может затереть программную область. Советую эксперементировать очень осторожно с флешером, ато если он закорраптится, то перепрошить девайс уже будет нельзя.
2-й лого хранится в SPRx блоках (2-й sprx блок) в wm6.nb0.payload
можно написать батник
Set Logo=newlogo.bmp
Set bmp_logo2_off=0x4980
msflshtool wm6.nb0.payload -d -p 1
SRPX2XIP.exe wm6.nb0.payload.part1
PDSR.exe wm6.nb0.payload.part1.xip %bmp_logo2_off% %Logo%
XIP2SRPX.exe wm6.nb0.payload.part1.xip
msflshtool wm6.nb0.payload -p 1 -r wm6.nb0.payload.part1.xip.xiporg
REM Delete temporary files
del wm6.nb0.payload.part1
del wm6.nb0.payload.part1.xip
del wm6.nb0.payload.part1.xip.xiporg
Внимание! после распаковки-упаковки sprx блока он получается другого размера (об этом писал StSlam) поэтому это надо учитывать в своих преобразованиях.
Итак wm6_flasher.dat и wm6.nb0.payload готовы. можно собирать exe - запустить 3buildrom.cmd
- как работать с пакетами
Для начала надо разложить dump по пакетам (есть Scoter kitchen и его утилиты PKG2DMP.exe, DMP2PKG.exe; есть еще PKGtool из других kitchen). Получаем каталоги OEM, ROM, SYS - далее работаем с этими каталогами: можно редактировать реестр (rgu файлы), менять размещение файлов (после прошивки) в файле initflashfiles.dat, можно изменить "модули", но для этого нужно менять их relocation table в файлах S00x (надо учитавать чтобы не было наложений адресов в разных модулях). Для этого нужно или писать свою тулзу (информация есть от мамаича) или воспользоваться тем что выложено на xda. Судя по той информации что у меня есть, можно поменять далеко не любой модуль. и т.д. и т.д. чем больше копаешься, тем больше понимаешь сколько ты еще не знаешь. Когда закончили менять пакеты - собираем их в dump. Внимательно посмотреть на dump и что написал сборщик пакетов (нет ли ошибок и т.п.)
После этого собираем прошивку.

В принципе информации для начала (чтобы испугаться :-)) достаточно, далее все станет понятно в процессе работы. Если конечно не боитесь "убить" свой девайс. (если будет ошибка в загрузчике - то поменять прошивку может и не удастся).



БОЛЬШАЯ ПРОСЬБА!НЕ ПИШИТЕ МНЕ В ЛИЧКУ,Т.К. Я НЕ МОГУ ЕЁ ПРОЧЕСТЬ ИЗ-ЗА ТОГО,ЧТО БОЛЬШЕЕ ВРЕМЯ ЛАЖУ СО ЗВЕРЯ!
 
GAV Дата: Понедельник, 05.01.2009, 20:45 | Сообщение # 2
Группа: Модераторы
Сообщений: 1766
Город:
Награды: 4  +
Репутация: 72  ±
Замечания:
Статус: Offline
Иструкция - 2-я часть.

Итак, когда уже научились распаковывать dump из прошивки, пришло время научиться ее редактировать. Что для этого нужно?
1) Умение пользоваться интернетом и поиском
2) Желание учиться и не останавливаться на достигнутом
3) Свободное время
4) Голова на плечах
5) Понимание структуры, файловой системы прошивки и назначение некоторых конфиг файлов
6) Софт для редактирования
7) Не бояться убить девайс и не паниковать в случае неудачной прошивки
Постараюсь ответить на каждый из этих вопросов.В любом случае я не несу никакой ответственности за поломку Вашего девайса.
Все делам на свой страх и риск.

1) Умение пользоваться интернетом и поиском
Как оказалось, это довольдо большая проблема для многих участников нашего форума. Постараюсь немного научить на примерах
- запускаем google.com (на мой взгляд, самый лучших поисковик)
- Вводим что мы хотим найти при этом стараемся организовать правильно запрос, чтобы результатом это запроса были не
2 миллиона ссылок, а хотя-бы тысячи, а лучше сотни
- Просматривая ссылки на первых 2-3 а иногда пяти страницах поисковика, ищем "зацепки" для последующего поиска
- далее включаем в запрос слова "зацепки" и делаем новый search
- В конце концов, выполнив 2-3 search-а можно найти нужную информацию
Пример (мы хотим найти как редактировать реестр в прошивке)
Google -> "WM5 ROM edit registry". Получаем множество ссылок, просмотрев 1-ю часть, мы поймем что реестр хранится в .rgu и .hv файлах. У нас появились "зацепки" -> ".rgu", ".hv". Организовав поиск по редактированию этих типов фалов, мы найдем совет что можно пользоваться программной -> rgucomp. Появилась еще одна "зацепка" .. и т.д. пока не найдем все что нам надо.

2) Желание учиться и не останавливаться на достигнутом
3) Свободное время
4) Голова на плечах
Эти пункты взаимозависимые. На них останавливаться не будем

5) Понимание структуры, файловой системы прошивки и назначение некоторых конфиг файлов
Для начала, необходимо посетить другие ветки нашего форума и почитать что пишут насчет структуры прошивки.
Напишу пару слов о системных файлах и их назначении
- Packages.sof - информация о установленных пакетах (ссылка на необходимые dsm файлы)
- XXX-XXX-XXX-XXX.dsm - информация о конкретном пакете (список файлов, сертификат), рядом с ним как правило есть .rgu файл с таким же названием - это часть реестра относящаяся к этому пакету
- initflashes.dat - информация о меппинге фалов и каталогов после загрузки ROM (файл в unicode кодировке, но там отсутствуют первые символы признака юникода 0xFF 0xFE). Важно! не забыть удалить эти сомволы после редактирования этого файла при поможи программы WinHex, например.
- default.hv - реестр (ветки HKCR и HKLM)
- user.hv - реестр (ветка HKCU)
После того как прошивка собрана, файлы .dsm и .rgu уже не нужны. Windows грузит реестр из .hv файлов. Но удалять эти файлы из прошивки не рекомендуется т.к. это сильно затруднит последующую модификацию прошивки.
Сами файлы в прошивке бывают 2-х видов - модули и файлы. С файлами все понятно, а модуль - это файл (директория вида XXX.dll) который идет с таблицей размещения в памяти после прошивки. Поэтому после изменения или добавления нового модуля, необходимо провести reallocation (программа G'Realloc.exe) для всех модулей чтобы не было конфликта по адресам.

6) Софт для редактирования
- WM Editing tools (мне понравилась Scoter kitchen http://forum.xda-developers.com/showthread.php?t=293296 )
- dsm tools -> http://forum.xda-developers.com/showthread.php?t=312985
- reallocation tools -> http://forum.xda-developers.com/showthread.php?t=331094
- rgucomp -> ссылок не даю, существуют разные сборки, для каждого языка. т.е. есть русский rgucomp, китайский и т.д.
- registry workshop -> http://www.torchsoft.com/
- WinHex -> http://www.x-ways.net/winhex/index-m.html
- Total commander :-) -> http://www.ghisler.com/

Когда все скачали и установили можно приступать к следующему этапу



БОЛЬШАЯ ПРОСЬБА!НЕ ПИШИТЕ МНЕ В ЛИЧКУ,Т.К. Я НЕ МОГУ ЕЁ ПРОЧЕСТЬ ИЗ-ЗА ТОГО,ЧТО БОЛЬШЕЕ ВРЕМЯ ЛАЖУ СО ЗВЕРЯ!
 
GAV Дата: Понедельник, 05.01.2009, 20:46 | Сообщение # 3
Группа: Модераторы
Сообщений: 1766
Город:
Награды: 4  +
Репутация: 72  ±
Замечания:
Статус: Offline
РЕДАКТИРОВАНИЕ ROM

1) Разложить dump на packages
Для начала нужно сохранить куда-нибудь текущий dump (он нам еще пригодится)
Запускаем DMP2PKG.exe из Scoter kitchen и получаем вместо дампа каталоги SYS и OEM. Если кроме этих двух каталогов присутствуют еще файлы или есть файл missing.txt, то это ошибки тех, кто делал прошивку до вас и эти ошибки необходимо будет исправить!
OEM и SYS потом нужно будет переписать в Scoter kitchen в подкаталог utilities

2) Получить файл boot.rgu
Можно вытащить из ксипов, но на первоначальном этапе лучше всего взять у китайцев для своей версии рома.После этого переписать этот файл в <Scoter kitchen>\Utilities\ROM\XIP\

3) Редактирование OEM и SYS
SYS - это винда, поэтому без особой необходимости эти пакеты лучше не трогать
OEM и особенно OEMApps и OEMMultiApps внутри него - это то что нам нужно, там стоит весь OEM софт который можно "рубить".
Каждый подкаталог - это package в котором есть XXX-XXXX-XXX-XXXX.dsm и .rgu файл.
3.1) Удаление файлов
Удалять можно все за исключением .dsm и .rgu файлов. После удаления файлов запустить PKG2DMP.exe и получим новый dump для последующей сборки прошивки
3.2) Добавление файлов
Добавлять тоже можно простым переписыванием (только если файл не модуль) - эти файлы окажутся в каталоге \windows после перепрошивки. Если нужно переместить в другой folder - то нужно указывать mapping в файле initflashes.dat
3.3) Создание своего пакета
Создаем пустой каталог внутри OEM или SYS. Например, MYBEST_APP :-)
Генерируем uuid при помощи генератора (надо чтобы такого uuid не было в других packages) http://www.famkruithof.net/uuid/uuidgen
Например, получили 5e1602bb-c656-4c2e-adb1-02c8ca5c1309 (Внимание, такой уже в прошивке есть!)
Создаем пустые файлы в нашем каталоге 5e1602bb-c656-4c2e-adb1-02c8ca5c1309.dsm и 5e1602bb-c656-4c2e-adb1-02c8ca5c1309.rgu
и переписываем в наш каталог нужные нам файлы. Реестр записываем в .rgu файл (не забываем, 1-я строка REGEDIT4, последняя - пустая, а сам .rgu файл должен быть unicode)
3.4) Редактирование реестра
Как я уже говорил, весь реестр разбросан по packages в .rgu файлах. Там можно и редактировать значения (за исключением boot.rgu). После этого .hv файлы соберутся автоматически в Scoter kitchen когда будет собираться dump.
Можно править напрямую .hv файлы (не рекомендуется) при помощи rgucomp.
Пример,
rgucomp.exe -o default.hv -nologo >default.rgu
Создается файл default.rgu в ANSI кодировке без 1-й строки "REGEDIT4".
Пересохраняем файл в unicode кодировку (notepad.exe тоже подойдет) и не забываем про 1-я строка "REGEDIT4", последняя - пустая
Редактируем default.rgu, после это производим обратный процесс
rgucomp -b default.rgu
После этого переименовываем boot.hv в default.hv
Аналогично можно редактировать user.hv
3.5) Добавление модуля в пакет
Создать модуль правильно - дело не очень простое, но иногда есть желание замувить модуль из одного пакета в другой.
Сразу скажу простотым переписыванием модулей тут не обойтись. т.к. Scoter kitchen выдаст IO cast exception и dump собрать не получится. Для этого нужно вначале собрать package сторонними средствами (например dsm tool) или взять готовый package в котором уже есть этот модуль. А потом уже этот package добавить в Scoter kitchen



БОЛЬШАЯ ПРОСЬБА!НЕ ПИШИТЕ МНЕ В ЛИЧКУ,Т.К. Я НЕ МОГУ ЕЁ ПРОЧЕСТЬ ИЗ-ЗА ТОГО,ЧТО БОЛЬШЕЕ ВРЕМЯ ЛАЖУ СО ЗВЕРЯ!
 
GAV Дата: Понедельник, 05.01.2009, 20:47 | Сообщение # 4
Группа: Модераторы
Сообщений: 1766
Город:
Награды: 4  +
Репутация: 72  ±
Замечания:
Статус: Offline
3.6) Финальные проверки
После того как все отредактированно, модули переалокейчены, реестр пересобран, initflashes.dat поправлен и новый dump собран необходимо убедиться, что все сделано правильно и ничего не забыто.
3.6.1) Найти забакапленный ранее dump и пофайлово сравнить два дампа (например при помощи Total Commander)
Если новый дамп не содержит каких-либо файлов, которые вы не удаляли - нужно срочно найти ошибку в сборке, прежде чем заливать прошивку на девайс.
3.6.2) Распаковать .hv файлы с обоих дампов и сравнить получившиеся rgu файлы при помощи registry workshop
Опять же если новый реестр не содержит некоторых веток или ключей, которых вы не удаляли - искать ошибку в сборке.
3.6.3) Посмотреть внимательно на initflashes.dat (новый) и убедиться что все файлы на которые есть ссылка присутствуют в dump
3.6.4) Сохранить куда-нибудь новый дамп и снова разобрать его на packages. Структура каталогов и содержимое файлов должно быть такое же как и что храниться в Scoter kitchen (откуда вы собирали пакеты)
3.6.5) Прочие проверки ... как говорится 7 раз отмерь - 1 отрежь!

3.7) Сборка прошивки
Удаляем старый dump, на его место переписываем новый. и запускаем 3buildrum.cmd из juggler kitchen. Получаем файл new.exe - это и есть наша новая PDA часть прошивки.
Устанавливаем на кпк и радуемся когда появилась заставка виндоус и после этого еще все загрузилось.
Если все сделать правильно, то проблем с загрузкой быть не должно. Я собирал по этому алгоритсу уже десятки раз.

Еще раз хочу напомнить, что я не несу никакой ответственности за ваши ошибки или недостаток знаний и опыта. Во всем надо винить только себя и никого больше.



БОЛЬШАЯ ПРОСЬБА!НЕ ПИШИТЕ МНЕ В ЛИЧКУ,Т.К. Я НЕ МОГУ ЕЁ ПРОЧЕСТЬ ИЗ-ЗА ТОГО,ЧТО БОЛЬШЕЕ ВРЕМЯ ЛАЖУ СО ЗВЕРЯ!
 
veber Дата: Суббота, 17.10.2009, 21:48 | Сообщение # 5
Группа: Пользователи
Сообщений: 33
Город: Комсомольск
Награды: 0  +
Репутация: 0  ±
Замечания:
Статус: Offline
Это все прекрасно,НО обьясните на пальцах преимущества WM 6.1 2 3 4 5 6 (7891011) перед WM 5?У меня проблема- как снести кучу ненужных мне файлов и программулек типа чтения изиток и всякой другой лабуды.Дрова на 4 гига Q-МЕНЮ ,Опера читалка , толковый плеер-все что надо и никаких тормозов и зависаний-в общей сложности порядка дюжины дополнительного фарша-ПЕСНЯ.
 
ArTeM4eG Дата: Суббота, 17.10.2009, 22:47 | Сообщение # 6
Группа: Windows Mobile 6.1
Сообщений: 664
Город: Mariupol
Награды: 5  +
Репутация: 54  ±
Замечания:
Статус: Offline
Quote (veber)
обьясните на пальцах преимущества WM 6.1 2 3 4 5 6 (7891011) перед WM 5

А какова разница между виндой 98 и ХР... вот в том и между 5 и 6!
Quote (veber)
как снести кучу ненужных мне файлов и программулек типа чтения изиток и всякой другой лабуды

Я не понял чего вы хотите... если вы хотите снести всю так называемую "лабуду" при сборке прошивки, то я не пойму в чом проблема - просто нужно удалить соответствующие пакеты в кухне в папке ОЕМ


 
Teo Дата: Суббота, 17.10.2009, 22:56 | Сообщение # 7
Помогаю советом
Группа: Модераторы
Сообщений: 1615
Город:
Награды: 36  +
Репутация: 147  ±
Замечания:
Статус: Offline
нет... я думаю что человеку просто нужно показать суперлайт прошивку, например вашу ArTeM4eG,
 
Форум » Все для коммуникатора » Прошивки, обновления, драйвера » FAQ по созданию прошивок (от rom_usr)
  • Страница 1 из 1
  • 1
Поиск:

Copyright creppers, [eЯmac] Хостинг от uCoz
Новости