PDA-версия форума ASUSMobile.RU

Поиск - Профиль - Войти и проверить личные сообщения - Вход - Регистрация
Форум Asus Mobile Club Russia > Полезное > Раздел Разработчика и Программиста > Что содержится в .VM и .ROM или как изменить границы слотов

На страницу 1, 2, 3  След.
[Ответить на тему]

Yad [22.07.09, 14:45] Что содержится в .VM и .ROM или как изменить границы слотов:
Уважаемые, Гуру, просветите, плиз, по данному вопросу:
По папкам .VM и .ROM? Я так понял, что в .VM хранятся адреса начала свободных областей в слотах 0,1(для 6.5 еще двух слотов), так же размер RAM, которые должны соответствовать этим же адресам в карте XIP. И на их основе Greloc или WMreloc размещает модули из IMGFS в свободном пространстве слотов, я правильно понимаю? А вот насчет .ROM, для чего она, что за адреса содержит и как ее править, учитывая, што XIP портируется вручную, или ее правит Greloc? Кто-нить может расписать ее структуру в хексе, на примере, и соответствие или относительность с .VM? Понятно, што можно взять из родной прошивки, но бездумно - неинтересно, да и хотелось бы по возможности оптимизировать распределение памяти, границы начала пустот в слотах там перенести и т.п.

Выделил в отдельную тему \\Barin

[Ответить на тему]   Ответить с цитатой   
Barin [22.07.09, 15:33] :
Yad
.ROM правится WMReloc'ом или GReloc'ом. Там содержатся границы слотов не только для XIP'а но и для IMGFS. Кроме того там ещё содержится адрес верхней границы для тех модулей, которые должны располагать и код и данные только в слоте 0

[Ответить на тему]   Ответить с цитатой   
Yad [22.07.09, 16:20] :
Barin писал(а):
Yad
.ROM правится WMReloc'ом или GReloc'ом. Там содержатся границы слотов не только для XIP'а но и для IMGFS. Кроме того там ещё содержится адрес верхней границы для тех модулей, которые должны располагать и код и данные только в слоте 0

Если я, например, хексом поправлю границы слотов в .VM, после того как выкину лишние модули из XIP, нужно ли будет эти границы править в .ROM, или Greloc их сам поправит? Уважаемый, Barin, если Вам не сложно, может быть Вы приведете скриншоты .VM, .ROM и кусками map.txt из XIP с конкретными адресами и пояснениями к ним для вашего девайса, очень хотелось бы разобраться не поверхностно...

[Ответить на тему]   Ответить с цитатой   
Barin [22.07.09, 17:13] :
Yad писал(а):
...может быть Вы приведете скриншоты .VM, .ROM и кусками map.txt из XIP с конкретными адресами и пояснениями к ним для вашего девайса

Давайте попробуем... Для начала карты, .VM и .ROM из официальной прошивки

.VM:
По адресам 0x0 и 0x4 указаны верхние границы слотов 0 и 1, начиная с которых могут располагаться код и данные модулей IMGFS
(от старших адресов к младшим) , а по адресу 0x8 - конец RAM
В моем случае это - слот 0: 01F90000, слот 1: 03DA0000, ulRAMEnd: 8С000000


.ROM:
По адресам 0x0 и 0x4 указаны границы свободных областей для слота 0: 014F0000, и 1: 02160000.
В 0xC находится адрес, начиная с которого будут располагаться
(от старших адресов к младшим) модули, код и данные которых должны располагаться только в слоте 0. В моём случае это 01DF0000
В 0x10 также указана граница слота 0: 01F90000 (как в .VM)
А вот в 0x14 указана ещё одна граница: 01FD0000. В точном её назначения я не совсем уверен. Скорее всего она указывает, что с этого адреса должны располагаться инициализированные данные модулей XIP'а, код и данные которых должны располагаться только в слоте 0. Если кто-то точно знает её назначение, поделитесь! Согласно картам между 01F90000 и 01FD0000 - пустое пространство.


Все значения из .ROM и .VM, которые я привёл можно легко проследить по картам.

[spoiler:6fa2a2beda=Куски общей карты]
Код:
Слот 0 IMGFS:
014f0000 - 01500000 L00010000 OEM: VTDialerParser.dll
01500000 - 01580000 L00080000 OEM: VT_CE.dll
01580000 - 01590000 L00010000 OEM: SFDrv.dll
01590000 - 016f0000 L00160000 OEM: MMS.dll
016f0000 - 01700000 L00010000 OEM: LsOmaCore.dll
01700000 - 01710000 L00010000 OEM: LSFILTER.dll
01710000 - 01720000 L00010000 OEM: hs_aec.dll
01720000 - 01750000 L00030000 OEM: eT9Sip.dll
01750000 - 01760000 L00010000 OEM: eT9RegInput.dll
01760000 - 017d0000 L00070000 OEM: eT9Ime.dll
017d0000 - 017e0000 L00010000 OEM: eT9DisInput.dll
017e0000 - 01800000 L00020000 OEM: eT9Dictionary.dll
01800000 - 01830000 L00030000 OEM: CF8385PN.dll
01830000 - 01860000 L00030000 OEM: btp_ui_ext.dll
01860000 - 018a0000 L00040000 OEM: btp_bchs.dll
018a0000 - 018b0000 L00010000 OEM: asyncmac.dll
018b0000 - 018c0000 L00010000 SYS: l2tp.dll
018c0000 - 01990000 L000d0000 SYS: mscoree2_0.dll
01990000 - 019a0000 L00010000 SYS: bthlink.dll
..............................................
01d70000 - 01d80000 L00010000 OEM: btp_res419.dll
01d80000 - 01da0000 L00020000 OEM: btp_modules.dll
01da0000 - 01db0000 L00010000 OEM: btp_inquiry.dll
01db0000 - 01dc0000 L00010000 OEM: btp_image_beam.dll
01dc0000 - 01dd0000 L00010000 OEM: btp_driver.dll
01dd0000 - 01de0000 L00010000 OEM: btp_btfsd.dll
01de0000 - 01df0000 L00010000 OEM: btp_avdrv.dll
01df0000 - 01df3000 L00003000
01df3000 - 01df4000 L00001000 OEM: shellcelog.dll (RAM)
01df4000 - 01df5000 L00001000 OEM: wendyser.dll (RAM)
01df5000 - 01df6000 L00001000 OEM: wcestreambt.dll (RAM)
01df6000 - 01e19000 L00023000 OEM: VCOM.dll (RAM)
01e19000 - 01e1a000 L00001000 OEM: usbmsfn.dll (RAM)
01e1a000 - 01e1b000 L00001000 OEM: usbd.dll (RAM)
01e1b000 - 01e1c000 L00001000 OEM: usbd.dll (RAM)
01e1c000 - 01e1d000 L00001000 OEM: touch.dll (RAM)
01e1d000 - 01e1f000 L00002000 OEM: touch.dll (RAM)
..............................................
01f8c000 - 01f8d000 L00001000 OEM: ms2_usbfn.dll (RAM)
01f8d000 - 01f8e000 L00001000 OEM: battdrvr.dll (RAM)
01f8e000 - 01f8f000 L00001000 OEM: ASUSDaemon.dll (RAM)
01f8f000 - 01f90000 L00001000 OEM: ASUS_SMS_Providers.dll (RAM)

01f90000 - 01fd3000 L00043000

Слот 0 XIP:
01fd3000 - 01fea000 L00017000 ROM: TrueFFS.dll (RAM)
01fea000 - 01feb000 L00001000 ROM: fatutilmdoc.dll (RAM)
01feb000 - 01fec000 L00001000 ROM: drvlib.dll (RAM)
01fec000 - 01fed000 L00001000 ROM: ceddk.dll (RAM)
..............................................
01ffc000 - 01ffd000 L00001000 ROM: coredll.dll (RAM)
01ffd000 - 01ffe000 L00001000 ROM: certmod.dll (RAM)
01ffe000 - 01fff000 L00001000 ROM: cachefilt.dll (RAM)
01fff000 - 02000000 L00001000 ROM: busenum.dll (RAM)

