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

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

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

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


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

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

OS: 2.2.1

Core: 2.6.29

Mod: CM 6.1

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

  • Ответов 1,4 тыс
  • Создана
  • Последний ответ

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

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

Ну есть несколко способов, по крайней мере 2 :jokingly:

Через вызов функции hen3_03LowvoltInd

bl	hen3_03LowvoltInd

или

через функцию hen3_10SendSPPSwitchOffInd

mov r0 1	
bl hen3_10SendSPPSwitchOffInd

  • Like 1
Сложность программы растет до тех пор, пока не превысит способности программиста!!!
Ссылка на комментарий
Поделиться на другие сайты

Такой вопросик: решил написать ма-а-аленький патчик для х700... :ak:

В очередной раз читаю хелпы и не могу въехать:

МСС инструкцию можно разбить на 8 параметров

 

AA BB CCCC DDDD EEEE FFFFFFFF GGGG IIII

- это для х100... а как будет выглядеть инструкция для Свифта?..

C помощью какой MCC выводится окно "Клавиатура заблок." ?

На сколько я понял - это MCC_REPORT (47)... или я заблуждаюсь?..

Индекс данного текстового ресурса 0783...

В BE в поиске набираю 47??????????0783 - результат нулевой...

подскажите плиз... :(

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

C помощью какой MCC выводится окно "Клавиатура заблок." ?

На сколько я понял - это MCC_REPORT (47)... или я заблуждаюсь?..

Она самая :ak:

Индекс данного текстового ресурса 0783...

В BE в поиске набираю 47??????????0783 - результат нулевой...

подскажите плиз... :(

если текстовый ресурс 0783 то надо искать 8307

т.е.

47??????????8307

Изменено пользователем Дамир
  • Like 1
Сложность программы растет до тех пор, пока не превысит способности программиста!!!
Ссылка на комментарий
Поделиться на другие сайты

Спс, с этим я разобрался... нашол этот код (благо он оказался единственным :) )

следующая строчка:

1113A730: 170A9500000001000000000000000000 DCM MCC_TASK 0xA 0x95 0 0x1 ;Выполнить 0xA x2=149 x3=0 x4=1 x5=0 x6=0

это вообще темный лес... что она делает?.. для чего это?..

и еще подскажите каким образом можно потушить подсветку...

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

Это выполнение определенного задания,если дословно переводить. в нем может выполнятся все,что угодно.от забивания байта в оперативку до вплоть хоть прорисовки изображения,или фокусного меню. чтобы посмотреть,что выполняет этот таск-надо открыть в правой части бин едита вкладку мсс-Дальше смотришь второй байт в мсс-он у тебя- 0А. значит открываи в правой части - mсс_task 0А. далее смотришь третий байт таска в мсс- он у тебя95. открываешь девяносто пятый кейс. простым языком,кейс в бин едите обозначается примерно так-""При ххх переход на"". вот это ххх - и есть кейт.но в каждом таске кейсы описываются по-разному. могут вообще не описыватся,как я сказал. но в принципе,я думаю,что пока не знаешь асма-лучше не рассматривать,что именно таск делает,т.к, все равно ничего без знаний асма ничего не поймешь :)как потушить подсветку-это делается на асме,не на мсс.

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

это вообще темный лес... что она делает?.. для чего это?.

Блокирует клавиатуру :)

 

и еще подскажите каким образом можно потушить подсветку...

через вызов функции (в коде)

bl lk4_BackLight_Off

  • Like 1
Сложность программы растет до тех пор, пока не превысит способности программиста!!!
Ссылка на комментарий
Поделиться на другие сайты

через вызов функции (в коде)

bl lk4_BackLight_Off

не нашол такой... есть только lk4_Keypadlight_off...

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

если не ошибаюсь,то моментальное выключение всей подсветки делается так-

mov r0,0

mov r1,0

mov r2,0

mov r3,0

bl lk_backlight_on :)

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

не нашол такой... есть только lk4_Keypadlight_off...

Если не нашел, то не значит что его нет :132:

.equ lk4_BackLight_Off 0x10E52284

 

' date='05.11.2008, 7:26' post='396975']

если не ошибаюсь,то моментальное выключение всей подсветки делается так-

mov r0,0

mov r1,0

mov r2,0

mov r3,0

bl lk_backlight_on :59:

Незнаю как у вас, а у меня выключается через lk4_BackLight_Off :ad:

Только что себе сделал выключение подсветки :132: , прикольно :)

  • Like 2
Сложность программы растет до тех пор, пока не превысит способности программиста!!!
Ссылка на комментарий
Поделиться на другие сайты

Незнаю как у вас, а у меня выключается через lk4_BackLight_Off :(

Значит у меня экв не правильно назван :(

Только что себе сделал выключение подсветки :ad: , прикольно :59:

Угу, прикольно смотрится ;):az:

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

через вызов функции (в коде)

bl lk4_BackLight_Off

там идет Вызов MCC одну за одной... как заставить тело выполнить код?..

 

Мыслю так:

вместо МСС вывода окна прописываю MCC_CALL с переходом в неиспользуемую область прошивки,

затем в этой области:

1. Вывод окна "Клавиатура заблок."

2. Тушу подсведку

3. Возврат обратно (MCC_Return, если не ошибаюсь...)

верны ли мои рассуждения?..

 

так вот, как реализовать пункт 2, если это не МСС?.. :bx:

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

там идет Вызов MCC одну за одной... как заставить тело выполнить код?..

Код - в смысле своя мсс?

Мыслю так:

вместо МСС вывода окна прописываю MCC_CALL с переходом в неиспользуемую область прошивки

Можно так. Или же через MCC_TRANSF с переходом на "пустой адрес", где прописываешь затертый код (своей MCC_TRANSF), пишешь свой код и возвращаешься на адрес, идущий после мсс-врезки.

Мыслю так:

затем в этой области:

1. Вывод окна "Клавиатура заблок."

2. Тушу подсведку

3. Возврат обратно (MCC_Return, если не ошибаюсь...)

верны ли мои рассуждения?..

В прицнипе, рассуждения верны.

так вот, как реализовать пункт 2, если это не МСС?.. :)

Есть в прицнипе, несклько способов.

1) Найти тот MCC_TASK, в котором идет тушение подсветки. НО - таск, где только происходит тушение подстветки ты вряд ли найдешь.

2) Врезаться в таск какой-нибудь имеющийся, и там прописать проверку на дополнительный параметр-байт в МСС. Трудновато будет.

3) В-прицнипе, самый простой - создать свой таск через мастер-патч. Конечно, это хорошо ориентируясь в мастер-патче, это тогда уже легко. Но в-прицнипе, попытаюсь попроще объяснить на примере :)

 

Мастер-патч создает свою МСС-таск, которая состоит из 255 ячеек. Некоторые патчи заполняют эти ячейки.

Так вот, как можно проще всего добавить свой таск.

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

.start AsteriX_task_tab+0xZZ*4

.word my_task+1

Теперь объясняю. Эквивалент AsteriX_task_tab надо узнать у патчмейкеров, кто создавал мастер-патч,или же кто пользовался им. В данном случае, ZZ - означает номер занимаемой ячейки в таблице тасков. В этом примере используется шестнадцатеричная система счисления, то есть 255 = 0xFF. Поэтому вместо ZZ можно писать значения от нуля до FF. никаких 0x100.

Также "+1" обязателен для тасков (а также для ифов, и для меню, но пока речь не об этом). +1 означает, что процессору нужно переключится в THUMB режим, то есть выполнять команды асма.

Допустим мы выбрали ячейку 0xFF. Пишем значит:

.start AsteriX_task_tab+0xFF*4

.word my_task+1

Далее возвращаемся к нашим МСС.

Сначала ты говоришь, что хочешь вывести сообщение о заблокированной клаве? Хорошо. Пишем тогда в компиляторе такое:

.mcc mcc_init_restore ;это подготовка окна. Обязательная мсс перед выводимым каким-нибудь окошком или меню и т.д.

.mcc mcc_report ;тут уже надо указать параметры. Время окна, тип окна, текстовый индекс.

