Перейти к содержанию
Old Phone Forum
  • Вход

    Вы сейчас не залогинены на форуме.

    Для возможности комментариев, загрузки файлов, подписок на ответы - вам надо войти.

Задаем вопросы по теме "Портирование патчей, для начинающих"


Рекомендуемые сообщения

Это тот settings.cfg, который в /user лежит? :vygl:

Да!

 

Какой предпочесть, или лучше вообще никакой?

Никакой.

Всё ещё будет...
Ссылка на комментарий
Поделиться на другие сайты

  • Ответов 947
  • Создана
  • Последний ответ

Топ авторов темы

Вопрос к авторам патча "Java Sleep" и людям, портировавшим этот патч. Уже задолбался возиться с этим патчем, а его работоспособности на Х620ХЕЕН4 так и не достиг (всему виной моя бесграмотность :( ). По этому, хочу попросить Вас о помощи исправить ошибку. Вся проблема, скорее всего, заключается в обработке клавиши вкл/выкл. Очень рассчитываю на Вашу помощь. Более детально все рассписано в исходнике:

JavaSleepSRC.rar

Multum vinum bibere, nоn diu vivere

Ссылка на комментарий
Поделиться на другие сайты

karas, пoмoгитe пожaлустa karas-ю,очeнь плoхo бeз eтого пaтчa нa x620!

Ася-455446295.

ЗЫ: ЫЫ

Ссылка на комментарий
Поделиться на другие сайты

karas, прошивки Х620 под рукой не оказалось, но зато патч мало чем отличается от патча Сворачивание Java для свифтов, поэтому отвечу на твои вопросы :bx:

 

B 0x000A7358 ; этот переход не знаю к чему, смотрел по аналоговому коду в X100XEDG1 и E820XEDG1 (первый знак вопроса???)

Это переход на завершение обработчика клавиш. В X100XEDG1 это адрес 0x0005903E. Ищи эквивалентный код для своей прошивки.

 

; On/Off-Key processing (Собственно сама обработка клавиши с переходом в меню вариантов выхода из приложения. Здесь, подозреваю, собака и зарыта. Знак вопроса №2 - главная загвоздка)

Там все правильно :(

 

Что касается дальнейшего МСС-скрипта, то тут могут быть некоторые отличия. В патче нигде больше не правится тумб-код, а значит, все строки МСС, которые используются в патче, есть у тебя в прошивке. Ищи эквивалентный МСС-скрипт для своей прошивки. Отличия могут быть лишь в параметрах.

Ссылка на комментарий
Поделиться на другие сайты

Longhair

 

Спасибо за ответ.

патч мало чем отличается от патча Сворачивание Java для свифтов

В этом-то и вся проблема: код сфифтовский 1 в один, а вот мсс - сисол. 0x0005903E это в области kvm_ParseKbdInd, чего нет в х620 (опять же свифтовский подход.), хотя код вычислил этим же методом по неоднократному использованию в прошивке (он не отличается, по-моему).

Multum vinum bibere, nоn diu vivere

Ссылка на комментарий
Поделиться на другие сайты

karas,

я тебе как-то писал в личку с предложением помочь по этому патчу, так как я портировал его на е330 и е820.

но ты почему-то меня проигнорировал.

Работай, как будто тебе не надо денег,

Люби, как будто тебе никто никогда не причинял боль,

Танцуй, как будто никто не смотрит,

Пой, как будто никто не слышит,

Живи, как будто на земле рай.

Ссылка на комментарий
Поделиться на другие сайты

0x0005903E это в области kvm_ParseKbdInd, чего нет в х620 (опять же свифтовский подход.)

Все там есть. Примерно также как и на свифтах. На новых свифтах (м.б. и на сисолах) этот код лишь поменял свое местоположение в прошивке, но ищется без проблем.

 

А что касается - "исправить ошибку" - то ее сначала нужно найти...

У тебя, при нажатии на красную кнопку, что происходит?

Если телефон виснет, и при этом ничего не появляется, то ошибка скорее всего в МСС-скрипте.

Ссылка на комментарий
Поделиться на другие сайты

KR-Electronics

 

Извини, но твоего письма у меня нет в личных сообщениях (не дошло, что ли :laugh3: ). Никогда бы не отказался от твоей помощи, тем более в портировании этого патча.

 

Longhair

 

Да, труба виснет и уходит в перезагрузку, при этом ничего не отображается. Попробовал поставить переход вместо мсс патча на левое меню телефона (Java-приложения ). В этом случае при нажатии на красную кнопку это меню отображается, после чего уходит в перезагрузку. Скорее всего, проблема действительно в мсс.

Multum vinum bibere, nоn diu vivere

Ссылка на комментарий
Поделиться на другие сайты

karas,

тогда пиши в аську, пообщаемся :132:

Работай, как будто тебе не надо денег,

Люби, как будто тебе никто никогда не причинял боль,

Танцуй, как будто никто не смотрит,

Пой, как будто никто не слышит,

Живи, как будто на земле рай.

Ссылка на комментарий
Поделиться на другие сайты

karas, проблема действительно в МСС. И так как:

Попробовал поставить переход вместо мсс патча на левое меню телефона (Java-приложения ). В этом случае при нажатии на красную кнопку это меню отображается, после чего уходит в перезагрузку.

то тут еще проблема с этим переходом "B 0x000A7358".

Ты этот адрес (0x000A7358) как искал? по смещению?

Ссылка на комментарий
Поделиться на другие сайты

Longhair

 

Ты этот адрес (0x000A7358) как искал? по смещению?

Нет. Я посмел предположить, что код в прошивке X100XEDG1 по адресу 0005903E:

POP	{R4-R7}
POP	{R3}
BX	R3

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

POP	{R3-R7}
POP	{R3}
BX	R3

который ближе всего расположен по адресу 0x000A7358

Multum vinum bibere, nоn diu vivere

Ссылка на комментарий
Поделиться на другие сайты

karas, понимаешь, функция JWare_getInternalKey может вызываться в трех местах.

И во всех трех выход разный.

 

POP {R3-R7}

POP {R3}

BX R3

Это первый случай.

 

Но можно еще попробовать такие варианты:

	ADD	SP, SP, #0x14
POP	{R4-R7}
POP	{R3}
BX	R3

	ADD	SP, SP, #0x1C
POP	{R4-R7}
POP	{R3}
BX	R3

Это с адресов 0х00313574 и 0х003135BE, соответственно (жаль, команда b недостанет... придется врезать в самой ф-ции JWare_getInternalKey).

 

P.S. Это то, что касается:

Попробовал поставить переход вместо мсс патча на левое меню телефона (Java-приложения ). В этом случае при нажатии на красную кнопку это меню отображается, после чего уходит в перезагрузку.
Ссылка на комментарий
Поделиться на другие сайты

karas, можно еще попробовать сделать переход на то место в прошивке, где есть этот код.

По близости это здесь:

000A719A:		ADD	SP, SP, #0x14
000A719C:		POP	{R4-R7}
000A719E:		POP	{R3}
000A71A0:		BX	R3

и здесь:

000A7A9E:		ADD	SP, SP, #0x1C
000A7AA0:		POP	{R4-R7}
000A7AA2:		POP	{R3}
000A7AA4:		BX	R3

Но ты это пока не делай :az:

 

Еще раз посмотрел твой исходник, нашел одну ошибку... (как то сразу не заметил :))

_KEY_OFF:
LDR R0, =mcc_java_main_request
MOV R1, #0x0
CMP R0, #0x0
BL lk2_12start_menu_edit_fsm

А правильно так:

_KEY_OFF:
LDR R0, =mcc_java_main_request
MOV R1, #0x0
CMP R0, #0x0
BL lk2_12start_menu_edit_fsm
bx	lr

Или вот так:

_KEY_OFF:
push	{r0-r7,lr}
LDR R0, =mcc_java_main_request
MOV R1, #0x0
CMP R0, #0x0
BL lk2_12start_menu_edit_fsm
pop	{r0-r7,pc}

И "CMP R0, #0x0" можно убрать.

Ссылка на комментарий
Поделиться на другие сайты

Не фига, не пашет. Пол дня перепрошивал, а толку - 0... Крыша едет. Перепробовал все варианты со всеми вышеперечисленными кодами, пробовал и врезать, и В-переходы ставить, а результат один и тот же.

 

 

Вопрос: если я

_KEY_OFF:

LDR R0, =mcc_java_main_request <- Здесь поставлю переход, например, на меню Ява-приложений, то при рабочей обработке клавиши меню точно будет работать?

MOV R1, #0x0

CMP R0, #0x0

BL lk2_12start_menu_edit_fsm

bx lr

Multum vinum bibere, nоn diu vivere

Ссылка на комментарий
Поделиться на другие сайты

...

CMP R0, #0x0

...

Зачем попросту инициализировать флаг? Если потом он не используется?

Всё ещё будет...
Ссылка на комментарий
Поделиться на другие сайты

Не фига, не пашет. Пол дня перепрошивал, а толку - 0...

karas, а ты МСС патча исправлял? У тебя же еще в МСС есть ошибка.

 

Вопрос: если я

_KEY_OFF:

LDR R0, =mcc_java_main_request <- Здесь поставлю переход, например, на меню Ява-приложений, то при рабочей обработке клавиши меню точно будет работать?

Появится оно точно. А будет ли работать, это я сказать не могу.

Оставь как есть, и ищи ошибку в МСС патча.

 

Вызов МСС лучше сделать так (с сохранением регистров):

_KEY_OFF:
push	{r0-r7,lr}
LDR R0, =mcc_java_main_request
MOV R1, #0x0
BL lk2_12start_menu_edit_fsm
pop	{r0-r7,pc}

И этот переход "B 0x000A7358" оставь пока как есть. С ним потом будем разбираться, когда будет исправлен МСС...

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

После прочтения многих HELP-ов по партированию патчей и при работе с программой у меня возникли маленькие вопросы. Скажите пожалуйста, как дальше быть, если BinEdit выдает сообщение (аналогичная последовательность кода не найдена)? И ещё, после сканирования прошивки появляется сообщение (таблицы МСС не найдены) - это как-нибудь влияет на портирование патча?

В России три способа обмена информацией: воровство, грабеж и обмен награбленным (Б. Гейтс)

Ссылка на комментарий
Поделиться на другие сайты

как дальше быть, если BinEdit выдает сообщение (аналогичная последовательность кода не найдена)?

Искать вручную.

 

И ещё, после сканирования прошивки появляется сообщение (таблицы МСС не найдены) - это как-нибудь влияет на портирование патча?

При автоматическом - нет.

Всё ещё будет...
Ссылка на комментарий
Поделиться на другие сайты

Искать вручную.

Я конечно понимаю, что нужно искать вручную, но как это делать - не могу понять. Ни в одном HELP-е(по-моему) не сказано, как поступать в таком случае. Хотелось бы чтобы кто-нибудь из знающих написал или добавил в уже существующий HELP такую информацию.

 

 

Я был бы очень признателен, если бы кто-нибудь помог!!! :)

