| |
|
zapret
Moder
Регистрация: 27.5.07 Сообщений: 1577 Репутация: 1813 Откуда: Königsberg-Калининград
|
#141 [22.09.08, 19:40] FAQ. Наиболее легкий способ портирования функций
Решил значит накактать FAQ по портированию функций библиотеки. как мне кажется уже проще моего - некуда. В примере будет описано портирование функции 0450: 00000000 B9616744 ; 114: int sprintf(char *buf, const char *fmt, ...); с W850 SW-R1KG001 для W580 SW-R8BE001 Что значит нам понадобится: 1) фактически единственная прога HxDen (прикрепил) (вместо нее можно использовать другие подобные проги, к примеру бинэдит. просто что в этой нет ничего лишнего). 2) Так же понадобятся уже сконвертированные прошивки w580 и w850 в формат raw. И так приступим. 1.Открываем программой HxDen обе прошивки. выбираем для начала w850. 2. теперь рассмотрим функцию "B9616744". для начала перевернем ее попарно. получаем 446761b9 . 3 теперь открываем виндовский калькулятор. вычитаем из 446761b9 - оффсет(конкретно в моем случае 44140000. чвой оффсет можно узнать с помошью программы babe2raw) получаем 5361B9 . 4.значит переходим по этому адресу(offset). и вот перед нами участок кода по этому адресу. я беру 7 байт(должно хватить)(в раззных случаях берем по-разному. иногда может хватить и 3 байт, иногда нужно больше) B4 10 B5 82 B0 04 1C 04 - вот они те самые 7 байт. 5. теперь переходим в прощивку w580. жмем Ctrl + F в открывшимся окне в поле Seath for: вводим те самые найденные "B4 10 B5 82 B0 04 1C 04" в поле Datatypes выбираем Hex-values ставим галочку на all и жмепм окей. получаем offset(в левом нижнем углу) 417079. 6.теперь снова открываем калькулятор. вводим получившееся значение "417079" и прибавляем 44140000. получаем 44557079. теперь попарно переварачиваем и получаем 79705544. вот впринципе и все. Этот способ я считаю одним из самых простых. в место м предлагаемой мною проги HxDen можно использовать иду. Этим способом возможно получится портировать не все функции. Будут вопросы - задавайте. врятли получится портировать с одной платформы на другую. (с) zapret007 специально для сайтов mobilefree и se-team P.S. не бросаемся сразу портировать все недастоющие функции. сначала нужно посмотреть ее описание вот к примеру функция для w580 непортированная. ;0B70: xxxxxxxx yyyyyyyy ; 2DC: void OrangeLED_Control(int _free_val, int or_LED_ID, int level, int fade_time); думаю дай-ко портану ага.. а если в название вчитаться - становится ясно, что ее в телефоне то нету нету оранжевого диода прикрепляю программу для более быстрого переворачивания адресов и выитания\прибавления оффсета
Прикрепленный к сообщению файл: per_v.2.2.zip ( 3.91 kb; 390 hits) Скачать файл HxD.zip ( 736.83 kb; 209 hits) Скачать файл
samsung galaxy S3 4.2.2 W580\K750i\k550
если собрали учет занятого места в прошивке - обращайтесь
|
Спасибо сказали: Va_st, Zormax, Joker XT, Man1980, sam22, Den750, VoiD, timos_06, Double_A, Pharaon, Deitro, 68-artem, yr4ik_07, BloodyMessage, ArmageddON, qwert, Zart, Ricollin, TOLIK111, DarkDarin, InDiGo, PUZ, Fanse, RedNaxLex, Dragon94, Frost-by, Krab, ANSARIK, metalist-tula, Rusty, ENSAIER, User_Vetal, NakedGun, TahaSpawn, vodoo999, flips, $lavko, RomaRi, dimony
|
zapret
Moder
Регистрация: 27.5.07 Сообщений: 1577 Репутация: 1813 Откуда: Königsberg-Калининград
|
#142 [12.08.09, 17:49] Re: FAQ. Наиболее легкий способ портирования функций
TahaSpawn, гугл юзай.
samsung galaxy S3 4.2.2 W580\K750i\k550
если собрали учет занятого места в прошивке - обращайтесь
|
MAVER145
Patcher
Регистрация: 11.1.09 Сообщений: 309 Репутация: 2066 Откуда: Краснодар
|
#143 [13.08.09, 02:10] Re: FAQ. Наиболее легкий способ портирования функций
как на к600 с к750 портировать: 05DC: FFFFFFFF 3474094C ;8177: int get_VBUFFER(void); это же адрес из рамы. а к600 это же дб2000. Как такие межплатформенно портировать?
K600 R2BB001, J10i2 R7CA064, C905 R1FA035, J108 R7EA011, U10 R7BA084
|
vodoo999
Пользователь
Регистрация: 16.2.09 Сообщений: 93 Репутация: 83 Откуда: Харьков UA
|
#144 [28.09.09, 00:10] Re: FAQ. Наиболее легкий способ портирования функций
Вроде все по инструкции сделал. Портировал вот эту функцию (с K810 R8BF003): 0DD4: 00000000 51AA4245 ; 375: BOOK *GUIonMessage_GetBook ( void *msg); с K810 R8BF003, на K810 R8BA024. Получил вот: 0DD4: 00000000 192A2E45 ; 375: BOOK *GUIonMessage_GetBook ( void *msg); - для K810 R8BA024. Добавил в lib.vkp для K810 R8BA024. Получилось так: ;K810 SW-R8BA024 ;Библиотека функций ;v ;(c) Hussein , IronMaster ;(p) Victor_k, Ploik, diezil, MouSeX....
;0DC0: xxxxxxxx yyyyyyyy ; 370: void GUIObject_Softkey_ExecuteAction(void *gui, u16 actionID); ;0DC4: xxxxxxxx yyyyyyyy ; 371: int Request_ICA_ShutdownAllConnections(const int *sync); 0DC8: 00000000 55FD3E45 ; 372: int REQUEST_PROFILE_GETPROFILENAME(const int *SYNC,int unk,NAME *,char *error) 0DCC: 00000000 CDB0FD44 ; 373: int DataBrowserDesc_SetFocusToFILEITEM(void *DataBrowserDesc, FILEITEM *fi); 0DD4: 00000000 192A2E45 ; 375: BOOK *GUIonMessage_GetBook ( void *msg);
;locale=Russian_Russia.1251 Проверил FuncChecker v1.0.4 - пишет, что все пучком, т.е. теоретически портировал функцию правильно (на примере с эльфом Bookman): до вписывания портированной функции - после вписывания - Добавил (заменил старую библиотеку на новую с новой функой) библиотеку на телефон.Но при запуске эльфа Bookmanager v2.98 - белый экран и перезагрузка. Что-то я упустил... Кстати на BookMan_mod вапще нет такой функи (точнее она не используется) и он работает без проблем. PS: могу попытаться расписать с картинками все что я сделал для портирования функи более подробно. [ Редактировано vodoo999 в 27.9.09 23:49 ]
"Valetudo est bonum optimum"
K800 => K810 R8BA024 CID 53
|
GaS
Expert
Регистрация: 18.1.08 Сообщений: 644 Репутация: 2553 Откуда: г.Кимры Россия
|
#145 [28.09.09, 02:38] Re: FAQ. Наиболее легкий способ портирования функций
SONY Xperia GO ,J105 R1HA035
|
Спасибо сказали: vodoo999
|
flips
Пользователь
Регистрация: 1.2.08 Сообщений: 61 Репутация: 6
|
#146 [15.01.10, 23:19] Re: FAQ. Наиболее легкий способ портирования функций
Добрый вечер, Подходит ли этот способ дляпортирования между платформами ,чем можно проверить правильность портирования функций?
|
ELECTRO-NIC
Patcher
Регистрация: 4.1.08 Сообщений: 141 Репутация: 186 Откуда: Luhans'k Ukraine
|
#147 [16.01.10, 00:02] Re: FAQ. Наиболее легкий способ портирования функций
flips писал: Подходит ли этот способ для портирования между платформами , Да. flips писал: чем можно проверить правильность портирования функций? Эльфом который использует данную функцию.
LG GT540 2.2
|
RomaRi
Новичок
Регистрация: 15.9.08 Сообщений: 10 Репутация: 4
|
#148 [08.03.10, 14:18] Re: FAQ. Наиболее легкий способ портирования функций
Возникла проблема при портирование 790E2A45 ;K790 SW-R8BF003 (0D9C: 00000000 790E2A45 ; 367: void REQUEST_SETTING_ALLOWEDCALLERS_GET( const int* sync, int ProfileNum, char* state );) На ;K770 SW-R8BA024
На К790 по адресу нахожу B5 13 4F 04 1C 0D 1C 12 49 16 1C 3A 1C 14 20 2C
На К770 есть (последний бит отличается) B5 13 4F 04 1C 0D 1C 12 49 16 1C 3A 1C 14 20 25 По адресах 12D8DC9, 12D8E71, 12D9039, 12D91B9, 12D9265, 12D930D, 12D9595
Как быть в этой ситуации
Ps: в английском не силен, но походу функция должна быть…
|
den_po
Developer/Admin
Регистрация: 27.3.06 Сообщений: 3279 Репутация: 10763 Откуда: Чебоксары
|
#149 [08.03.10, 15:28] Re: FAQ. Наиболее легкий способ портирования функций
MNS81, не знаю, как RomaRi, но я тебя не понял :D
promt is better than google translate
|
RomaRi
Новичок
Регистрация: 15.9.08 Сообщений: 10 Репутация: 4
|
#150 [08.03.10, 15:32] Re: FAQ. Наиболее легкий способ портирования функций
Спасибо, я не знал что што эти функции ищутся по другому PS Я только вчера начал вникать как это делать (нехватает для Standby Mode 2.18 ) Попробовал на известной – не получилось (должно было бить 79 0E 2A 45 а у меня вышло C8 0E 2A 45), Как найдешь двигай в начало функции - Наверно здесь лажа? я несовсем понял как это. [ Редактировано RomaRi в 8.3.10 14:55 ] [ Редактировано RomaRi в 8.3.10 14:58 ]
|
MNS81
Patcher
Регистрация: 18.7.07 Сообщений: 556 Репутация: 5564 Откуда: Сертолово Ленинградская обл.
|
#151 [08.03.10, 17:33] Re: FAQ. Наиболее легкий способ портирования функций
По многочисленным просьбам рассказываю более популярно. Расскажу на примере того же 790-го и той же функи 367: void REQUEST_SETTING_ALLOWEDCALLERS_GET( const int* sync, int ProfileNum, char* state );
1. Открываем свой любимый гекс редактор 2. Открываем в нем свою прошу(K790 SW-R8BF003.raw) 3. включаем поиск по тексту и вбиваем туда REQUEST_SETTING_ALLOWEDCALLERS_GET 4. Нажимаем поиск 5. Находим все это по адресу 198087C 6. Прибавляем оффсет и переворачиваем 198087C+44140000=45AC087C-->7C08AC45 7. Включаем поиск по гексу и пишем туда 7C08AC45, жмем поиск 8. находим, далее ищем слева от найденного самую первую В5, это и будет начало функции. В проше от к790 самое первое В5 будет по адресу 1160E79 9. Прибавляем к адресу оффсет и переворачиваем 1160E79+44140000=452A0E79-->790E2A45 10. Теперь это самое 790E2A45 смело пишем в либу
|
Спасибо сказали: SEVENI, RomaRi
|
Похожие темы
Вы не можете начинать темы. Вы не можете редактировать свои сообщения. Вы не можете создавать опросы. Вы не можете вкладывать файлы в сообщения. Вы не можете отвечать на сообщения. Вы не можете удалять свои сообщения. Вы не можете голосовать.
|
|
|