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

Спасибо! Особенно за скриншоты.

Share this post


Link to post
Share on other sites

В телефоне все время отстают часы. Корректируется  ли ход часов патчем? В Палихе, например, есть корректировка часов.

Share this post


Link to post
Share on other sites
6 минут назад, bugbug сказал:

Корректируется  ли ход часов патчем?

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

Вообще у многих самсунгов в настройках есть синхронизация часов с GSM-сетью…

  • Thanks 1

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

Share this post


Link to post
Share on other sites

Хочу изменить интервал получения e-mail сообщений (у меня 1 час, 3 часа, 6 часов, 12 часов, а хотелось бы установить в минутах). На сайте не нашел такого патча. На какой-то мобиле (видел где-то на сайте) был уже предустановлен интервал в 15 мин. и т.д. В патче Изменение времени работы подсветки, чтобы найти время его достаточно было перевести в милисекунды, а здесь переводил и не нашел. Видимо здесь другой алгоритм.

Share this post


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

Хочу изменить интервал получения e-mail сообщений (у меня 1 час, 3 часа, 6 часов, 12 часов, а хотелось бы установить в минутах).

Ну наверно надо искать какую переменную меняет настройка и затем какая функция читает эти настройки… Скорее всего в переменной хранится какое-то условное значение 0-1-2-3, а где-то в другом месте устанавливаются константы таймера.


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

Share this post


Link to post
Share on other sites

Нашел адреса emctr1_32SemEmailIntervalTimer: 0x2055231C и emctr1_33SemEmailIntervalProcess: 0x20DE4110. Поменял часы на минуты (0x000BDD80 на 0x000032A0). И все получилось. Спасибо!

Share this post


Link to post
Share on other sites

add_volume:
PUSH    {R0,R3,LR}
SUB    SP, 0x100
ADD    R3, 1 ; диапазон 0...14 = 15 позиций
STR    R3, [SP]
MOV    R3, #0x32
MOV    R2, 2
MOV    R1, R5
MOV    R0, R4
BL    lk_AddFocus
LDR    R0, [SP, 0x100]
BL    lk_get_my_text2
STR    R0, [SP]
MOV    R3, #0xA
MOV    R2, 0
STR    R2, [SP, 4]
MOV    R1, R5
MOV    R0, R4
BL    lk_AddFocusItem
MOV    R6, #0x0
loc_123:
MOV    R2, R6
ADR    R1, ="%d"
ADD    R0, SP, #0x10
BL sprintf
ADD    R0, SP, #0x10
STR    R0, [SP]
MOV    R2, #0x0
STR    R2, [SP, 4]
MOV    R2, R6
MOV    R1, R5
MOV    R3, #0x11  
MOV    R0, R4
BL    lk_AddFocusItem
ADD    R6, #0x1
CMP    R6, #0xF
BCC loc_123
MOV R1, R5    
MOV R0, R4    
BL lk_SetCurSpinIndex    

ADD    SP, 0x108
POP    {PC}

Сделал громкость с помощью цифр, громкость меняется, но не сохраняется при выходе. Где-то я пропустил что-то важное :-)

 

Share this post


Link to post
Share on other sites
02.06.2020 в 18:54, bugbug сказал:

громкость меняется, но не сохраняется при выходе.

Ну очевидно процедура выхода не там где кажется… Внимательно проверять логику MCC, ставить контрольные точки для проверки выполнения тех или иных скриптов…


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

Share this post


Link to post
Share on other sites

Там где используются переходы BL add_volume заменил кодом, похожим на "спинбокс выбора звука предшествующего сигнала" с незначительными изменениями. Теперь звук сохраняется. Однако при компиляции появляется: Не удалось разместить данные gv_ImageTitleIconStart. Попробуйте использовать тег .data ближе. Из-за чего это происходит?

Share this post


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

Не удалось разместить данные gv_ImageTitleIconStart. Попробуйте использовать тег .data ближе. Из-за чего это происходит?

в arm-thumb ассемблере команды занимают по 2 фиксированных байта и адреса смещений очень короткие.

Команда LDR не хранит данные в себе, она на самом деле хранит смещение до места хранения данных, бит для этого выделено мало и смещение короткое.

LDR R0, =v_ImageTitleIconStart

на самом деле физически компилятором пишется так

LDR R0, offset m

.data
.align 2
m: dd v_ImageTitleIconStart

Если области для .data не указаны - то компилятор размещает data просто в конце кода.

Вобщем, при возникновении этой ошибки надо просто вставить место для data где-то поближе. Обычно после большой подпрограммы, либо сделав место при помощи B-перехода через него:


B m2
.data
.align 2
m2:

  • Thanks 1

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

Share this post


Link to post
Share on other sites

Говорящие часы: обнаружилось несколько проблем, хотелось бы узнать есть ли они на вашем телефоне?

1. Если автопроизношение или ручной режим задействуется во время входящего звонка (до поднятия трубки или во время разговора), то звук динамика пропадает и собеседника не слышно. Однако если в телефоне был установлен бесшумный режим, такой проблемы не возникает.

