IronMaster
VIP Developer
Регистрация: 16.5.06 Сообщений: 1135 Репутация: 8514 Откуда: Пермь
#1451 [29.01.07, 20:10] Учимся писать патчи
Цель этой темы помочь разобраться начинающим (не только) патчеписателям в этом не легком деле. Задавайте свои вопросы. По возможности будем отвечать. Только не надо лить воду. Задаете конкретный вопрос, получаете конкретный ответ.
Итак немного информации:
1. Ниже прикреплены файлы:
- Формат VKP-патчей
- Краткая инструкция (пример) портирования патча от
Joker_XT - Вся графика телефона, если нужно знать код картинки (файлы
здесь )
- Исходник патча "Мигание фонаря при входящем" с комментариями
- Исходники патчей на управление гарнитурой v.4 для К750 и W800
ida_babeldr.rar - Теперь не нужно конвертировать прошивку в raw, не нужно выбирать вручную тип процессора и задавать адреса.
© den_po 2. Есть тема уже с картинками и обсуждениями (рекомендую для прочтения):
http://www.sony-ericsson.ru/forums2/index.php?showtopic=28929 3. Также есть кратенький пример от
den_po по портированию, он на первой странице этого топика:
https://mobilefree.justdanpo.ru/newbb_plus/viewtopic.php?topic_id=376&forum=8 4.
http://developers.sgh.ru - инфа по патчингу. Портал только открылся, но будет пополнятся. Специализируются на Самсунгах, но есть и общая для всех инфа.
http://binedit.sgh.ru - дизассемблер и не только от
AlexeyK . Также умеет работать с vkp патчами.
5. Русифицированная версия професионального HEX-редактора:
https://mobilefree.justdanpo.ru/mydownloads/showfile.php?lid=167 6. Информация для портеров и патчерописателей
Учет занятого места в прошивке 7. Тема где выкладывают
Исходники патчей 8. Мануал по
созданию исходника © Shadow Player (перевод от HierOS)
9. Мануал по портированию замейновых патчей от d1gger17
здесь 10. Статья "Как самому стать патчером" . Читаем обязательно! и + читаем доки от mnemo Мануал открытия прошивок А2 :
1.Кидаем ИмяПроши.mbn на
readDB3150.exe 2.Из папки ИмяПроши.out берем
phone_app.cxc 3.Открываем любимым хекс-редактором.
4.Отрезаем кусок от 0 до строки,содержащей повторяющуюся последовательность
18 F0 9F Е5 .Например на W760 R3DA026 это смещение
2000 .
5.Сохраняем как raw
6.Открываем уже своим любимым инстурментом
.
Народ! Давайте без флейма, пишем и задаем вопросы, только после того как прочтете все что выше выложено и даны ссылки на материал, и после того как сами уже попробовали и все детально обдумали! НЕ надо задавать вопросов, а с чего мне начать, ферштейн?
K700->W810->W850->W705 & W995 (cid81) ==========WMZ307721639637 WMR675285842893 Спасибо за пожертвования:Resp , ploik , BanditNN , AlexTin , polza , romanchenko , Ryabchik , Ax , [b]Desp
Спасибо сказали: E1kolyan, Va_st, senseless, Ma8ter, Kilo_Hz, MahmudS, Therion, vile, -BourNe-, DimaBV, MasterBoy, HotRabbit, mclaron, nitr, Oganyan-Arthur, bazk7i, -Sanek-, GaS, vodoo999, Danik, TahaSpawn, hossein_ir, LoDark, Alex_E, ELECTRO-NIC, HeMo, Se-MaG, anarkes, hi2all, Happy, CleverUser, KIBER-DEMON, Melodic_Death, plembo, UserX, MaxxxS, Sandre, SummerWood, Phoenix778, MAVER145, Nook, farid, a6b6, Neodzen, lexxx2345
D3mon
Developer
Регистрация: 23.2.08 Сообщений: 1141 Репутация: 10348 Откуда: Краснодар
#1452 [23.01.10, 14:48] Re: Учимся писать патчи
Ох как не хотел сюда писать, но уже часов 12 просидел с этим патчем:
Исх для к790:
Код:
include "x.inc" ;----------------------------- patch = 0x45B09620 ;---------------------------- org 0x459AA584 DCD 0x45B0964D ; patch+2D org 0x44D58B62 LDR R7, off_44D58B68 BX R7 align 4 off_44D58B68 DCD patch+1 org patch loc_45B09620: BL loc_45B0966C CMP R0, 0 BEQ loc_45B0963C LDR R1, dword_45B096C8 ADD R0, R4, 0 LDR R7, off_45B096D4 BLX R7 LDR R1, dword_45B096CC ADD R0, R4, 0 LDR R7, off_45B096D8 BLX R7 LDR R7, off_45B096DC BX R7 ; --------------------------------------------------------------------------- loc_45B0963C: LDR R7, dword_45B096D0 BLX R7 ; Bluetooth_GetState(void); CMP R0, 0 BEQ loc_45B09648 LDR R7, off_45B096E0 BX R7 ; --------------------------------------------------------------------------- loc_45B09648: LDR R7, off_45B096E4 BX R7 ; --------------------------------------------------------------------------- PUSH {R4,R5,LR} ADD R4, R0, 0 ADD R5, R1, 0 BL loc_45B0966C CMP R0, 0 BEQ loc_45B09662 MOV R1, 0 BL loc_45B096B0 POP {R4,R5,PC} ; --------------------------------------------------------------------------- loc_45B09662: ADD R1, R5, 0 ADD R0, R4, 0 BL loc_45B096B4 POP {R4,R5,PC} ; --------------------------------------------------------------------------- loc_45B0966C: PUSH {LR} LDR R0, off_45B096C0 BL loc_45B096B8 CMP R0, 0 BNE locret_45B0967E LDR R0, off_45B096C4 BL loc_45B096B8 locret_45B0967E: POP {PC} ; --------------------------------------------------------------------------- loc_45B09680: PUSH {LR} LDR R1, off_45B096FC LDR R0, [R0] LDR R0, [R0,4] BL loc_45B096BC CMP R0, 0 BNE loc_45B09694 MOV R0, 1 POP {PC} ; --------------------------------------------------------------------------- loc_45B09694: MOV R0, 0 POP {PC} ; --------------------------------------------------------------------------- loc_45B09698: PUSH {LR} LDR R1, off_45B096F8 LDR R0, [R0] LDR R0, [R0,4] BL loc_45B096BC CMP R0, 0 BNE loc_45B096AC MOV R0, 1 POP {PC} ; --------------------------------------------------------------------------- loc_45B096AC: MOV R0, 0 POP {PC} ; --------------------------------------------------------------------------- loc_45B096B0: LDR R3, dword_45B096F4 BX R3 ; BookObj_Show(BOOK *,int display_type); ; --------------------------------------------------------------------------- loc_45B096B4: LDR R3, off_45B096F0 BX R3 ; --------------------------------------------------------------------------- loc_45B096B8: LDR R3, dword_45B096EC BX R3 ; --------------------------------------------------------------------------- loc_45B096BC: LDR R3, dword_45B096E8 BX R3 ; strcmp(const char * str1, const char * str2); ; --------------------------------------------------------------------------- off_45B096C0 DCD loc_45B09680+1 off_45B096C4 DCD loc_45B09698+1 dword_45B096C8 DCD 0x1476 dword_45B096CC DCD 0x843 dword_45B096D0 DCD 0x44D5FBFD ; Bluetooth_GetState off_45B096D4 DCD 0x44FFE890+1 off_45B096D8 DCD 0x44DAB3C0+1 off_45B096DC DCD 0x44D58C92+1 off_45B096E0 DCD 0x44D58B6C+1 off_45B096E4 DCD 0x44D58A68+1 dword_45B096E8 DCD 0x445536FD ; strcmp dword_45B096EC DCD 0x452691C5 off_45B096F0 DCD 0x44D58E7C+1 dword_45B096F4 DCD 0x4526ADE9 ; BookObj_Show off_45B096F8 DCD 0x459B9F74 off_45B096FC DCD 0x459B9C18
Исх для w850:
Код:
include "x.inc" ;----------------------------- patch = 0x443BD900 ;---------------------------- org 0x45B79D94 DCD 0x443BD92D org 0x44EA456C LDR R7, off_44EA4572 BX R7 align 4 off_44EA4572 DCD patch+1 org patch loc_45B09620: BL loc_45B0966C CMP R0, 0 BEQ loc_45B0963C LDR R1, dword_45B096C8 ADD R0, R4, 0 LDR R7, off_45B096D4 BLX R7 LDR R1, dword_45B096CC ADD R0, R4, 0 LDR R7, off_45B096D8 BLX R7 LDR R7, off_45B096DC BX R7 ; --------------------------------------------------------------------------- loc_45B0963C: LDR R7, dword_45B096D0 BLX R7 ; Bluetooth_GetState(void); CMP R0, 0 BEQ loc_45B09648 LDR R7, off_45B096E0 BX R7 ; --------------------------------------------------------------------------- loc_45B09648: LDR R7, off_45B096E4 BX R7 ; --------------------------------------------------------------------------- PUSH {R4,R5,LR} ADD R4, R0, 0 ADD R5, R1, 0 BL loc_45B0966C CMP R0, 0 BEQ loc_45B09662 MOV R1, 0 BL loc_45B096B0 POP {R4,R5,PC} ; --------------------------------------------------------------------------- loc_45B09662: ADD R1, R5, 0 ADD R0, R4, 0 BL loc_45B096B4 POP {R4,R5,PC} ; --------------------------------------------------------------------------- loc_45B0966C: PUSH {LR} LDR R0, off_45B096C0 BL loc_45B096B8 CMP R0, 0 BNE locret_45B0967E LDR R0, off_45B096C4 BL loc_45B096B8 locret_45B0967E: POP {PC} ; --------------------------------------------------------------------------- loc_45B09680: PUSH {LR} LDR R1, off_45B096FC LDR R0, [R0] LDR R0, [R0,4] BL loc_45B096BC CMP R0, 0 BNE loc_45B09694 MOV R0, 1 POP {PC} ; --------------------------------------------------------------------------- loc_45B09694: MOV R0, 0 POP {PC} ; --------------------------------------------------------------------------- loc_45B09698: PUSH {LR} LDR R1, off_45B096F8 LDR R0, [R0] LDR R0, [R0,4] BL loc_45B096BC CMP R0, 0 BNE loc_45B096AC MOV R0, 1 POP {PC} ; --------------------------------------------------------------------------- loc_45B096AC: MOV R0, 0 POP {PC} ; --------------------------------------------------------------------------- loc_45B096B0: LDR R3, dword_45B096F4 BX R3 ; BookObj_Show(BOOK *,int display_type); ; --------------------------------------------------------------------------- loc_45B096B4: LDR R3, off_45B096F0 BX R3 ; --------------------------------------------------------------------------- loc_45B096B8: LDR R3, dword_45B096EC BX R3 ; --------------------------------------------------------------------------- loc_45B096BC: LDR R3, dword_45B096E8 BX R3 ; strcmp(const char * str1, const char * str2); ; --------------------------------------------------------------------------- off_45B096C0 DCD loc_45B09680+1 off_45B096C4 DCD loc_45B09698+1 dword_45B096C8 DCD 0x1417 ; Развернуть dword_45B096CC DCD 0x843 dword_45B096D0 DCD 0x44EAB5A5 ; Bluetooth_GetState off_45B096D4 DCD 0x45001750+1 off_45B096D8 DCD 0x45157D28+1 off_45B096DC DCD 0x44EA4694+1 off_45B096E0 DCD 0x44EA4576+1 off_45B096E4 DCD 0x44EA447A+1 dword_45B096E8 DCD 0x44676565 ; strcmp dword_45B096EC DCD 0x453CDC8C+1 off_45B096F0 DCD 0x44EA487C+1 dword_45B096F4 DCD 0x453CF8A1 ; BookObj_Show off_45B096F8 DCD 0x45B89BB8 off_45B096FC DCD 0x45B8985C
В итоге следущие ошибки:
1) Нету надписи "развернуть" в меню БТ, хотя если нажать на этот пункт, то окно разворачивается, как и должно. Исправил! 2) Один раз развернул через активити, потом оно перестаёт работать... Причем, что во время передачи, что после нее. Помогает только перезагрузка! Если ничего не передавать, то оно исправно работает, как только что-нибудь начать передавть - "всё"... Или это сам патч такой???
В каком адресе я накосячил?(
[ Редактировано D3mon в 23.1.10 14:58 ]
[ Редактировано D3mon в 23.1.10 15:17 ]
[ Редактировано D3mon в 24.1.10 00:18 ]
Sony Xperia XZ3 GreenSony Xperia Z3 Compact Orange W995i SW-R1GA026 :(
jamesbond22
Свой в доску
Регистрация: 19.8.07 Сообщений: 1764 Репутация: 1322
#1453 [30.01.10, 18:49] Re: Учимся писать патчи
Патч: ;W660 SW-R8BB001 orange ;Добавить возможность выбора времени проигрывания мелодии при входящем сообщении ;Выбирать Сигнал о сообщ. -> Функции -> Время звучания ;(c) Ploik ;(r) RandoM
I try port this patch for W595. Patch not work on W595. Something need to change in source.
Код:
ACTION_SELLECT: PUSH {R0-R7,LR} ADD R4, R0, 0 ADD R0, R1, 0 BL OneOfMany_GetSelected SUB SP, SP, 4 STR R0, [SP] MOV R0, 0 PUSH {R0} LDR R0, off_folder adr R1, _SMSbin MOV R2, 2 MOVL R3, 0x180 BL _fopen ADD SP, SP, 4 ADD R5, R0, 0 MOV R2, 4 MOV R1, SP BL fwrite ADD R0, R5, 0 BL fclose ADD SP, SP, 4 ADD R0, R4, 0 BL MSG_UI_MessageAlert_Page POP {R0-R7,PC}
File SMS.bin is created - size 0 byte.
Код:
ACTION_SELLECT: PUSH {R0-R7,LR} ADD R4, R0, 0 ADD R0, R1, 0 BL OneOfMany_GetSelected SUB SP, SP, 4 STR R0, [SP] LDR R0, off_folder adr R1, aSms_bin MOV R2, 0 BL FileDelete MOV R0, 0 PUSH {R0} LDR R0, off_folder adr R1, _SMSbin MOV R2, 2 MOVL R3, 0x180 BL _fopen ADD SP, SP, 4 ADD R5, R0, 0 MOV R2, 4 ;R2 - size MOV R1, SP ;R1 - start BL fwrite ADD R0, R5, 0 BL fclose ADD SP, SP, 4 ADD R0, R4, 0 BL MSG_UI_MessageAlert_Page POP {R0-R7,PC}
File SMS.bin is created - size 4 byte.
Код:
SetChecked: ;Check status of file. PUSH {R0,R2-R7,LR} MOV R0, 0 PUSH {R0} LDR R0, off_folder adr R1, _SMSbin MOV R2, 1 MOVL R3, 0x180 BL _fopen ADD R5, R0, 0 MOV R2, 4 MOV R1, SP BL fread ADD R0, R5, 0 BL fclose LDR R1, [SP] ADD SP, SP, 4 POP {R0,R2-R7,PC}
This function not work too on W595.
XPeria X8 ROM 2.3.5 GingerDX v008
MiFa
Patcher
Регистрация: 28.5.09 Сообщений: 222 Репутация: 2330 Откуда: Польша / Кросно
#1454 [30.01.10, 23:28] Re: Учимся писать патчи
I had problem with patch:Патч: ;W595 SW-R3EF001 ;Change 4 th tab in the Activity Menu to File Manager.
Can someone explain me, why when i try open folder Personal data my phon restarting. I creat folder system/privat on phon memory.Error fixed
[ Edited by MiFa в 8.2.10 20:34 ]
Троян
Пользователь
Регистрация: 16.1.08 Сообщений: 119 Репутация: 36 Откуда: Брянск
#1455 [05.02.10, 20:37] Re: Учимся писать патчи
Не знаю точно, в эту ли тему пишу, но больше подходящей не нашёл..
Помогите разобраться с портированием патча:
для w910-R1FA037
Вот взял я адрес 10F05A5E, сделал действие
Код:
10F05A5E-FFFF000=F06A5E
Нашёл этот адрес в проше к850, нашел последовательность 1FD1, есть такая
Ввёл в поиск для проши w910, но там столько вариантов находит, по какому принципу их отсеивать?
Я попытался искать по принципу положения этой последовательности
в строке проши к850, она как раз в конце
Код:
120E006A7F1CA2F2 D9FE02B0002C1FD1
Но опять же по такому принципу в проше w910 я нашел около 12 адресов :(
Помогите разобраться...
Именно этому моменту во всех мануалах вообще не уделяется внимание
[ Редактировано Троян в 5.2.10 20:41 ]
(SE) w910i ''white'' sw-R1FA037 CID52 brown
Va_st
Patchmaster
Регистрация: 3.8.08 Сообщений: 440 Репутация: 1142
#1456 [05.02.10, 20:58] Re: Учимся писать патчи
Троян , читай доки,ФАКи внимательно patsearchnt и переход к началу функи помогут тебе) [ Редактировано Va_st в 5.2.10 23:02 ]
j10i2 r7ca061
jamesbond22
Свой в доску
Регистрация: 19.8.07 Сообщений: 1764 Репутация: 1322
#1457 [08.02.10, 19:35] Re: Учимся писать патчи
Патч: ;W595 SW-R3EF001 ;Добавить возможность изменять время удержания подсветки для каждой BOOK ;Установка параметров осуществляется в ;Настройки -> Дисплей -> Яркость -> Настр. ;v.2 ;Добавлена возможность визуального выбора книг. ;Возможность установки на каждое ява приложение своё время удержания подсветки ;(c) MaPkiZzz & ploik & BigHercules ;(p) jamesbond22
This patch work on W595.
Only problem is with display icons ORGANIZER_MENU_APPLICATIONS_ICN and TR_TIME_UPDATE_ICN:
XPeria X8 ROM 2.3.5 GingerDX v008
Спасибо сказали: Alex_E, ploik
Троян
Пользователь
Регистрация: 16.1.08 Сообщений: 119 Репутация: 36 Откуда: Брянск
#1458 [12.02.10, 09:16] Re: Учимся писать патчи
Как быть если в смелтере при вводе паттерна 'B58420' он находит 4 адреса, а только я добавлю еще один байт, это у меня '00' то значений уже вообще никаких не найдено И чем вообще лучше искать, смелтером или патсеарч ?
(SE) w910i ''white'' sw-R1FA037 CID52 brown
Joker XT
VIP Developer
Регистрация: 5.8.06 Сообщений: 1292 Репутация: 7582
#1459 [12.02.10, 09:21] Re: Учимся писать патчи
Троян , сам подумай головой? какая разница чем искать, ты всё-равно ищешь последовательность байт
SE C901 [R1GA028]
Троян
Пользователь
Регистрация: 16.1.08 Сообщений: 119 Репутация: 36 Откуда: Брянск
#1460 [12.02.10, 10:15] Re: Учимся писать патчи
Не знаю какая разница, но я вот попробовал по этому адресу с помощью второго искать, такая же картина, только адресов уже не 4 нашло, а 7 И из этих 7 нету ни одного, что бы совпадал с теме 4 из другой программы :( запутаться можно
(SE) w910i ''white'' sw-R1FA037 CID52 brown
Va_st
Patchmaster
Регистрация: 3.8.08 Сообщений: 440 Репутация: 1142
#1461 [12.02.10, 13:42] Re: Учимся писать патчи
Троян , ??b58420 это ищи Добавлено 12.2.10 15:43 Если много найдет то добавь еще пару байтов,и вместо первого ставь ??
j10i2 r7ca061
Похожие темы
Тема Ответы Автор Просмотры Обновление Как пропатчить файл прошивки с помощью BinEdit? 34 AleXeR 51286 15.06.15, 16:19 Setool2 Lite - Патчим, прошиваем 793 Zormax 630090 15.06.21, 04:11 патчи и редактор far manager 3 den_po 8541 25.04.21, 21:17 Aino и патчи, эльфы 1 khaker 5023 26.02.17, 19:37 Проблема патчинга с w380 (pnx5230) 3 ALexeY38 6360 15.08.15, 20:09 Запросы на платные патчи 586 Zormax 435683 08.08.14, 16:21 SE DB2010 Font Tool (Патчи) 64 TahaSpawn 83133 23.07.14, 10:57 Патчи для db2020 (Общие вопросы) 554 Zormax 419096 07.01.14, 05:16
Вы не можете начинать темы. Вы не можете редактировать свои сообщения. Вы не можете создавать опросы. Вы не можете вкладывать файлы в сообщения. Вы не можете отвечать на сообщения. Вы не можете удалять свои сообщения. Вы не можете голосовать.