IronMaster
VIP Developer
Регистрация: 16.5.06 Сообщений: 1135 Репутация: 8514 Откуда: Пермь
#1591 [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
blacklizard
Patchmaster
Регистрация: 22.7.08 Сообщений: 347 Репутация: 2213
#1592 [23.10.10, 10:57] Re: Учимся писать патчи
D3mon пишет: Уважаемые разработчики, подскажите, пожалуйста, как можно проверить играет ли музыка в данный момент?
You also can get the state with this:
Код:
class CMusicServer : public IUnknown { public: virtual void* unk_0x10(); virtual void* unk_0x14(); virtual void* unk_0x18(); virtual void* unk_0x1C(); virtual void* unk_0x20(); virtual void* unk_0x24(); virtual void* unk_0x28(); virtual int GetTags(int track_id,int bufsize,wchar_t* artist,wchar_t* album,wchar_t* title); virtual int GetFullInfo(int track_id,int bufsize,wchar_t* artist,wchar_t* album,wchar_t* title,wchar_t* filename,TIME* fulltime,TIME* ResumePosition,TBool* HaveAlbumArt,TBool* IsRealMediaFile); virtual int GetTrackFullpath(wchar_t track_id,int bufsize,wchar_t *buf); virtual int GetAlbumArt(int track_id,int bufsize,wchar_t* filename,int* Offset,int* Size,int* Type/*1=Jpeg,2=Gif,3=Png,4=Bmp,5=None,6=Embedded*/,TBool* IsDRMProtected); virtual int GetState(char* State); virtual int Play(int track_id); virtual int Pause(void); virtual int FastFoward(void); virtual int Rewind(void); virtual void* unk_0x50();//next virtual int Previous(void); virtual int SetElapsedTime(TIME time); virtual int GetElapsedTime(TIME* time); virtual int SetWindowMode(char mode); virtual int SetStarted(TBool started); virtual int SetStereoWidening(TBool enable); virtual int EnableEqualizer(void); virtual int DisableEqualizer(void); virtual int EqualizerGain_Set(int band,int level); };
But the UUID that I have currently is still wrong.
Any one can help with
MusicServer Component ID and Interface ID?
Thanks is advance
Respect: mc_kibel, moedjs, myrzeug, den_po, IronMaster
Спасибо сказали: D3mon
D3mon
Developer
Регистрация: 23.2.08 Сообщений: 1141 Репутация: 10348 Откуда: Краснодар
#1593 [23.10.10, 13:59] Re: Учимся писать патчи
blacklizard , thanks for the answer! But I dont know how I can use it in writing patches..
Sony Xperia XZ3 GreenSony Xperia Z3 Compact Orange W995i SW-R1GA026 :(
blacklizard
Patchmaster
Регистрация: 22.7.08 Сообщений: 347 Репутация: 2213
#1594 [23.10.10, 15:18] Re: Учимся писать патчи
D3mon , use IAR
Something like this
Код:
template<typename T> void** PPINTERFACE(T** pp) { //static_cast<IUnknown*>(*pp); return reinterpret_cast<void**>(pp); } typedef struct { unsigned char data[16]; }UUID, *PUUID; extern "C" { int Alarm_GetCurrentTypeAndAlarmID( char* type, wchar_t* AlarmID ); void CoCreateInstance( PUUID cid, PUUID iid, void* pInterface ); int returnto(); }; typedef unsigned long FUint32; typedef long FSint32; typedef unsigned long TUnsigned; typedef bool TBool; UUID IID_IStatusrow={0x5D,0xFE,0x94,0xA1,0x93,0x80,0x49,0x27,0x84,0x62,0xA3,0xA1,0xEF,0xD5,0x72,0x43}; UUID CID_CStatusrow={0x50,0xD7,0xBA,0x40,0x0A,0x19,0x47,0x3C,0xAA,0x51,0xF9,0x5E,0xDF,0xFB,0x4E,0x29}; class IUnknown { public: virtual void* pguid(); virtual void* QueryInterface(); virtual void* AddRef(); virtual void* Release(); }; class IUIStatusrow: public IUnknown { public: virtual int ShowIcon(int icon, TBool show); virtual int BlinkIcon(int icon, int mode); virtual int ShowClock(int display, TBool show); }; extern "C" void start() { char type; wchar_t AlarmID; Alarm_GetCurrentTypeAndAlarmID( &type, &AlarmID ); IUIStatusrow * pUIStatusrow=0; CoCreateInstance(&CID_CStatusrow, &IID_IStatusrow, PPINTERFACE(&pUIStatusrow)); if(type==1) { pUIStatusrow->ShowIcon(0x92a,1); pUIStatusrow->BlinkIcon(0x92a, 1); } else { pUIStatusrow->ShowIcon(0x92a,0); } if(pUIStatusrow) pUIStatusrow->Release(); //returnto(); }
Respect: mc_kibel, moedjs, myrzeug, den_po, IronMaster
vetel
Опытный
Регистрация: 27.4.10 Сообщений: 171 Репутация: 1282 Откуда: Россия
#1595 [26.10.10, 23:27] Re: Учимся писать патчи
Возможно ли сделать в этом патче:
чтобы работало только на главном экране? а то оно везде работает что не есть гуд
Предупреждение от den_po Нарушение правил: 5.3.4. Резкое отклонение от темы или обсуждение в одной теме нескольких разных вопросов, не связанных друг с другом, кроме раздела "О жизни".
Sony Xperia XASamsung SM-J120F/DS Galaxy J12016 C510 R1HA035 Brown снова со мной K550 R8BA024 почти помер
den_po
Developer/Admin
Регистрация: 27.3.06 Сообщений: 3279 Репутация: 10763 Откуда: Чебоксары
#1596 [26.10.10, 23:28] Re: Учимся писать патчи
vetel , запросы на патчи в другом топике
promt is better than google translate
vetel
Опытный
Регистрация: 27.4.10 Сообщений: 171 Репутация: 1282 Откуда: Россия
#1597 [27.10.10, 00:47] Re: Учимся писать патчи
den_po , Это не запрос, а лишь вопрос какой код добавить или отредактировать патч
Sony Xperia XASamsung SM-J120F/DS Galaxy J12016 C510 R1HA035 Brown снова со мной K550 R8BA024 почти помер
den_po
Developer/Admin
Регистрация: 27.3.06 Сообщений: 3279 Репутация: 10763 Откуда: Чебоксары
#1598 [27.10.10, 00:49] Re: Учимся писать патчи
vetel , ты спорить собрался? ну давай, если так, объясни, что и как делает нынешний код в этом патче
promt is better than google translate
vetel
Опытный
Регистрация: 27.4.10 Сообщений: 171 Репутация: 1282 Откуда: Россия
#1599 [27.10.10, 00:56] Re: Учимся писать патчи
den_po , Да нет не собирался, темы по редактированию патчей или что то подобное не нашел, поэтому сюда и написал
Sony Xperia XASamsung SM-J120F/DS Galaxy J12016 C510 R1HA035 Brown снова со мной K550 R8BA024 почти помер
den_po
Developer/Admin
Регистрация: 27.3.06 Сообщений: 3279 Репутация: 10763 Откуда: Чебоксары
#1600 [27.10.10, 00:59] Re: Учимся писать патчи
vetel , хочешь редактировать - читай эту и подобные темы с самого начала и до конца
promt is better than google translate
Emp
Новичок
Регистрация: 30.10.10 Сообщений: 7 Репутация: 5 Откуда: Рига
#1601 [31.10.10, 23:51] Re: Учимся писать патчи
Доброе времени суток господа!
Помогите пожалуйста. Пытаюсь портировать патч:
;K810 R8BA024
;Отображение дня недели в режиме ожидания
На: ;W995 SW-R1AG026
у меня такая вот ошибка:
Вот исходник:
Код:
include "x.inc" ;------------------ patch = 0x15E2DA00 ;------------------ org 0x15368D48 LDR R7, off_453CC91C BLX R7 org 0x155FAAC0 B 0x453CC94C org 0x155FAAC4 off_453CC91C DCD patch+1 org 0x155FAAC0 B 0x453CC94C code16 org patch loc_45CB3660: LDR R7, dword_45CB36CC ADDS R0, R5, 0 PUSH {R0-R6,LR} SUB SP, SP, 0x168 LDR R0, off_45CB36C0 LDR R0, [R0] MOV R1, SP LDR R7, off_45CB36C4 BLX R7 MOV R0, SP MOV R1, SP LDR R7, off_45CB36C8 BLX R7 MOV R0, SP LDRB R0, [R0] MOVLS R7, 0x220 CMP R0, 0 BNE loc_45CB368A SUBS R7, 0x6A B loc_45CB36BC ; --------------------------------------------------------------------------- loc_45CB368A: CMP R0, 1 BNE loc_45CB3692 ADDS R7, 0x18 B loc_45CB36BC ; --------------------------------------------------------------------------- loc_45CB3692: CMP R0, 2 BNE loc_45CB369A ADDS R7, 0x32 B loc_45CB36BC ; --------------------------------------------------------------------------- loc_45CB369A: CMP R0, 3 BNE loc_45CB36A2 ADDS R7, 0xA B loc_45CB36BC ; --------------------------------------------------------------------------- loc_45CB36A2: CMP R0, 4 BNE loc_45CB36AA SUBS R7, 0x98 B loc_45CB36BC ; --------------------------------------------------------------------------- loc_45CB36AA: CMP R0, 5 BNE loc_45CB36B2 SUBS R7, 0x25 B loc_45CB36BC ; --------------------------------------------------------------------------- loc_45CB36B2: CMP R0, 6 BNE loc_45CB36BA ADDS R7, 6 B loc_45CB36BC ; --------------------------------------------------------------------------- loc_45CB36BA: LDR R7, dword_45CB36CC loc_45CB36BC: ADD SP, SP, 0x168 POP {R0-R6,PC} ; --------------------------------------------------------------------------- off_45CB36C0 DCD 0x15A538AC off_45CB36C4 DCD 0x1434FAC4+1 off_45CB36C8 DCD 0x1434FC80+1 dword_45CB36CC DCD 0x6FFFFFFF
Не понимаю в чем дело
Помогите пожалуйста разобраться! Заранее Большое Спасибо!
[ Редактировано Emp в 31.10.10 21:53 ]
K750 => W800 K800 => K810 W995
Похожие темы
Тема Ответы Автор Просмотры Обновление Как пропатчить файл прошивки с помощью BinEdit? 34 AleXeR 51280 15.06.15, 16:19 Setool2 Lite - Патчим, прошиваем 793 Zormax 629750 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 6359 15.08.15, 20:09 Запросы на платные патчи 586 Zormax 435296 08.08.14, 16:21 SE DB2010 Font Tool (Патчи) 64 TahaSpawn 83131 23.07.14, 10:57 Патчи для db2020 (Общие вопросы) 554 Zormax 418700 07.01.14, 05:16
Вы не можете начинать темы. Вы не можете редактировать свои сообщения. Вы не можете создавать опросы. Вы не можете вкладывать файлы в сообщения. Вы не можете отвечать на сообщения. Вы не можете удалять свои сообщения. Вы не можете голосовать.