Dimy4
-
Постов
11 -
Зарегистрирован
-
Посещение
Тип контента
Профили
Форумы
Загрузки
События
Сообщения, опубликованные Dimy4
-
-
смотри исходники патчей от Freeman, там много примеров
-
dаs,
Дай имя функции,которая обрабатывает курсор...
на свифтах вроде lk_DisplayMenu
-
AlexeyK,
спасибо, вот исходник.
А я уже думал что это глюк компайлера какой-то, никак не мог понять в чём дело
/edit
что-то не работет .orgbl , может не туда ставлю?
-
В общем подправил я этот патч для D900XEFK2.
Правда работуют пока только эти команды:
AT+CGSN
AT+CGSN=0
AT+CGSN=1
AT+CGSN=2
AT+CGSN=3
ну это уже коечто. буду копатся дальше
вот если кому нужен
/edit
теперь вроде всё работет кроме AT+CGSN? , но эта команда не сильно важная имхо.
Обновил архив.
-
Ктонибудь подскажет с какой прошивки лучше всего портировать символьную инфу на D830 ? Да и вобще существует сим для этого типа телефонов?
-
AlexeyK,
Протестировал я этот патч со всех сторон. Наблюдаются такие вот глюки:
- Патч работает только если соединится с телефоном в meCOM.exe (Применить), при старте телефона, пока он еще до конца не загрузился. Если соединится с загруженым телефоном, тогда перезагрузка.
- При этом работает единственная комада: AT+CGSN, все остальные вызывают перезагрузку.
Попробывал скомпилировать в BinEdit по исходнику, он мне выдал кучу ошибок, что BL переходы не дотягиваются.
Подискал картинку по ближе к функциям памяти и разместил там код. Теперь компилируется нормально.
- В этом измененом патче всё также, только теперь работает команда AT+CGSN=0,XXXXXXXX,YYYY
- Правда возвращает она всегда одно и тоже значение, независимо от введеного адреса.
Ну вот, пытаюсь разобраться дальше. Есть каие-нибудь идеи?
-
AlexeyK,
большое спасибо за нужный патч. Вот только он у меня не работет
На D900XEFK2 уже кто-нибудь пробовал? Подскажите настройки а то у меня при старте терминала телефон перестартовывается
/edit
ну в общем понял я, когда исходники посмотрел, что на Д900 только наброски. Придётся разбираться по тихоньку, если ктонибудь по умнее меня не доделает...
-
доброе время суток,
я ищу функцию в прошивке D900XEFK2, где определяется цвет софт клавиш на рабочем столе и в меню.
дело в том, что в D900 есть две темы: черная и белая. Для белой цвет софт клавиш определяется в
GetMenuColor
но для черной гдето в другом месте.
может ктонибудь подскажет парочку функций где это может быть ?
-
закачай прошивку "D900XEFK2" и больше проблем не будет
-
уважаемый AlexeyK,
спасибо за гениальную программу
Продолжайте развивать её дальше.
Вот сделанный мной перевод на немецкий язык.
Задаем вопросы по теме "Портирование патчей, для начинающих"
в Программирование и реверсинг
Опубликовано · Изменено пользователем Dimy4
@ mako
возможно ты и прав, но ведь там действительно много чего полезного. Если не поленится и покапатся в исходниках пару часов, то можно многое чего понять. Я считаю, что если спрашивать про каждую мелочь, которая итак расписана в самом удобном виде для понимания (большое спасибо Freeman, за исходники), то никогда ничего делать сам и не научишься. но это имхо
Вот для примера отрывок из исходника ImagineMenu. За правильность интерпретации не ручаюсь, разбирал на скорую руку
LoadMainBlockBg:
ldr r0,=0x9A86
bl lk_StoreBlockPicture ;какая-то функция
ldr r0,=0x9A8A
bl lk_StoreBlockPicture
ldr r0,=0x9A88
bl lk_StoreBlockPicture
ldr r0,=0x9A72
bl lk_StoreBlockPicture
ldr r0,=ColorTheme ; в r0 адрес переменной со сначением актуальной цветовой схемы
ldrb r0,[r0] ; в r0 значение этой переменной
adr r7,sk_bg_file_01 ; в r7 адрес текстового ресурса с названием картинки
cmp r0,0 ; цветовая схема 1?
beq q1 ; если да то дальше с q1
adr r7,sk_bg_file_02 ;если нет то грузим картинку для второй схемы
q1:
adr r0,sk_bg_path ; в r0 адрес текстового ресурса (путь к папке в тфс)
mov r1,r7 ; в r1 адрес к названию картинки
bl mmitfs4_CheckFileExist ; вот и первая функция работы с тфс, видимо проверяет существует ли картинка r1 в папке r0, в r0 возвращается ответ
cmp r0,1 ; существует?
beq q2 ; если да то дльше с q2
bl DrawSoftkeyBgBitmap ; если нет, то выполняется стандартная функция прошивки, которая загружает стандартную картинку
b q3
q2:
mov r0,240 ; наверное ширина картинки
str r0,[sp] ; сохраняем в стек
mov r0,34 ; наверное высота картинки
str r0,[sp,4] ; сохраняем в стек
adr r0,sk_bg_path ; путь к папке в тфс
mov r1,r7 ; в r1 адрес к названию картинки
mov r2,0 ;какой-то параметр
mov r3,255 ;какой-то параметр
add r3,31 ; прибавляем 31
bl lk_DrawIFG ; функция видимо рисует в буфере картинку IFG формата с даными параметрами
q3:
ldr r1,=vScreenMem ;буфер в котором размещена загруженая картинка
ldr r0,=gv_BlockBg ;буфер для картинки софт-полосы
ldr r2,=153600 ; размер буфера
blx j___rt_memcpy ;копирование блока памяти R0 - адрес назначения, R1 - адрес откуда копировать, R2 - длинна блока.
a1:
mov r2,9 ;
mov r1,1 ;
ldr r0,=0x18343100 ; какието-параметры, надо копать lk_CreateMenu
bl lk_CreateMenu
ldr r0,=0x111B92C8+1
bx r0
.data
sk_bg_path: .string "/a/images/widget/title/"
.align 4
sk_bg_file_01: .string "set01_blocksoft_key_area.ifg"
.align 4
sk_bg_file_02: .string "set02_blocksoft_key_area.ifg"
Вот и всё, если немножко постарться, то можно понять, как используются и многие другие функции