Решил открыть интересную тему полного портирования прошивок с устройства на устройство. Пока видимо в закрытом разделе... Если есть другие мнения, можно обсудить?
---
Собственно, предпосылкой для темы является достигнутый результат - портированная целиком WM6 с Rover G6 на HP RW6815, а также отсутствие полной и подробной информации по данному вопросу (портирования прошивок между разными устройствами). Ситуация аналогична портированию XIP, по которому у нас на сайте, пожалуй, самая подробная информация (и отнюдь не только в Рунете). Хоть пока и не сведенная в единую методику для общего случая...
В общем, не претендуя на особую оригинальность и обобщенность, изложу сейчас несколькими сообщениями, как портировать WM6 с ровера G6 на HP 6815. Принципы и методика собственно общие и для других устройств
Общие принципы и технология
Описываю исходя из использования атомовской кухни, которую публиковал в соседней ветке, и терминологии "наших" устройств, чтоб было проще понимать.
1. Разбираем прошивку с устройства-донора. Нам нужны IMGFS, XIP, ну и ExtRom, если он есть..
2. Разбираем XIP прошивки-донора, портируем туда свое ядро (или портируем XIP на свое ядро, по вкусу ). Релочим M'Reloc_nk и XIPPort-ом при портировании все на "правильные" адреса целевого устройства при необходимости (!включая релок coredll.dll на "правильные" адреса с помощью M'Reloc!).
3. Разбираем IMGFS прошивки-донора на dump и далее на SYS и OEM.
4. Релочим разобранный IMGFS прошивки-донора на "правильные" адреса целевого устройства с помощью G'Reloc.
5. Заменяем OEMDrivers в разобранной IMGFS прошивки-донора на целевую (в описании исхожу из "правильной" прошивки, где OEM значит именно OEM, а не самосборных порнографий, где OEMDrivers засунуты в SYS... иначе апроксимируем все на реальный случай...), правим RGU-реестра по необходимости. Ребилдим DSM от OEMDrivers. (...можно раскидать на несколько пакетов оригинальный OEMDrivers, чтобы не парится... исходим из пакета целевого устройства при разбиении на пакеты...)
6. Закидываем в ROM свой diskimage_Ver.nb0, файлики XIP, которые там требуются (boot.rgu и т.д.)
7. Зашиваем в diskimage_Ver.nb0 новый собранный XIP.
7. Собираем прошивку, шьемся, ловим "неожиданности"
В целом, вроде примерно так.
Пример портирования Ровера G6 на HP RW6815
Конкретику описывать гораздо проще Общая технология была понятна, но вот нюансы... В общем, делал так (опускаю эксперименты, пишу сразу по результату):
1. С помощью кухни Atom Life разобрал прошивку Rover G6 из доступных мне источников (см. ветку про прошивку Ровер G6 в разделе "Прошивка"). Вытащил XIP и IMGFS, распаковал XIP в общий формат и разобрал IMGFS в виде dump. ExtRom пока не найден
2. Пересобрал XIP, там все просто и абсолютно аналогично портированию XIP с атомов (см. ветку про разборку XIP в разделе "Шаманства..."). Даже никаких модулей не пришлось двигать дополнительно от своего ядра, все заимствовал от варианта под атом. Coredll.dll тоже двигать не пришлось...
3. Закинул dump от ровера в кухню, написал батник DumpToPackages (в опубликованном варианте в соседней ветке прилагается), запустил его и получил OEM и SYS.
4. В ROM закинул все от 6815 (diskimage_Ver.nb0 и т.д.), в кухне есть и для 6815 и для роверов/орсио...
5. Запустил G'Reloc из кухни, ввел "правильные" адреса для наших устройств:
- slot 0: 01 F9 00 00
- slot 1: 03 D3 00 00
- size: 9E 90 00 00
- unknown: 00 00 00 00
6. После релока сделал ход конем (как нужно делать правильно, читать выше, я делал, чтобы запустить ) . ТУПО перегнал весь OEMDrivers из своей прошивки из SYS в OEMDrivers из OEM в целевой. Удалил из целевой ее DSM и RGU, перебилдил DSM. (... правильно, все аккуратненько, ручками, с пересбором... ).
7. Заменил XIP в ROM на пересобранный.
8. Собрал прошивку и "Ура!!! Заработало!!!"
P.S. Сейчас закину в качестве опорного вариант для 6815 и опубликую ссылку. Можно разобрать на пакеты и модифицировать кухней (для роверов и орсио там также все есть), если нужна прошивка G6.
P.P.S. Оговорюсь, я преследовал две цели - академический интерес и заимствование модулей для нашей с ArHon-ом сборки. То есть создание полностью рабочей прошивки на базе G6 не входило в мои интересы. Для полностью рабочей нужно внимательно просмотреть RGU-шку от OEMDrivers от G6 и отпатчить ее ручками Правда я обещал народу в ветке про прототип русской WM6 для ровера, что будет альтернативный вариант, но может кто-нибудь из ровероводов соберет его? Мне сложно без самого девайса... Думаю, все были бы очень благодарны... Прошивка то реально живая с кучей "наворотов"!
P.P.P.S. Меня же сейчас очень интересует ExtRom от G6...
Вот, вроде пока и все.
Общанная ссылка: http://rapidshare.com/files/91813713/HP_RW_6815_Rover_G6_WM6_RUS.zip.html
Просто мегареспект!
Забыл написать, для портирования самосборных прошивок с других устройств нужно еще разбираться с сертификатами (делать их микс)... А то будет веселая картинка, когда устройство пойдет в загрузку, да на этом и будет висеть...
Хотя, тут как повезет, на G6 проблемы не было, а вот HTC Wizard с прошивкой от 3ppc вызвал проблему
! | Перенес тему из Закрытого раздела в Шаманства в связи с возникновением вопросов на данную тему в разделе Прошивка :) |
Русская версия Invision Power Board (http://nulled.cc)
© Invision Power Services (http://nulled.cc)