Anbox не запускается ubuntu

Обновлено: 02.07.2024

The text was updated successfully, but these errors were encountered:

J-Cake commented Sep 19, 2020

The PPA doesn't work anyway - I'm on 20.04 as well and can't find the repository

jnnks commented Sep 19, 2020

We use snap to distribute the software. It's even included in the issue template.

J-Cake commented Sep 20, 2020

Yes, that's my point. The repository I'm talking about is this one: ppa:morphis/anbox-support. I get 404s and then a complete failure.

jnnks commented Sep 20, 2020

You do not need that repo as your Kernel already has the necessary modules. I am working on an updated version for the documentation.

In the meantime you can use:

to enable them and mount binderfs .

J-Cake commented Sep 20, 2020

Hmm, that hasn't done anything:

Each command's output

jnnks commented Sep 20, 2020

Oh, excuse me, you need sudo , like so:

J-Cake commented Sep 21, 2020

Hmm, still nothing.

suyashmahar commented Sep 21, 2020

I'm also on 20.04 and creating a binderfs directory doesn't work for me either.

@jnnksdev maybe you meant /dev/binder instead of /dev/binderfs ? If I do that, I get hit with another error:

Though the container service seems to be running:

I also had to manually download and copy the android.img to /var/lib/anbox

(I have tried this with both beta and edge versions)

J-Cake commented Sep 21, 2020

@suyashmahar Did you run that under Sudo? I believe @jnnksdev was saying that that's almost a necessity 🤷

suyashmahar commented Sep 21, 2020

Commands for /dev/binderfs? Yes

J-Cake commented Sep 21, 2020

So to clarify, you ran with root?

suyashmahar commented Sep 21, 2020

I just checked on a fresh Ubuntu 20.04 VM.
You do not need to manually mount binderfs if you install Anbox via snap. It is required when compiling from source. Nevertheless mounting it should not break anything.

@J-Cake do you have Secure Boot enabled by chance? You can check witch sudo mokutil --sb-state . If so, please check out the solution suggested in the installation guide.

I also had to manually download and copy the android.img to /var/lib/anbox

That should be done by snap on install. If you're not using snap I would suggest to open a separate ticket.

I have secure boot enabled and am hoping a method exists where I don't have to change this as I'm not entirely comfortable messing with the low level system concerning booting and operating systems.

As such, I'm equally uncertain of signing kernel modules and I'd ask that anything you'd like me to try be thoroughly explained to avoid misunderstandings etc.

suyashmahar commented Sep 21, 2020

@jnnksdev I'm using snap and have secure boot disabled. Maybe I messed something up earlier on my Ubuntu install? I'll try in a VM and see if it works. Though, I have seen couple of threads with the same problem with binderfs, I believe something has changed since kernel v5 and now the binder device is not automatically created.

J-Cake commented Sep 21, 2020

An interesting point, I vaguely remember reading somewhere that the new kernel update brings major changes to certain modules, maybe that has something to do with it?

Update on the situation: Seems like I had multiple versions of anbox installed, both from snap and apt. Running snap run anbox session-manager to force run snap version fixed the issue. Thanks @jnnksdev for all the help and sorry for the confusion.

This comment has been hidden.

jnnks commented Sep 21, 2020

@J-Cake well the easiest solution would be to disable secure boot.
Anbox is a complex piece of software by nature. We are working on improvements for the end user, but some form of complexity will remain for now.

J-Cake commented Sep 21, 2020

Understood, I might try a virtual machine or a spare PC first and let you know how I go

J-Cake commented Sep 26, 2020

So so far I haven't had much luck; my VM was too low-spec to work at all and my spare laptop also had secure boot issues. I'm honestly not familiar enough with Linux and their respective systems yet to debug this on my own, so if you have any other suggestions, that'd be fantastic

jnnks commented Sep 26, 2020

You can turn off secure boot in your laptops BIOS. Maybe give this a try with the spare device.

luciodeco commented Oct 1, 2020

