proot-distro
Два маршрута, из которых вы выбираете один:
| Критерий | Штатный Linux Terminal | Termux + proot-distro |
|---|---|---|
| Что это | Виртуальная машина с Linux внутри Android | Linux-окружение в пользовательском пространстве, без виртуализации |
| Нужен root | Нет | Нет |
| Нужна поддержка виртуализации SoC | Да | Нет |
| Дистрибутив | Предустановленный (сменить — сверьтесь с документацией) | Debian, Ubuntu и другие через `proot-distro` |
| Где взять | «Параметры разработчика» | F-Droid |
Что сделать: подключить телефон по ADB и снять три параметра — архитектуру, версию Android и наличие /dev/kvm (устройство ядра, через которое приложения получают доступ к аппаратной виртуализации).
Зачем: если виртуализации нет, переключатель Linux Terminal в настройках не появится вообще, и вы не будете тратить время на поиск «пропавшего» пункта меню.
Как проверить: выполнить на компьютере:
adb devices
adb shell getprop ro.product.cpu.abi
adb shell getprop ro.build.version.release
adb shell ls -l /dev/kvm
Ожидаемый вывод:
List of devices attached
<RANDOM_SERIAL> device
arm64-v8a
15
crw-rw---- 1 system kvm 10, 232 2025-01-01 00:00 /dev/kvm
device в первой колонке — телефон авторизован.arm64-v8a — 64-битная архитектура, обязательная для ВМ./dev/kvm присутствует — виртуализация доступна.Если вместо последней строки вы видите ls: /dev/kvm: No such file or directory, аппаратная виртуализация недоступна или скрыта прошивкой. Окончательный ответ всё равно даёт экран настроек из Шага 2 — некоторые прошивки не показывают узел приложениям, но ВМ запускают.

Что сделать: открыть «Настройки» → «Система» → «Для разработчиков» → пункт вида «Linux development environment» / «Терминал Linux» (формулировка зависит от прошивки) → «Установить». Дождаться загрузки образа и открыть появившееся приложение «Терминал».
Зачем: при первом запуске Android скачивает образ дистрибутива, распаковывает его и поднимает виртуальную машину. Только после этого внутри появляется оболочка, apt и сеть.
Как проверить: в окне терминала выполнить:
whoami
cat /etc/os-release
uname -r
sudo apt update
sudo apt install -y curl git python3
Ожидаемый результат: whoami печатает имя вашего пользователя внутри ВМ (не root), cat /etc/os-release выводит строки PRETTY_NAME=... и ID=... с названием дистрибутива, apt update заканчивается строкой Reading package lists... Done. Если sudo в вашей сборке недоступен, выполните те же команды без него — это зависит от конфигурации образа, сверьтесь с документацией.
Почему это работает: терминал внутри ВМ — обычный Linux-пользователь с правами на установку пакетов, поэтому apt ведёт себя так же, как на сервере.
Вариант Б — если пункта в настройках нет. Используйте Termux: он работает без виртуализации, подробный разбор — в гайде Как запустить Linux на Android без root: Termux, PRoot и ИИ-инструменты. Короткая последовательность:
pkg update && pkg upgrade -y
pkg install proot-distro -y
proot-distro install debian
proot-distro login debian
Внутри Debian — тот же apt update. Проверка: приглашение строки меняется на root@localhost:~#, значит вы вошли в контейнер.

Что сделать: прогнать три проверки — версия интерпретатора, сеть и свободное место.
Зачем: установка может «зависнуть» на этапе распаковки, и внешне всё будет выглядеть нормально, пока вы не попробуете что-то запустить.
Как проверить:
python3 --version
curl -sI https://example.com | head -n 1
df -h /
Ожидаемый вывод:
Python 3.x.x
HTTP/2 200
Filesystem Size Used Avail Use% Mounted on
/dev/root 10G 2.1G 7.9G 21% /
Python 3.x.x — пакет установлен и запускается.HTTP/2 200 — сеть из ВМ работает.Avail — положительное число гигабайт.Чек-лист приёмки:
uname -r печатает версию ядра без ошибокapt update завершается Reading package lists... Donecurl -sI https://example.com возвращает код 200df -h / показывает свободное местоПроблема. ADB не видит телефон
error: no devices/emulators foundadb kill-server
adb start-server
adb devices
Если после этого в списке появилось unauthorized — разблокируйте телефон и нажмите «Разрешить» в диалоге.
Проблема. Termux не находит пакет
E: Unable to locate package proot-distropkg update && pkg upgrade -y
pkg install proot-distro -y
Проблема. apt внутри Linux-окружения блокируется
E: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 1234 (apt)apt ещё работает или был прерван закрытием окна терминала.ps aux | grep -i apt
sudo kill <PID>
sudo dpkg --configure -a
sudo apt update
Вы проверили поддержку виртуализации, развернули Linux-окружение и подтвердили работу сети, apt и Python тремя командами. Дальше имеет смысл поставить SSH-сервер внутри ВМ и подключиться к нему с компьютера, а инструменты разработки и ИИ-приложения для Android подобрать по каталогу гайдов.
Нужен ли root, чтобы включить Linux Terminal на Android?
Нет. Штатный терминал работает как виртуальная машина поверх системы, а Termux с proot-distro — в пользовательском пространстве; в обоих случаях root не требуется.
Почему на моём Snapdragon нет пункта «Linux development environment»?
Поддержка виртуализации зависит не только от серии чипа, но и от модели устройства и версии прошивки. Проверьте наличие /dev/kvm командой из Шага 1 и, если его нет, используйте Termux.
Чем штатный Linux Terminal отличается от Termux?
Терминал запускает отдельную ВМ с предустановленным дистрибутивом и требует виртуализации, Termux работает в общей среде Android и позволяет ставить разные дистрибутивы через proot-distro.
Можно ли поставить другой дистрибутив вместо предустановленного?
В Termux — да, список доступных вариантов выдаёт proot-distro list. Для штатного терминала возможность смены образа зависит от версии Android — сверьтесь с документацией.