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

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

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

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


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

Правда теперь меня смущает, то место которое я нашёл - а гарнитура ли там обрабатывается или нет...

Занопь проверку этой клавиши(команда NOP).

Убедишься это/не это место :av:

 

Вот это если я правильно понял - ADD SP, SP, #0x1C - в регистре SP выделяется дополнительно 1C байт.

Это отдача памяти.

Выделение для данного случая - SUB SP, SP, #0x1C.

 

Советую почитать эту статью для минимального введения в ARM:

http://developers.sgh.ru/2007/02/04/osnovn...mirovanija.html

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

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

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

47 06 0200 1800 5B05 00000000 0000 0000  Сообщение "Содержимое не поддерживается"

 

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

Есть подозрения что за время задержки отвечает параметр 1800,но вот со звуком проблемы :)

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

Говорите что думаете и думайте что говорите...

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

-=VLAD=-, время задержки это второй параметр 0х02. А звук - первый, т.е. 0х06.

 

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

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

параметр 1800

по моим наблюдениям-это просто указатель каким ифом вызывается это окно,в данном случае(для E200)-это camera0_4if
  • Like 1
/ Чтобы боялись чужие, не обязательно бить своих.../
Ссылка на комментарий
Поделиться на другие сайты

-=VLAD=-, время задержки это второй параметр 0х02. А звук - первый, т.е. 0х06.

 

0200,как я понял,это время задержки окна на 2000 мс.

Т.е. чтобы мне сделать задержку окон до 1000 мс надо менять с 0200 на 0100?

До 500 мс - менять с 0200 на 0050 и т.д.

Говорите что думаете и думайте что говорите...

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

0200,как я понял,это время задержки окна на 2000 мс.

Правильно.

 

Т.е. чтобы мне сделать задержку окон до 1000 мс надо менять с 0200 на 0100?

Да.

 

До 500 мс - менять с 0200 на 0050 и т.д.

Нет. Это будет 1 час 23 минуты 20 секунд :51:

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

Вставлял себе в телефон СИМ-карту от МТС, обратил внимание, что в приложениях появился новый пункт меню МТС-info.

В коде же нет такого пункта, откуда он считываеться? И там дальше всякие пункты типа "Чат", "Флирт" и т.п., можно менять язык, в прошивке же тоже не записаны эти текстовые ресурсы.

 

В телефонной книге появился пункт "Каталог сервисов", где тоже ещё 5 пунктов, написанных транслитом:

 

1 Spravka MTS

2 MGTS

и т.д, со всплывающими подсказками.

 

Так вот, это всё дело есть в коде или ещё откуда-то считывается?

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

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

Так вот, это всё дело есть в коде или ещё откуда-то считывается?

если я не ошибаюсь то, это читается из сим карты

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

Вот например у меня Djuice Украина!!!

так у меня в приложениях пункт "SMS poslugi"

а в нем:

Рускими буквами:

1 Menu djuice

 

2 Імпульс -------------

дальше все на руском.... шесть пунктов)

 

1

2

3

4

5

6

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

Ребята,помогите пожалуйста.

Не могу понять как создается меню на е200.

Привожу пример:

201C8DE0  5C 00 0100 0000 0000 00000000 0100 0000  Подготовка окна
201C8DF0  78 00 0000 0000 0000 00000000 0000 0000  MCC_SET_CURMENU
201C8E00  75 00 0100 0041 0000 00000000 7000 0000  MCC_MENU_START
201C8E10  7C 17 1000 0000 0000 00000000 0000 0000  Описание меню с первым индексом 160 X 120 из 0 пунктов
201C8E20  76 17 1000 0000 0202 00000000 1000 0000  MCC_DISPLAY_MENU
201C8E30  79 00 0000 0000 0000 20576620 0000 0000  По пункту меню 0 переход на адрес 0x20665720
201C8E40  79 00 0100 0000 0000 F8F82E21 0000 0000  По пункту меню 1 переход на адрес 0x212EF8F8
201C8E50  79 00 0200 0000 0000 F8F82E21 0000 0000  По пункту меню 2 переход на адрес 0x212EF8F8
201C8E60  79 00 0300 0000 0000 F8F82E21 0000 0000  По пункту меню 3 переход на адрес 0x212EF8F8
201C8E70  79 00 0400 0000 0000 F8F82E21 0000 0000  По пункту меню 4 переход на адрес 0x212EF8F8
201C8E80  79 00 0500 0000 0000 98F92E21 0000 0000  По пункту меню 5 переход на адрес 0x212EF998
201C8E90  18 09 0100 0900 0000 189DA920 0000 0000  Если кнопка "вкл/выкл" в состояни 1 то переход на 0x20A99D18
201C8EA0  1C 00 0000 0000 0000 6047EC20 0000 0000  Переход на адрес 0x20EC4760