I have just installed (through snap) Anbox on an Asus laptop running ubuntu 20.04 and it doesn't work.
It opens a window, says it's starting and after a minute or two the window closes and that' s all.

jnnks commented Oct 2, 2020

@luciodeco please open another ticket with more details. A minute or two is too long for a kernel module failure and I suspect something else.

I've just gone through some thorough analysis and have confirmed secure boot is not the issue - It persists.

I'm getting similar symptoms to @luciodeco

succeedmr123 commented May 25, 2021

Definitely confirming the issue on Ubuntu 20.04.2 LTS

I just checked on a fresh Ubuntu 20.04 VM.
You do not need to manually mount binderfs if you install Anbox via snap. It is required when compiling from source. Nevertheless mounting it should not break anything.

@J-Cake do you have Secure Boot enabled by chance? You can check witch sudo mokutil --sb-state . If so, please check out the solution suggested in the installation guide.

I also had to manually download and copy the android.img to /var/lib/anbox

That should be done by snap on install. If you're not using snap I would suggest to open a separate ticket.

Here I confirm that 6 seconds, then quit is unrelated to any Secure boot issue, and at least ashmem and binderfs seems to be available in some form on my system.

Followed alll from the post no 1.

binderfs is mounted manually after leaning to differentiate and try all that is it binder kernel 5.8 issue / does it need to be mounted, or DKMS compiled y/n / vs binderfs - (the docs are really scattered - documentation between three sources (it's pretty unnecessary and confusing to keep outdated docs online, under the main webpage, while the users are sifting through that while trying to make the system work at all)

Anyway, it runs for 6 sec with opened window with logo only and it shuts down without any error message

[EDIT_ got some news that it has something to do with EGL renderer etc.. logs will be added]

As this is overview report;

Yes snap edge installation

Ubuntu 20.04.2, kernel ashmem and binderfs are apparently supported etc.

for those interested, got all the logs, ,precise versions and am willing to experiment more than 3 screens of cmdline logs I can copy paste + zips of anbox diag data

Я пытаюсь установить Anbox в своем новом Ubuntu 16.04, получил инструкции с этой страницы, последовали за ним и, похоже, работают, но у меня нет значка в тире, поэтому я подозревал, что установка не завершена, с Synaptic Manager я вижу, что anbox-common & amp; anbox-modules-dkms установлены, но у меня нет значка в тире, поэтому я попытался запустить $ sudo snap install -edge --devmode anbox и получил эту ошибку:

what Я поступаю неправильно? Зачем было отказано в связи? Согласно Anbox, кажется, что это правильная команда для его установки. Заранее спасибо за вашу помощь. ps: Я не знаком с Linux, я больше парень из Windows, пытаясь изучить Linux.

2 ответа

Ubuntu 14.04-18.04

У вас есть ошибка error: cannot install "anbox", потому что anbox не является правильным именем пакета привязки anbox. Правильное имя - anbox-installer. Откройте терминал и введите:

sudo snap install --edge --classic anbox-installer

Запустите сценарий установки anbox-installer.

Это добавит PPA к вашим источникам программного обеспечения, загрузит 406,8 МБ архивов и установит новые пакеты ядра Linux, все это для установки anbox, который в настоящее время является альфа-программным обеспечением. Чтобы увидеть, что происходит во время установки, вы можете посмотреть этот скринкаст:

IMPORTANT: THIS IS ALPHA LEVEL SOFTWARE. EXPECT INSTABILITY AND BUGS .

Я установил Anbox в любом случае в Ubuntu 17.04, а встроенные приложения для Android, включенные в Anbox, были из коробки, хотя ожидаемые ошибки и нестабильность прибыли, как и было обещано.

Перезагрузитесь, чтобы закончить установку anbox.

Введите «anbox» в тире и нажмите значок «Anbox», чтобы запустить Anbox Application Manager. В Диспетчере приложений Anbox вы увидите ряд значков приложений. Нажмите на значок, чтобы запустить его. Android-приложение запустится в новом окне, и вы сможете его запустить.

Anbox не поставляется с предустановленным Google Play Store и даже не имеет установщика пакетов, поэтому единственный способ для установки дополнительных приложений в Anbox через пакет программного обеспечения Ubuntu с именем Android Debug Bridge ( anbox-installer ). Вам необходимо загрузить файл .apk приложения, которое вы хотите установить, открыть терминал, сменить каталог с помощью cd в каталог файла .apk, а затем установить приложение с помощью команды, которая выглядит так:

adb install /path/to/file.apk

Загрузка файла .apk с веб-сайта warez является жалкой угрозой безопасности, однако некоторые приложения позволяют загружать файл .apk с официального сайта приложения, например this screencast ].

Тогда, возможно, приложение установит или, возможно, оно не будет установлено, если для приложения требуются дополнительные зависимости, которые не установлены в вашей операционной системе. Например, WhatsApp требует Java в качестве зависимости. У меня уже установлена ​​Java в Ubuntu 17.04, поэтому я попытался установить WhatsApp.

adb install WhatsApp.apk

Anbox в Ubuntu 17.04

WhatsApp will send an SMS message to verify your phone number. Enter your country code and phone number.

WhatsApp также спрашивает, хотите ли вы предоставить разрешение на доступ к файлам на вашем устройстве, что, на мой взгляд, является еще одним риском безопасности. Я думаю, что это нормально, чтобы предоставить WhatsApp разрешение на доступ к файлам на моем телефоне, но я не хочу предоставлять разрешение на доступ к файлам на моем компьютере. Разрешения - это вопрос фундаментальной важности в Linux. Вы должны быть очень осторожны в предоставлении разрешений для приложения, которое оно еще не имеет по умолчанию, а последний пакет оснастки в Ubuntu 16.04 имеет лучшую поддержку, чем WhatsApp, включая голосовые вызовы Telegram Calls, которые в настоящее время доступны пользователям по всему миру .

Я пытаюсь установить Anbox в мою новую Ubuntu 16.04, используя инструкции с этой страницы. Казалось, что это работает, но у меня нет значка в тире, поэтому я подозреваю, что установка не завершена. С помощью диспетчера пакетов Synaptic я вижу, что anbox-common & anbox-modules-dkms установлены, но у меня нет значка в моем тире, поэтому я попытался запустить

и получил эту ошибку:

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

PS: я не так хорошо знаком с Linux, я скорее парень из Windows, пытаюсь изучать Linux.

1 ответ

Обновить

Anbox имеет>=4 ГБ ОЗУ, рекомендуемые аппаратные требования.

Установщик anbox УСТАРЕЛ.

Установите необходимые модули ядра

Чтобы добавить PPA в вашу систему Ubuntu, выполните следующие команды:

Они добавят PPA в вашу систему и установят пакет anbox-modules-dkms, который содержит модули ядра ashmem и binder. Они будут автоматически перестраиваться при каждом обновлении пакетов ядра вашей системы.

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

Теперь у вас должно быть два новых узла в ваших системах /dev каталог:

Установите оснастку Anbox

Установить оснастку Anbox очень просто:

Чтобы обновить Anbox до более новой версии, вы можете запустить:

Ubuntu 14.04-18.04

Вы получили ошибку error: cannot install "anbox" потому что anbox не является правильным именем пакета оснастки anbox. Пакет anbox snap совместим только с ОС 64-битной архитектуры. Правильное имя - anbox-installer. Откройте терминал и введите:

Запустите скрипт anbox-installer.

Это добавит PPA к вашим источникам программного обеспечения, загрузит 406,8 МБ архивов и установит новые пакеты ядра Linux, и все это для того, чтобы установить anbox, который в настоящее время является альфа-программным обеспечением. Чтобы увидеть, что происходит во время установки, вы можете посмотреть этот скринкаст:

Во время установки вы увидите это предупреждение:

Я все равно установил Anbox в Ubuntu 17.04, и встроенные приложения Android, включенные в Anbox, работали из коробки, хотя ожидаемые ошибки и нестабильность появились, как и было обещано.

Перезагрузитесь, чтобы завершить установку anbox.

Введите "anbox" в Dash и щелкните значок Anbox, чтобы запустить Anbox Application Manager. В диспетчере приложений Anbox вы увидите ряд значков приложений. Нажмите на значок, чтобы запустить его. Приложение Android запустится в новом окне, и вы сможете запустить его.

Anbox не поставляется с предустановленным Google Play Store (хотя вы можете установить его) и даже не имеет установщика пакетов, поэтому единственный способ установить дополнительные приложения в Anbox - через программный пакет Ubuntu под названием Android Debug Bridge (adb).). Вам нужно скачать файл.apk приложения, которое вы хотите установить, открыть терминал, изменить каталоги, используя cd в каталог файла.apk, а затем установите приложение с помощью команды, которая выглядит следующим образом:

