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

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

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

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


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

  • 4 недели спустя...
  • Ответов 1,4 тыс
  • Создана
  • Последний ответ

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

Здравствуйте, в общем решил я заняться пачтингом и скачал BinEdit, нащел мануал и столкнулся со следующей проблеммой при запуске BinEdit выдает ошибку, ему не хватает"mscomctl.ocx", стоит у меня официальная win 7, не знаю может уже и поднимался этот вопрос, но мне нужно узнать как избавиться от этой ошибки.

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

не знаю может уже и поднимался этот вопрос, но мне нужно узнать как избавиться от этой ошибки.
Вообще на форуме поиск вполне работает. И решение этой ошибки описано.

Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com

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

Вообще на форуме поиск вполне работает. И решение этой ошибки описано.

Спасибо, просто ещё не очень освоился на форуме)

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

kolesnikov.da0@gmail.com, саздай себе ник, согласно правил форума!

Ты только пришёл? Тогда: ЧИТАЙ! Если прочитал, то начни от СЮДА!

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

  • 4 недели спустя...

Однако ведь есть вполне простое и удобное решение.

Конфиг читать только один раз, обязательно, при включении мобилы (например в mcc_lk_init_poweron_settings).

Найти в ОЗУ неиспользуемые 4 байта (может какую-то заведомую tst-функцию прибить, которая где-то хранит свои данные и таким образом заведомо неиспользуемое место в ОЗУ будет)… И там хранить указатель на память (получаемый от RtkGetMemory) куда при включении был прочитан конфиг.

да, у меня тоже давно такая идея была...

кстати, в Extra Desktop на M3510 примерно так и сделано :59:

останавливало одно - надо начинать это, действительно, с новой прошивки :)

если появится у меня самсунг, то так тоже буду делать скорее всего...

а найти 4 неиспользуемых байта - не так уж сложно... :)

 

а насчет того, какого размера делать конфиг - хз, 1кБ вполне достаточно, мало на какой прошивке он используется хотя бы на 50%...

да и в принципе размер файла можно быстро увеличить редактированием мастер-патча, без ущерба уже написанным патчам... :)

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

  • 3 месяца спустя...

а как все-таки найти место, где обрабатываются сообщения, передаваемые процессу.

Есть, например, процесс PROCESS_EDP и ему при определенной ситуации передается сообщение, я хочу туда добавить кое-чего, где это искать?

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

как все-таки найти место, где обрабатываются сообщения, передаваемые процессу.

Для каждого процесса (вообще-то не для каждого) есть таблица обработчиков сообщений.

Причем процесс может находиться в нескольких состояниях, для каждого состояния будет своя таблица.

У PROCESS_EDP, насколько я понял, только одно состояние - a_edp_StandbyEd:

 

DCD	edp0_1PipeKeyPressed+1
DCD	0x00000000
DCD	0x00003703
DCD	edp0_19KeyReleasedInd+1
DCD	0x00000000
DCD	0x00003705
...

Видим, что, например, сообщение 0x00003703 (MOBI_HKBD_KEY_PRESSED_IND) обрабатывает функция edp0_1PipeKeyPressed.

 

Проще всего поискать ID сообщения, таблицу легко определить на глаз.

  • Like 2
5073IA3.png
Ссылка на комментарий
Поделиться на другие сайты

получается, все эти функции-обработчики сообщений получают в качестве параметра pp_ReceivedMsg

 

pp_ReceivedMsg : pointer of t_FsmObject

t_FsmObject = st_RtkObject = structure;12 bytes
u_ReceivedObj : union;+0
	{
	v_TimerID : t_TimerID	
	p_MessageAddress : pointer of st_MsgHeader
	v_UserEvent : unsigned
	}
v_UserData	: u32;+4
v_UserEventMask : unsigned;+8
v_TypeOfObj : u8;+10

t_TimerID = u32

st_MsgHeader = structure;8 bytes
v_Length : unsigned
s_Transmitter : t_ProcessIdentity
s_Receiver : t_ProcessIdentity
v_OperationType : t_OperationType

t_ProcessIdentity = unsigned

t_OperationType = unsigned

 

и вот у меня есть проверка такая:

 

LDR 	R0, [pp_ReceivedMsg]
LDRB	R0, [R0, #0x2]
CMP	R0, #0x37
BNE	loc_...

 

что здесь проверяется? третий байт v_TimerID? :)

для C3322XEKL1 в DEF есть 2 таймера подходящих

#define HKBD_TIMEOUT_IND  0x000373706
#define HKBD_TIMEOUT_ONKEY_IND  0x00037370D

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

что здесь проверяется?

Вообще-то структура заголовка сообщения такая:

/* Structure of a message
--------------------------*/
typedef PACKED struct st_MsgHeader {
  u16			   v_Length;
  t_ProcessIdentity s_Transmitter;
  t_ProcessIdentity s_Receiver;
  t_OperationType   v_OperationType;
}t_MsgHeader;

т.е. проверяется, кто отправил сообщение.

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

  • 2 недели спустя...

пишу патчи,пока времени куча буду писать

И что дальше то?

Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com

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

  • 3 недели спустя...

Реализовал идею по новому конфигу мастерпатча

 

C3322XWKL1…

Там в ОЗУ с t_T_IDI_IMGEDITOR_TITLE_ARROW_PREVIOUSimgeditor_icon_title_arrow_previous по t_T_IDI_IMGEDITOR_TITLE_THUMB_BGimgeditor_icon_title_thumb_bg лежат некие имена картинок. Которые копируются из прошивки при включении. Типа «/a/multimedia/imgeditor/paragon/imgeditor_icon_title_arrow_previous.ifg»

Нашёл таблицы которые ссылались на эти переменные в ОЗУ, переправил их на адреса в прошивку (например 0x91C051A4). И теперь тут целых 0x700 байт свободны… Куда и грузится конфиг при включении в mcc_lk_init_poweron_settings.

Вобщем на C3322 проблем нет.

 

А вот на S5610 - облом. Хотя всё тоже самое. Такие же имена, в том же месте. Нашёл.

Но, чтение чего-либо из той области прошивки (например 0x216F2E5C) которая копируется в ОЗУ - приводит к срабатыванию защиты ОС, и перезагрузке. Т.е. переправить ссылки с адресов ОЗУ на адреса в прошивке - нельзя…

Конечно, там есть куча "лишних" картинок в читаемых областях прошивки, можно туда пересадить все те строки.

 

Но хотелось бы наконец разобратся с запретами чтения из некоторых адресов…

Куда вообще копать?

Или в случае S5610 эта часть прошивки вообще не сохраняется а сразу распаковывается в ОЗУ?

Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com

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

Возможно эта часть прошивки при старте копируется в озу.. и напрямую чтение из флеши организуется по другому

Жизнь - пьяный поэт, я - слово.

Я жесток и грустен, когда ему херово.

Жизнь - старый поэт, жизнь - усталый поэт,

А я... Что я? Его инструмент!...

 

Разработка Broadcom: http://www.rk-team.net/

Новости проекта QuB на Twitter

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

  • 4 месяца спустя...
  • 1 год спустя...

Как изменить lkres_LoadNandTextData?

 

и любое устройство, которое

используется для переноса язык,

так что может быть установлен в

C3322XWLG1 Indonesian.qtc.

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

Indonesian.qtc.

 

keluarkan tua Indonesian firmware bin folder,mengganti csc file dari daerah kamu, yaitu akan mengganti firmware file dengan Indonesian bahasa...flash telepon

Если участник форума помог вам, или его сообщение оказалось полезным, не надо создавать ответное сообщение с текстом «Спасибо», «Согласен», и т.п, просто нажмите кнопку «Спасибо»

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

Как изменить lkres_LoadNandTextData?
А ты уже сделал новые Indonesian.txt и Indonesian.idx по стандарту прошивок C3322X ?

 

binedit_lkres1.png

 

Где-то тут. Удалить загрузку .qtc из /a/customer/text/, удалить распаковку Quram, и добавить прямую загрузку своих распакованных Indonesian.txt и Indonesian.idx…

Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com

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

А ты уже сделал новые Indonesian.txt и Indonesian.idx по стандарту прошивок C3322X ?

 

122917-3-05-15)1430641042_thumb.png

 

Где-то тут. Удалить загрузку .qtc из /a/customer/text/, удалить распаковку Quram, и добавить прямую загрузку своих распакованных Indonesian.txt и Indonesian.idx…

 

 

Извините менее очевидно, понятие образа упоминается в деталях

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

  • 2 недели спустя...

А ты уже сделал новые Indonesian.txt и Indonesian.idx по стандарту прошивок C3322X ?

 

122917-3-05-15)1430641042_thumb.png

 

Где-то тут. Удалить загрузку .qtc из /a/customer/text/, удалить распаковку Quram, и добавить прямую загрузку своих распакованных Indonesian.txt и Indonesian.idx…

 

неполное путь

Мы ценим, если вы хотите

Оценил !!!

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

  • 3 года спустя...

Решил поставить пароль на разблокировку клавиатуры, портировав патч для E590.

 

<patchdata firmware="J210XEHG1" mode="C100"  >
  <changes>
 <nord offset="0x138A318" from="446CF520" to="DCC67621" type="CODE" />
 <nord offset="0x176C6DC" from="18022A00" to="170A8D00" type="CODE" />
 <nord offset="0x176C6E4" from="4CD17621" to="00000000" type="CODE" /> 
 <nord offset="0x176C734" from="588B3821" to="000D7E21" type="CODE" /> 
 <nord offset="0x17E0D00" from="0000000000000000" to="170A8D0000000100" type="CODE" /> 
 <nord offset="0x17E0D10" from="00" to="0A" type="CODE" />
 <nord offset="0x17E0D20" from="00000000" to="17021F00" type="CODE" />
 <nord offset="0x17E0D30" from="00000000" to="7A000100" type="CODE" />
 <nord offset="0x1388B68" from="17021F0000000000" to="170A8D0000000100" type="CODE" />

 

При запросе пароля, если нажать красную кнопку, происходит разблокировка. Тогда в чем был смысл патча, если можно разблокировать телефон без пароля? Это устранимая проблема?

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

При запросе пароля, если нажать красную кнопку, происходит разблокировка. Тогда в чем был смысл патча, если можно разблокировать телефон без пароля? Это устранимая проблема?

При помощи CGSN-патча надо найти место где стоит MCC-обработчик (запросить в терминале адрес обработки MCC) в моменты ввода этого пароля, и посмотреть куда там выход по сканкоду красной кнопки и что с этим делает данный патч.

 

Вообще надо патч показывать в виде исходника, эти коды никто не будет компилировать и смотреть что там неполучается

Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com

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

Вообще надо патч показывать в виде исходника, эти коды никто не будет компилировать и смотреть что там неполучается

Хорошо, учту. 

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

В патче Easy_ScreenShot_v21_B5722XXJK3.asm

 

;2197B5FA:    3549    LDR    R1, =vScreenMem    ;R1 = значение по адресу (PC + 212)=[0x2197B6D0]= 0x306BA180
;2197B5FC:    4B22    MOV    R2, #0x4B    ;R2 = 75 "K"
;2197B5FE:    D202    LSL    R2, R2, #11    ;R2 = R2 << 11 = 0x25800 (153600)
;2197B600:    0023    MOV    R3, #0x0    ;R3 = 0
;2197B602:    4118    ADD    R1, R0, R1    ;R1 = R0 + R1 = 0x5244CDE4 (1380240868)
;2197B604:    301C    MOV    R0, R6    ;R0 = R6 = 0x401 (1025)
;2197B606:    EFF62EEC    BL    gfs10_1CrtFile ; p_I_Path,p_I_Data,v_I_Sz,b_I_IsForExt,b_I_ChkCntFull    

.start 0x2197B5FA
LDR    R3, =RAW2BMP+1
BX    R3
.data

 

Не получается определить точку входа .start . С помощью BinEdit (поиск через A c лупой)  вставлял j_mmigfs1_1ReadFile 0x20593338 и vScreenMem 0x302FA620, но похожего кода (тот который выше закомментирован) в ссылке на данные не нашел. Подскажите, пожалуйста, как Вы определяли .start 0x2197B5FA?

 

Мои эквиваленты:

.equ vScreenMem 0x302FA620

.equ __rt_memcpy 0x208B25C8

.equ Rtk50_11GetDynMemory 0x211372C0

.equ RtkReleaseMemory 0x211372A0

.equ j_mmigfs1_0CreateFile 0x20593CF4

.equ j_mmigfs1_1ReadFile 0x20593338

Эти эквиваленты ( j_mmigfs1_0CreateFile и j_mmigfs1_1ReadFile) определил из мастер-патча.

 

И еще вопрос, можно ли закомментирован данный блок, если в моем телефоне и так обновляется TFS?

; регистрация файла в DB (чтобы без RefreshTFS обойтись)
MOV    R1, 1
STR    R1, [sP, 8]
MOV    R3, 0
STR    R3, [sP, 4]
STR    R3, [sP]
MOV    R2, R6 ; регистрируемый путь+файл
MOV    R0, 0
BL    gfs31_DB_6InsData

 

Подскажите, а что значит BLT  ess_error?

Заранее благодарю!

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

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

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

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

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

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

Войти

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

Войти



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