AlexeyK
SGH Open Club-
Постов
316 -
Зарегистрирован
-
Посещение
Тип контента
Профили
Форумы
Загрузки
События
Весь контент AlexeyK
-
Glyckmen, я тебя понял, с самого начала. Просто я предположил, что эти картинки скорее всего храняться в прошивке в формате дисплея, а ресман при редактировании их показывает и правит, как обычные картинки и надо это исправить, а не делать двойное преобразование. Спрошу у Вадима можно ли заставить resman работать нарямую с raw графикой. Потом отпишусь. Во вложении файл в формате дисплея ни чем не обработанный, по моему очень похоже. Такое же смещение цветов screenshot.zip screenshot.zip
-
Glyckmen, может поможет, а может уже знаешь. Вот что писал FreeMan на другом форуме: и ещё картинки в телефоне, перед выводом на экран, конвертируются в формат дисплея. Этот формат соответствует ANI файлу. При работе screenshot в ResMan в tfs формируется файл именно в формате дисплея, а потом когда он загружается в комп - конфертируется в bmp. Можно в патче screenshot поменять имя создаваемого файла и и попытаться делать снимки с экрана, ResMan будет зависать, но в tfs в папке user будет файлик с копией экрана в не реобразованом формате.
-
лучше брать чистые, не патченные
-
wiliam, процесс довольно длительный, бывало и больше. Многое зависит от настроек поиска, длины создаваемых сигнатур, особенно сильно влияет не правильное определение типов блоков. У меня Cel 950, на поиск сигнатур для патча "Мелодии на абонентов" уходит около 2 часов.
-
MikMik, эта вкладка переименована в "Языковые ресурсы"
-
Renat, да можно, но ресурсов специфических. Остальное наверное будет неплохо находить ResMan.
-
Да будет, но позже. Полностью переделываю анализ патчей. Еще добовил меню "Патч", в нём можно будет делать патчи для прошивок. Пока есть "Доступ ко всем папкам" с созданием FileManager.rxt и "Убрать название оператора"
-
новая версия пока тестируется, так как для телефонов типа 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 пока не реализовано
-
Вот фрагмент одной переписки по разбору МСС, может кому поможет. Всё написанное мои и не только мои предположения и могут не соответствовать действительности. 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!!! Подготовка окна тел книги чтоли? Не сталкивался, может для отладчика какая нибудь инструкция. Надо смотреть её код. Может вообще ничего не делает.
-
Прошивка написана на Си, скомпилирована. Исходников на Си нет. Всё что есть получено путём анализа прошивки. МСС - это макрокоманды (или скрипт). В binedit показано почти всё, что было изучено на момент разработки программы. В новой версии можно будет добавлять свои описания. Т.е. в "Выполнить 0F x2=39 x3=4 x4=0 x5=0 x6=0" известно, что производится обработка и каакие какие параметры могут передаваться, но что именно не известно. Можно посмотреть код и попытаться разобраться что выполняется. Есть обработчик событий, из него запускается большинство МСС инструкций. Часть прошивки ядро OS, часть код прошивки, часть МСС, часть данные. PS. Посмотри ещё форум на Samsung-mobile.ru раздел разработка.
-
Glyckmen, насколько я тебя понял, надо посмотреть в коде проигрывания mmf как устроено мигание и сделать как там. Если известен адрес функции Rtk05_2SendMsgToProcess или перехода на неё, то можно поискать все вызовы типа BL по этому адресу. А там смотреть как сделено и какие параметры. скорее всего эта константа 0x000010B0 не должна меняться и быть такой как в прошивке.
-
gitl, пока не возникало сильной необходимости, тем более есть конвертер. Можно воспользоваться RARом, надо только переименовать расширение smpbz в bz2. Если надо постараюсь сделать. Duyach, напиши в icq что именно надо для поддержки pocket pc. насколько знаю там используется другой (не ARM) процессор. пока в планах адаптировать программу под D500.
-
Сначала загрузи прошивку с которой будешь переносить патч, потом сам патч. Идентификаторы должны совпадать. потом в редакторе патчей последовательно запускаешь пункты, на одном из них программа попросит загрузить прошивку на которую необходимо перенести патч.
-
spyke, опиши последовательность действий, приводящих к ошибкам, постараюсь поправить.
-
spyke, как шалит?
-
leeinc2, спасибо за замечание. Находится всё, можно посмотреть при сохранении языковых ресурсов, просто показывается только для меню, без софт клавишь. Будет время поправлю.
-
kazakoff, пока сам не знаю. Вадим (Javer) мне все данные ещё в феврале предоставил, но пока со временем туго. Проект BinEdit пока заморожен.
-
Извини, возможно чего нибудь пропустил, на том же сайте проблема была найдена и решена. В последних патчах с мелодиями на абонентов этого глюка нет. Проблема возникала при попытке позвонить абоненту с коротким номером, набирая его с клавиатуры. На X600 такой проблемы изначально не было.
-
Влад постараюсь исправить и многое другое о чём просил. пока нет времени потдерживать проект, ниже выложил текущие исходники и последнее описание. В описании есть некоторые рекомендации по переносу патчей и поиску информации в прошивках. ___________________BinEdit.zip BinEdit_source.zip
-
dimastyj, посмотри внимательно на строчку: 000C3BDE - это адрес в прошивке 21CE - это HEX код ассемблерной команды, где 21 - сама команда, CE - (в данном случае) её параметр 0xCE=206 MOV R1, #0xCE - мнемоника команды R1=206 - расшифровка (описание) Для замены значения надо поменять CE на другое число. Единственное что пока не реализовано - это автоматическое обновление описания. можно щёлкнуть по кнопкам "данные отмены" и "данные патча" для обновления. кстати версия программы вроде старая, в ней нельзя было редактировать при просмотре. Последняя версия была где то от 26 мая. Должна быть сдесь http://link.teleline.ru/ . там же есть и последнее описание
-
Запускаешь в последней версии BinEdit сканирование меню. Там будет практически всё. Последняя версия вроде должна быть сдесь http://link.teleline.ru/
-
AVZ, адрес для калькулятора 0x00B33884 допиши в описание клавишь: Калькулятор=0x00B33884
-
danya-spb, после редактирования прошивки в ResMan необходимо сохранять прошивку целиком и в последующем использовать её для редакттирования. Иначе редакции накладываются друг на друга в одном адресном пространстве. Телефон естественно бутет виснуть, не всегда, но с большой вероятностью. Может из за этого проблемы. Менаджер можно написать. в прошивке есть практически все необходимые функции. Надо только написать интерфейс.
-
danya-spb, папки создавать можно и довольно не сложно. Stepan_v даже приводил инструкцию на S_M как. Только использовать их в телефоне нельзя, в нём нет менеджера файлов.
-
да вроде сделали, тестируется