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

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

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

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


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

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

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

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

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

' date='26.01.2009, 1:25' post='414615']

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

А как его найти? Но вопрос астаётся в силе как найти адрес с которого нужно применять патч?

Ну подскожите пожалуйста, а то уже пару патчей косячно портирую и свой Е200, мучаю раз 7 на день.

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

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

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

А как его найти?

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

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

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

Ладно. Разговори разговорами а учица надо. Я чота так думаю что уже надоел с ..пыми вопросами.

:67: Дайте пожалуйста ссылочку на хороший Faq по портированию и созданию патчей

Зарание пасиба! :)

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

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

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

Ладно. Разговори разговорами а учица надо. Я чота так думаю что уже надоел с ..пыми вопросами.

:( Дайте пожалуйста ссылочку на хороший Faq по портированию и созданию патчей

Зарание пасиба! :67:

 

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

только перед ем как смотреть сюда!!!

<nord offset="0x15388FA" from="1F001F001...."

ты должен будеш поравить код во врехке....:

<nord offset="0xYYYYYY" from="ххххххххххххххххх" to="xxxxxxF9885321"

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

Теперь понятно.

Но есть еще пару вопросов:

Если находит примерно 7 адресов то как найти нужный, и почему отличаются адреса найденые

убиранием 1 байта с права на лево допустим такой адрес1234234235234534645<<=

и адрес, всегда почти один,

созданием сигнатури со знаками вопроса вместо мешающих данных 2345214????4534???75766?? :):(

Я вот посмотрел скоко постов оставил :67: но так и не получил ответ на вопрос :bx:

Как найти єквивалент свободному адресу, и как узнать с какого адреса нужно применять патч в єтой пустате? :bx:

Мож можно применять с любого адреса? :132:

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

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

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

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

Портировал аддон 1 изменяющий название с ммф плаур версия 3 бу максим(это все так то англ. написано) на ммф плауер. С х100хедг1 на х460хеее1 все без ошибок но в телефе название осталось прежнее.Версии плеиров совпадают там 3.1 и там 3.1 .СОХРАНЯЛ В ФАил ресман хтмл!заранее благодарен.

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

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

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

...СОХРАНЯЛ В ФАил ресман хтмл!заранее благодарен.

Как сохранил?...

to all... Помогите кто может с патчиком мне...:'( выше выкладывал... ниче не могу сделать... натолкните хоть кто-нибудь

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

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

Помогите кто может с патчиком мне...:'( выше выкладывал... ниче не могу сделать... натолкните хоть кто-нибудь

Что именно не получается? Патч вообще не работает или как?

Оригинал патча не на D600E, и автор не Кирилл. Это так, на заметку...

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

' date='02.02.2009, 4:11' post='416051']

Что именно не получается? Патч вообще не работает или как?

Оригинал патча не на D600E, и автор не Кирилл. Это так, на заметку...

Да, патч вообще не работает... а что автор не Кирилл, я знаю, на руках нет прошивки ни от D500, ни от G600...:idea:

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

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

Да, патч вообще не работает... а что автор не Кирилл, я знаю, на руках нет прошивки ни от D500, ни от G600...:77:

Значит врезки ты не те нашел.

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

Объясняю на примере прошивки D900XEFK2.

1. Находим первую врезку.

Открываем главное меню (0x11350BB0). Последние вызовы - это меню-1-1.

В меню-1-1 (0x10B1A148) мы видем примерно следующий код:

10B1A148  17 0B 1800 0000 0000 00000000 0000 0000  Выполнить 0xB x2=24 x3=0 x4=0 x5=0 x6=0
10B1A158  18 05 A300 0100 0100 14617B11 0000 0000  Если x1=5 x2=163 x3=1 то переход на 0x117B6114
10B1A168  17 05 4400 0000 0000 00000000 0000 0000  Выполнить 0x5 x2=68 x3=0 x4=0 x5=0 x6=0
10B1A178  17 05 F200 0000 0000 00000000 0000 0000  Выполнить 0x5 x2=242 x3=0 x4=0 x5=0 x6=0
10B1A188  1C 00 0000 0000 0000 F89FB110 0000 0000  Переход на адрес 0x10B19FF8

Пропускаем эти таски/ифы, и идем сразу на 0x10B19FF8.

Ищем строчку "Меню XX из X пунктов". Это

10B1A0C8  7C 05 2C00 0000 1400 00000000 0000 0000  Меню 0x5 из 0 пунктов

Следовательно, открываем на вкладке МСС в правой части BE MCC_MENU_CONFIG 05

Далее переходим в кейс 0x2C. Кстати, засматривайся осторожней на код, не пропускай b-переходы, потому что просто листинг скролла вниз до кейсов не поможет :(

Так вот, у меня на D900XEFK2 кейс 0x2C начинается с 0x116462B8.

Листай код вниз, до первого вызова Reg_Draw_Softkeys.

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

	  ldr r1,=dir_CallLogRestoreFunc+1
	  mov  r0,r6
	  bl lk_RegMenuFuncRestore;это нас не интересует, а вот код ниже - уже тот, что там нужен. :)

	  ldr r1,=dir3_7GetCallLogData+1
	  mov r0,r6
	  bl lk_RegMenuFuncGetMenuData

Нам нужна функция, которую передают в lk_RegMenuFuncGetMenuData, т.е. переходим в нее.

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

Вот уже начинается код проверок:

10DD44C0:
add r6,0xA0
add r1,0x20

cmp r0,0
beq loc_10DD44CC

cmp r0,0xFF
bne loc_10DD44E0

Переходим по 0x10DD44E0.

10DD44E0:
ldrb r0,[r6,0xB]

cmp r0,6
bne loc_10DD44F2

ldr r0,=0x00000879;SOS-вызов
sub r0,0xD2
bl lk_get_text

str r0,[r4,4]
b loc_10DD4506

Вот, переходим в 0x10DD44F2. Я решил сделать врезку в 0x10DD44F4, т.к. адрес кратен четырем, следовательно врезка будет занимать 8 байт. Ну это я просто люблю так :idea:

Так вот, вот уже первая врезка найдена.

Остальные врезки кстати можно найти просто - ниже есть ссылка на код форматирования строки для sprintf.

10DD4506:
mov r1,5
ldr r0,=0x182FEDF4
blx rt_memclr

ldrb r2,[r6,0xA]
ldr r1,=0x1025F268
ldr r0,=0x182FEDF4
bl sprintf

Нас интересует 0x1025F268. Вставляешь этот адрес в поиск и должно найти 3 адреса (3 ссылка на данные). Одна из них - это та, на которой мы сейчас находимся, а остальные два - это как раз таки для вызовов пропущенных/исходящих/входящих, и когда абонент стоит последним в списке.

 

:bx: Дерзай ;)

