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

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

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

Sgh-x700 - совместная работа по созданию патчей


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

Здесь делимся идеями по техническому исполнению патчей! Никаких "хотелок" и вопросов не по теме.

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

Смысл данной темы: совместными усилиями создавать и портировать патчи (в том числе и список патчей из первого сообщения) на x700xeek6 и, по ходу работы, разобрать коды различных патчей.

Я искренне хотел бы, чтобы все разбирающиеся люди принимали активное участие, а все новички, кому интересно, работали бы здесь же вместе и приобретали опыт!

С целью приобретения опыта(в первую очередь для начинающих), советую прочитать работы MaxKis'a, Pimen'a и других экспертов по созданию патчей, а также темы:

Задаем вопросы по теме "Создание патчей, для начинающих",

Задаем вопросы по теме "Портирование патчей, для начинающих",

BinEdit и все о ней.

---------------------------

Итак, патчи с E730XEEH1, аналоги которых уже существуют и на D500, пока являются целью номер один(в offtop'e краткое описание главной функции патча):

1)Просмотр`тхт`файлов v3

Все файлы в папке `Другие файлы` можно просматривать в текстовом виде с возможностью переключения режимов просмотра вплоть до полноэкранного. Включение и переключение режимов кнопкой `ok/i`. Телефон помнит выбранный вами режим просмотра до перезагрузки. Текст показавается блоками по 2 кб. Для перехода между блоками используйте боковые клавиши громкости. Размер текстового файла - до 128 Мб. Теперь есть возможность установки Java приложений из папки `Другие файлы`. Для этого закачайте в эту папку файлы jad и jar выбранной вами игры, перейдите к файлу jad и нажмите `Инсталл`. Если это действительно файлы игры, игра установится (без перехода в `Загрузки`)...

2)image_view_style_menu(2-я часть патча) v4

Появилась возможность использовать картинку (пока только заставку) в качестве фона меню как в мобильном телефоне Motorola E398 и др.

3)Sound Storm

Позволяет ставить "свой" звук на смс сообщения

При обсуждении какого-либо патча попрошу выкладывать его в сообщении.

---------------------------

Здесь находятся "исходники"(*.asm) некоторых патчей, в архиве для удобства находится и сам патч(информации о вышеуказанных патчах, к сожалению, пока нет):

Mp3_Shadow_by_Longhair.rar

CallerName_by_F3n1X_for_E730HEEH1.rar

on_off_button.rar - On/Off Button by Ален

---------------------------

Описание некоторых функций МСС(см. оффтоп):

1C MCC_TRANSF - Функция для перехода по адресу без сохранения текущего адреса для возврата

1C AA BBBB CCCC DDDD EEEEEEEE FFFF GGGG

1C - код МСС-скрипта

AA - ?, но не имеет значения

BBBB - ?, но не имеет значения

CCCC - ?, но не имеет значения

DDDD - ?, но не имеет значения

EEEEEEEE - значение адреса, на который осуществляется переход

GGGG - ?, но не имеет значения

1B MCC_CALL - Функция для перехода по адресу с сохранением текущего адреса для возврата

1B AA BBBB CCCC DDDD EEEEEEEE FFFF GGGG

1B - код МСС-скрипта

AA - ?, но не имеет значения

BBBB - ?, но не имеет значения

CCCC - ?, но не имеет значения

DDDD - ?, но не имеет значения

EEEEEEEE - значение адреса, на который осуществляется переход

GGGG - ?, но не имеет значения

37 MCC_RETURN - Функция для возвращения на адрес,с которого осуществлялся переход с помощью функции 1B-MCC_CALL. Используется только в паре с 1B-MCC_CALL

37 AA BBBB CCCC DDDD EEEEEEEE FFFF GGGG

37 - код МСС-скрипта

AA - ?, но не имеет значения

BBBB - ?, но не имеет значения

CCCC - ?, но не имеет значения

DDDD - ?, но не имеет значения

EEEEEEEE - ?, но не имеет значения

GGGG - ?, но не имеет значения

38 MCC_EXIT - Функция для завершения текущего МСС-скрипта

38 AA BBBB CCCC DDDD EEEEEEEE FFFF GGGG

38 - код МСС-скрипта

AA - ?, но не имеет значения

BBBB - ?, но не имеет значения

CCCC - ?, но не имеет значения

DDDD - ?, но не имеет значения

EEEEEEEE - ?, но не имеет значения

GGGG - ?, но не имеет значения

47 MCC_REPORT - Функция, при помощи которой на экране отображается информационное сообщение

47 AA BBBB CCCC EEEE FFFFFFFF 0000 0000

47 - код МСС-скрипта,

АА - этот параметр определяет звук при появлении сообщения (например, "10" - звук "действие завершено")

ВВВВ - время задержки сообщения на экране (скажем, при значении "0000", сообщение так и останется на экране до нажатия любой кавиши, т.е. функции обновления экрана)

СССС - пока неизвестно

EEEE - индекс строки в текстовых ресурсах,

FFFFFFFF - ? (но никак не адрес)

---------------------------

Благодарности за помощь в развитии темы: F3n1X, Longhair, Uranium92, Mako, noxmobile.

---------------------------

Надеюсь на вашу помощь, поддержку и предложения(в "ЛС").

---------------------------

P.S. Тема под колпаком у micha,флудить тут не стоит... :bx:

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

  • Ответов 219
  • Создана
  • Последний ответ

Топ авторов темы

Если вас не затруднит, объясните, пожалуйста, в новой теме(х700-совместная...) на примере последнего патча, как создается меню и осуществляются переходы в х700...

.start 0x114E8B54;в свободной ячейки конфига прописывается ссылка на код, который и создаёт меню (в данном случае это ячейка 0x1B)
.word config_7+1;тут записывается адрес в ячейку, на котором находится метка config_7
.......
.start 0x10CAF2A8
......
.mcc MCC_MENU_CONFIG 0x1B 0 0x9 0x1;MCC для создания меню, параметр 0 означает, что процессор будет обращаться к коду, адрес которого указан в нулевой ячейки.

.mcc MCC_DISPLAY_MENU 0x1B 0 0x1 0x206 0 0x10;Идёт в паре с MCC_MENU_CONFIG, первые два параметра должны быть одинаковыми

.mcc MCC_MENU_SELECT 0 0 0x1;здесь собственно и осуществляется переход по меню, в данном случае их 9

