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

bugbug

SGH Open Club
  • Постов

    113
  • Зарегистрирован

  • Посещение

  • Победитель дней

    3

Весь контент bugbug

  1. Проблема была, скорее всего, в многократных прошивках, теперь она самоустранилась Добавил в 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. Чем можно заменить ее?
  2. Говорящие часы: обнаружилось несколько проблем, хотелось бы узнать есть ли они на вашем телефоне? 1. Если автопроизношение или ручной режим задействуется во время входящего звонка (до поднятия трубки или во время разговора), то звук динамика пропадает и собеседника не слышно. Однако если в телефоне был установлен бесшумный режим, такой проблемы не возникает. 2. Громкость предварительного звука (7) достаточно большая, на улице слышно при любом шуме. Голос (14) практически не слышно на улице нигде. Пробовал увеличить громкость специальной программой, но появляются большие шумы. 3. Для ручного режима предусмотрена функция произнесения времени при заблокированной клавиатуре и незаблокированной одновременно. Но почему-то не было сделано отдельно при заблокированной и при незаблокированной (два чекбокса). Моя проблема связана с тем, что все клавиши где-либо уже задействованы: если удерживать фото (то запускается камера, а однократное нажатие - снимок), если однократно фото при включенной опции ScreenShot - скриншот.
  3. Там где используются переходы BL add_volume заменил кодом, похожим на "спинбокс выбора звука предшествующего сигнала" с незначительными изменениями. Теперь звук сохраняется. Однако при компиляции появляется: Не удалось разместить данные gv_ImageTitleIconStart. Попробуйте использовать тег .data ближе. Из-за чего это происходит?
  4. 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} Сделал громкость с помощью цифр, громкость меняется, но не сохраняется при выходе. Где-то я пропустил что-то важное :-)
  5. Java-приложения у меня никогда не запрашивали сертификаты. Вопрос о сертификатах при входе в интернет через стандартный браузер. При входе https://google.com выскакивает сообщение: "Ошибка защиты: не имеющий доверия сертификат сервера". Файл _main.ks имеет отношение к этой проблеме?
  6. В файловой системе есть файл _main.ks. Как я понял здесь хранятся сертификаты для java браузера, а не для встроенного браузера (в прошивке есть свои сертификаты) . В теме "Все о Samsung Sgh-e200/e200b" говорилось о том, как его прочитать. А как его редактировать и нужно ли :-) ? Посмотрел прошивку B5722, там кроме _main.ks есть еще папка java_Cert.
  7. Нашел адреса emctr1_32SemEmailIntervalTimer: 0x2055231C и emctr1_33SemEmailIntervalProcess: 0x20DE4110. Поменял часы на минуты (0x000BDD80 на 0x000032A0). И все получилось. Спасибо!
  8. Хочу изменить интервал получения e-mail сообщений (у меня 1 час, 3 часа, 6 часов, 12 часов, а хотелось бы установить в минутах). На сайте не нашел такого патча. На какой-то мобиле (видел где-то на сайте) был уже предустановлен интервал в 15 мин. и т.д. В патче Изменение времени работы подсветки, чтобы найти время его достаточно было перевести в милисекунды, а здесь переводил и не нашел. Видимо здесь другой алгоритм.
  9. В телефоне все время отстают часы. Корректируется ли ход часов патчем? В Палихе, например, есть корректировка часов.
  10. Нижеприведенный код используется в 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
  11. Данные эквиваленты используются в Talker_listen.asm (патч Talker B5722). .equ set03_StopSound 0x21A0C0E8 .equ set03_StopMidiSound 0x21D354C8 .equ set03_StopTimer 0x216A79E8 Не могу понять, где их искать в моей прошивке.
  12. Это был просто пример блока write_num2, конечно же регистры я поменял. Получается, что в B5722 при мультисъемке остаются стандартные имена?
  13. В телефоне есть мультисъемка. Решил сделать имя для фото, чтобы действовала и мультисъемка. Взял 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, мобила перезагружается. Не могли бы Вы подсказать, как прописать блок с годом. Заранее благодарю!
  14. Спасибо, получилось сделать имена файлов для диктофона, радио, видеокамеры. А для фотокамеры имя остается прежним. При помощи 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 Вроде все правильно сделал.
  15. Подскажите, пожалуйста, как для патча Filename_DateTime определить адрес ga_PhotoDefaultName. В файле Filename_DateTime_v11_B5722XXJK3.asm например для D780XEHE указаны адреса: ; 3005E8A0 - фото - имя для редактирования (сюда можно класть новое имя перед запуском камеры) ; 300C9F2E - фото - промежуточное место - отсюда берётся имя для формирования следующего файла ; 300C9EA0 - фото - тут лежил полное имя (xxxx_0001.jpg) но оно не пишется ; 300CA2D6 - фото - а тут лежит то что пишется (были бы в мобиле секунды - можно было ; бы по OK тут каждый раз подменять имя) Аналог промежуточного места для своей прошивки я нашел по адресу 215D4CF8: ldr r0, =0x3011AB3F, а как определяется "фото - имя для редактирования"?
  16. Делая вторую запись имя файла не меняется и файл перезаписывается. Реально ли сделать, чтобы присваивалось новое имя (например, ...1, ...2)
  17. Нашел адрес для увеличения скрости набора текста в java. Увеличил скорость в 3 раза. Сработало. Однако произошло ускорение всех процессов в java: прокрутка страниц, ускорение хода часов и т.д. Наверное именно поэтому никто не делал этот патч?
  18. Проверил Talker_fn.asm, установив на удержание кнопки. Все работает: женщина приятным голосом сообщает точное время. Однако цель моя не достигнута: нет меню автоматических настроек. Нашел патч-конфигуратор для D780, M3510,E200 где аналогичное меню Время и Дата. А asm (Патч-конфигуратор) на форуме не нашел. Существует ли такой asm? P.S. Вручную smp сделать сложно из-за огромного объема.
  19. В Talker_menu_enter.asm ;fn_menu_in_focus: ; выдрано из cal6_FakeCallFocusTimerDisplay А у меня нет ложного срабатывания, тогда откуда мне выдирать? Спасибо! P.S. Talker_fn.asm я уже сделал.
  20. Хочу сделать себе патч 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)
  21. Подскажите, пожалуйста, как найти адрес компенсированного перехода в Binedit. Вставляю адрес, который нужно найти, в строку поиска, нажимаю A с лупой, выводится все адреса, кроме компенсированных.
  22. Файл С3322XWKL1.sym шел вместе с прошивкой? Функция music8_SetNoActionTimeFlag уже была в sym или Вы ее туда добавили? Сравнивал файл С3322XWKL1.sym c D880JPHH1_Master_original.sym и не нашел похожей функции.
  23. Почему я именно этот код выделил, так как удивился схожести. В С3322 ldr r0,=0x914E5F3C и в J210 ldr r0,=0x212FBC9C(mcc_mplib_T_bgm_event_after_player_on_pause) и ldr r0,=0x914E5FDC и ldr r0,=0x20652B54 (mcc_mplib_T_bgm_event_after_player_on_stop). Только в С3322 есть переход на нужный адрес 90BBCB50, а в моем коде - нет. Я уже использовал ранее трассировку для поиска эквивалентов. У меня до этого получилось сделать так, что при нажатии паузы в плеере и выходе потом в фон плеер не сбрасывался и продолжал потом играть с паузы.
×
×
  • Создать...