Какой параметр отвечает за языковой ресурс первого текст.индекса и текст.индекса каждого пункта меню?

Третий параметр,как я понял,отвечает за номер пункта...

Что это за МСС такие MCC_SET_CURMENU и MCC_MENU_START?

За что они отвечают?

И еще воспрос,что за текстовый индекс такой 160 X 120 ,какое он имеет отношение к меню?Может я что-то не то нашел :ac:

Говорите что думаете и думайте что говорите...

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

И еще воспрос,что за текстовый индекс такой 160 X 120 ,какое он имеет отношение к меню?

201C8E10 7C 17 1000 0000 0000 00000000 0000 0000-это описание меню,текстовые индексы будут в тумбе

7C17-email0_6menu (0x200D27BC)

1000-10-й кейс

		loc_200D3E06: ; CASE 0x0010	
200D3E06:	0620	MOV	R0, #0x6
200D3E08:	4BF0AEFF	BL	lk_get_sofk
200D3E0C:	041C	MOV	R4, R0
200D3E0E:	4820	MOV	R0, #0x48
200D3E10:	4BF0AAFF	BL	lk_get_sofk
200D3E14:	0022	MOV	R2, #0x0
200D3E16:	0021	MOV	R1, #0x0
200D3E18:	0292	STR	R2, [sP, #0x8]
200D3E1A:	221C	MOV	R2, R4
200D3E1C:	331C	MOV	R3, R6
200D3E1E:	0091	STR	R1, [sP]
200D3E20:	0191	STR	R1, [sP, #0x4]
200D3E22:	78F79CEF	BL	_Reg_Draw_Softkey
200D3E26:	0622	MOV	R2, #0x6
200D3E28:	0721	MOV	R1, #0x7
200D3E2A:	281C	MOV	R0, R5
200D3E2C:	45F0CEFF	BL	lk_CreateMenu
200D3E30:	FFAB	ADD	R3, SP, #0x3FC
200D3E32:	1E86	STRH	R6, [R3, #48]
200D3E34:	5E86	STRH	R6, [R3, #50]
200D3E36:	9F86	STRH	R7, [R3, #52]
200D3E38:	C420	MOV	R0, #0xC4
200D3E3A:	D886	STRH	R0, [R3, #54]
200D3E3C:	1422	MOV	R2, #0x14
200D3E3E:	0092	STR	R2, [sP]
200D3E40:	FFA9	ADD	R1, SP, #0x3FC
200D3E42:	3031	ADD	R1, #0x30
200D3E44:	0022	MOV	R2, #0x0
200D3E46:	0323	MOV	R3, #0x3
200D3E48:	281C	MOV	R0, R5
200D3E4A:	4BF06BFA	BL	lk_PutMenuExtInfo
200D3E4E:	8448	LDR	R0, =0x00000C1A
200D3E50:	1138	SUB	R0, #0x11
200D3E52:	78F71CEF	BL	_lk_get_text

последнее-заголовок,ниже будут 5 пунктов

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

Что это за МСС такие MCC_SET_CURMENU и MCC_MENU_START?

За что они отвечают?

И еще воспрос,что за текстовый индекс такой 160 X 120 ,какое он имеет отношение к меню?Может я что-то не то нашел :ac:

Да это просто не совсем корректный ini файл. Для e200 потихоньку занимаюсь его исправлением.

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

возьми то место, где вызывается сообщение запроса на разблокировку

 

Похоже, что тут

 

1083DB46 CMP R0, #0xE ; нажата ли левая-софт?

1083DB48: BNE loc_1083DB54 ; если нет, то выполняем другой код

1083DB4A: MOV R1, R4 ; иначе выполнить вот это

1083DB4C: LDR R0, =f_color ; вот тут вообще-то адрес как раз той МСС-шки, которая выводит сообщение "Нажмите Да!"

1083DB4E: BL _lk2_12start_menu_edit_fsm

1083DB52: B loc_1083D6D6

 

 

Значит вклиниваться здесь и сначала сделать CMP R0,#0xD и все варианты с ним, а потом восстановить что затёр?

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

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

Позитрон, нет, не совсем то место... И можно сделать намного проще :)

Недавно делал талкер для Е590. Вместе с ним делал обработку кнопки С в заблок.режиме. Вот так:

.start	0x20EE1A14
LDR	R1,=LockedKeys+1
BX	R1
.data

LockedKeys:
LDRB	R0, [R7, #0xC]
cmp	r0,2
beq	TalkC
MOV	R1, R4
LDR	R0, =0x202DB2B4
BL	lk2_12start_menu_edit_fsm
ADD	SP, SP, #0x1C
POP	{R4-R7,PC}
TalkC:
MOV	R1, R4
LDR	R0, =MCC_TALKER
BL	lk2_12start_menu_edit_fsm
ADD	SP, SP, #0x1C
POP	{R4-R7,PC}

 

По адресу 0x20EE1A14 идет обработка вызова сообщения "Разблок., а затем ОК". В D500XEEG3 это здесь: 0x1083DB9A

В этом месте тебе и надо делать врезку.

 

В итоге получается, что там цикл? Прогоняется обработка всех клавиш, потом идёт дальше выполнение кода.

Ничего подобного. Код прогоняется 1 раз, когда нажимается какая-нибудь кнопка. Код нажатой кнопки хранится по адресу в регистре R7, со смещением в 12 байт.

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

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

Longhair, я пока ещё делал врезку там, где обрабатывается левая-софт.

 

Просто для пробы я сделал так, чтобы при нажатии на правую-софт тоже выскакивало сообщение "Нажмите Да!"

 

На данный момент это получилось, но оно не выскакивает, если подсветка выключенна и отображается время при заблокклаве. А если я только что заблокировал клавиатуру - то всё как надо - и на левую- и на правую-софт срабатывает то что надо.

 

Значит ли это, что левая-софт обрабатывается 2 раза для разных режимов - когда включена подсветка при заблокклаве, и когда эконом-режим при заблокклаве?

 

 

А сообщение "Разблок. а затем ОК" у меня же тоже выскакивает, только когда заблокированна клавиатура, но телефон ещщё не перешёл в экономрежим.

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

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

Привет все, у меня вопрос:

немогу понят откуда в резмене адрес взялся?

<langtable title="Языковые ресурсы" ofs="0x115B400" count="12" items1="0" type="main" forceutf="1">

как найти етот адрес на другой прошивке?

P.S. это адрес с прошивки x700 c3

Mac OS X 10.9/ IOS 7

Перешёл на Macintosh

Я vkontakte, Я в myspace, Я в facebook

УШЕЛ

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

Привет все, у меня вопрос:

немогу понят откуда в резмене адрес взялся?

<langtable title="Языковые ресурсы" ofs="0x115B400" count="12" items1="0" type="main" forceutf="1">

как найти етот адрес на другой прошивке?

P.S. это адрес с прошивки x700 c3

Открываешь прошивку нужную (на которую найти надо адрес) с помощью программы BinEdit.

Скорее всего ты ее открываешь первый раз, следовательно будут вопросы -

1) "Сканировать прошивку". Отвечаем Да.

2) "Укажите адрес загрузки прошивки в Hex формате". Нажимаем ОК

3) "Подгрузить еще файл прошивки?" Отвечаем Нет.

4) "Уточните адрес начала оперативной памяти". Нажимаем ОК.

5) "Введите длинну оперативной памяти" Нажимаем ОК

6) "Сохранять данные о прошивке" Тут уже решать тебе ;) Если будешь еще открывать эту прошу через BinEdit - нажимай "Да". Если не будещь, то тогда отвечай "Нет".

 