02000000 - 02164000 L00164000

Слот 1 IMGFS:
02164000 - 02169000 L00005000 OEM: shellcelog.dll
02169000 - 02171000 L00008000 OEM: wendyser.dll
02171000 - 02177000 L00006000 OEM: wcestreambt.dll
02177000 - 021ad000 L00036000 OEM: VCOM.dll
021ad000 - 021b3000 L00006000 OEM: usbmsfn.dll
..............................................
03d7b000 - 03d8c000 L00011000 OEM: ms2_usbfn.dll
03d8c000 - 03d95000 L00009000 OEM: battdrvr.dll
03d95000 - 03d99000 L00004000 OEM: ASUSDaemon.dll
03d99000 - 03da0000 L00007000 OEM: ASUS_SMS_Providers.dll

03da0000 - 03de6000 L00046000

Слот 1 XIP:
03de6000 - 03e32000 L0004c000 ROM: TrueFFS.dll
03e32000 - 03e36000 L00004000 ROM: fatutilmdoc.dll
03e36000 - 03e40000 L0000a000 ROM: drvlib.dll
03e40000 - 03e46000 L00006000 ROM: ceddk.dll
..............................................
03f4c000 - 03fe2000 L00096000 ROM: coredll.dll
03fe2000 - 03ff0000 L0000e000 ROM: certmod.dll
03ff0000 - 03ffa000 L0000a000 ROM: cachefilt.dll
03ffa000 - 04000000 L00006000 ROM: busenum.dll
[/spoiler:6fa2a2beda]
[spoiler:6fa2a2beda=Rom Header]
Код:
   dllfirst:            D=01F901FD
   dlllast:               02000000
   physfirst:           P=88727000
   physlast:              88A36590
   nummods:              (0000001C)
   ulRAMStart:          R=88A37000
   ulRAMFree:             88A95000
   ulRAMEnd:              8C000000
   ulCopyEntries:        (00000003)
   ulCopyOffset:        P+00180FC4
   ulProfileLen:          00000000
   ulProfileOffset:       00000000
   numfiles:             (00000009)
   ulKernelFlags:         00000000
   ulFSRamPercent:        00000004
   ulDrivglobStart:       00000000
   ulDrivglobLen:         00000000
   usCPUType:             000001C2
   usMiscFlags:           00000002
   pExtensions:         P+00002984
   ulTrackingStart:       00000000
   ulTrackingLen:         00000000
[/spoiler:6fa2a2beda]
Теперь можно попытаться поджать вверх границы слотов.
По карте видно, что хотя граница для слота 1 и указана как 03DA3000, реально у последнего модуля XIP'а (TrueFFS.dll) адрес Vbase = 03DE6000. Эту величину можно использовать как границу слота 1.

Чтобы поджать границу слота 0, можно убрать дыру между 01F90000 и 01FD0000. Для этого придётся поправить RomHeader. В файле ROMHDR.txt XIP'а в dllfirst вместо D=01F901FD указываем величину D=01FD01FD.
На самом деле это не один адрес, а 2, и между этими адресами и находится наша дыра. Просто каждый из этих адресов записан не как DWORD, а как WORD (используются по 2 старших байта реальных адресов) Установив нижний адрес равный вехнему - 01FD мы избавились от пустого места . Соответственно границу слота 0 определяем как 01FD0000. Собираем XIP и вносим изменения в .VM и в .ROM

В .VM границу слота 0 устанавливаем = 01FD0000, а границу слота 1 = 03DE6000


