Jump to content
Old Phone Forum

bugbug

SGH Open Club
  • Content Count

    111
  • Joined

  • Last visited

  • Days Won

    3

bugbug last won the day on November 15 2019

bugbug had the most liked content!

Community Reputation

3 Обычный

About bugbug

  • Rank
    Полноправный Пользователь

Дополнительные поля

  • Модель телефона
    J210

Информация

  • Пол
    Мужчина
  • Город
    Санкт-Петербург

Recent Profile Visitors

241 profile views
  1. Хочу изменить интервал получения e-mail сообщений (у меня 1 час, 3 часа, 6 часов, 12 часов, а хотелось бы установить в минутах). На сайте не нашел такого патча. На какой-то мобиле (видел где-то на сайте) был уже предустановлен интервал в 15 мин. и т.д. В патче Изменение времени работы подсветки, чтобы найти время его достаточно было перевести в милисекунды, а здесь переводил и не нашел. Видимо здесь другой алгоритм.
  2. В телефоне все время отстают часы. Корректируется ли ход часов патчем? В Палихе, например, есть корректировка часов.
  3. Нижеприведенный код используется в ProfileSheduler_menu_fn.asm и Talker_menu_enter.asm. В нем есть функция lk_DisplayFocusBG. В моем телефоне я нашел только lk_DisplayMenuFocusBG. Можно ли ее чем-то заменить, сократить или убрать? И обязателен ли этот код для построения меню? LDR R4, =fx_pos MOV R1, 5 STRH R1, [R4, #0] ; fx_pos MOV R2, 22 STRH R2, [R4, #6] ; f_height LDRH R1, [R5, #6] LDRH R0, [R5, #2] BL lk_GetCenterPos ; v_Start,v_Total,v_Part STRH R0, [R4, #2] ; fy_pos MOV R0, 220 STRH R0, [R4, #4] ; f_width LDR R0, =0x00000816 STRH R0, [R4, #8] ; f_font MOV R1, 0 MOV R0, R6 BL lk_MenuFontColor ; v_Active,v_HideState CMP R6, 1 BNE loc_201815A0 MOV R0, R5 BL lk_DisplayFocusBG ; p_Pos loc_201815A0: CMP R6, 0 BEQ loc_201815EC ; рисовалка невыбранной строки ; рисовалка выбранной строки (со скроллом невлезающего текста) LDR R2, =0x00001001 ; (4097) MOV R1, 0 MOV R0, 3 BL lk6_ClearOneRestoreProc ; v_ContextType,v_CtxIdx,v_WidgetType BL lk6_look_dsptext_register MOV R2, 0 STR R2, [SP, #0x10] ; invalidate STR R7, [SP, #0xC] ; SrcData - текстовая строка MOV R3, #0x1D ; 29 STR R3, [SP, #0x8] ; ExtInfo_Index STR R0, [SP, #0x4] ; p_DspText STR R2, [SP] ; DspTarget LDRH R3, [R4, #6] ; f_height LDRH R2, [R4, #4] ; f_width LDRH R1, [R4, #2] ; fy_pos LDRH R0, [R4, #0] ; fx_pos BL lk_TextDisplay ; x,y,w,h,DspTarget,p_DspText,ExtInfo_Index,SrcData,invalidate loc_201815E8: ADD SP, 0x100 POP {R4-R7,PC} loc_201815EC: ; это вывод невыбранного пункта, скролла нет и потому строку надо обрезать с учётом размера фонта MOV R0, R7 BL strlen MOV R6, R0 ADD R0, #0x4 BL RtkGetMemory MOV R5, R0 ADD R1, R6, 2 ;MOV R0, R5 BLX __rt_memclr MOV R1, R7 MOV R0, R5 BL strcpy LDRH R3, [R4, #6] ; f_height LDRH R2, [R4, #4] ; f_width LDRH R1, [R4, #8] ; f_font MOV R0, R5 BL StringAbbreviation ; p_String,v_FontId,v_Width,v_Height MOV R0, R5 BL strlen MOV R1, R0 MOV R3, 0 STR R3, [SP] MOV R2, #0x81 MOV R0, R5 BL lk4_10WriteWindow ; v_String,v_StrLen,v_Format,v_Invalid,v_LcdId MOV R0, R5 BL RtkReleaseMemory B loc_201815E8 .data
  4. Данные эквиваленты используются в Talker_listen.asm (патч Talker B5722). .equ set03_StopSound 0x21A0C0E8 .equ set03_StopMidiSound 0x21D354C8 .equ set03_StopTimer 0x216A79E8 Не могу понять, где их искать в моей прошивке.
  5. Это был просто пример блока write_num2, конечно же регистры я поменял. Получается, что в B5722 при мультисъемке остаются стандартные имена?
  6. В телефоне есть мультисъемка. Решил сделать имя для фото, чтобы действовала и мультисъемка. Взял Filename_DateTime_v27_M3510XEHJ2.asm. Сделал следующее: .equ buff_foto 0x3011AB3F .equ __rt_udiv10 0x2151EEE0 .equ GetCurrentTimeAndDate 0x2161AEB4 .start new_mcc_task_tab+0x00*4 ; функция №00h .word metka0+1 .start 0x216BE51C .mcc mcc_transf 0 0 0 0 metka_mcc2 ; камера (перехват в момент фотки) .start 0x20C2B650 metka_mcc2: .mcc MCC_TASK 0x22 0 .mcc MCC_MULTI_TRACKING 0x20 0x32 0 0 0x216BE59C .mcc MCC_TRANSF 0 0 0 0 0x216BE52C ;------------------------------------------------------- metka0: PUSH {R0-R3} SUB SP, SP, 0x8 MOV R0, SP BL GetCurrentTimeAndDate MOV R2, SP LDR R7, =buff_foto LDRB R0, [R2, 6] ; год ADD R0, #0x30 ; 2008 = 07D8, D8 = 216 а надо 08: 0xD8+0x30=0x108=0x08 MOV R1, #0xFF AND R0, R1 BL write_num LDRB R0, [R2, 5] ; месяц BL write_num LDRB R0, [R2, 4] ; число BL write_num MOV R0, #0x2D ; "-" STRB R0, [R7] ADD R7, 1 LDRB R0, [R2, 2] ; час BL write_num LDRB R0, [R2, 1] ; минута BL write_num MOV R0, 0 ; EOL STRB R0, [R7] B m_exit mov r0, '.' ; дописывает '.jpg',0x0 strb r0, [r7, 0] mov r0, 'j' strb r0, [r7, 1] mov r0, 'p' strb r0, [r7, 2] mov r0, 'g' strb r0, [r7, 3] mov r0, 0 strb r0, [r7, 4] m_exit: ADD SP, SP, 0x8 POP {R0-R3} ADD SP, SP, #0x100 POP {R4-R7,PC} write_num: PUSH {R2,R4,LR} BLX __rt_udiv10 ADD R0, '0' ADD R1, '0' STRB R0, [R7] STRB R1, [R7, 1] ADD R7, 2 POP {R2,R4,PC} .data Имя получилось формата ГГММДД-ЧЧММ-NNNN.jpg. У меня никак не получается здесь прописать год полностью ГГГГММДД-ЧЧММ-NNNN.jpg. Пробовал вставить блок write_num2 из B5722, мобила перезагружается. Не могли бы Вы подсказать, как прописать блок с годом. Заранее благодарю!
  7. Спасибо, получилось сделать имена файлов для диктофона, радио, видеокамеры. А для фотокамеры имя остается прежним. При помощи CGSN определил, что лежит в gv_CameraJpegFileFullPath: 2F652F496D616765732FD0A4D0BED182D0BE2D303030312E6A7067 /e/Images/Фото-0001.jpg (+10 - пропуск пути) в ga_PhotoDefaultName: D0A4D0BED182D0BE00D09400000000000001010000000000002B000200000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000D0A4D0BED182D0BE2D303030362E6A7067 Фото.Д.......+.....Фото-0001.jpg в ga_CameraPhotoFileName: D0A4D0BED182D0BE2D303030372E6A7067 Фото-0001.jpg Далее определил mcc_camera_capture_mode_select: B5722 A9200100020000007C275B2000000000 151D1E00010000000000000000000000 161D010001000100F8494F2000000000 171D010002000100F8494F2000000000 171D0E0001000100F8494F2000000000 161D050001000000384A4F2000000000 1A00000000000000884A4F2000000000 6D63635F63616D6572615F6361707475 mcc_camera_captu 72655F636865636B5F74696D65720000 re_check_timer J210 9F203200000000009CE56B2100000000 18232B000100010024E1A52000000000 1820620001000000BCA4E92000000000 17202B00010000000000000000000000 17200400000000000000000000000000 1B00000000000000A8F61E2000000000 1820040001000000BCE56B2100000000 1C0000000000000058CE612000000000 6D63635F63616D6572615F6361707475 mcc_camera_captu 72655F636865636B5F74696D65720000 re_check_timer B5722 151D4600000000000000000000000000 161D010001000000246A4F2000000000 171D010002000000F4684F2000000000 171D0E0001000000E84B4F2000000000 1800000000000000D84A4F2000000000 190000000000000034514F2000000000 J210 17209400000000000000000000000000 182001000100000090DCA32000000000 192001000200000080DBA32000000000 192001000300000018E6A32000000000 19200C0001000000B8CE612000000000 1A00000000000000847FE92000000000 .equ gs_CameraStatus 0x3011AB18 .equ gv_CameraJpegFileFullPath 0x301415F0 .equ ga_PhotoDefaultName 0x3011AB3F .equ MP 0x22 .equ MPCode 0x12 .equ new_mcc_task_tab 0x20C279D0 .equ strcpy 0x20470F2C .equ strncpy 0x208B267C .equ strlen 0x20470F7C .start 0x2061CE58 ; mcc_camera_capture_mode_select .mcc MCC_TRANSF 0 0 0 0 mcc_set_photo_fullname .start new_mcc_task_tab+4*MPCode .word set_photo_fullname+1 .start 0x20C2B650 mcc_set_photo_fullname: .mcc MCC_TASK MP MPCode .mcc MCC_TASK 0x20 0x94 ; компенсация врезки .mcc MCC_TRANSF 0 0 0 0 0x2061CE58+0x10 set_photo_fullname: ; проверка режима фотокамеры LDR R0, =gs_CameraStatus ; 0,2,3 - единичные кадры, 1 - мультисъёмка LDRB R0, [R0] ;[R0,#0xC] CMP R0, 1 BEQ photo_multi ; если мультисъёмка - то патч пока её не поддерживает, будет старое имя LDR R5, =gv_CameraJpegFileFullPath+10 ; Пишем в начале строки дефолтное имя LDR R1, =ga_PhotoDefaultName BL print_header ; пишем дату BL print_datetime photo_normal_1: ; пишем расширение MOV R1, 'j' STRB R1, [R5, 1] MOV R1, 'p' STRB R1, [R5, 2] MOV R1, 'g' STRB R1, [R5, 3] photo_multi: ADD SP,SP,0x100 POP {R4-R7,PC} print_header: PUSH {LR} MOV R2, 0xB ; максимальный размер дефолтного имени. LDRB R3, [R1] CMP R3, 0 BEQ skip_header ; если дефолтное имя пустое MOV R0, R5 BL strncpy BL strlen ADD R5, R0, R5 MOV R1, '-' STRB R1, [R5] ADD R5, R5, 1 skip_header: POP {PC} print_datetime: PUSH {R0-R4,R6-R7,LR} SUB SP, SP, 0x10 ; Запрос текущего времени MOV R0, SP BL hcl_06GetCurrentTimeAndDate MOV R6, SP LDRH R0, [R6, 6] ; год BL write_num2 LDRB R0, [R6, 5] ; месяц BL write_num1 LDRB R0, [R6, 4] ; число BL write_num1 MOV R0, '-' STRB R0, [R5] ADD R5, R5, 1 LDRB R0, [R6, 2] ; час BL write_num1 LDRB R0, [R6, 1] ; минута BL write_num1 LDRB R0, [R6, 0] ; секунда BL write_num1 MOV R0, '.' ; точка после имени, перед расширением STRB R0, [R5] MOV R1, 'p' ; поскольку у нас обычно расширения mp3/mp4/jpg - общую букву сразу впишем STRB R1, [R5, 2] MOV R0, 0 ; EOL после расширения (расширение впишем потом) STRB R0, [R5, 4] ADD SP, SP, 0x10 POP {R0-R4,R6-R7,PC} write_num1: ; печатает число 00-99 PUSH {LR} BLX __rt_udiv10 ADD R0, 0x30 ; "0" ADD R1, 0x30 ; "0" STRB R0, [R5] STRB R1, [R5, 1] ADD R5, R5, 2 POP {PC} write_num2: ; печатает число 0000-9999 (год, и частоту тюнера) PUSH {LR} BLX __rt_udiv10 ADD R1, 0x30 ; "0" STRB R1, [R5, 3] BLX __rt_udiv10 ADD R1, 0x30 ; "0" STRB R1, [R5, 2] BLX __rt_udiv10 ADD R1, 0x30 ; "0" STRB R1, [R5, 1] ADD R0, 0x30 ; "0" STRB R0, [R5, 0] ADD R5, R5, 4 POP {PC} ;------------------------------------------------------- .data Вроде все правильно сделал.
  8. Подскажите, пожалуйста, как для патча Filename_DateTime определить адрес ga_PhotoDefaultName. В файле Filename_DateTime_v11_B5722XXJK3.asm например для D780XEHE указаны адреса: ; 3005E8A0 - фото - имя для редактирования (сюда можно класть новое имя перед запуском камеры) ; 300C9F2E - фото - промежуточное место - отсюда берётся имя для формирования следующего файла ; 300C9EA0 - фото - тут лежил полное имя (xxxx_0001.jpg) но оно не пишется ; 300CA2D6 - фото - а тут лежит то что пишется (были бы в мобиле секунды - можно было ; бы по OK тут каждый раз подменять имя) Аналог промежуточного места для своей прошивки я нашел по адресу 215D4CF8: ldr r0, =0x3011AB3F, а как определяется "фото - имя для редактирования"?
  9. Делая вторую запись имя файла не меняется и файл перезаписывается. Реально ли сделать, чтобы присваивалось новое имя (например, ...1, ...2)
  10. Нашел адрес для увеличения скрости набора текста в java. Увеличил скорость в 3 раза. Сработало. Однако произошло ускорение всех процессов в java: прокрутка страниц, ускорение хода часов и т.д. Наверное именно поэтому никто не делал этот патч?
  11. Проверил Talker_fn.asm, установив на удержание кнопки. Все работает: женщина приятным голосом сообщает точное время. Однако цель моя не достигнута: нет меню автоматических настроек. Нашел патч-конфигуратор для D780, M3510,E200 где аналогичное меню Время и Дата. А asm (Патч-конфигуратор) на форуме не нашел. Существует ли такой asm? P.S. Вручную smp сделать сложно из-за огромного объема.
  12. В Talker_menu_enter.asm ;fn_menu_in_focus: ; выдрано из cal6_FakeCallFocusTimerDisplay А у меня нет ложного срабатывания, тогда откуда мне выдирать? Спасибо! P.S. Talker_fn.asm я уже сделал.
  13. Хочу сделать себе патч 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)
×
×
  • Create New...