.mcc MCC_MENU_SELECT 0 0x1 0x1
.mcc MCC_MENU_SELECT 0 0x2 0x1
.mcc MCC_MENU_SELECT 0 0x3 0x1
.mcc MCC_MENU_SELECT 0 0x4 0x1
.mcc MCC_MENU_SELECT 0 0x5 0x1
.mcc MCC_MENU_SELECT 0 0x6 0x1
.mcc MCC_MENU_SELECT 0 0x7 0x1
.mcc MCC_MENU_SELECT 0 0x8 0x1
......
config_7:			;это и есть метка, адрес которой и прописывается в свободной ячейки конфига
PUSH	{R4-R7,LR}
SUB	SP, SP, #0xF4	
LDR	R7, =FastMenuFile+960	;не знаю точно, но по-моему здесь записано название заголовка меню
LDRH	R4, [R0, #4]
LDRH	R6, [R0, #6]	
LDR	R5, =gs_DspMenu
LDRH	R0, [R0, #2]
MOV	R0, R7	
LDR	R1, =gv_ImageMainTitleIconMessages
MOV	R7, #0x0	
MOV	R3, R7	
LDRH	R2, [R1, #0]
MOV	R1, #0x0
BL	Reg_Draw_Title	
MOV	R0, #0x6	
BLX	j_lk_get_sofk
STR	R0, [SP, #0x44]	
MOV	R0, #0x4B	
BLX	j_lk_get_sofk	
MOV	R1, #0x0	
MOV	R2, #0x0	
STR	R2, [SP, #0x8]	
STR	R1, [SP, #0x4]
LDR	R2, [SP, #0x44]
MOV	R3, R7	
STR	R1, [SP]	
BLX	j_Reg_Draw_Softkey	
LSL	R1, R6, #24	
LSR	R1, R1, #24		
MOV	R2, R4	
MOV	R0, R5	
BLX	j_lk_CreateMenu	
;================================
ADD	R3, SP, #0x40	;Как я понял это ширина менюшек, чтобы нормально отображалось на экране	
STRH	R7, [R3, #8]		
MOV	R0, #0x2E				
STRH	R0, [R3, #10]		
MOV	R0, #0xB0				
STRH	R0, [R3, #12]		
MOV	R0, #0x97				
STRH	R0, [R3, #14]		
MOV	R2, #0x19				
STR	R2, [SP]				
MOV	R2, #0x0				
MOV	R3, #0x1				
MOV	R0, R5					
ADD	R1, SP, #0x48				
;===============================
BLX	j_lk_PutMenuExtInfo
LDR	R7, =FastMenuFile+4	
;================================		
MOV	R0, R7
ADD	R7, #0x44
MOV	R2, #0x0	
MOV	R3, R0	
MOV	R1, #0x0	;создание первого меню
MOV	R0, R5	
STR	R2, [SP]
BLX	j_lk_AddMenu	
;================================
MOV	R0, R7	
ADD	R7, #0x44
MOV	R2, #0x0	
MOV	R3, R0	
MOV	R1, #0x1	;создание второго меню
MOV	R0, R5	
STR	R2, [SP]	
BLX	j_lk_AddMenu	
;================================
MOV	R0, R7	
ADD	R7, #0x44
MOV	R2, #0x0	
MOV	R3, R0	
MOV	R1, #0x2	;создание втретьего меню
MOV	R0, R5
STR	R2, [SP]
BLX	j_lk_AddMenu	
;================================
MOV	R0, R7
ADD	R7, #0x44
MOV	R2, #0x0	
MOV	R3, R0	
MOV	R1, #0x3	;создание четвёртого меню
MOV	R0, R5	
STR	R2, [SP]
BLX	j_lk_AddMenu	
;================================
MOV	R0, R7	
ADD	R7, #0x44
MOV	R2, #0x0	
MOV	R3, R0	
MOV	R1, #0x4	;создание пятого меню
MOV	R0, R5	
STR	R2, [SP]
BLX	j_lk_AddMenu
;================================
MOV	R0, R7	
ADD	R7, #0x44
MOV	R2, #0x0	
MOV	R3, R0	
MOV	R1, #0x5	;создание шестого меню
MOV	R0, R5	
STR	R2, [SP]
BLX	j_lk_AddMenu	
;================================
MOV	R0, R7
ADD	R7, #0x44	
MOV	R2, #0x0
MOV	R3, R0
MOV	R1, #0x6	;создание седьмого меню
MOV	R0, R5	
STR	R2, [SP]
BLX	j_lk_AddMenu
;================================
MOV	R0, R7	
ADD	R7, #0x44
MOV	R2, #0x0	
MOV	R3, R0	
MOV	R1, #0x7	;создание восьмого меню
MOV	R0, R5
STR	R2, [SP]
BLX	j_lk_AddMenu	
;================================
MOV	R0, R7	
MOV	R2, #0x0
MOV	R3, R0	
MOV	R1, #0x8	;создание девятого меню
MOV	R0, R5	
STR	R2, [SP]	
BLX	j_lk_AddMenu	
ADD	SP, SP, #0xF4	
POP	{R4-R7,PC}

Пожертвования отправлять сюда R256859050930

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

F3n1X, так, процесс пошел... Как я понимаю, сами коды можно увидеть во вкладке mmc bin edit'а и редактировать там же?..

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

сами коды можно увидеть во вкладке mmc bin edit'а

На вкладке MCC находятся только МСС (это которая в правом окне) :120: и редактировать их там вообще никак нельзя 8)

редактировать там же?..

Редактировать можно в левом окне, на трёх первых вкладках... А лучше все эти манипуляции делать в компиляторе;)

 

S_t_i_n_g_e_r,

Для начала советую почитать темку о BinEdit, а то незная чем, где и куда будем начинать переносить;)

Пожертвования отправлять сюда R256859050930

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

S_t_i_n_g_e_r,

Вот, посмотри вот эту страничку, вернее то, что там выложили уважаемый мэтры: Создание патчей для начинающих

 

 

Для начала советую почитать темку о BinEdit, а то незная чем, где и куда будем начинать переносить:59:

Я туда заходил - читал, читал, но ничего не понял, так как там задают вопросы про коды, упоминая слова, непонятные новичку :bx: Поэтому хочу попросить сначала объяснить всю терминологию, а то далеко так не уехать ;)

Здесь всякие умные люди пишут всякие умные вещи... Так вот, я не такой, и поэтому не буду здесь ничего писать...

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

Поэтому хочу попросить сначала объяснить всю терминологию, а то далеко так не уехать

Всю терминологию и не обязательно знать :bx: Необходимо всего лишь знать какие кнопки что делают, как искать эквиваленты, уметь пользоваться поиском и тому подобное.

  • Like 1

Пожертвования отправлять сюда R256859050930

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

Необходимо всего лишь знать какие кнопки что делают, как искать эквиваленты, уметь пользоваться поиском и тому подобное.

А еще знать интерфейс BinEdit'а. Вот, например, в хэлпе Pimen'а, в котором собрана львиная доля инфы по написанию патчей, описание BinEdit'а устарело, поэтому, когда я читаю хэлп и доходит до практики, то я как без рук ;)

 

 

Всю терминологию и не обязательно знать :bx:

Вопрос: Блин, ну тогда как понять все эти разговоры?

Ответ: Читать хэлпы - там все написано.

Опять вопрос: Тогда как понять, что написано в хэлпах? Там тоже используется нелегкая(для новичка) терминология :59:, НО, если посидеть лишних часика три, то понять можно, а потом кажется: "И я действительно был таким тупым, что не понимал этого?"

Здесь всякие умные люди пишут всякие умные вещи... Так вот, я не такой, и поэтому не буду здесь ничего писать...

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

Вот, например, в хэлпе Pimen'а, в котором собрана львиная доля инфы по написанию патчей

Я вообще ни одного хелпа по написанию не читал, сразу взялся за перенос... Через редактор патчей не получалось, начал ручками (правда вопросами помучал некоторых :bx: ) и прогресс можете увидеть в соответствующих темах.

 

BinEdit'а устарело, поэтому, когда я читаю хэлп и доходит до практики, то я как без рук

Вопрос: Блин, ну тогда как понять все эти разговоры?

Ответ: Читать хэлпы - там все написано.

Опять вопрос: Тогда как понять, что написано в хэлпах? Там тоже используется нелегкая(для новичка) терминология , НО, если посидеть лишних часика три, то понять можно, а потом кажется: "И я действительно был таким тупым, что не понимал этого?"

Раз непонятно, пиши, поможем и с терминологией и с работай BinEdit ;)

Пожертвования отправлять сюда R256859050930

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

к примеру я хочу сделать патч Короткий пароль.открыл я прошивку и как дальше искать код,который отвечает за пароль?и в какой вкладке надо изменять старое значение на новое?

нашел я код 0000EAF8 (вроде он) и там я понял надо изменить число 16 на 4,вот только как это сделать я не знаю?

icq:8-687-692

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

нашел я код 0000EAF8 (вроде он) и там я понял надо изменить число 16 на 4

:)

нет, не он, и причем тут "16" ;)

ищи с помощью BinEdit наиболее похожий код:

переходишь в прошивке E730XEEH1 на адрес 0x100FC680, копируешь, к примеру, первые 8 байт (042800D20127A888), и вставляешь их в строку поиска в BinEdite (уже в прошивке X700). Далее жми "Искать Hex код". В результате найдено 2 адреса. Выбираешь из них тот, который наиболее похожий на код E730 (это 0x105833CC :ag:). И все :)... именно по этому адресу тебе нужно поменять Hex-код "0428" на "0128". ;)

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

Longhair,

понял.только где скачать прошивку E730XEEH1?в редакторе патчей длину обязательно ставить 2 или там может быть любое число?попробовал я ввести в поиске 042800D20127A888 и он мне выдал 20 адресов и Hex-код "0428" присутсвует только в коде 004F612E,а который ты написал 0x105833CC там вобще все по нулям.

icq:8-687-692

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

Longhair,

понял.только где скачать прошивку E730XEEH1?

 

Санёк55 Давно пора знать что вот тут ! http://firmware.sgh.ru/;)

Изменено пользователем noxmobile

С140, X100, X700, J210

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

noxmobile,

спасибо!

делаю как говорил Longhair,-(скачал прошивку E730XEEH1 нашел там адрес 0xFC680,потом скопировал первые 8 байт этого адреса (042800D20127A888) ввел в поиске BinEdite он выдал два кода- 005833CC и 004F612E.пробовал в 004F612E менять "0428" на "0128" без результатно.щас буду пробовать 005833CC наверно он мне нужен.потом отпишусь. ;)

приклепляю патч на Е730ХЕЕН1 по просьбе S_t_i_n_g_e_r.

_______________.rar

icq:8-687-692

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

в редакторе патчей длину обязательно ставить 2 или там может быть любое число?

Через редактор патчей собрались переносить? ;)

Ничего хорошего это вам не даст, лучше всё ручками делать :)

 

Longhair,

Миш, я конечно понимаю, что так тоже можно искать, но не во всех случаях ;)