2. Громкость предварительного звука (7) достаточно  большая, на улице слышно при любом шуме. Голос (14)  практически не слышно на улице нигде. Пробовал увеличить громкость специальной программой, но появляются большие шумы.

3.  Для ручного режима предусмотрена функция произнесения времени при заблокированной клавиатуре и незаблокированной одновременно. Но почему-то не было сделано отдельно при заблокированной и при незаблокированной (два чекбокса). Моя проблема связана с тем, что все клавиши где-либо уже задействованы: если удерживать фото (то запускается камера, а однократное нажатие - снимок), если однократно фото  при включенной опции ScreenShot - скриншот.

Share this post


Link to post
Share on other sites
27.06.2020 в 01:52, bugbug сказал:

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

На S5610 проверил - он не говорит при входящем звонке ведь…

; разрешено ли говорить во время разговора
BL    CheckInCallState
CMP    R0, 0
BNE    TalkerClock_auto_end_free2 ; во время разговора уведомлений не надо

27.06.2020 в 01:52, bugbug сказал:

Громкость предварительного звука (7) достаточно  большая, на улице слышно при любом шуме. Голос (14)  практически не слышно на улице нигде.

На разных поколениях разные пределы уровней громкости, вероятно что 14 там имеет какое-то битовое переполнение. Или вообще по факту пишется на 14 из-за каких-то ошибок чтения spin/volume-контрола. Надо проверить все остальные уровни, и потом попробовать явную константу поставить (вместо чтения контрола).

27.06.2020 в 01:52, bugbug сказал:

Для ручного режима предусмотрена функция произнесения времени при заблокированной клавиатуре и незаблокированной одновременно.

Ну это под конкретную модель индивидуально делать надо. Патч делался под дуосы, где вообще отдельная лишняя кнопка была (sim-выбор). Где-то делали по удержания кнопки громкости (хотя туда тоже много всего вешается - управление плеером).


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

Share this post


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

На S5610 проверил - он не говорит при входящем звонке ведь…

Проблема была, скорее всего, в многократных прошивках, теперь она самоустранилась

21 час назад, f2065 сказал:

Ну это под конкретную модель индивидуально делать надо.

Добавил в TalkerClock_manual:

LDR    R0, =gs_KeyLockInfo
LDRB    R0, [R0]
CMP    R0, 1
BNE    TalkerClock_manual_exit

Получил результат, который хотел.

Стал проверять остальные опции и оказалось, что не работает чекбокс "Только на десктопе или при погашенном экране".

; разрешено говорить только если телефон не используется

MOV    R0, cfg_options
LDRB    R0, [R5, R0]
LSL    R0, R0, opt_only_idle_or_blank
BPL    TalkerClock_auto_no_blank ; разрешено говорить только на десктопе
LDR    R0, =gs_KeyLockInfo
LDRB    R0, [R0]
CMP    R0, 1
BEQ    TalkerClock_auto_no_blank ; экран заблокирован
LDR    R0, =gv_MainLcdLight
LDRB    R0, [R0]
CMP    R0, 0
BEQ    TalkerClock_auto_no_blank ; подсветка не горит
BL    lkcore16_IsIdleScreen
CMP    R0, 1
BNE    TalkerClock_auto_end_free ; подсветка горит и активен не десктоп
TalkerClock_auto_no_blank:

Выяснилось, что у меня нет данной функции lkcore16_IsIdleScreen. Чем можно заменить ее?

 

 

 

Share this post


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

Выяснилось, что у меня нет данной функции lkcore16_IsIdleScreen. Чем можно заменить ее?

Посмотреть как эта функция сделана в C3322XWKL1 и сделать аналогично.

lkcore16_IsIdleScreen:
PUSH    {R4,LR}
MOV    R4, 0
BL    get_current_me_state
BL    lk_IsIdleState
CMP    R0, 0
BEQ    loc_902099E6
LDR    R0, =0xA841E398
LDRB    R0, [R0, #0x1D]    ; это всё где-то массиве gs_look, надо искать финальный адрес по использованию, а не оффсет от 0xA841E398. На С3322 и B5722 - финальный адрес gs_look+0xFD
CMP    R0, 1
BNE    loc_902099E6
MOV    R4, 1
loc_902099E6:
LSL    R0, R4, #0
POP    {R4,PC}


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

Share this post


Link to post
Share on other sites

Задам немного глупый вопрос, но для меня очень важный.

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

Share this post


Link to post
Share on other sites
15.07.2020 в 22:37, lestat сказал:

Есть какая-нибудь возможность перенести патч черного списка на андройд?

Перенести конечно нельзя.

А в принципе, для андроида что-то такое сделать можно, но это слишком аппаратно зависимо (если надо режимы типа «абонент вне зоны действия»). Т.е. не просто для андроида, а для конкретной платформы (связка чипсета и года выпуска, может ещё и бренда). 


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

Share this post


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

слишком аппаратно зависимо

Так и думал, посмотрев исходники, но хотелось убедится. По этому все "черные списки" на андройде просто сбрасывают звонок. Это проще.

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...