Загрузка файла.apk с веб-сайта warez представляет собой жалкую угрозу безопасности, однако некоторые приложения позволяют загружать файл.apk с официального веб-сайта приложения, например WhatsApp Messenger для Android.

Тогда, может быть, приложение будет установлено, или, может быть, оно не будет установлено, если приложение требует дополнительных зависимостей, которые не установлены в вашей операционной системе. Например, WhatsApp требует Java в качестве зависимости. Я уже установил Java в Ubuntu 17.04, поэтому я попытался установить WhatsApp.



Anbox в Ubuntu 17.04

WhatsApp также спрашивает, хотите ли вы дать приложению разрешение на доступ к файлам на вашем устройстве, что, по моему мнению, является еще одной угрозой безопасности. Я думаю, что можно предоставить WhatsApp разрешение на доступ к файлам на моем телефоне, но я не хочу давать приложению разрешение на доступ к файлам на моем компьютере. Разрешения являются вопросом фундаментальной важности в Linux. Вы должны быть очень осторожны с предоставлением разрешений приложению, которого у него еще нет по умолчанию, и последний пакет моментальных снимков telegram в Ubuntu 16.04 имеет лучшую поддержку, чем WhatsApp, включая голосовые вызовы Telegram Calls, которые в настоящее время доступны пользователям по всему миру.,


