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. Менеджер питания. Замер уровня заряда АКБ, статус ЗУ, управление подсветкой - это все сюда.

Хз осилю ли такой проЭкт в одиночку, но если хотя-бы получится допилить телефонный функционал - это уже будет максимально круто.

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

Ждем темы «затмил своим сиянием свет солнца».

frunobulax ★★★
()

Посмотри старые моторолы (razr v3), там AFAIK Linux внутри. Или ты всё хочешь сам с нуля?

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

У меня морда своя с «нуля». Моторы, насколько знаю, использовали +- похожий подход, хотя мингу хотелось бы себе в коллекцию.

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

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

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

Гугло затаилось,

Наверно, они что-то задумали ? :)

Лучше бы TS IMHO занялся чем-нибудь полезным типа портирования вышеперечисленного им на более открытое и НЕзондированное ядро типа Embox: Embox v0.5.10 (комментарий)

sanyo1234
()

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

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

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

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

хотя мингу хотелось бы себе в коллекцию.

Ах вот откуда у тебя верхняя полоска с иконками :)

Dimez ★★★★★
()

Идея и если есть время на реализацию - респект. Но кто будет пилить софт для ещё одной операционки?

Когда Nokia сообщила, что maemo они перестанут поддерживать, писать под неё тут же перестали практически все разработчики, яндекс убрал свои карты, shmuma перестал пилить свой форк очень удобного maemo mapper’а.

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

даже если не осилишь, то скил и плюс в портфолио. За проект респект!

Kolins ★★★★★
()

Так технически что ты делаешь, всё ещё надстройку над васянским рекавери или что-то более фундаментальное?

bo4ok
()

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

Твой молодецкий задор и желание показать силушку ума богатырского я поддерживаю и уважаю.

Только тут есть подвох в том, что внутри телефона установлены микросхемы с закрытой прошивкой и документацию, по которой эта прошивка написана, в открытый доступ вряд ли кто выложит. Например, это «квалкомовские» и прочие радиомодемы. К тому же много что запатентовано.

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

Диапазон радиочастот для начала можно использовать открытый, радиолюбительский, а для удобного взаимодействия с пользовательскими устройствами я бы испоользовал точку доступа «Вай-Фай» автомобильного радиопередатчика.

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

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

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

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

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

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

Но кто будет пилить софт для ещё одной операционки?

А я и не претендую на роль создателя убийцы ведроида. Моя цель лишь в том, чтобы предоставить опен-сорсную оболочку и эдакий SDK для разработки под старые мобилки. т.е основная суть идеи как раз таки в том, чтобы люди увидели крутейшие DIY-перспективы старых флаев, которые на сортировках с помоек просто ГОРАМИ лежат. Функционал мобилки - лишь мой хобби-проект.

Юзание в DIY - гораздо более полезное и интересное применение, чем выбрасывать старых друзей на помойку.

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

Только тут есть подвох в том, что внутри телефона установлены микросхемы с закрытой прошивкой и документацию, по которой эта прошивка написана, в открытый доступ вряд ли кто выложит. Например, это «квалкомовские» и прочие радиомодемы. К тому же много что запатентовано.

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

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

Хех, открытых бейсбендов считай не существует. Даже в Neo FreeRunner - фактически первом ПОЛНОСТЬЮ опенсорсном смартфоне, использовалась платформа TI Calypso - которая такая же использовалась в моторолах «головастиках» и некоторых других бюджетниках 2003-2005 годов. Собственно, TI Calypso - пока что единственный чипсет, куда смогли написать полностью ОТКРЫТЫЙ и свой GSM-стек - OsmocomBB.

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

Сам, это больше проект «для души» и «по приколу». Я ведь все таки веду техноблог о мобилках, хоть что-то своё связанное с мобильными устройствами я обязан был сделать сам :)

Но исходники выложу конечно же, дабы любой мог ознакомиться. И статья об этом будет полноценная.

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

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

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

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

на сортировках с помоек просто ГОРАМИ лежат

Собери их в кластер майнить криптовалюту и выложи код для подъема такого же в общий доступ — это существенно сократит число электронного мусора… правда поднимет потребление электроэнергии.

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