Идем дальше. В правой части программы BinEdit ищи вкладку "Свойства". жел. развернуть BinEdit на весь экран.

Смотрим на строчку, подобную этой ->

LangAdrTable adr="0x1189BE14" countadr="0x11221D20" default="0x1005"

Вот "0x1189BE14" мы и должны вписать (у тебя будет другой, я тебе это даю как пример).

 

В итоге, мы нашли адрес, на который нужно заменить.. Но есть одно НО! В BinEdit адреса представлены в шестнадцатеричном формате, а ResMan их читает в другом. Ща кратенько объясню как действовать...

Если наш адрес (8цифр, не считая 0x) начинается с 11 (т.е. 1189BE14), значит:

- Отсекаем первую единицу, т.е. в писываем в карту ресмэна 189BE14.

Если наш адрес начинается с 10 (например, 1089BE14), значит:

- Отсекаем 10, т.е. вписываем в карту 89BE14.

 

Надеюсь, объяснил понятно :bx: Если что, обращайся :23:

Кстати, этот вопрсо надо не в создании патчей писать,а в создании карт прошивок :bh::)

 

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

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

<langtable title="Языковые ресурсы" ofs="0x317394" count="3" items1="0" type="main" forceutf="1">

<lang index="0" title="English">

<lang index="1" title="Chinese (Mainland)">

