LINUX.ORG.RU
ФорумTalks

Я бросил вызов Google. Я - Тайлер Дерден от мира IT.

 


0

2

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

Недавно я написал статью, где рассказал о том, как можно писать нативные программы для старых смартфонов под «голый» Linux, не запуская Android вообще. Покумекав и поразмышляв, мне захотелось сделать реальной проект на базе этих наработок, а тут мне параллельно удалось завести модем медиатека…

Короче, я сел и начал писать открытую прошивку (под прошивкой в данном случае понимается «морда») для Android смартфонов. Максимально легко-портируемую, шуструю, с простым и понятным API для приложений. Ведроид вообще никак не задействуется.

https://imgur.com/a/CWG5YBV

Основной плюс перед pmOS в том, что такая прошивка легко работает на древних версиях ядрах (тестирую на 2.6), может работать на проприетарных ядрах без перекомпиляции и состоит из пары либ. На данный момент, у нас есть:

  1. Графическая подсистема с отрисовкой прозрачных/непрозрачных картинок, умножением цвета, автоматическим управлением формата пикселя (на смартфоне 16-битный фреймбуфер, т.е 565, на 32х-битном фреймбуфере все должно работать также), отрисовкой примитивов и растровых моноширинных шрифтов. Изначально хотел её делать на GLES, но нативный рендерер мне завести пока не удалось (буду копать исходники ведра, чтобы понять шаги инициализации), на софтрендере работает не очень плавно, но вполне шустро.
  2. Простой механизм для анимаций. Я изначально хотел слизать UX для прошивки с первых версий iOS, поэтому без анимаций никуда. Пока что есть примитивный интерполятор нескольких значений (X, Y, поворот и.т.п), который вполне работает.
  3. Обработка ввода с тачскрина с распознаванием базовых жестов (свайпы). Ну, тут все очевидно, правда пока распознается только одно нажатие - мультитача ещё нет.
  4. Простенький драйвер модема. Звонить и отправлять СМС-ки умеет.
  5. GUI. Причём я решил реализовать интерфейс самым нетривиальным по мобильным меркам способ - концепцией Immediate GUI (т.е вызвали GUI::Button - получили кнопку на экране, GUI::TextField - текстовое поле и всё это с минимальным количеством стейтов). Для сторонних приложений есть механизм «экранов».
  6. Менеджер питания. Замер уровня заряда АКБ, статус ЗУ, управление подсветкой - это все сюда.

Желаю успехов. Многие известные проекты начинались с малого - идеи и человека, готового ее реализовать.

Leupold_cat ★★★★★
()
Ответ на: комментарий от Leupold_cat

Многие проекты начинались с NIH и непонимания существующих, и мои в том числе, но в среднем польза от них в основном оставалась самообразовательной. Без нормального обоснования, почему не pmOS, это похоже на расписывание ручки.

t184256 ★★★★★
()
Ответ на: комментарий от Leupold_cat

Пасиб. Сама идея как минимум оч интересная и перспективная именно с точки зрения юзания старых мобилок как одноплатников. Во первых, они очень дешевые на юлито (100-300 рублей за РАБОЧИЙ девайс), во вторых - там уже все есть (и тач, и дисплей очень даже неплохой, и звук, и камера). Я пока не очень популярный автор, но в определенных кругах меня знают. Хочу максимально продвигать эту идею в будущем, дабы о ней узнало как можно больше людей) Может даже выделю часть существующего кода в отдельную ветку и оформлю в виде SDK для работы на старых устройствах.

monobogdan1337
() автор топика
Последнее исправление: monobogdan1337 (всего исправлений: 1)
Ответ на: комментарий от t184256

Как я понимаю, postmarketOS это порт Linux на телефоны. При этом драйвера пишем сами под железо.

У ТСа, как я понял, берется уже готовое ядро от Android со всеми дровами, после чего поверх вместо обычной оболочки Android пишется своя.

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от Vsevolod-linuxoid

При этом драйвера пишем сами под железо.

Не совсем. Для pmOS обычно берутся исходники ядра от вендора и затем пересобираются с определенным конфигом. Затем собирается рутфс и заливается на смартфон. Для совместимости с драйверами для ведра (а у андроида есть своя прослойка между железом и софтом называемая Android HAL - это самая попаболь для разработчиков сторонних прошивок) используется специальная библиотека «костыль» - libHybris, которая позволяяет загружать в glibc процессы библиотеки, предназначенные для работы с bionic.

monobogdan1337
() автор топика
Ответ на: комментарий от monobogdan1337

Пасиб. Сама идея как минимум оч интересная и перспективная именно с точки зрения юзания старых мобилок как одноплатников.

Так хорошие одноплатники работают на mainline ядрах Linux и OpenBSD с огромной коллекцией готового софта.

Кому нужна безопасность, те никогда не воспользуются «одноплатником» с юлито за сотку с неведомыми блобами и глюками.

Для безопасности уже есть unikernel решения на ядрах полноценного Linux. Думаете, они внезапно начнут использовать ваши поделки?

А если нужно избавиться от жирного ядра, сохранив хотя бы часть готового userland, то это Embox, а никак не эксперименты с раскопками из андроидного захоронения.

sanyo1234
()
Ответ на: комментарий от sanyo1234

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

Крутой IPS дисплей высокого разрешения (MIPI-матрица для малины стоит 100500 денег, TN HDMI-экранчики с скалерами я не рассматриваю).

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

Емкостной тач (редкость для DIY-проектов, в основном берутся резистивные).

Готовый нормальный контроллер питания, а не TP4056.

monobogdan1337
() автор топика
Последнее исправление: monobogdan1337 (всего исправлений: 3)
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)