Общеизвестно, что Android и Linux – в каком-то смысле родственники. Во всяком случае, массовое убеждение именно такое. В реальности всё чуть сложнее: самая популярная мобильная ОС использует лишь ядро Линукса. А это значит, что прямой совместимости «из коробки» (насколько про обе системы вообще можно так говорить) не существует. Впрочем, когда нам нужен эмулятор Android для Linux, общее происхождение начинает играть свою роль.

В эмуляторах для Windows мы фактически запускаем виртуальную машину с Андроидом, которая требует уйму ресурсов на выполнение. В среде Линукс интеграция теоретически возможна на другом уровне: вместо отдельной «песочницы» система запускает мобильную платформу прямо на текущем ядре, благо менять его не особо и надо. Приложения при этом так упаковываются, что их можно выводить наружу в отдельных окнах. Более того: в них можно задействовать даже аппаратное 3D-ускорение, что выводит пользовательский опыт за границы скучноватых «песочниц». Для пользователя это означает, что приложения не будут тормозить, а ресурсы системы никто не будет расходовать зря.

На сегодня существует несколько реализаций запуска Android-приложений в Линуксе (считая официальный эмулятор от Google – The ARC Welder , сделанный как расширение для Chrome). Однако полноценная Android-среда в Linux появилась только в 2017 году. Это чудо называется Anbox и совместимо только с x86/64-процессорами, а также только с дистрибутивами Ubuntu (строго редакций 17.04, 16.10, 16.04, 14.04), Linux Mint, Neon и Elementary.

Установка Anbox

Сам по себе Anbox предлагается в виде автономного установочного пакета Snappy или в виде удалённого инсталлятора в репозитории, установить который можно путём запуска скрипта. Так, например, в Ubuntu это делается следующим образом:

  1. Загрузите скрипт:

$ wget https://raw.githubusercontent.com/anbox/anbox-installer/master/installer.sh -O anbox-installer


Дайте скрипту права, нужные для установки программы:

$ chmod +x anbox-installer

  1. Запустите скрипт:

$ sudo ./anbox-installer

  1. Если терминал попросит вас набрать в строке консоли «I AGREE» , сделайте это.

Когда установка закончится, перезагрузите компьютер. Скорее всего, система сама предложит вам это сделать. Если всё прошло благополучно, то после перезапуска в вашем меню появится пункт «Anbox».

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

Если вы предпочитаете скачать Snap-пакет, то команда для инсталляции будет такой:

sudo snap install --classic anbox-installer && anbox-installer

Затем введите цифру 1 и нажмите Enter, потом впечатайте « I AGREE» и подтвердите действие.

Установка приложений в Anbox

Эмулятор (ну хорошо, строго говоря – упаковщик, но для большинства он всё же эмулятор Андроид для Линукс) предназначен для запуска приложений. Так? В Google так не считают. «Корпорация добра» отказывается авторизовать устройства, если те не имеют сертификации. А наш Anbox – вообще не устройство, так что сертификацию он не пройдёт даже теоретически.

Тем не менее способ устанавливать приложения в Anbox есть. Дело в том, что, как и любое «железное» Android-устройство, Anbox имеет режим отладки по ADB, и он изначально активен. Осталось только установить набор команд ADB в саму систему. Для Ubuntu это можно сделать следующим запросом в терминал:

$ sudo apt-get install android-sdk-platform-tools

В число этих самых «Android SDK Platform Tools» входит и ADB.

После этого вам остаётся только скачивать установочные файлы нужных приложений. Ресурсов для этого огромное количество: от глобального apkmirror, до всем известного форума из цифры и трёх букв.

Запомните адрес, куда скачиваете файлы (допустим, Downloads). В Убунту команда для запуска приложений выглядит в общем случае так:

$ adb install ~/Downloads/filename.apk

Вместо filename.apk нужно подставить имя файла приложения.

Таким образом Android-приложения будут запускаться в оконном режиме. Разумеется, производительность зависит от параметров системы, но в целом приложения будут работать достаточно быстро.

Особенности работы Android-приложений под Anbox

Хотя благодаря линуксовому ядру кажется, что проблем быть не должно, на самом деле нюансов предостаточно. Отметим следующие:

  • К управлению привыкать особо не придётся. Кнопка «назад» имитируется с помощью клавиши Esc, а вместо жестов по экрану можно пользоваться мышью.
  • Если приложение в принципе не поддерживает x86/64, то запустить его не получится. Это обратная сторона отказа от виртуальной машины.
  • Буфер обмена интегрируется с основной ОС. Увы, интеграции на более высоком уровне пока нет.
  • Существуют рецепты по интеграции Play Market в образ Android. Если вы им последуете, то с помощью Anbox сможете получить куда более функциональное решение. Но можно поступить проще и установить в обычном режиме сторонний магазин приложений.

