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

    Вы сейчас не залогинены на форуме.

    Для возможности комментариев, загрузки файлов, подписок на ответы - вам надо войти.

Всё о Samsung Sgh-j210


Рекомендуемые сообщения

Надо делать asm, и заново компилировать.

Там ещё надо учесть что одни и те же функции в разных прошивках имеют разные коды аргументов. Надо сравнивать с какими R0…R3,[sP…SPn] вызываются аналогичные BL в обоих прошивках.

 

У него ещё таблица есть - My_Lang_Tab, и у тебя её адрес неправильный.

Большое спасибо за быстрые и полезные ответы! Буду разбираться.

Ссылка на комментарий
Поделиться на другие сайты

Не могу точно установить, какой кусок кода относится к исправлению появления артефактов.

Нашёл у себя в древней переписке:

на 780 была проблема - после восстановления подсветки в яве - экран явы был с мусором.

там я так проблему решил: я там отсылаю сканкод красной кнопки а потом имитирую отмену её нажатия.

 

 

Для начала проверь получится ли нужный эффект вручную, ну и если да - то делай в патче

 

Хотя сейчас я бы не имитировал бы клавиатуру, а отследил бы нужные функции и вставил бы. Но тогда я ничего толком не понимал в этой платформе. На J210 лучше переносить мои патчи с B5722 (там уже гораздо более качественный код я писал), а не с D780/D880.

Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com

Ссылка на комментарий
Поделиться на другие сайты

Нашёл у себя в древней переписке:

на 780 была проблема - после восстановления подсветки в яве - экран явы был с мусором.

там я так проблему решил: я там отсылаю сканкод красной кнопки а потом имитирую отмену её нажатия.

 

 

Для начала проверь получится ли нужный эффект вручную, ну и если да - то делай в патче

 

Хотя сейчас я бы не имитировал бы клавиатуру, а отследил бы нужные функции и вставил бы. Но тогда я ничего толком не понимал в этой платформе. На J210 лучше переносить мои патчи с B5722 (там уже гораздо более качественный код я писал), а не с D780/D880.

Да, кнопка вкл/выкл работает. На B5722 не нашел подсветки, но попробую сначала сравнить прошивки и найти эквиваленты.

Ссылка на комментарий
Поделиться на другие сайты

На B5722 не нашел подсветки

Ну потому что я это делал в рамках патчей сворачивания явы. Для D880 это отдельно из патча сворачивания на D780 кто-то вытащил.

 

Опытным путем выяснил, что телефон J210 поддерживает карты памяти объемом 64 Гб

Не факт. Вероятно там просто не думали о таких размерах и не учли переполнение. Ява-система на Swift даже у новых моделей вообще оперирует 32битным знаковым(!) размером места и файлов. Из-за чего на флешках более 2гб есть несколько известных коллизий с потерей файлов. Диктофон/камера тоже аналогично.

Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com

Ссылка на комментарий
Поделиться на другие сайты

Ну потому что я это делал в рамках патчей сворачивания явы. Для D880 это отдельно из патча сворачивания на D780 кто-то вытащил.

Большое спасибо!

Ссылка на комментарий
Поделиться на другие сайты

Доработал патч "Подсветка в Java". Сделал меню Настройки-Подсветка-Постоянная подсветка в Java - Включено/Выключено. В состоянии Выключено подсветка гаснет, но при активации все равно появляется заставка Java Powered, а потом артефакты от нее. При выходе из приложения подсветка гаснет нормально (без необходимости нажатия красной кнопки). Кто-нибудь может посмотреть, где сделана ошибка?

Подсветка_в_JAVA v2.1_J210_test.7z

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

Есть ли возможность портировать на данный телефон патч "Переключение языка ввода в Java"? Например, для C5212XEIB5 есть патч "Fast_Swithing_Language_Input_v37". 

Ссылка на комментарий
Поделиться на другие сайты

