Pull to refresh
0
0
Send message

А если генерировать новый класс как nested класс для класса к которому пытаемся получить доступ? Вроде nested классам позволено читать private и package-private поля.

Я бы в список также добавил бы Plasma Mobile, Mobian, UBPorts (Ubuntu Touch), PureOS, PostmarketOS.

Plasma Mobile вроде как развивается, даже есть наработки установки при помощи libhybris на Android-устройства. Насколько мне известно портирована только на Nexus 5X и PinePhone.

UBPorts. Раньше это был Ubuntu Touch, но название сменили после того как ее перестала поддерживать Canonical. Первые прототипы когда Ubuntu работала одновременно с Android выглядели довольно неплохо. Что-то похожее прослеживается и в проекте MaruOS.
Прямо сейчас есть поддержка установки на Treblized устройства, но необходимо пересобрать ядро, попутно пропатчив и включив некоторые опции в конфиге. Работает не слишком стабильно или стабильно на небольшом количестве устройств.

Mobian. Адаптрованный под мобильные устройства Debian. На данный момент работает только на PinePhone, но сейчас несколько умельцев пытаются добавить поддержку устройств с поддержкой Treble. Под него тоже нужно пересобирать ядро.

PostmarketOS. Сами говорят что этот проект создан для того, чтобы дать жизнь старым устройствам. Использует пакетную базу Alpine и имеет свой небольшой репозиторий. Насколько я могу судить до конца смогли портировать систему и завести все устройства только на некоторых телефонах, и это включая PinePhone. Использовать возможности Treble не хотят категорически, пытаются завести все на mainline-ядрах. Учитывая что исходные коды драйверов закрыты работы им еще на годы.

PureOS. Позиционируется как защищенная система. Устройства с предустановленной операционкой компания сама и продает.

По поводу Sailfish и LuneOS ничего особенного сказать не могу.

Я думаю стоит упоминания также такие проекты как MaruOS и Termux.

Termux — по сути приложение под Android, которое выступает в роли терминала для контейнера со своим пакетным менеджером. Контейнер создается самим андроидом и таким образом изолируется от основной системы и доступа к ней не имеет, только через само приложение. Репозиторий пакетов содержит те же пакеты что и любой другой Linux-дистрибутив, но портированные на bionic. Патчи для пакетов восновном содержат исправления для путей, отключение фишек, которые в андроиде не предусмотрены или недоступны (типа pam или аппаратное ускорение видео) или которые эмулируют поведение систем которые гугл заботливо отключил (типа SysV IPC).

MaruOS — по сути стоковый андроид или LineageOS, но с патчами ядра для systemd, включенными LXC, udev и прочими фишками, и патчами для системы, которые позволяют запускать Debian в контейнере. По сути немного напоминает первые прототипы Ubuntu for Android. Аппаратного ускорения нет, картинка, если говорить грубо, передается через программу мост mflinger, которая, выступая в роли Х11-клиента делает скриншоты внутри контейнера и передавать его в Android чтобы потом показать на дисплее. В роли устройств ввода можно использовать подключаемые через переходник USB OTG клавиатуры и мышки, которые потом подхватываются через udev. При таком раскладе в Android'е они отключаются. Но это если активирован Maru Interactive Mode. Система все еще разработке, как впрочем и все остальные.
По идее можно попробовать использовать Droidian (hybris-mobian). Это форк Mobian который использует драйвера андроида, в том числе для мобильной связи. Проект все еще в разработке, но для того чтобы поставить Asterisk его можно использовать уже сейчас. Но для этого придется пересобрать ядро.
Прошу прощения, как-то умудрился пропустить упоминание статьи с источником кода. Похоже что используется обычный bash-скприпт. Насколько я понял inotifywait в прошивке отсутствует. А системный вызов inotify отключен?
Ты сам писал модуль ядра который позволяет книжке прикидываться жестким диском? Как насчет попробовать сделать модуль ядра, который бы прикидывался медленным Displaylink дисплеем? Протокол открытый, драйвер для компа можно взять и udlfb. Тогда книжка сможет даже к телефону подключаться.
По поводу работы без батареи — можно попробовать что-то вроде такого.
Мне понравилось как реализован двусвязный список в libwayland. Если кратко — обычные prev/next, но у первого элемента prev указывает на последний элемент, у последнего next указывает на первый элемент. Что-то вроде кольцевого списка.
Описание структуры, связанный код.
Termux уже работает не только с Public Key. В последних версиях можно поставить пакет openssh (в нем sshd), и потом просто пустить команду passwd. Установленый пароль будет пускать по SSH.
Звук можно вывести даже без драйверов, в связке PulseAudio/Alsa и прогой, которая читает звук из pipe и выводит через OpenSL ES. У меня уже несколько версий лежит. В том числе можно выводить через SimpleProtocol. Есть несколько приложений на Java.

Уже есть версия pulseaudio которая поддерживает вывод через OpenSL ES. Должна компилироваться при помощи Android NDK.
github.com/twaik/pulseaudio-sles-ndk
Возможно и звучит бредово, но похоже на Android. Каждое приложение сидит под своим юзером. У каждого приложения (юзера) ограниченный набор возможностей, которые он получает при установке (юзер заносится в определенные Unix groups). Единственное место, которое можно считать общим для всех приложений — карта памяти, но и для нее нужно разрешение получать. Запускать приложения без установки нельзя (кроме Google Play с его Instant Apps), то есть всякие Амиго и меняльщики стартовых страниц идут мимо.
Эммм… Не могу отредактировать коммент. Там, в описании service systemd должен быть exec /bin/systemd. Или может я то-то не совсем правильно понимаю.
не выйдет и подменить один другим.
А вот это спорное утверждение. Можно пересобрать Android Init и потом в init.rc добавить что-то вроде service systemd /bin/systemd
#class main
oneshot

Когда система загрузится и примонтируется выполнить команду
setprop ctl.start systemd

Тогда запустится systemd. Но андроидовые сервисы похоже нельзя будет запустить/остановить с помощью «start/stop/setprop ctl.start/setprop ctl.stop». Я не знаю, использует ли андроид этот функционал после полной загрузки.
Эта тема конечно хороша, но там нет решения проблемы драйверов.
Можно собрать libhybris, но даже с ним нет никакого способа подружить Xorg андроидом (имеется ввиду с графическим ускорителем, framebuffer, XServer XSDL и VNC не считаются). Glamor пробовали запустить напрямую на EGL, глючит не по-детски. Использование Wayland+Xwayland пока не опробовал, но я слышл что там какие-то проблемы с GLX.
Звук можно вывести даже без драйверов, в связке PulseAudio/Alsa и прогой, которая читает звук из pipe и выводит через OpenSL ES. У меня уже несколько версий лежит. В том числе можно выводить через SimpleProtocol. Есть несколько приложений на Java.
Нет поддержки многих SysV механизмов в ядре, в том числе shared memory, RPC и прочего. Взамен там есть ashmem и binder, но чтобы заменить использовать их в glibc-дистрибутиве придется писать библиотеку, в которой shmget, shmctl и функции RPC будут использовать ashmem и binder.

И таких нюансов очень много. Тем, что уже есть (Linux Deploy, GnuRoot) пользоваться уже можно, но везде выскакивают разные косяки.

Information

Rating
Does not participate
Registered
Activity