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

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

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

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


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

Подскажите...

Как можно включить/отключить подсветку клавиатуры?

и как проверить включена ли она в данный момент?.. :)

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

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

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

На каком телефоне??? Чем смогу если че помогу!!!

И вам того же!!!

Да поможет вам F1, да сохранит вас F2

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

Подскажите...

Как можно включить/отключить подсветку клавиатуры?

и как проверить включена ли она в данный момент?.. :ad:

Чтобы включить подсветку клавы надо: вызвать функцию dpc_30KeypadBacklightOn

Чтобы выключить - вызвать dpc_31KeypadBacklightOff

v_dpc_BacklightOn+5(v_dpc_KeypadBacklightOn)

в этой переменной хранится: 1 - если подсветка клавы включена, 0 - если выключена.

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

ADR	R3, =table1
LDRB	R3, [R3, R7]
LSL	R3, R3, 1
ADD	PC, R3
.align 2
table1:
02	DCB	0x02;B loc_20BD5C1C
11	DCB	0x11;B loc_20BD5C3A
17	DCB	0x17;B loc_20BD5C46 
1A	DCB	0x1A;B loc_20BD5C4C 

loc_20BD5C1C:; CASE 0x0000
MOV…

 

Как в исходнике такое описать ? Не вижу чем автоматически рассчитать смещения в таблицу переходов… И как это делают, если не вручную ?

Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com

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

ADR	R3, =table1
LDRB	R3, [R3, R7]
LSL	R3, R3, 1
ADD	PC, R3
.align 2
table1:
02	DCB	0x02;B loc_20BD5C1C
11	DCB	0x11;B loc_20BD5C3A
17	DCB	0x17;B loc_20BD5C46 
1A	DCB	0x1A;B loc_20BD5C4C 

loc_20BD5C1C:; CASE 0x0000
MOV…

 

Как в исходнике такое описать ? Не вижу чем автоматически рассчитать смещения в таблицу переходов… И как это делают, если не вручную ?

Я, например, пользуюсь вариантом, `сворованным` у Freeman :bx:

По памяти попробую написать. Как строить кейсы, исходя из третьего параметра, допустим mcc_task:

.start AsteriX_task_tab+0xFF*4
.word tsk_FF_multi_task+1
--------------
.start 0x23456780
tsk_FF_multi_task:
ldrh r0,[r4,4];получаем четвертый байт в строке мсс
.case r0 tsk_exit tsk_00_first_my_task tsk_01_second_my_task ............ tsk_NN_my_task
;;;;;;;;;;;;;;;;;;;;;;
tsk_exit:
add  sp,0x100
pop {r4-r7,pc}
;;;;;;;;;;;;;;;;;;;;;;;
tsk_00_first_my_task:
.......................
b tsk_exit
;;;;;;;;;;;;;;;;;;;;;;;
tsk_01_second_my_task:
.......................
b tsk_exit

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

И так далее. Можешь поискать в исхах моих на G600 - я в каком-то патче так делаю.

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

 

Как в исходнике такое описать ? Не вижу чем автоматически рассчитать смещения в таблицу переходов… И как это делают, если не вручную ?

в описании к компилятору binedit есть про CASE переходы.

.case Rx, default, metka0, metka1, …. – переход по метке в зависимости от значения в регистре Rx. default – метка на которую будет сделан переход при превышении значением Rx количества меток. Для хранения смещения используется 2 байта. Длина переходов до 65535 байт

 

 

 

.caseb Rx, default, metka0, metka1, …. – переход по метке в зависимости от значения в регистре Rx. default – метка на которую будет сделан переход при превышении значением Rx количества меток. Для хранения смещения используется 1 байт. Длина переходов до 255 байт

 

Пример

 

 

 

.case R2, metka label3 label1 label2 label3

 

 

 

label1: mov r1 10

 

b metka

 

label2: mov r1 11

 

b metka

 

label3: mov r1 13

 

metka:

Изменено пользователем AlexeyK
  • Like 1

Одна из последних версий binedit здесь.

AlexeyK.gif

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

А как (на примере какого-нибудь дуоса, желательно) узнать что кнопка не нажата ?

 

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

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

 

