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

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

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

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


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

Второй параметр указывает на ячейку твоей новой таблицы обработчика! У тебя в этом примере получается 0 ячейка, т.е. нужно прописать указатель на нулевую ячейку в таблице.

C этим разобрался. Прописал ссылки на свои новые таблицы в пустых ячейках, в автозубе поправил, но тело всё равно виснет :Laie_67: Грешу теперь на новые таблицы, думаю неправильно они написаны (хотя они копия твоих из МП)... Так что не знаю чего теперь делать...

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

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

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

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

Подскажите, с какой прошивки лучше портировать патчи: с D500XEEG3 или e730heeh1 для X700XEEK6?

И есть ли подробная инструкция именно для x700-го?

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

C этим разобрался. Прописал ссылки на свои новые таблицы в пустых ячейках, в автозубе поправил, но тело всё равно виснет :59: Грешу теперь на новые таблицы, думаю неправильно они написаны (хотя они копия твоих из МП)... Так что не знаю чего теперь делать...

А ты прописываешь указатель в новой таблице на свой обработчик?

 

Подскажите, с какой прошивки лучше портировать патчи: с D500XEEG3 или e730heeh1 для X700XEEK6?

И есть ли подробная инструкция именно для x700-го?

Инструкций нет, и не будет... Так как каждый патч индивидуален, шаблона никакого не может быть...

 

А с какого телефона переносить, с d500 или e730 для меня не представляет никакой разницы...

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

Инструкций нет, и не будет... Так как каждый патч индивидуален, шаблона никакого не может быть...

А с какого телефона переносить, с d500 или e730 для меня не представляет никакой разницы...

Ясно, спасибо. Я думал, что x700- это "доработанный" d500...

Если не секрет, то над каким патчем вы работаете? Очень хотелось бы увидеть "Просмотр`тхт`файлов" на X700XEEK6...

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

 

Инструкций нет, и не будет... Так как каждый патч индивидуален, шаблона никакого не может быть...

А есть инструкция как вообше портировать патчи???чтоб по внятнее,а то качал пару мануалов как ето делать и чета не как пока не вьеду до конца.

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

Всем Добрый день!

подскажите пожалуйста

1.Есть ли какойнить мануал по названиям функций в прошивке и что каждая из них делает?хотябы примерно.

2.Как присваивать имена пунктам меню?

т.е. я дописал один пункт меню,но имени у него нет(хотя работает)

как это имя вписать?

и что значат надписи в проше "отобразить меню 0х1В с параметром 0х27"(например)?

смена этих значений на другие никчему не приводит.Почему?

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

Знающие люди помогите , портирую патч с д500г3 на х700к6 патч озерс,на 3 пункте при анализе патча на изменяемые данные встаёт на адресе " 014453FC " и не хочет идти дальше, прога не зависает всё нормально ЧЁ МОЖЕТ БЫТЬ ПОДСКАЖИТЕ ???

C100 - X100 - X600 - X700 1GB

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

Krechet2012, Руками нуно,автоматом не перенесешь...

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

подскажите пожалуйста

1.Есть ли какойнить мануал по названиям функций в прошивке и что каждая из них делает?хотябы примерно.

2.Как присваивать имена пунктам меню?

т.е. я дописал один пункт меню,но имени у него нет(хотя работает)

как это имя вписать?

а на это кто-нить может ответить?

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

Всем Добрый день!

подскажите пожалуйста

1.Есть ли какойнить мануал по названиям функций в прошивке и что каждая из них делает?хотябы примерно.

Для х100 - могу написать по памяти немного + собирали на с-м давным давно для х100. Всегда указывай марку телефона, это важно.

.Как присваивать имена пунктам меню?

т.е. я дописал один пункт меню,но имени у него нет(хотя работает)

как это имя вписать?

Снова, марку телефона надо, может будет пример. Проще всего присвоить готовый текстовый ресурс из прошивки.

и что значат надписи в проше "отобразить меню 0х1В с параметром 0х27"(например)?

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

Бывших SGH`овцев не бывает.

Глупый модератор применяет наказания для самоутверждения.

Умный - для поддержания порядка. Мудрый - не применяет вообще!

 

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

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

Снова, марку телефона надо, может будет пример. Проще всего присвоить готовый текстовый ресурс из прошивки.

телефон д600.

я понимаю что проще поставить готовый ресурс но как?

я нашол где отображаеться название заголовка.

там есть переход на индекс ресурса.

но в самом меню,на этом месте стоит номер пункта меню.

вот и возникли сложности.

а команды нужны именно для создания меню.

и обращения к тфс.

хочу чтоб меню выводилось поверх картинки(как меню 1ого уровня)

нужно команды прорисовки картинки из тфс.

 

 

з.ы.помоги плиз

 

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

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

смотри исходники патчей от Freeman, там много приме

Лучше промолчать,чем так ответить... :59: Еще бы документацию по ARM посоветовал.Человек просит пример,ткни носом в патч и функцию...,к тому же такой серьезный,как TrueVision :ab:
/ Чтобы боялись чужие, не обязательно бить своих.../
Ссылка на комментарий
Поделиться на другие сайты

VitaliyDV, давай сделаем три вещи :59:

Первое - выкладывай код переделаного меню, поглядим скопом.

Второе - http://OldPh.one/index.php?showtopic=17009 - в теме создания патчей поднималась эта тема. Страницы 24-26 - были описаны мною и Димой примеры меню, сравнение создания меню в х100 и свифтах(х700/Е730, так что и для д600 пойдет).

Третье - если что, то смело стучись в аську, пробнем разобраться быстрее.

Бывших SGH`овцев не бывает.

Глупый модератор применяет наказания для самоутверждения.

Умный - для поддержания порядка. Мудрый - не применяет вообще!

 

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

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

@ mako

 

возможно ты и прав, но ведь там действительно много чего полезного. Если не поленится и покапатся в исходниках пару часов, то можно многое чего понять. Я считаю, что если спрашивать про каждую мелочь, которая итак расписана в самом удобном виде для понимания (большое спасибо Freeman, за исходники), то никогда ничего делать сам и не научишься. но это имхо 8)

 

 

нужно команды прорисовки картинки из тфс.

 

 

Вот для примера отрывок из исходника ImagineMenu. За правильность интерпретации не ручаюсь, разбирал на скорую руку :132:

 

 

LoadMainBlockBg:

ldr r0,=0x9A86

bl lk_StoreBlockPicture ;какая-то функция

ldr r0,=0x9A8A

bl lk_StoreBlockPicture

ldr r0,=0x9A88

bl lk_StoreBlockPicture

ldr r0,=0x9A72

bl lk_StoreBlockPicture

ldr r0,=ColorTheme ; в r0 адрес переменной со сначением актуальной цветовой схемы

ldrb r0,[r0] ; в r0 значение этой переменной

adr r7,sk_bg_file_01 ; в r7 адрес текстового ресурса с названием картинки

cmp r0,0 ; цветовая схема 1?

beq q1 ; если да то дальше с q1

adr r7,sk_bg_file_02 ;если нет то грузим картинку для второй схемы

q1:

adr r0,sk_bg_path ; в r0 адрес текстового ресурса (путь к папке в тфс)

mov r1,r7 ; в r1 адрес к названию картинки

bl mmitfs4_CheckFileExist ; вот и первая функция работы с тфс, видимо проверяет существует ли картинка r1 в папке r0, в r0 возвращается ответ

cmp r0,1 ; существует?

beq q2 ; если да то дльше с q2

bl DrawSoftkeyBgBitmap ; если нет, то выполняется стандартная функция прошивки, которая загружает стандартную картинку

b q3

q2:

mov r0,240 ; наверное ширина картинки

str r0,[sp] ; сохраняем в стек

mov r0,34 ; наверное высота картинки

str r0,[sp,4] ; сохраняем в стек

adr r0,sk_bg_path ; путь к папке в тфс

mov r1,r7 ; в r1 адрес к названию картинки

mov r2,0 ;какой-то параметр

mov r3,255 ;какой-то параметр

add r3,31 ; прибавляем 31

bl lk_DrawIFG ; функция видимо рисует в буфере картинку IFG формата с даными параметрами

q3:

ldr r1,=vScreenMem ;буфер в котором размещена загруженая картинка

ldr r0,=gv_BlockBg ;буфер для картинки софт-полосы

ldr r2,=153600 ; размер буфера

blx j___rt_memcpy ;копирование блока памяти R0 - адрес назначения, R1 - адрес откуда копировать, R2 - длинна блока.

a1:

mov r2,9 ;

mov r1,1 ;

ldr r0,=0x18343100 ; какието-параметры, надо копать lk_CreateMenu

bl lk_CreateMenu

ldr r0,=0x111B92C8+1

bx r0

.data

 

sk_bg_path: .string "/a/images/widget/title/"

.align 4

sk_bg_file_01: .string "set01_blocksoft_key_area.ifg"

.align 4

sk_bg_file_02: .string "set02_blocksoft_key_area.ifg"

 

 

 

Вот и всё, если немножко постарться, то можно понять, как используются и многие другие функции :)

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

Dimy4, 8):)

Самый толковый хелп,который я когда либо видел на эту тему.Огромное спасибо :) Хотя смею предположить,что ImagineMenu применить к D600 будет проблемнее,так как это "старый" свифт,и TrueVision для него ближе по набору используемых функций,но это мое ИМХО.Сел штудировать твой разбор.. :132:

спрашивать про каждую мелочь

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

ldr r1,=vScreenMem ;буфер в котором размещена загруженая картинка

Тут несоглашусь. Зная Фримена, это скорее не буфер, в котором размещена картинка. На вид это финальный буфер видеопамяти и всё, что в него записать напрямую после применения ф-ции Invalidate появится на экране.

 

Функции работы с тфс все стандартные, только немного на разных телефонах имена отличаются.

 

mmitfs4_CheckFileExist

mmitfs4_DeleteFile

mmitfs4_CreateFile

mmitfs4_GetFileSize

mmitfs4_ReadFile

mmitfs4_WriteFile

 

Каждая из них имеет некоторые параметры, могу приводить примеры с х100, думаю отличатся не должно. Если надо - говорите.

