Как стать автором
Обновить

Эльфы, живущие в мобильном телефоне

Время на прочтение2 мин
Количество просмотров9K


Android заполонил всё. Куда не глянь — новый супер-пупер смартфон на Android 2.0, 3.0, 4.0… Техника устаревает на глазах, Прогресс шагает вперед и это хорошо. Но было время, когда никто не знал про Android, а телефоны стоили столько сколько сейчас стоят смартфоны.

В те времена на обычных телефонах были и кастомные прошивки, и патчи, но не хватало приложений — хороших и разных. «А как же ява?» — спросите вы. Да, были ява-приложения. Но что умеет ява? А главное как быстро она работает? В общем, когда всем надоела тормознутая ява с ограниченными возможностями, пришёл он — ELF.

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

Первой мобильной платформой из известных мне где появились эльфы, был Siemens, потом они появились на SonyEricsson и Motorola. Нужно сказать, что просто так эльф на телефоне не запустить — нужен эльфлоадер (elf loader) специальный патч, который «конвертирует» формат в обычный бинарик, грузит его в память и запускает на выполнение. Ну если хочется (а точнее даже приходится для запуска эльфа) использовать уже готовые функции прошивки, то необходима библиотека функций (названия функций + адреса). Основная проблема тут в том, что адреса этих функций у всех прошивок разные, но выход есть — код этих функций практически одинаковый и можно искать эти самые функции по, так называемым, паттернам.

Весь кодинг эльфов для Motorola достаточно сложное и вместе с тем очень интересное занятие, которое непосредственно связано с реверсингом кода прошивки. Добавляет сложности то, что приложения реализованы на событиях (т.е. практически всё асинхронно). События ставятся в очередь, их ловят обработчики событий, таким образом реализована многозадачность. Сами эльфы пишутся на Си или С++, но в большинстве случаев можно обойтись и без ООП.

Что же могут эльфы? Пусть их возможности продемонстрируют скрины (кстати для создания скринов тоже есть свой эльф):



Informer – слева, Infograph – посередине, DeskUtils – справа. Все эти эльфы предназначены для отображения различной информации на рабочем столе: погода, местоположение, баланс на симке, заряд батареи, уровень сигнала и т.п.



Аудиоплеер eTunes в различных «шкурах». Пожалуй, один из самых масштабных эльфов на Мото.



Ещё несколько приложений слева-направо: читалка, калькулятор, дополнительное меню, hex-редактор.



Ну и куда же без игр: бомбермен, пингвин Тюкс, линии, сапёр, дурак и тетрис

Конечно, это не все эльфы. Есть ещё и джабер, и майл-агент, и аська, и многое дугое. Все эльфы для Моторола вы можете найти на форуме motofan.ru

UPD: На мотофане осталась архивная тема, по которой можно узнать о том как шёл процесс рождения эльфов

PS: Если кто-то обладает информацией о том, как развивались эльфы на SE и Сименсах, и желает помочь с продолжением статьи, можно отписать мне в ICQ или ЛС
Теги:
Хабы:
Всего голосов 112: ↑80 и ↓32+48
Комментарии65

Публикации

Истории

Работа

Swift разработчик
25 вакансий
iOS разработчик
22 вакансии

Ближайшие события

19 сентября
CDI Conf 2024
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн