IPB

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

Форум перемещен на новый домен: forum.pda2u.ru - исправьте, пожалуйста, свои ссылки
Yad
сообщение 22.9.2009, 13:35
Сообщение #1


Участник
**

Группа: Members
Сообщений: 40
Регистрация: 28.5.2009
Пользователь №: 20964
Спасибо сказали: 13 раз(а)

Девайс:RoverPC G7 Pro


Добрый день, уважаемые!

Выношу на ваш суд новый релок (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif)

Релиз!

здесь
Батник для автопортирования XIP от Alex~

Код
###################################################################
#                                                                                                                                  #
# "EXTReloc" предназначен для последовательного размещения модулей в памяти WM6.1/6.5.  #
#                                                                                                                                  #
###################################################################
1.Основные особенности и отличия от других программ:

1.1 G'Reloc, не работает с нативным ядром 6.5, также некорректно обрабатывает flag "L"
   модуля. Такой модуль должен полностью находиться в слоте 0, без выделения RW-секций
   (я не могу это утверждать с абсолютной уверенностью, но на моей прошивке так было...)
1.2 WMreloc2 работает несколько некорректно с переходами  между слотами,
    особенно между 60м и 61м. Так же не работает с флагом "L".  
1.3 Пересоздаются также файлы imageinfo.txt(удобно смотреть)
1.4 Встроенный "Маппер" - можно смотреть карту любой прошивки
1.5 Наглядно показывается и редактируется содержимое папок .VM и .ROM
    (различные границы)
1.6 Работа с XIP

****************************** ВАЖНО!!! **********************************************

    Для работы утилиты ОБЯЗАТЕЛЬНО нужны файлы *.dsm. Я не проверял как она будет
    работать с одним *.dsm. Потому в кухне вставляйте EXTReloc либо до сборки всех *.dsm
    в один(предпочтительный вариант), либо вообще до BuildOS(но тогда пакеты удаляйте
    сами, не используя "options.xml")

********************************************************************************
******

2.Основные возможности данной программы:

2.1 EXTReloc позволяет релочить кроме IMGFS-модулей, модули XIP.
    Причем есть возможность релока NK.EXE,GIISR.DLL и подобных модулей, которые
    находятся в RAM. Работа с XIP  может скрываться - потянуть белый разделитель влево,
    тогда откроется работа с IMGFS. Чтобы вернуть обратно - щелкните по разделителю...
2.2 Модули IMGFS релочаться в той последовательности, которая есть в packages.cif
    (проверял на своей офф. прошивке, там все модули располагаются в последовательности
     указанной в  packages.cif),  но опция отключаемая(см. "Options")
2.3 Флаг "L" содержится в *.dsm и указывает, что модуль должен находиться полностью
    в слоте 0,  без выделения RW-секций. Но опция так же отключаемая...
    Существует проверка:
     Если в *.dsm модуля есть флаг "L", но его e32_Vbase находится не в 0м слоте,
     то программа выдаст запрос - что делать с таким(такими) модулями -
     переносить их в 0й слот или нет. Если же и флаг "L" и Vbase в 0м слоте, то
      такой модуль однозначно попадет полностью в 0й слот !!!
     (если стоит галка в настройках - "Use flag "L" for IMGFS")
    Данный запрос можно отключить в опциях, включив "Disable dialog for "L" in IMGFS".
2.4 Править можно и нужно(для оптимального распределения) синие ячейки, зеленые ячейки
    править можно, но они все равно перерасчитываются :) Серые ячейки править нельзя.
2.5 Программа использует относительные пути в настройках (удобно в составе кухни)
2.6 Можно  работать, как с плоским дампом IMGFS(папка "dump" после работы BuildOS...),
    так и с разбитым на пакеты(папка c OEM,SYS,ROM). Указывается в настройке в поле
    "IMGFS Path". Если пишете сами путь, то будьте внимательны - первый и последний слеш
    обязателены!

