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

AlexeyK

SGH Open Club
  • Постов

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

  • Посещение

Весь контент AlexeyK

  1. Glyckmen, я тебя понял, с самого начала. Просто я предположил, что эти картинки скорее всего храняться в прошивке в формате дисплея, а ресман при редактировании их показывает и правит, как обычные картинки и надо это исправить, а не делать двойное преобразование. Спрошу у Вадима можно ли заставить resman работать нарямую с raw графикой. Потом отпишусь. Во вложении файл в формате дисплея ни чем не обработанный, по моему очень похоже. Такое же смещение цветов screenshot.zip screenshot.zip
  2. Glyckmen, может поможет, а может уже знаешь. Вот что писал FreeMan на другом форуме: и ещё картинки в телефоне, перед выводом на экран, конвертируются в формат дисплея. Этот формат соответствует ANI файлу. При работе screenshot в ResMan в tfs формируется файл именно в формате дисплея, а потом когда он загружается в комп - конфертируется в bmp. Можно в патче screenshot поменять имя создаваемого файла и и попытаться делать снимки с экрана, ResMan будет зависать, но в tfs в папке user будет файлик с копией экрана в не реобразованом формате.
  3. wiliam, процесс довольно длительный, бывало и больше. Многое зависит от настроек поиска, длины создаваемых сигнатур, особенно сильно влияет не правильное определение типов блоков. У меня Cel 950, на поиск сигнатур для патча "Мелодии на абонентов" уходит около 2 часов.
  4. MikMik, эта вкладка переименована в "Языковые ресурсы"
  5. Renat, да можно, но ресурсов специфических. Остальное наверное будет неплохо находить ResMan.
  6. Да будет, но позже. Полностью переделываю анализ патчей. Еще добовил меню "Патч", в нём можно будет делать патчи для прошивок. Пока есть "Доступ ко всем папкам" с созданием FileManager.rxt и "Убрать название оператора"
  7. новая версия пока тестируется, так как для телефонов типа X100 там мало нового. Основные отличия. 1. Полная поддержка ARM7TDMI и частично ARM9TDMI. (дизассемблирование кода) 2. Поддержка Little Endian (было только Big Endian). Это позволяет работать прошивками для телефонов типа С100, X120, D500, E730. 3. Появился отладчик, позволяющий выполнять команды процессора и контролировать состояние регистров и памяти. 4. Появились файлы описания прошивок. Сканирование теперь проводится только 1 раз при первой загрузки прошивки, потом просто грузиться описание, что позволяет ускорить загрузку. 5. Описание инструкций МСС вынесено в отдельный файл. можно редактировать и добавлять свои описания. (добавлять описания МСС или переопределять, можно и для каждой прошивки отдельно в её конфигурационном файле) 6. поддержка новых форматов патчей vpk (Vklay), cnt (SGH C Tool). Возможно будет и загрузка S прошивок и конвертация их в bins (bin файл с информацией об областях значимости.) Сканирование ресурсов прошивок с Little Endian пока не реализовано
  8. Вот фрагмент одной переписки по разбору МСС, может кому поможет. Всё написанное мои и не только мои предположения и могут не соответствовать действительности. 009789B4 1C 00 004C 0000 0000 00000000 0000 0000 Выполнить 00 x2=76 x3=0 x4=0 x5=0 x6=0 (Насколько я понял, надо выполнить MCC_TASK (код в таблице МСС 1С)) – ДА. Запускается МСС функция прошивки MCC_TASK. ей в R0 передаётся адрес описателя (структуры) текущего МСС процесса, по смещению 0 от него находится адрес текущей МСС команды и она берёт свои данные по смещению от этого адреса. Скажи, x2, x3 это регистры для процедуры, точнее параметры? Верно Еще интересно, посветка зеленым, это код чего? Чтоит понимать 1С процедуру с параметром 05 или 1С05 , т.е MCC_TASK 05? А где там подсветка? 05 – это первый параметр всех МСС функций, как правило соответствует потоку. Для многих функций, например, MCC_TASK, по нему запускаются совершенно разные подфункции, которые сами обрабатывают остальные параметры. 009789C4 21 00 0000 0000 0000 00982D14 0000 0000 Переход на mcc_dir_retmenu1 (0x982D14) 009789D4 C8 00 0000 0000 0000 00000000 0000 0000 Подготовка окна КАК понять какого типа окна готовится? В прошивках типа X100, функция без параметров, служит в основном для выделения памяти для нового меню, создается его описалеть (структура данных) – базовый тип окна. Т.е. своеобразный CreateObect 009789E4 1C 05 0073 0000 0000 00000000 0000 0000 Выполнить 05 x2=115 x3=0 x4=0 x5=0 x6=0 009789F4 60 05 00EE 0005 0041 00000000 0000 0000 Создание меню с первым индексом "Find name" из 5 пунктов Здесь и рисуется всё меню с первого до последнего пункта. 00978A04 74 05 0005 0000 0000 00000000 0000 0000 MCC_JUMPMAIN Начинаем рисовать окно с пунктами меню. Создание таблицы (структуры) с адресами переходов по пунктам меню 00978A14 73 05 0000 0000 0000 00978AE4 0000 0000 MCC_JUMPMENU Найти имя Добавление адреса для пункта в таблице (бывает не адреса а идентификатор, который потом отдельно обрабатывается) 00978A24 73 05 0000 0000 0000 0097E134 0000 0000 MCC_JUMPMENU Добавить 00978A34 73 05 0000 0000 0000 0097F624 0000 0000 MCC_JUMPMENU .... 00978A44 73 05 0000 0000 0000 0097FB74 0000 0000 MCC_JUMPMENU .... 00978A54 73 05 0000 0000 0000 0097FE14 0000 0000 MCC_JUMPMENU 00978A64 4D 01 0000 0000 0000 00000000 0000 0000 MCC_RETMENU 00978A74 C8 00 0000 0000 0000 00000000 0000 0000 Подготовка окна 00978A84 1C 05 0073 0000 0000 00000000 0000 0000 Выполнить 05 x2=115 x3=0 x4=0 x5=0 x6=0 Опять выполнить, только с другим параметром х2. Чтобы узнать для чего нужны параметры надо разбираться с самой функцией, наподобие того как написано в “МСС команды.doc” Объясни как понимать эти данные, может есть пояснения для каждого числа? Изучая предыдущий кусок. Можно понять, что 115, это тип меню с числами перед пунктами. Я прав? НЕТ. Тип меню задаётся в строке 009789F4 60 05 00EE 0005 0041 00000000 0000 0000 60 – MCC_MENU 05 – поток 00EE – индекс первого пункта меню 0005 – количество пунктов 0041 – два байта определяющие тип меню, первый вроде бы уровень, второй как раз тип 00978A94 60 05 00EE 0002 0041 00000000 0000 0000 Создание меню с первым индексом "Find name" из 2 пунктов 00978AA4 74 05 0002 0000 0000 00000000 0000 0000 MCC_JUMPMAIN 00978AB4 73 05 0000 0000 0000 00978AE4 0000 0000 MCC_JUMPMENU 00978AC4 73 05 0000 0000 0000 0097E134 0000 0000 MCC_JUMPMENU 00978AD4 4D 01 0000 0000 0000 00000000 0000 0000 MCC_RETMENU 00978AE4 1D 05 0002 0001 0001 00978B14 0000 0000 Если x1=5 x2=2 x3=1 то переход на mcc_dir_set_type_adn_return (0x978B14) x3 я понял, что код нажатой клавиши, а остальное не понял. Объясни. что означают остальные иксы. Скорее всего проверяются кикие нибудь параметры Обработка нажатий клавиш производиться при X1=9, коды клавиш x3 = 0x02 - с 0x04 - вверх 0x05 - вниз 0x06 - влево 0x07 - вправо 0x08 - вызов 0x09 - вкл/выкл 0x0E - левая софт 0x0F - правая софт 0x10 - боковая вверх 0x13 - боковая вниз x2 вроде определяет нажата (1) или отпущена (0) 00978AF4 1E 05 0001 0001 0001 00978B34 0000 0000 Или если x1=5 x2=1 x3=1 то переход на mcc_dir_set_type_fdn_return (0x978B34) 00978B04 21 00 0000 0000 0000 00978B54 0000 0000 Переход на mcc_smpb_search_name (0x978B54) 00978B14 1C 05 000D 0001 0000 00000000 0000 0000 Выполнить 05 x2=13 x3=1 x4=0 x5=0 x6=0 00978B24 4F 00 0000 0000 0000 00000000 0000 0000 MCC_RETURN 00978B34 1C 05 000D 0002 0000 00000000 0000 0000 Выполнить 05 x2=13 x3=2 x4=0 x5=0 x6=0 00978B44 4F 00 0000 0000 0000 00000000 0000 0000 MCC_RETURN 00978B54 11 05 0003 0000 0000 00982A34 0000 0000 MCC_BSRP --------перескочим--------------- 00982A34 C8 00 0000 0000 0000 00000000 0000 0000 Подготовка окна 00982A44 1C 05 0054 0000 0000 00000000 0000 0000 Выполнить 05 x2=84 x3=0 x4=0 x5=0 x6=0 Я так понял x=82 это тип окна, которое выводится, в даном случае выскакивающее окно Инициализация. НЕТ, насколько я знаю 00982A54 91 01 0002 0005 0111 00000000 0000 0000 Сообщение "Phonebook initializing!" В данном случае как раз формируется всплывающее окно. с сообщением – индекс текста сообщения x4=0x0111. Вроде бы x3 или X2 – задержка в секундах, но это не точно. 00982A64 21 00 0000 0000 0000 009798A4 0000 0000 Переход на mcc_dir_branch_retmenu (0x9798A4) --------- 00978BA4 1D 05 0020 0001 0000 00978C64 0000 0000 Если x1=5 x2=32 x3=1 то переход на mcc_dir_flash_only (0x978C64) x1=5 x2=32 x3=1 передаются в процедуру, но как какие регистры? в процедуру передаётся только адрес МСС структуры в начале которой находится адрес текущей МСС инструкции в R0. В самой функции данные берутся по смещению от него. Как правило, в начале функции значение из R0 сохраняется в R7 (в некоторых прошивках в R4) или, значительно реже, в стеке. Потом для того чтобы получить данные используется такая инструкция LDR(4 байта), LDRH (2 байта), LDRB (1 байт), например LDR R3,[R7,#8] (R3=значение по адресу R7+ – это получение пятого параметра. грубо говоря R3=x5. Со стеком работает так, в начале функции (иногда по ходу) значение SP уменьшается на 4*x, где x – количество используемых локальных переменных. Для хранения 5 значений выполняется SUB SP,SP,#0x14 (SP=SP-20). Потом когда необходимо к ним обращаются по смещению LDR R2,[sP,4] (R2=значение по адресу SP+4) – обращение ко второй локальной переменной. 00978BB4 1D 05 0021 0001 0000 00978CC4 0000 0000 Если x1=5 x2=33 x3=1 то переход на mcc_dir_sim_only (0x978CC4) --------------------------- 00978E64 BD 01 0000 0000 0000 00000000 0000 0000 MCC_WATCHDOG Если тебе не сложно, объясни MCC_WATCHDOG!!! Подготовка окна тел книги чтоли? Не сталкивался, может для отладчика какая нибудь инструкция. Надо смотреть её код. Может вообще ничего не делает.
  9. Прошивка написана на Си, скомпилирована. Исходников на Си нет. Всё что есть получено путём анализа прошивки. МСС - это макрокоманды (или скрипт). В binedit показано почти всё, что было изучено на момент разработки программы. В новой версии можно будет добавлять свои описания. Т.е. в "Выполнить 0F x2=39 x3=4 x4=0 x5=0 x6=0" известно, что производится обработка и каакие какие параметры могут передаваться, но что именно не известно. Можно посмотреть код и попытаться разобраться что выполняется. Есть обработчик событий, из него запускается большинство МСС инструкций. Часть прошивки ядро OS, часть код прошивки, часть МСС, часть данные. PS. Посмотри ещё форум на Samsung-mobile.ru раздел разработка.
  10. Glyckmen, насколько я тебя понял, надо посмотреть в коде проигрывания mmf как устроено мигание и сделать как там. Если известен адрес функции Rtk05_2SendMsgToProcess или перехода на неё, то можно поискать все вызовы типа BL по этому адресу. А там смотреть как сделено и какие параметры. скорее всего эта константа 0x000010B0 не должна меняться и быть такой как в прошивке.
  11. gitl, пока не возникало сильной необходимости, тем более есть конвертер. Можно воспользоваться RARом, надо только переименовать расширение smpbz в bz2. Если надо постараюсь сделать. Duyach, напиши в icq что именно надо для поддержки pocket pc. насколько знаю там используется другой (не ARM) процессор. пока в планах адаптировать программу под D500.
  12. Сначала загрузи прошивку с которой будешь переносить патч, потом сам патч. Идентификаторы должны совпадать. потом в редакторе патчей последовательно запускаешь пункты, на одном из них программа попросит загрузить прошивку на которую необходимо перенести патч.
  13. spyke, опиши последовательность действий, приводящих к ошибкам, постараюсь поправить.
  14. leeinc2, спасибо за замечание. Находится всё, можно посмотреть при сохранении языковых ресурсов, просто показывается только для меню, без софт клавишь. Будет время поправлю.
  15. kazakoff, пока сам не знаю. Вадим (Javer) мне все данные ещё в феврале предоставил, но пока со временем туго. Проект BinEdit пока заморожен.
  16. Извини, возможно чего нибудь пропустил, на том же сайте проблема была найдена и решена. В последних патчах с мелодиями на абонентов этого глюка нет. Проблема возникала при попытке позвонить абоненту с коротким номером, набирая его с клавиатуры. На X600 такой проблемы изначально не было.
  17. Влад постараюсь исправить и многое другое о чём просил. пока нет времени потдерживать проект, ниже выложил текущие исходники и последнее описание. В описании есть некоторые рекомендации по переносу патчей и поиску информации в прошивках. ___________________BinEdit.zip BinEdit_source.zip
  18. dimastyj, посмотри внимательно на строчку: 000C3BDE - это адрес в прошивке 21CE - это HEX код ассемблерной команды, где 21 - сама команда, CE - (в данном случае) её параметр 0xCE=206 MOV R1, #0xCE - мнемоника команды R1=206 - расшифровка (описание) Для замены значения надо поменять CE на другое число. Единственное что пока не реализовано - это автоматическое обновление описания. можно щёлкнуть по кнопкам "данные отмены" и "данные патча" для обновления. кстати версия программы вроде старая, в ней нельзя было редактировать при просмотре. Последняя версия была где то от 26 мая. Должна быть сдесь http://link.teleline.ru/ . там же есть и последнее описание
  19. Запускаешь в последней версии BinEdit сканирование меню. Там будет практически всё. Последняя версия вроде должна быть сдесь http://link.teleline.ru/
  20. AVZ, адрес для калькулятора 0x00B33884 допиши в описание клавишь: Калькулятор=0x00B33884
  21. danya-spb, после редактирования прошивки в ResMan необходимо сохранять прошивку целиком и в последующем использовать её для редакттирования. Иначе редакции накладываются друг на друга в одном адресном пространстве. Телефон естественно бутет виснуть, не всегда, но с большой вероятностью. Может из за этого проблемы. Менаджер можно написать. в прошивке есть практически все необходимые функции. Надо только написать интерфейс.
  22. danya-spb, папки создавать можно и довольно не сложно. Stepan_v даже приводил инструкцию на S_M как. Только использовать их в телефоне нельзя, в нём нет менеджера файлов.
×
×
  • Создать...