.mcc mcc_task 0x10 0xFF ;0x10 - это добавляемый мастер-патчем MCC_TASK. Надо уточнить у патчмейкеров, т.к. на разных телах разные MCC_TASK добавляются. На старых телах (вплоть дo D900) добавляется 0x10. На более новых - E200,G600, etc - добавляется 0x14. А 0xFF - это наш таск :)

.mcc mcc_exit (или mcc_return, если ты выводил свои мсс - через MCC_CALL). MCC_EXIT - означает завершение скрипта, то есть откуда были вызваны эти мсс. Чаще всего выбрасывает эта мсс - на рабочий стло.

Далее пишем:

my_task: ;здесь описываем наш таск. То есть, выключаем подсветку (на асме).

xxxx

xxxx ;эти xxxx - здесь код сам

Потом пишем после кода такое:

add sp,0x100

pop {r4-r7,pc}

Этот код означает, что мы выходим из нашего MCC_TASK 0x10.

 

Удачи :bx:

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

" post=397990]

Эквивалент AsteriX_task_tab надо узнать у патчмейкеров

кто знает, скажите плиз... :x

и табличку занятых патчами "ячеек"...

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

FRAER,

Я делал без использования мастер патча, ты можешь также сделать :ad:

 

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

.start 0x2138A2D0

.mcc mcc_transf 0 0 0 0 OffBackLigth

 

.start 0x205DA8A0 ;Здесь врезаемся в таск блокировки клавиатуры

ldr r0,=CheckKeyLockTask+1

bx r0

 

 

;Свободное место в прошивке

.start 0x20C2CEA0

OffBackLigth:

.mcc mcc_task 0xA 0x8D 0 0x1 0 0x1 ;этот тот же таск, что и блокирует клавиатуру, только добавлен еще один параметр, 0х1 - (самый последний)

 

.mcc MCC_RETURN ;Восстанавливает тот код, который затерли по адресу 0x2138A2D0

 

CheckKeyLockTask:

ldrb R0, [R4, #12] ;Грузим в регистр 12-й байт, т.е. тот, на место которого мы записали 0х1

cmp r0 1 ;Сравниваем с 1

beq KeyBackLigthOff ;Если равно то тушим подсветку, иначе блокируем клавиатуру

 

LDRH R0, [R4, #6] ;восстанавливаем код, который затерли по адресу 0x205DA8A0

LSL R0, R0, #24

LSR R0, R0, #24

STRB R0, [R6]

BL lk4_KeylockInd

ldr r0,=0x205DA8AC+1; возврашаемся после врезки 0x205DA8A0

bx r0

.data

 

 

KeyBackLigthOff:

bl lk4_BackLight_Off ;тушим подсветку и выходим из таска

ADD SP, SP, #0x1FC ;SP = SP + 508

ADD SP, SP, #0x1FC ;SP = SP + 508

ADD SP, SP, #0x1FC ;SP = SP + 508

ADD SP, SP, #0x120 ;SP = SP + 288

POP {R4-R7,PC}

  • Like 3
Сложность программы растет до тех пор, пока не превысит способности программиста!!!
Ссылка на комментарий
Поделиться на другие сайты

А если блокировка клавиатуры без сообщения? я так понял здесь идет привязка к сообщению что клава забкок.

Errare humanum est

a62 -> k700i -> x620 -> x700-1 -> x100-1+x700-2 -> x100-2 -> Glofiish X500+ и SE W595i -> Nokia 1202 -> Lumia 730 DS -> Nokia 7.2

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

FeSS2,

привязки здесь никакой нет... :28: А убрать его можно и патчем KeyLock v.2.5

 

компилятор ругается на lk4_BackLight_Off - типа не знает такой, я так понял, надо ее описание в файл сигнатур добавить?.. как это сделать?.. или я не прав?..

 

вопрос про Мастер-патч, еще в силе, тк буду делать свою MCC - она мне потребуется в след. патче... :(

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

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

Errare humanum est

a62 -> k700i -> x620 -> x700-1 -> x100-1+x700-2 -> x100-2 -> Glofiish X500+ и SE W595i -> Nokia 1202 -> Lumia 730 DS -> Nokia 7.2

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

FeSS2,

надо сначала его написать... :132: а там посмотрим... :)

________________________

перелопатил щас пол темы Все патчи для х700 с3, нашол вот что (может кому пригодиццо... :) ):

X700XEFC3_Api.rar

;BackLight

.equ lk4_BackLight_Off 0x10E52284 ;void lk4_BackLight_Off()

.equ lk4_BackLight_On 0x109D951C

Как раз, то что мне нужно... :)

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