К примеру код, который мы меняли для изменения текстового ресурса в патче MP3 Shadow.

 

это 0x105833CC :)

Подтверждаю, адрес правильный ;)

 

А терь напишу как я его искал. В е730 код по адресу 0x100FC680 (из патча) относится к MCC_ELSEIF 02 (0x100FC4BC) 0x0019 case переходу, в х700 на вкладке МСС (справа) находим MCC_ELSEIF 02, переходим по этому адресу и соответственно на 0x0019 case переход. И всё, находим адрес, по которому меняется код (он у нас получится 4-ым сверху после перехода) и меняем данные.

Пожертвования отправлять сюда R256859050930

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

F3n1X,

.просто посмотрел на этот патч для других телефонов и там везде стояло 2 так я и поставил.А ручками это как?

а почему 0x105833CC,а не 0x005833CC? ;)

icq:8-687-692

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

Макс, ;)

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

 

Санёк55, в прошивке адресация 0x10000000, поэтому и 0x105833CC. Если написать 0x005833CC, то компилятор может не воспринять этот адрес.

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

а почему 0x105833CC,а не 0x005833CC?

Ну ты перейди в БинЕдите по адресу 0x005833CC и посмотри чего будет...

А ручками это как?

Копаешься секундами/минутами/часами/месяцами в прошивке, бегая по коду, в нахождении нужного ;)

 

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