Начнем с того, что Anbox — не эмулятор. Это система запуска полноценной среды Android прямо на текущем ядре Linux с возможностью вывода интерфейса каждого приложения в отдельном окне с поддержкой 3D-ускорения. Нечто вроде Wine, который запускает приложения Windows без необходимости запуска Windows в виртуальной машине, но без присущих Wine глюков и недоработок.

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

Ставим

В данный момент Anbox поддерживает исключительно процессоры архитектуры x86_64 и дистрибутивы Ubuntu 17.04, 16.10, 16.04, 14.04, а также Linux Mint, Neon и Elementary. Устанавливается либо с помощью самодостаточного пакета формата Snap, либо с помощью скрипта anbox-installer . Но так как оба варианта работают одинаково, а первый менее универсален, рассмотрим только второй.

Ubuntu

Первое, что необходимо сделать, — это загрузить сам скрипт и дать ему права на исполнение:

Далее запускаем скрипт:

Скрипт попросит написать в терминале I AGREE, после чего установит Anbox в систему и предложит перезагрузить машину. После перезагрузки в меню появится пункт Anbox.

Устанавливаем Anbox в Ubuntu

Устанавливаем Anbox в Ubuntu

Реверс малвари

Arch Linux

Anbox можно запустить не только в официально поддерживаемых дистрибутивах, но и в других линуксах, просто собрав его из исходников. Проще всего это сделать в Arch Linux, так как Anbox уже есть в AUR и весь процесс сборки можно автоматизировать.

Установим парочку необходимых для сборки пакетов:

А затем соберем Anbox из AUR. Лучше сделать это с помощью AUR-клиента, такого как pacaur или yaourt:

