MotoFan.Ru — всё для Motorola > Лаборатория > Разработка Java-приложений

Проект Медуза Полная версия
Страницы: 1, 2, 3, 4

 av Inlined

 15.9.2005, 20:05

Просуммирую информацию по проекту:

Проект Медуза

Цель - получение информации о Java-классах из прошивки (а не из документации Motorola).
Смысл - использовать скрытые, недокументированные возможности Java.
Результат - получены дампы классов, методов, полей и т.п. по прошивкам с платформой R372 и R373.

Полученные дампы классов (прошивки):Особенности:

Все не public классы и методы вызывать нельзя. Они здесь только для информации.
References - это набор ссылок и данных разного типа, которые встречаются в имплементации классов.

Пока нет информации о throws и implements.

Исходные коды

Проект имеет открытые исходные коды основной программы (OSS, open source software).
Программа для создания дампов на языке Perl:

 av grafmoto

 16.9.2005, 4:55

Inlined,
реальная дока - остается проверить это дело на практике

 av angryzes

 28.9.2005, 11:28

Похоже, что е790 видео играет, да еще и в полный экран, тестовая прога нужна

 av PROFF

 28.9.2005, 13:17

grafmoto, поможешь намутить для нас прогу для видео?

сегодня постараюсь вставить это в phonemanager, но гарантий никаких не даю :-)

 av Inlined

 16.10.2005, 15:39

Сегодня я подготовил очередное обновление. Теперь готовы данные по прошивке R373 42R (последняя доступная прошивка для ROKR E1):

http://inlined.nm.ru/moto/r373-42r-jdmp.zip

Изменений по отношению к 1ER мало - добавлены классы по работе со 3D-звуком для VSCL плюс немного по мелочам.
Главная интрига на сегодня – нет поддержки Bluetooth-классов, хотя она и заявлена в Device Guide. Возможно, что поддержка Bluetooth из Java в ROKR будет в будущем, но явно не сейчас.

Я решил так же опубликовать программу, которая делает эти таблицы, может кому-то еще захочется покопаться в структурах KVM. Задача максимум - создавать class-файлы из информации, которая заложена в прошивке. Это поможет глубже разобраться в работе непонятных классов, хотя, по сути, большинство методов так или иначе "уходят" в native-методы, в которых можно разобраться только через ARM-отладчик.

http://inlined.nm.ru/moto/medusa.zip

И немного о том, что мне удалось узнать о корелетах (CORElet).

Корелет – это новый тип мидлета, который Моторола использует на платформе R373. В платформе R373 применяется два уровня виртуальной машины – системный уровень и пользовательский (com.motorola.synerj.svc.SecurityManager.vmStatus). Корелет – единственный мидлет, который запускается на системном уровне.

Таким образом, корелет обладает правом доступа к классам семейства com.motorola.synerj, которые позволяют приложению глубже интегрироваться в систему (откликаться за системные события, менять интерфейс и т.п.).

Но у механизма реализации корелетов на R373 есть ряд особенностей:
1. Корелет автоматически запускается при старте
2. Корелет постоянно работает на системном уровне VM, а при старте пользовательского мидлета отключается с сохранением состояния из-за ограничений виртуальной машины
3. Корелетом может быть только один мидлет – опять же из-за того, что два приложения одновременно работать не могут

Итюнс – типичный пример корелета. Из-за того, что он постоянно запущен, код прошивки не поддерживает фоновый режим для обычных мидлетов. Вне зависимости от того, запущен ли итюнс на самом деле, прошивка просто не анализирует опцию "Background: True", в ней даже нет такого текста в отличие от кода платформы R372.

А теперь о самом плохом – подпись jar-файла корелета, которая находится в jad-файле, проверяется каждый раз при его запуске. Поэтому ни модифицировать код итюнса, ни написать свой корелет пока не представляется возможным.

  VANDAL1

 17.10.2005, 12:35

Цитата
Сегодня я подготовил очередное обновление. Теперь готовы данные по прошивке R373 42R (последняя доступная прошивка для ROKR E1):

не в тему-ссылку на прошиву нету?

 av hobbit19

 18.10.2005, 17:17

1.а можноли сделать чтобы потдерживались прошивки от с650
2. сделать прогу в виде exe

 av grafmoto

 19.10.2005, 4:36

hobbit19,
дык уж наверное для 650 и так все классы известны

 av hobbit19

 19.10.2005, 5:06

Цитата(grafmoto @ Среда, 19 Октября 2005, 7:36)
hobbit19,
дык уж наверное для 650 и так все классы известны
*


а в друг в новых прошивках типа 368 серии чего нового есть?

 av lochy

 22.10.2005, 11:06

grafmoto, ну че там с видео чегото будет или нет?

 av Sity

 27.10.2005, 9:30

Inlined А не пробовали посмотреть классы в 43 прошивке? Может там есть заявленная поддержка блютуз для Рокка? И еще вопрос: а что еще в моторе запущено в фоновом режиме(по типу итюнса) и можно ли от этого избавиться дабы разгрузить оперативку под более полезные проги? :-)

 av Inlined

 27.10.2005, 10:38

Цитата
А не пробовали посмотреть классы в 43 прошивке? Может там есть заявленная поддержка блютуз для Рокка?

Да, я смотрел прошивку 43, в ней так же нет блютуса.

Вообще, любой может это посмотреть сам - нужно всего лишь поискать в бинарном файле первой кодовой группы CG1 название корневого "каталога" класса (например, "javax/bluetooth" - точки заменяются на "/"). Например, в прошивке для E1000 такой текст есть, в текущих прошивках для E398/E1 - нет.

Цитата
И еще вопрос: а что еще в моторе запущено в фоновом режиме(по типу итюнса) и можно ли от этого избавиться дабы разгрузить оперативку под более полезные проги? :-)

В чистом виде java-машина пытается загрузить при старте только корелеты, если есть. По идее, если их нет, ничего не загружается. Что там работает вообще во время ожидания, кроме явы, пока неизвестно, это нужно глубже копать в прошивку.

 av Archy

 31.10.2005, 7:30

Уже пришло время на практике попытаться всё это сделать - Вилко смог поставить РОКР на Е398
Ковыряния E398 -> Rokr E1
(правда, пока повторить ни у кого не вышло) :D

 av Inlined

 3.11.2005, 20:50

Еще одно добавление насчет блютуса в ROKR - теперь с офиц. сайта мото-разработчиков www.motocoder.com (из раздела FAQ):

Bluetooth API on ROKR/E1

Question

My MIDlet uses bluetooth api. Everytime I run the program, the screen only reply me with "Application Error", I found there is a "java.lang.NoClassDefFoundError : Java/Bluetooth/Local Device" error. What does it mean?

Answer

JSR 82 is disabled on ROKR phone.

Как говорится, без комментариев ;-(

 av Euk

 17.1.2006, 0:11

к сведенью:

disable [dIs'eIbl]
запрещать, отключать, блокировать
# предотвращать что-либо, например прерывания (ср. enable).

это я к тому что это не значить что включить его никак нельзя.. почему бы не поробывать слить функцию с е1000 и пихнуть ее в наш тел? нереал?

 no av UdH-WiNGeR

 15.3.2006, 8:43

Можно где-нибудь взять исходники этой проги?

 no av UdH-WiNGeR

 15.3.2006, 15:56

Sorry, с утра он был не доступен, а я думал что там exe

 av ..Strik3r..

 18.4.2006, 12:15

Inlined, можно сменить название какого нибудь из классов в прошивке?

Цитата(Inlined @ Четверг, 27 Октября 2005, 14:38)
Вообще, любой может это посмотреть сам - нужно всего лишь поискать в бинарном файле первой кодовой группы CG1 название корневого "каталога" класса (например, "javax/bluetooth" - точки заменяются на "/")
*


IDA смотреть?

Для чего служит твоя программа я не понял? В ехе можеш?

 av Valleo

 8.5.2006, 13:26

Извините что поднимаю тему но у меня огромная просьба. Как я понял классы synerj нужно писать с нуля по документации. Но я настолько ламер в этом деле что прошу - поделитесь этой библиотекой пожалуйста, у кого она есть. Если можете отправьте на valleo@yandex.ru . Буду очень благодарен!

 av Inlined

 8.5.2006, 17:17

Цитата(Valleo @ Понедельник, 8 Май 2006, 17:26)
Извините что поднимаю тему но у меня огромная просьба. Как я понял классы synerj нужно писать с нуля по...


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

Цитата(..Strik3r..)
можно сменить название какого нибудь из классов в прошивке? Для чего служит твоя программа я не понял? В ехе можеш


Не понял твой вопрос. Зачем менять названия класса в прошивке?
Для чего служит программа - она создает те самые дампы. Написана на языке перл, это интерпретируемый язык, exe делать из него не нужно, нужен перл на компьютере. Например, ActiveState Perl.
Страницы: 1, 2, 3, 4

Полная версия:


MotoFan.ru (©) 2024    Слушать Radio