В .ROM по адресу 0x10 записываем 01FD0000
(На скриншоте .ROM уже после работы GReloc. Все остальные данные в .ROM изменены GReloc'ом)

Далее - релок и смотрим карты.

[spoiler:6fa2a2beda=Куски общей карты]
Код:
Слот 0 IMGFS:
01730000 - 01740000 L00010000 OEM: VTDialerParser.dll
01740000 - 017c0000 L00080000 OEM: VT_CE.dll
017c0000 - 017d0000 L00010000 OEM: SFDrv.dll
017d0000 - 01930000 L00160000 OEM: MMS.dll
01930000 - 01940000 L00010000 OEM: LsOmaCore.dll
01940000 - 01950000 L00010000 OEM: LSFILTER.dll
01950000 - 01960000 L00010000 OEM: hs_aec.dll
01960000 - 01990000 L00030000 OEM: eT9Sip.dll
01990000 - 019a0000 L00010000 OEM: eT9RegInput.dll
019a0000 - 01a10000 L00070000 OEM: eT9Ime.dll
.............................................
01da0000 - 01dc0000 L00020000 SYS: ppp.dll
01dc0000 - 01dd0000 L00010000 SYS: netbios.dll
01dd0000 - 01de0000 L00010000 SYS: ndisuio.dll
01de0000 - 01e10000 L00030000 SYS: ndis.dll
01e10000 - 01e1a000 L0000a000
01e1a000 - 01e1c000 L00002000 SYS: ipv6hlp.dll (RAM)
01e1c000 - 01e1d000 L00001000 SYS: ethman.dll (RAM)
01e1d000 - 01e1e000 L00001000 SYS: eapol.dll (RAM)
01e1e000 - 01e1f000 L00001000 SYS: dhcpv6l.dll (RAM)
01e1f000 - 01e20000 L00001000 SYS: dhcp.dll (RAM)
01e20000 - 01e21000 L00001000 SYS: afd.dll (RAM)
..............................................
01fcb000 - 01fcc000 L00001000 OEM: nleddrvr.dll (RAM)
01fcc000 - 01fcd000 L00001000 OEM: ms2_usbfn.dll (RAM)
01fcd000 - 01fce000 L00001000 OEM: battdrvr.dll (RAM)
01fce000 - 01fcf000 L00001000 OEM: ASUSDaemon.dll (RAM)
01fcf000 - 01fd0000 L00001000 OEM: ASUS_SMS_Providers.dll (RAM)

01fd0000 - 01fd3000 L00003000

Слот 0 XIP:
01fd3000 - 01fea000 L00017000 ROM: TrueFFS.dll (RAM)
01fea000 - 01feb000 L00001000 ROM: fatutilmdoc.dll (RAM)
01feb000 - 01fec000 L00001000 ROM: drvlib.dll (RAM)
..............................................
01ffc000 - 01ffd000 L00001000 ROM: coredll.dll (RAM)
01ffd000 - 01ffe000 L00001000 ROM: certmod.dll (RAM)
01ffe000 - 01fff000 L00001000 ROM: cachefilt.dll (RAM)
01fff000 - 02000000 L00001000 ROM: busenum.dll (RAM)

02000000 - 02023000 L00023000

Слот 1 IMGFS:
02023000 - 0202e000 L0000b000 SYS: ipv6hlp.dll
0202e000 - 02033000 L00005000 SYS: ethman.dll
02033000 - 0203d000 L0000a000 SYS: eapol.dll
0203d000 - 02049000 L0000c000 SYS: dhcpv6l.dll
02049000 - 02053000 L0000a000 SYS: dhcp.dll
02053000 - 02073000 L00020000 SYS: afd.dll
02073000 - 02081000 L0000e000 SYS: unimodem.dll
02081000 - 020a4000 L00023000 SYS: redir.dll
020a4000 - 020c8000 L00024000 SYS: ipnat.dll
..............................................
03da7000 - 03dae000 L00007000 OEM: pxa27x_dma.dll
03dae000 - 03db4000 L00006000 OEM: PwrButton.Dll
03db4000 - 03dbd000 L00009000 OEM: pcc_wlan.dll
03dbd000 - 03dc1000 L00004000 OEM: nleddrvr.dll
03dc1000 - 03dd2000 L00011000 OEM: ms2_usbfn.dll
03dd2000 - 03ddb000 L00009000 OEM: battdrvr.dll
03ddb000 - 03ddf000 L00004000 OEM: ASUSDaemon.dll
03ddf000 - 03de6000 L00007000 OEM: ASUS_SMS_Providers.dll

Слот 1 XIP:
03de6000 - 03e32000 L0004c000 ROM: TrueFFS.dll
03e32000 - 03e36000 L00004000 ROM: fatutilmdoc.dll
03e36000 - 03e40000 L0000a000 ROM: drvlib.dll
03e40000 - 03e46000 L00006000 ROM: ceddk.dll
..............................................
03ec8000 - 03ece000 L00006000 ROM: diskcache.dll
03ece000 - 03eda000 L0000c000 ROM: devmgr.dll
03eda000 - 03f4c000 L00072000 ROM: crypt32.dll
03f4c000 - 03fe2000 L00096000 ROM: coredll.dll
03fe2000 - 03ff0000 L0000e000 ROM: certmod.dll
03ff0000 - 03ffa000 L0000a000 ROM: cachefilt.dll
03ffa000 - 04000000 L00006000 ROM: busenum.dll
[/spoiler:6fa2a2beda]
[spoiler:6fa2a2beda=Rom Header]
Код:
   dllfirst:            D=01FD01FD
   dlllast:               02000000
   physfirst:           P=88727000
   physlast:              88A36590
   nummods:              (0000001C)
   ulRAMStart:          R=88A37000
   ulRAMFree:             88A95000
   ulRAMEnd:              8C000000
   ulCopyEntries:        (00000003)
   ulCopyOffset:        P+00180FC4
   ulProfileLen:          00000000
   ulProfileOffset:       00000000
   numfiles:             (00000009)
   ulKernelFlags:         00000000
   ulFSRamPercent:        00000004
   ulDrivglobStart:       00000000
   ulDrivglobLen:         00000000
   usCPUType:             000001C2
   usMiscFlags:           00000002
   pExtensions:         P+00002984
   ulTrackingStart:       00000000
   ulTrackingLen:         00000000
[/spoiler:6fa2a2beda]
Удачи!

[Ответить на тему]   Ответить с цитатой   
Yad [23.07.09, 09:35] :
Barin писал(а):
[spoiler:db4edeb406].ROM:
По адресам 0x0 и 0x4 указаны границы свободных областей для слота 0: 014F0000, и 1: 02160000.
В 0xC находится адрес, начиная с которого будут располагаться (от старших адресов к младшим) модули, код и данные которых должны располагаться только в слоте 0. В моём случае это 01DF0000
В 0x10 также указана граница слота 0: 01F90000 (как в .VM)
А вот в 0x14 указана ещё одна граница: 01FD0000. В точном её назначения я не совсем уверен. Скорее всего она указывает, что с этого адреса должны располагаться инициализированные данные модулей XIP'а, код и данные которых должны располагаться только в слоте 0. Если кто-то точно знает её назначение, поделитесь! Согласно картам между 01F90000 и 01FD0000 - пустое пространство.


Все значения из .ROM и .VM, которые я привёл можно легко проследить по картам.

Код:
   dllfirst:            D=01FD01FD
   dlllast:               02000000
   physfirst:           P=88727000
   physlast:              88A36590
   nummods:              (0000001C)
   ulRAMStart:          R=88A37000
   ulRAMFree:             88A95000
   ulRAMEnd:              8C000000
   ulCopyEntries:        (00000003)
   ulCopyOffset:        P+00180FC4
   ulProfileLen:          00000000
   ulProfileOffset:       00000000
   numfiles:             (00000009)
   ulKernelFlags:         00000000
   ulFSRamPercent:        00000004
   ulDrivglobStart:       00000000
   ulDrivglobLen:         00000000
   usCPUType:             000001C2
   usMiscFlags:           00000002
   pExtensions:         P+00002984
   ulTrackingStart:       00000000
   ulTrackingLen:         00000000

Удачи![/spoiler:db4edeb406]

Спасибо Большое!!! Очень познавательно!

А известно, что за адреса в .ROM по смещениям 0х8 и 0х16?

И еще пару вопросов:
1. Я так понимаю что 0х80000000 - это начало RAM, а 0х8С000000 - конец? т.е. получается 192 мега, каким образом это соотносится с физической RAM? Например на моем девайсе конец - 0х87CFE000, т.е. приблизительно 125 метров, при этом физической RAM вроде как 128 метров... Это все как-то соотносится, или совсем из разных областей? Что будет, если я вместо 0х87CFE000 пропишу 0х88000000(128)?
2. Что есть ulFSRamPercent: 00000004? Судя по http://msdn.microsoft.com/en-us/library/ms924546.aspx это сколько процентов FS будет отжирать у RAM, на моем девайсе это вообще ulFSRamPercent: 0A0A0A0A...
3. И совсем не понятен ulCopyOffset: P+00180FC4 ? Ну это уже так для общего образования...
Спасибо!
 i  Barin:
Спрятал цитату в спойлер


[Ответить на тему]   Ответить с цитатой   
Barin [23.07.09, 15:02] :
Yad писал(а):
А известно, что за адреса в .ROM по смещениям 0х8 и 0х16?

Может вы имели в виду 0x8 и 0x18?
Про 0x8 ничего сказать не могу. 0x18 - это по всей вероятности dlllast.

Yad писал(а):
Я так понимаю что 0х80000000 - это начало RAM, а 0х8С000000 - конец?

Ну у Вас не знаю, в моих картах начало RAM ulRAMStart: R=88A37000 - это уж как производитель распишет. Можно конечно поэстетствовать и релокнуть nk.exe, чтобы его области в RAM прижать к ulRAMStart, и потом прижать ulRAMFree к областям nk в RAM. Тем самым можно высвободить небольшой кусочек оперативки, но это уж как повезёт icon_smile
Yad писал(а):
Что будет, если я вместо 0х87CFE000 пропишу 0х88000000(128)?

Ну скорее всего либо просто ничего, либо ничего хорошего. Это величина, заданная производителем, поэтому она может ещё храниться где-то в nk и nk может никак не отреагировать на изменение ulRAMEnd. Худшая ситуация будет, если nk всё-таки посчитает, что он увидел больше оперативки и попытается обратиться к несуществующей памяти - скорее всего будет аппаратный сбой.
Yad писал(а):
Что есть ulFSRamPercent

Ответ как раз в ссылке, которую Вы привели
Yad писал(а):
И совсем не понятен ulCopyOffset

Это адрес, который указывает, где находится таблица CopyEntry.
Код:
888a7fc4 - 888a7fd4 L00000010 copyent 887fe970 L00000600 -> 88a37000 L00000954
888a7fd4 - 888a7fe4 L00000010 copyent 887ff208 L00000a00 -> 88a46000 L0004ed88
888a7fe4 - 888a7ff4 L00000010 copyent 888933e0 L00000a00 -> 88a38000 L00003378

Каждый элемент CopyEntry - это директива скопировать что-то в RAM. Например первый элемент - это директива скопировать 0x600 байт начиная с адреса 887fe970 в RAM по адресу 88a37000 в область длиной 0x954 байта. Если данные, которые должны быть скопированы, имеют меньшую длину, чем область, куда должно вестись копирование, то оставшиеся байты этой области будут перезаписаны нулями.

[Ответить на тему]   Ответить с цитатой   
Yad [23.07.09, 16:41] :
Barin писал(а):

Yad писал(а):
Что будет, если я вместо 0х87CFE000 пропишу 0х88000000(128)?

Ну скорее всего либо просто ничего, либо ничего хорошего. Это величина, заданная производителем, поэтому она может ещё храниться где-то в nk и nk может никак не отреагировать на изменение ulRAMEnd. Худшая ситуация будет, если nk всё-таки посчитает, что он увидел больше оперативки и попытается обратиться к несуществующей памяти - скорее всего будет аппаратный сбой.

Девайс просто зависнет или есть вероятность кирпича?

Barin писал(а):

Yad писал(а):
Что есть ulFSRamPercent

Ответ как раз в ссылке, которую Вы привели

Я просто не понимаю назначение этого, зачем отделять оперативку для FS, причем на многих девайсах это очень маленькое значение, а на моем больше половины, на што это влияет, или может это еще с wm2003 осталось? А здесь этот параметр вообще не используется?

Barin писал(а):

Yad писал(а):
И совсем не понятен ulCopyOffset

Это адрес, который указывает, где находится таблица CopyEntry.
Код:
888a7fc4 - 888a7fd4 L00000010 copyent 887fe970 L00000600 -> 88a37000 L00000954
888a7fd4 - 888a7fe4 L00000010 copyent 887ff208 L00000a00 -> 88a46000 L0004ed88
888a7fe4 - 888a7ff4 L00000010 copyent 888933e0 L00000a00 -> 88a38000 L00003378

Каждый элемент CopyEntry - это директива скопировать что-то в RAM. Например первый элемент - это директива скопировать 0x600 байт начиная с адреса 887fe970 в RAM по адресу 88a37000 в область длиной 0x954 байта. Если данные, которые должны быть скопированы, имеют меньшую длину, чем область, куда должно вестись копирование, то оставшиеся байты этой области будут перезаписаны нулями.

Спасибо за разъяснение... ulCopyOffset нужно брать от родного девайса, или все равно, на што повлияет?

Добавлено спустя 26 минут 47 секунд:

Barin, подскажите еще, пожалуйста:
Вот .VM из кухни 6.5 TouchPro, что Da_G выкладывает:

Код:
0000000000: 00 00 F8 01 00 00 D6 03  00 00 00 7A 00 00 00 7C
0000000010: 00 00 40 83 00 00 00 00

Я правильно понимаю, что 0х7A000000 и 0x7C000000 - это адреса еще двух слотов для WM6.5, но вроде как это должны быть слоты 60 и 61, а здесь получается 61 и 62...

[Ответить на тему]   Ответить с цитатой   
Barin [23.07.09, 21:12] :
Yad писал(а):
Девайс просто зависнет или есть вероятность кирпича?

Он просто не загрузится, нужно будет перепрошивать
Yad писал(а):
на многих девайсах это очень маленькое значение, а на моем больше половины

Предлагаю оставить это на совести производителя icon_smile
Yad писал(а):
ulCopyOffset нужно брать от родного девайса, или все равно, на што повлияет?

От родного девайса ОБЯЗАТЕЛЬНО нужно брать все пакеты, кроме MSXIPKernel и MSXIPKernelLTK. И конечно же от родного девайса нужно брать и RomHeader.
ulCopyOffset и саму таблицу CopyEntries не трогайте вообще, оставьте все как есть,
если конечно Вы не собираетесь вносить изменения в код ядра .

[Ответить на тему]   Ответить с цитатой   
Yad [24.07.09, 11:24] :
Походу с адресами слотов 60 и 61 все правильно, просто указываются нижние границы(или верхние, если от старших адресов к младшим)

Вот еще пару ссылок по этому вопросу, может кому пригодится:
http://hi.baidu.com/donghaozheng/blog/item/1a0f37db4798196ed1164e56.html
http://forum.ppcgeeks.com/showpost.php?p=1004436&postcount=5543

[Ответить на тему]   Ответить с цитатой   
ZowecS96 [27.07.09, 02:09] :
Хочу спросить, надо ли при портировании нового xip обязательно менять содержимое папки MSXIPKernelLTK ?

[Ответить на тему]   Ответить с цитатой   
Barin [27.07.09, 09:34] :
ZowecS96
Как показывает практика - необязательно. Можно просто для косметики и этетического удовольствия.
В MSXIPKernelLTK\d92a4f0a-378a-4482-8fd3-bd127a05e4de.dsm содержится несколько зависимостей с номерами версий - просто чтобы версии выглядели соответствующе icon_smile
Я стараюсь всегда заменять оба пакета - и MSXIPKernel, и MSXIPKernelLTK.

[Ответить на тему]   Ответить с цитатой   
Sajmon [02.08.09, 11:51] Как получить .vm .rom:
Хочу портировать эту прошивку на asus p535. В прикреплённых к теме файлах 23016 SYS/XIP for porting отсутствуют папки .VM и .ROM как их создать? Прошу прощения, если что не так, но я всего лишь обычный пользователь.

[Ответить на тему]   Ответить с цитатой   
Alex[DFR] [02.08.09, 12:41] :
Возьми от родного асусовского рома (можешь сдампить с девайса pdocread -t - узнать размер; pdocread 0x0 0xразмер ROMGalaxy.nb0, потом разбери его как обычно) или из другой кухни

[Ответить на тему]   Ответить с цитатой   
Dynamite [06.08.09, 13:17] :
Как правильно сместить вверх границу first physical address, если правильно понял нужно также релокнуть .VM? Будут ли какие последствия при этом?
У меня из-за проклятого giisr.dll в RAM вниз расширяться нет возможности....

[Ответить на тему]   Ответить с цитатой   
Barin [06.08.09, 13:33] :
Dynamite
Поправьте ROMHDR в XIP'е, В VM и ROM укажите границы слотов (в том числе исправьте в ROM значение в 0х10), остальное сделает релок.

[Ответить на тему]   Ответить с цитатой   
Dynamite [06.08.09, 16:09] :
Barin,
nk.exe при этом релочить нужно?

[Ответить на тему]   Ответить с цитатой   
Barin [06.08.09, 16:18] :
Dynamite
А зачем? Только если у вас большая дырка остаётся между ulRamStart и областями nk, да и то Вы высвободите копейки Ram. Не стОит. Попробуйте конечно, если хотите, но тут уж как повезёт

[Ответить на тему]   Ответить с цитатой   
Dynamite [06.08.09, 17:10] :
Barin писал(а):
Dynamite
А зачем? Только если у вас большая дырка остаётся между ulRamStart и областями nk, да и то Вы высвободите копейки Ram. Не стОит. Попробуйте конечно, если хотите, но тут уж как повезёт

У него же значение vbaze равно адресу верхней границы слота с физическими данными... вот поэтому и хотел узнать, нужен релок nk или нет....

[Ответить на тему]   Ответить с цитатой   
Barin [06.08.09, 17:24] :
Dynamite
Подождите - подождите, Вы какой утилитой смотрите? MReloc_NK? У nk Vbase равен адресу начала физических адресов (у меня P = 88727000)
Код:
e32_vbase:           P+00000000

и адреса областей в RAM:
Код:
88a27000 - 88a27000 L00000000 Start: start of RAM
88a27000 - 88a30000 L00009000 NUL
88a30000 - 88a36000 L00006000 uninitialized data of region_2 nk.exe
88a36000 - 88a85000 L0004f000 initialized data of region_3 nk.exe
88a85000 - 88a85000 L00000000 ------ start of RAM free space
88a85000 - 8c000000 L0357b000 NUL
8c000000 - 8c000000 L00000000 End: end of RAM


[Ответить на тему]   Ответить с цитатой   
Dynamite [06.08.09, 18:26] :
Barin писал(а):
Dynamite
Подождите - подождите, Вы какой утилитой смотрите? MReloc_NK?

да
Barin писал(а):
У него Vbase равен адресу начала физических адресов

У меня first physical address равен 8c200000, мне и хотелось бы сдвинуть наверх по карте, увеличив его таким образом...

[Ответить на тему]   Ответить с цитатой   

[Ответить на тему]

На страницу 1, 2, 3  След.
Форум Asus Mobile Club Russia > Полезное > Раздел Разработчика и Программиста > Что содержится в .VM и .ROM или как изменить границы слотов