IronMaster
VIP Developer
Регистрация: 16.5.06 Сообщений: 1135 Репутация: 8514 Откуда: Пермь
#1431 [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 Откуда: Краснодар
#1432 [18.01.10, 23:51] Re: Учимся писать патчи
Va_st писал:
без понятия
это был риторический вопрос
Замучился я с этим патчем:
Патч: ;K790 SW-R8BF003 ;Отображение статуса показа номера иконкой в трее ;(c) 2007KrasH,ploik ;(p) Ax
Для k790 сделал исходник, вот он:
Исходник k790:
Код:
include "x.inc" ;------------------------------- patch = 0x45B09440 ;------------------------------- org 0x459B6FE4 DCD patch+1 org 0x44DA9ABA LDR R0, off_44DA9AC0 BX R0 NOP off_44DA9AC0 DCD 0x45B09466+1 ;--------------------------------------------------------------------------------------- org patch loc_patch: PUSH {LR} SUB SP, SP, 8 BL loc_45B094C0 MOV R1, 0 MOV R0, SP STRB R1, [R0] BL loc_45B094B4 MOV R0, SP LDRB R0, [R0] BL loc_45B0949E MOV R1, 1 BL loc_45B094B8 ADD SP, SP, 8 MOV R0, 1 POP {PC} SUB SP, SP, 4 MOV R1, 0 MOV R0, SP STRB R1, [R0] BL loc_45B094B4 MOV R0, SP LDRB R0, [R0] BL loc_45B0949E MOV R1, 0 BL loc_45B094B8 ADD SP, SP, 4 MOV R0, 0x4A LDRB R0, [R4,R0] BL loc_45B0949E MOV R1, 1 BL loc_45B094B8 MOV R0, 0x4A LDRB R0, [R4,R0] BL loc_45B094BC ADD R4, 0x4A LDR R0, off_45B094D4 BX R0 ; --------------------------------------------------------------------------- loc_45B0949E: PUSH {R1-R7,LR} CMP R0, 2 BHI loc_45B094AC adr R1, dword_45B094D8 LSL R0, R0, 1 LDRH R0, [R1,R0] locret_45B094AA: POP {R1-R7,PC} ; --------------------------------------------------------------------------- loc_45B094AC: LDR R0, dword_45B094B0 B locret_45B094AA ; --------------------------------------------------------------------------- dword_45B094B0 DCD 0xFFFF ; --------------------------------------------------------------------------- loc_45B094B4: LDR R3, off_45B094C4 BX R3 ; --------------------------------------------------------------------------- loc_45B094B8: LDR R3, dword_45B094C8 BX R3 ; SetTrayIcon(wchar_t iconID, char mode); ; --------------------------------------------------------------------------- loc_45B094BC: LDR R3, off_45B094CC BX R3 ; --------------------------------------------------------------------------- loc_45B094C0: LDR R3, off_45B094D0 BX R3 ; --------------------------------------------------------------------------- off_45B094C4 DCD 0x44DAE9E5 dword_45B094C8 DCD 0x4527FCF9 off_45B094CC DCD 0x44DAE9D0+1 off_45B094D0 DCD 0x44DAC1EC+1 off_45B094D4 DCD 0x44DA9AC4+1 dword_45B094D8 DCD 0xEDC9EDEF org 0x45B094DC DCD 0xEB43
вроде бы портанул..
Исходник w850:
Код:
include "x.inc" ;------------------------------- patch = 0x443BD6A0 ;------------------------------- org 0x45B86A70 DCD patch+1 org 0x44EF69C8 LDR R0, off_44DA9AC0 BX R0 NOP off_44DA9AC0 DCD 0x443BD6C6+1 ;--------------------------------------------------------------------------------------- org patch loc_patch: PUSH {LR} SUB SP, SP, 8 BL loc_45B094C0 MOV R1, 0 MOV R0, SP STRB R1, [R0] BL loc_45B094B4 MOV R0, SP LDRB R0, [R0] BL loc_45B0949E MOV R1, 1 BL loc_45B094B8 ADD SP, SP, 8 MOV R0, 1 POP {PC} SUB SP, SP, 4 MOV R1, 0 MOV R0, SP STRB R1, [R0] BL loc_45B094B4 MOV R0, SP LDRB R0, [R0] BL loc_45B0949E MOV R1, 0 BL loc_45B094B8 ADD SP, SP, 4 MOV R0, 0x4A LDRB R0, [R4,R0] BL loc_45B0949E MOV R1, 1 BL loc_45B094B8 MOV R0, 0x4A LDRB R0, [R4,R0] BL loc_45B094BC ADD R4, 0x4A LDR R0, off_45B094D4 BX R0 ; --------------------------------------------------------------------------- loc_45B0949E: PUSH {R1-R7,LR} CMP R0, 2 BHI loc_45B094AC adr R1, dword_45B094D8 LSL R0, R0, 1 LDRH R0, [R1,R0] locret_45B094AA: POP {R1-R7,PC} ; --------------------------------------------------------------------------- loc_45B094AC: LDR R0, dword_45B094B0 B locret_45B094AA ; --------------------------------------------------------------------------- dword_45B094B0 DCD 0xFFFF ; --------------------------------------------------------------------------- loc_45B094B4: LDR R3, off_45B094C4 BX R3 ; --------------------------------------------------------------------------- loc_45B094B8: LDR R3, dword_45B094C8 BX R3 ; SetTrayIcon(wchar_t iconID, char mode); ; --------------------------------------------------------------------------- loc_45B094BC: LDR R3, off_45B094CC BX R3 ; --------------------------------------------------------------------------- loc_45B094C0: LDR R3, off_45B094D0 BX R3 ; --------------------------------------------------------------------------- off_45B094C4 DCD 0x44EFB9E9 dword_45B094C8 DCD 0x453E47CD off_45B094CC DCD 0x44EFB9D4+1 off_45B094D0 DCD 0x44EF9190+1 off_45B094D4 DCD 0x450940E4+1 dword_45B094D8 DCD 0xED90EDCA org 0x45B094DC DCD 0xED8E
Но компилятор ругается, вот что говорит:
flat assembler for ARM version 1.66 seticW.asm [10]: LDR R0, off_44DA9AC0 x.inc [106] ldr [26]: ldr rg , [pc,(p1-($ and 0xFFFFFFFC)-4)] error: Immediate offset not alligned. cant open temp.bin
Что у меня не так с этим кусочком
P.S. пользуясь случаем, спрошу..
IronMaster писал:
ida_babeldr.rar - Теперь не нужно конвертировать прошивку в raw, не нужно выбирать вручную тип процессора и задавать адреса. © den_po
Как сделать, чтобы тип процессора не надо было выбирать вручную? мне всегда приходится менять на arm710..
[ Редактировано D3mon в 18.1.10 23:52 ]
Sony Xperia XZ3 GreenSony Xperia Z3 Compact Orange W995i SW-R1GA026 :(
MahmudS
Patchmaster
Регистрация: 3.12.07 Сообщений: 662 Репутация: 3103 Откуда: Черновцы.UA
#1433 [18.01.10, 23:56] Re: Учимся писать патчи
D3mon , вместо NOP в той врезке напиши align 4. А лучше напиши так: org 0x44EF69C8 LDR R0, off_44DA9AC0 BX R0 align 4 off_44DA9AC0 DCD 0x443BD6C6+1 NOP [ Редактировано MahmudS в 18.1.10 23:02 ]
iPhone 5S Neverlock 64gb iOS 8.4 + Jailbreak C901 R1GA028 Ocean White W715 R1GA030 Black
Спасибо сказали: D3mon
D3mon
Developer
Регистрация: 23.2.08 Сообщений: 1141 Репутация: 10348 Откуда: Краснодар
#1434 [18.01.10, 23:58] Re: Учимся писать патчи
MahmudS , а можно узнать, как это определить в будущем?
Sony Xperia XZ3 GreenSony Xperia Z3 Compact Orange W995i SW-R1GA026 :(
MahmudS
Patchmaster
Регистрация: 3.12.07 Сообщений: 662 Репутация: 3103 Откуда: Черновцы.UA
#1435 [19.01.10, 00:11] Re: Учимся писать патчи
D3mon , адреса должны быть выровнены, вот и пишем align 4. Он либо ничего не допишет, либо допишет FFFF в скомпилированом патче
iPhone 5S Neverlock 64gb iOS 8.4 + Jailbreak C901 R1GA028 Ocean White W715 R1GA030 Black
D3mon
Developer
Регистрация: 23.2.08 Сообщений: 1141 Репутация: 10348 Откуда: Краснодар
#1436 [19.01.10, 00:23] Re: Учимся писать патчи
MahmudS , тогда можно такой вопрос, почему для самого k790 этого не нужно делать? если я там постпавлю align 4, то патч другой получается, а при порте надо?
Sony Xperia XZ3 GreenSony Xperia Z3 Compact Orange W995i SW-R1GA026 :(
MahmudS
Patchmaster
Регистрация: 3.12.07 Сообщений: 662 Репутация: 3103 Откуда: Черновцы.UA
#1437 [19.01.10, 00:30] Re: Учимся писать патчи
D3mon , для к790 адрес врезки не кратный 4, идут три команды по 2 байта каждая, в итоге ссылка на патч уже будет по адресу кратному 4, поэтому можно писать, можно не писать. Для в850 адрес врезки кратный 4, поэтому если оставишь как в оригинале, он не скомпилится. А уберешь NOP перед ссылкой и напишешь после - все будет гуд. NOP - No operation, чтобы тебя не смущала эта команда ;)
iPhone 5S Neverlock 64gb iOS 8.4 + Jailbreak C901 R1GA028 Ocean White W715 R1GA030 Black
D3mon
Developer
Регистрация: 23.2.08 Сообщений: 1141 Репутация: 10348 Откуда: Краснодар
#1438 [19.01.10, 00:36] Re: Учимся писать патчи
MahmudS , я знал, что НОП ничего не делает, но за доп. инфу спасибо :) Кстати, если я НОП ставлю после off_44DA9AC0 DCD 0x443BD6C6+1, как ты говорил, то у меня врезка вторая кривая получается...
Sony Xperia XZ3 GreenSony Xperia Z3 Compact Orange W995i SW-R1GA026 :(
gekasilos
Пользователь
Регистрация: 4.1.09 Сообщений: 115 Репутация: 76 Откуда: Шостка
#1439 [19.01.10, 00:57] Re: Учимся писать патчи
Может кто то подсказать как на определённую папку в фм повесить иконку ?
MahmudS
Patchmaster
Регистрация: 3.12.07 Сообщений: 662 Репутация: 3103 Откуда: Черновцы.UA
#1440 [19.01.10, 00:57] Re: Учимся писать патчи
Всмысле кривая? С ним ребутит, без него работает?)
iPhone 5S Neverlock 64gb iOS 8.4 + Jailbreak C901 R1GA028 Ocean White W715 R1GA030 Black
D3mon
Developer
Регистрация: 23.2.08 Сообщений: 1141 Репутация: 10348 Откуда: Краснодар
#1441 [19.01.10, 01:09] Re: Учимся писать патчи
MahmudS , в конец второй строки добавляется C046, а там должен адрес заменйа идти... у меня по-всякому ребут. Ребутит, когда я выбираю в настройках, как показывать..
Sony Xperia XZ3 GreenSony Xperia Z3 Compact Orange W995i SW-R1GA026 :(
Похожие темы
Тема Ответы Автор Просмотры Обновление Как пропатчить файл прошивки с помощью BinEdit? 34 AleXeR 51284 15.06.15, 16:19 Setool2 Lite - Патчим, прошиваем 793 Zormax 629998 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 435596 08.08.14, 16:21 SE DB2010 Font Tool (Патчи) 64 TahaSpawn 83133 23.07.14, 10:57 Патчи для db2020 (Общие вопросы) 554 Zormax 418997 07.01.14, 05:16
Вы не можете начинать темы. Вы не можете редактировать свои сообщения. Вы не можете создавать опросы. Вы не можете вкладывать файлы в сообщения. Вы не можете отвечать на сообщения. Вы не можете удалять свои сообщения. Вы не можете голосовать.