Jump to content
Old Phone Forum
  • Login

    You are currently not logged in to the forum.

    To comment, upload files, subscribe to answers - you need to login.

GRAND SGH USER

Всё о Samsung Sgh-j210

Recommended Posts

2. В tfs есть папка voice, где используются файлы из этой папки?

Нашел "Обзор Samsung D900i", при создании сообщений есть пункт меню Voice Message. У J210 этого меню почему-то нет.

Share this post


Link to post
Share on other sites

.equ MP 0x22 базовый код мастерпатча

.equ MPFunc - персональный код функций мастерпатча. А как определить этот экивалент для моего телефона?

Share this post


Link to post
Share on other sites

1. Как узнать рабочую частоту процессора?

Поискать в даташитах про PNX5230, может там что-то есть… Или самому сделать цикл из простой команды и посчитать с секундомером.

 

2. В tfs есть папка voice, где используются файлы из этой папки?

Я не увидел в TFS такой папки с файлами…

Вообще в TFS много всяких артефактов от старых или топовых моделей.

 

Нашел "Обзор Samsung D900i", при создании сообщений есть пункт меню Voice Message. У J210 этого меню почему-то нет.

На C3322/S5610 тоже нет…

Вроде раньше у самсунгов был какой-то свой сервис голосовых сообщений, вероятно это оно. Плюс надо учесть что обзор тот писал Муртазин, а он умеет наврать очень много - взяв часть скриншотов от других моделей и просто сочиняя характеристики без проверки (да и телефон у него в обзоре был с нерусской локализацией). Про D780 и B5722 например у него десяток абзацев полнейшего вранья.

 

.equ MP 0x22 базовый код мастерпатча .equ MPFunc - персональный код функций мастерпатча. А как определить этот экивалент для моего телефона?

Ну базовый код задаётся автором мастерпатча, это просто номер свободной ячейки в штатных обработчиках MCC_TASK, MCC_IF и т.п. Там всегда есть несколько пустых ячеек, одна из них и задействуется для мастерпатча. Персональный код функции мастерпатча - это следующий уровень, выбирается автором патча посмотрев на остальные патчи (чтобы не было конфликтов с другими патчами, каждый патч на эту прошивку использующий мастерпатч - должен иметь свой уникальный код).

 

Персональные коды занятые на C3322 например такие:

 

C3322XXNA1 texts
01-03 - Easy_ScreenShot_v22
04-0F - ExtBlackList_v11
10 - ?
11-13 - TXT_Viewer
14-15 - Anti-Thief part1
16 - BackupDB
17 - AutoConf
18-19 - KeyUnlock
1A-22 - Call Record
23-3F - Anti-Thief part2
40-46 - VibOnCall
47-53 - Sheduler
54 - VibOnCall
54-55 - ?
56-63 - MissingCallNotify
64-65 - ?
66-68 - KeypadBacklightControl_v2
69-6C - MainMenuConfig part1
6D-6F - ?
70 - HomeScreenToolbar_Opera_v1
71-83 - Talker_v07
84-85 - ?
86 - VolumeControl_in_RecMode_v1
87-90 - SimChooser
91-9A - ?
9B - Filename_DateTime_v2
9C - AutoKeylock part1
9E-A4 - DesktopConfig_v2 part1
A5-A6 - AutoKeylock part2
A7-AA - MainMenuConfig part2
AB-AF - Explorer_Bluetooth_GlobalAccess_v11
B0-B3 - DesktopConfig_v2 part2
B4-BF - ?
B0-B3 - DesktopConfig_v2 part2
C0-E4 - ExtraHotKeys2
E5-FF - ?

C3322XXNA1 MPCodes
 00 - LoadMEM
 01 - Battery 25pos
 02 - filename datetime
 03 - flashlight
 04 - java shadow
 05 - call_record
 06 - max_backlight
 07 - txt view
 08 - fast lang
 09 - anti thief
 0a - reject call
 0b - ext black list
 0c - Camera Plus
 0d - bluetooth hotkey
 0e - missing call notify
 0f - talker
 10 - vib on call
 11 - desktopconfig
 12 - Java Heap Config
 13 - SIM Chooser
 14 - key auto lock
 16 - Explorer Bluetooth Global Access
 17 - autoconference
 18 - Info4321
 19 - VolCtrl_RecMode
 1A - SimpleSearch
 1B - Any_Number_Call v2
 1D - KbdBacklight
 1E - DisableKeypadUnlockedPopup
 1F - FilterCallShowNotify
 20 - BackupDB
 21 - ExtraHotKeys2
 22 - FM-mono
 23 - InfoHWID