Далее загрузим необходимые модули ядра:

Запустим container manager:

Запустим session manager:

Готово. Можно кликать по иконке Anbox на рабочем столе или пойти путем джедая и запустить его прямо из терминала:

Пробуем

Сразу после запуска ты увидишь на экране простейший «менеджер приложений», написанный специально для Anbox. Приложений тут кот наплакал: стандартные галерея, календарь, настройки и прочее, а вот маркета нет. И поэтому первое, о чем ты спросишь: а как ставить софт, братан?

Менеджер приложений

Менеджер приложений

И вот здесь начинается интересное. Разработчики Anbox не имеют права включать в поставку своего неэмулятора маркет и любой другой софт Google, в том числе сервисы Google, пока их «устройство» не пройдет сертификацию. Устройство пройти сертификацию не может — маркета не будет.

Но! В Anbox по умолчанию активирован режим отладки с помощью ADB (который в стандартном Android включается в настройках для разработчиков, куда еще надо добраться), поэтому установить приложение можно с его помощью. Установить сам ADB можно так:

А теперь самое интересное: тебе надо найти и скачать пакет APK нужного приложения. Для этого можно использовать сайт apkpure. Далее остается всего лишь выполнить такую команду (пример для FX File Explorer):

FX File Explorer

FX File Explorer

Готово! Ставь приложения, развлекайся, до встречи. Шучу, на самом деле есть множество подводных камней. Например, сразу после установки Anbox я решил протестировать, как в нем работает Opera Mini, тот самый браузер, который умеет быстро отображать странички, даже если интернет до тебя доходит с помощью голубиной почты. Ведь для десктопа его нет.

В результате на экране появилось вот что:

Объяснение этому простое: большая часть кода Opera Mini написана на C++, который скомпилирован в бинарник для платформы ARM. А так как в нашей машине процессор архитектуры x86_64 , Android заботливо прибил приложение еще на этапе установки, чтобы мы не мучились, силясь понять, почему оно не работает.

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

Вторая интересная особенность запуска приложений в отдельных десктопных окнах: далеко не каждое приложение готово смириться с тем, что сейчас его личико будут жестко сжимать или растягивать. Большинство современных приложений в этом случае поведут себя корректно — Google позаботилась об этом, когда готовилась к реализации поддержки плавающих окон в Android 7.0. А вот со старым софтом могут возникнуть сложности, хотя обычно все заканчивается окном фиксированного размера.

Окна можно делать любых размеров и форм

Окна можно делать любых размеров и форм

Ну и третье. Anbox, выражаясь языком Шекспира, — это alpha software, то есть ребята нам как бы говорят: все будет плохо и нестабильно, а о таких вещах, как поддержка определения координат, камера и микрофон, ты можешь забыть. Более того, в некоторых случаях ты можешь забыть и об интернете, а session manager будет время от времени падать, и его придется перезапускать.

Зато! Anbox корректно определяет текущий уровень аккумулятора, размер оперативной памяти и даже жесткого диска (точнее, раздела /home ). Да и в целом работает быстро и не вызывает желания его снести. Количество пожираемой оперативки — всего 448 Мбайт при запущенном менеджере приложений.

Приложения видят весь диск

Приложения видят весь диск

FAQ первопроходца

Можно ли использовать Anbox для запуска проектов в Android Studio?

Да! Причем никаких дополнительных шагов для этого предпринимать не надо. Достаточно выбрать устройство с именем вида emulator-6663 при запуске проекта.

Можно ли получить доступ к файловой системе работающего Android из Linux?

Да, она находится в каталоге /var/lib/anbox/rootfs, но доступна только для чтения. Зато ты можешь просматривать содержимое приватных каталогов приложений (data/data).

Можно ли установить магазин приложений?

Теоретическая возможность установить Google Play Store существует. Для этого необходимо разобрать образ файловой системы Android и интегрировать в него GApps. Однако гораздо проще установить Yandex.Store или любой другой сторонний маркет. Плюс активировать установку из сторонних источников: Settings → Security → Unknown sources.