<lang index="2" title="Chinese (Kwangdong)">

Вот что у меня получилось но когда я навклатку ресурсов захожу то выбевает :"Ошибка: неверная ссылка на языковый ресурс или файл прошивки поврежден"

P.S. В бинедите:

Bin ID="..." adr="0x3E58E0" base="0x10000000" TYPE_ARM="LittleEndian"

RAM_Area Start="0x18C00000" Len="0x800000"

FLASH_Area Start="0xFE0000" Len="0x20000"

RemapBlok Start="0x0" Len="0xC000" Goto="0x0"

LangCount adr="0x1003738C" Default="16" TableIdAdr="0x10317393"

LangGetText adr="0x1177B1D8"

LangAdrTable adr="0x10317394" countadr="0x1177B230" default="0x11AC"

LangAdrTableS adr="0x103173D4" countadr="0x100F6C40" default="0x75"

MCCTable adr="0x1107E91C" KolFunMCC="38"

MCCParam Len="16" count="8" adr1="0" len1="1" adr2="1" len2="1" adr3="2" len3="2" adr4="4" len4="2" adr5="6" len5="2" adr6="8" len6="4" adr7="12" len7="2" adr8="14" len8="2"

SaveDataBin Enable="Y"

Mac OS X 10.9/ IOS 7

Перешёл на Macintosh

Я vkontakte, Я в myspace, Я в facebook

УШЕЛ

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

<langtable title="Языковые ресурсы" ofs="0x317394" count="3" items1="0" type="main" forceutf="1">

<lang index="0" title="English">

<lang index="1" title="Chinese (Mainland)">

<lang index="2" title="Chinese (Kwangdong)">

Вот что у меня получилось но когда я навклатку ресурсов захожу то выбевает :"Ошибка: неверная ссылка на языковый ресурс или файл прошивки поврежден"

P.S. В бинедите:

Bin ID="..." adr="0x3E58E0" base="0x10000000" TYPE_ARM="LittleEndian"

RAM_Area Start="0x18C00000" Len="0x800000"

FLASH_Area Start="0xFE0000" Len="0x20000"

RemapBlok Start="0x0" Len="0xC000" Goto="0x0"

LangCount adr="0x1003738C" Default="16" TableIdAdr="0x10317393"

LangGetText adr="0x1177B1D8"

LangAdrTable adr="0x10317394" countadr="0x1177B230" default="0x11AC"

LangAdrTableS adr="0x103173D4" countadr="0x100F6C40" default="0x75"

MCCTable adr="0x1107E91C" KolFunMCC="38"

MCCParam Len="16" count="8" adr1="0" len1="1" adr2="1" len2="1" adr3="2" len3="2" adr4="4" len4="2" adr5="6" len5="2" adr6="8" len6="4" adr7="12" len7="2" adr8="14" len8="2"

SaveDataBin Enable="Y"

хм.... очень странно....ВРОДЕ БЫ все правильно....

Слух,напиши плих на какую прошивку ищещь. Можно в лс...

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

Позитрон,

Значит ли это, что левая-софт обрабатывается 2 раза для разных режимов - когда включена подсветка при заблокклаве, и когда эконом-режим при заблокклаве?

Ну это зависит только от того в каком месте делается врезка.

 

А сообщение "Разблок. а затем ОК" у меня же тоже выскакивает, только когда заблокированна клавиатура, но телефон ещщё не перешёл в экономрежим.

То есть, когда отображается время вообще ничего что ли не выскакивает? Даже при нажатии на л.софт?

Может у тебя установлены какие-нибудь патчи, модифицирующие блок.режим (помнится на Х100 было много таких :44:)...

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

