LINUX.ORG.RU

Podroid — запуск Linux-контейнеров на Android без root-прав

 , , , ,

Podroid — запуск Linux-контейнеров на Android без root-прав

3

3

Приложение Podroid позволяет пользователю запускать на устройстве под управлением Android облегченную виртуальную машину Alpine Linux с использованием QEMU и предоставляет полностью работоспособную среду выполнения контейнеров Podman со встроенным терминалом.

Приложение для собственной работы использует Termux в качестве эмулятора терминала, Limbo Emulator — основанный на QEMU эмулятор для Android, Podman для запуска контейнера с Alpine Linux.

Из отдельных возможностей: проброс портов из контейнера на реальную Android-систему через SSH.

Приложение для своей работы требует Android 9+ arm64.

Исходный код распространяется по лицензии GNU GPL v2

>>> Подробности на GitHub



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

Мне больше понравился проект где пожертвовали не нативностьью, а полноценностью/изолированностью https://github.com/RuriOSS/rurima/blob/main/doc/USAGE.md

Если смотреть на контейнеры не как на средство изоляции, а как на средство поставки софта который не собран под андроид - это более перспективно

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

Вряд ли там KVM. Его только в самых последних андроидах добавили, это пока ещё экспериментальная технология. Скорей всего userspace эмуляция.

vbr ★★★★★
()

Вот так, с помощью нехитрых приспособлений, смартфон (или телевизор) можно превратить в хост для линукс-контейнеров.

thesis ★★★★★
()

Приложение для своей работы требует Android 9+ arm64.

печаль

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

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

dvrpd
()

Вот это дело)! Действительно нужная вещь, ещё и с андроида 9:)) Да и не просто что-то там, а alpine linux)!

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

Ну тогда kvm не заработает, о чём я и говорю. Насколько я знаю, Google в самых последних пикселях начала давать к нему доступ, причём там из коробки есть возможность виртуалку с линуксом организовать. А до этого таких возможностей не было, ну если не собирать свой ROM.

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

Насколько я понимаю, доступного юзеру /dev/kvm на андроиде не бывает.

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

Чтобы сделать андроид похожим на операционку.

А ведь когда то на штатном самсунг галакси можно было рутануться в 2 клика, переразметить карту памяти, написать fstab и поднять на смартфоне какой нибудь гит-сервер.

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

То что андроид возьмёт и прибьёт его в произвольный момент. А ещё у него и у тебя не будет доступа к ФС. Ну и сервер уже давно написан, его только запустить надо а не переписывать на диалект джавы с меняющимся 2 раза в год апи.

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

То что андроид возьмёт и прибьёт его в произвольный момент

А ты точно разбираешься в программировпнии под андроид? Нет, не прибьет конечно. Что за ерунда. Вот например ты слушаешь музыку плеером, почему андроид не прибывает плеер?

А ещё у него и у тебя не будет доступа к ФС

У плееров под андроид нету доступа к музыке на телефоне. Чудеса!

Ну и сервер уже давно написан, его только запустить надо

Так что это за сервер то? Вот например у меня линукс хостинг на дебиане, который я хочу использовать как git origin. Что конкретно, по-твоему, на нем надо запустить?

с меняющимся 2 раза в год апи.

Ты просто не программист, да? Что ты пишешь

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

андроид возьмёт и прибьёт его в произвольный момент

ssh в термуксе с wake lock’ом прекрасно работает в фоне, можешь сколько влезет там git вертеть.

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

У плееров под андроид нету доступа к музыке на телефоне. Чудеса!

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

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

дык с того момента как на андроиде можно будет запустить докер - начнётся новая эра VPN в частности и ботнетов вообще :)

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

И посадить мобилу в ноль за пару часов, ага. Да и не будет ли оно там задыхаться?

Хотя я так и не понял, зачем сервер xray гонять. Чтобы с этого же девайса к нему подключиться иии… что?

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