****** Рекомендации:  *****************************************************************

    При работе с XIP рекомендуется указывать здесь путь к IMGFS разбитой
    на пакеты (папки OEM,ROM,SYS), т.к. программа поправит .VM и .ROM, дальше при
    работе BuildOS папки VM и ROM перенесуться в плоский дамп, и уже при сборке прошивки
    утилите нужно будет в командной строке указать путь к плоскому дампу. Выполнив эти
    рекомендации не нужно будет постоянно менять пути в настройках!!!

********************************************************************************
*******

    В поле "XIP Path" выбирается папка, которая должна содержать XIPPort.exe и
    папку OUT. Если пишете сами путь, то будьте внимательны - первый и последний слеш
    обязателены!

    Поле "LOGS Path" может быть любым, туда сохраняются MAP.txt и логи с закладки "Debug"
2.7 Настройки сохраняются в "EXTReloc.ini"
2.8 В настройках можно указать границы для каждого слота, выше которых модули релочиться
    не будут и перейдут в след. слот. Либо, если это уже слот 0, выводится сообщение, о
    нехватке места - передвиньте границу, либо переведите часть модулей в файлы.
    Последовательность заполнения слотов для нативного 6.5: 1-61-60-0, для 6.1: 1-0
2.9 Есть отключаемая вкладка "Debug", в нее выводится информация. В верхний список
    попадают обычные модули, в средний - модули с флагом "L", а так же nk.exe и модули,
    исполняемые  по месту в RAM(флаг "K"). В нижнем окне ведется Log. Лог и списки можно
    сохранить в  текстовые файлы.  Для этого - двойной клик на списке...
    "Set active page "Debug" during reloc" - во время релока переходить на вкладку
    "Debug"...
2.10 Встроенный маппер может показывать так же модули XIP (нужен ROMHDR.txt,удобно
     смотреть полное распределение памяти). Данная опция также отключаемая.
     "Create MAP.txt" в настройках - создавать MAP.txt при релоке.     
     Если поставить галочку в настройках на "View MAP.txt after reloc",  то карта будет
     показываться сразу после релока. "Create MAP.bak" - переименовывать предыдущий
     MAP.txt в MAP.bak.
     "Build MAP.txt" - можно посмотреть карту любой прошивки(есть запрос путей).

########################  Теперь немного о работе с XIP'ом.    #########################


1. Запускаем XIPPort("Import XIPPort")
2. Дампим XIP'ы(родной и донора)
3. Меняем папки OEMXIPKERNEL,переписываем ROMHDR.txt родной. Также родные .VM и .ROM,
   должны быть в папке с IMGFS.
4. Кнопки открытия и сохранения .VM и .ROM не обязательны, если просто хотите открыть -
   посмотреть(отредактировать) границы.
5. Когда собрали все папки и удалили ненужные модули, жмем "Realloc V(DLL)" -
   отрелочатся модули в слоте 1 и их RW-секции в 0м слоте.
   Здесь же происходит релок модулей в области physfirst-phislast.
   При этом адрес physlast увеличится на 0х100000. Это сделано для того, чтобы XIPPort
   сумел разместить новые модули в адресном пространстве physfirst-physlast родного
   ROMHDR. XIPPort не умеет сам отодвигать в большую сторону эту границу, поэтому если
   пространства не  хватает, то он об этом явно скажет - "Not enough space".
   Если не указана опция  "Move dllfirst (Lo)", то между XIP модулями и IMGFS будет
   пустое пространство размером 256 Кб (по умолчанию в оригиналных прошивках)
6. Жмем в XIPPort "Realloc P". XIPPort поправит dataptr модулей и заполнит
   physfirst-physlast. Если напишет "Unknown o32 region flags: d0000040", то здесь
   ничего страшного, просто XIPPort "не понимает" секцию с флагом IMAGE_SCN_MEM_SHARED,
   и ругается, но никаких проблем не возникает - релок проходит нормально.

************* ВАЖНО - операции обязательны!!! **************************************

7. Теперь нам нужно поджать границу physlast. !!!Обязательно!!! -  Жмем "Write map.txt"
   в XIPPort.

********************************************************************************
****

8. Теперь релочим NK.EXE и т.п  - кнопка "Realloc NK.EXE..."
   Сначала утилита вытащит  последний реальный адрес в пространсве physfirst-physlast
   из MAP.txt и подставит  в ячейку  "physlast", потом запустится релок
