IPB

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

Форум перемещен на новый домен: forum.pda2u.ru - исправьте, пожалуйста, свои ссылки
3 страниц V   1 2 3 >  
 
Ответить в данную темуНачать новую тему
> Создание WM6 для RoverPC S5 (4МП)
ray
сообщение 20.3.2008, 14:47
Сообщение #1


Участник
**

Группа: Разработчики
Сообщений: 32
Регистрация: 20.3.2008
Пользователь №: 863
Спасибо сказали: 8 раз(а)

Девайс:RoverPC S5


Old Kind MadMike
Образ родной прошивки есть, желание _большое_, руки..руки вроде бы прямые (IMG:http://forum.pda2u.ru/style_emoticons/default/rolleyes.gif) ящик пива уже под столом дожидается своего часа (IMG:http://forum.pda2u.ru/style_emoticons/default/rolleyes.gif)
Прежде всего, с чего мне следует начать? ..в данный момент читаю FAQ по сборке прошивок к различным девайсам и запасаюсь хирургическими инструментами для препарирования прошивки..
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
Old Kind MadMike
сообщение 20.3.2008, 18:19
Сообщение #2


PDA2U.RU Team
****

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

Девайс:Samsung Galaxy Ace


ray,
Цитата
Прежде всего, с чего мне следует начать?

Прежде всего нужно взять образ оси - который *.nb0 и весом 30-60МБ. Называется скорее всего как-то типа Diskimage.nb0.
Разделить его на XIP и IMGFS. Для этого нужен WinHEX, XIPPort и кухня для редактирования прошивок.
Скачать кухню для редактирования прошивок можно, например, здесь. XIPPort качай здесь.
Чтобы выделить XIP нужно сделать следующее.
Ищешь в WinHEX hex-поиском байты FF FF FF FF F8 AC 2C 9D.
Байт F8 должен приходиться на круглый адрес - с него как раз начинается IMGFS секция.
Удаляешь все, начиная с этого адреса и до конца файла.
В оставшемся куске ищешь байты FE 03 00 EA
Скорее всего, они будут два раза. Каждый такой кусок - начало секции XIP. Секция может быть одна или две. Во втором случае - нам нужна последняя. Т.е. вырезаем кусок, начиная с FE 03 00 EA и до конца уже обрезанного файла и сохраняем его под именем xip.bin
Теперь идем сюда и учимся портировать ядро XIP.
Для начала сделай все это, потом продолжим.
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
ray
сообщение 21.3.2008, 11:44
Сообщение #3


Участник
**

Группа: Разработчики
Сообщений: 32
Регистрация: 20.3.2008
Пользователь №: 863
Спасибо сказали: 8 раз(а)

Девайс:RoverPC S5


Old Kind MadMike В общем, не стал ждать до завтра.. (IMG:http://forum.pda2u.ru/style_emoticons/default/rolleyes.gif) и выделил XIP из родной wm5 и из wm6 так как ты описал. Вроде все нормально. Читаю про портирование ядра XIP, половина текста не понятно, ну это ерунда, разберусь..
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
Old Kind MadMike
сообщение 21.3.2008, 12:25
Сообщение #4


PDA2U.RU Team
****

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

Девайс:Samsung Galaxy Ace


Цитата
половина текста не понятно, ну это ерунда, разберусь

Будут конкретные вопросы - задавай, не стесняйся (IMG:http://forum.pda2u.ru/style_emoticons/default/wink.gif)
Вообще там ничего сложного, и инструкция достаточно подробная.
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
ray
сообщение 21.3.2008, 17:21
Сообщение #5


Участник
**

Группа: Разработчики
Сообщений: 32
Регистрация: 20.3.2008
Пользователь №: 863
Спасибо сказали: 8 раз(а)

Девайс:RoverPC S5


Old Kind MadMike Пока завис на 6 пункте..
6.1.Натравил M'Reloc_nk на модуль XIP_NEW\Out\Modules\nk.exe

e32_vbase 80100000
e32_vsive 000A2000
o32_vsize 00051000
o32_realaddr 803A0000

6.2 Сравнил XIP_NEW\Out\Modules\nk.exe\imageinfo.txt и XIP_NEW_COPY\Out\Modules\OemXipKernel\nk.exe\imageinfo.txt

e32_vbase P+00000000 P+00000000
...
e32_vsize 000A2000 000A2000
...
o32[2].o32_vsize 00006000 00006000
...
o32[2].32_realaddr R=803A0000 R=803F0000
...
o32[3].o32_vsize 0004AD30 0004ADB0
...
o32[3].32_realaddr R=803A6000 R=803F6000

6.3P=80100000

6.4 e32_vbase для XIP_NEW_COPY 80100000 заносим его в M'Relock_nk
032_realaddr = 803F0000-00051000=8039F000 заносим в M'Relock_nk
Doit!

e32_vbase 80100000
e32_vsive 000A2000
o32_vsize 00051000
o32_realaddr 8039F000

Правим XIP_NEW\Out\Modules\nk.exe\imageinfo.txt

o32_realaddr R=8039F000

кажется, что что-то делаю неправильно, а вот что? А может и правильно (IMG:http://forum.pda2u.ru/style_emoticons/default/rolleyes.gif)
Вроде бы все правильно здесь делаю?
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
Old Kind MadMike
сообщение 21.3.2008, 17:48
Сообщение #6


PDA2U.RU Team
****

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

Девайс:Samsung Galaxy Ace


Если vsize у модуля не меняется по сравнению с прошивкой-донором, в которую он портируется - то адрес начала модуля я бы тоже не менял.
Лучше сделай 803A0000, потом построй карту. Если пересечений не будет - то оставь такой адрес.

PS прошивка-донор официальная или самодельная?
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
ray
сообщение 21.3.2008, 18:29
Сообщение #7


Участник
**

Группа: Разработчики
Сообщений: 32
Регистрация: 20.3.2008
Пользователь №: 863
Спасибо сказали: 8 раз(а)

Девайс:RoverPC S5


Цитата
потом построй карту. Если пересечений не будет - то оставь такой адрес.

Немного недогнал..Ставлю 803A0000, и продолжаю дальше по пунктам делать XIP? Или строю карту? А как/чем строить, и как проверить на пересечения?

Образ родной ОСи - самопальный дамп с Rover S5 4mp
Образ wm6 для Rover S5 2mp - вроде бы официальный.
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
Old Kind MadMike
сообщение 21.3.2008, 19:15
Сообщение #8


PDA2U.RU Team
****

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

Девайс:Samsung Galaxy Ace


Ставишь 803A0000, копируешь XIPPort.exe с dll-кой в папку XIP_NEW и запускаешь, нажимаешь кнопку build map.
Теперь в папке XIP_NEW/OUT есть два файла с описанием структуры памяти. Phisical map и еще один. Вот нам нужен как раз этот второй.
Находишь в нем тот модуль, который ты релочил и проверяешь, что он корректно стоит на том месте, которое ты указал, и ни с чем не пересекается.
Если не ошибаюсь, пересечения модулей XIPPort должен обозначать восклицательными знаками.

ЗЫ Чтобы построить карту памяти, XIP в этой папке не должен быть разобран на пакеты OEM/SYS.
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
ray
сообщение 21.3.2008, 20:04
Сообщение #9


Участник
**

Группа: Разработчики
Сообщений: 32
Регистрация: 20.3.2008
Пользователь №: 863
Спасибо сказали: 8 раз(а)

Девайс:RoverPC S5


Запустил XIPPort, кнопки build map там нет. Есть write maps и realloc P.
Пробовал нажимать realloc P затем write maps, пробовал просто нажимать write maps. Результат один: XIPPort выплевывает:
Код
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)...


Весь лог приведен еще Winterice'ом http://forum.pda2u.ru/forum/index.php?showto...dpost&p=249
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
ray
сообщение 22.3.2008, 4:25
Сообщение #10


Участник
**

Группа: Разработчики
Сообщений: 32
Регистрация: 20.3.2008
Пользователь №: 863
Спасибо сказали: 8 раз(а)

Девайс:RoverPC S5


В общем, поставил на ноут девственно чистую Windows Vista ..и XIPPort стал работать нормально (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif) Все проверил, пересечений нигде нет. На выходе получил xip_out, похудевший где-то килобайтов на 500 (в конце нового фала нет FF-ну это, как я понял, нормальное явление)
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
Old Kind MadMike
сообщение 22.3.2008, 10:13
Сообщение #11


PDA2U.RU Team
****

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

Девайс:Samsung Galaxy Ace


Цитата
Пробовал нажимать realloc P

А вот это ты делал очень зря.
Теперь сравни map нового XIP с оригинальным от WM6. Все модули, по идее, должны быть на тех же местах.
Цитата
XIPPort выплевывает:

Если не ошибаюсь, эта ошибка связана со старой версией .NET
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
Old Kind MadMike
сообщение 22.3.2008, 10:22
Сообщение #12


PDA2U.RU Team
****

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

Девайс:Samsung Galaxy Ace


И еще один важный момент
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
ray
сообщение 22.3.2008, 13:31
Сообщение #13


Участник
**

Группа: Разработчики
Сообщений: 32
Регистрация: 20.3.2008
Пользователь №: 863
Спасибо сказали: 8 раз(а)

Девайс:RoverPC S5


Цитата
Теперь сравни map нового XIP с оригинальным от WM6.

Вроде бы все там нормально...

Для верности решил повторить все заново (портирование ядра) и уже на пунктике
Цитата
7.2 Теперь запускаем Xipport и делаем для XIP_NEW Realoc P, Write maps.

xipport опять выпал с той же самой ошибкой (IMG:http://forum.pda2u.ru/style_emoticons/default/sad.gif) значит установка чистой винды на ПК не помогла
Странно конечно, карты XIP'a из родной прошивки и карты XIP'a из wm6 нормально строятся хм,буду думать..

ЗЫ была установлена последняя версия dotNet.
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
ray
сообщение 23.3.2008, 7:20
Сообщение #14


Участник
**

Группа: Разработчики
Сообщений: 32
Регистрация: 20.3.2008
Пользователь №: 863
Спасибо сказали: 8 раз(а)

Девайс:RoverPC S5


Вроде бы нашел из-за чего возникает ошибка,но вот как ее устранить - не знаю. Если при портировании XIP вообще не трогать модуль TrueFFS.dll, то все нормально работает: XIPPort строит карту, делает Realloc P. Как только я из папки XIP_OLD\OUT\MODULES копирую с заменой trueffs.dll\ и trueffs.dll.txt в XIP_NEW\OUT\MODULES, XIPPort на Write maps матерится: "An entry with the same key already exists", а на Realloc P: "Not enough space"
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
ArHon
сообщение 23.3.2008, 9:09
Сообщение #15


PDA2U.RU Team
****

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

Девайс:HP iPAQ rw6815


а ты его с помощью M'Relock_nk отрелочил?
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
ray
сообщение 23.3.2008, 9:55
Сообщение #16


Участник
**

Группа: Разработчики
Сообщений: 32
Регистрация: 20.3.2008
Пользователь №: 863
Спасибо сказали: 8 раз(а)

Девайс:RoverPC S5


ArHon Да, отрелочил его M'Relock_nk'ом.
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
Old Kind MadMike
сообщение 23.3.2008, 11:27
Сообщение #17


PDA2U.RU Team
****

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

Девайс:Samsung Galaxy Ace


Цитата
Если при портировании XIP вообще не трогать модуль TrueFFS.dll, то все нормально работает

Давай сделаем ход конем...
Пройдись по OEM части XIPа исходной прошивки и прошивки донора.
В тотал командере есть функция сравнения по содержимому. Открываешь папку TrueFFS.dll в обоих XIP и сравниваешь между собой по содержимому (функцией ТС) файлы S00* Если отличий нет - то папку можно оставить.
На всякий случай пройдись по всем ОЕМ модулям - не исключаю, что они все (разве что кроме nk.exe) идентичны.
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
ray
сообщение 23.3.2008, 12:01
Сообщение #18


Участник
**

Группа: Разработчики
Сообщений: 32
Регистрация: 20.3.2008
Пользователь №: 863
Спасибо сказали: 8 раз(а)

Девайс:RoverPC S5


Все OEM модули различны, я тоже до этого додумался (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif) и проверил. В общем буду думать как этот модуль туда прикрутить..
А если я все-таки поставлю модуль и соберу нормально XIP, что дальше? Вставлять его в wm6 прошивку? А потом что делать?
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
Old Kind MadMike
сообщение 23.3.2008, 12:32
Сообщение #19


PDA2U.RU Team
****

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

Девайс:Samsung Galaxy Ace


Цитата
Все OEM модули различны, я тоже до этого додумался и проверил.

Хреново... значит действительно отличия систем серьезные, как я и предполагал (IMG:http://forum.pda2u.ru/style_emoticons/default/sad.gif)
XIPPort вылетает до или после M'Reloc? Похоже, какая-то проблема в imageinfo.txt этого модуля. Попробуй сравни по содержимому эти файлы - где отличия?
Вот эта строчка (данные из XIP Orsio n725 - просто для примера):
Код
  Module name: TrueFFS.dll
   e32_objcnt:            00000005
   e32_imageflags:        0000212E
   e32_entryrva:          00038D9C
   [b]e32_vbase:           V=03D80000[/b]

совпадает после M'Reloc?
Можно, конечно, попробовать использовать XIP от 2МП, но фигзнает, чем это закончится...
Цитата
А если я все-таки поставлю модуль и соберу нормально XIP, что дальше? Вставлять его в wm6 прошивку? А потом что делать?

Что значит "если"? Куда ты денешься с подводной лодки? (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif) По-любому соберем рано или поздно.
Дальше тебе нужно будет разобрать IMGFS обоих прошивок, разложить на пакеты OEM/SYS, после чего заменить пакет OEM прошивки-донора на аналогичный от оригинальной WM5, проверить адресацию и собрать все в готовый образ.
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
ray
сообщение 23.3.2008, 15:36
Сообщение #20


Участник
**

Группа: Разработчики
Сообщений: 32
Регистрация: 20.3.2008
Пользователь №: 863
Спасибо сказали: 8 раз(а)

Девайс:RoverPC S5


XIPPort вылетает и до и после M'Reloc_nk, разницы нет.
Цитата
Все проверил, пересечений нигде нет. На выходе получил xip_out

В тот раз все прошло нормально и XIP собрал потому что оставил без изменений папку TrueFFS.dll(вообще не копировал эту папку из XIP_OLD\.. в XIP_NEW\.. и не релочил этот модуль), а не из-за установки чистой Vista'ы.
Строка e32_vbase в XIP_NEW..\FrueFFS.dll\imageinfo.txt совпадает после M'Reloc, но ее же надо изменить, как и строку o32[1].o32_realaddr
Цитата
5.7. Теперь в самом файле XIP_NEW\Out\Modules\FrueFFS.dll\imageinfo.txt исправляем эти значения на значения из XIP_NEW_COPY\Out\Modules\OemXipKernel\FrueFFS.dll\imageinfo.txt (рис.5,6)

Что я и делаю.

Слева релоченный imageinfo.txt из XIP_NEW\..\trueffs.dll справа XIP_NEW_COPY\..\trueffs.dll (только строчки с различиями):
Код
e32_entryrva:  00038E34 00039268
e32_subsysminor: 00000001 00000002
e32_unit[0].rva: 00039A10 00039E50
e32_unit[1].rva: 00039924 00039D5C
o32[0].o32_vsize: 00038B13 00038F53
o32[0].o32_psize: 00038B14 00038F54
o32[0].o32_dataptr: P+0020E000 P+00229000
o32[1].o32_dataptr: P+00124300 P+0017C1B0
o32[2].o32_dataptr: P+00247000 P+00262000
o32[3].o32_dataptr: P+0011CB5C P+00176A9C

Из этих же 2х файлов:
e32_vsize:  0004B000
e32_vbase:  V=03E09000
o32[1].o32_vsize: 0000E5B4
o32[1].o32_realaddr: D=01FDE000

ЗЫ Извиняюсь за орфографию и оформление, пишу с коммуникатора.
Перейти в начало страницы
Вставить ник
+Цитировать сообщение

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

 



RSS Текстовая версия Сейчас: 29.3.2020, 18:22

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