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

bugbug

SGH Open Club
  • Постов

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

  • Посещение

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

    3

Сообщения, опубликованные bugbug

  1. 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. Чем можно заменить ее?

     

     

     

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

  8. Нижеприведенный код используется в 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

  9. Данные эквиваленты используются в Talker_listen.asm (патч Talker B5722).

    .equ set03_StopSound 0x21A0C0E8
    .equ set03_StopMidiSound 0x21D354C8
    .equ set03_StopTimer 0x216A79E8

    Не могу понять, где их искать в моей прошивке.

  10. В телефоне есть мультисъемка. Решил сделать имя для фото, чтобы действовала и мультисъемка. Взял 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, мобила перезагружается. Не могли бы Вы подсказать, как прописать блок с годом. Заранее благодарю!

  11. Спасибо, получилось сделать имена файлов для диктофона, радио,  видеокамеры. А для фотокамеры имя остается прежним.

    При помощи 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

    Вроде все правильно сделал.

  12. Подскажите, пожалуйста, как для патча Filename_DateTime определить адрес ga_PhotoDefaultName. 

    В файле Filename_DateTime_v11_B5722XXJK3.asm например для D780XEHE  указаны адреса:

    ; 3005E8A0 - фото - имя для редактирования (сюда можно класть новое имя перед запуском камеры)
    ;  300C9F2E - фото - промежуточное место - отсюда берётся имя для формирования следующего файла
    ;  300C9EA0 - фото - тут лежил полное имя (xxxx_0001.jpg) но оно не пишется
    ;  300CA2D6 - фото - а тут лежит то что пишется (были бы в мобиле секунды - можно было
    ;                       бы по OK тут каждый раз подменять имя)

    Аналог промежуточного места для своей прошивки я нашел по адресу 215D4CF8:  ldr r0, =0x3011AB3F, а как определяется "фото - имя для редактирования"?

     

  13. Нашел адрес для увеличения скрости набора текста в java. Увеличил скорость в 3 раза. Сработало. Однако произошло ускорение всех процессов в java: прокрутка страниц, ускорение хода часов и т.д. Наверное именно поэтому никто не делал этот патч?

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

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

  15. Хочу сделать себе патч 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)
     

     

  16. Подскажите, пожалуйста, как найти адрес компенсированного перехода в Binedit. Вставляю адрес, который нужно найти,  в строку поиска, нажимаю A с лупой, выводится все адреса, кроме компенсированных. 

  17. Почему я именно этот код выделил, так как удивился схожести. В С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, а в моем коде - нет. Я уже использовал ранее трассировку для поиска эквивалентов. У меня до этого получилось сделать так, что при нажатии паузы в плеере и выходе потом в фон плеер не сбрасывался и продолжал потом играть с паузы.

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