IPB

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

Форум перемещен на новый домен: forum.pda2u.ru - исправьте, пожалуйста, свои ссылки
> Разбираем XIP
ArHon
сообщение 3.1.2008, 13:28
Сообщение #1


PDA2U.RU Team
****

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




Огромное спасибо 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. Мануал писался при портировании хипа для ровера, прикладываю его - надо проверить.


Спасибо сказали:
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
4 страниц V   1 2 3 > »   
Начать новую тему
Ответов
BigMike
сообщение 15.11.2007, 0:02
Сообщение #2


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
 
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
AWinterice
сообщение 15.11.2007, 9:41
Сообщение #3


PDA2U.RU Team
****

Группа: Разработчики
Сообщений: 265
Регистрация: 20.10.2007
Из: Екатеринбург
Пользователь №: 9
Спасибо сказали: 25 раз(а)

Девайс:HTC Incredible S


нет не строится вылетает ошибка, полное описание из дебугера
Код
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.ArgumentException: An entry with the same key already exists.
  at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
  at System.Collections.Generic.TreeSet`1.Add(T item)
  at System.Collections.Generic.SortedDictionary`2.Add(TKey key, TValue value)
  at XIPPort.Form1.CreateMap()
  at XIPPort.Form1.button2_Click(Object sender, EventArgs e)
  at System.Windows.Forms.Control.OnClick(EventArgs e)
  at System.Windows.Forms.Button.OnClick(EventArgs e)
  at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
  at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
  at System.Windows.Forms.Control.WndProc(Message& m)
  at System.Windows.Forms.ButtonBase.WndProc(Message& m)
  at System.Windows.Forms.Button.WndProc(Message& m)
  at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
  at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
  at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
   Assembly Version: 2.0.0.0
   Win32 Version: 2.0.50727.1378 (REDBITSB2.050727-1300)
   CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
XIPPort
   Assembly Version: 1.0.2702.33852
   Win32 Version:
   CodeBase: file:///C:/Documents%20and%20Settings/Winterice/Рабочий%20стол/xip/XIPPort.exe
----------------------------------------
msvcm80
   Assembly Version: 8.0.50727.1378
   Win32 Version: 8.00.50727.1378
   CodeBase: file:///C:/WINDOWS/WinSxS/x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.1378_x-ww_5c7e3652/msvcm80.dll
----------------------------------------
System.Windows.Forms
   Assembly Version: 2.0.0.0
   Win32 Version: 2.0.50727.1378 (REDBITSB2.050727-1300)
   CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
   Assembly Version: 2.0.0.0
   Win32 Version: 2.0.50727.1378 (REDBITSB2.050727-1300)
   CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
   Assembly Version: 2.0.0.0
   Win32 Version: 2.0.50727.1378 (REDBITSB2.050727-1300)
   CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
   <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.

может поможет
спроси k0sterа какие системные коммпаненты стоят их версии впервую очереь netframework какой думаю просто не хватает системных бибиотек
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
BigMike
сообщение 15.11.2007, 13:06
Сообщение #4


PDA2U.RU Team
****

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

Девайс:Samsung Galaxy Ace


Цитата
вылетает ошибка, полное описание из дебугера

Как и у меня.
Ладно, буду пытать костера...
Что интересно - не строится карта только для наших прошивок (перепробовал уже все, включая все WM6). Для XIP профета, например, строится нормально.
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
BigMike
сообщение 17.11.2007, 10:50
Сообщение #5


PDA2U.RU Team
****

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

Девайс:Samsung Galaxy Ace


Дело сдвинулось с мертвой точки. Возможно, потому что скачал 3-й дотнет, то ли просто нашел наконец способ.
Короче, у меня теперь строится карта, если перед ее построением сделать Realloc.
Теперь все становится гораздо интереснее (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif)
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
alex_beda
сообщение 17.11.2007, 11:43
Сообщение #6


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

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

Девайс:Rover G5


Цитата(BigMike @ 17.11.2007, 12:50) *
Дело сдвинулось с мертвой точки. Возможно, потому что скачал 3-й дотнет, то ли просто нашел наконец способ.
Короче, у меня теперь строится карта, если перед ее построением сделать Realloc.
Теперь все становится гораздо интереснее (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif)

Ну наконец то у кого то хоть что то сдвинулось.
Многое может проясниться.
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
BigMike
сообщение 17.11.2007, 17:38
Сообщение #7


PDA2U.RU Team
****

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

Девайс:Samsung Galaxy Ace


[attachment=18:XIPPORT_patched.zip]Новости с полей ковыряния XIP.
Как выясняется, стандартный xipport почему-то некорректно работает с нашими прошивками. Ниже приложил патченный - он уже корректно распаковывает и даже собирает почти без ошибок (хотя WinHEX все равно находит различающиеся блоки при просто распаковке-запаковке)...


Спасибо сказали:
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
alex_beda
сообщение 18.11.2007, 9:30
Сообщение #8


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

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

Девайс:Rover G5


Цитата(BigMike @ 17.11.2007, 19:38) *
Новости с полей ковыряния XIP.
Как выясняется, стандартный xipport почему-то некорректно работает с нашими прошивками. Ниже приложил патченный - он уже корректно распаковывает и даже собирает почти без ошибок (хотя WinHEX все равно находит различающиеся блоки при просто распаковке-запаковке)...

Странно, видимо опять у всех по разному работает.
Потому когда я собираю обратно после сборки, то там явно видно что это другой файл,
т.к он выходит почти на 1 мб меньше размером.
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
BigMike
сообщение 18.11.2007, 23:42
Сообщение #9


PDA2U.RU Team
****

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

Девайс:Samsung Galaxy Ace


Дык то, что он меньше - это как раз нормально (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif)
Конец оригинального забит FF, в новом этого нет. При портировании недостающие байты добиваются FF.

Та версия xipport один фиг работает некорректно. Jiggs с xda-developers поделился еще более свежим xipport, который должен работать.
Пока нет времени проверить - поэтому выкладываю так.
Прикрепленные файлы
Прикрепленный файл  xipport_3.zip ( 67.32 килобайт ) Кол-во скачиваний: 169
 
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
AWinterice
сообщение 19.11.2007, 11:47
Сообщение #10


PDA2U.RU Team
****

Группа: Разработчики
Сообщений: 265
Регистрация: 20.10.2007
Из: Екатеринбург
Пользователь №: 9
Спасибо сказали: 25 раз(а)

Девайс:HTC Incredible S


Короче данный хиппорт нормально извлекает и строит (на примере выще выложенного роверовского хипа), но не получается выдрать хип из существующих прошивок, что из атом что пытался из Геральда вытащить (нахожу начало и конец xip в файлах прошивки Disk_img.nb0 для атома и nk.nba для геральда копирую в новый файл) запускаю хиппорт извлекается только nk.exe ну и соответствееноо не карты нестроятся ниче. может кто знает в чем проблема?
Малость изменения выдрал xip их подопытного геральда
Все вопрос по разбору вроде решил, разобрался с началом и концом секции хип в атомовской прошивке
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
BigMike
сообщение 19.11.2007, 23:30
Сообщение #11


PDA2U.RU Team
****

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

Девайс:Samsung Galaxy Ace


Цитата
запускаю хиппорт извлекается только nk.exe ну и соответствееноо не карты нестроятся ниче. может кто знает в чем проблема?

Некоторые девайсы имеют два xip.
Первый действительно содержит только nk.exe
Цитата
разобрался с началом и концом секции хип в атомовской прошивке

(IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif) Я же дал точные адреса в топике "структура прошивок". Что ты еще искал?


Спасибо сказали:
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
AGC
сообщение 24.12.2007, 8:53
Сообщение #12


PDA2U.RU Team
****

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

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


Что то здесь давно не было сообщений (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif) Никто не поделится результатами, удалось ли пересобрать XIP? (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif)

Просто начал разбираться с XIP от ATOM и RW6815. Может информация уже и не очень актуальная, но напрямую ни в этой ни в соседней ветке четко выраженной не видел...

1. В XIP1 лежит первая часть nk.exe. Если менять его в ATOM-вской прошивке, то вроде бы нужно менять и первую часть... (???)

2. Дополнительные ссылки по смысловой части ядра:
NK.exe Boot process
giisr.dll - что это такое
ну и далее там по ссылкам.

В общем, xip-ы разобрал... Сейчас пытаюсь осмыслить инструкцию по reloc-у... И вообще разобраться с распределением памяти...

