IronMaster
VIP Developer
Регистрация: 16.5.06 Сообщений: 1135 Репутация: 8544 Откуда: Пермь
#1401 [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 Сообщений: 1130 Репутация: 10348 Откуда: Краснодар
#1402 [27.12.09, 22:01] Re: Учимся писать патчи
Ilmir5555 , спасибо, но уже сам разобрался! Все, патч заработал! [ Редактировано D3mon в 28.12.09 21:51 ]
Sony Xperia XZ3 GreenSony Xperia Z3 Compact Orange W995i SW-R1GA026 :(
Спасибо сказали: MahmudS
Se-MaG
Patchmaster
Регистрация: 23.7.08 Сообщений: 126 Репутация: 1374 Откуда: Старый Оскол
#1403 [03.01.10, 13:50] Re: Учимся писать патчи
Возник такой вопрос: как правильно создать .raw файл из прошивки DB3210, например из W715_R1GA030_MAIN_GENERIC_NR_RED53.mbn. Когда перетаскиваю этот файл на read3150.exe, то получаются файлы phone_app.cxc и phone_emp_app.cxc; что дальше с ними надо сделать?
J20i R7CA065 W595i R3EG004 Orange K750i R1CA021
HeMo
Patcher
Регистрация: 5.4.08 Сообщений: 47 Репутация: 155
#1404 [03.01.10, 14:03] Re: Учимся писать патчи
Se-MaG ,
http://mobilefree.justdanpo.ru/newbb_plus/viewtopic.php?topic_id=965&post_id=151019#151019 ----------------------------------------------------------------------------------------
Вообщем пытался портануть это:
на w595 r3ef001
Получился исх:
Код:
include "x.inc" addr3 = 0x108E6701 addr2 = 0x108E6FC9 addr1 = 0x10DECD99 addr0 = 0x11f19ae0 ORG addr0 CODE16 PUSH {R4-R7,LR} ADD R4, R0, 0 ADD R5, R1, 0 CMP R1, 8 BNE loc_45C5C59C LDR R2, [SP,0x14] CMP R2, 0 BNE loc_45C5C59C MOVL R2, 0x1CC ADD R0, R0, R2 LDRH R1, [R0] CMP R1, 0 BEQ loc_45C5C598 LDR R1, _addr1 BLX R1 ADD R1, R4, 0 LDR R0, _addr3 BLX R0 POP {R4-R7,PC} loc_45C5C598: ADD R0, R4, 0 MOV R1, 0x11 loc_45C5C59C: LDR R4, _addr2 BLX R4 POP {R4-R7,PC} align 4 _addr1 DCD addr1 _addr2 DCD addr2 _addr3 DCD addr3
и в конце патч:
После установки патча все работает как раньше) Перепроверил все адреса несколько раз. Ошибка здесь в другом
Просьба указать в чем ошибся)
[ Редактировано HeMo в 3.1.10 16:10 ]
[ Редактировано HeMo в 3.1.10 16:17 ]
W595 SW-R3EF001+M2 2GB+EP+Private Patches+FS Mod
Спасибо сказали: Se-MaG
jamesbond22
Свой в доску
Регистрация: 19.8.07 Сообщений: 1764 Репутация: 1322
#1405 [12.01.10, 17:56] Re: Учимся писать патчи
HeMo ,
107616AA: 19E0 14E0 - it is wrong
108E90F0: 20E0 23E0 - it is correct
-------------------------------------------------------------------------------------------------------------------------------
Патч: ;K800 SW-R8BF0003 ;Отображать процесс передачи через БТ в статус баре ;Работает только, если окна приема/передачи не находятся в фокусе ;v 1.0 ;(C) MaPkiZzz aka Vital
I used this code::
Код:
;W595 SW-R3EF001 ;Displays a process of transmission through BT in the status bar. ;Only works if the window "Sending" is minimalized. ;v 1.0 ;(c) MaPkiZzz aka Vital ;(p) jamesbond22 include "x.inc" patchbody = 0x11F19B70 org 0x11770D54 dw drawing_in_statusrow+1 org 0x11B08620 dw Send1+1 org 0x11B08658 dw Send2+1 ;Remove message "Sent" in the end sending the file via Bluetooth (needed for A2) org 0x108A0408 MOV R1, 0 ADD R0, R5, 0 BL 0x108A0350 B 0x108A0464 ;------------------------------------------------------------------------------------------------------------; ;------------------------------------------------------------------------------------------------------------; org patchbody drawing_in_statusrow: PUSH {R4,LR} LDR R0, is_ObExSendBook BL FindBook ADD R4, R0, 0 BEQ nothing BL to_BOOKDISPLAY_GetTopBook CMP R4, R0 BEQ nothing MOVL R0, 0x440 ;OK ADD R0, R4, R0 LDR R1, [R0,4] LDR R0, [R0] ASR R2, R1, 9 LSR R2, R2, 0x16 ADD R1, R2, R1 ASR R1, R1, 0xA ASR R2, R0, 9 LSR R2, R2, 0x16 ADD R0, R2, R0 ASR R0, R0, 0xA BL drawing nothing: POP {R4,PC} Send1: PUSH {R0-R7,LR} LDR R7, off_Send1 BLX R7 BL notonlyStandby POP {R0-R7,PC} Send2: PUSH {R0-R7,LR} LDR R7, off_Send2 BLX R7 BL notonlyStandby POP {R0-R7,PC} notonlyStandby: PUSH {LR} LDR R0, _HEAP LDR R0, [R0] MOV R1, 0 BL InvalidateRect POP {PC} drawing: PUSH {R4,LR} adr R2, _dword SUB SP, SP, 0x40 PUSH {R1} ADD R3, R0, 0 ADD R0, SP, 4 MOV R1, 0x20 BL intsnwprintf LDR R0, dword_OutlineColor LDR R1, dword_BackgroundColor PUSH {R0,R1} MOV R3, 0x16 MOV R2, 0x9D MOV R0, 0x2D MOV R1, 3 BL DrawBackground LDR R2, NULL MOV R1, 0 ADD R0, SP, 0xC BL Str2ID ADD R4, R0, 0 MOV R0, 0x18 BL SetFont MOV R2, 0 LDR R1, dword_TextColor MOV R0, 5 PUSH {R0-R2} MOV R2, 0x3C MOV R0, 0x9B MOV R1, 7 PUSH {R0-R2} MOV R3, 1 ADD R0, R4, 0 MOV R1, 2 MOV R2, 0x2F BL DrawString ADD SP, SP, 0x24 ADD R0, R4, 0 BL TextFree ADD SP, SP, 0x40 POP {R4,PC} ;------------------------------------------------------------------------------------------------------------; ;------------------------------------------------------------------------------------------------------------; FindBook: LDR R3, off_FindBook BX R3 to_BOOKDISPLAY_GetTopBook: LDR R3, off_to_BOOKDISPLAY_GetTopBook BX R3 strcmp: LDR R3, off_strcmp BX R3 Str2ID: LDR R3, off_Str2ID BX R3 SetFont: LDR R3, off_SetFont BX R3 TextFree: LDR R3, off_TextFree BX R3 InvalidateRect: LDR R3, off_InvalidateRect BX R3 DrawString: PUSH {R3} LDR R3, off_DrawString MOV R12, R3 POP {R3} BX R12 DrawBackground: PUSH {R3} LDR R3, off_DrawBackground MOV R12, R3 POP {R3} BX R12 intsnwprintf: PUSH {R3} LDR R3, off_intsnwprintf MOV R12, R3 POP {R3} BX R12 ;------------------------------------------------------------------------------------------------------------; align 4 _dword du "%d/%d KB",0 align 4 NULL dw 0xFFFF off_TextFree dw 0x10F62178+1 off_DrawString dw 0x109CC0B8+1 off_SetFont dw 0x109CCC38+1 off_Str2ID dw 0x10F61E3C+1 off_DrawBackground dw 0x109CBD2C+1 off_intsnwprintf dw 0x106F8694+1 off_strcmp dw 0x106F8468+1 off_to_BOOKDISPLAY_GetTopBook dw 0x10DF020C+1 off_FindBook dw 0x10DEE964+1 is_ObExSendBook dw 0x1089F4A0+1 off_Send1 dw 0x1089FF99 off_Send2 dw 0x1089FFFD _HEAP dw 0x4BBC51A8 off_InvalidateRect dw 0x109C8968+1 ;OK dword_OutlineColor dw 0xFF959595 dword_BackgroundColor dw 0x90000000 dword_TextColor dw 0xFFFF9933
But on end sending drawing disappears only on standby, not in other places. Why is this happening?
-------------------------------------------------------------------------------------------------------------------------------
I try to create some patch who add opening GUI OneOfMany in player. Patch has a strange and small error. Upon entry into the GUI and closing, and then when I open the player once it closes (appear message "Failed" at moment). The next times player opens properly.
Who help me?
code which I used:
Код:
openGUI: PUSH {R4,R5,LR} LDR R5, _Heap LDRB R5, [R5] ADD R4, R0, 0 BL is_AudioBook MOV R1, 0 BL BookObj_SetFocus ADD R0, R4, 0 LDR R0, [R4,0x18] CMP R0, 0 BEQ to_gui BL GUIGUI_Free MOV R0, 0 STR R0, [R4,0x18] to_gui: MOV R1, 0 ADD R0, R4, 0 BL GUI_ONEOFMANYCreateOneOfMany ... ... is_AudioBook: LDR R0, isAudioPlayerBook PUSH {LR} BL FindBook POP {PC}
-------------------------------------------------------------------------------------------------------------------------------
Патч: ;W600 SW-R7CA017 GENERIC ;Logo Changer v1.0 Beta ;Save file "LOGO.ini" in "/usb/other/ini/" ;Example of LOGO.ini: ;[LOGO]: 0x01 ;Use elf files of appz for edit the file ;(!) Is need define your name ID ;© k790alex ;Thanks to Sic (Found the hook)
I ported this patch to W595. Always displays Default Name. What can be wrong in source?
-------------------------------------------------------------------------------------------------------------------------------
Патч: ;W595 SW-R3EF001 ;Replacing phone graphics aka SYSGFX patch ;Create GFX.ini at PHONE/ini ;In GFX.ini specify the path to the replacing graphics ;Example: [GFX_Folder]: /usb/other/IMG (!HIT an ENTER after the path!) ;In this folder put your icons XXXX.PNG (XXXX.GIF, XXXX.JPG), ;where XXXX - number (hex) replaces pictures ;Version 1.1 ;Fixed bug with reboot, if the file was not found GFX.ini ;Fixed bug with reboot mode file transfer ; ;Icons for sysgfx and in main can have different resolutions ;(!) Heap shift ;(c) Joker XT ;(e) Vertexbz ;(p) jamesbond22
I installed this patch, but I do not see any change. Why?
XPeria X8 ROM 2.3.5 GingerDX v008
jamesbond22
Свой в доску
Регистрация: 19.8.07 Сообщений: 1764 Репутация: 1322
#1406 [15.01.10, 13:07] Re: Учимся писать патчи
MahmudS писал:
jamesbond22, use ; after digit in LOGO.ini
my contects of file LOGO.ini:
Код:
[LOGO]: 0x3;
Displays default name (name 4).
edit : patch done.
-------------------------------------------------------------------------------------------------------------------------------
In this patch is example for db2020 of how to merge icon and label:
Код:
LDR R2, _label LDR R1, _icon PUSH {R4,LR} SUB SP, SP, 0xC MOVL R3, 0x78000000 ADD R1, R1, R3 ;R1 - merge icon STR R1, [SP] MOV R1, 0x20 ;0x78000020 - space ADD R1, R1, R3 STR R1, [SP,4] ;icon... STR R2, [SP,8] ;label... MOV R2, 3 MOV R1, 5 LDR R3, Str2ID BLX R3 ADD SP, SP, 0xC ADD R2, R0, 0 LDR R0, [R4,0x58] ;GUI POP {R4,PC}
This function does not work on db3150. Why?
Can someone show an example function for db3150?
[ Edited by jamesbond22 в 15.1.10 11:57 ]
XPeria X8 ROM 2.3.5 GingerDX v008
Va_st
Patchmaster
Регистрация: 3.8.08 Сообщений: 440 Репутация: 1142
#1407 [15.01.10, 15:19] Re: Учимся писать патчи
jamesbond22 ,
для к790
Код:
pg_SMS_UI_EditServiceCentreWarning__PAGE_ENTER_EVENT ROM:4503134C 77 B5 PUSH {R0-R2,R4-R6,LR} ROM:4503134E 26 48 LDR R0, dword_450313E8 ROM:45031350 0D 1C ADDS R5, R1, #0 ROM:45031352 D1 F2 8D FA BL imageid2strid
Код:
ROM:45302870 imageid2strid MOVL R1, 0x78000000 ADD R0, R0, R1 BX LR
для w910
Код:
pg_SMS_UI_EditServiceCentreWarning__0xE ROM:11271F08 77 B5 PUSH {R0-R2,R4-R6,LR} ROM:11271F0A 28 48 LDR R0, =0xF8F0 ROM:11271F0C 0D 1C ADDS R5, R1, #0 ROM:11271F0E E0 F3 99 F9 BL sub_11652244
Код:
sub_11652244 MOVL R1, 0x78000000 ADD R0, R0, R1 BX LR
Добавлено 15.1.10 17:31 ну и попробуй для а2 сделать так
Код:
patch1: ldr r2,dw_11f0 ldr r1,dw_id1 b patch patch2: ldr r2,dw_11ef ldr r1,dw_id2 b patch patch3: ldr r2,dw_11ee ldr r1,dw_id3 patch: push {r4,lr} sub sp,0xc movl r3,0x78000000 add r1,r1,r3 str r1,[sp,0] mov r1,0x20 add r1,r1,r3 str r1,[sp,4] str r2,[sp,8] mov r0,0 push {r0} add r3,r0,0 mov r2,3 mov r1,5 mov r0,sp ldr r7,str2id blx r7 add sp,0xc add r2,r0,0 ldr r0,[r4,0x40] pop {r4,pc} align 4 dw_11f0 dw 0x1fc3 dw_11ef dw 0x11ef dw_11ee dw 0x11ee dw_id1 dw 0xe55c dw_id2 dw 0xe55d dw_id3 dw 0xe55e str2id dw SWI_0x15D_Str2ID
j10i2 r7ca061
jamesbond22
Свой в доску
Регистрация: 19.8.07 Сообщений: 1764 Репутация: 1322
#1408 [15.01.10, 15:39] Re: Учимся писать патчи
Va_st , on W595 is that same:
Код:
ROM:11A60A58 77 B5 PUSH {R0-R2,R4-R6,LR} ROM:11A60A5A 28 48 LDR R0, =0xF8F0 ROM:11A60A5C 0D 1C ADD R5, R1, #0 ROM:11A60A5E 0B F0 91 FC BL sub_11A6C384 ROM:11A60A62 27 49 LDR R1, =0x78000020 ROM:11A60A64 00 90 STR R0, [SP] ROM:11A60A66 68 46 MOV R0, SP ROM:11A60A68 41 60 STR R1, [R0,#4]
Код:
sub_11A6C384: MOVL R1, 0x78000000 ADD R0, R0, R1 BX LR
Added 15.1.10 13:53 Код:
push {r4,lr} sub sp,0xc movl r3,0x78000000 add r1,r1,r3 str r1,[sp,0] mov r1,0x20 add r1,r1,r3 str r1,[sp,4] str r2,[sp,8] mov r0,0 push {r0} add r3,r0,0 mov r2,3 mov r1,5 mov r0,sp ldr r7,str2id blx r7 add sp,0xc add r2,r0,0 ldr r0,[r4,0x40] pop {r4,pc}
phone restart
Код:
push {r4,lr} sub sp,0xc movl r3,0x78000000 add r1,r1,r3 str r1,[sp,0] mov r1,0x20 add r1,r1,r3 str r1,[sp,4] str r2,[sp,8] mov r0,0 ;push {r0} add r3,r0,0 mov r2,3 mov r1,5 mov r0,sp ldr r7,str2id blx r7 add sp,0xc add r2,r0,0 ldr r0,[r4,0x40] pop {r4,pc}
phone not restart, but icons not display:
[ Edited by jamesbond22 в 15.1.10 14:00 ]
XPeria X8 ROM 2.3.5 GingerDX v008
Va_st
Patchmaster
Регистрация: 3.8.08 Сообщений: 440 Репутация: 1142
#1409 [15.01.10, 16:00] Re: Учимся писать патчи
Код:
push {r4,lr} add r5,r4,0 sub sp,0xc movl r3,0x78000000 add r1,r1,r3 str r1,[sp,0] mov r1,0x20 add r1,r1,r3 str r1,[sp,4] str r2,[sp,8] mov r4,0 add r3,r4,0 mov r2,3 mov r1,5 mov r0,sp ldr r7,str2id blx r7 add sp,0xc add r2,r0,0 ldr r0,[r5,0x40] pop {r4,pc}
[ Редактировано Va_st в 15.1.10 18:03 ]
j10i2 r7ca061
jamesbond22
Свой в доску
Регистрация: 19.8.07 Сообщений: 1764 Репутация: 1322
#1410 [15.01.10, 16:08] Re: Учимся писать патчи
Va_st пишет:
Код:
push {r4,lr} add r5,r4,0 sub sp,0xc movl r3,0x78000000 add r1,r1,r3 str r1,[sp,0] mov r1,0x20 add r1,r1,r3 str r1,[sp,4] str r2,[sp,8] mov r4,0 add r3,r4,0 mov r2,3 mov r1,5 mov r0,sp ldr r7,str2id blx r7 add sp,0xc add r2,r0,0 ldr r0,[r5,0x40] pop {r4,pc}
screenshot:
XPeria X8 ROM 2.3.5 GingerDX v008
MiFa
Patcher
Регистрация: 28.5.09 Сообщений: 222 Репутация: 2330 Откуда: Польша / Кросно
#1411 [15.01.10, 19:23] Re: Учимся писать патчи
I have little question to
IronMaster or
den_po . About this patch
Патч: ;Playing sound file while charging ;When the battery is fully charged or charger is disconnected then stops playing
How i know what
sounds ID have my files in C902 (FW-R3EF001), how find it?
Похожие темы
Тема Ответы Автор Просмотры Обновление Патчи для db2020 (Общие вопросы) 558 Zormax 434071 24.03.25, 17:51 Как пропатчить файл прошивки с помощью BinEdit? 34 AleXeR 52431 15.06.15, 16:19 Setool2 Lite - Патчим, прошиваем 793 Zormax 647940 15.06.21, 04:11 патчи и редактор far manager 3 den_po 8739 25.04.21, 21:17 Aino и патчи, эльфы 1 khaker 5166 26.02.17, 19:37 Проблема патчинга с w380 (pnx5230) 3 ALexeY38 6698 15.08.15, 20:09 Запросы на платные патчи 586 Zormax 447956 08.08.14, 16:21 SE DB2010 Font Tool (Патчи) 64 TahaSpawn 84954 23.07.14, 10:57
Вы не можете начинать темы. Вы не можете редактировать свои сообщения. Вы не можете создавать опросы. Вы не можете вкладывать файлы в сообщения. Вы не можете отвечать на сообщения. Вы не можете удалять свои сообщения. Вы не можете голосовать.