9. Последний раз жмем  "Realloc P".
10. Смотрим карту  "Write map.txt" - "View MAP.txt", если пересечений нет, границы все
    на месте, то жмем  "Build xip_out.bin".

   Все XIP готов.



#####################   Работа с параметрами для XIP ##################################

1. Если программа запускается с параметрами, то автоматически запустится процесс
   релока и произойдет переход на вкладку "Debug"!
  

2. Программа поддерживает следующие параметры командной строки:

   -WM65 - работа с нативным ядром 6.5, если параметр не указан то - WM6.1

   -dX[XIP Path] -  ОТНОСИТЕЛЬНЫЙ путь к XIP, параметр обязательный!
                    Если сам путь не указан, а только "-dX", будет использован
                    текущий каталог. Путь указывается  без пробелов, первый и
                    последний слеш не обязательны.


   -d[IMGFS Path] - ОТНОСИТЕЛЬНЫЙ путь к OS, параметр обязательный(,VM и .ROM)!
                    Если сам путь не указан, а только "-d", будет использован
                    текущий каталог. Путь указывается  без пробелов, первый и
                    последний слеш не обязательны.

   -l[LOGS Path] - ОТНОСИТЕЛЬНЫЙ путь к EXTReloc.log (кроме информации о релоке здесь
                   также указываются ОШИБКИ !!!). Если сам путь не указан, а только "-l",
                   будет использован текущий каталог. Если данный параметр не указан
                   вообще, то EXTReloc.log создан не будет! Путь указывается  без
                   пробелов, первый и последний слеш не обязательны. Перед формированием
           лога старый лог, если он существует, удаляется.

   -lbak[LOGS Path] - ОТНОСИТЕЛЬНЫЙ путь к EXTReloc.log (кроме информации о релоке здесь
                   также указываются ОШИБКИ !!!). Если сам путь не указан, а только "-lbak",
                   будет использован текущий каталог. Если данный параметр не указан
                   вообще, то EXTReloc.log создан не будет! Путь указывается  без
                   пробелов, первый и последний слеш не обязательны. Перед формированием
           лога старый лог, если он существует, переименовывается в EXTReloc.bak

*********** Примечание ****************************************************************

Параметры "-l" и "-lbak" взаимоисключающие, указывается только один из них!!!

********************************************************************************
*******

   -relDLL - релок виртуальных адресов XIP(кнопка "Realloc V(DLL)")

   -relNK - релок модулей в RAM(кнопка "Realloc NK.EXE,GIISR.DLL,etc")

   -DllLo - поджимать границу "dllfirst (Lo)"

   -noClose - если указать данный параметр, то программа останется открытой после
          релока.


###########################    Работа с IMGFS    #####################################


1. Открывается, если потянуть разделитель(белая полоса) влево.
2. Кнопки открытия и сохранения .VM и .ROM не обязательны, если просто хотите открыть -
   посмотреть(отредактировать) границы.
3. Основная кнопка - "Realloc IMGFS..."

***   Рекомендации:  *******************************************************************
  
   Заполнение слота 0 под завязку скорее всего  происходит потому что:

3.1 EXTReloc задает вопрос, если есть несовпадение: например адрес e32_Vbase находится в
    слоте 0, а флаг "L" у модуля отсутствует или наоборот флаг "L" есть, а адрес
    e32_Vbase находится в слотах 1,(61,60).
3.2 Если ответить ей "Yes(to ALL)", то она перенесет в 0 слот все эти несоответствия
    плюс те модули, где соответствие ЕСТЬ!!! Потому скорее всего слот 0 забит!
3.3 Выход из этой ситуации может быть такой (IMHO самый оптимальный) - релок в
    два прохода:

"1й-Проход" - отвечаем "Yes(to ALL)", при этом самое ГЛАВНОЕ - флагу "L" станет
   соответствовать  e32_Vbase.
"2й-Проход" - отвечаем "No(to ALL)", тогда все модули которые не имели флага "L"
   перенесутся по слотам 1(60,61) и в слоте 0 останутся только модули с флагом "L",
   что нам и нужно!!!

Почему сразу я не переношу в 0й слот модули только с флагом "L" ?
Потому что, можно это делать не для всех модулей, а на выбор для каждого :)))
И во вторых - может быть Вы знаете, что модуль должен быть в слоте 0, а по какой-то
причине флаг "L" в *.dsm отсутствует, например "DSM_Editor by Ervius", если нажать
"Update dsm in a package", вообще сбрасывает все флаги - остаются только "S" и "H".

3.4 Если поставить опцию "Disable dialog for "L" in IMGFS", то данный запрос будет
    отключен!!! И программа просто перенесет в слот 0 только модули с флагом "L" в
    *.dsm. Данную поцию можно использовать, если Вы точно уверены в том, что все *.dsm
    файлы корректны!!! (заменяет 2 прохода, описанные выше)

********************************************************************************
********


########################### Работа с IMGFS в составе кухни. ###########################

1. Если программа запускается с параметрами, то автоматически запустится процесс
   релока и произойдет переход на вкладку "Debug"!
  


2. Программа поддерживает следующие параметры командной строки:

   -WM65 - работа с нативным ядром 6.5, если параметр не указан то - WM6.1

   -d[IMGFS Path] - ОТНОСИТЕЛЬНЫЙ путь к OS, параметр обязательный! Если сам путь
                    не указан, а только "-d", будет использован текущий каталог.
                    Путь указывается  без пробелов, первый и последний слеш не
                    обязательны.

   -m[LOGS Path] - ОТНОСИТЕЛЬНЫЙ путь к MAP.txt. Если сам путь не указан, а  только
                   "-m", будет использован текущий каталог. Если данный параметр не
                   указан вообще, то MAP.txt создан НЕ БУДЕТ! Путь указывается  без
                   пробелов, первый и последний слеш не обязательны. Перед
                   формированием карты старый MAP.txt, если он существует, удаляется.

   -mbak[LOGS Path] - ОТНОСИТЕЛЬНЫЙ путь к MAP.txt. Если сам путь не указан, а  только
                   "-mbak", будет использован текущий каталог. Если данный параметр не
                   указан вообще, то MAP.txt создан НЕ БУДЕТ! Путь указывается  без
                   пробелов, первый и последний слеш не обязательны. Перед
                   формированием карты старый MAP.txt, если он существует,
                   будет переименован в MAP.bak

*********** Примечание ****************************************************************

Параметры "-m" и "-mbak" взаимоисключающие, указывается только один из них!!!

********************************************************************************
*******


   -l[LOGS Path] - ОТНОСИТЕЛЬНЫЙ путь к EXTReloc.log (кроме информации о релоке здесь
                   также указываются ОШИБКИ !!!). Если сам путь не указан, а только "-l",
                   будет использован текущий каталог. Если данный параметр не указан
                   вообще, то EXTReloc.log создан не будет! Путь указывается  без
                   пробелов, первый и последний слеш не обязательны. Перед формированием
           лога старый лог, если он существует, удаляется.

   -lbak[LOGS Path] - ОТНОСИТЕЛЬНЫЙ путь к EXTReloc.log (кроме информации о релоке здесь
                   также указываются ОШИБКИ !!!). Если сам путь не указан, а только "-lbak",
                   будет использован текущий каталог. Если данный параметр не указан
                   вообще, то EXTReloc.log создан не будет! Путь указывается  без
                   пробелов, первый и последний слеш не обязательны. Перед формированием
           лога старый лог, если он существует, переименовывается в EXTReloc.bak

*********** Примечание ****************************************************************

Параметры "-l" и "-lbak" взаимоисключающие, указывается только один из них!!!

********************************************************************************
*******


***** Общее замечание *****************************************************************

1. Если в параметре "-m"("-mbak") уже указан путь, то в параметре "-l"("-lbak") его
указывать не обязательно и наоборот! Если путь указан в обоих параметрах, то будет
браться первый встретившийся!
2. Если указанный путь для логов не существует, он будет создан!!!

