• Внимание! Перед любыми операциями с китайскими телефонами не забудьте сделать BACKUP! И не говорите потом, что вас не предупреждали!

Инструкция по переключению драйверов дисплея EVEN (MTK6235)

  • Автор темы Автор темы AlexAiS
  • Дата начала Дата начала
27/5/07
73
73
0
Кредиты
2
Как уже известно, драйвера дисплеев EVEN на MTK6235 находятся в прошивке (первом роме), а переключаются в бутлоадере. Вот только фришного софта, который умеет это делать на 6235, нет, а покупать ChinaResMan или LPE от инфинити ради одной прошивки нерентабельно. Поэтому и появилось желание написать инструкцию, как это сделать самому.
Всё, что нам понадобится - это нужный нам мастерфулл (пусть и с отключенным нужным нам драйвером), ChinaResMan Demo, любой hex-редактор (WinHex например) и умение им пользоваться хотя бы на базовом уровне.

Шаг 1. Поиск нужного мастерфулла.
Первым делом нужно слить фулл с нерабочего аппарата. Его потом можно открыть в ChinaResMan Demo и на вкладке LCD Drivers увидеть нужный нам драйвер (отмечен галочкой). Если вдруг мы этого всё же не сделали, не беда, разбираем тел и переписываем маркировку дисплея, в многих случаях она хотя бы частично совпадает с названием драйвера в прошивке. Итак, фулл слит (или маркировка прочитана), название драйвера знаем, прога заодно показала имя билда, по нему и ищем мастерфулл под нашу модель. Открываем его скат в ChinaResMan Demo и смотрим, есть ли в проше нужный нам драйвер (пусть и неактивный). Если нет - ищем дальше, если нашли - приступаем к шагу 2.

Шаг 2. Поиск смещения переключателя в бутлоадере
Как я уже говорил выше, драйвера находятся в роме, а переключение их - в бутлоадере, за это отвечают два байта, которые нам нужно найти. Для наглядности я использовал прошивку Nokia X6 TV WiFi (CRTEL X6), лежит , на ней и будем учиться. Если ее открыть в ChinaResMan, то видим, что включен драйвер WEIZHONG_9326_32 (WDT_T397M), а нам нужно, допустим, включить WDT_T618M.
Итак, открываем бутлоадер в винхексе и ищем строку EVEN (кодировка ASCII). В нашем случае найдена строка EVENCOMMMODLMLLC (последние несколько символов в разных прошивках могут отличаться, это несущественно). Следующие два байта после окончания строки и есть переключатель. В нашем случае, это байты 24 81, если кликнуть по ним, то внизу в строке Offset (смещение) видим адрес смещения 8DE0, его и переписываем.

Шаг 3. Вычисление нужного переключателя
Смещение нам уже известно (в нашем случае 8DE0). В ChinaResMan Demo переходим на вкладку LCD Drivers и смотрим в самой правой колонке ИНДЕКС нужного нам драйвера. В нашем случае, для драйвера №6 (WDT_T618M) индекс 307. Запускаем инженерный калькулятор (подойдет стандартный из винды), выбираем десятичный формат (DEC), вставляем наш индекс и переводим в шестнадцатеричный (HEX). Получим: 307 (dec) = 133 (hex). Но это еще не всё. Полученное значение составляет два байта, распишем по байтам: 133 = 01 33. Половину первого байта (нолик) заменяем на 8, получим 81 33. И последний шаг - меняем байты местами: 81 33 = 33 81. Мы получили заветных два байта, теперь в винхексе переходим по вычисленному ранее смещению 8DE0 и заменяем существующие байты 24 81 на нужные нам 33 81. Сохраняемся. Загружаем заново скат ChinaResman'ом, проверяем - вуаля! нужный нам драйвер включен :) Можно прошиваться :)

P.S. Если лень/не получается/не хватает нервов итп, тогда покупаем платный софт и радуемся легкой жизни ;)
 
UPD: этот же метод был проверен на MTK6253 (E71 TV, NOR), методика работает, только точка входа другая (в моем случае была DF0000 в фулле). Кстати, для замены драйвера в фулле NOR совершенно необязательно после патча фулла заливать весь фулл, можно создать в хексе файлик размером в 2 байта, прописав в нем только ключ замены драйвера, и залить его скатом, в котором прописано смещение точки входа (например ROM 0x00DF0000). Само собой, в этом случае он зальется за полсекунды :)
 
Назад
Верх Низ