P.S. Метод грубой силы не прошел, после тупой замены без нормального релока коммуникатор не грузился (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif)
---
Пока текущий максимальный результат - доходит до надписи сброса в значения по умолчанию. Потом висит. Это после переноса ядра из ATOM в RW6815...
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
AGC
сообщение 26.12.2007, 13:32
Сообщение #13


PDA2U.RU Team
****

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

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


Удалось достигнуть некоторых результатов с RW6815 на почве пересборки XIP. Сейчас попробую несколькими сообщениями их изложить (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif)

По поводу XIP1 и nk.exe, похоже, что (цитата):

"Насчет nk.exe в универсале. Читай про процесс загрузки WM5 и структуру образа (DIO файла). Таблица в DIO идентична по формату с MBR в жестких дисках (сам можешь увидеть байты 55 AA в конце первого сектора, последующий после MBR сектор можно еще найти по строке MSFLSH50). В MBR может находиться до 4 разделов. Первый - image update loader (формат практически идентичен РОМам 2005 вынды, потому его понимает dumprom), там тоже находится своя копия nk.exe и куча других файлов, так сказать мини-ОС. Второй - уже загрузчик основной OS (формат тот же), там тоже находится nk.exe, но уже та копия, которая используется при обычной работе системы. Третий - IMGFS. Четвертый, необязательный - FAT партиция, которая может использоваться под persistent storage, хранение скажем radio ROM, или вообще не использоваться - это оставлено на совесть разработчика (в универсале не используется).
Первые 2 раздела могут быть не запакованы, в этом случае их очень удобно патчить на предмет отучения от сертификатов. Но могут быть и запакованы, и таких девайсов становится все больше."

взято: http://forum.wce.by/viewtopic.php?t=6750

В общем, пока не совсем ясно, нужно ли менять эту часть (XIP1), если собирать прошивку на своем родном ядре.
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
AGC
сообщение 26.12.2007, 13:51
Сообщение #14


PDA2U.RU Team
****

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

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


2. В результате изучения XIP удалось поднять прошивку ATOM_EXEC_TFED_RC3_PP8MB (http://forum.xda-developers.com/showthread.php?t=352622) для RW6815. Они там в последних версиях намудрили с оптимизацией памяти, в результате на оригинальной версии камера у меня не работала (запускалась, но висла при выполнении любых операций). Впрочем, судя по форуму там были проблемы и на самом ATOM EXEC с камерой и рядом других модулей. Сейчас пересобрал XIP, вроде бы все работает.

Что было сделано - восстановлено оригинальное распределение памяти (собственно это там на форуме и упоминалось).

Было в новой прошивке:
CODE
ATOM EXEC TRED RC3
~~~~~~~~~~~~~~~~~~

80180000 - 80180000 L00000000 Start: start of RAM
80180000 - 80186000 L00006000 uninitialized data of region_2 nk.exe
80186000 - 801e1000 L0005b000 initialized data of region_3 nk.exe
801e1000 - 801e2000 L00001000 initialized data of region_1 giisr.dll
801e2000 - 801e2000 L00000000 ------ start of RAM free space
801e2000 - 84000000 L03e1e000 NUL
84000000 - 84000000 L00000000 End: end of RAM


Правильное распределение (от WM5, так понимаю, с учетом выброса hd.dll и osax...dll):
CODE
80580000 - 80580000 L00000000 Start: start of RAM
80580000 - 80586000 L00006000 uninitialized data of region_2 nk.exe
80586000 - 805e1000 L0005b000 initialized data of region_3 nk.exe
805e1000 - 805e6000 L00005000 NUL
805e6000 - 805e7000 L00001000 initialized data of region_1 giisr.dll
805e7000 - 805e7000 L00000000 ------ start of RAM free space
805e7000 - 84000000 L03a19000 NUL
84000000 - 84000000 L00000000 End: end of RAM


Восстанавливается, самое простое, копированием папок nk.exe и giisr.dll из разобранного XIP "правильной" прошивки (например, ATOM_EXEC_WM607AWWE_20071117A1WWE_8MBPP).
Далее:
1. realoc'P
2. write maps
3. проверяем на всякий случай MAP.txt (адреса nk.exe и giisr.dll - vbase и realadr)
4. build xip_out.bin
5. Правим ниже адрес записи на 00180000, имя файла прошивки типа diskimage_Ver.nb0
6. write xip_out.bin to

Все.

Собранный XIP для ATOM EXEC 5.2.1948: http://forum.pda2u.ru/forum/index.php?s=&...dpost&p=629
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
AGC
сообщение 26.12.2007, 14:16
Сообщение #15


PDA2U.RU Team
****

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

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


3. Удалось пересобрать XIP чистого ATOM так, что теперь на RW6815 камера работает! Собственно, после долгих мытарств с портированием ядра RW6815 (напишу дальше) и возней с прошивками ATOM EXEC, ну и т.д. пришел к простому заключению, что нужно сдвинуть ядро ATOM на "правильные" адреса RW6815 (которые совпадают для nk и giisr с ATOM EXEC). Это и было проделано:

3.1. Оригинальное распределение памяти на ATOM:
CODE
80500000 - 80500000 L00000000 Start: start of RAM
80500000 - 80506000 L00006000 uninitialized data of region_2 nk.exe
80506000 - 80561000 L0005b000 initialized data of region_3 nk.exe
80561000 - 80566000 L00005000 NUL
80566000 - 80567000 L00001000 initialized data of region_1 giisr.dll
80567000 - 80567000 L00000000 ------ start of RAM free space
80567000 - 84000000 L03a99000 NUL
84000000 - 84000000 L00000000 End: end of RAM


3.2. Оригинальное распределение памяти на RW6815:
CODE
80580000 - 80580000 L00000000 Start: start of RAM
80580000 - 80586000 L00006000 uninitialized data of region_2 nk.exe
80586000 - 805e1000 L0005b000 initialized data of region_3 nk.exe
805e1000 - 805e6000 L00005000 NUL
805e6000 - 805e7000 L00001000 initialized data of region_1 giisr.dll
805e7000 - 805e7000 L00000000 ------ start of RAM free space
805e7000 - 84000000 L03a19000 NUL
84000000 - 84000000 L00000000 End: end of RAM


3.4. Нужна утилита M'Reloc_nk (G'Reloc and other tools)

3.5. Натравливаем утилиту M'Reloc_nk на подпапку nk.exe в модулях разобранной прошивки ATOM.
Видим: e32_vbase: 9AC00000, 032_realadr: 80500000
Меняем: e32_vbase: 9AC00000, 032_realadr: 80580000
Жмем: Doit

3.6. Натравливаем утилиту M'Reloc_nk на подпапку giisr.dll в модулях разобранной прошивки ATOM.
Видим: e32_vbase: 9AC95000, 032_realadr: 80566000
Меняем: e32_vbase: 9AC95000, 032_realadr: 805E6000
Жмем: Doit

3.7. В imageinfo.txt для nk.exe правим поля o32[2].o32_realaddr: R=80580000, o32[3].o32_realaddr: R=80586000

3.8. В imageinfo.txt для giisr.dll правим поле o32[1].o32_realaddr: R=805E6000

Ну и далее как и для XIP ATOM EXEC...


Собранный XIP для ATOM PDAVIET_ATOM_OS_5_2_2000: http://forum.pda2u.ru/forum/index.php?s=&...dpost&p=632

P.S. Досконально, конечно, работу пока еще не проверил. Но запускается, телефон, камера, интерфейсы работают. Хотя надо проверять дальше.
P.P.S. Наверное, проще сделать релокацию самой camera.dll, чем смещать ядро. Но это пока в стадии эксперимента (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif)
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
AGC
сообщение 26.12.2007, 14:23
Сообщение #16


PDA2U.RU Team
****

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

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


Как заключение. Портировать ядро оси с ATOM (и ATOM EXEC) на хардверное ядро RW6815 пока так и не удалось. Хотя собрал вроде все верно, но не запускается. Похоже, нужно глубже копать прежде всего nk.exe на предмет таблиц адресов и размещений... Те, кто собирал на xda-developers и т.д., как то информацией в форумах по этой части не делятся, только результатом... Впрочем, если на ядре ATOM все будет работать корректно, наверное, портирование железного ядра и не нужно...