Системные переменные (для D780XEHE1 ~304984F0, D880xegk5 ~304AF528; d880xehg2 ~304AEBE0; d980xehl1 ~303445E0 - адреса не точные и не синхронные, но см посление 16 байт у каждого) содержат сканкоды, и статус удержания. Однако, статус удержания - накапливающийся - т.е. сначала его нет, а кнопка уже сработала, но потом если кнопку держат - он появляется. Таким образом - тут не сделать одновременно обработки и короткого и длинного нажатия. И смотрим как реализовано длинное нажатие кнопки фото (она реагирует только на длинное нажатие) - она запускает по короткому нажатия, а дальше каждый раз процедура запуска завершается если пока нет удержания.

 

Вобщем, мне надо найти какую-то переменную с помощью которой можно понять что кнопки уже отпущены.

Тогда было бы реально одновременно задействовать и длинные и короткие нажатия…

Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com

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

  • 2 недели спустя...

заинтересовал такой вопрос, не совсем, конечно, по теме, но все же...

в общем как я себе представляю работу какой-либо программы: для работы с периферийными устройствами (в том числе и с фс) программа вызывает функции прерываний операционной системы, под которой она запущена

ОС в свою очередь вызывает функции прерываний биоса, которые и осуществляют требуемые действия...

так вот, в телефоне есть что-то наподобие биоса? или я что-то себе не так представляю?..

 

пример: мне нужно обработать большой файл, в оперативку весь он не влезет, да это и не нужно...

можно ли это осуществить по подобию с компьютерной программой: открыть файл, читать из него, закрыть файл...

нужно вызывать определенные функции кокого-то прерывания?

 

:49::bh:

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

А может кто нибудь объяснить как можно сделать чтобы при выполнении какой то операции, запускалочь окно с запросом кода разлокировки,и если код верен, продолжение выполнения операции? Желательно на примере x700.

Обожаю свою жену Анюточку! =)

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

заинтересовал такой вопрос, не совсем, конечно, по теме, но все же...

в общем как я себе представляю работу какой-либо программы: для работы с периферийными устройствами (в том числе и с фс) программа вызывает функции прерываний операционной системы, под которой она запущена

ОС в свою очередь вызывает функции прерываний биоса, которые и осуществляют требуемые действия...

так вот, в телефоне есть что-то наподобие биоса? или я что-то себе не так представляю?..

 

пример: мне нужно обработать большой файл, в оперативку весь он не влезет, да это и не нужно...

можно ли это осуществить по подобию с компьютерной программой: открыть файл, читать из него, закрыть файл...

нужно вызывать определенные функции кокого-то прерывания?

 

:49::bh:

что то вроде bios есть :ac:. в процессоре зашита микро программа, которая либо стартует основной код, либо позволяет загрузить загрузчики, которые в свою очередь позволяют, например, перепрошить телефон.

 

ИХМО. программа, скорее всего, сама не вызывает прерывания операционной системы, а просто считывает данные из оперативной памяти, а вот туда их помещают резидентные модули(ОС) , которые запускаются либо по таймеру, либо по внешним прерываниям.

  • Like 1

Одна из последних версий binedit здесь.

AlexeyK.gif

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

пример: мне нужно обработать большой файл, в оперативку весь он не влезет, да это и не нужно...

можно ли это осуществить по подобию с компьютерной программой: открыть файл, читать из него, закрыть файл...

нужно вызывать определенные функции кокого-то прерывания?

Покопайся в исходниках патчей от того же х100, читай файл кусками с помощью API ОС.

 

Уже н-ное количество лет "в моду" вошел HAL - hardware abstraction layer, который позволяет конечному программисту забыть о деталях реализации конкретного ядра конкретной ОС и RTOS - не исключение. HAL разрабатывают создатели ОС: он предоставляет набор базового API, На основе которого пишут более высокоуровневый API и так далее, пока не надоест или останется смысл :bh:.

  • Like 1

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

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

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

 

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

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

подскажите, как работать с текстовыми ресурсами в мастер-патче???

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

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

  • 2 недели спустя...

Делал подобное в Файл-менеджере для Х100 с использованием буфера под MMF. Интересует?

дааа.... если можно

OS: 2.2.1

Core: 2.6.29

Mod: CM 6.1

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

  • 2 недели спустя...

Люди как добраца к значениям эквалайзера. Чтоб их отредактировать. Я искал строки (Spok, Bass), Я на правильном пути? :)

Счастливый обладатель лицензионной Windows 7