Есть ли возможность портировать на данный телефон патч "Переключение языка ввода в Java"? Например, для C5212XEIB5 есть патч "Fast_Swithing_Language_Input_v37".

Ну по идее можно (лично у меня нет мотивации и времени заниматься совсем неактуальной моделью). Исходники патча выложены, там даже есть комментарии.

Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com

Ссылка на комментарий
Поделиться на другие сайты

Выкладываю сделанные мною для телефона J210 asm "Быстрое переключение языка ввода" и "Перехват кнопок в JAVA" на примере C5212XEIB5. В результате язык переключается клавишей "фото" (действует короткое, длинное нажатие, удержание) везде, кроме Java. А именно из-за Java весь сыр-бор!

Fast_Switching_Language_Input_v37_J210.7z

HookKeys_In_Java_J210.7z

Ссылка на комментарий
Поделиться на другие сайты

везде, кроме Java. А именно из-за Java весь сыр-бор!

Делай какой-то контрольный маркер по всей процедуре в яве… Чтобы понять - может вообще в яве не отрабатывает кнопка, а может сама функция переключения языка выполняется но не срабатывает…

 

Если там есть CGSN-патч (чтобы читать в реалтайме ОЗУ мобилы) - то можно где-то в пустое место записывать прогресс выполнения

например на обработке кнопки

LDR R3, =memory

MOV R2, 1

STRB R2, [R3]

потом на вызове переключения

LDR R3, =memory

MOV R2, 2

STRB R2, [R3]

и т.д.

Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com

Ссылка на комментарий
Поделиться на другие сайты

Если там есть CGSN-патч (чтобы читать в реалтайме ОЗУ мобилы) - то можно где-то в пустое место записывать прогресс выполнения

например на обработке кнопки

LDR R3, =memory

MOV R2, 1

STRB R2, [R3]

потом на вызове переключения

LDR R3, =memory

MOV R2, 2

STRB R2, [R3]

и т.д.

CGSN использовал только для нахождения адресов пунктов всплывающего меню (AT+CGSN=3). У себя не могу определить эквивалент  .equ CfgFile (для G600 - 0x30070000).  Я не программист, поэтому мне сложно понять тонкости вашего профессионального ответа. Я просто брал другие прошивки (D880,E740,G600) и сравнивал патчи. А патч "Переключение языка в java" стали делать только для более поздних моделей и менее схожих с J210. Понимаю, что без наличия самого телефона создание патча процесс очень сложный и дорогостоящий для клиента. Премного благодарен, что Вы уделяете много внимания и времени всем пользователям данного сайта, в том числе такому ламеру как я! 

Ссылка на комментарий
Поделиться на другие сайты

Наконец-то я завершил работу над исправлением патча "Подсветка в Java"  и выкладываю финальную полностью протестированную версию. В данной версии отсутствуют какие-либо артефакты (спасибо f2065 за код).

Подсветка_в_JAVA_v2.0.7z

  • Like 1
Ссылка на комментарий
Поделиться на другие сайты

Сделал asm для скриншотов в java-приложениях по нажатию кнопки "Фото". Все работает. Это я делал для того, чтобы выяснить, можно ли при нажатии кнопки в java что-то менять. До этого я делал патч  Fast_Switching_Language_Input_v37_J210.7z, в котором кнопка "Фото" почему-то не срабатывала. Может я упустил какую-то важную деталь?

JavaScreenShot_J210.7z

Ссылка на комментарий
Поделиться на другие сайты