Ну а теперь объясни, зачем «гит серверу» понадобится открывать любой произвольный файл на телефоне? Что вы мне тут голову дурите. Он точно также, будет иметь доступ к тому, что ему надо, как и любое приложение ведроида. А прежде всего, как termux, который, прикинь, магическим образом имеет доступ к своему контейнеру с линуксом, и даже запускает оттуда бинари! Фантастика, правда

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

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

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

Теперь у тебя спрошу. Зачем это нужно через докер, и почему это не может делать нативное приложение андроида?

затем, что вот наш «Большой брат» взял курс на то, что будет в андроеды подсаживать spyware (смотри статьи хабр последние 2-3 недели), что будет сливать данные о VPN.

и решений против этого очень немного:

и единственный выход сегодня (если не устраивает первое решение) - носить с собой два смартфона:

  • для большого брата
  • для себя

А были бы контейнеры - было бы и решение чтобы телефон был один.

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

Хотя я так и не понял, зачем сервер xray гонять. Чтобы с этого же девайса к нему подключиться иии… что?

современный мир микросервисный

ставите вы ИИ-агента, он становится локальным сервисом, к которому вы подключаетесь

включаете подсветку синтаксиса в vim — ещё один локальный сервис

и так далее

что плохого в микросервисном решении с vpn?

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

Он точно также, будет иметь доступ к тому, что ему надо, как и любое приложение ведроида

В Android нет такого понятия «то, что надо гит серверу». Понятие мультимедия файла есть, а «то, что надо гит серверу» - нет. Это не просто расширения и ассоциации, это сложнее.

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

Это все легко решается. В андроиде, у каждого приложения есть своя папка для данных, как минимум. Вот туда это все и может быть помещено.

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

Погоди! А что мешает тогда вам встроить «vpn» прямо в нативный для андроида браузер, чтобы он мог подключаться только сам, не давая ничего остальной системе? Ну и сидите с него. Зачем такие сложности, как запуск линукса в полной эмуляции?

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

Погоди! А что мешает тогда вам встроить «vpn» прямо в нативный для андроида браузер, чтобы он мог подключаться только сам, не давая ничего остальной системе? Ну и сидите с него.

кроме того, браузера одного мало, хочется:

  • чтоб приложение ютубчика работало
  • ютубчик-музычки
  • приложение chatgpt
  • приложение такое
  • приложение сякое

и здесь вылезает требование: «нужен vpn в виде сервиса на андроиде».

ок, поставили сервис.

далее Роскомпозор стал обязывать внедрять программы-шпионы во всякие «Яндекс-погоды», «Яндекс-музыки» итп.

Стал вопрос:

  • или нужно уметь изолировать Яндекс-погоду от сервиса vpn - андроед такого не позволяет
  • или нужно научиться жить с тем, что Яндекс-погода «стучит» в Роскомнадзор, сливая данные о твоём VPN (об этом первая статья из ссылки)

были бы контейнеры (или иной способ НАДЁЖНО изолировать приложение Android от приложения Android), то все эти приседания были бы проще.

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

запускает сервер xray, а не клиент к нему.

да. сегодня сервер xray который запускает среднее приложение «VPN для андроида» формирует системный tun или системный же socks-прокси.

И программа-шпион его сливает.

если бы сервер xray работал бы в контейнере, то общаться с ним можно было бы через интерфейс неизвестный/недоступный для приложений, которых сюда не пустили. Например, через socketpair создаваемый в момент их (приложений) запуска. Как-то так

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

Погоди номер 2. А как сабж решит задачу «изолировать приложение андроида от приложения андроида», если он запускает линукс?

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

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

Как приложение ютубчика его найдет?

James_Holden ★★★★★
()

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

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

У вас тут путаница, где сервер, а где клиент.

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

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

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

здесь несколько подзадач:

  • создать VPN вне централизованного андроид понятия VPN (контейнеры бы здесь помогли)
  • пустить в него приложения из списка
  • не пускать в него приложения вне списка
rsync ★★
()
Последнее исправление: rsync (всего исправлений: 1)
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.