P.S. Действительно хорошо,ч то взял с D600E. Там с регистрами немного по другому сделано, нужен исх второй версии (не смотрел, какой ты взял, просто говорю на всякий случай).

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

Пасиб, даж понятно стало))) Потом отпишу, дерзать буду))

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

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

.start 0x116F34B7

.start 0x1019CE07

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

 

Вот, посидел чуть:

;;;;;;;;;;;;;;;;;; <Блок врезок> ;;;;;;;;;;;;;;;;;;;;;
.start 0x100A6EB2 ;dir3_7GetCallLogData (7C05 2C)
ldr  r0,=AllCallLogs_PopupNumber+1
bx   r0
.data

.start 0x105292DE ;dir3_5MakeMenuComponents
ldr  r1,=MakeMenuComponents_PopupNumber+1
bx   r1
.data

.start 0x116F34B6 ;dir3_6MakeMenuComponents_Last
ldr  r1,=MakeMenuComponents_LastPopupNumber+1
bx   r1
.data

;;;;;;;;;;;;;;;;;; </Блок врезок> ;;;;;;;;;;;;;;;;;;;;

.start 0x107D8F58
;;;;;;;;;;;;;;;;;;;;;;; THUMB ;;;;;;;;;;;;;;;;;;;;;;;;;;
AllCallLogs_PopupNumber:
ldrb r0,[r2,0xB]