Запуск Linux на Android возможен! И для этого не нужно устройство с root-правами: всё необходимое ПО доступно в официальном магазине Google Play. Всего за 10–15 минут вы сможете получить операционную систему, отличающуюся от Android расширенной функциональностью.

Примечание: если вы последуете нашей инструкции, ОС Linux будет запущена в виртуальной среде. Android будет по-прежнему работать в фоновом режиме. Назвать такую систему полноценной было бы неверно. Тем не менее со списком стандартных задач она справляется хорошо.

Перед установкой закройте все ненужные приложения и очистите оперативную память Android-девайса.

1. Из магазина Google Play установите GNURoot Debian и XServer XSDL.

2. Перед началом установки Linux убедитесь, что ваш девайс подключён к стабильной сети Wi-Fi. Запустите GNURoot. Начнётся загрузка необходимых пакетов среды.

Установка занимает от 30 секунд до нескольких минут в зависимости от скорости вашего интернет-подключения. Не обращайте внимания на бегущие строки до появления следующей надписи:

root@localhost:/#

Знакомых с понятием « » эта строка пусть не пугает: приложение не причинит никакого вреда устройству, поскольку работает в «песочнице».

3. Введите следующую команду:

apt-get update

Дождитесь окончания загрузки пакетов. Об этом скажет строчка Reading package lists…Done.

4. Теперь введите ещё одну строчку:

apt-get upgrade

На вопрос «Do you want to continue?» введите английскую букву Y и нажмите Enter. Начнётся установка пакетов.

В этот раз процедура установки займёт немного больше времени. Терпеливо ожидайте окончания инсталляции до появления заветной строки:

root@localhost:/#

Среда Debian Linux установлена, и теперь можно перейти к разворачиванию графической оболочки.

5. Установка всех пакетов дистрибутива Linux выполняется следующей командой:

apt-get install lxde

Есть и вариант установки ядра системы с использованием строки:

apt-get install lxde-core

Подтвердите установку, повторно введя Y и нажав на клавишу Enter. Начнётся процедура загрузки пакетов.

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

6. Для завершения установки операционной системы необходимо загрузить три дополнительные утилиты:

  • XTerm - для доступа к терминалу из графической оболочки Linux;
  • Synaptic Package Manager - для управления пакетами apt и загрузки приложений;
  • Pulseaudio - для установки драйверов звука.

Все три утилиты устанавливаются с помощью одной команды терминала GNURoot:

apt-get install xterm synaptic pulseaudio

На устройство будет загружено около 260 МБ данных.

7. Теперь сверните приложение GNURoot и откройте ранее установленное XServer XSDL. Согласитесь с загрузкой дополнительных шрифтов. После окончания установки несколько раз тапните по экрану (приложение предложит выбрать разрешение и размер шрифтов - тут всё зависит от ваших предпочтений), пока не увидите заставку с синим фоном и белым текстом.

Повторно запустите GNURoot и поочерёдно введите следующие две команды:

export DISPLAY=:0 PULSE_SERVER=tcp:127.0.0.1:4712
startlxde &

Последовательность дальнейшего перезапуска системы (когда вы захотите открыть Linux повторно) выглядит так: запускаете XServer XSDL и ждёте появления синего экрана, открываете GNURoot и вводите две указанные выше команды, возвращаетесь к XServer XSDL.

Если терминал ругается на недопустимую команду, вернитесь к пункту 5 данной инструкции и попробуйте установку «голого» ядра. Проверьте состояние памяти Android-устройства.

8. Теперь откройте XServer XSDL, подождите несколько секунд - и перед вами готовая к работе Linux.

Для установки приложений в нижнем левом углу откройте меню Start и выберите Run. Введите Synaptic и нажмите Enter.

В открывшемся окне воспользуйтесь поиском и установите нужные приложения. Это может быть браузер Firefox, редактор изображений GIMP, офисный пакет Libre и прочие совместимые с Linux программы.

Разумеется, такой вариант установки Linux нельзя назвать полноценным запуском операционной системы на Android. Виртуальная Linux имеет несколько ограничений, но при использовании беспроводных мыши и клавиатуры (возможно и подключение с помощью OTG-переходника и USB-хаба) вы сможете превратить смартфон или планшет в портативный компьютер с функциональностью взрослой ОС.

Сегодня речь пойдет о запуске Android приложений на Linux системе без использования эмулятора.

Anbox

  • Что такое Anbox?
  • Менеджер приложений
  • Чем отличается от Shashlik
  • Как работает Anbox

Что такое Anbox?

Анбокс - это что-то типа вайн, только для запуска андроид-приложений. Анбокс использует технологию контейнеризации, что позволяет запускать приложения на железе и ядре хоста с производительностью сравнимой с нативной. Для запуска приложений используются контейнеры LXC и (пока что) модули ядра, собираемые через DKMS.