Longhair, больше в той функции я не нашёл мест, где бы при нажатии на левую софт выскакивало сообщение "Нажмите Да!". Но по приезду домой я попробую поизменять то единственнное место.

 

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

Ну а при нажатии на левую софт появляется "Нажмите да!" При нажатии на правую софт ничего не происходит, хотя, как я говорил, я там врезался и если телефон в неэкономичном режиме, то при нажатии на правую софт появляется "Нажмите да!" Также если телефон в неэкономичном режиме, при нажатии на любую кнопку появляется "Разблок, а затем ОК!".

 

Будет лучше наверное, если я выложу исходник через несколько дней и в каких местах я врезался

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

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

Позитрон, ну я же тебе показал, где надо врезаться!

В D500XEEG3 это здесь: 0x1083DB9A

Делай там врезку, добавляй любую кнопку, и все будет нормально работать.

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

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

-=VLAD=- уже спрашивал, но я так и не разобрался как найти текстовые ресурсы пунктов меню.

В меню Приложения, мне нужно сделать следущее:

-за место 3 пункта (Фоторедактор) вставить 6 пункт (Java-приложения);

-7 пункт (SIM-меню) передвинуть на место 6 пункта (Java-приложения);

-сократить меню до 6 пунктов.

С изменением меню проблем нет, но названия пунктов изменить не могу, помогите пожалуйста разобраться, и если можно, то объясните более менее понятным языком.

 

Прошивка E200XEGD6

 

 2100E240  5C 00 0000 0000 0000 00000000 0100 0000  Подготовка окна
2100E250  78 00 0000 0000 0000 00000000 0000 0000  MCC_SET_CURMENU
2100E260  75 00 0100 0041 0000 00000000 3000 0000  MCC_MENU_START
2100E270  1B 00 0000 0000 0000 2C4A6F20 0000 0000  Вызов подпрограммы по адресу 0x206F4A2C
2100E280  17 15 5300 0000 0000 00000000 0000 0000  Выполнить 0x15 x2=83 x3=0 x4=0 x5=0 x6=0
2100E290  6D 03 0000 0000 0000 00000000 0000 0000  MCC_SET_KEYBOARD
2100E2A0  7C 13 0000 0700 0200 00000000 0000 0000  Описание меню с первым индексом  из 7 пунктов
2100E2B0  76 13 0000 0000 C202 00000000 1000 0000  MCC_DISPLAY_MENU
2100E2C0  79 00 0000 0000 0000 C4237221 0000 0000  По пункту меню 0 переход на адрес 0x217223C4
2100E2D0  79 00 0100 0000 0000 8C6A8821 0000 0000  По пункту меню 1 переход на адрес 0x21886A8C
2100E2E0  79 00 0200 0000 0000 3CBD6F21 0000 0000  По пункту меню 2 переход на адрес 0x216FBD3C
2100E2F0  79 00 0400 0000 0000 04A71D20 0000 0000  По пункту меню 4 переход на адрес 0x201DA704
2100E300  79 00 0300 0000 0000 28323621 0000 0000  По пункту меню 3 переход на адрес 0x21363228
2100E310  79 00 0500 0000 0000 7C7F8420 0000 0000  По пункту меню 5 переход на адрес 0x20847F7C
2100E320  79 00 0600 0000 0000 F0F3C020 0000 0000  По пункту меню 6 переход на адрес 0x20C0F3F0

Заранее спасибо, с уважением ZLODEY.

X100+10Mb->E200+1Gb->M3510+2Gb->S5230 Star+2Gb->S7230 Wave+4Гб->Galaxy S GT-i9003+8Гб

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

ZZZlodey,

данный меню описывается в mcc_menu_config 0x13 0

 

Вот там то и можно поменять названия интересующих тебя пунктов :(

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

ZZZlodey,

данный меню описывается в mcc_menu_config 0x13 0

 

Вот там то и можно поменять названия интересующих тебя пунктов :(

А можно чуть подробнее объяснить, я в этом вопросе еще не очень разбираюсь. Каким образом здесь изменить названия пунктов?

X100+10Mb->E200+1Gb->M3510+2Gb->S5230 Star+2Gb->S7230 Wave+4Гб->Galaxy S GT-i9003+8Гб

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

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

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

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

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

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

Войти

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

Войти



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