Как разобрать образ Android Anbox?

А можно ли использовать другой образ Android, например CyanogenMod?

Нет. Есть две причины, почему это сделать нельзя. Первая — это должна быть сборка Android для x86_64 . Вторая — эта сборка должна включать в себя специфические модификации Anbox.

Чем Anbox отличается от Shashlik

Shashlik запускает каждое приложение в эмуляторе. Другими словами, когда ты кликаешь по иконке приложения, запускается эмулятор, в нем — урезанная среда Android, а уже потом стартует приложение. Anbox гораздо более легковесный и производительный.

Как оно работает

В основе Anbox лежит очень простая идея: если Android — это виртуальная машина, работающая поверх ядра Linux, то почему бы не попробовать запустить приложения Android в окружении обычного дистрибутива Linux. Это очевидная идея, и она приходила в голову многим разработчикам с тех пор, как появился порт Android на x86. Некоторые программисты попытались реализовать ее через размещение окружения Android в chroot, но дальше полурабочих концептов дело не доходило (пример: ARC Welder).

У разработчиков Anbox ушло полтора года, чтобы довести проект до конца. Они смогли добиться интеграции приложений Android в десктоп Linux, обеспечить практически полную совместимость, а главное — сделать так, чтобы все это работало быстро, без сбоев и не требовало множества шагов для настройки.

Само окружение Android (на базе свежайшего Android 7.1.1, кстати) здесь замкнуто в песочницу, контролируемую с помощью технологии пространств имен (namespaces), той самой, что лежит в основе Docker. Пространства имен полностью отрезают окружение от среды дистрибутива Linux, а вся работа с оборудованием идет через демон anboxd. Для вывода картинки 3D-приложений используется специальный транслятор OpenGL ES → OpenGL, позаимствованный из официального эмулятора Android.

Ядро Linux также пришлось модифицировать, а точнее добавить в комплект Anbox модули с реализацией binder и ashmem, с помощью которых в Android взаимодействуют компоненты системы (IPC). Перед запуском Anbox загружает модули в ядро и добавляет правило udev для установки корректных прав доступа к устройствам /dev/binder и /dev/ashmem .

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

Все эти технические решения позволяют сделать Anbox действительно быстрым, удобным в использовании и эффективным в плане расходования ресурсов «эмулятором». В том числе в 3D-приложениях.

Anbox состоит из двух компонентов: container manager и session manager.

Container manager управляет песочницами с работающим внутри окружением Android. Его задача — корректно запустить систему Android, поддерживать ее работу и корректно завершить.

Session manager, в свою очередь, отвечает за коммуникацию Android внутри песочницы и с основной системой Linux. Его задача — отвечать на запросы запуска приложений и распределять их по разным окнам.

В целом запуск приложения Android с помощью Anbox выглядит так:

  1. В ядро загружаются модули binder и ashmem.
  2. Запускается container manager, который разворачивает песочницу с Android внутри.
  3. Запускается session manager, он запускает среду Android.
  4. Юзер отдает команду на запуск приложения, которую принимает и обрабатывает session manager.
  5. Session manager ожидает команды.

Шаги 1–3 подготавливают Anbox и запускаются один раз, обычно при загрузке системы.

Такая архитектура позволяет сделать запуск приложений практически моментальным за счет небольшого (порядка 400 Мбайт) оверхеда по памяти в режиме простоя.

Архитектура Anbox

Архитектура Anbox

Выводы

Вне всяких сомнений, Anbox заслуживает внимания. Да, у него есть проблемы с совместимостью, он не умеет работать с твоей камерой и микрофоном, он падает. Но это альфа-версия, и для альфы она работает прекрасно.

Евгений Зобнин

Редактор рубрики X-Mobile. По совместительству сисадмин. Большой фанат Linux, Plan 9, гаджетов и древних видеоигр.

Читайте также: