Все для Sony Ericsson, патчи, эльфы, моддинг, прошивка
  
Логин: Пароль: Запомнить: Привет гость! Зарегистрируйся или авторизируйся для получения доп. возможностей!
Разделы
PDA версия сайта
Новости
Статьи
Файлы
Патчи
Патчи A2
Патчи db2020
Эльфы
Исходники эльфов
Wiki
Форум
Обратная связь
Развернуть/Свернуть
 
Развернуть/Свернуть

FAQ. Наиболее легкий способ портирования функций : Эльфостроение : Эльфы : Форум : Для Sony Ericsson патчи эльфы моддинг прошивка
/  Список форумов
   /  Эльфы
      /  Эльфостроение
   /  FAQ. Наиболее легкий способ портирования функций
На печать 
Правила 
Страница 7 из 16: « 1 ... 3 4 5 6 [7] 8 9 10 11 ... 16 »

zapret


Moder


Регистрация: 27.5.07
Сообщений: 1577
Репутация: 1813
Откуда: Königsberg-Калининград




 
  #61 [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 per_v.2.2.zip (3.91 kb; 394 hits) Скачать файл
HxD.zip HxD.zip (736.83 kb; 213 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

Zormax


Admin


Регистрация: 12.12.05
Сообщений: 5820
Репутация: 5289
Откуда: Nizhniy Novgorod




 
  #62 [28.09.08, 21:08] Re: FAQ. Наиболее легкий способ портирования функций   

 
В привате спросили:
4Cхххххх - это оперативка.
в DB2020 адреса начинаются на 2XXXXX в DB2010 и DB2000 на 4XXXXXX

Если портите на одинаковых платформах, то адрес оперативы будет либо таким же, либо на 4 больше, конечно может и больше быть или меньше, но в основном либо такой либо отличатся на 0x4

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


т.е. если я портирую с w610 db2020 на w710 db2020 и функция на w610 имеет следующий вид:

0AEC: 00000000 94901820 ;82BB: FONT_DESC *GetFontDesc(void);

то адрес для либы w710 будет или такой же или 94901824 или 94901816 ??


ответ:
или такой же или 90901820
или 98901820

адрес переверни и работай с 4 в конце ты же 4 в самом начале меняешь


Добавлено 28.9.08 21:09

Опять же не факт что это правильно, адрес может и на большее кол-во байт отличатся, но это уже другая история.

[ Редактировано Zormax в 28.9.08 21:10 ]




TOOKY T83 (1.3.1-L2), MK808B

agregat


Новичок


Регистрация: 27.9.08
Сообщений: 8
Репутация: 0





 
  #63 [28.09.08, 21:23] Re: FAQ. Наиболее легкий способ портирования функций   

 
Zormax, где об этой истории можно узнать подробнее??? а то перебирать что то не очень охото ;-)



Zormax


Admin


Регистрация: 12.12.05
Сообщений: 5820
Репутация: 5289
Откуда: Nizhniy Novgorod




 
  #64 [28.09.08, 21:33] Re: FAQ. Наиболее легкий способ портирования функций   

 
Надо с оригинальным адресом смотреть LDR
в LDR обычно указание загрузить мол адрес и если есть в скобках типа:
R1 = 2XXXXXX
LDR R2, (R1,0x4)

значит прибавляется 4 а нам надо вычитать эти 4




TOOKY T83 (1.3.1-L2), MK808B

KrasH


VIP Developer


Регистрация: 12.10.07
Сообщений: 993
Репутация: 3014
Откуда: Шахты




 
  #65 [28.09.08, 23:41] Re: FAQ. Наиболее легкий способ портирования функций   

 
Пример установки хука...
KBD *SetProc(void *proc(int key,int,int mode)):
ldr r1, ram ;грузим
str r0, [r1,4] ;пишем в рам+4
bx lr ;идём на адр.возврата
Пишу с тела так шо не пинать!
И того в ram+4 будет клавы обработчик...


Добавлено 28.9.08 23:43

Между платфорамами порт отнимает от 6 до 20 минут в среднем
Ищеться в основном по хрефам,пагам и прочей близко лежащей мелочи




Samsung GT-I9000 Galaxy S
SE C510 R1FA035
+ M2 1Gb + HPM-82
WMR: 248608836491
WMZ: 305377005044
Спасибо mazhor(1500wmr),polza(600wmr), & to other(~1100wmr)

agregat


Новичок


Регистрация: 27.9.08
Сообщений: 8
Репутация: 0





 
  #66 [29.09.08, 00:46] Re: FAQ. Наиболее легкий способ портирования функций   

 
хм....что такое LDR, как и чем его получить и чем и как смотреть?

и ещё если можно то ткните на какую нить понятную инфу по этому LDR =)))

[ Редактировано agregat в 28.9.08 23:58 ]



Zormax


Admin


Регистрация: 12.12.05
Сообщений: 5820
Репутация: 5289
Откуда: Nizhniy Novgorod




 
  #67 [29.09.08, 07:20] Re: FAQ. Наиболее легкий способ портирования функций   

 
agregat, В теме "Учимся писать патчи"




TOOKY T83 (1.3.1-L2), MK808B

M@rvin


Expert


Регистрация: 22.12.07
Сообщений: 252
Репутация: 292
Откуда: Москва




 
  #68 [01.10.08, 21:44] Re: FAQ. Наиболее легкий способ портирования функций   

 
Я вот пробовал сделать по факу. Как узнать сколько нужно байт выбирать? И как узнать где кончается та или иная функция




nokia n97 mini))) sw 12.0.110


w580 R8BE001+эльфы)+патчи))+моддинг+ граф патч от меня)))))-мертв


+немного кривые руки

zapret


Moder


Регистрация: 27.5.07
Сообщений: 1577
Репутация: 1813
Откуда: Königsberg-Калининград




 
  #69 [01.10.08, 21:52] Re: FAQ. Наиболее легкий способ портирования функций   

 
Артур666, я б ща как ответил, но боюсь обидишься.
. Как узнать сколько нужно байт выбирать

сколько хочешь - столько и бери.
И как узнать где кончается та или иная функция

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




samsung galaxy S3 4.2.2
W580\K750i\k550

если собрали учет занятого места в прошивке - обращайтесь

GaS


Expert


Регистрация: 18.1.08
Сообщений: 644
Репутация: 2553
Откуда: г.Кимры Россия




 
  #70 [01.10.08, 23:33] Re: FAQ. Наиболее легкий способ портирования функций   

 
вот я смотрю тема набирает обороты, а главное что название " Наиболее легкий..." народ притягивает, но ФАК юрчика на мой взгляд более нагляднее и новичкам только туда...до недавнего времени сам нифига не петрил в этом, а сейчас в основном всё понятно, правда есть и трудные функи, но в ИДА их хоть можно сравнить визуально и на ошибку меньше шансов...




SONY Xperia GO ,J105 R1HA035

zapret


Moder


Регистрация: 27.5.07
Сообщений: 1577
Репутация: 1813
Откуда: Königsberg-Калининград




 
  #71 [01.10.08, 23:37] Re: FAQ. Наиболее легкий способ портирования функций   

 
GaS, да откровенно говоря я уже сто раз пожалел, что создал фак=) почему-то новечкам он походу еще труднее дается, чем опытным.. когда ктонить из этих новечков станет по-опытне, то поймет, что все же это самый элементарный спосб, не требующий особого напряга. единственное - возможность ошибки, но опять же я таким способом еще не разу не ошибался..




samsung galaxy S3 4.2.2
W580\K750i\k550

если собрали учет занятого места в прошивке - обращайтесь
Страница 7 из 16: « 1 ... 3 4 5 6 [7] 8 9 10 11 ... 16 »



  • Поиск
  • Права
Вы не можете начинать темы.
Вы не можете редактировать свои сообщения.
Вы не можете создавать опросы.
Вы не можете вкладывать файлы в сообщения.
Вы не можете отвечать на сообщения.
Вы не можете удалять свои сообщения.
Вы не можете голосовать.

Главная Новости Статьи Файлы Патчи Форум Опросы PDA
- Генерация страницы: 0.07 секунд | 13 Запросов | HTML: 51.48 КБ -