motofan logo
12 страниц V  1 2 3 > »  Причина закрытия (Osta 21-07-2006): ждём-с       
> 

Внимание! Делаем Классы Bt От L7 На Е398, Инструкция от Vilko внутри темы

Archy
сообщение 20.6.2006, 11:21 Закрепленное сообщение!


Ветеран
*****

Группа: Почётные мотофаны
Сообщений: 447
Регистрация: 10.4.2005
Из: Киев
Пользователь №: 40 468

Рейтинг: 516



Привет всем!

Я вот достаю нашего уважаемого гуру уже давно, так как знаю - он добился успехов в перенесении jsr82 на 373 платформу.
Но в силу определённых обстоятельств нам не подходит его метод - так как надо ПОЛНОСТЬЮ декомпилить прошивку, править и собирать заново, и для нашей 373_48R на это уйдёт с пол-года...

Есть второй путь -
Цитата
есть прошивка L7
из нее надо выгрузить все rococosoft классы, те которые не-натив - то "как есть", а натив - оставив указатели на процедуры.
такая вот задачка
и далее Вилко расскажет нам, как это сделать, потому как времени у него на это нет...

Собственно для чего это нужно? Наши уважаемые разработчики смогут, наконец, писать проги для юзания синезуба, и игры типа BtPlane (друг с другом дезматч) пойдут... И наконец-то будет ради чего Симбу следующую зарелизить! :)

ФЛЕЙМ не разводим, но и мимо не проходим - что-то непонятно? задаём КОНКРЕТНЫЕ вопросы.

Сообщение отредактировал blackbox - 6.7.2006, 14:13
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Vilko
сообщение 20.6.2006, 11:30


Мотокодер
******

Группа: Легенды MotoFan.Ru
Сообщений: 1 331
Регистрация: 23.6.2003
Из: Москва
Пользователь №: 71
Модель телефона: E398+, Е1000, ...

Рейтинг: 1116



есть idb прошивки L7, в котором расписано дерево классов:
http://anton.vestco.ru/L7_cg1.rar (12Мб)
есть список этих самых классов(чспасибо InLined)
http://anton.vestco.ru/l7_classes.rar (200Кб)
нужно:
выгрузить из idb и сохранить в txt файлики все структуры классов com.rococosoft.* и javax.bluetooth.*, а так-же все подчиненные классам структуры(методы, байт-коды, интерфейсы, конст-пулы).
классов довольно много, поэтому один я буду это делать довольно долго. так что подключайтесь.

классы в прошивке организованы так:
есть оглавление (ClassTableData) - оно содержит 0x20 указателей на начала "цепочек классов".
каждая цепочка представляет собой структуру-описатель определенного класса, включающую в себя указатель на следующую структуру и т.д.
например 1я цепочка, 1й элемент:
Код

Class_ComJblendMediaCore_Mediacontrol2
               DCD Class_JavaLang_Class; root
               DCD 0                 ; field_4
               DCD jstr_ComJblendMediaCore; class_name
               DCD jstr_Mediacontrol2; interface_name
               DCD Class_ComRococosoftImprontoImpl_Remotedeviceimpl; next
               DCW 0x6020            ; field_14
               DCW 0x460             ; field_16
               DCD Class_ComJblendMediaCore_Nativesync_4333; parent
               DCD Consts_ComJblendMediaCore_Mediacontrol2; Interface
               DCD Fields_ComJblendMediaCore_Mediacontrol2; Fields
               DCD Methods_ComJblendMediaCore_Mediacontrol2; Methods
               DCD 0                 ; field_28
               DCD 0                 ; field_2C
               DCD 0x70005           ; field_30
               DCD 0                 ; field_34
               DCD 0                 ; finalize_proc

DCD Class_ComRococosoftImprontoImpl_Remotedeviceimpl; next
указывает на следующую аналогичную структуру класса, та в свою очередь еще на следующую - т.е. образуется цепочка.
соответственно нужно выгрузить все структуры касающиеся вышеперечисленных классов.
далее, структуры ссылаются на подчиненные структуры описывающие методы(Methods_ComJblendMediaCore_Mediacontrol2; Methods),
поля (Fields_ComJblendMediaCore_Mediacontrol2; Fields), константы (Consts_ComJblendMediaCore_Mediacontrol2)
все эти структуры так-же нужны.
структуры методов представляют собой:
Код

Methods_ComJblendMediaCore_Mediacontrol2 DCD 2 - кол-во методов в классе

структура описания 1го метода. кол-во подобных структур - в зависимости от ^предыдущего^ параметра
Method_ComJblendMediaCore_Mediacontrol2_Init_Biiiv DCW 0x13E             ; Method_name
               DCW 0x242F            ; Method_type
               DCD Bytecode_ComJblendMediaCore_Mediacontrol2_Init_Biiiv; Code
               DCD 0                 ; Handlers
               DCD 0                 ; StackMap
               DCW 0x15              ; ByteCode_length
               DCW 3                 ; field_12
               DCW 0                 ; Flags_native
               DCW 0xD000            ; field_16
               DCD Class_ComJblendMediaCore_Mediacontrol2; Parent_Class
               DCD 0x60006           ; field_1C


структура метода может ссылатсяна данные:
байт-код (DCD Bytecode_ComJblendMediaCore_Mediacontrol2_Init_Biiiv; Code)
а так-же хандлеры и стек-мапы(в данном примере не указаны)
все эти структуры так-же нужны.