Миш, я знаю, а вот наши начинающие патчеписатели и портеры пока нет ;)

Пожертвования отправлять сюда R256859050930

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

а как ты определил что адрес 0x100FC680

относится к MCC_ELSEIF 02 (0x100FC4BC) 0x0019 case переходу ?

По sym файлу для Е730.

Пожертвования отправлять сюда R256859050930

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

Санёк55, в прошивке адресация 0x10000000, поэтому и 0x105833CC. Если написать 0x005833CC, то компилятор может не воспринять этот адрес.

Базу надо указывать обязательно. 0x005833CC скомпилирует, но ни к чему хорошему это не приведет.

 

По sym файлу для Е730.

Как это? Впервые слышу чтобы по sym файлу искались кейсы. Максимум что можно по нему увидеть - это название/описание thumb кода, вызываемого этой mcc командой.

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

Как это? Впервые слышу чтобы по sym файлу искались кейсы. Максимум что можно по нему увидеть - это название/описание thumb кода, вызываемого этой mcc командой.

Объясните, что такое кейсы mcc?

Здесь всякие умные люди пишут всякие умные вещи... Так вот, я не такой, и поэтому не буду здесь ничего писать...

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

Максимум что можно по нему увидеть - это название/описание thumb кода, вызываемого этой mcc командой.

Дим, ты меня не понял. Я сначала увидел название, перешёл по этому адресу и нашёл этот case.

Пожертвования отправлять сюда R256859050930

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

F3n1X, а как ты определил что адрес 0x100FC680

относится к MCC_ELSEIF 02 (0x100FC4BC) 0x0019 case переходу ?

Попробую по рабоче-крестьянски,как я сам ищу... :bx:

1.Открываем в БинЕдит прошивку E730 по искомому адресу(см.рис.1),далее ищем начало функции(стрелку вверх и поиск)

2.Начало функции 100FC4BC-на вкладку МСС смотрим-> О!Да это же 1902 MСC_ELSEIF 02(рис.2)

3.Теперь БинЕдит правильно распознала последующий код(где тумба,где арм,где дата...) жмем назад и возвращаемся на 100FC680 и от этого кода прокручиваем вверх(рис.3) пока не попадем на начало этого case-перехода(рис.4)

4.Видим что это 19-й касе,наведя курсор на адрес откуда сделан переход всплывет кусок кода с этой таблицей переходов,а кликнув по нему дважды попадем непосредственно туда.

Т.о. мы выяснили что искомый адрес лежит в 19 касе MСC_ELSEIF 02,который вызывается MCC инструкцией начинающейся 19 02 19...

Художник я не ахти,за скрины строго не судить... :ad:

12431-9-07-07)1183995820_thumb.jpg

12431-9-07-07)1183995860_thumb.jpg

12431-9-07-07)1183995880_thumb.jpg

12431-9-07-07)1183995940_thumb.jpg

/ Чтобы боялись чужие, не обязательно бить своих.../
Ссылка на комментарий
Поделиться на другие сайты

Помогите! Кто чем может! Поделитесь нормальным Sym-файлом или адресами функций и переменных для X700XEEK6.

Тот что на firmwares кривой. Быстрее бы патчи писались. Время на поиск уходит. Буду рад любой помощи!!!

Изменено пользователем Ален

_

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

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

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

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

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

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

Войти

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

Войти



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