Jump to content
Old Phone Forum
  • Login

    You are currently not logged in to the forum.

    To comment, upload files, subscribe to answers - you need to login.

MaxKis

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

Recommended Posts

а что значит BLT  ess_error?

Наверно опечатка. Там наверно должно быть BLE - ошибка если возвращён 0 или отрицательное число, или даже BEQ (ошибка если возвращён 0).

 

 

Команды условного перехода в режиме Thumb

BEQ метка Переход, если установлен Z (равно)

BNE метка Переход, если сброшен Z (не равно)

BCS метка Переход, если установлен C (выше беззнаковое или равно)

BCC метка Переход, если сброшен C (ниже беззнаковое)

BMI метка Переход, если установлен N (минус, или старший бит установлен)

BPL метка Переход, если сброшен N (плюс или равно, или старший бит сброшен)

BVS метка Переход, если установлен V (переполнение)

BVC метка Переход, если сброшен V (нет переполнения)

BHI метка Переход, если установлен C и сброшен Z (выше беззнаковое)

BLS метка Переход, если сброшен C или установлен Z (ниже беззнаковое или равно)

BGE метка Переход, если установлен N и установлен V или сброшен N и сброшен V (больше со знаком или равно)

BLT метка Переход, если установлен N и сброшен V или сброшен N и установлен V (меньше со знаком)

BGT метка Переход, если сброшен Z и либо установлен N и сброшен V, либо сброшен N и установлен V (больше со знаком)

BLE метка Переход, если установлен Z, или установлен N и сброшен V, или сброшен N и установлен V (меньше со знаком или равно)

 

 

Подскажите, пожалуйста, как Вы определяли .start 0x2197B5FA?

Для B5722 есть полный sym… Откуда ясно что это врезка в функцию gfs30_24CptScr (0x2197B304). Функция имеет ссылки на трассировку (лежит там текст gfs30_24CptScr). Обычно в таких случаях в другой прошивке ищем аналогичный текст трассировки и идём в обратную сторону.

Но в случае J210 облом - у него нету функции gfs30_24CptScr, и вообще нету даже текста CptScr… Я проверил в более древнем D780 - но у него тоже есть gfs30_24CptScr…

 

Так что либо скриншоты придётся запускать из терминалки запуском из CGSN-патча, либо надо исследовать есть ли у J210 штатный скриншотер (в инженерном меню включается ли он) и как он работает…


Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com

Share this post


Link to post
Share on other sites

Спасибо! В J210 gfs30_24CptScr есть (0x20E19C80). В инженерном меню включается и работает. Мой вопрос был по поводу того, как переделать raw в bmp.

 


 

 

 

Share this post


Link to post
Share on other sites

В J210 gfs30_24CptScr есть (0x20E19C80).

Это называется mmigfs3_33LCDDump. gfs30_24CptScr там нету

 

Мой вопрос был по поводу того, как переделать raw в bmp.

Надо исследовать mmigfs3_33LCDDump, где там пишется в файл буфер vScreenMem. Я что-то не вижу там ничего похожего на 0x302FA620

надо имена всех функций которые вызываются из mmigfs3_33LCDDump найти


Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com

Share this post


Link to post
Share on other sites

Это называется mmigfs3_33LCDDump. gfs30_24CptScr там нету

 

Надо исследовать mmigfs3_33LCDDump, где там пишется в файл буфер vScreenMem. Я что-то не вижу там ничего похожего на 0x302FA620

надо имена всех функций которые вызываются из mmigfs3_33LCDDump найти

Спасибо! Значит я ошибся. Буду довольствоваться raw.

Share this post


Link to post
Share on other sites

Хочу сделать себе патч Talker aka «Говорящие часы» на примере B5722.  Не знаю как правильно добавить новый пункт меню в Настройки-Телефон-Время и Дата. Определил адрес меню:

