Jump to content
Old Phone Forum

All Activity

This stream auto-updates     

  1. Today
  2. Данные эквиваленты используются в Talker_listen.asm (патч Talker B5722). .equ set03_StopSound 0x21A0C0E8 .equ set03_StopMidiSound 0x21D354C8 .equ set03_StopTimer 0x216A79E8 Не могу понять, где их искать в моей прошивке.
  3. Yesterday
  4. Earlier
  5. Да. Потому что логика формирования порядкового номера работает не всегда как надо в случае изменения имени. В патче на B5722 используются секунды, и для фотокамеры этого хватает (в нормальном режиме невозможно успеть сделать 2 фотки за 1 секунду) так что дополнительные порядковые номера не нужны, а в режиме последовательной серии кадров - поэтому оставлена стандартная схема именования (без патча).
  6. Это был просто пример блока write_num2, конечно же регистры я поменял. Получается, что в B5722 при мультисъемке остаются стандартные имена?
  7. Ну внимательно проверить что там на входе и на выходе в какие регистры… Это же вообще простейшее деление, такое надо самому писать. А если тупо скопировать весь блок оттуда - ну например там цифры пишутся по адресу из R5, а тут по адресу из R7. Ещё тут R2 сохраняется (может где-то выше по коду он был нужен), а там нет (при этом любая системная функция имеет право изменять R0,R1,R2,R3). И вообще патч 2.7 от M3510 гораздо древнее чем 1.7 от B5722. Лучше всё-же на базе B5722 делать, в нём учтён весь старый опыт проблем и ошибок.
  8. В телефоне есть мультисъемка. Решил сделать имя для фото, чтобы действовала и мультисъемка. Взял 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, мобила перезагружается. Не могли бы Вы подсказать, как прописать блок с годом. Заранее благодарю!
  9. Замена экранов на iPhone iPhone 5/5S Легко отремонтировать самостоятельно. Основные проблемы связаны с демонтажем кнопки, поскольку крепления со штекером достаточно хрупкие. Стекло меняется при помощи фена (паяльной станции). iPhone 6/6S Несложно разбирается, но имеет высокий риск повреждения статическим электричеством. Шлейф более тонкий, чем у предыдущих моделей. Фронтальная камера прикрепляется на двухсторонний скотч. Менять стекло нужно только с помощью фена. iPhone 7/8/7+/8+ Плохо поддаются самостоятельному ремонту. Шлейфы приклеены к корпусу. Неродные дисплеи отторгаются проверкой в iOS. На iPhone 8 есть ещё и система защиты в виде аппаратного чипа, поэтому использовать неродной дисплей невозможно. iPhone X/XS/XR/11 Основные сложности заключаются в поломке Face ID и Touch ID. Можно приобрести не родной дисплей на поздней прошивке без гарантии, чтобы обойти ограничения прежних версий iPhone. Модуль нового дисплея должен соответствовать сканеру отпечатков. Для прошивки чипа серийным номером нового дисплея нужно будет всё равно обратиться в сервис. Инструкции по замене дисплеев можно поискать на YouTube. Желательно внимательно пересмотреть несколько видеоинструкций, есть много тонкостей которые не все авторы указывают (как например, немного разная длинна винтиков и последующее вкручивание винтиков не на свои места приводит к повреждению платы). Замена стекла должна производиться в абсолютно чистом и не пыльном помещении, чтобы на детали смартфона не попадала пыль. Чем более новая модель iPhone - тем сложнее её ремонтировать в домашних условиях. Для разборки корпуса современных моделей iPhone понадобится подогреваемая платформа, хотя некоторые пробуют это делать феном от паяльной станции. Так-же понадобятся специальные отвёртки, присоски и пластиковые стамески (для вскрытия корпуса). Экран крепится клеем (он размягчается феном) и скрытыми пластиковыми защёлками. И, если вы понимаете всю сложность этого, то лучше сразу обращаться в сервисный центр. При самостоятельном ремонте высокий риск повредить аппарат статикой или порвать мелкие шлейфы внутри телефона. Магазин запчастей и мастерская Art-GSM Большой выбор запчастей для смартфонов и iPhone, например вот можно купить оригинальный дисплей на Айфон или Айпад любых моделей. Так же магазине есть много запчастей для Самсунгов - тачскрины и многое другое.
  10. Ну надо контрольные точки вставлять (функции, которые куда-то во временно неиспользуемое место ОЗУ, например какой-нибудь буфер имени, будут писать байты о прохождении). В принципе подозреваю если всё остальное правильно и функция подмены имени фотокамеры вызывается - то надо смотреть условие мультисъёмки, может там не в gs_CameraStatus+0 оно или вообще другие значения или там просто нет мультисъёмки.
  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. Аккумулятору лет 6-8 наверняка, даже если им не пользовались он сильно деградировал за эти годы.
  13. Здравствуйте. Имеется телефон Samsung GT S5610 (подогнали коллеги), решил оставить себе как звонилку. Делаю на аппарате общий сброс, вставляю сим карту а заодно и новый аккумулятор (лежал новый оригинальный) Телефон работает звонит фотографирует, но заряд батареи утекает на глазах, т.е по видимому гдето подкорачивает. Ни кто не сталкивался с подобным явлением? Где может замыкать,в какой части платы копать или не стоит заморачиваться? Но телефон хотелось бы восстановить.
  14. актуальная версия v17 адреса D780 - не совсем правильный алгоритм (тогда ещё не было sym), см. имена используемых адресов в B5722, и надо искать их аналоги. gv_CameraJpegFileFullPath надо. Смотрим в B5722 все ссылки на адрес 3026484A, находим место где есть трассировки (например camera3_CreateMultishotFile). Находим в J210 текст трассировки (camera3_CreateMultishotFile), находим откуда он вызывается и находим эту функцию (2095B998 camera3_CreateMultishotFile) Разбираем логику по sym-именам с B5722, подписываем имена в J210 (внимательно проверяя аргументы, например у одного snprintf, а у другого там sprintf). B5722XXJK3 21C5722E: MOV R0, 0 21C57230: STRB R0, [R4, #0x7] 21C57232: LDR R0, =0x00000A3E 21C57234: LDR R1, =v_upv_LineNumber 21C57236: STR R0, [R1] 21C57238: LDR R1, =0x204FC594 21C5723A: MOV R0, #0xFF 21C5723C: ADD R1, #0xC ; 0x204FC5A0 = camera3_CreateMultishotFile : gv_CameraJpegFileFullPath = %s 21C5723E: ADD R0, 1 21C57240: LDR R2, =gv_CameraJpegFileFullPath 21C57242: BL multi2_100SpvTrace Смотрим аналогичный код в J210XEHG1 2095BA82: MOV R0, 0 2095BA84: STRB R0, [R4, 7] 2095BA86: LDR R0, =0x00001889 2095BA88: LDR R1, =v_upv_LineNumber 2095BA8A: ADD R0, #0x1C 2095BA8C: STR R0, [R1] 2095BA8E: LDR R1, =0x212C4924 2095BA90: MOV R3, R6 ;R3 = R6 = gv_CameraThumbFileFullPath 2095BA92: MOV R2, R7 ;R2 = R7 = gv_CameraJpegFileFullPath 2095BA94: MOV R0, #0xFF 2095BA96: ADD R1, #0x84 ; 0x212C49A8 = gv_CameraJpegFileFullPath:::%s, gv_CameraThumbFileFullPath:::%s 2095BA98: ADD R0, 1 2095BA9A: BL multi2_100SpvTrace Ищем где формируется R7 2095BA2C: MOV R3, 1 2095BA2E: LDR R6, =0x301419F0 ; gv_CameraThumbFileFullPath 2095BA30: LSL R7, R3, #10 ;R7 = R3 << 10 = 0x400 (1024) 2095BA32: SUB R7, R6, R7 ;R7 = R6 - R7 = 0x301415F0 = gv_CameraJpegFileFullPath Потом при помощи CGSN смотреть в ОЗУ что в gv_CameraJpegFileFullPath лежит и как. Вероятно, там базовый оффсет будет другим (не «/x/Images/My photos/»). ga_PhotoDefaultName там же аналогично B5722 21C571EE: LDRH R0, [R0, #2] 21C571F0: LDR R3, =ga_PhotoDefaultName 21C571F2: ADD R2, R0, R1 21C571F4: SUB R2, 1 21C571F6: STR R2, [SP] 21C571F8: LDR R2, =0x204FC594 ; %s-%04d.jpg 21C571FA: MOV R1, #0x34 21C571FC: LDR R0, =ga_CameraPhotoFileName 21C571FE: BL _snprintf J210 2095B9C8: LDR R7, =0x3011AB18 2095B9D6: LDR R0, =0x3012DF90 2095B9D8: MOV R2, R7 2095B9DA: LDRH R0, [R0, #0] 2095B9DC: ADD R2, #0x27 ;R2 = R2 + 39 = 0x3011AB3F = ga_PhotoDefaultName 2095B9DE: LDR R1, =0x212C39D4 ; %s-%04d.jpg 2095B9E0: ADD R3, R0, R6 2095B9E2: SUB R3, 1 2095B9E4: MOV R0, R5 ;R0 = R5 = 0x3011ABA4 = ga_CameraPhotoFileName 2095B9E6: BL _sprintf
  15. Подскажите, пожалуйста, как для патча Filename_DateTime определить адрес ga_PhotoDefaultName. В файле Filename_DateTime_v11_B5722XXJK3.asm например для D780XEHE указаны адреса: ; 3005E8A0 - фото - имя для редактирования (сюда можно класть новое имя перед запуском камеры) ; 300C9F2E - фото - промежуточное место - отсюда берётся имя для формирования следующего файла ; 300C9EA0 - фото - тут лежил полное имя (xxxx_0001.jpg) но оно не пишется ; 300CA2D6 - фото - а тут лежит то что пишется (были бы в мобиле секунды - можно было ; бы по OK тут каждый раз подменять имя) Аналог промежуточного места для своей прошивки я нашел по адресу 215D4CF8: ldr r0, =0x3011AB3F, а как определяется "фото - имя для редактирования"?
  16. А зачем его прошивать? Наверно стоит смотреть инструкцию от S5610 - там более хорошая инструкция, а платформа такая же. Прошивочный режим всего 2-3 секунды открыт, надо успеть начать установку за это время. См. инструкцию S5610 - https://oldph.one/index.php?showtopic=46436 Ну какие-то из версий 2.6 или 2.5 должны работать с ним.
  17. Привет форумчане! У меня беда - никак не могу прошиться( всё делаю по инструкции - модель выбрал, файлы прошивки закинул - пусто( Драйвера Sunstone отказываются запускаться (Ибо Win 10) Дрова поставил из сборника - не помогло (Поставились обычные. Для прошивки - ничего не встало) Киес 2.0 - говорит что мобила старая. Киес 1.5 - просто зависает (Смена подключения к пк в настройках ничего не меняет) что делать?
  18. и где сейчас та супер-прошивка? - из этого поста: https://oldph.one/topic/23875-vse-o-samsung-sgh-x210/?do=findComment&comment=336391
  19. Это отладочная инженерная функция (и вероятно имеющая проблемы с bluetooth, спикерфоном и т.п.), а не скрытая запись для пользователей. Всё реально. Однако зачем именно скрытая запись нужна - не понятно (и не законно). Патчи автозаписи разговоров вроде были на B5722 - можно оттуда перенести нормальную запись (на C3322 - механизм записи кардинально другой).
  20. Делая вторую запись имя файла не меняется и файл перезаписывается. Реально ли сделать, чтобы присваивалось новое имя (например, ...1, ...2)
  21. Ну просто наверно надо более сложный патч, не просто поправить 1 константу, а добавить несколько проверок где используется эта константа.
  22. Нашел адрес для увеличения скрости набора текста в java. Увеличил скорость в 3 раза. Сработало. Однако произошло ускорение всех процессов в java: прокрутка страниц, ускорение хода часов и т.д. Наверное именно поэтому никто не делал этот патч?
  23. Ну, если еще есть желание - давайте попробуем разобраться. Сам припомню )). Что конкретно непонятно?
  24. Fedot, повозился с SwiftThmEditor - ничего не понял. Но все равно спасибо большое.
  25. Alisher - если еще актуально (может, разобрались уже). Designer - для иконок меню и часов. А прозрачность фонов и цветов меню настраивается программой от f2065 - SwiftThmEditor-1, куда загружается файл Default-3 (или 1,2).thm. За прозрачность фонов меню отвечают пп. 1,5,7,9,12,42,44. При этом необходимо, чтобы прозрачность п.12 была всегда меньше (хоть на один пункт) прозрачности центрального заднего фона (п.1). Возможно, такое же правило - для п.42. Если выставить прозрачность максимально одинаково, такой "thm" не дает установить тему, тел-н перегружается.
  26. Надо брать патч с B5722 (или C3322/S5610 - но они сильнее отличаются). Там и меню настроек своё собственное, и функций у говорящих часов больше (есть возможность предварительных сигналов).
  27. Проверил Talker_fn.asm, установив на удержание кнопки. Все работает: женщина приятным голосом сообщает точное время. Однако цель моя не достигнута: нет меню автоматических настроек. Нашел патч-конфигуратор для D780, M3510,E200 где аналогичное меню Время и Дата. А asm (Патч-конфигуратор) на форуме не нашел. Существует ли такой asm? P.S. Вручную smp сделать сложно из-за огромного объема.
  28. В Talker_menu_enter.asm ;fn_menu_in_focus: ; выдрано из cal6_FakeCallFocusTimerDisplay А у меня нет ложного срабатывания, тогда откуда мне выдирать? Спасибо! P.S. Talker_fn.asm я уже сделал.
  1. Load more activity


×
×
  • Create New...