В России три способа обмена информацией: воровство, грабеж и обмен награбленным (Б. Гейтс)

Ссылка на комментарий
Поделиться на другие сайты

Я конечно понимаю, что нужно искать вручную, но как это делать - не могу понять. Ни в одном HELP-е(по-моему) не сказано, как поступать в таком случае. Хотелось бы чтобы кто-нибудь из знающих написал или добавил в уже существующий HELP такую информацию.

Я был бы очень признателен, если бы кто-нибудь помог!!! :)

Или искать в SYM аналогичный адрес или копируем в окне MCC примерно 8 байт кода. Переходим к прошивке для которой ищем эквивалент и в поиск вставляем тот скопированный код. Из найденных адресов берем тот который больше всего подходит(совпадает).

Ссылка на комментарий
Поделиться на другие сайты

SLYDER, есть один способ, который вроде нигде не освещён - по адресам использования этих адресов.

т.е. ищешь в прошивке, где используется тот адрес для которого ищешь эквивалент. Это может быть BL переход на этот адрес, или LDR Rx,=адрес. Причём не обязательно именно тот адрес который ищешь, может быть какой то рядом.

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

Одна из последних версий binedit здесь.

AlexeyK.gif

Ссылка на комментарий
Поделиться на другие сайты

AlexeyK,

Спасибо!!! :) Буду пробавать.(Просто я пытаюсь научится и для меня еще много чего неизвестно, по-этому вы строго не судите за мои вопросы).

Еще раз всем СПАСИБО!!! ;)

В России три способа обмена информацией: воровство, грабеж и обмен награбленным (Б. Гейтс)

Ссылка на комментарий
Поделиться на другие сайты

  • 4 недели спустя...

Хочу спортировать патч от Х700 на D500 "ImageThumb 1.1".

 

Спасибо NEO, что он выложил исходники.

 

В архиве файл X700XEFC3_Api.h а вот там....

 

1) Например вот это

.word 0xE59FC000

.word 0xE12FFF1C

.word \adrr

 

Что с ним делать нужно? Или вообще нужно ли ?

 

 

2) В этом файле куча функций с адресами, надо для всех эквиваленты находить?

Я прочитал описание патча, как-то не ассоциируется оно с ;BackLight из этого файла или с ;Java

Пример

;Java

.equ pReceived_JAD_data 0x184C0FF4

.equ Received_JAD_size 0x184C0FF8

....

...

Двери есть везде, нужно просто знать как в них войти!

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти



×
×
  • Создать...