213C949C 5C000000000000000000000000000000
213C94AC 8B000000000000000000000000000000
213C94BC 1713B100000000000000000000000000
213C94CC 7F000100000100000000000030000000
213C94DC 1713B000000000000000000000000000
213C94EC 80130F00000002020000000000000000
213C94FC 8C00010000000000CC9DB52000000000
213C950C 8C00FFFF000000009C953C2100000000
213C951C 8D0100000202D8019C953C2167060000
213C952C 180901000F0000007C953C2100000000
213C953C 19090100020000007C953C2100000000
213C954C 19090100010000007C953C2100000000
213C955C 19090100090000004CB0B52000000000
213C956C 38000000000000000000000000000000

Странно, что в адресе 213C94FC не 6 пунктов фокус меню, а только один. При переходе  в кейс 0x00B0

215B8ABC:    0722    MOV    R2, #0x7 как и в B5722 ( 0x216EAF20)
 

 

Share this post


Link to post
Share on other sites
05.11.2019 в 20:02, bugbug сказал:

213C94FC 8C00010000000000CC9DB52000000000

BinEdit это должен показывать так

213C949C:    5C000000000000000000000000000000    DCM    MCC_INIT_RESTORE    ;Подготовка окна
213C94AC:    8B000000000000000000000000000000    DCM    MCC_SET_CURFOCUS    ;MCC_SET_CURFOCUS
213C94BC:    1713B100000000000000000000000000    DCM    MCC_TASK 0x13 0xB1    ;Выполнить 0x13 x2=177 x3=0 x4=0 x5=0 x6=0
213C94CC:    7F000100000100000000000030000000    DCM    MCC_FOCUS_START 0 0x1 0x100 0 0 0x30    ;MCC_FOCUS_START
213C94DC:    1713B000000000000000000000000000    DCM    MCC_TASK 0x13 0xB0    ;Выполнить 0x13 x2=176 x3=0 x4=0 x5=0 x6=0
213C94EC:    80130F00000002020000000000000000    DCM    MCC_DISPLAY_FOCUS 0x13 0xF 0 0x202    ;MCC_DISPLAY_FOCUS
213C94FC:    8C00010000000000CC9DB52000000000    DCM    MCC_FOCUS_SELECT 0 0x1 0 0 loc_20B59DCC    ;MCC_FOCUS_SELECT
213C950C:    8C00FFFF000000009C953C2100000000    DCM    MCC_FOCUS_SELECT 0 0xFFFF 0 0 loc_213C959C    ;MCC_FOCUS_SELECT
213C951C:    8D0100000202D8019C953C2167060000    DCM    MCC_FOCUS_CHANGE 0x1 0 0x202 0x1D8 loc_213C959C 0x667    ;MCC_FOCUS_CHANGE
213C952C:    180901000F0000007C953C2100000000    DCM    MCC_IF 0x9 0x1 0xF 0 loc_213C957C    ;Если кнопка "R-Soft/Middle" в состояни 1 то переход на 0x213C957C
213C953C:    19090100020000007C953C2100000000    DCM    MCC_ELSEIF 0x9 0x1 0x2 0 loc_213C957C    ;Или если кнопка "С" в состояни 1 то переход на 0x213C957C
213C954C:    19090100010000007C953C2100000000    DCM    MCC_ELSEIF 0x9 0x1 0x1 0 loc_213C957C    ;Или если кнопка "С-long" в состояни 1 то переход на 0x213C957C
213C955C:    19090100090000004CB0B52000000000    DCM    MCC_ELSEIF 0x9 0x1 0x9 0 loc_20B5B04C    ;Или если кнопка "Red" в состояни 1 то переход на 0x20B5B04C
213C956C:    38000000000000000000000000000000    DCM    MCC_EXIT    ;Завершение МСС скрипта

