Jump to content
Old Phone Forum

bugbug

SGH Open Club
  • Content Count

    106
  • Joined

  • Last visited

  • Days Won

    3

bugbug last won the day on November 15

bugbug had the most liked content!

Community Reputation

3 Обычный

About bugbug

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

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

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

Информация

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

Recent Profile Visitors

178 profile views
  1. Данные эквиваленты используются в Talker_listen.asm (патч Talker B5722). .equ set03_StopSound 0x21A0C0E8 .equ set03_StopMidiSound 0x21D354C8 .equ set03_StopTimer 0x216A79E8 Не могу понять, где их искать в моей прошивке.
  2. Это был просто пример блока write_num2, конечно же регистры я поменял. Получается, что в B5722 при мультисъемке остаются стандартные имена?
  3. В телефоне есть мультисъемка. Решил сделать имя для фото, чтобы действовала и мультисъемка. Взял 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, мобила перезагружается. Не могли бы Вы подсказать, как прописать блок с годом. Заранее благодарю!
  4. Спасибо, получилось сделать имена файлов для диктофона, радио, видеокамеры. А для фотокамеры имя остается прежним. При помощи 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 Вроде все правильно сделал.
  5. Подскажите, пожалуйста, как для патча Filename_DateTime определить адрес ga_PhotoDefaultName. В файле Filename_DateTime_v11_B5722XXJK3.asm например для D780XEHE указаны адреса: ; 3005E8A0 - фото - имя для редактирования (сюда можно класть новое имя перед запуском камеры) ; 300C9F2E - фото - промежуточное место - отсюда берётся имя для формирования следующего файла ; 300C9EA0 - фото - тут лежил полное имя (xxxx_0001.jpg) но оно не пишется ; 300CA2D6 - фото - а тут лежит то что пишется (были бы в мобиле секунды - можно было ; бы по OK тут каждый раз подменять имя) Аналог промежуточного места для своей прошивки я нашел по адресу 215D4CF8: ldr r0, =0x3011AB3F, а как определяется "фото - имя для редактирования"?
  6. Делая вторую запись имя файла не меняется и файл перезаписывается. Реально ли сделать, чтобы присваивалось новое имя (например, ...1, ...2)
  7. Нашел адрес для увеличения скрости набора текста в java. Увеличил скорость в 3 раза. Сработало. Однако произошло ускорение всех процессов в java: прокрутка страниц, ускорение хода часов и т.д. Наверное именно поэтому никто не делал этот патч?
  8. Проверил Talker_fn.asm, установив на удержание кнопки. Все работает: женщина приятным голосом сообщает точное время. Однако цель моя не достигнута: нет меню автоматических настроек. Нашел патч-конфигуратор для D780, M3510,E200 где аналогичное меню Время и Дата. А asm (Патч-конфигуратор) на форуме не нашел. Существует ли такой asm? P.S. Вручную smp сделать сложно из-за огромного объема.
  9. В Talker_menu_enter.asm ;fn_menu_in_focus: ; выдрано из cal6_FakeCallFocusTimerDisplay А у меня нет ложного срабатывания, тогда откуда мне выдирать? Спасибо! P.S. Talker_fn.asm я уже сделал.
  10. Хочу сделать себе патч 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)
  11. Подскажите, пожалуйста, как найти адрес компенсированного перехода в Binedit. Вставляю адрес, который нужно найти, в строку поиска, нажимаю A с лупой, выводится все адреса, кроме компенсированных.
  12. Файл С3322XWKL1.sym шел вместе с прошивкой? Функция music8_SetNoActionTimeFlag уже была в sym или Вы ее туда добавили? Сравнивал файл С3322XWKL1.sym c D880JPHH1_Master_original.sym и не нашел похожей функции.
  13. Почему я именно этот код выделил, так как удивился схожести. В С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, а в моем коде - нет. Я уже использовал ранее трассировку для поиска эквивалентов. У меня до этого получилось сделать так, что при нажатии паузы в плеере и выходе потом в фон плеер не сбрасывался и продолжал потом играть с паузы.
  14. В прошивке C3322XWKL1 нашел этот код: 90AFDF14: 3979 LDRB R1, [R7, #0x4] 90AFDF16: 4029 CMP R1, #0x40 90AFDF18: 3AD1 BNE loc_90AFDF90 90AFDF1A: 0128 CMP R0, #0x1 90AFDF1C: 01D0 BEQ loc_90AFDF22 90AFDF1E: 0328 CMP R0, #0x3 90AFDF20: 36D1 BNE loc_90AFDF90 loc_90AFDF22: 90AFDF22: 002C CMP R4, #0x0 90AFDF24: 01D0 BEQ loc_90AFDF2A 90AFDF26: 022C CMP R4, #0x2 90AFDF28: 32D1 BNE loc_90AFDF90 loc_90AFDF2A: 90AFDF2A: 022C CMP R4, #0x2 90AFDF2C: 02D1 BNE loc_90AFDF34 90AFDF2E: 0120 MOV R0, #0x1 90AFDF30: BEF00EFE BL off_90BBCB50 В своей прошивке почти идентичный код: 20E28D2A: 402B CMP R3, #0x40 20E28D2C: 2AD1 BNE loc_20E28D84 20E28D2E: 0128 CMP R0, #0x1 20E28D30: 01D0 BEQ loc_20E28D36 20E28D32: 0328 CMP R0, #0x3 20E28D34: 31D1 BNE loc_20E28D9A loc_20E28D36: 20E28D36: 002D CMP R5, #0x0 20E28D38: 01D0 BEQ loc_20E28D3E 20E28D3A: 022D CMP R5, #0x2 20E28D3C: 2DD1 BNE loc_20E28D9A loc_20E28D3E: 20E28D3E: 1078 LDRB R0, [R2] 20E28D40: 0128 CMP R0, #0x1 20E28D42: 01D1 BNE loc_20E28D48 20E28D44: 081C MOV R0, R1 20E28D46: B7E7 B loc_20E28CB8 По переходу 20E28CB8: 20E28CB8: 05B0 ADD SP, SP, #0x14 20E28CBA: F0BD POP {R4-R7,PC} loc_20E28CBC: 20E28CBC: F4F6A4EA BL _off_209D67F8 20E28CC0: 0128 CMP R0, #0x1 20E28CC2: 01D1 BNE loc_20E28CC8 20E28CC4: 201C MOV R0, R4 20E28CC6: F7E7 B loc_20E28CB8 Посмотрел адрес 209D67F8 209D67F8: 0248 LDR R0, =0x3015F540 209D67FA: 0349 LDR R1, =0x00003090 209D67FC: 4018 ADD R0, R0, R1 209D67FE: 407B LDRB R0, [R0, #0xD] 209D6800: 7047 BX LR 209D6802: 0000 NOP 209D6804: 40F51530 DCD 0x3015F540 209D6808: 90300000 DCD 0x00003090 Правильно ли я копаю?
×
×
  • Create New...