Честно сказать, я когда-то мечтал запустить самопальную мультиплеерную игрушку, а кластер серверов (сам сервер на авторитарный, поэтому много ЦПУ не кушает) собрать на базе мобилко с битыми дисплеями)

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

Т.е. планируете выложить готовый продукт и до выкладывания никого не подпускать к разработке?

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

Тысячи их, и твой проект им лишь мешает.

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

Nix работает на чем угодно. После того, как я его запустил на андроиде, проблем в запуске на pmOS я не вижу совсем.

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

Естественно. А уж как он популярен на макоси, ух.

t184256 ★★★★★
()

Графическую оболочку нужно на вейланде делать. Иначе челендж не будет засчитан.

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

Хех, открытых бейсбендов считай не существует.

Если каждый из радиоприемопередатчиков передает и принимает данные через себе подобные устройства минуя базовую станцию, то зачем использовать «Джи-Эс-Эм»?

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

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

Сейчас понятно насколько это революционная затея? В итоге мировые правительства падут и народ повсюду начнет брать власть в свои руки.

Enthusiast ★★★
()

GUI. Причём я решил реализовать интерфейс самым нетривиальным по мобильным меркам способ - концепцией Immediate GUI (т.е вызвали GUI::Button - получили кнопку на экране, GUI::TextField - текстовое поле

Кто-то изобрел ImGui?

Изначально хотел её делать на GLES, но нативный рендерер мне завести пока не удалось

Батарейка в чемодан вместится?

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

Просто запретят свободную продажу электроники, зачем гоняться.

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

Вейленд придется бэкпортировать на 2.6, да еще и под bionic)) Плюс андроид выкинул какие-то сисколлы, но какие иеменно я пока что не знаю.

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

Кто-то изобрел ImGui?

Типа того, да. Мне всегда концепция имммедиейта нравилась простотой наследования контролов. т.е вот у тебя есть самый базовый контрол - Label, на который можно нажать. Хоб, вот у тебя ещё методы - TextField и Button, которые унаследованы от Label, но добавляют свой функционал. От Button идёт, например, CheckButton/RadioButton и.т.п. И всё это буквально в несколько десятков строк, вместо кучи трушного полиморфизма, 10-ок тянущихся из класса в класс виртуалов и.т.п.

Батарейка в чемодан вместится?

В ведре ещё с первой версии вся отрисовка полностью на GLES, так что время работы не поменяется никак. Более того, если на устройстве нет поддержки 3D-ускорения, использовался собственный софтовый растеризатор libpixelflinger.

На самом деле, отрисовка через глес будет еще меньше кушать т.к будет гораздо эффективнее с точки зрения нагрузки (нарисовать 50-100 полупрозрачных квадов для гпу - задачка расплюнуть, в отличии от процессора).

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

В ведре ещё с первой версии вся отрисовка полностью на GLES, так что время работы не поменяется никак.

Вы же выше пишете про софтовую реализацию.

p.s. Не обязательно мне рассказывать про gles :)

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

Там софтовый рендерер - это скорее древний фоллбек для тех устройств, где еще не было гпу. В 2008м году, на большинстве девайсов все еще не было графических ускорителей. Я знаю как минимум парочку устройств, где его юзали - это китайские смартфоны на MT6516 и порты Android для коммуникаторов на базе TI OMAP850.

Ну и сейчас он остался для целей отладки и разработки - пока у вендора нет нормального драйвера для гпу, можно отлаживать остальные модули, выводя графику программно.

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

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

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

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

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

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

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

Постмаркет не встанет на старые смартфоны. Тут же основная идея в том, чтобы найти применение старых смартфонам.

Походит на сортировку более дешевой крупы, выбирая из нее мусор.

Экономим 10 руб за килограмм на цене, и потом теряем многие человекочасы на сортировку. ПФР client style.

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

Юзание в DIY - гораздо более полезное и интересное применение, чем выбрасывать старых друзей на помойку.

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

sanyo1234
()

А чего на видео в номеронабирателе отсутствуют цифры 4 5 6 ? Они чем-то не угодили разработчику?

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