P.S. Если что забыл написать, извиняюсь (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif) Слишком много было экспериментов и размышлений. Как опорные можно использовать те XIP, которые я приложил для ATOM EXEC (??? ОС 5.2.1948) и просто ATOM (PDAVIET ОС 5.2.2000).

P.P.S. А вот портировать новую версию ядра ОС по сути очень просто... Там таких проблем уже не возникает.
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
BigMike
сообщение 26.12.2007, 15:44
Сообщение #17


PDA2U.RU Team
****

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

Девайс:Samsung Galaxy Ace


Респект!
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
alex_beda
сообщение 26.12.2007, 15:53
Сообщение #18


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

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

Девайс:Rover G5


Ну что могу сказать лично от себя,
я хип'ом занимался только на уровне поиска картинки и поиска драйвера дисплея в нём.
Из прочтённого выше, я понял то, что нихрена не понял.
Допустим для пользователей Ровера и Орсио нет (к примеру в данный момент) необходимости портировать ядро.
Есть необходимость заменить драйвер дисплея.
Всётаки я наверное больше железячник, или сказывается постоянное недосыпание + мороз -15 (для нас это много),
недоспавшие мозги совсем в конец замёрзли (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif) ))))))

Есть два файла xip.bin + ddi.dll
ну или разобранный хип в папке и файл ddi. dll,
что нужно сделать чтоб этот долбанный ddi вставить в хип, чтоб не было порблем с дисплеем
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
AGC
сообщение 26.12.2007, 16:57
Сообщение #19


PDA2U.RU Team
****

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

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


Цитата(alex_beda @ 26.12.2007, 15:53) *
Есть два файла xip.bin + ddi.dll
ну или разобранный хип в папке и файл ddi. dll,
что нужно сделать чтоб этот долбанный ddi вставить в хип, чтоб не было порблем с дисплеем

А что за кухня?
ddi.dll в XIP не вставляется! Он идет в imgfs секции, т.е. обычной ОС, которая разбирается imgfstools.
Хотя сам файл относится к OEMDrivers...

P.S. Собственно, а в чем проблема? Ты же сам прикладывал imgfstools, когда ArHon опубликовал сообщение, как менять драйвера клавиатуры, экрана и звука в прошивке ATOM EXEC на RW6815 (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif) Или я что-то совсем не понял?
P.P.S. Собственно, даже в кухнях это кладется в OEMDrivers либо в SYS, либо что правельнее в OEM (зависит от корректности переразборки ОС).
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
AGC
сообщение 26.12.2007, 17:08
Сообщение #20


PDA2U.RU Team
****

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

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


2 alex_beda: Или речь идет совсем не о ddi.dll, а о проблемах с экраном? У нас на RW68xx после обычной замены ddi.dll на родную на прошивке от ATOM EXEC нужно было передергивать экран после вынимания аккумулятора, из-за этого собственно и нужна была прошивка от ATOM, где с экраном все было в порядке. Но на ATOM не работала камера на 6815 (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif)

Если так, что можно просто взять мои XIP для той прошивки, на которой корректно работал экран после обычной замены ddi.dll, если версия ОС совпадает. Иначе пересобрать XIP как описано выше для нужной версии ОС.
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
ArHon
сообщение 26.12.2007, 18:55
Сообщение #21


PDA2U.RU Team
****

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




Цитата(AGC @ 26.12.2007, 14:23) *
Как заключение. Портировать ядро оси с ATOM (и ATOM EXEC) на хардверное ядро RW6815 пока так и не удалось.


Молодец! Я долго ковырялся с хипами на предмет релокации модулей, но почему-то натравить на них M'Reloc_nk не догадался (IMG:http://forum.pda2u.ru/style_emoticons/default/biggrin.gif)

А портировать ядрос WM5 даже не пытайся - слишком разные системы, там драйвера даже разными процессами грузятся, вот цитата с MSDN: "The Windows Embedded CE driver model has changed for Windows Embedded CE 6.0. In Windows CE 5.0 and earlier, drivers ran in the Device.exe process. In Windows Embedded CE 6.0, drivers run in the NK.exe process."
Перейти в начало страницы
Вставить ник
+Цитировать сообщение

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

 



RSS Текстовая версия Сейчас: 28.3.2024, 22:00
return_links(); ?>