FeSS2,

надо сначала его написать... :) а там посмотрим... :132:

 

Ну я так...:) идея очень хорошая, я тут читаю, тоже малость вникаю...:) я думаю у тя должно работать с обоими вариантами, с окном и без оного:)

Errare humanum est

a62 -> k700i -> x620 -> x700-1 -> x100-1+x700-2 -> x100-2 -> Glofiish X500+ и SE W595i -> Nokia 1202 -> Lumia 730 DS -> Nokia 7.2

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

FRAER,

чтобы посмотреть таблицу мастер-патча надо открыть прошивку с установленным мастер-патчем, потом на вкладки МСС находишь MCC_MENU_CONFIG_13, дальше жмёшь два раза на адрес этой MCC (1087E498).Потом слева на вкладке КОД ишешь первый адрес в коде а именно 1087F21C - это и есть адрес таблицы мастер-патча.Переходишь на него включаешь отображение кода как Data long и смотришь на код - 1087F230-первая ячейка, 1087F234- вторая ячейка и т.д. ищешь дальше свободную ячейку (где 00000000).Это и будет свободная ячеёка которую ты можешь использовать.У меня к примеру свободна 1087F240.Значит в коде пишешь

.start 0x1087F240
  .word menu+1

Это пример при создании нового меню используя мастер патч. Надеюсь понятно объяснил...

  • Like 4

icq:8-687-692

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

Подскажите, в чем моя ошибка:

.start 0x1087F268: ;Создаем свой таск в Мастер-патч (ячейка 0x0E)
.word Task_MyBackLightOff+1

.start 0x1113A730: ;После сообщения "Клавиатура заблок."
.mcc mcc_transf 0 0 0 0 0x107D8EF0

.start 0x107D8EF0: ;Картинка Неизвестные -> 295
.mcc mcc_task 0x10 0x0E ;Вызов своего таска Task_MyBackLightOff
.mcc mcc_task 0xA 0x95 0 0x1 ;Вызов таска блокировки клавиатуры (затертого по адресу 0x1113A730)
.mcc mcc_exit ;Возврат

Task_MyBackLightOff:
bl 0x10E52284 ;lk4_BackLight_Off
add sp,0x100
pop {r4-r7,pc} ;Выход из таска

подсветка не тухнет... :(

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

Подскажите, в чем моя ошибка:

.start 0x1087F268:;Создаем свой таск в Мастер-патч (ячейка 0x0E)
.word Task_MyBackLightOff+1

подсветка не тухнет... :az:

 

если не ошибаюся, то ячейка 0x0E находиться по адресу 0х1087EE54

  • Like 1
Сложность программы растет до тех пор, пока не превысит способности программиста!!!
Ссылка на комментарий
Поделиться на другие сайты

 .start 0x1087EE4C:;Создаем свой таск в Мастер-патч (ячейка 0x0C)
.word Task_MyBackLightOff+1

.start 0x1113A730:;После сообщения "Клавиатура заблок."
.mcc mcc_transf 0 0 0 0 0x107D8EF0

.start 0x107D8EF0:;Картинка Неизвестные -> 295
.mcc mcc_task 0xA 0x95 0 0x1;Вызов таска блокировки клавиатуры (затертого по адресу 0x1113A730)
.mcc mcc_task 0x10 0x0C;Вызов своего таска Task_MyBackLightOff
.mcc mcc_exit;Возврат

Task_MyBackLightOff:
bl 0x10E52284;lk4_BackLight_Off
add sp,0x100
pop {r4-r7,pc};Выход из таска

В чем же теперь дело?.. :9:

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

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

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

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

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

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

Войти

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

Войти



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