От других эмуляторов отличается хорошей производительностью, опенсурсностью (ЖПЛв3), наличием под онтопиком и неплохой интеграцией с хостом. Ну как, интеграция с хостом определённо превосходит любые решения с ВМ и почти так же хороша, как в ARC.

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

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

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

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

$ sudo apt-get install android-sdk-platform-tools // Ubuntu $ sudo pacman -S android-tools // Arch Linux

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

$ adb install ~/Downloads/File Explorer_v5.1.1.0_apkpure.com.apk FX File Explorer

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

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

$ adb install ~/Downloads/Opera Mini fast web browser_v24.0.2254.115689_apkpure.com.apk Failed to install /home/j1m/Downloads/Opera Mini fast web browser_v24.0.2254.115689_apkpure.com.apk: Failure

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

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


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

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


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

FAQ Anbox

Как нажать кнопку «Назад» и мотать страницы?

Кнопка «Назад» эмулируется с помощью Esc. Клавиатуру также можно использовать для навигации по приложению (Tab и стрелки). Промотка либо колесиком, либо удержанием левой кнопки мыши и движением вниз-вверх.

Можно ли использовать 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?

Очень просто:
$ sudo apt-get install squashfs-tools // Ubuntu $ sudo pacman -S squashfs-tools // Arch Linux $ unsquashfs -f -d /куда/распаковывать /var/lib/anbox/android.img

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

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

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

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

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

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

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

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

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

Каждое приложение в своем собственном окне Anbox размещает с помощью модифицированного композитного менеджера hwcomposer, который Android использует для наложения графических слоев. Hwcomposer запрашивает все слои каждого приложения и отдает их 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–4 подготавливают Anbox и запускаются один раз, обычно при загрузке системы.

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


Выводы

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

Совершенно случайно, бродя по Интернету, обнаружил второй способ запуска Android — приложений под любую операционную систему . Все что понадобится — установленный Google Chrom или, как у меня — Chromium с установленным расширением под названием ARC Welder . Метод работает в любом дистрибутиве и в Windows. Ранее на нашем ресурсе рассматривался другой . Недостаток описаного ниже перед ним — отсутствие поддержки Play Marketa.

Данное расширение — всего-лишь попытка Google предложить разработчикам программного обеспечения под Android простого и доступного на любой ОС набора инструментов для создания и тестирования приложений для мобильных устройств. Несмотря на такую цель — расширение находится в широком доступе и доступно всем желающим. Все достаточно просто:

Запускаем Google Chrom\Chromium, в главном меню-настройки-расширения ищем и устанавливаем ARC Welder:

2. В главном меню у меня отдельной группой приложений (Linux Mint 17.3 Cinnamone) появился пункт ARC Welder. В Вашем дистрибутиве поищите в группе «Интернет», к примеру. Запускаем:

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

Все, теперь достаточно скачать в Интернете любой файл с расширение.apk и добавить его. Маркет, как сказано выше-не работает, и это, как по-мне — самый серьезный недостаток.Ну, приложение еще спросит про папку для хранения своих данных. Папка должна иметь права на запись.

Настройки ARC Welder позволяют выбрать портрет/ландшафт — вариант изображения, разрешение и выключить\ включить буфер обмена. На сегодня в расширении эмулируется режим Android 4.4.

В общем, все как всегда в Линукс — предельно просто. Если Вам не нужен Play Market, используйте данный метод. Нужен — есть

Хорошего Вам дня.

2016-06-22T14:20:26+00:00 admin Администрирование Гаджеты Дистрибутивы Другие приложения Интернет Статьи Утилиты Android,ARC Welder,Chrome,Chrome OS,Chromium,gadgets,gadjets,Google,Google Chrome,Play Market,Гаджеты,мобильные приложения,Мобильные устройства,Новости Дистрибутивов,Руководства,Хаки,Эмуляторы

Совершенно случайно, бродя по Интернету, обнаружил второй способ запуска Android - приложений под любую операционную систему. Все что понадобится - установленный Google Chrom или, как у меня - Chromium с установленным расширением под названием ARC Welder . Метод работает в любом дистрибутиве и в Windows. Ранее на нашем ресурсе рассматривался другой...

[email protected] Administrator Самоучитель LINUX

Существует масса эмуляторов Android для всех возможных операционок. Худшие из них еле тащатся, лучшие работают быстро, а иногда даже позволяют поиграть. Вторые обычно доступны только для Windows, а в Linux работают так себе. Но сегодня на улице линуксоидов праздник: у нас появился способ запускать приложения Android прямо в Linux, без всякой эмуляции, тормозов, каждое в отдельном окошке с возможностью изменения размера. Встречай: Anbox - лучший способ запуска приложений Android на десктопе.

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

У разработчиков 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 заслуживает внимания. Да, у него есть проблемы с совместимостью, он не умеет работать с твоей камерой и микрофоном, он падает. Но это альфа-версия, и для альфы она работает прекрасно.