далее, что самое геморное(иначе б я и сам все быстро сделал) - все выгруженные классы rococosoft и javax должны образовывать одну цепочку, т.е. треюуется правка поля next каждого из сохраненных элементов классов.

да, кстати, имена для всех структур - автогенеренные наскоро слепленным скриптом для иды. переименование их в более читаемый вид приветствуется.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
GRIDE
сообщение 20.6.2006, 12:40


Новичок
*

Группа: Пользователи
Сообщений: 18
Регистрация: 18.2.2006
Пользователь №: 70 878
Модель телефона: e398

Рейтинг: 0



Эти классы?... дают нам продвижение к bluetooth'y из Jav'ы? Или просто разбираем то что уже и так все знают?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Vilko
сообщение 20.6.2006, 12:42


Мотокодер
******

Группа: Легенды MotoFan.Ru
Сообщений: 1 331
Регистрация: 23.6.2003
Из: Москва
Пользователь №: 71
Модель телефона: E398+, Е1000, ...

Рейтинг: 1116



Цитата(GRIDE @ Вторник, 20 Июня 2006, 15:40)
Эти классы?... дают нам продвижение к bluetooth'y из Jav'ы? Или просто разбираем то что уже и так все знают?
*


это классы, реализующие jsr82
большая их часть цепляется к прошивке "как есть" и только некоторые методы потребуют привязки к натив-коду - BT-API прошивки
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Andy51
сообщение 20.6.2006, 13:01


0xFFFF
******

Группа: Разработчики
Сообщений: 832
Регистрация: 28.3.2006
Из: Нижний Новгород
Пользователь №: 76 255
Модель телефона: E398, Milestone 2
Прошивка: 49R w/ElfPack2


Настроение:
^^,



Рейтинг: 1224



Vilko, так, насколько я понял, тебе нужны эти заголовки, чтобы потом просто построить из них нужную цепочку и заменить где нужно указатели на native-методы, я правильно понял?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Vilko
сообщение 20.6.2006, 13:07


Мотокодер
******

Группа: Легенды MotoFan.Ru
Сообщений: 1 331
Регистрация: 23.6.2003
Из: Москва
Пользователь №: 71
Модель телефона: E398+, Е1000, ...

Рейтинг: 1116



Цитата(Andy51 @ Вторник, 20 Июня 2006, 16:01)
Vilko, так, насколько я понял, тебе нужны эти заголовки, чтобы потом просто построить из них нужную цепочку и заменить где нужно указатели на native-методы, я правильно понял?
*


да
сами структуры классов просто кладутся на свободное место в прошивке, и в конце любой из имеющихся цепочек классов прописывается указатель на эту нашу цепочку.
и все это благополучно работает. проверялось.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
AlexKooper
сообщение 20.6.2006, 13:13


Авторитет
********

Группа: Почётные мотофаны
Сообщений: 2 838
Регистрация: 27.7.2005
Из: Йошкар-Ола
Пользователь №: 47 140
Модель телефона: E398
Прошивка: AlexKooper mod v.47

Рейтинг: 1337



В результате у нас пойдут ява-проги от L7 без переделки, или же придется писать свои версии? На базе jsr75 с блютузными кусками jsr82?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
4ep
сообщение 20.6.2006, 13:26


Гуру
******

Группа: Пользователи
Сообщений: 856
Регистрация: 9.6.2005
Из: Сызрань
Пользователь №: 43 886
Модель телефона: ROKR E2
Прошивка: Калейдоскоп

Рейтинг: 217



А этим же способом можно внедрить классы 3D например из E1000?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Vilko
сообщение 20.6.2006, 13:32


Мотокодер
******

Группа: Легенды MotoFan.Ru
Сообщений: 1 331
Регистрация: 23.6.2003
Из: Москва
Пользователь №: 71
Модель телефона: E398+, Е1000, ...

Рейтинг: 1116



Цитата(Stalker.mg @ Вторник, 20 Июня 2006, 16:18)
Vilko,

Архив битый :(
*


нифига. просто недокачал видимо.

Цитата(4ep)
А этим же способом можно внедрить классы 3D например из E1000?

можно. надо аналогичным способом найти все классы в прошивке е1000 и выгрузить...
Цитата(AlexKooper)
В результате у нас пойдут ява-проги от L7 без переделки, или же придется писать свои версии? На базе jsr75 с блютузными кусками jsr82?

если успешно все перенесем - да. пойдут "as is"
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Osta
сообщение 20.6.2006, 13:48


Freestyler
********

Группа: Легенды MotoFan.Ru
Сообщений: 10 329
Регистрация: 20.7.2004
Пользователь №: 8 235
Модель телефона: Moto
Прошивка: *#9999#


Настроение:
Все невыспавшиеся в следующей жизни будут котами



Рейтинг: 4362



Цитата(Vilko @ Вторник, 20 Июня 2006, 13:30)
классов довольно много, поэтому один я буду это делать довольно долго. так что подключайтесь.
*



можно здесь организовать кто какие строки берёт (с ххх по ххх) или это должен делать
каждый со всеми строками ? Пост можно удалить если организационные вопросы здесь не нужны
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Внимание! Делаем Классы Bt От L7 На Е398, Инструкция от Vilko внутри темы · Ломаем и строим! · Forum
 

12 страниц V  1 2 3 > »  Причина закрытия (Osta 21-07-2006): ждём-с
Закрытая темаСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 23.4.2024, 14:29

Форум живёт: