IPB

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

Форум перемещен на новый домен: forum.pda2u.ru - исправьте, пожалуйста, свои ссылки
> Разбираем XIP
BigMike
сообщение 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'у - у того карта строится.
Попробуйте, строится ли карта у вас?

Сообщение отредактировал BigMike - 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
 


Спасибо сказали:
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
alex_beda
сообщение 3.1.2008, 19:24
Сообщение #3


Основатель PDA2U.RU
****

Группа: Друзья PDA-Hack
Сообщений: 178
Регистрация: 20.10.2007
Из: Калининград
Пользователь №: 7
Спасибо сказали: 82 раз(а)

Девайс:Rover G5


Цитата(ArHon @ 3.1.2008, 15:28) *
P.S. Мануал писался при портировании хипа для ровера, прикладываю его - надо проверить.

Приложенный ХИП не запускается. Висит на ХР.
Но экран после передёргивания аккума уже не рябит. Тоже уже достижение. (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif)

Инфа выдаваемая отладчиком в СОМ порт:
Код
OEMIPLInit: Shutdown Device, step1 !!!

OEMIPLInit: Shutdown Device, step2 !!!

OEMIPLInit: Shutdown Device, step3 !!!

OEMIPLInit: Shutdown Device, step4 !!!

after InitDisplay
clear  bUpdateMode flag!!!

INFO: Jumping to image...
Windows CE Kernel for ARM (Thumb Enabled) Built on Apr 13 2006 at 16:34:56
ProcessorType=0411  Revision=7
sp_abt=ffff1000 sp_irq=ffff0800 sp_undef=ffffc800 OEMAddressTable = 9ac05a34
dwCleanBootSign =0x00000000
PSPR =8008
RCNR=1e4b2e 1e4b24
User required clean boot!!
===>v_pMEMC->msc1:23f9
+OEMInit
OSVer:1.10.00 RUS
+Reset the BSPArg(a00ff000)
-OEMInit
+===>v_pMEMC->msc0:12801282
+===>v_pMEMC->msc1:23f9
+===>v_pMEMC->msc2:7ffcfff4
change IPM to 416Mhz
change IPM to 416Mhz
1===>v_pMEMC->msc0:15d015d2
1===>v_pMEMC->msc1:23f9
1===>v_pMEMC->msc2:7ffcfff4
Sp=ffffc7cc
Data Abort: Thread=83fcf024 Proc=80616fd0 'filesys.exe'
AKY=ffffffff PC=9ac3843c(NK.EXE+0x0003843c) RA=4558c000(???+0x4558c000) BVA=0464010b FSR=00000003
Data Abort: Thread=83fcf024 Proc=80616fd0 'filesys.exe'
AKY=ffffffff PC=03f689d4(???+0x03f689d4) RA=03f6a5c4(???+0x03f6a5c4) BVA=9ac01cb8 FSR=0000000d
Data Abort: Thread=83fcf024 Proc=80616fd0 'filesys.exe'
AKY=ffffffff PC=03f69700(???+0x03f69700) RA=0001ba04(filesys.exe+0x0000ba04) BVA=9ac01d68 FSR=0000000d
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
AGC
сообщение 4.1.2008, 17:09
Сообщение #4


PDA2U.RU Team
****

Группа: Admin
Сообщений: 4884
Регистрация: 25.11.2007
Из: СПб
Пользователь №: 32
Спасибо сказали: 1657 раз(а)

Девайс:RW6815/P320/Diamond


Цитата(alex_beda @ 3.1.2008, 19:24) *
Приложенный ХИП не запускается. Висит на ХР.
Но экран после передёргивания аккума уже не рябит. Тоже уже достижение. (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif)

Сейчас попробую поиграться с ядром Ровера и его прошивкой. Если получится загрузиться на 6815, выложу. Просто ты не написал, в какую прошивку пытался вставить этот XIP...
Перейти в начало страницы
Вставить ник
+Цитировать сообщение

Сообщений в этой теме
- BigMike   Разбираем XIP   15.11.2007, 0:02
- - Winterice   нет не строится вылетает ошибка, полное описание и...   15.11.2007, 9:41
- - BigMike   Цитатавылетает ошибка, полное описание из дебугера...   15.11.2007, 13:06
- - BigMike   Дело сдвинулось с мертвой точки. Возможно, потому ...   17.11.2007, 10:50
|- - alex_beda   Цитата(BigMike @ 17.11.2007, 12:50) Дело ...   17.11.2007, 11:43
- - BigMike   Новости с полей ковыряния XIP. Как выясняется, ста...   17.11.2007, 17:38
|- - alex_beda   Цитата(BigMike @ 17.11.2007, 19:38) Новос...   18.11.2007, 9:30
- - BigMike   Дык то, что он меньше - это как раз нормально Кон...   18.11.2007, 23:42
- - Winterice   Короче данный хиппорт нормально извлекает и строит...   19.11.2007, 11:47
- - BigMike   Цитатазапускаю хиппорт извлекается только 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
- - BigMike   Респект!   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
- - BigMike   Господа, утилитку M'reloc_nk выложите, плиз? ...   5.1.2008, 17:00
|- - AGC   Цитата(BigMike @ 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
- - BigMike   И по повду дизассемблирования тоже не мешало бы ...   7.1.2008, 21:38
- - ArHon   BigMike, сам файл nk.exe я вытащил sDuper'ом и...   8.1.2008, 1:09
- - BigMike   Цитата(AGC @ 9.1.2008, 7:57) Вот, по пово...   9.1.2008, 9:41
|- - AGC   Цитата(BigMike @ 9.1.2008, 9:41) Может, д...   9.1.2008, 22:25
- - AGC   Вот. На xda-developers появилась инструкция по пор...   12.1.2008, 23:56
- - BigMike   Цитатаинструкция по портированию новой версии ОС Э...   6.2.2008, 15:03
|- - AGC   Цитата(BigMike @ 6.2.2008, 15:03) Этот ре...   9.2.2008, 8:22
- - BigMike   ЦитатаА так... Ну другой язык - это отдельный разг...   9.2.2008, 11:11
|- - AGC   Цитата(BigMike @ 9.2.2008, 11:11) Ой ли? ...   10.2.2008, 15:59
- - BigMike   Мы с ним говорили не про перевод через MUI, а про ...   11.2.2008, 9:56
|- - AGC   Цитата(BigMike @ 11.2.2008, 9:56) Мы с ни...   11.2.2008, 14:45
- - BigMike   ЦитатаЕсли будешь тащить с пропета SYS в IMGFS, та...   11.2.2008, 14:47
- - k0ster   BigMike ЦитатаМы с ним говорили не про перевод чер...   26.2.2008, 11:59
- - BigMike   Т.е. кроме реестра, сами системные модули "ун...   26.2.2008, 12:04
- - k0ster   Абсолютно верно. Переводить нужно только файлы с р...   26.2.2008, 15:06
- - BigMike   Я правильно понимаю, что процедура настолько прост...   26.2.2008, 15:14
|- - ArHon   Цитата(BigMike @ 26.2.2008, 15:14) Я прав...   26.2.2008, 15:34
|- - AGC   Цитата(BigMike @ 26.2.2008, 15:14) Я прав...   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
- - BigMike   XIPPort отлично вставляет все, куда надо. Кидаешь ...   2.3.2008, 21:06
- - AGC   Для релока модулей XIPа можно использовать M'R...   1.10.2008, 8:36


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

 



RSS Текстовая версия Сейчас: 29.3.2024, 14:41
return_links(); ?>