motofan logo
> 

Elf на (M)otorola, архивная тема, С чего всё начиналось

AstaRoth
сообщение 24.2.2007, 12:47 Закрепленное сообщение!


Бошетунмай
********

Группа: Почётные мотофаны
Сообщений: 3 115
Регистрация: 5.11.2005
Из: СЕВЕРОДВИНСК,29, РФ ☭
Пользователь №: 57 206

Рейтинг: 4098.5



Это - архивная тема типа "А с чего всё начиналось"

Так уж получилось, что данная тема наших глубокоуважаемых программистов не заинтересовала или они посчитали ее нереализуемой, я по прежнему считаю, что ЭЛЬФЫ возможно адаптировать под мотор, нужно адаптировать уже имеющиеся семеновские эльфы, а более насущный и сложный вопрос - запуск самого эльфа на теле - или писать загрузчик или рассматривать другие варианты ( запуск через яву на мой взгляд утопия - так как эльф тем и хорош, что работает напрямую с процом минуя яву - за счет чего и идет прирост производительности).
Тема обсуждения на сименсклабе

Вот такая тема: http://cbn.narod.ru/documents/elf_info.html
http://www.siemens-club.org/faq/index.php?...e&faqID=231
В кратце:


Помимо патчей существует еще одна возможность расширения функциональных возможностей телефона. Она состоит в исполнении непосредственно кода ARM-процессора аппаратов на платформах SGold и NewSGold, т.е. имеется возможность создавать собственные приложения, работающие аналогично cименсовскому программному обеспечению и использующие производственный стандарт ELF (Executable and Linking Format). Отсюда и название - эльфы.

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

Подобные приложения распространяются в виде файлов с расширением *.elf. Эльфы не зависят (в рамках одной платформы) от модели аппарата и версии прошивки. Исполняются они либо как обычные приложения - нажатием кнопки джойстика в Card Explorer'е, либо вешаются в памяти демонами при загрузке аппарата.

Перед использованием эльфов необходимо ознакомиться с понятиями ELFpack и ELFloader. ELFpack - патч, позволяющий загружать эльфов, абстрагируя их от конкретной версии прошивки (по аналогии с Библиотекой функций в Мастер-Патче). ELFloader - часть ELFpack'а, отвечающая непосредственно за загрузку кода приложения в оперативную память и передачу ему управления. © siemens-club.org


Все эльфы для сименс - читаем описалово, делаем выводы
основы программирования-изучаем, берем опыт ковырятелей сименса
Общие вопросы по эльфам на семенах


Тема обсуждения на спрочтите правила форума Motofan !е

========================
Описание Эльф-формата (eng) PDF

========================

Были написаны Bin Loader (автор: om2804) и бинарик (автор: Andy51). Бинарик выводит текст на экран, выход по любой кнопке. Закинуть в корень флешки, т.е. b/test.bin. Bin Loader грузит бинарик в RAM и от туда его выполняет. Т. к. это ява ставим через MMM. Бинарик работает только на моде от elektro255


Исходник

Компилер

BinLoader


Бинарники для Electro255 v3 и v4 -Также переименовать в test.bin и на флешку.

--------

!!! Первый эльфлоадер !!! (с) om2804 (не стесняемся-благодарим комрада за труды ТУТ)

Прикрепленный файл elf_loader_1.0.zip   ( 10.9 килобайт ) Кол-во скачиваний: 1678
обновленный bin loader 1.2.2 + адрес теперь в hex + округление адреса до кратного 4
Прикрепленный файл bin_loader_1.2.2.rar   ( 12.04 килобайт ) Кол-во скачиваний: 1590



********* Первый эльфпак для моторола! ! !


ТЕМА Автор Andy51

(+) Особая благодарность om2804

(+) Ну и ессно без Vilko некуда

(+) Спасибо Exebyte

(+)
********

Сообщение отредактировал Andy51 - 2.3.2008, 23:28
Прикрепленный файл bin_loader_1.2.2.rar   ( 12.04 килобайт ) Кол-во скачиваний: 1590
Прикрепленный файл elf_loader_1.0.zip   ( 10.9 килобайт ) Кол-во скачиваний: 1678
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
AstaRoth
сообщение 10.1.2007, 11:21


Бошетунмай
********

Группа: Почётные мотофаны
Сообщений: 3 115
Регистрация: 5.11.2005
Из: СЕВЕРОДВИНСК,29, РФ ☭
Пользователь №: 57 206

Рейтинг: 4098.5



Изучаем Эльфы:
Мануал для сименс
Цитата
Q: Что такое Эльфы?
A: Эльфы - это одна из возможностей расширения функциональных возможностей телефона, которая состоит в исполнении непосредственно кода ARM-процессора аппаратов на платформах SGold и NewSGold, т.е. имеется возможность создавать собственные приложения, работающие аналогично cименсовскому программному обеспечению и использующие производственный стандарт ELF (Executable and Linking Format). Отсюда и название - эльфы.
*********
Q:Как установить эльфпак на телефон?
A: Для того чтобы установить эльфпак на свой телефон, нам понадобятся следующие патчи:
Большая Библиотека Функций
SWI-Hook
Загрузчик эльфов
API 14
Последовательность устанавливаемых патчей значения не имеет.
*********
Q: Что быстрее: java-приложение или эльф?
A: Поскольку эльфы исполняются непосредственно процессором без промежуточных надстроек типа java-машины, им доступна вся оперативная память и абсолютно все функции прошивки, созданные программистами Сименса. Скорость исполнения любых команд ограничена только мощностью процессора, поэтому она огромна, в десятки раз выше скорости исполнения java-приложений.
*********
Q: Где мне взять эльф (*.elf) для моего телефона и моей прошивки?
A: Эльфы не зависят (в рамках одной платформы) от модели аппарата и версии прошивки.
*********
Q: Как мне запустить эльфа (*.elf)?
A: Запуск эльфа производится либо как обычное приложения - нажатием кнопки джойстика в CardExplorer'е,
либо автоматически загружаются при включении аппарата, если эльф лежит в папке 0:\ZBin\Daemons
*********
Q: Какие папки нужно создать для работы эльфпака?
A: Необходимо создать структуру каталогов в соответствии с данным архивом
*********
Q: Как выгрузить эльфов?
A: Выгрузка эльфов (не являющихся демонами) возможна только после перезагрузки аппарата, если эта операция не предусмотрена в самом приложении. Чтобы выгрузить эльфа, висящего
демоном, перед перезагрузкой телефона его надо убрать из каталога ZBin\Daemons или сменить расширение файла elf на любое другое.


* Меню "Пуск" на сименсе, вопросы и ответы
* Эльфы на линукс
* Спецификация Эльфов под линукс

Возможно ли такое на моторе?? Хотя бы в принципе? ДА!
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
2 страниц V  1 2 >  
Закрытая темаСоздание новой темы
Ответов(1 - 39)
Vilko
сообщение 10.1.2007, 12:39


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

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

Рейтинг: 1116



AstaRoth,
вполне. единственно что стандарт эльфа предполагает его загрузку с флехи в оперативку и запуск там. он не рассчитан на XIP.
а оперативки у нас в LTE всего 8мб, и бОльшая часть уже "поделена".
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
hobbit19
сообщение 10.1.2007, 12:45


квант истории
******

Группа: Пользователи
Сообщений: 1 043
Регистрация: 1.4.2005
Из: Рязань
Пользователь №: 39 980
Модель телефона: (M)oTorola
Прошивка: testing/unstable
Победитель конкурса 2008

Рейтинг: 739.5



Vilko

а эльфы те что от сименса после шлифовки непойдут нам ? или у нас
структура их будит абсолютна другая ?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Andy51
сообщение 10.1.2007, 16:38


0xFFFF
******

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


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



Рейтинг: 1224



hobbit19, структуру скорее всего можно сделать совместимой, а вот функции ОС, которые из эльфов вызываются - врядли:
Цитата(AstaRoth @ Среда, 10 Января 2007, 14:21)
библиотека функций
*

Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Vilko
сообщение 10.1.2007, 18:00


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

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

Рейтинг: 1116



hobbit19,
API операционки различается. кучу "переходников" придецца делать
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
SANYO_K
сообщение 10.1.2007, 22:15


Интересующийся
**

Группа: Пользователи
Сообщений: 64
Регистрация: 3.1.2006
Пользователь №: 64 324
Модель телефона: ROKR E1 (E398)
Прошивка: elektro255!!! 49r

Рейтинг: 3



О такой совместимости конечно вряд ли может идти речь. Что-то же похожее есть в модах прошивки от Elektro255 .
Цитата
I'm added JMP instruction from JAVA:
public static void jmp(int address)
where parameter is address to any procedure on flash or RAM.
If you will JMP to procedure in Thumb code you must add 1 to adress, if you will make jump to ARM code don't increment.
All procedures must have return (BX LR).
If you making another jump from procedure you must save linkregister on stack PUSH {LR}.
This function is only for assembler programmers, or somebody who want teach ASM for ARM processors smile.gif
To upload your code to RAM you can use Writebyte() from my lib, your code can use RAM to swap data between Java and ASM code.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Vilko
сообщение 11.1.2007, 8:32


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

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

Рейтинг: 1116



SANYO_K,
ха, это новое, еще не видел. а выделение памяти он там реализовал? если да, то впринципе уже можно даж на яве сделать elf-loader
которая распаковывает elf в оперативку и стартует его там
еще б сделать стандартизированный api к операционке wink.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Паук
сообщение 12.1.2007, 7:29


Open Mind
*****

Группа: Почётные мотофаны
Сообщений: 452
Регистрация: 17.6.2005
Из: Полтава, Украина
Пользователь №: 44 370
Модель телефона: (M)
Прошивка: разные

Рейтинг: 530



Интересно, реально ли использовать под эти цели heap от явы?
По инструкции JMP соорудить обработку для использования хипа, а после BX LR - опять отдать память хипа ява-машине...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Andy51
сообщение 12.1.2007, 17:53


0xFFFF
******

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


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



Рейтинг: 1224



Паук, вполне smile.gif ~700кб останется - хватит для простеньких приложений
Цитата(Паук @ Пятница, 12 Января 2007, 10:29)
По инструкции JMP соорудить обработку для использования хипа
*


А зачем? Можно просто использовать функции выделения памяти самой JVM.
Есть ещё две проблема: насколько я понимаю, параллельно эльфу, загруженному таким "явным" загрузчиком, будет работать и JVM, что не есть хорошо в плане вычислительных ресурсов sad.gif

Уж лучше сделать нормальный загрузчик, который создавал бы отдельный процесс...
В таком случае становятся возможными эльфы, работающие "в фоне"
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Andy51
сообщение 20.1.2007, 20:36


0xFFFF
******

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


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



Рейтинг: 1224



Stalker.mg, адреса тебе вернёт функция выделения heap. См. код загрузки мидлета
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
lv333
сообщение 22.1.2007, 15:47


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

Группа: Пользователи
Сообщений: 656
Регистрация: 11.7.2005
Из: Украина, Киев
Пользователь №: 45 916
Модель телефона: Motorola Defy+
Прошивка: СМ 10

Рейтинг: 199.6



Цитата(AstaRoth @ Понедельник, 22 Января 2007, 17:36)
В первых постах было предложение-делать эмуль на яве ( идея на мой взгляд не лучшая), или я что-то не понимаю....
*



biggrin.gif Тогда уж на яве эмулировать функции win32 например biggrin.gif
А имелось ввиду лоадер на яве так как в проше от elektro255 есть теоретически такая возможность как передача управления коду в памяти и его загрузка туда разумеется. Только здесь есть такая проблема как выделения этой самой памяти и нормальное распределения ресурсов для этого кода (обработка прерываний например). Одним словом нужно создать некое системное окружения. smile.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Akceptor
сообщение 23.1.2007, 10:26


За Гомеза!
******

Группа: Почётные мотофаны
Сообщений: 926
Регистрация: 25.3.2005
Из: Ивано-Франковск@Ukraine
Пользователь №: 39 521
Модель телефона: Motorola XT1080M
Прошивка: 19.5.3.obake-maxx


Настроение:
I'm back! May be...



Рейтинг: 364



Цитата(f0f @ Вторник, 23 Января 2007, 10:50)
Извините конечно за тупые вопросы, но стоит ли вообще овчика выделки? Какие у эльфа преимущестава по сравнению с явой?
*


