IPB

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

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


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


Спасибо сказали:
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
4 страниц V  < 1 2 3 4 >  
Начать новую тему
Ответов
AGC
сообщение 26.12.2007, 19:23
Сообщение #22


PDA2U.RU Team
****

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

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


Цитата(ArHon @ 26.12.2007, 18:55) *
Молодец! Я долго ковырялся с хипами на предмет релокации модулей, но почему-то натравить на них 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."


Ну... до M'Reloc_nk я сегодня утром дошел (IMG:http://forum.pda2u.ru/style_emoticons/default/biggrin.gif) До этого пытался вручную откорректировать (IMG:http://forum.pda2u.ru/style_emoticons/default/blink.gif) (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif)

А вот по 6.0 не согласен (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif) Windows Mobile 6.0 базируется на Windows CE 5.2. Windows CE 6.0 видимо будет в семерке...
Сам вчера и сегодня до упада пытался разобраться в нумерации осей от MS.

С другой стороны, там такое ощущение, что толи нужно еще ремапить родной nk.exe из-за ремапа драйверов, толи у нее в nk.exe где-то жестко прошит возврат версии 5.1. Хотя вроде бы это должно быть в ядре операционной системы, а не nk.exe. Такое ощущение, что те кто реально портировал свой nk.exe на другое устройство это нашли, но вот информации нет.

См., например, http://forum.xda-developers.com/showthread...ght=physlast%3A
И еще было в цепочке по прогрессу WM6 для Trinity. Там как раз сначала удалось тупо портировать файлы оси, просто понизив у них версию до 5.1. А уже потом видимо было найдено, где же эта версия прошита... Может быть в nk.exe, тогда результат закономерен (IMG:http://forum.pda2u.ru/style_emoticons/default/sad.gif)
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
AGC
сообщение 26.12.2007, 21:01
Сообщение #23


PDA2U.RU Team
****

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

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


Да, забыл еще написать. Я бы не стал слепо доверять утилитам типа M'Reloc_nk. Не было времени серьезно проверить, но похоже, что они даже не ведут разбор PE-заголовка (впрочем, его ведут другие утилиты, это так, общее замечание (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif) ) и вообще кода. Алгоритм похоже следующий - просто по выравниванию на двойное слово идет поиск по маске и замена. Удобно, но потом баги придется вылавливать. В общем, для окончательной версии (если она будет (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif) ), придется ручками проверять...

P.S. Это я к тому, что M'Reloc_nk отказался мне двигать pm.dll, когда я пытался собрать ядро на базе RW6815. А там как раз больше всего было пересчетов.
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
AGC
сообщение 28.12.2007, 3:43
Сообщение #24


PDA2U.RU Team
****

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

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


Нашел, может не очень полезную с практической точки зрения, информацию. Номер версии ОС жестко зашит в coredll.dll в теле функции GetVersionExW. Код имеет подобный вид:
CODE
EXPORT GetVersionExW
GetVersionExW
STMFD SP!, {R4,R5,LR} ; GetVersionEx
MOVL R3, 0x79С ; 1948
MOV R2, #0x114
MOV R1, #5
MOV LR, #2
MOV R4, #3
...
BX LR
; End of function GetVersionExW


Теоретически, нужно вытащить coredll.dll, дизассемблировать ее, найти функцию и посмотреть HEX-код, который уже и поменять на нужный в смысле версии. Практически, т.к. я не большой специалист по кодированию инструкций этих процессоров, то привожу поясняющую картинку, дешифровку и метод замены только для прошивок на базе WM6 ATOM и ATOM EXEC (смотрел штуки четыре, везде именно так). Менять можно либо в разобранной coredll.dll в S000 в XIP, либо напрямую в diskimage_Ver.nb0.

1. Кодирование версии ОС (5.2.1948):
MOVL R3, 0x79С ; 79 3E A0 E3 0C 30 83 E3

MOV R1, #5 ; 05 10 A0 E3
MOV LR, #2 ; 02 E0 A0 E3

2. Метод замены (см. иллюстрацию)
Ищем в diskimage_Ver.nb0 или S000 coredll.dll последовательность: 05 10 A0 E3 02 E0 A0 E3
Меняем по соответствующим смещениям билд.

Вроде все. Да, для других осей поисковая цепочка может быть иной, нужно смотреть реализацию функции в coredll.dll. Например, для WM5 на RW6815 (6828) цепочка поиска 05 20 A0 E3 01 10 A0 E3.

Основной источник: Обсуждение на xda-developers

P.S. Теоретически, таких последовательностей вроде должно быть две, т.к. функций вроде бы две GetVersionEx и GetVersionExW. Но я не дизассемблировал полностью coredll.dll, нашел только одну. Может там просто ссылки на одну и туже функцию...
Прикрепленные файлы
Прикрепленный файл  how_to_change_OS_version.png ( 7.51 килобайт ) Кол-во скачиваний: 49
 
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
AGC
сообщение 30.12.2007, 21:28
Сообщение #25


PDA2U.RU Team
****

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

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


В общем, с портированием WM6 на аппаратное ядро RW6815 как то пока не очень получается. Вроде бы все верно, но WM6 с новым ядром не запускается. Почему верно - вставил собранный новый XIP с ядром ОС WM6 и аппаратным ядром от RW6815 в родную WM5 и она загрузилась! При этом в About показывает все верно - 5.2.1948, т.е. на чем и собирал. В чем загвоздка, непонятно... Публикую использовавшуюся технологию и результирующий собранный XIP, может у кого возникнут светлые мысли, в чем я неправ? (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif)

Экспериментов было много, поэтому описываю просто по последней сборке. Делал и иначе, результат не меняется...

1. Взяд WM5 HP RW6815 WWE и вытащил из нее XIP. Разобрал его.
2. Взял XIP от WM6 ATOM EXEC сборки оси 5.2.1948
3. Из Modules XIP WM5 удалил отладочные hd.dll и osaxst0.dll (и без них все отлично работает (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif) )
4. Из XIP WM6 из Files и Modules перенес с заменой все файлы ОС WM6 из MSXIPKernel и MSXIPKernelLTK.
5. Взял из XIP WM5 библиотеки аппаратного ядра ceddk.dll, cecompr.dll, stratad_intel_l.dll и trueffs.dll и переместил их по vbase и realaddress XIP WM6 с помощью M'Reloc_nk. Они конфликтуют с pm.dll и regenum.dll от XIP WM6 (можно двигать и эти, но результат как то не меняется). Единственная хитрость, нужно добиться от M'Reloc_nk, чтобы после DoIT realaddress был правильный, для этого из нужного адреса вычитаем длину блока.
6. Заменил в XIP WM5 соответствующие библиотеки на исправленные.
7. Увеличил в ROMHDR.TXT physlast (на XIP WM6).
8. Запустил XIPPort и сделал Realoc_P, write_maps.
9. Заменил в S000 nk.exe адрес рома.
10. Собрал новый XIP.

Как результат - вставляю его в WM5 RW6815 WWE - грузится с новым ядром. Вставляю в WM6 - повисает на надписи сброса настроек (причем как бы правильно, т.е. секунд 7-8 горит яркая надпись, потом где-то на 18-20 она чуть притухает... дальше как бы должна грузиться ОС, а реально висим и надпись через какое-то время еще сильнее гаснет...).

Вот. Прикладываю собранный XIP, может кто посмотрит отладочные надписи на большом компьютере. Я себе, конечно, соберу кабель, но это долго (IMG:http://forum.pda2u.ru/style_emoticons/default/sad.gif) XIP для прошивки ОС 5.2.1948 ATOM EXEC... Могу выложить и целиком diskimage_Ver.nb0 для RW6815.
Прикрепленные файлы
Прикрепленный файл  xip_out.zip ( 1.02 мегабайт ) Кол-во скачиваний: 11
 
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
AGC
сообщение 1.1.2008, 16:24
Сообщение #26


PDA2U.RU Team
****

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

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


Всех с наступившим Новым Годом! Успехов и счастья в новом году! (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif)

По поводу XIP с WM6 и аппаратным ядром RW6815, думается, скоро все заработает (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif) Перерыл кучу форумов, такое ощущение, что в конечном портировании WM6 на устройства с WM5 всегда принимал участие cnomex. Что конкретно делал этот волшебник, пока не ясно. Основное - правильный релок ядра, в трудных случаях - редактирование nk.exe и аппаратных драйверов (но это, надеюсь, не наш случай (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif) ). В общем, скачал с его сайта монументальные труды по редактированию ромов и релоку. Сейчас изучаю. К сожалению, они относятся к более ранним платформам, но общие принципы сохранились. Часть про WM5/WM6 устройства он обещает дописать в скором времени...

С другой стороны, сейчас выкачал и разобрал WM5 для ATOM. Что самое интересное - ядро практически (на том, что успел посмотреть просто полностью) идентично WM5 на RW6815! Осталось сделать последний маленький шажок - разобраться, что именно было сделано на шаге перехода от WM5 к WM6 на ATOM и повторить для RW6815. Так что, наверное, это дело нескольких дней.

Ну а если не получится, придется, как и всем предшественникам, обращаться к cnomex за помощью (IMG:http://forum.pda2u.ru/style_emoticons/default/biggrin.gif)
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
AGC
сообщение 1.1.2008, 18:31
Сообщение #27


PDA2U.RU Team
****

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

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


Вот и все! (IMG:http://forum.pda2u.ru/style_emoticons/default/biggrin.gif) Я нашел самое ключевое изменение!!! Правим в S000 в nk.exe:

25160: 01 02

Грузимся!!! WM6 на родном аппаратном ядре 6815!

Там идет ключевой код, о котором я писал несколько сообщений назад по проверке версии:

CODE
...
STR R3, [R5,#4]
CMP R2, #5
BHI 0x54
BNE loc_28
LDRB R3, [R5,#3]
CMP R3, #1
BHI 0x54
...


Соответственно меняем гениальные CMP R3, #1 на CMP R3, #2, т.е. 5.1 на 5.2. И все.

Нужно, конечно, еще дальше покапать. Там много всего, но ГРУЗИМСЯ!!!

P.S. Для других коммуникаторов можно попробовать поискать: 05 00 52 E3 0E 00 00 8A
Далее по смещению +0x10 должно быть 01 00 53 E3
Там и правим 01 на 02...
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
AGC
сообщение 1.1.2008, 22:08
Сообщение #28


PDA2U.RU Team
****

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

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


Уу...у! (IMG:http://forum.pda2u.ru/style_emoticons/default/biggrin.gif) Ну ладно, раз никто не пишет, пойду тоже пить, все что горит (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif)

Я теперь тоже хочу высказать благодарности, как все мейкеры ядер... ArHon и alex_beda за то, что указали, что Светлый путь существует! И главное показали, куда идти! (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif) cnomex, bepe и mamaich за то, что этот путь нашли вообще! (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif)
В общем, еще раз хочу поздравить всех с Новым Годом и пожелать всего самого лучшего!
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
ArHon
сообщение 2.1.2008, 0:57
Сообщение #29


PDA2U.RU Team
****

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




AGC, молодец! Как просохнешь, собирай всю инфу в кучу - и в подробностях расписывай портирование ядра с wm5 на wm6! Поздравляю!!! (IMG:http://forum.pda2u.ru/style_emoticons/default/biggrin.gif) (IMG:http://forum.pda2u.ru/style_emoticons/default/biggrin.gif) (IMG:http://forum.pda2u.ru/style_emoticons/default/biggrin.gif)

P.S. Проверил - все прошивается, главное не забыть ручками править файлы imageinfo.txt после M'Reloc_nk, правда есть одно НО - не смог сделать ХР (может я уже туплю, но ведь на 6815 ХР делается - обе трубки + питание + ресет?) - не реагирует, как и на атомовское питание+ресет. Пока вот.

P.S.S. Так... у меня с этим ядром те же проблемы, что и с атомовским - не ставятся кабы, не производится синхронизация с ББ, давай подробную инструкцию - может чего не сделал
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
AGC
сообщение 2.1.2008, 7:17
Сообщение #30


PDA2U.RU Team
****

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

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


Цитата(ArHon @ 2.1.2008, 0:57) *
AGC, молодец! Как просохнешь, собирай всю инфу в кучу - и в подробностях расписывай портирование ядра с wm5 на wm6! Поздравляю!!!

P.S. Проверил - все прошивается, главное не забыть ручками править файлы imageinfo.txt после M'Reloc_nk, правда есть одно НО - не смог сделать ХР (может я уже туплю, но ведь на 6815 ХР делается - обе трубки + питание + ресет?) - не реагирует, как и на атомовское питание+ресет. Пока вот.

P.S.S. Так... у меня с этим ядром те же проблемы, что и с атомовским - не ставятся кабы, не производится синхронизация с ББ, давай подробную инструкцию - может чего не сделал

Спасибо!

А инструкция грядет (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif) Сегодня-завтра допишу полностью. Хотя я вроде все описал в предыдущих сообщениях, но опишу более подробно именно для портирования с ATOM и ATOM EXEC. Правда сейчас, вроде бы, я уже представляю себе, как принципиально портировать если не с любого устройства, то с более менее совместимого (по процессору, строению, ну и т.п. естественно (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif) ). Главное не забыть еще OEMDrivers самой ОС. А желательно и весь OEM... Ну и сертификаты, будь они не ладны (IMG:http://forum.pda2u.ru/style_emoticons/default/rolleyes.gif)

С ХР сейчас посмотрю, я и забыл, что ядро поменялось. В результате сейчас опять вогнал устройство в перепрошивку (IMG:http://forum.pda2u.ru/style_emoticons/default/biggrin.gif) Нажимая разные кнопочки...

По проблемам, честно говоря, этих не обнаружил. (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif) Кабы ставятся, как минимум ставил твой - эмуляции расширенного рома, еще ставил твой же каб камеры, т.к. забыл по первости ее вшить в прошивку. Все Ок. Синхронизация тоже проходит на ура, по крайней мере записную книжку тащит нормально. А что за ОС стоит на большом компьютере - случайно не Vista? (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif) В общем, на Windows XP SP2 + ActiveSync 4.5 все вроде работает...

P.S. Сейчас в нашей ветке выложу тестовую сборку. Попробуй на ней. Я просто, на самом деле, много чего менял, может что действительно забыл описать...

P.P.S. Прошу делать скидку на мою оговорку, что найдено именно "ключевое изменение" при переходе от ATOM WM5 к ATOM WM6 (IMG:http://forum.pda2u.ru/style_emoticons/default/biggrin.gif) Там побайтное сравнение nk.exe дает 3610Kb отличий. Ясно, что 99,9% этих отличий связаны с релоком пары частей nk.exe в памяти (опять же, пока не очень понял, зачем они это делали, может просто подгоняли под то устройство, с которого портировали ОС, а может были более практические причины)...

--- Дописано позднее ---
Разобрался с остальными 3610Кб изменений. Первые три байта - смещение рома, последний байт - описанное ключевое изменение. Остальное - "мусор". Там картинку в S000 поменяли, а я сразу и не сообразил (IMG:http://forum.pda2u.ru/style_emoticons/default/biggrin.gif)
Так что в S000 nk.exe действительно исправили лишь один байт в проверке версии...
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
ArHon
сообщение 2.1.2008, 20:41
Сообщение #31


PDA2U.RU Team
****

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




AGC, есть положительный результат! По твоей технологии все сделал, только вместо портирования ядра в родной хип, сделал наоборот - портировал устройство-зависимые файлы и модули в новый хип из родного. Т.е. те файлы, которые попадают в папку OEMXIPKERNEL после команды make pkgs в xipport3. Так что все ок, готовь полную инфу с учетом сказанного. И еще я сделал релок giisr.dll. Пока выложу новую сборку своей прошивки с ядром 1948. Если хочешь, могу сам инфу наклепать - а то роверовцы ждут, им тоже экран нормальный нужен. Правда вот с ХР надо будет еще ковыряться....
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
AGC
сообщение 3.1.2008, 2:07
Сообщение #32


PDA2U.RU Team
****

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

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


Цитата(ArHon @ 2.1.2008, 20:41) *
AGC, есть положительный результат! По твоей технологии все сделал, только вместо портирования ядра в родной хип, сделал наоборот - портировал устройство-зависимые файлы и модули в новый хип из родного. Т.е. те файлы, которые попадают в папку OEMXIPKERNEL после команды make pkgs в xipport3. Так что все ок, готовь полную инфу с учетом сказанного. И еще я сделал релок giisr.dll. Пока выложу новую сборку своей прошивки с ядром 1948. Если хочешь, могу сам инфу наклепать - а то роверовцы ждут, им тоже экран нормальный нужен. Правда вот с ХР надо будет еще ковыряться....

Молодец, здорово! Я же не зря писал, что сейчас начало появляться реальное понимание, как портировать WM6 на WM5-устройства практически с любого более-менее совместимого девайса. (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif) В плане осмысленности действий (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif) Во время экспериментов, я как только не извращался... Там даже не суть как важно, что и куда, главное "правильно" + ключевое изменение cnomex (IMG:http://forum.pda2u.ru/style_emoticons/default/biggrin.gif)

В общем, сейчас постараюсь следующим сообщением собрать воедино изложенные ранее обещанные принципы портирования, большая просьба, если что забуду, поправь. У меня уже взгляд замылился, часть вещей делается на автопилоте (ты, кстати, абсолютно верно уточнил выше, что нужно после M'Reloc_nk править ручками imageinfo.txt, просто уже забыл это написать). Да и взгляд уже разбегается на русские прошивки, родной HTC Touch + VoiceCommander русский от ETEN M700 (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif) Постараюсь подробно, а там уж как получится...

Да, по результатам сегодняшней апробации в нашей ветке выяснилось, что вставлять все родные драйвера, не самая лучшая идея. Я сейчас откатился на сборку с базовым набором (камера, экран, звук, клавиатура). Это еще нужно уточнять. Как минимум от WM6 нужно оставлять драйвера miniSDHC. Еще у меня были какие-то проблемы с синхронизацией под Vista до отката, но это могло быть вызвано и просто подвисанием ActiveSync на коммуникаторе (я его перетыкал с WinXP на Vista). В общем, с драйверами тоже нужно будет еще поэксперементировать.

По хард-ресету - угу, нужно копать nk.exe и другие библиотеки, там похоже идет конфликт горячих сочетаний клавиш. Мне казалось, что я где-то встречал комментарий по коду вызова хард-ресета, но сейчас не вспомню...

P.S. А проблема с синхронизацией то разрешилась? Если стоит Vista, то на 32-битной мне сегодня удалось его зацепить. Там MS буквально на днях выпустил какой-то патч к своему центру мобильных устройств, да и кто-то в форуме написал, что у него тоже получилось зацепить после обновления с MS. Так что все должно заработать после обновления...
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
AGC
сообщение 3.1.2008, 5:35
Сообщение #33


PDA2U.RU Team
****

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

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


Портирование ядра ОС из XIP WM6 ATOM/ATOM EXEC на аппаратное ядро из XIP WM5 RW6815 и других собратьев
По сути вся технология описана в предыдущих сообщениях, ниже просто постарался изложить как то более системно и детально конкретные действия, да добавил небольшие общие комментарии (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif)

1. Берем diskimage_Ver.nb0 от оригинальной WM5 WWE целевого устройства (если берется локализованная прошивка, то в дальнейшем нужно, видимо, будет править boot.rgu перед сборкой XIP на предмет замены локалей для русской 0419 на 0409, если донор WM6 WWE).

2. Вырезаем из нее XIP в виде блока 180000-53FFFF и сохраняем как xip.bin в папку для разборки.

3. Разбираем XIP с помощью XIPPort ("dump xip.bin" и затем "write maps").

4. Аналогичным образом берем diskimage_Ver.nb0 от прошивки-донора ОС WM6 ATOM/ATOM EXEC, вырезаем из нее XIP и разбираем в другую папку.

5. Из подпапки Out/Modules разобранного XIP WM5 сразу удаляем отладочные hd.dll и osaxst0.dll (удаляем папки и соответствующие текстовые файлы). Они не нужны.

6. В XIPPort WM6 генерируем пакеты ("make pkgs").

7. Из XIP WM6 из подпапок MSXIPKernel и MSXIPKernelLTK папки Out/Files переносим с заменой все файлы ОС WM6 в подпапку Out/Files WM5 (все файлы и папки).

8. Из XIP WM6 из подпапок MSXIPKernel и MSXIPKernelLTK папки Out/Modules переносим с заменой все файлы ОС WM6 в подпапку Out/Modules WM5 (все файлы и папки). Для RW6815 MSXIPKernelLTK была пустая.

9. Открываем сгенерированные ранее map.txt от WM5 и WM6. Смотрим секцию "Start: first DLL address - End: last DLL address" и следующую сразу за ней до "Start: start of RAM". Они должны быть просто полностью идентичны приведенным ниже.
CODE
RW6815 WM5 WWE
~~~~~~~~~~~~~~
00000000 - 01f901fd L01f901fd NUL

01f901fd - 01f901fd L00000000 Start: first DLL address
01f901fd - 01fd3000 L00042e03 NUL
01fd3000 - 01fd4000 L00001000 initialized data of region_1 ceddk.dll
01fd4000 - 01fe3000 L0000f000 initialized data of region_1 TrueFFS.dll
01fe3000 - 01fe4000 L00001000 initialized data of region_2 cecompr.dll
01fe4000 - 01ff1000 L0000d000 initialized data of region_1 stratad_intel_l.dll
01ff1000 - 01ff2000 L00001000 initialized data of region_1 devmgr.dll
01ff2000 - 01ff3000 L00001000 initialized data of region_1 busenum.dll
01ff3000 - 01ff4000 L00001000 initialized data of region_1 mspart.dll
01ff4000 - 01ff5000 L00001000 initialized data of region_1 regenum.dll
01ff5000 - 01ff6000 L00001000 initialized data of region_1 imgfs.dll
01ff6000 - 01ff7000 L00001000 initialized data of region_1 fatfsd.dll
01ff7000 - 01ff9000 L00002000 initialized data of region_1 crypt32.dll
01ff9000 - 01ffa000 L00001000 initialized data of region_1 pm.dll
01ffa000 - 01ffb000 L00001000 initialized data of region_1 fatutil.dll
01ffb000 - 01ffc000 L00001000 initialized data of region_1 fsreplxfilt.dll
01ffc000 - 01ffd000 L00001000 initialized data of region_1 diskcache.dll
01ffd000 - 01ffe000 L00001000 initialized data of region_1 fsdmgr.dll
01ffe000 - 01fff000 L00001000 initialized data of region_1 certmod.dll
01fff000 - 02000000 L00001000 initialized data of region_1 coredll.dll
02000000 - 02000000 L00000000 End: last DLL address

02000000 - 03d70000 L01d70000 NUL
03d70000 - 03d76000 L00006000 Virtual base address of ceddk.dll
03d76000 - 03d80000 L0000a000 NUL
03d80000 - 03dcc000 L0004c000 Virtual base address of TrueFFS.dll
03dcc000 - 03dd0000 L00004000 NUL
03dd0000 - 03dd7000 L00007000 Virtual base address of cecompr.dll
03dd7000 - 03de0000 L00009000 NUL
03de0000 - 03df6000 L00016000 Virtual base address of stratad_intel_l.dll
03df6000 - 03e00000 L0000a000 NUL
03e00000 - 03e0c000 L0000c000 Virtual base address of devmgr.dll
03e0c000 - 03e10000 L00004000 NUL
03e10000 - 03e16000 L00006000 Virtual base address of busenum.dll
03e16000 - 03e20000 L0000a000 NUL
03e20000 - 03e28000 L00008000 Virtual base address of mspart.dll
03e28000 - 03e30000 L00008000 NUL
03e30000 - 03e34000 L00004000 Virtual base address of regenum.dll
03e34000 - 03e40000 L0000c000 NUL
03e40000 - 03e4a000 L0000a000 Virtual base address of imgfs.dll
03e4a000 - 03e50000 L00006000 NUL
03e50000 - 03e63000 L00013000 Virtual base address of fatfsd.dll
03e63000 - 03e70000 L0000d000 NUL
03e70000 - 03ee2000 L00072000 Virtual base address of crypt32.dll
03ee2000 - 03ef0000 L0000e000 NUL
03ef0000 - 03efd000 L0000d000 Virtual base address of pm.dll
03efd000 - 03f00000 L00003000 NUL
03f00000 - 03f09000 L00009000 Virtual base address of fatutil.dll
03f09000 - 03f10000 L00007000 NUL
03f10000 - 03f19000 L00009000 Virtual base address of fsreplxfilt.dll
03f19000 - 03f20000 L00007000 NUL
03f20000 - 03f25000 L00005000 Virtual base address of diskcache.dll
03f25000 - 03f30000 L0000b000 NUL
03f30000 - 03f45000 L00015000 Virtual base address of fsdmgr.dll
03f45000 - 03f50000 L0000b000 NUL
03f50000 - 03f5b000 L0000b000 Virtual base address of certmod.dll
03f5b000 - 03f60000 L00005000 NUL
03f60000 - 03ff5000 L00095000 Virtual base address of coredll.dll
03ff5000 - 80580000 L7c58b000 NUL
...


CODE
ATOM EXEC TRED RC3
~~~~~~~~~~~~~~~~~~
00000000 - 01f901fd L01f901fd NUL

01f901fd - 01f901fd L00000000 Start: first DLL address
01f901fd - 01fd1000 L00040e03 NUL
01fd1000 - 01fd2000 L00001000 initialized data of region_1 ceddk.dll
01fd2000 - 01fe1000 L0000f000 initialized data of region_1 TrueFFS.dll
01fe1000 - 01fe2000 L00001000 initialized data of region_2 cecompr.dll
01fe2000 - 01fef000 L0000d000 initialized data of region_1 stratad_intel_l.dll
01fef000 - 01ff0000 L00001000 initialized data of region_1 regenum.dll
01ff0000 - 01ff1000 L00001000 initialized data of region_1 pm.dll
01ff1000 - 01ff2000 L00001000 initialized data of region_1 mspart.dll
01ff2000 - 01ff3000 L00001000 initialized data of region_1 imgfs.dll
01ff3000 - 01ff4000 L00001000 initialized data of region_1 fsreplxfilt.dll
01ff4000 - 01ff5000 L00001000 initialized data of region_1 fsdmgr.dll
01ff5000 - 01ff6000 L00001000 initialized data of region_1 fatutil.dll
01ff6000 - 01ff7000 L00001000 initialized data of region_1 fatfsd.dll
01ff7000 - 01ff8000 L00001000 initialized data of region_1 encfilt.dll
01ff8000 - 01ff9000 L00001000 initialized data of region_1 diskcache.dll
01ff9000 - 01ffa000 L00001000 initialized data of region_1 devmgr.dll
01ffa000 - 01ffc000 L00002000 initialized data of region_1 crypt32.dll
01ffc000 - 01ffd000 L00001000 initialized data of region_1 coredll.dll
01ffd000 - 01ffe000 L00001000 initialized data of region_1 certmod.dll
01ffe000 - 01fff000 L00001000 initialized data of region_1 cachefilt.dll
01fff000 - 02000000 L00001000 initialized data of region_1 busenum.dll
02000000 - 02000000 L00000000 End: last DLL address

02000000 - 03def000 L01def000 NUL
03def000 - 03df5000 L00006000 Virtual base address of ceddk.dll
03df5000 - 03e41000 L0004c000 Virtual base address of TrueFFS.dll
03e41000 - 03e48000 L00007000 Virtual base address of cecompr.dll
03e48000 - 03e5e000 L00016000 Virtual base address of stratad_intel_l.dll
03e5e000 - 03e62000 L00004000 Virtual base address of regenum.dll
03e62000 - 03e71000 L0000f000 Virtual base address of pm.dll
03e71000 - 03e79000 L00008000 Virtual base address of mspart.dll
03e79000 - 03e83000 L0000a000 Virtual base address of imgfs.dll
03e83000 - 03e8d000 L0000a000 Virtual base address of fsreplxfilt.dll
03e8d000 - 03ea2000 L00015000 Virtual base address of fsdmgr.dll
03ea2000 - 03eab000 L00009000 Virtual base address of fatutil.dll
03eab000 - 03ebe000 L00013000 Virtual base address of fatfsd.dll
03ebe000 - 03eca000 L0000c000 Virtual base address of encfilt.dll
03eca000 - 03ed0000 L00006000 Virtual base address of diskcache.dll
03ed0000 - 03edc000 L0000c000 Virtual base address of devmgr.dll
03edc000 - 03f4e000 L00072000 Virtual base address of crypt32.dll
03f4e000 - 03fe4000 L00096000 Virtual base address of coredll.dll
03fe4000 - 03ff0000 L0000c000 Virtual base address of certmod.dll
03ff0000 - 03ffa000 L0000a000 Virtual base address of cachefilt.dll
03ffa000 - 04000000 L00006000 Virtual base address of busenum.dll
04000000 - 80180000 L7c180000 NUL
...

10. Далее берем из XIP WM5 библиотеки аппаратного ядра ceddk.dll, cecompr.dll, stratad_intel_l.dll и trueffs.dll и перемещаем их по vbase и realaddress XIP WM6 с помощью M'Reloc_nk. Они конфликтуют с pm.dll и regenum.dll от XIP WM6. Для этого запускаем M'Reloc_nk и последовательно открываем в нем папки этих библиотек из XIP WM5.Единственная хитрость, нужно добиться от M'Reloc_nk, чтобы после DoIT realaddress был правильный, для этого из нужного адреса вычитаем длину блока. В общем, для указанных выше таблиц просто привожу значения для M'Reloc_nk:

ceddk.dll
e32_vbase: 03DEF000
e32_realaddr: 01FD0000 (после DoIT будет 01FD0000+1000=01FD1000)

trueffs.dll
e32_vbase: 03DF5000
e32_realaddr: 1FC3000 (после DoIT будет 1FC3000+F000=01FD2000)

cecompr.dll
e32_vbase: 03E41000
e32_realaddr: 01FE0000 (после DoIT будет 01FE0000+1000=01FE1000)

stratad_intel_l.dll
e32_vbase: 03E48000
e32_realaddr: 1FD5000 (после DoIT будет 1FD5000+D000=01FE2000)

11. У этих четырех библиотек редактируем imageinfo.txt, заменяя значения e32_vbase и o32[x].o32_realaddr на правильные (e32_vbase берем указанные выше для M'Reloc_nk, o32[x].o32_realaddr берем оттуда же, но скалькулированный в скобочках или их map.txt WM6, x- номер региона в map.txt [там не ошибиться, будут старые значения из map.txt WM5 типа D=01FE3000])

12. Увеличиваем в WM5 в ROMHDR.TXT physlast (ставим значение как в XIP WM6 = 9AFE2990). Впрочем, можно и точнее подогнать (я по аналогии с ATOM просто прибавил 100000...).

13. Ищем в map.txt WM5 строку старого смещения рома (можно по "rom_00")
CODE
9ad20b2c - 9ad20b80 L00000054 rom_00 header: dlls=01f901fd-02000000 phys=9ac00000-9aea931c, 24 modules, 7 files, 4 copyentries ext=9ac0278c ram=80580000-84000000 cputype=000001c2

Запоминаем из нее старый адрес смещения. Пример из указанной строки: 9ad20b2c (скорее всего, будет другой, берете свой)

14. Запускаем XIPPort WM5, делаем Realoc_P и write_maps.

15. Смотрим на всякий случай новый map.txt на предмет отсутствия восклицательных знаков (конфликты).

16. Ищем в новом map.txt строку (можно по rom_00)
CODE
9adb19d4 - 9adb1a28 L00000054 rom_00 header: dlls=01f901fd-02000000 phys=9ac00000-9afe2990, 24 modules, 8 files, 2 copyentries ext=9ac0271c ram=80180000-84000000 cputype=000001c2

Берем из нее новый адрес смещения. Пример из указанной строки: 9adb19d4 (скорее всего, будет другой, берете свой)

17. Ищем в S000 nk.exe старый адрес смещения рома (байты идут инвертно), меняем на новый.

18. Пробуем искать в S000 nk.exe: 05 00 52 E3 0E 00 00 8A
Если нашли, далее по смещению +0x10 должно быть: 01 00 53 E3
Там и правим 01 на 02...

Если не нашли, то плохо (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif) Будем думать...

19. Собираем новый XIP ("build xip_out.bin").

20. Закидываем в папку WM5 diskimage_Ver.nb0 от целевой WM6.

21. Шьем XIP назад (в полях вводим значения: 00180000 и diskimage_Ver.nb0, жмем "write xip_out.bin to")

Вроде ничего не забыл (IMG:http://forum.pda2u.ru/style_emoticons/default/biggrin.gif)

P.S. По boot.rgu. Если берется WM5 русская, я бы попробовал поменять 419 на 409. К сожалению, на этой фазе у меня еще прошивка не заводилась, когда я пытался портировать с русской WM5, поэтому сказать, что будет без замены не могу.

P.P.S. В WM5 RW6815 в Files был mxip_initdb.vol, причем относился как бы к OEM. В WM6 ATOM это же лежало в IMGFS. Я дополнительно менял этот файл в XIP с коррекцией размера в текстовом файле описания. Но реально пробовал, это не оказывает какого-то влияния (по крайней мере, не заметил).

P.P.P.S. Извиняюсь за столь подробное изложение, наверняка ряд вещей очевиден. Но со временем все забывается, чтобы самому потом мучительно не вспоминать. Да и писал сразу и для новичков с других устройств, чтобы не осталось неясностей и можно было при необходимости действовать по аналогии (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif) Потом, если будут силы, попробую дописать уточненную общую инструкцию, которая приведена соседней ветке форума на английском, т.к. вещи по релоку модулей и правке nk.exe при портировании с WM6 на WM5 там как то не затронуты (да и вообще в явном и собранном виде этого нигде не нашел).


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


Основатель 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
Сообщение #35


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...
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
AGC
сообщение 4.1.2008, 18:25
Сообщение #36


PDA2U.RU Team
****

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

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


Зашился с ядром Ровера на базе ОС 5.2.1948. Все Ок. Прикладываю свой вариант xip_out.bin. Он собран из ATOM EXEC TRED RC3 на базе 5.2.1948. Теоретически, его туда же и нужно закидывать, т.к. версия ОС (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif) Попробуй его...

Сейчас закину в сеть и всю прошивку целиком, после этого отредактирую сообщение.

--- Дописано позднее ---

Вся прошивка целиком для Ровер G5: RoverG5_NEWKERNEL_TRED_ATOM_EXEC_RC3_OS_5_2_1948.zip

P.S. Прошивку собирал на коленке за 10 минут, поэтому имеет смысл проверить. Я засунул ddi.dll, wavedev.dll и pxa...keyboard.dll от Ровера, но у меня роверовская прошивка как то криво разобралась. Нужно проверять на ровере.

P.P.S. А вообще прикольно. У меня на 6815 с этим ядром Ровера наконец-то нормально заработала родная камера ATOM (IMG:http://forum.pda2u.ru/style_emoticons/default/biggrin.gif) И экран был Ок, пока аккумулятор не передернул. А после передергивания экран ушел в аут, рябит. LCCR бы найти, где в ядре устанавливаются. Тогда можно было бы попробовать ручками отредактировать под 6815... Сейчас еще попробую на это ядро наложить аппаратные драйвера от 6815, будет тоже вариант.

P.P.P.S. Заоодно и проверил в boot.rgu MUI. В общем, это не важно, главное, что в оси установлено. Оставил 419 в boot-е.
Прикрепленные файлы
Прикрепленный файл  xip_out_RoverG5_OS_5_2_1948.zip ( 1.08 мегабайт ) Кол-во скачиваний: 18
 
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
ArHon
сообщение 4.1.2008, 18:39
Сообщение #37


PDA2U.RU Team
****

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




AGC, а хард ресет на роверовской прошивке попробовал?
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
AGC
сообщение 4.1.2008, 18:49
Сообщение #38


PDA2U.RU Team
****

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

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


Цитата(ArHon @ 4.1.2008, 18:39) *
AGC, а хард ресет на роверовской прошивке попробовал?

А как он там делается? Сейчас попробую...

--- Дописано ---
Да, работает... Все Ок.

P.S. Значит, похоже, нам нужно искать клавиатурный обработчик в файлах ОС ядра. Править там сочетание клавиш... Наверное...
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
AGC
сообщение 4.1.2008, 19:35
Сообщение #39


PDA2U.RU Team
****

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

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


2 Arhon: Кстати, с Роверовским ядром уже реально попробовать сравнить ядро 6815. По размеру они практически идентичны, ощущение, что вышли просто из одной лаборатории, в исходниках просто поменяли аппартную часть и картинки. Можно попробовать дизассемблировать и то и другое, а потом каким-нибудь WinMerge поискать критические изменения...
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
ArHon
сообщение 5.1.2008, 1:54
Сообщение #40


PDA2U.RU Team
****

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




AGC, я так подозреваю, что все дело в nk.exe, а вот тут-то разница 6815 и ровера значительна, у ровера к тому же есть дополнительная картинка с трубками. Я почти уверен, что при нажатии ресета, именно nk.exe обрабатывает нажатые клавиши и уже сам отправляет либо в хард ресет (той же функцией KernelIOControl, к примеру), или просто в ресет, или в бутлоадер, где уже производится проверка нажатия софт-клавиш (именно поэтому приходится долго их держать). А вот почему он на них не реагирует - загадка та еще (IMG:http://forum.pda2u.ru/style_emoticons/default/sad.gif) Кстати, ты на роверовской проше нажимал именно трубки для хард ресета? Т.е. клавиши в ядре нормально замапены? Не поменялись с софткеями?
Перейти в начало страницы
Вставить ник
+Цитировать сообщение

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

 



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