20B59DCC:    180901000E0000009C953C2100000000    DCM    MCC_IF 0x9 0x1 0xE 0 loc_213C959C    ;Если кнопка "L-Soft" в состояни 1 то переход на 0x213C959C
20B59DDC:    17130600000000000000000000000000    DCM    MCC_TASK 0x13 0x6    ;Выполнить 0x13 x2=6 x3=0 x4=0 x5=0 x6=0
20B59DEC:    1C0000000000000030B17B2100000000    DCM    MCC_TRANSF 0 0 0 0 loc_217BB130    ;Переход на адрес 0x217BB130
20B59DFC:    5C000000000000000000000000000000    DCM    MCC_INIT_RESTORE    ;Подготовка окна
20B59E0C:    17138200000000000000000000000000    DCM    MCC_TASK 0x13 0x82    ;Выполнить 0x13 x2=130 x3=0 x4=0 x5=0 x6=0
20B59E1C:    7A01010013000F000000000000000000    DCM    MCC_RETURN_MENU 0x1 0x1 0x13 0xF    ;MCC_RETURN_MENU

213C959C:    1713B200000000000000000000000000    DCM    MCC_TASK 0x13 0xB2    ;Выполнить 0x13 x2=178 x3=0 x4=0 x5=0 x6=0
213C95AC:    181321000000000090F1772000000000    DCM    MCC_IF 0x13 0x21 0 0 loc_2077F190    ;Если x1=19 x2=33 x3=0 то переход на 0x2077F190
213C95BC:    1B000000000000002C9EB52000000000    DCM    MCC_CALL 0 0 0 0 loc_20B59E2C    ;Вызов подпрограммы по адресу 0x20B59E2C
213C95CC:    1713B300000000000000000000000000    DCM    MCC_TASK 0x13 0xB3    ;Выполнить 0x13 x2=179 x3=0 x4=0 x5=0 x6=0
213C95DC:    1C00000000000000B4AB372100000000    DCM    MCC_TRANSF 0 0 0 0 loc_2137ABB4    ;Переход на адрес 0x2137ABB4
 

05.11.2019 в 20:02, bugbug сказал:

Странно, что в адресе 213C94FC не 6 пунктов фокус меню, а только один

Обработчик меню (особенно focus-меню) бывает и не в виде MCC-скриптов, а регистрируется в ассемблере, в функции подготовки этого самого меню. Либо, в MCC-функции которая вызывается при завершении меню - асм-код проверяет на каком пункте меню был выход…

Вобщем, надо внимательно смотреть асм-внутренности всех MCC_TASK на запуске меню (начиная с init restore), и при выходе. Лучше наверно на B5722 где есть sym-файл, чтобы имена всех BL-функций BinEdit показывал. И потихоньку переносить описания функций в sym для J210 (вкладка «Символы» в BinEdit, там добавлять адреса в J210). Функций задействованных в работе меню не много, штук 50, так что потом по мере переноса имён - уже можно будет читать понятный код сразу в J210.


Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com

Share this post


Link to post
Share on other sites

В Talker_menu_enter.asm

;fn_menu_in_focus: ; выдрано из cal6_FakeCallFocusTimerDisplay

А у меня нет ложного срабатывания, тогда откуда мне  выдирать?

Спасибо!

P.S. Talker_fn.asm я уже сделал.

Share this post


Link to post
Share on other sites

Проверил Talker_fn.asm, установив на удержание кнопки. Все работает: женщина приятным голосом сообщает точное время.  Однако цель моя не достигнута: нет меню автоматических настроек. Нашел патч-конфигуратор для D780, M3510,E200 где аналогичное меню Время и Дата. А asm (Патч-конфигуратор) на форуме  не нашел. Существует ли такой asm?

P.S. Вручную smp сделать сложно из-за огромного объема.

Share this post


Link to post
Share on other sites
2 часа назад, bugbug сказал:

нет меню автоматических настроек

Надо брать патч с B5722 (или C3322/S5610 - но они сильнее отличаются). Там и меню настроек своё собственное, и функций у говорящих часов больше (есть возможность предварительных сигналов).


Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...