********************************************************************************
*******

   -noImL - отключает флаг "L" для IMGFS. Если параметр не указан, флаг "L", будет
        использован!
  
   -noDlgL - отключает запрос программы по переносу модулей в слот 0. Переносятся
         только модули  с флагом "L" в *.dsm!!! (Заменяет релок в 2 прохода)

   -DelImTXT - удалять imageinfo.txt при релоке(только для IMGFS).

   -noClose - если указать данный параметр, то программа останется открытой после
          релока.


**** Рекомендации:   ************************************************************

- Флаг "L" для IMGFS - есть пережиток прошлого, поэтому для WM6.5(native NK.EXE)
   его лучше снять!
   Если прошивка при этом заработает  без глюков, то в слоте 0 у Вас будет больше
   пространства для текущих процессов! Для WM6.1 этот флаг лучше оставить, т.к.
   слотов мало, а модулей много - и пусть лучше модули с флагом "L" будут в 0м
   слоте, чем другие!
- Для XIP флаг "L"  снимать скорее всего нельзя! :))

Как бы нам не хотелось, но собрать прошивку без глюков возможно только при корректных
*.dsm файлах, поэтому если Вы их правите - правьте аккуратно, следите за флагами!

********************************************************************************
**

################################################################################
########

   Удачи Вам !;)

  Отдельная благодарность: Barin(asusmobile.ru) и
                           Mamaich(исполюзуются части кода RecMod)

                                                                       Yad


Спасибо сказали:
Перейти в начало страницы
Вставить ник
+Цитировать сообщение

Сообщений в этой теме
- Yad   Новый релок 6.1/6.5   22.9.2009, 13:35
- - AGC   Yad, спасибо! Очень интересно, надо будет опро...   23.9.2009, 8:46
- - Amir   портировал xip wm 6.5 23017 standart с помощью это...   23.9.2009, 9:29
|- - Yad   Цитата(Amir @ 23.9.2009, 10:29) портирова...   23.9.2009, 14:13
- - GUG   у меня пишет что .VM и .ROM не соответствует 6.1 и...   23.9.2009, 10:44
- - GUG   VM и ROM из оф помогли, ещё одно не находит или не...   23.9.2009, 15:19
|- - Yad   Цитата(GUG @ 23.9.2009, 16:19) VM и ROM и...   23.9.2009, 15:31
- - GUG   где он должен быть там он и лежит, правда в плоско...   23.9.2009, 15:43
|- - Yad   Цитата(GUG @ 23.9.2009, 16:43) где он дол...   23.9.2009, 15:51
- - GUG   да поменял я ему атрибуты, на плоском дампе всё но...   23.9.2009, 16:03
- - Yad   обновил утилиту...   23.9.2009, 17:01
- - Yad   Кто-нибудь пробовал отрелочить хотя бы IMGFS и соб...   24.9.2009, 7:29
- - Amir   Цитата6. Жмем "Write map.txt" в XIPPort....   24.9.2009, 11:00
|- - Yad   Цитата(Amir @ 24.9.2009, 12:00) 84914218 ...   24.9.2009, 12:05
- - GUG   IMGFS релочит вроде нормально, правда без галки на...   24.9.2009, 14:46
|- - Yad   Цитата(GUG @ 24.9.2009, 15:46) IMGFS рело...   24.9.2009, 15:09
- - GUG   на чемто спотыкается при релоке, запускаю Realloc ...   24.9.2009, 16:13
|- - Yad   Цитата(GUG @ 24.9.2009, 17:13) на чемто с...   24.9.2009, 16:23
- - GUG   ещё вопрос он nk перекидывает в нулевой слот незав...   24.9.2009, 16:32
|- - Yad   Цитата(GUG @ 24.9.2009, 17:29) ещё вопрос...   24.9.2009, 16:35
- - GUG   новых модулей в ксип я не добавлял, так что как т...   24.9.2009, 16:40
|- - Yad   Цитата(GUG @ 24.9.2009, 17:40) новых мод...   24.9.2009, 16:43
- - GUG   короче ошибка по моей вине у меня в папке ешё авто...   24.9.2009, 17:12
|- - Yad   Цитата(GUG @ 24.9.2009, 18:12) короче оши...   24.9.2009, 17:14
- - GUG   винда то рабочая, перед этим собирал, релочил твое...   24.9.2009, 17:17
|- - Yad   Цитата(GUG @ 24.9.2009, 18:17) винда то р...   24.9.2009, 17:24
- - GUG   сегодня попробывал на другой прошивке IMGFS отрело...   25.9.2009, 9:28
|- - Yad   Цитата(GUG @ 25.9.2009, 10:28) сегодня по...   25.9.2009, 11:20
- - Yad   RC3-fix2 - исправлена построение карты map.txt в ...   28.9.2009, 16:37
- - Yad   исправлена еще одна глобальная ошибка релока, кача...   29.9.2009, 16:30
- - Yad   RC3-fix4 ...ну и еще кучка ошибок   30.9.2009, 8:22
- - Yad   GUG, у тебя что-нить еще получилось?   1.10.2009, 16:53
|- - GUG   Цитата(Yad @ 1.10.2009, 17:53) GUG, у теб...   2.10.2009, 7:10
- - Amir   xip собирается?   1.10.2009, 18:56
- - Yad   fix5 - много изменений! Читаем описание!   5.10.2009, 10:36
- - Yad   fix6 - исправлена работа с параметрами командной ...   6.10.2009, 11:01
- - Yad   Релиз! Читаем описание - удален один параметр ...   11.10.2009, 13:07
- - izCCCP   В кухне ervius кто пробовал применить ?   12.10.2009, 11:38
|- - AGC   Цитата(izCCCP @ 12.10.2009, 12:38) В кухн...   12.10.2009, 14:18
|- - Yad   Цитата(AGC @ 12.10.2009, 15:18) У меня дл...   13.10.2009, 7:53
|- - AGC   Цитата(Yad @ 13.10.2009, 8:53) Тут вот ещ...   13.10.2009, 11:56
- - AGC   Кстати, сразу маленький багрепорт. Еще на стадии с...   13.10.2009, 13:29
|- - Yad   Цитата(AGC @ 13.10.2009, 14:29) Кстати, с...   13.10.2009, 13:47
|- - AGC   Цитата(Yad @ 13.10.2009, 14:47) 1. dsm ну...   13.10.2009, 14:00
|- - Yad   Цитата(AGC @ 13.10.2009, 15:00) Это смотр...   13.10.2009, 14:13
- - AGC   Так я его только над плоским дампом в составе кухн...   13.10.2009, 14:19
|- - Yad   Цитата(AGC @ 13.10.2009, 15:19) Так я его...   13.10.2009, 14:23
|- - AGC   Цитата(Yad @ 13.10.2009, 15:23) Обязатель...   13.10.2009, 15:12
- - AGC   Да, рапортую, IMGFS для P320 отрелочился отлично. ...   14.10.2009, 8:55
|- - Yad   Цитата(AGC @ 14.10.2009, 9:55) Да, рапорт...   14.10.2009, 12:53
|- - AGC   Цитата(Yad @ 14.10.2009, 13:53) 6.1 или 6...   14.10.2009, 13:11
- - Yad   v1.02 - исправлено пару небольших глюков с интерфе...   17.10.2009, 17:18
- - Yad   Ну и до кучи еще одно обновление, по просьбам труд...   19.10.2009, 12:22
- - AGC   Yad, спасибо! Надо теперь пробовать   19.10.2009, 14:09
- - Yad   1.04 - исправил ошибку с созданием несуществующего...   21.10.2009, 13:15
- - Yad   v1.05 - добавлены параметры ком. строки для XIP. а...   26.10.2009, 8:57
- - ArtIMANIAK   Ссылка на батник больше не работает   31.10.2009, 12:03
|- - AGC   Цитата(ArtIMANIAK @ 31.10.2009, 13:03) Сс...   31.10.2009, 14:20
- - Yad   V1.1 - основные изменения: 1. Добавлен релок моду...   1.11.2009, 18:07
- - Yad   v1.1a - исправил досадную ошибку при работе с пара...   3.11.2009, 10:43


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

 

RSS Текстовая версия Сейчас: 11.4.2025, 2:28
return_links(); ?>