Meefik's Blog

Freedom and Open Source

Интеграция Linux Deploy с Android

Начиная с версии 1.5.3 в Linux Deploy начаты работы по интеграции GNU/Linux контейнеров с окружением Android. Это открывает следующие возможности:

  • доступ ко всей файловой системе Android;
  • выполнение приложений/команд Android прямо из контейнера (например, getprop, reboot, shutdown);
  • переключение между консолью контейнера и Android (команда unchroot).

Для активации возможности запуска Android-приложений нужно в параметрах разрешить монтирование (Параметры -> Монтирование), а в качестве точки монтирования (Параметры -> Точки монтирования) должен быть добавлен каталог /system (добавлен по умолчанию). После этого нужно нажать кнопку СТАРТ в приложении, чтобы каталог смонтировался в контейнере. Команды из Android будут доступны из консоли контейнера, если их названия не пересекаются с аналогичными в контейнере, либо доступны по полному пути, например /system/bin/ls. Команды reboot и shutdown автоматически переопределены в контейнере и вызывают аналогичные команды из Android.

Если возможностей запуска некоторых команд из Android недостаточно, то можно воспользоваться переключением между консолью контейнера и Android командой unchroot внутри контейнера. Вызов unchroot без параметров открывает sh из Android со всеми его переменными окружения, вызов с параметрами запускает соответствующую команду в Android. Например:

root@THL:/ # linuxdeploy shell
Configuring the container: 
dns ... done 
mtab ... done 
Debian GNU/Linux 8 (jessie) [running on Android via Linux Deploy] 
root@localhost:/# unchroot getprop ro.product.model
thl 5000
root@localhost:/# unchroot
root@THL:/ # ls /data/
...
root@THL:/ # exit
root@localhost:/#

Таким образом, имея доступ к Android прямо из контейнера, можно организовывать более плотную интеграцию запускаемых приложений внутри GNU/Linux контейнеров с системой Android.