СКОРОСТЬ и ФУНКЦИОНАЛЬНОСТЬ
Ява выполняется в виртуальной машине и потому она медленная и сильно ограниченая. Эльфы написаны под процессор тела и работать будут быстро. По сути мы получим те же патчи, только запускаемые, а не вшитые в прошивку (как ексешники в винде wink.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Osta
сообщение 23.1.2007, 12:23


Freestyler
********

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


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



Рейтинг: 4362



Цитата(lv333 @ Понедельник, 22 Января 2007, 16:47)
Только здесь есть такая проблема как выделения этой самой памяти и нормальное распределения ресурсов для этого кода
*


из своего , пока печального опыта скажу так:
я не нашёл за неделю кусочка в 240h байт оперативки на прошивке от с650 :-(

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


За Гомеза!
******

Группа: Почётные мотофаны
Сообщений: 926
Регистрация: 25.3.2005
Из: Ивано-Франковск@Ukraine
Пользователь №: 39 521
Модель телефона: Motorola XT1080M
Прошивка: 19.5.3.obake-maxx


Настроение:
I'm back! May be...



Рейтинг: 364



Цитата(Osta @ Вторник, 23 Января 2007, 13:23)
из своего , пока печального опыта скажу так:
я не нашёл за неделю кусочка в 240h байт оперативки на прошивке от с650 :-(
*


У нас то флэшка побольше чем на с650, может и оперативка найдется. А на с650 и дуалбут впихать некуда
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
lv333
сообщение 23.1.2007, 13:28


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

Группа: Пользователи
Сообщений: 656
Регистрация: 11.7.2005
Из: Украина, Киев
Пользователь №: 45 916
Модель телефона: Motorola Defy+
Прошивка: СМ 10

Рейтинг: 199.6



Ближе к делу: smile.gif
На сегоднешний день из бинарных кодов мы имеем dualboot от Vilko. Есть так же библиотека от elektro255 в которой в свою очередь есть функции:

Код

записать код в память по адрессу:
static void writebyte(int address,int value)
а так же передать ему управления:
static void jmp(int address)


Так что лоадер хоть на том же мидлет паскале хоть на джаве можно прямо сейчас написать - это не есть проблема smile.gif
Главное знать адреса куда можно записать и иметь что туда записать(код который не вызовет полного краха всей системы smile.gif)
Попытатся выполнить таким способом dualboot думаю не стоит, smile.gif он все таки был написан для однозадачного и однопользовательского режима. biggrin.gif Но написать свой бинарик, аналог проги Hello World думаю вполне реально.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Freemmy
сообщение 23.1.2007, 14:22


Интересующийся
**

Группа: Пользователи
Сообщений: 49
Регистрация: 12.3.2006
Пользователь №: 73 916
Модель телефона: MOTOROKR E6
Прошивка: самая новая

Рейтинг: 7



lv333, ты хочеш сказать что если написать лоадер на яве, он будет распаковывать эльф в оперативку, затем яву закрываеш а эльф работает? huh.gif
и разве проблема стоит только в нахождении куска адреса?
думаю под обычную мелкую прогу места навалом будет
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
lv333
сообщение 23.1.2007, 14:30


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

Группа: Пользователи
Сообщений: 656
Регистрация: 11.7.2005
Из: Украина, Киев
Пользователь №: 45 916
Модель телефона: Motorola Defy+
Прошивка: СМ 10

Рейтинг: 199.6



Цитата(Stalker.mg @ Вторник, 23 Января 2007, 16:19)
давай, напиши. ничего не выйдет, static void writebyte(int address,int value) записывает бинарник куда ему скажут, а эльф мало просто записать. тут все гораздо сложней. как по твоему джампы будут выполняться если они написаны в нем изначально относительно его адресации а потом станут выполнятся относительно общей адресации, я промолчу к чему это приведет
*



блин, ну я же написал вроде:

Цитата
Главное знать адреса куда можно записать и иметь что туда записать(код который не вызовет полного краха всей системы smile.gif)


А насчет адресации, конечно нужно иметь таблицу что и где лежит и по какому адресу. Иначе ничего не получится. smile.gif И это еще не все код должен взаимодействовать с аппаратными ресурсами телефона: например если берет на себя вывод на экран, то при выходе должен его обновлять, если принимает ввод с клавиатуры то анологично должен его возвращать, если занимает память должен ее освобождать и т.д.


Цитата(Freemmy @ Вторник, 23 Января 2007, 16:22)
lv333, ты хочеш сказать что если написать лоадер на яве, он будет распаковывать эльф в оперативку, затем яву закрываеш а эльф работает?  huh.gif
и разве проблема стоит только в нахождении куска адреса?
думаю  под обычную мелкую прогу места навалом будет
*



Нет не только, читай выше.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
om2804
сообщение 30.1.2007, 15:18


МотоКодер
******

Группа: Разработчики
Сообщений: 786
Регистрация: 14.8.2006
Из: Архангельск
Пользователь №: 95 055
Модель телефона: E398
Прошивка: DaR
Победитель конкурса 2008

Рейтинг: 1650



Цитата(Stalker.mg @ Понедельник, 29 Января 2007, 14:32)
эльф вроде исполняемый а не интерпритируемый код. поэтому просто джамп на его начало
*



Тогда в чем проблема? Написать загрузчик на ява. Пусть он грузит код на ассме (или 16ричный код ) в адреса хипа и jmp ставит
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Vilko
сообщение 31.1.2007, 7:32


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

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

Рейтинг: 1116



эх, ё.... ща начнется флуд на тему "что же такое эльф"...
читаем, делаем выводы:
Прикрепленный файл ELF_Format.pdf   ( 147.9 килобайт ) Кол-во скачиваний: 3121
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
om2804
сообщение 12.4.2007, 16:32


МотоКодер
******

Группа: Разработчики
Сообщений: 786
Регистрация: 14.8.2006
Из: Архангельск
Пользователь №: 95 055
Модель телефона: E398
Прошивка: DaR
Победитель конкурса 2008

Рейтинг: 1650



Загрузчик нужно писать на яве, т. к. ява-кодеров не один человек. ИМХО
На модах от elektro225 можно перепрыгнуть на определенный адрес в RAM.
Остается только:
1. считать из файла 16-тиричный код
2. изменить адресацию в нем относительно адресации в RAM
3. загрузить измененный код в RAM
3. И терепрыгнуть на него ( в 4й альфе этот ява метод выглядит как static void jmp(int address) )
Свободное место в RAM есть!
Проблемой будет компилятор ASM 7 (для e398)? т. к. весить он будет не мало

Встраивать в прошивку загрузчик точно никто не возьмется.

Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
AstaRoth
сообщение 20.4.2007, 6:13


Бошетунмай
********

Группа: Почётные мотофаны
Сообщений: 3 115
Регистрация: 5.11.2005
Из: СЕВЕРОДВИНСК,29, РФ ☭
Пользователь №: 57 206

Рейтинг: 4098.5



Господа, Нужны люди знающие асм и с компилятором ARM 7. om2804 пишет софтину, но у него нет компилятора AMR 7. Нужно чтоб кто-нибудь написал мини прогу на асме и откомпилировал бы в бинарик, компилятором AMR 7,Надо чтобы прога работала по линейному алгоритму, т. е. без джампов в коде, Также результат выполнения был заметен. Если у Вас есть знакомые программисты или Вы сами разбираетесь - пожалуйста- прочитайте тему с самого начала - и если будут соображения- стукните в асю 335962171 (om2804) или 5131549 ( AstaRoth)
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
om2804
сообщение 20.4.2007, 20:30


МотоКодер
******

Группа: Разработчики
Сообщений: 786
Регистрация: 14.8.2006
Из: Архангельск
Пользователь №: 95 055
Модель телефона: E398
Прошивка: DaR
Победитель конкурса 2008

Рейтинг: 1650



Прошивка для E398 - мод от elektro255 4я альфа
В RAM область 0х12200000 - 0х12500000 (393,2 Кб) свободна.
Поэтому грузить надо с адреса 0х12200000. Если не получается сделать без джампов так чтобы было заметно результат, можно сделать с джампами но адреса подогнать не относительно эльфа а относительно адреса 0*12200000, т. е. адрес джампа + 12200000. Это возможно?

Т. к. загрузчик на яве адреса аpi прописывать в эльф проге не нужно. Доступ к RAM из явы есть только на моде от elektro255 4я альфа.
Для других телефонов нужно писать лоадер не на яве, а встраивать в прошивку. Этим делом заняться никто не хочет.
Vilko, спасибо что внес ясность.
Всё еще нужна прога. Её результат не важен. Лишь бы он был заменен (вывод на экран "Hello World" например). Этим можно будет проверить работает ли эльф из RAM. Потом уже от этого и плясать.

P. S. Где можно скачать компилятор AMR7?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Andy51
сообщение 22.4.2007, 13:39


0xFFFF
******

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


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



Рейтинг: 1224



om2804, для проверки есть хорошая easy-to-use функция printf. При подключённом usb можно писать в консоль, которую можно смотреть в MidWay или MMM wink.gif Только не совсем понимаю, зачем это нужно?
Цитата(om2804 @ Вчера, 0:30)

подогнать не относительно эльфа а относительно адреса 0*12200000
*


Если не ошибаюсь, для этого виртуальная память существует. Вот только как с ней дело у нас обстоит - не в курсе
Цитата(om2804 @ Вчера, 0:30)

Прошивка для E398 - мод от elektro255 4я альфа
В RAM область 0х12200000 - 0х12500000 (393,2 Кб) свободна.
*


Откуда инфа?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
om2804
сообщение 22.4.2007, 17:54


МотоКодер
******

Группа: Разработчики
Сообщений: 786
Регистрация: 14.8.2006
Из: Архангельск
Пользователь №: 95 055
Модель телефона: E398
Прошивка: DaR
Победитель конкурса 2008

Рейтинг: 1650



Опытным путем через Synerj_tools 2.8 нашел.
Свободные области:
0х12200000 - 0х12500000 (393,2 Кб)
0х3FC0200 - 0х3FFFFFF (32,7 Кб)

Прошивка для E398 - мод от elektro255 4я альфа. Т. к. на ней работает ява метод jmp. Есть ещё конечно на других модах этот джамп, но у меня есть только 4я альфа, а качать через GPRS мне уж очень не охота. В дальнейшем думаю elektro255 баги на 4ой альфе исправит. Т. к. доступ к оперативе из явы есть только на модах от elektro255, поэтому и могут быть елфы только на E398 (пока на Е398 smile.gif )

Вся проблема в самом ельфе. Кто бы его написал?
А бинлоадер можно уже сейчас выложить.

Сообщение отредактировал om2804 - 22.4.2007, 18:25
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Vilko
сообщение 24.4.2007, 6:26


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

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

Рейтинг: 1116



Andy51,
Виртуальная память возможна при:
- наличии аппаратного менеджера памяти, позволяющего реализовать страничную адресацию
- наличии устройчства хранения большей емкости типа харда, куда собсно будет скидыватся эта память.
увы в моторолках все не настолько круто и нет ни того ни другого )
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
om2804
сообщение 24.4.2007, 20:46


МотоКодер
******

Группа: Разработчики
Сообщений: 786
Регистрация: 14.8.2006
Из: Архангельск
Пользователь №: 95 055
Модель телефона: E398
Прошивка: DaR
Победитель конкурса 2008

Рейтинг: 1650



Andy51, был написан первый бинарик, который выводит строку в консоль. Этим доказано, что бинарики запускаются из RAM. Разработка продолжается. Требуются люди знающие асм и с компилятором ARM 7 (желающие помочь пишите в личку или стучите в асю 335962171 ).
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
om2804
сообщение 5.5.2007, 22:22


МотоКодер
******

Группа: Разработчики
Сообщений: 786
Регистрация: 14.8.2006
Из: Архангельск
Пользователь №: 95 055
Модель телефона: E398
Прошивка: DaR
Победитель конкурса 2008

Рейтинг: 1650



Выкладываю Bin Loader (автор: om2804) и бинарик (автор: Andy51). Бинарик выводит текст на экран, выход по любой кнопке. Закинуть в корень флешки, т.е. b/test.bin. Bin Loader грузит бинарик в RAM и от туда его выполняет. Т. к. это ява ставим через MMM.
Бинарик работает только на моде от elektro255 4я альфа


Немного доработал Bin Loader (Bin Loader 1.2)

Сообщение отредактировал om2804 - 6.5.2007, 9:36
Прикрепленный файл BinLoader.zip   ( 10.44 килобайт ) Кол-во скачиваний: 283
Прикрепленный файл binarik.zip   ( 645 байт ) Кол-во скачиваний: 337
Прикрепленный файл BinLoader_1.2_.zip   ( 10.68 килобайт ) Кол-во скачиваний: 887
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Andy51
сообщение 5.5.2007, 23:59


0xFFFF
******

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


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



Рейтинг: 1224



В копмлекте - бинарники для elektro255 v4 и v3
Также переименовать в test.bin и на флешку.
На v3 не тестировалось! - Отпишитесь кто будет пробовать

Сообщение отредактировал Andy51 - 6.5.2007, 0:01
Прикрепленный файл bin.rar   ( 1.19 килобайт ) Кол-во скачиваний: 1274
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Andy51
сообщение 6.5.2007, 20:16


0xFFFF
******

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


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



Рейтинг: 1224



Если кому интересно
Исходник:
Прикрепленный файл bin_src.rar   ( 3.11 килобайт ) Кол-во скачиваний: 1331

Компилер:
Прикрепленный файл goldroad1_7.zip   ( 48.93 килобайт ) Кол-во скачиваний: 1270


cmepx, убери, пожалуйста, лог из тела своего сообщения

Сообщение отредактировал Andy51 - 6.5.2007, 21:11
Прикрепленный файл bin_src.rar   ( 3.11 килобайт ) Кол-во скачиваний: 1331
Прикрепленный файл goldroad1_7.zip   ( 48.93 килобайт ) Кол-во скачиваний: 1270
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Andy51
сообщение 7.5.2007, 19:18


0xFFFF
******

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


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



Рейтинг: 1224



gunghost, нет, binloader-это только первый опыт, скажем так
Сейчас om2804 работает над загрузчиком elf, тоже на яве.
Но, конечно, по хорошему надо бы сделать его встроенным в прошивку
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
gunghost
сообщение 7.5.2007, 19:40


Новичок
*

Группа: Пользователи
Сообщений: 9
Регистрация: 24.2.2006
Пользователь №: 71 735
Модель телефона: E398
Прошивка: Всегда самая лудшая

Рейтинг: 3.5



Понятно. Вот ещё нужно тогда начинить думать о переделки. самих эльфов. У меня есьть задумки. Скажим нужно создать библиотеку адресов в памяти к которым будут обращаться сами эльфы на маторах и на сименсах! нужно собрать как можно больше такой информации, а то ничего не получиться.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Abram
сообщение 8.5.2007, 0:04


Прелесть какая гадость
*******

Группа: Разработчики
Сообщений: 1 963
Регистрация: 24.6.2005
Из: .ru - рідна Україна
Пользователь №: 44 825
Модель телефона: Moto G XT1033
Прошивка: CyanogenMod
Победитель конкурса 2008

Рейтинг: 744



А если прошивка сума будет указывать области памяти, где эльфу можно работать? Нто тогда нужно динамическое выделение писать... ИМХО принцип таков: есть (будет) таблица свободной для использования памяти (в прошивке) и лоадер (тоже уже есть почти), дальше внимание! память должна выделяться динамически, тойсть дали программе, припустим, 200кб и сказали где, а она уже сама себе джампает в этих пределах (все к electro255, пусть пишет wink.gif). Но это уже дожлен быть бинарный загрузчик (в прошивке) или хотя бы соответствующие классы (или что там в яве? smile.gif) написать (тоже в прошивке).

В результате мы должны получить в прошивке API и явовский менеджер приложений wink.gif

Правда, для этого может понадобиться использовать другой формат бинарников. Если эльфы подошли на сименсы - не факт, что их можно будет с тем же успехом использовать на Моторах. shuffle.gif

Сообщение отредактировал Abram - 8.5.2007, 0:07
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
om2804
сообщение 8.5.2007, 8:13


МотоКодер
******

Группа: Разработчики
Сообщений: 786
Регистрация: 14.8.2006
Из: Архангельск
Пользователь №: 95 055
Модель телефона: E398
Прошивка: DaR
Победитель конкурса 2008

Рейтинг: 1650



Кто сможет выкачать исходники эльф лоадера сименсов выложите здесь. (для скачивания нужен SVN клиент )
ссылка на эльф лоадер: svn://cbsie.dyndns.info/ARM
ссылка на SVN-клиент: http://tortoisesvn.tigris.org/download.html
Настройка SVN - клиента :
Прикрепленный файл SVN.rar   ( 12.56 килобайт ) Кол-во скачиваний: 286

+ 1.5 к рейтингу гарантирую

Сообщение отредактировал om2804 - 8.5.2007, 8:18
Прикрепленный файл SVN.rar   ( 12.56 килобайт ) Кол-во скачиваний: 286
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
dragonse
сообщение 8.5.2007, 10:36


Новичок
*

Группа: Пользователи
Сообщений: 2
Регистрация: 27.12.2006
Пользователь №: 113 688
Модель телефона: E398
Прошивка: 373

Рейтинг: 4.5



Цитата(om2804 @ 8.5.2007, 12:13) *

Кто сможет выкачать исходники эльф лоадера сименсов выложите здесь. (для скачивания нужен SVN клиент )
ссылка на эльф лоадер: svn://cbsie.dyndns.info/ARM
ссылка на SVN-клиент: http://tortoisesvn.tigris.org/download.html
Настройка SVN - клиента :
Прикрепленный файл SVN.rar   ( 12.56 килобайт ) Кол-во скачиваний: 286

+ 1.5 к рейтингу гарантирую

Вот скачал все что там было. отдельно выкладываю папку elfloader.
Прикрепленный файл elfloader.rar   ( 206.59 килобайт ) Кол-во скачиваний: 226
Прикрепленный файл amr.rar   ( 1.57 мегабайт ) Кол-во скачиваний: 180
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
om2804
сообщение 17.5.2007, 18:46


МотоКодер
******

Группа: Разработчики
Сообщений: 786
Регистрация: 14.8.2006
Из: Архангельск
Пользователь №: 95 055
Модель телефона: E398
Прошивка: DaR
Победитель конкурса 2008

Рейтинг: 1650



Всё что нашел о формате ELF в инете (большая часть на русском)

Сообщение отредактировал om2804 - 17.5.2007, 18:50
Прикрепленный файл ELF.rar   ( 79.64 килобайт ) Кол-во скачиваний: 321
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
i-render
сообщение 18.5.2007, 20:21


Мастер
****

Группа: Пользователи
Сообщений: 173
Регистрация: 24.10.2006
Пользователь №: 104 512
Модель телефона: Moto ROKR Z6

Рейтинг: 93



Выкладываю документацию по эльфам от Криса Касперски (на русском). Может
кому пригодиться, так сказать в ознакомительных целях smile.gif . В документации
есть предложения по оптимизации и уменьшения размера конечного elf-файла,
что должно быть актуальным для портирования формата на телефоны.

P.S. Один человек, отлично владеющий английским языком, соглпсился помочь с переводом документации Executable and Linkable Format (ELF). Я попросил его перевести 2-ю часть - PROGRAM LOADING AND DYNAMIC LINKING. К понедельнику перевод не получилось подготовить. В течении недели будет...

Сообщение отредактировал i-render - 21.5.2007, 18:32
Прикрепленный файл bis___small_elfs.rar   ( 687.9 килобайт ) Кол-во скачиваний: 270
Прикрепленный файл elfs.doc   ( 1.27 мегабайт ) Кол-во скачиваний: 415
Прикрепленный файл exploit_elfs.doc   ( 537.5 килобайт ) Кол-во скачиваний: 262
Прикрепленный файл very_small_elf.rar   ( 12.72 килобайт ) Кол-во скачиваний: 511
Прикрепленный файл otladka_elf_bez_ishodnikov.rar   ( 306.4 килобайт ) Кол-во скачиваний: 213
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
om2804
сообщение 30.5.2007, 17:21


МотоКодер
******

Группа: Разработчики
Сообщений: 786
Регистрация: 14.8.2006
Из: Архангельск
Пользователь №: 95 055
Модель телефона: E398
Прошивка: DaR
Победитель конкурса 2008

Рейтинг: 1650



Первый elf loader
Сразу скажу, что умеет пока не много: работает с простыми эльфами (одна программная секция), с эльфами привязанными к определенной прошивке; из плюсов возможность грузить по любому адресу (адрес теперь задаем в hex, я пробовал в пределах 0х12200000 - 0х12500000)
Тестовый эльф для elektro v3 49R, прилагается в архиве, закинуть в корень флешки

обновленный bin loader 1.2.2
+ адрес теперь в hex
+ округление адреса до кратного 4

Сообщение отредактировал om2804 - 30.5.2007, 18:08
Прикрепленный файл elf_loader_1.0.zip   ( 10.9 килобайт ) Кол-во скачиваний: 457
Прикрепленный файл bin_loader_1.2.2.rar   ( 12.04 килобайт ) Кол-во скачиваний: 174
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Andy51
сообщение 31.5.2007, 13:09


0xFFFF
******

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


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



Рейтинг: 1224



gunghost, можно использовать эльфы, состоящие из одной секции. Обычно, компилятор разбивает эльф на секции согласно разбивке на модули в Си (*.c + *.h файл) или на ассемблере - согласно разделению на сектора (area). В общем, заработает только если эльф достаточно простой (написан одним модулем). Если om2804 сделает динамическую линковку, то можно будет использовать эльфы с более сложной структурой smile.gif

Сообщение отредактировал Andy51 - 31.5.2007, 13:11
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
om2804
сообщение 31.5.2007, 19:19


МотоКодер
******

Группа: Разработчики
Сообщений: 786
Регистрация: 14.8.2006
Из: Архангельск
Пользователь №: 95 055
Модель телефона: E398
Прошивка: DaR
Победитель конкурса 2008

Рейтинг: 1650



Цитата(om2804 @ 30.5.2007, 21:21) *


Тестовый эльф для elektro v3 49R, прилагается в архиве, закинуть в корень флешки



Для v4a4 попробуйте этот эльф, но я его не проверял.

PS
Эльф выводит 'Т' и через некоторое время "закрывается"

Сообщение отредактировал om2804 - 1.6.2007, 15:58
Прикрепленный файл test.rar   ( 1.53 килобайт ) Кол-во скачиваний: 164
Прикрепленный файл test_v4a4.rar   ( 2.59 килобайт ) Кол-во скачиваний: 162
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Elf на (M)otorola, архивная тема, С чего всё начиналось · Эльфы, их разработка и портирование · Forum
 

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

 



Текстовая версия Сейчас: 23.6.2025, 4:39

Форум живёт: