IPB

Здравствуйте, гость ( Вход | Регистрация )

Форум перемещен на новый домен: forum.pda2u.ru - исправьте, пожалуйста, свои ссылки
> Разбираем XIP
Old Kind MadMike
сообщение 15.11.2007, 0:02
Сообщение #1


PDA2U.RU Team
****

Группа: Admin
Сообщений: 1806
Регистрация: 20.10.2007
Из: Moscow
Пользователь №: 11
Спасибо сказали: 172 раз(а)

Девайс:Samsung Galaxy Ace


В приложении роверовский XIP (любезно выковырянный k0ster'ом) и утилиты для ковыряния.
При распаковке этого XIP сталкиваюсь с проблемой: не могу построить карту (write map). Обращался к k0ster'у - у того карта строится.
Попробуйте, строится ли карта у вас?

Сообщение отредактировал Old Kind MadMike - 18.11.2007, 23:48
Прикрепленные файлы
Прикрепленный файл  rover_xip.zip ( 1.1 мегабайт ) Кол-во скачиваний: 119
 
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
 
Начать новую тему
Ответов
ArHon
сообщение 3.1.2008, 13:28
Сообщение #2


PDA2U.RU Team
****

Группа: Друзья PDA-Hack
Сообщений: 396
Регистрация: 24.11.2007
Из: Р.Татарстан, г.Набережные Челны
Пользователь №: 28
Спасибо сказали: 129 раз(а)

Девайс:HP iPAQ rw6815


Огромное спасибо AGC за его труд, но я все-таки думаю, что портирование устройство-зависимых файлов правильнее, чем наоборот. Так что выкладываю свой вариант мануала по портированию. Подчеркиваю, что нашел всю информацию и собрал все в кучу AGC, за что ему хвала и благодарность! (IMG:http://forum.pda2u.ru/style_emoticons/default/biggrin.gif)
Итак:
1. Распаковываем родной XIP WM5 с картами (далее XIP_OLD)

2. Распаковываем XIP WM6 с картами (далее XIP_NEW), копируем его отдельно и создаем пакеты - make pkgs (далее XIP_NEW_COPY)

3. Смотрим состав папки XIP_NEW_COPY\Out\Files\OemXipKernel и копируем с заменой такие же файлы из XIP_OLD\Out\Files в XIP_NEW\Out\Files
Если язык родной WM5 прошивки и прошивки WM6 не совпадают, то делаем слудующее:
среди них будет boot.rgu - в нем находим ключи, отвечающие за MUI и изменяем их в соответствии с языком прошивки WM6:
Код
[HKEY_LOCAL_MACHINE\MUI]
    "Enable"=dword:1
[HKEY_LOCAL_MACHINE\MUI]
   "SysLang"=dword:409
[HKEY_CURRENT_USER\MUI]
   "CurLang"=dword:409

в файле boot.hv WinHex'ом находим unicode строку MUI и изменяем соответствующие параметры тоже (см. рис.1)

4. Смотрим состав папки XIP_NEW_COPY\Out\Modules\OemXipKernel и копируем с заменой такие же файлы из XIP_OLD\Out\Modules в XIP_NEW\Out\Modules
скорее всего, состав файлов будет следующим:
Код
cecompr.dll\
ceddk.dll\
giisr.dll\
nk.exe\
stratad_intel_l.dll\
trueffs.dll\
cecompr.dll.txt
ceddk.dll.txt
giisr.dll.txt
nk.exe.txt
stratad_intel_l.dll.txt
trueffs.dll.txt


5. Теперь нам понадобится утилита M'Reloc_nk. Для начала рассмотрим модули cecompr.dll, ceddk.dll, stratad_intel_l.dll, trueffs.dll, с ними попроще, рассмотрим на примере trueffs.dll:
5.1. Натравливаем M'Reloc_nk на модуль XIP_NEW\Out\Modules\TrueFFS.dll
5.2. Сравниваем файлы XIP_NEW\Out\Modules\FrueFFS.dll\imageinfo.txt и XIP_NEW_COPY\Out\Modules\OemXipKernel\FrueFFS.dll\imageinfo.txt. Я использую для этого команду "Сравнить по содержимому" Total Commader - очень удобно, но можно и любым другим способом.
5.3. В M'Reloc_nk показываются два значения - для e32 и Ram. Нам нужно синхронизировать оба. На рис.2 слева - XIP_NEW, справа - XIP_NEW_COPY.
5.4. Смотрим для e32_vbase значение из XIP_NEW_COPY и пишем его в M'Reloc_nk
5.5. Теперь для значения o32_realaddr в M'Reloc_nk заносим значение из XIP_NEW_COPY за вычетом o32_vsize (на рис.3 выделен синим цветом), для рис.3 это будет значение 01FD2000-0000F000=01FC3000.
5.6. Жмем Doit! - и видим результат - в M'Reloc_nk теперь значения, соответствующие XIP_NEW_COPY (см. рис.4)
5.7. Теперь в самом файле XIP_NEW\Out\Modules\FrueFFS.dll\imageinfo.txt исправляем эти значения на значения из XIP_NEW_COPY\Out\Modules\OemXipKernel\FrueFFS.dll\imageinfo.txt (рис.5,6)
5.8. Повторяем п.5.1.-5.7. для модулей cecompr.dll, ceddk.dll, stratad_intel_l.dll


6. Теперь рассмотрим модули giisr.dll и nk.exe - адресация там не прямая, а косвенная, возьмем к примеру giisr.dll:
6.1. Натравливаем M'Reloc_nk на модуль XIP_NEW\Out\Modules\giisr.dll
6.2. Сравниваем файлы XIP_NEW\Out\Modules\giisr.dll\imageinfo.txt и XIP_NEW_COPY\Out\Modules\OemXipKernel\giisr.dll\imageinfo.txt (рис.7)
6.3. Чтобы узнать значение P нужно сравнить файлы XIP_OLD\Out\ROMHDR.txt и XIP_NEW\Out\ROMHDR.txt (рис.8). Скорее всего (как и в данном случае), они совпадут.
6.4. Вычисляем e32_vbase для XIP_NEW_COPY и заносим его в M'Relock_nk (рис.8), o32_realaddr заносим аналогично другим модулям (рис.9). Doit! Правка imageinfo.txt - готово!
6.5. п.6.1.-6.4. повторяем для nk.exe


7. Теперь мы подошли к следующему этапу - правке nk.exe:
7.1. Открываем файл XIP_NEW\Out\Modules\nk.exe\S000 в WinHex, ищем байты 050052E3 (рис.10). Прямо под найденными байтами видим ключевой байт (выделен красным) - его-то и меняем на 02. Сохраняем.
7.2. Теперь запускаем Xipport и делаем для XIP_NEW Realoc P, Write maps.
7.3. Открываем файл XIP_OLD\Out\Map.txt и находим в нем строчку с rom_00 (рис.11). Красным выделен старый адрес rom_header. Открываем файл XIP_NEW\Out\Modules\nk.exe\S000 в WinHex и ищем этот адрес, помня, что реально адреса хранятся начиная с младших байтов, т.е. для данного случая ищем 2C0BD29A (рис.12). Теперь открываем XIP_NEW\Out\Map.txt и находим в нем строчку с rom_00 - там увидим новый адрес rom_header (рис.13). Вот его и заносим вместо старого в nk.exe, т.е. в данном случае заменяем 2C0BD29A на 686BD79A (рис.14).


8. Все! Теперь делаем build xip_out.bin - хип готов, осталось вставить его на место в прошивку!

P.S. Мануал писался при портировании хипа для ровера, прикладываю его - надо проверить.
Прикрепленные файлы
Прикрепленный файл  pic01.jpg ( 28.04 килобайт ) Кол-во скачиваний: 133
Прикрепленный файл  pic02.jpg ( 68.34 килобайт ) Кол-во скачиваний: 131
Прикрепленный файл  pic03.jpg ( 65.66 килобайт ) Кол-во скачиваний: 96
Прикрепленный файл  pic04.jpg ( 63.85 килобайт ) Кол-во скачиваний: 67
Прикрепленный файл  pic05.jpg ( 15.4 килобайт ) Кол-во скачиваний: 60
Прикрепленный файл  pic06.jpg ( 12.98 килобайт ) Кол-во скачиваний: 46
Прикрепленный файл  pic07.jpg ( 64.16 килобайт ) Кол-во скачиваний: 58
Прикрепленный файл  pic08.jpg ( 54.6 килобайт ) Кол-во скачиваний: 67
Прикрепленный файл  pic09.jpg ( 63.9 килобайт ) Кол-во скачиваний: 61
Прикрепленный файл  pic10.jpg ( 16.67 килобайт ) Кол-во скачиваний: 52
Прикрепленный файл  pic11.jpg ( 12.97 килобайт ) Кол-во скачиваний: 45
Прикрепленный файл  pic12.jpg ( 21.99 килобайт ) Кол-во скачиваний: 38
Прикрепленный файл  pic13.jpg ( 13.24 килобайт ) Кол-во скачиваний: 52
Прикрепленный файл  pic14.jpg ( 25.02 килобайт ) Кол-во скачиваний: 60
Прикрепленный файл  xip_out.rar ( 953.02 килобайт ) Кол-во скачиваний: 36
 


Спасибо сказали:
Перейти в начало страницы
Вставить ник
+Цитировать сообщение

Сообщений в этой теме
- Old Kind MadMike   Разбираем XIP   15.11.2007, 0:02
- - Winterice   нет не строится вылетает ошибка, полное описание и...   15.11.2007, 9:41
- - Old Kind MadMike   Цитатавылетает ошибка, полное описание из дебугера...   15.11.2007, 13:06
- - Old Kind MadMike   Дело сдвинулось с мертвой точки. Возможно, потому ...   17.11.2007, 10:50
|- - alex_beda   Цитата(Old Kind MadMike @ 17.11.2007, 12...   17.11.2007, 11:43
- - Old Kind MadMike   Новости с полей ковыряния XIP. Как выясняется, ста...   17.11.2007, 17:38
|- - alex_beda   Цитата(Old Kind MadMike @ 17.11.2007, 19...   18.11.2007, 9:30
- - Old Kind MadMike   Дык то, что он меньше - это как раз нормально Кон...   18.11.2007, 23:42
- - Winterice   Короче данный хиппорт нормально извлекает и строит...   19.11.2007, 11:47
- - Old Kind MadMike   Цитатазапускаю хиппорт извлекается только nk.exe н...   19.11.2007, 23:30
- - AGC   Что то здесь давно не было сообщений Никто не под...   24.12.2007, 8:53
- - AGC   Удалось достигнуть некоторых результатов с RW6815 ...   26.12.2007, 13:32
- - AGC   2. В результате изучения XIP удалось поднять проши...   26.12.2007, 13:51
- - AGC   3. Удалось пересобрать XIP чистого ATOM так, что т...   26.12.2007, 14:16
- - AGC   Как заключение. Портировать ядро оси с ATOM (и ATO...   26.12.2007, 14:23
|- - ArHon   Цитата(AGC @ 26.12.2007, 14:23) Как заклю...   26.12.2007, 18:55
|- - AGC   Цитата(ArHon @ 26.12.2007, 18:55) Молодец...   26.12.2007, 19:23
- - Old Kind MadMike   Респект!   26.12.2007, 15:44
- - alex_beda   Ну что могу сказать лично от себя, я хип'ом за...   26.12.2007, 15:53
|- - AGC   Цитата(alex_beda @ 26.12.2007, 15:53) Ест...   26.12.2007, 16:57
- - AGC   2 alex_beda: Или речь идет совсем не о ddi.dll, а ...   26.12.2007, 17:08
- - AGC   Да, забыл еще написать. Я бы не стал слепо доверят...   26.12.2007, 21:01
- - AGC   Нашел, может не очень полезную с практической точк...   28.12.2007, 3:43
- - AGC   В общем, с портированием WM6 на аппаратное ядро RW...   30.12.2007, 21:28
- - AGC   Всех с наступившим Новым Годом! Успехов и счас...   1.1.2008, 16:24
- - AGC   Вот и все! Я нашел самое ключевое изменение...   1.1.2008, 18:31
- - AGC   Уу...у! Ну ладно, раз никто не пишет, пойду т...   1.1.2008, 22:08
- - ArHon   AGC, молодец! Как просохнешь, собирай всю инфу...   2.1.2008, 0:57
|- - AGC   Цитата(ArHon @ 2.1.2008, 0:57) AGC, молод...   2.1.2008, 7:17
- - ArHon   AGC, есть положительный результат! По твоей те...   2.1.2008, 20:41
|- - AGC   Цитата(ArHon @ 2.1.2008, 20:41) AGC, есть...   3.1.2008, 2:07
- - AGC   Портирование ядра ОС из XIP WM6 ATOM/ATOM EXEC на ...   3.1.2008, 5:35
- - ArHon   Огромное спасибо AGC за его труд, но я все-таки ду...   3.1.2008, 13:28
|- - alex_beda   Цитата(ArHon @ 3.1.2008, 15:28) P.S. Ману...   3.1.2008, 19:24
|- - AGC   Цитата(alex_beda @ 3.1.2008, 19:24) Прило...   4.1.2008, 17:09
- - AGC   Зашился с ядром Ровера на базе ОС 5.2.1948. Все Ок...   4.1.2008, 18:25
- - ArHon   AGC, а хард ресет на роверовской прошивке попробов...   4.1.2008, 18:39
|- - AGC   Цитата(ArHon @ 4.1.2008, 18:39) AGC, а ха...   4.1.2008, 18:49
- - AGC   2 Arhon: Кстати, с Роверовским ядром уже реально п...   4.1.2008, 19:35
- - ArHon   AGC, я так подозреваю, что все дело в nk.exe, а во...   5.1.2008, 1:54
|- - AGC   Цитата(ArHon @ 5.1.2008, 1:54) AGC, я так...   5.1.2008, 2:36
- - ArHon   ВСЕ! Решение с хард ресетом найдено! P.S...   5.1.2008, 12:42
|- - AGC   Цитата(ArHon @ 5.1.2008, 12:42) ВСЕ! ...   5.1.2008, 16:43
- - Old Kind MadMike   Господа, утилитку M'reloc_nk выложите, плиз? ...   5.1.2008, 17:00
|- - AGC   Цитата(Old Kind MadMike @ 5.1.2008, 17:00...   5.1.2008, 17:15
- - ArHon   AGC, я описал технологию в скрытом разделе   5.1.2008, 17:26
|- - AGC   Цитата(ArHon @ 5.1.2008, 17:26) AGC, я оп...   5.1.2008, 17:54
- - Old Kind MadMike   И по повду дизассемблирования тоже не мешало бы ...   7.1.2008, 21:38
- - ArHon   Old Kind MadMike, сам файл nk.exe я вытащил sDuper...   8.1.2008, 1:09
- - Old Kind MadMike   Цитата(AGC @ 9.1.2008, 7:57) Вот, по пово...   9.1.2008, 9:41
|- - AGC   Цитата(Old Kind MadMike @ 9.1.2008, 9:41)...   9.1.2008, 22:25
- - AGC   Вот. На xda-developers появилась инструкция по пор...   12.1.2008, 23:56
- - Old Kind MadMike   Цитатаинструкция по портированию новой версии ОС Э...   6.2.2008, 15:03
|- - AGC   Цитата(Old Kind MadMike @ 6.2.2008, 15:03...   9.2.2008, 8:22
- - Old Kind MadMike   ЦитатаА так... Ну другой язык - это отдельный разг...   9.2.2008, 11:11
|- - AGC   Цитата(Old Kind MadMike @ 9.2.2008, 11:11...   10.2.2008, 15:59
- - Old Kind MadMike   Мы с ним говорили не про перевод через MUI, а про ...   11.2.2008, 9:56
|- - AGC   Цитата(Old Kind MadMike @ 11.2.2008, 9:56...   11.2.2008, 14:45
- - Old Kind MadMike   ЦитатаЕсли будешь тащить с пропета SYS в IMGFS, та...   11.2.2008, 14:47
- - k0ster   Old Kind MadMike ЦитатаМы с ним говорили не про пе...   26.2.2008, 11:59
- - Old Kind MadMike   Т.е. кроме реестра, сами системные модули "ун...   26.2.2008, 12:04
- - k0ster   Абсолютно верно. Переводить нужно только файлы с р...   26.2.2008, 15:06
- - Old Kind MadMike   Я правильно понимаю, что процедура настолько прост...   26.2.2008, 15:14
|- - ArHon   Цитата(Old Kind MadMike @ 26.2.2008, 15:1...   26.2.2008, 15:34
|- - AGC   Цитата(Old Kind MadMike @ 26.2.2008, 15:1...   26.2.2008, 19:07
- - salman DZ   Помогите разобраться как ХИП обратно в ром вставит...   2.3.2008, 12:27
|- - AGC   Цитата(salman DZ @ 2.3.2008, 12:27) Помог...   2.3.2008, 14:37
- - Old Kind MadMike   XIPPort отлично вставляет все, куда надо. Кидаешь ...   2.3.2008, 21:06
- - AGC   Для релока модулей XIPа можно использовать M'R...   1.10.2008, 8:36


Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 16.9.2019, 20:07

Rambler's Top100 Яндекс.Метрика