Для друзей просто ' Паня '

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

D780:

0x208F9F68 T InitialiseSMS_PACKET

Возможно ли этой функций пере прочитать /a/sms/sms.dat если да то какие у нее параметрыю

заранее спасибо

OS: 2.2.1

Core: 2.6.29

Mod: CM 6.1

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

Умные люди подскажите пожалуста как найти обработку проц. курсора. Я нашёл два курсора в мыле и в секундомере и всё другие никак немогу найти

P.S. 0x201598C4 ;мыло (если быть точным то это Нашёл Русел [AlaSToR])

0x20E4CC9A ;секундомер (это уже я нашёл)

прошивка D780XEHE1

Mac OS X 10.9/ IOS 7

Перешёл на Macintosh

Я vkontakte, Я в myspace, Я в facebook

УШЕЛ

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

Можно ли этот патч с D900i на D900 переделать?

 

Другие функции в горячих клавишах

D900iXEGF2

 

Добавляет возможность поставить в *Горячие клавиши* *Тест меню*, *Приложения* либо *Контакты*, с заменой надписи, в опциях можно выбрать что именно будет в быстром доступе вместо Мирового времени

По умолчанию будут *Контакты*

 

Патч

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

Прошу подсказать мне по 2м вопросам.

 

1.

 

Допустим у меня есть функция. Я знаю начальное значение регистров.

Подскажите программное обеспечение или каким отладчиком можно воспользоваться, чтобы можно было открыть там эту функцию, ввести начальное значение регистров, быстренько выполнить её до конца и посмотреть конечное значение регистров. И чтобы можно было поглядеть что в стеке творится.

 

Я по своей неопытности делаю это методом "в уме да на листике".

 

 

 

2.

 

Иногда при просмотре прошивки нахожу куски кода типа такого (комментари мои :bs: )

 

// .... какой-то код

// .....

ADD R0, #0xB5 ; пусть в регистре был 0. Теперь там 0xB5

LSL R0, R0, #16 ; сдвигает биты, теперь в R0 лежит 0xB50000

LSR R0, R0, #16 ; сдвигает биты обратно, теперь в R0 опять 0xB5 !!!!

// .... продолжение кода

 

Скажите, какой смысл в этом блоке, если в R0 так и осталось 0xB5 ?? Можно же одним ADD обойтись.

Двери есть везде, нужно просто знать как в них войти!

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

Позитрон,

какой смысл в этом блоке

походу это корейский компилятор так скомпилировал прошивку... :bs:

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

Позитрон,

 

походу это корейский компилятор так скомпилировал прошивку... :bs:

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

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

ну почему?? если переменная имеет тип wchar_t или u16 (16 бит короче), то нам необходимо обнулить старшие биты... мало ли чего в них может появиться... что собственно компилятор и делает..

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

ребятки..нарыл в инете статейку про assembler...

не знаю будет она Вам полезна или нет...так как сам ничего не соображаю 8)

вобщем вот -assembler.rar почитайте...

Это конечно все хорошо, но статейка к патчам никак не вяжется ибо это комповский ассемблер
не знаю будет она Вам полезна или нет...так как сам ничего не соображаю :(

пусть полежит до вечера..может и пригодится кому, а если нет - можете почистить. :)

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

ребятки..нарыл в инете статейку про assembler...

не знаю будет она Вам полезна или нет...так как сам ничего не соображаю 8)

вобщем вот -assembler.rar почитайте...

Это конечно все хорошо, но статейка к патчам никак не вяжется :( ибо это комповский ассемблер :)

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

Ещё один вопрос, подобный моему предыдущему.

 

Есть участок кода

....

....

ADD R3, SP, #0x0

STRH R2, [R3, #40]

STRH R1, [R3, #42]

....

 

То бишь в R3 помещаем верхушку стека и используем его как посредника, чтобы записать в стек+смещение параметры R2 и R1.

 

А что изменится, если сделать вот так:

 

....

....

STRH R2, [sP, #40]

STRH R1, [sP, #42]

....

....

 

?

Двери есть везде, нужно просто знать как в них войти!

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

А что изменится, если сделать вот так:

 

STRH R2, [sP, #40]

STRH R1, [sP, #42]

?

А ты хотя бы этот код компилить пробовал? :crazy!:

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

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

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

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

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

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

Войти

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

Войти



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