C3322XXNA1 MemoryCFG/SettingsCFG
 +0x00 - Call Record
 +0x01...0x02 - ExtBlackList
 +0x03 - SortFiles_Mod
 +0x04 - HandsFreeTweak
 +0x05 - Fast_Switching_Language_Input
 +0x06...0x07 - VibOnCall (7 = time, 6 = mode (b0-b3 - mode1, b4-check1, b5-check2, b6-check3, b7-free))
 +0x08...0x0B - Java Heap Config
 +0x0C - SIM Chooser
 +0x0D - CallRec
 +0x0E - MainMenuConfig
 +0x0F - Explorer Bluetooth Global Access
 +0x10 - AutoConf
 +0x11 - Backlight keyboard
 +0x12 - MissingCallNotify font size
 +0x15 - Filename_DateTime_v2
 +0x20...0x23 - TimerSave
 +0x24...0x27 - TXT View
 +0x70...0x8F - DesktopConfig
 +0x90...0x9F - Talker 
 +0xA0...0xA8 - Missing Call Notify 
 +0xC0...0xDF - ExtraHotkeys

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

Share this post


Link to post
Share on other sites

Нашел здесь эмулятор vnes, проверил на своей мобиле, после чего действительно (как утверждал автор статьи) телефон стал быстрее читать с карты памяти в java. Пошел дальше: скачал программу MatraxBench  для теста скорости работы центрального процессора. Замер показал 176 points. Но заметил, что при погасшем экране показатель увеличивается. Тогда сделал время подсветки 1 секунду (патчем). По завершении теста с выключенным экраном программа выдала результат 460 points. Неужели подсветка уменьшает производительность в 2,5 раза? Возможно ли как-то увеличить (разогнать) производительность CPU телефона в java?

 

 

MatraxBench_v.1.0.3.zip

Share this post


Link to post
Share on other sites

Персональные коды занятые на C3322 например такие:

 

Спасибо за исчерпывающий ответ!

Share this post


Link to post
Share on other sites

Неужели подсветка уменьшает производительность в 2,5 раза?

Подозреваю что дело не в подсветке, а просто после выключения подсветки система перестаёт перерисовывать экран, и это высвобождает процессорное время для других задач.

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

Share this post


Link to post
Share on other sites