Бывших SGH`овцев не бывает.

Глупый модератор применяет наказания для самоутверждения.

Умный - для поддержания порядка. Мудрый - не применяет вообще!

 

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

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

Функции работы с тфс все стандартные, только немного на разных телефонах имена отличаются.

 

mmitfs4_CheckFileExist

mmitfs4_DeleteFile

mmitfs4_CreateFile

mmitfs4_GetFileSize

mmitfs4_ReadFile

mmitfs4_WriteFile

 

Каждая из них имеет некоторые параметры, могу приводить примеры с х100, думаю отличатся не должно. Если надо - говорите.

Да нет, параметры все совпадают как и названия. Так что с этим не возникнет проблем! :132:

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

VitaliyDV, давай сделаем три вещи :)

Первое - выкладывай код переделаного меню, поглядим скопом.

Второе - http://OldPh.one/index.php?showtopic=17009 - в теме создания патчей поднималась эта тема. Страницы 24-26 - были описаны мною и Димой примеры меню, сравнение создания меню в х100 и свифтах(х700/Е730, так что и для д600 пойдет).

Третье - если что, то смело стучись в аську, пробнем разобраться быстрее.

меню я переделал обычным дилетантским способом.

это был патч "сворачивание мп3 при паузе с сохр места остановки"

просто в стандартном меню кот сост. из 4х пунктов испривал на пять и добавил переход на функцию очистки экрана.

(глупо но заработало)

по надписям я понял что там есть ссылка на"блок"текста,где попорядку перечисляються все надписи.(в моём случае 4,и надо просто добавить текст пятой,и она отобразиться)

а существует ли полный sym фаил как для Е730 для д600

или его можно создать с помощью бинЭдит или чего ещё

и как вписывать команды типа"ldr r0,=0x9A8A и т.д."

я имею ввиду писать их словами в код,а прога(бинЭдит) сама переведёт в шеснадцатиричный код?

 

понимаю что сначала нужно изучить документацию к АМR! ссылку где взять не подскажите :)

P.S. извините за глупые вопросы,но очень хочу разобраться в этом!

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

а существует ли полный sym фаил как для Е730 для д600

Да его вообщето и на e730 не существует :roll:

 

и как вписывать команды типа"ldr r0,=0x9A8A и т.д."

Так и пишешь в компиляторе:

 

   ldr r0,=0x9A8A
.data

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

Да его вообщето и на e730 не существует

как не существует тогда что на предыдущей странице пост номер #482 ?

так же в одной из тем нашёл ссылку ( http://firmware.sgh.ru/) где есть SYM Custom для д600

и вообще что даёт этот фаил?

или это просто список всех функций с адресами их расположений?

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

как не существует тогда что на предыдущей странице пост номер #482 ?

dimastyj имел в виду оргинального sym файла нет, а кастомовский имеется...

где есть SYM Custom для д600

и вообще что даёт этот фаил?

Именно это он и даёт:

список всех функций с адресами их расположений

 

Чем custom отличается от оригинала: в custom нет некоторых функций, и названия некоторых функций не совпадают... Лучше всего, как говорит dimastyj, искать необходимую функцию, сверяв её с оригинальным на данным момент близким sym файлом к х700, д600, е730 D500BVDK8.sym :roll:

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

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

Вот код меню.

 

11751F04  91 01 0000 0000 0000 00000000 0000 0000  MCC_STACK

11751F14  5C 00 0000 0000 0000 00000000 0000 0000  Подготовка окна

11751F24  78 00 0000 0000 0000 00000000 0000 0000  Пункт меню 1 будет выбран по умолчанию

11751F34  75 00 0100 0041 0000 00000000 B000 0000  Начало меню, ширина 176

11751F44  7C 1B 1C00 0500 0500 00000000 0000 0000  Меню 0x1B из 5 пунктов

11751F54  76 1B 1C00 0000 0202 00000000 1000 0000  Отобразить меню 0x1B с параметром 202

11751F64  79 00 0000 0000 0000 14CAA010 0000 0000  По пункту меню 1 переход на адрес 0x10A0CA14

11751F74  79 00 0100 0000 0000 C47F6911 0000 0000  По пункту меню 2 переход на адрес 0x11697FC4

11751F84  79 00 0200 0000 0000 E8795E10 0000 0000  По пункту меню 3 переход на адрес 0x105E79E8

11751F94  79 00 0300 0000 0000 40A46911 0000 0000  По пункту меню 4 переход на адрес 0x1169A440

11751FA4  79 00 0400 0000 0000 44207511 0000 0000  По пункту меню 5 переход на адрес 0x11752044

11751FB4  18 09 0100 0F00 0000 C87D5E10 0000 0000  Если нажать кнопку "правая софт" то переход на 0x105E7DC8

11751FC4  1C 00 0000 0000 0000 34D0A010 0000 0000  Переход на адрес 0x10A0D034

11751FD4  18 1A 1200 0100 0100 F03CE410 0000 0000  Если x1=26 x2=18 x3=1 то переход на 0x10E43CF0

11751FE4  18 1A 1200 0100 0000 68296110 0000 0000  Если x1=26 x2=18 x3=1 то переход на 0x10612968

11751FF4  18 1A 1200 0A00 0100 F03CE410 0000 0000  Если x1=26 x2=18 x3=10 то переход на 0x10E43CF0

11752004  18 1A 1200 0A00 0000 884A7510 0000 0000  Если x1=26 x2=18 x3=10 то переход на 0x10754A88

11752014  19 1A 1200 0A00 0000 08815E10 0000 0000  Или если x1=26 x2=18 x3=10 то переход на 0x105E8108

11752024  1A 00 0000 0000 0000 08815E10 0000 0000  Иначе переход на 0x105E8108

11752034  1C 00 0000 0000 0000 B40A1C10 0000 0000  Переход на адрес 0x101C0AB4

11752044  41 00 0000 0000 F000 00000000 4001 0000  Очистить часть экрана 240x320

11752054  1C 00 0000 0000 0000 B4216411 0000 0000  Переход на адрес 0x116421B4

 

просто добавил одну строчку.

Где в этом коде ссылка на текстовый ресурс.

Блин замучался уже. не могу найти.

а в этой строке всё понятно

10755818  42 21 D204 0000 0100 00000000 0000 0000  Заголовок "Загруженые звуки"

(это строка из другого меню.)

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

Где в этом коде ссылка на текстовый ресурс.

А тут ее и нету (ссылки).

Нужно ковырять вот эту мсс 7C 1B 1C00 0500 0500 00000000 0000 0000 Меню 0x1B из 5 пунктов (mcc_menu_config 0х1B)

Сделал дело, вымой тело...

Нужна помощь? Ждем на irc-канале #sgh

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

А тут ее и нету (ссылки).

Нужно ковырять вот эту мсс 7C 1B 1C00 0500 0500 00000000 0000 0000 Меню 0x1B из 5 пунктов (mcc_menu_config 0х1B)

т.е. должен быть адрес ресурса 0х001С но там другой ресурс(слово)

или нужно посмотреть по адресу вызова этой ммс?

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

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

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

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

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

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

Войти

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

Войти



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