Раз уж я сделал патч Скриншоты в Java, меня заинтересовала реализованная Вами возможность конвертации полученных снимков из raw в bmp (B5722XXJK3). Нашел эквиваленты (Rtk50_11GetDynMemory 0x211372C0, RtkReleaseMemory 0x211372A0, _rt_memcpy 0x208B25C8, vScreenMem 0x302FA620, gfs10_1CrtFile 0x20E19C80 (? в J210 экв. называется mmigfs3utility). Не уверен правильно ли я определил эквивалент 0x2197B5FA в прошивке B5722XXJK3 - 0x2015FC38 в J210XEHG1. Регистрацию файла в DB убрал, так как TFS в телефоне и так обновляется. Еще сложность в определении параметров BmpHeader  (biXPelsPerMeter,biYPelsPerMeter) для разрешения 176x220.

Ссылка на комментарий
Поделиться на другие сайты

Еще сложность в определении параметров BmpHeader  (biXPelsPerMeter,biYPelsPerMeter) для разрешения 176x220.

Там указывается кол-во точек на 1 метр (если бы условно экран бы в несколько тысяч пикселей чтобы занимать метр).

Надо точно измерить ширину и высоту реальной области дисплея (в идеале - разобрав корпус, чтобы стекло не мешалось).

XPelsPerMeter = разрешение_по_ширине / ширина_экрана_в_мм * 1000

YPelsPerMeter = разрешение_по_высоте / высота_экрана_в_мм * 1000

 

Вообще это не критичный параметр, можно и 0 указать. Но, если указать правильно - то например фоторедакторы при выводе на печать по умолчанию будут делать картинку именно такого размера как экран телефона.

Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com

Ссылка на комментарий
Поделиться на другие сайты

Определил, что:

gfs10_1CrtFile = mmigfs1_0CreateFile адрес тогда не 0x20E19C80, а 0x20593338;

gfs30_24CptScr = mmigfs3_33LCDDump адрес 0x20E19C80.

К сожалению, по адресу 0x2197B5FA (B5722) так и не удалось найти эквивалент. Проверял адреса  0x216ACE02  и 0x2015FC38, там переход на адрес 0x20E19C80, а надо на 0x20593338. Другие два адреса (0x2095CB16 и 0x2052F5C4) тоже не коррелируются.

В коде менял только разрешение экрана и размер файла. Может быть есть какой-то другой критичный параметр?

Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...

Портировал патч "Транслитерация". Но после ввода слова и выбора в опциях Translate мобила перезагружается. Возможно ли как-нибудь проверить правильность нахождения адресов tfs4_stat, tfs4_open, tfs4_read, tfs4_close? Думаю, что в них дело, так как в других адресах полностью уверен.

Translit.7z

Ссылка на комментарий
Поделиться на другие сайты

Портировал патч "Транслитерация". Но после ввода слова и выбора в опциях Translate мобила перезагружается. Возможно ли как-нибудь проверить правильность нахождения адресов tfs4_stat, tfs4_open, tfs4_read, tfs4_close? Думаю, что в них дело, так как в других адресах полностью уверен.

Проверил все адреса, сравнивая с разными прошивками. Все верно. На сайте нашел инструкцию по транслитерации в реальном времени для всех телефонов, не получилось. Похоже в самой прошивке моего телефона что-то не дает применить транслитерацию.

Ссылка на комментарий
Поделиться на другие сайты

Проверил все адреса, сравнивая с разными прошивками. Все верно.

Надо реализовать патч в виде подпрограмм запускаемых через CGSN, и запускать их… Это позволяет в реальном времени проверять работу каждой функции, возвращаемые результаты и т.п.

Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com

Ссылка на комментарий
Поделиться на другие сайты

Надо реализовать патч в виде подпрограмм запускаемых через CGSN, и запускать их… Это позволяет в реальном времени проверять работу каждой функции, возвращаемые результаты и т.п.

Запустил в CGSN такой код:

.little

.include equ.asm

.thumb

.plugin

push {lr}

sub sp, sp, 0x400

 

My_translit_task:

    LDR        R5, =0x304A778A

    LDRH    R0, [R5, #4]

    

    CMP        R0, #0

    BEQ        Mtt_InitOk

    

    BL        T9BufferInit

    

    MOV        R0, #0

    STRH    R0, [R5]

    STRH    R0, [R5, #2]

    STRH    R0, [R5, #4]

    

Mtt_InitOk:

;Получение параметров файла    

    ADR        R0, ="/a/user/translate.tbl"

    MOV        R1, SP

    BL        tfs4_stat

    

    CMP        R0, #0

    BNE        Exit_My_translit_task

 

;Выделение памяти под файл    

    LDR        R0, [sP, #12]        ;R0 = fsize

    ADD        R0, #4

    LSR        R0, R0, #2

    LSL        R0, R0, #2

    BL        RtkGetMemory

    

    CMP        R0, #0

    BEQ        Exit_My_translit_task

    

    MOV        R6, R0

 

;Открытие файла    

    MOV        R1, #0

    ADR        R0, ="/a/user/translate.tbl"

    BL        tfs4_open

    

    MOV        R7, R0

    BMI        Mtt_ReleaseExit

 

;Чтение файла    

    LDR        R2, [sP, #12]

    MOV        R1, R6

    MOV        R0, R7

    BL        tfs4_read

    

    MOV        R4, R0

 

;Закрытие файла    

    MOV        R0, R7

    BL        tfs4_close

 

Mtt_ReleaseExit:    

    MOV        R0, R6

    BL        RtkReleaseMemory

 

add sp, sp, 0x400

pop {pc}

.endplugin

 
Exit_My_translit_task:
ADD SP, SP, #256

POP {R4-R7,PC}

убрал, так как мобила с ней перезагружается.

 

В итоге ничего не происходит, появились только регистры в правом окне терминала.

Ссылка на комментарий
Поделиться на другие сайты

ну так вот надо в неиспользуемые регистры контрольные значения отсылать и смотреть где проблема. Или в стеке сохранять и при выходе показывать:

 

LDR R0, [sP, #12]

str r0, [sP, 0x50]

 

BL RtkGetMemory

str r0, [sP, 0x54]

 

BL tfs4_open

str r0, [sP, 0x58]

 

BL tfs4_read

str r0, [sP, 0x5C]

 

 

add sp, sp, 0x400

ldr r0, [sp, 0x50]

ldr r1, [sp, 0x54]

ldr r2, [sp, 0x58]

ldr r3, [sp, 0x5C]

 

 

хотя вообще я не понял суть этого кода.

грузит в память файл, и уничтожает эту память ничего не сделав… в R4 возвращает 1 если файл был загружен успешно…

Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com

Ссылка на комментарий
Поделиться на другие сайты

хотя вообще я не понял суть этого кода.

грузит в память файл, и уничтожает эту память ничего не сделав… в R4 возвращает 1 если файл был загружен успешно…

Это была часть кода из файла asm Translit.7z.

Ссылка на комментарий
Поделиться на другие сайты

Это была часть кода

Ну именно эта часть в таком виде и не должна давать каких-то видимых эффектов…

Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com

Ссылка на комментарий
Поделиться на другие сайты

Ну именно эта часть в таком виде и не должна давать каких-то видимых эффектов…

Проверил данный код (Translit.7z) в патчах к телефонам D780,E200,X700,D880,E740,D900 - он у всех одинаковый.

Тогда решил воспользоваться хелпом с данного сайта по созданию TranslitModeSMS для различных прошивок. В пункте 3.1. предлагается выбрать базу для замены (немецкую). Открыл в Binedit свою прошивку (J210XEHG1) на вкладке Базы T9, выбрал немецкую - пишет ошибка в базе 828A. В итоге этот вариант не прокатил. 

Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...

В Opera Mini 8.0 при нажатии на ссылку с видео на youtube телефон выдает табличку  "Запустить?",  но при нажатии "Да" ничего не происходит. Посмотрел, что в TFS телефона есть Streaming video. Через терминал определил адрес таблички "Запустить?" 0x202FC3CC. В чем может быть проблема?

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти



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