Интересно узнать, пользовались ли Вы телефоном для распознавания QR-кодов онлайн или через программу? Через  программу (http://www.upcode.fi/mobile/pc_download.asp?language=1) у меня не получилось, так как кнопка камеры в java программе не настроена на мой телефон. Через онлайн сервисы, например decodeit.ru, получается расшифровать только коды, скачанные с сайтов, а сфотографированные телефоном не хотят распознаваться.

Через сайт www.decodeit.ru/qr  получается отправить скачанный qr-код, если размер файла не превышает 40кб. Когда opera пытается отправить больший файл, отправка прерывается и выдает ошибку подключения к интернету. Пробовал проделывать данную операцию на Нокиа Аша в той же Опере, все отправляется.

Share this post


Link to post
Share on other sites

Спасибо, проблема решена, все отправляется и распознается!

Share this post


Link to post
Share on other sites

В патче (asm) ExtraDesktop для телефона G600XEGL1 не могу найти эквивалент p_EDSettings 0x30FFFFAC. Подскажите, пожалуйста, что означает p_EDSettings (и как его найти) и EDFuncCounter (в asm для G600 он равен 14)?

Share this post


Link to post
Share on other sites

А как вообще определить свободную память с помощью CGSN (что должны показывать значения регисторов, если память свободна)? В asm (например FileTypes Register, Caller`s Name in SMS) может быть указана .equ FreeRAM. Она определяется с помощью cgsn?

Share this post


Link to post
Share on other sites
17.08.2019 в 14:13, bugbug сказал:

А как вообще определить свободную память с помощью CGSN (что должны показывать значения регисторов, если память свободна)?

В системе есть много фиксированных блоков памяти разного размера, можно командой RtkGetMemory их получать (и потом не забыть командой RtkReleaseMemory их освободить).

Причём кол-во блоков тех или иных размеров предусмотрено по оценке разработчиков и бывает что при запросе например 500 байт - памяти нет, а при запросе 1000 байт память есть.

В инженерном меню есть монитор памяти, там блоки показаны. Memory Pool.

Ещё есть функция Rtk50_11GetDynMemory для запроса больших кусков памяти, она медленнее.

Если памяти надо в пределах 1кб - то обычно целесообразнее брать её в текущем стеке (смещать указатель стека вниз, потом перед выходом поднимать обратно).


sub sp, sp, 0x80
; тут с адреса SP получается 0x80 байт памяти
add sp, sp, 0x80 ; когда работа с памятью закончена - надо восстановить стек
 

 

17.08.2019 в 14:13, bugbug сказал:

В asm (например FileTypes Register, Caller`s Name in SMS) может быть указана .equ FreeRAM.

Это пример как делать не следует. Там просто автор полагает что верхняя граница физического ОЗУ не используется. Но, она может использоваться например разными кешами и т.п. Во втором патче вообще надо всего 81 байт - это надо брать в стеке (перечитав соответственно остальные адреса - там есть обращение к старому [sp] - его надо тоже сместить).

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


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

Share this post


Link to post
Share on other sites

Спасибо!

 

Share this post


Link to post
Share on other sites

Насчет mp3 плеера в фоне: при нажатии паузы плеер прекращает свою работу через 2 минуты после выключения подсветки (например, если подсветка на 3 минуты, плеер исчезает через пять минут после паузы в фоне). Для плеера, не свернутого в фон, user_key известны, а вот для фона непонятно как их определить. Может быть это особенность только этого телефона.

Share this post


Link to post
Share on other sites
23.08.2019 в 21:24, bugbug сказал:

Для плеера, не свернутого в фон, user_key известны, а вот для фона непонятно как их определить.

А в фоне - плеер интегрирован в глобальный обработчик IDLE-событий десктопа. Там нет MCC-скриптов, там огромный thumb-код со множеством многоуровневых переходов.

Автозакрытие на паузе я там удалял, но на более новой платформе. Надо найти места установки таймера бездействия плеера, это где-то в thumb-коде. Надо пробовать с C3322 перетащить патч, но там отличий очень много, напрямую на J210 не получится, надо брать схожую старую модель с sym-файлами (например D880JPHH1) и делать сначала там (сравнивая по sym C3322XWKL1).


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

Share this post


Link to post
Share on other sites

В прошивке 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

Правильно ли я копаю?

Share this post


Link to post
Share on other sites

Идентичных кодов может быть много…

Надо сравнивать вызываемые оттуда функции. Имена подключить, для C3322XWKL1 ведь есть полный sym/bsig-файл - BinEdit будет все имена функций писать.

Далее, для J210 выявлять вручную имена функций. Например, в случае адресов запуска MCC - часто есть трассировка с названием функции. Например 

20E28D50:    8648    LDR    R0, =0x206519BC
20E28D52:    B1E7    B    loc_20E28CB8

206519BC  9F 25 0000 0000 0000 FC196520 0000 0000  MCC_MULTI_TRACKING
206519CC  17 23 2000 0000 0000 00000000 0000 0000  Выполнить 0x23 x2=32 x3=0 x4=0 x5=0 x6=0
206519DC  18 0A 0D00 0100 0100 24992820 0000 0000  Если x1=10 x2=13 x3=1 то переход на 0x20289924
206519EC  1C 00 0000 0000 0000 D4D7A620 0000 0000  Переход на адрес 0x20A6D7D4

206519FC mcc_mplib_T_play_on_quiet_Q

Значит, 206519BC = mcc_mplib_T_play_on_quiet_Q, можно на вкладке символов в BinEdit это добавить и он будет потом в листинге сразу писать имя 205FFAF8


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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Файл С3322XWKL1.sym шел вместе с прошивкой? Функция music8_SetNoActionTimeFlag уже была в sym или Вы ее туда добавили? Сравнивал файл С3322XWKL1.sym c D880JPHH1_Master_original.sym и не нашел похожей функции.

Share this post


Link to post
Share on other sites
29 минут назад, bugbug сказал:

Файл С3322XWKL1.sym шел вместе с прошивкой?

Фактически да. С прошивкой шёл x/elf, sym и dwarf извлекаются из elf. Ещё из dwarf извлекается краткое описание функций - https://oldph.one/index.php?showtopic=17767&p=612891

 

32 минуты назад, bugbug сказал:

Функция music8_SetNoActionTimeFlag уже была в sym или Вы ее туда добавили? Сравнивал файл С3322XWKL1.sym c D880JPHH1_Master_original.sym и не нашел похожей функции.

Ну платформа постепенно изменяется, в каждой новой модели часть функций не совпадает. Ещё бывает у функций меняется кол-во и состав аргументов. Плеер на C3322 вообще существенно отличается от D780/D880/B5722.


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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...