cmp  r0,0
beq  AllCallLogs_DrawOnlyNumber

cmp  r0,0xFF
bne  AllCallLogs_DrawContactNameWithHisNumber

AllCallLogs_DrawOnlyNumber:
str  r1,[r4,4]

b    AllCallLogs_CountNumCalls
;;;;;;;;;;;;;;	
AllCallLogs_DrawContactNameWithHisNumber:

add  r1,0x2B
STR 	R1, [R4, #0x4]
sub r1,0x2B
str  r1,[r4,0x28]

AllCallLogs_CountNumCalls:
ldr  r0,=0x100A6EC2+1
bx   r0
.data
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MakeMenuComponents_PopupNumber:
ldr  r1,=gv_Call_Log_Menu_Index
cmp  r0,0
ldrb r1,[r1]
beq  MakeMenuComponents_DrawOnlyNumber

cmp  r0,0xFF
bne  MakeMenuComponents_DrawContactNameWithNumber

MakeMenuComponents_DrawOnlyNumber:
ldr  r0,=0x105292EA+1
bx   r0
;;;;;;;;;;;;;;
MakeMenuComponents_DrawContactNameWithNumber:
mov  r7,r3
mov  r2,0
str  r2,[sp]
mov  r2,0x15 ;18
mov  r3,r5
ldr  r1,=gv_Call_Log_Menu_Index
ldrb r1,[r1]
ldr  r0,=gs_DspMenu
bl   lk_AddMenu

mov  r2,0
str  r2,[sp]
mov  r2,0x1E ;?
mov  r3,r7
ldr  r7,=gs_DspMenu
ldr  r1,=gv_Call_Log_Menu_Index
ldrb r1,[r1]
mov  r0,r7
bl   lk_AddMenu

ldr  r0,=0x10529306+1
bx   r0
.data
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MakeMenuComponents_LastPopupNumber:
ldr  r1,=gv_Call_Log_Menu_Index
cmp  r0,0
ldrb r1,[r1]
beq  MakeMenuComponents_LastDrawOnlyNumber

cmp  r0,0xFF
bne  MakeMenuComponents_LastDrawContactNameWithNumber

MakeMenuComponents_LastDrawOnlyNumber:
ldr  r0,=0x116F34C2+1
bx   r0
;;;;;;;;;;;;;;
MakeMenuComponents_LastDrawContactNameWithNumber:
mov  r7,r3
mov  r2,0
str  r2,[sp]
mov  r2,0x15 ;18
mov  r3,r5
ldr  r1,=gv_Call_Log_Menu_Index
ldrb r1,[r1]
ldr  r0,=gs_DspMenu
bl   lk_AddMenu

mov  r2,0
str  r2,[sp]
mov  r2,0x1E ;?
mov  r3,r7
ldr  r7,=gs_DspMenu
ldr  r1,=gv_Call_Log_Menu_Index
ldrb r1,[r1]
mov  r0,r7
bl   lk_AddMenu

ldr  r0,=0x116F34DE+1
bx   r0
.data
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

что получилось - хз... не пробовал...

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

как будет время, займусь патчем и твой, Андрей, проверю:lol:

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

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

А адреса обязательно должны быть четными???

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

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

Аластор, не понял про поиск на основе адреса 0x1025F268... мне искать по коду с этого адреса?

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

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

Ребята помогите :(, ничо не вдуплю.

Вот патч на Е200...Д6

 

<patchdata firmware="E200XEGD6" mode="C100" >

<changes>

<nord offset="0x0121FB3C" from="8CF78AF8" to="C046C046" type="CODE" />

<nord offset="0x0121FB52" from="86F7D3FD" to="C046C046" type="CODE" />

<nord offset="0x0121FB7A" from="6EF75AE9" to="C046C046" type="CODE" />

<nord offset="0x0121FBCA" from="2B1C002086F795FD0127" to="0148004700008D8F5321" type="CODE" />

<nord offset="0x0125ED0C" from="DC8A9A8A598A188A" to="00480047B58F5321" type="CODE" />

<nord offset="0x01538F8C" from="1F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F00" to="00F036F806D100214622B023BC2000F021F803E02B1C00206DF4AAFB0127014800470000D5FB212100F022F807D100211122B023B32000F00DF804480047DC8A9A8A598A188A024B184700001BED252115ED252100B588B00090059006200190029103920493002000F00AF808B000BD01B502480078012801BD000083FD3D3003B40148019001BD69E15420" type="CODE" />

</changes>

 

</patchdata>

 

а вот я спортировал на Е200...джи2

 

<patchdata firmware="E200XEGJ2" mode="C100" >

<changes>

<nord offset="0x00993214" from="70F70AEC" to="C046C046" type="CODE" />

<nord offset="0x0099322A" from="6AF7F2ED" to="C046C046" type="CODE" />

<nord offset="0x00993252" from="6BF7B0EB" to="C046C046" type="CODE" />

<nord offset="0x009932A2" from="2B1C00206AF7B4ED0127" to="0148004700000D7DC920" type="CODE">

 

<nord offset="0x00E043E0" from="DC8A9A8A598A188A" to="00480047357DC920" type="CODE" />

<nord offset="0x00C97D0C" from="1F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F00" to="00F036F806D100214622B023BC2000F021F803E02B1C00206DF4AAFB0127014800470000AD32992000F022F807D100211122B023B32000F00DF804480047DC8A9A8A598A188A024B18470000EF43E020E943E02000B588B00090059006200190029103920493002000F00AF808B000BD01B502480078012801BD000083FD3D3003B40148019001BDC5C02621" type="CODE" />

</changes>

 

</patchdata>

 

Он уже БЕСИТ : :)

 

Всё искал вручную. .ля уже низнаю на что грешить. :)

Вобщем патч:

"Фон меню"

Тел при входе в телефонную книгу перегружается.

Помогите :83:

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

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

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

Ребята помогите :59:, ничо не вдуплю.

.....

Вобщем патч:

"Фон меню"

...

Чет лениво в коде разбираться, а делается все куда проще!;)

.equ lk_DisplayMenuBackground  0x2011027C 
;21678698 display dir menu
.start 0x2167870C 
mov r0,0 ;x
mov r1,46;y
mov r2,176;w
mov r3,173;h
bl lk_DisplayMenuBackground
b 0x21678766

100% рабочее:) сам проверял)

Комментарий модератора Sylar
Угу, проще. Тебя пока не пнёшь, делать не захочешь :59:
  • Like 1
Ссылка на комментарий
Поделиться на другие сайты

.equ lk_DisplayMenuBackground  0x2011027C 
;21678698 display dir menu
.start 0x2167870C 
mov r0,0;x
mov r1,46;y
mov r2,176;w
mov r3,173;h
bl lk_DisplayMenuBackground
b 0x21678766

 

А на какую прошивку этот исходник? :59:

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

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

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

.equ lk_DisplayMenuBackground  0x2011027C 
;21678698 display dir menu
.start 0x2167870C 
mov r0,0;x
mov r1,46;y
mov r2,176;w
mov r3,173;h
bl lk_DisplayMenuBackground
b 0x21678766

 

А на какую прошивку єтот исходник? :59:

 

Мдя скорее всего на Ж2 :59:

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

Конечно J2, смысл делать на D6 если там такой патч есть? :)

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

Ясно.

Ну вот появился ищё вопрос (ответьпе пожалуйста, очень нужно):

Как найти эквивалент таким адресам

303DFD83

и ему подобным

:) Изменено пользователем Панька

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

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

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

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

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

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

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

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

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

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

Войти

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

Войти



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