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

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

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

Увеличение кол-ва абонентов на экране в тел книге.


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

Я давно изменил самсунгу, хотя вначале очень восхощался ихними телефонами.

Копая прошивки разочаровался просто жах. Сразу стало ясно, почему так быстро садится батарейка, и т.д... Больше писать на эту тему не хочу, чтоб не думали, что я поливаю грязью самсунги на форуме, где его так все почитают... Сорри...

 

Прошлым летом я захотел сделать патч, чтоб в телефонной книге выводилось больше абонентов. Сразу бросалось, что верхнюю полосу можно было убрать вообще! А полоску с номером поднять вверх. Уже можно 4 вывести.

Нижнюю полоску пробовал убрать, но так и не нашел процедуру, которая рисует... Итак я занялся раскопками...

 

Надеюсь кто-то или группа людей доведет патч до конца. Копирайты раскопок просьба сохранить, так как это все нарытое добро далось очень длительным времением раскопок, проб и ошибок, прошиваний и откатов, короче еб**ни. :idea:

 

Я понимаю, что глянув на это все, можно сказать что маловато. Это все что я понял и насколько хватило моего терпения. Может часть я не дописал, так как прошел почти год и много забылось.

-------------------------------------------------------------------------------------------------

При раскопках использовал X10DXWK3

 

CaseTASK_DIR_SEARCH_BACKGROUND - прорисовка всех фонов и полосок в тел книге.

Одна Особенность. Сначала рисуется полоска для номера. 18х128. потом на ней рисуется область для вывода иконки сим или моб. тоже со своим фоном 8)

А потом рисуется область на первой полоске с номером, тоже со своим фоном. Естественно фон одного цвета и мы этого не замечам.

 

<nord offset="0x0028A754" from="E0002503" to="E0002504" type="CODE" desc="Вывод еще одного имени. Но на самом деле это вывод поледнего просмотреного юзера." />

<nord offset="0x0028A7C4" from="92002214" to="92002200" type="CODE" desc=" Иконку сим поднимаем вверх" />

<nord offset="0x0028A7F0" from="22142100" to="22002100" type="CODE" desc=" Иконку моб поднимаем вверх" />

<nord offset="0x0028A830" from="21142267" to="21002267" type="CODE" desc=" Область с номером поднимаем вверх" />

<nord offset="0x0028A850" from="30208008" to="300E8008" type="CODE" desc=" поднять список абонентов" />

<nord offset="0x0028A8A4" from="301E0401" to="300C0401" type="CODE" desc=" Поднять бегунок" />

<nord offset="0x0028A950" from="223618C9" to="224818C9" type="CODE" desc=" Высота скрола." />

<nord offset="0x0028A95C" from="0C002325" to="0C002314" type="CODE" desc=" Откуда начать рисовать скрол." />

<nord offset="0x0028A9E8" from="2003F619FA554F36" to="2003222222224F36" type="CODE" desc=" Не рисовать 1фон иконок" />

<nord offset="0x0028A9F8" from="92012214" to="92012200" type="CODE" desc=" Не рисуем оригинальную верхнюю полосу." />

<nord offset="0x0028AA04" from="48312136" to="48312148" type="CODE" desc=" Разширяем белый фон под именами абонентов. Увеличиваем длину по вертикали" />

<nord offset="0x0028AA10" from="22252380" to="22132380" type="CODE" desc=" Разширяем белый фон под именами абонентов. Указываем откуда начать рисовать " />

<nord offset="0x0028AA50" from="2003F619FA212200" to="2003222222222200" type="CODE" desc=" Не рисуем 2фон иконок." />

 

Еще данные!

 

28АА66 - если отключить, то не будет рисоваться черная полоска под номером. Координаты нужно просто поднять.

 

0028A84E  4954      LDR R1, [PC,#0x150] R1 = значение по адресу (PC + 336)= fy_pos (0x016A27AC)

0028A850  3020      ADD R0, #0x20 R0 = R0 + 32 - откуда начать рисовать фамилии. 32-кол-во пикселей сверху. мы ставим 14

0028A852  8008      STRH R0, [R1, #0] слово по адресу [R1 + 0] = R0

0028A854  4953      LDR R1, [PC,#0x14C] R1 = значение по адресу (PC + 332)= f_width (0x016A27B0)

0028A856  2080      MOV R0, #0x80 R0 = 128

0028A858  8008      STRH R0, [R1, #0] слово по адресу [R1 + 0] = R0

0028A85A  4953      LDR R1, [PC,#0x14C] R1 = значение по адресу (PC + 332)= f_height (0x016A27B4)

0028A85C  2012      MOV R0, #0x12 R0 = 18 --высота подсветки под фамилиями.

0028A85E  8008      STRH R0, [R1, #0] слово по адресу [R1 + 0] = R0

0028A860  4952      LDR R1, [PC,#0x148] R1 = значение по адресу (PC + 328)= f_font (0x016A27B8)

0028A862  2004      MOV R0, #0x4 R0 = 4 - размер шрифта. Можно уменшить размер на 3 и тогда можно вывести 5 абонентов.

Только не забудьте уменьшить высоту подсветки 0028A85C  2012      MOV R0, #0x12 R0 = 18 --высота подсветки под фамилиями.

 

Ну а теперь гвоздь программы.

То из-за чего я и забросил это дело.

1) 0x0028A754 - выводит последнего просмотреного юзера. Это наверное какаято ячейка памяти.

Наверное перед входом в тел книгу читаются первые 3 фамилии в буфер, потом с буфера выводятся, когда мы меняем 3 на 4, 4 фамилии и последняя просмотренная.

НАдонайти где идет считывание в буфер и указать читать 4, а не 3 , а может и 5, если будете менять размер шрифта.

2ые грабли это поменять везде где нужно 3 на 4(5) при переходе на новое имя.

Например CaseTASK_SET_SMPB_SCROLL_DOWN_NEW - скрол на 1 абонента вниз

0028AAFA  2803      CMP R0, #0x3 Сравнить R0 и 3 - Это сравнивает мы находимся на 3-м внизу? Меняем на 4

0028AAFC  DA02      BGE 0028AB04 если больше чем или равно (N и V или not N и not V) то переход на адрес 0028AB04

0028AAFE  0407      LSL R7, R0, 16 R7 = R0 << 16

0028AB00  0C3F      LSR R7, R7, 16 R7 = R7 >> 16

0028AB02  E000      B 0028AB06 Переход по адресу 0028AB06

0028AB04  2703      MOV R7, #0x3 R7 = 3

0028AB06  2803      CMP R0, #0x3 Сравнить R0 и 3 тоже проверка.

 

Таких проверок как минимум по одной-две в каждой процедуре, которая занимается выводом абонентов или двиганьем абонентов на экране.

CaseTASK_SET_SMPB_SCROLL_UP_NEW

CaseTASK_SET_SMPB_SCROLL_DOWN_NEW

CaseTASK_DIR_VIEW_TO_SCROLL_RELOAD

CaseIF_DIR_NEXT_IS_FIRST

CaseIF_DIR_NEXT_IS_LAST

................

 

CaseTASK_DIR_CALL_LOG_GET - список взонивших и набраных номеров, если будете возится :)

 

Советую слить прошивку X460, там сделан список на 4-х абонентов. Это очень поможет при реализации. Когда с сравнивал, то обнаружил что еще помимо всех процедур вывода абонентов надо еще править процедуры прокрутки абонента при опускании и поднимании курсора.

 

Вроде все! Часть была в голове. но давно стерлась :) Может найдутся интузиасты и усовершенствуют...

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

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

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

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

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

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

Войти

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

Войти


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