24 KiB
Termux Android
- Termux Android
Termux - эмулятор терминала и среда Linux без необходимости получения root на Android устройстве.
- https://termux.dev/en/
- https://github.com/termux/termux-app
- https://f-droid.org/packages/com.termux/
Версия из Google Play имеет ряд ограничений, поэтому приложение необходимо устанавливать из F-Droid (рекомендуется) или GitHub.
WIKI Termux (открывается через VPN) - https://wiki.termux.com/wiki/Main_Page
Termux:X11 - для отображение графического интерфейса, если будет установлена графическа среда (xfce4, lxqt, kde и т.д.)
Предварительная настройка
После установки запустить Termux и дождитесь завершения начальной инициализации
Для планшета Huawei, Termux в горизонтальной ориентации планшета отображался с широкими боковыми рамками, это решилось в настройках планшета: настройки приложений - App Multiplier - найти в списке Termux и отключить.
Эта настройка позволяет в горизонтальном положении иметь 2 окна приложения. В данном случае это только мешает
Для увеличения размера шрифта в Termux достаточно изменить масштаб двумя пальцами (раздвинуть). Размер сохранится.
Доступ к хранилищу
После установки Termux необходимо предоставить доступ к хранилищу, иначе он не сможет ничего писать на диск.
В консоли termux
termux-setup-storage
Обновление пакетов и подключение репозиториев
# Обновление списка пакетов
pkg update && pkg upgrade
# Установка необходимых репозиториев (несмотря на архив на GitHub, они нужны)
pkg install root-repo x11-repo
# Ещё раз обновляем после подключения репозиториев
pkg update && pkg upgrade
Установка базового набора пакетов
pkg install -y git nano vim curl wget htop tree openssh termux-api termux-tools android-tools
Настройка ZSH с Oh-My-Zsh
Установка ZSH
pkg install zsh -y
Установка Oh-My-Zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Когда появится вопрос о смене оболочки по умолчанию, указать Y.
Установка плагинов
# zsh-autosuggestions (автодополнение из истории)
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
# zsh-syntax-highlighting (подсветка команд)
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
Настройка .zshrc
nano ~/.zshrc
Найти строку plugins=(git) и заменить на:
plugins=(git zsh-autosuggestions zsh-syntax-highlighting)
Важно: zsh-syntax-highlighting должен быть последним в списке!
Применение настроек
source ~/.zshrc
Внешний вид - плагин PowerLevel10K
Резервное копирование Termux (backup)
Для создания резервных копий есть встроенный скрипт - https://wiki.termux.dev/wiki/Backing_up_Termux
Создание резервной копии
termux-backup /sdcard/termux-backup-$(date +%Y_%m_%d).tar.xz
/sdcard- внутрення память устройства Android
Восстановление из резервной копии
termux-restore /sdcard/backup.tar.xz
Настройка энергопотребления (Android)
Отключение оптимизации батареи
Настройки → Приложения → Termux → Энергопотребление
Выберите Без ограничений
Повторите то же самое для приложения Termux:X11
Разрешение фоновой активности
Настройки → Приложения → Termux → Разрешения
Добавьте разрешение Фоновая активность
Увеличение лимита процессов через ADB (Phantom Process Killer)
Для повышения эффективности энергосбережения Android следит за количеством запущенных процессов и периодически завершает лишние по его мнению. Из-за этого работа Termux может быть не стабильной, т.к. порождает много дочерних процессов, которые Android будет настройчиво завершать.
Такое агресивное поведение Android можно изменить, через adb попробовать увеличить лимит запущенных процессов до максимального значения.
Подготовка
На планшете:
Включите Режим разработчика (Настройки → Об устройстве → нажмите 7 раз на "Номер сборки")
Включите Отладку по USB (Настройки → Для разработчиков)
На компьютере:
Установите ADB (android-tools)
Подключите планшет к компьютеру через USB. На планшете выбрать режим - Передача данных.
Выполнение ADB-команд
Откройте терминал на компьютере и выполните:
adb devices
Если устройство видно как <serial_number> device — всё готово для команд ADB.
Если unauthorized — разблокируйте экран, подтвердите запрос "Разрешить отладку по USB" (поставьте галочку "Всегда разрешать")
после активации отладки и подключения, можно отправлять команды
adb bash "/system/bin/device_config set_sync_disabled_for_tests persistent"
adb bash "/system/bin/device_config put activity_manager max_phantom_processes 2147483647"
adb bash settings put global settings_enable_monitor_phantom_procs false
adb reboot
Планшет перезагрузится. Изменения сохранятся навсегда.
Установка графического окружения в Termux - XFCE4
!! ПОКА не удалось заставить работать звук !!
небольшое дополнение: звук работает в консольном аудиопроигрывателе cmus
pkg install cmus
Для работы графических приложений необходимо настроить
- Termux X11 или
- VNC: https://wiki.termux.com/wiki/Graphical_Environment
Одномоментно может работать что-то одно: X11 или VNC
# Установка XFCE4
pkg install xfce4 xfce4-goodies
# Установка Termux:X11 (графический сервер)
pkg install termux-x11-nightly
# Установка PulseAudio (для звука)
pkg install pulseaudio
Пакет xfce4-goodies включает полезные плагины и приложения для рабочего стола
Запуск XFCE4 через Termux:X11
Способ А: Прямая команда (простой)
termux-x11 :1 -xstartup "dbus-launch --exit-with-session xfce4-session"
Способ Б: С флагом для Kirin (рекомендуется для вашего планшета)
termux-x11 :1 -legacy-drawing -xstartup "dbus-launch --exit-with-session xfce4-session"
После выполнения команды:
Откройте приложение Termux:X11 на планшете
Вы должны увидеть рабочий стол XFCE
Создание скрипта для быстрого запуска
Чтобы каждый раз не вводить длинную команду, создайте скрипт в Termux:
cat > $PREFIX/bin/x11 << 'EOF'
#!/data/data/com.termux/files/usr/bin/bash
case "$1" in
down)
echo "🛑 Останавливаем XFCE и Termux:X11..."
# Убиваем XFCE сессию
pkill -f "xfce4-session" 2>/dev/null
pkill -f "dbus-launch.*xfce4" 2>/dev/null
# Останавливаем X сервер
pkill -9 termux-x11 2>/dev/null
pkill -9 -f "com.termux.x11.Loader" 2>/dev/null
# Удаляем блокировки (ВСЕ возможные пути)
rm -f /data/data/com.termux/files/usr/tmp/.X1-lock 2>/dev/null
rm -f /data/data/com.termux/files/usr/tmp/.X2-lock 2>/dev/null
rm -f /data/data/com.termux/files/usr/tmp/.X11-unix/X1 2>/dev/null
rm -f /data/data/com.termux/files/usr/tmp/.X11-unix/X2 2>/dev/null
rm -rf /data/data/com.termux/files/usr/tmp/.X11-unix/ 2>/dev/null
rm -f /tmp/.X1-lock 2>/dev/null
rm -f /tmp/.X2-lock 2>/dev/null
rm -rf /tmp/.X11-unix/ 2>/dev/null
# Удаляем PID файлы
rm -f ~/.vnc/*.pid 2>/dev/null
# Закрываем окно Termux:X11 через Activity Manager
am force-stop com.termux.x11 2>/dev/null
echo "✅ Termux:X11 остановлен."
;;
up|"")
echo "🚀 Запускаем XFCE и Termux:X11..."
# Останавливаем всё, что могло остаться
pkill -9 termux-x11 2>/dev/null
rm -f /data/data/com.termux/files/usr/tmp/.X1-lock 2>/dev/null
rm -rf /data/data/com.termux/files/usr/tmp/.X11-unix/ 2>/dev/null
sleep 1
# Устанавливаем переменные окружения
export XDG_RUNTIME_DIR=${TMPDIR}
# Запускаем X сервер
termux-x11 :1 -legacy-drawing > /dev/null 2>&1 &
# Ждём создания сокета
timeout=5
while [ ! -e /data/data/com.termux/files/usr/tmp/.X11-unix/X1 ] && [ $timeout -gt 0 ]; do
sleep 1
((timeout--))
done
# Открываем окно Termux:X11
am start --user 0 -n com.termux.x11/.MainActivity > /dev/null 2>&1 &
# Запускаем XFCE
env DISPLAY=:1 dbus-launch --exit-with-session xfce4-session > /dev/null 2>&1 &
echo "✅ XFCE запущен в Termux:X11!"
;;
status)
echo "📊 Статус:"
if pgrep -f "termux-x11" > /dev/null; then
echo " Termux:X11: 🟢 запущен"
else
echo " Termux:X11: 🔴 остановлен"
fi
if pgrep -f "xfce4-session" > /dev/null; then
echo " XFCE: 🟢 запущен"
else
echo " XFCE: 🔴 остановлен"
fi
if [ -e /data/data/com.termux/files/usr/tmp/.X11-unix/X1 ]; then
echo " Сокет X11: 🟢 существует"
else
echo " Сокет X11: 🔴 отсутствует"
fi
;;
help|--help|-h)
echo "Использование: startx [команда]"
echo ""
echo "Команды:"
echo " up - запустить XFCE и Termux:X11 (по умолчанию)"
echo " down - остановить XFCE и Termux:X11, освободить ресурсы"
echo " status - показать статус сервисов"
echo " help - показать эту справку"
;;
*)
echo "❌ Неизвестная команда: $1"
echo "Используйте 'startx help' для списка команд"
exit 1
;;
esac
EOF
chmod +x $PREFIX/bin/x11
Параметры скрипта:
- Запуск
x11 up
# или просто
x11
- Остановка
x11 down
- Проверка статуса
x11 status
Запуск XFCE4 через VNC
Альтернатива X11
Установка VNC сервера
# Установка TigerVNC сервера
pkg install tigervnc -y
Настройка пароля
# Установка пароля для подключения к VNC
vncpasswd
Создание конфигурационных файлов
mkdir -p ~/.vnc
cat > ~/.vnc/config << 'EOF'
# VNC конфиг
geometry=2456x1540
depth=24
localhost=0
alwaysshared=1
EOF
Примечание: 2456x1540 родное разрешение планшета за вычетом строки состояния Android
cat > ~/.vnc/xstartup << 'EOF'
#!/bin/bash
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
startxfce4 &
EOF
chmod +x ~/.vnc/xstartup
Скрипт для запуска / остановки VNC
cat > $PREFIX/bin/vnc << 'EOF'
#!/data/data/com.termux/files/usr/bin/bash
case "$1" in
up|start)
echo "🚀 Запуск VNC на дисплее :1..."
vncserver :1 -geometry 1920x1200 -depth 24 -localhost no
echo "✅ VNC запущен на порту 5901"
;;
down|stop)
echo "🛑 Полная остановка VNC..."
# Убиваем процессы VNC
vncserver -kill :1 2>/dev/null
vncserver -kill :2 2>/dev/null
pkill -9 Xvnc 2>/dev/null
# Удаляем блокировки (ВСЕ возможные пути)
rm -f /data/data/com.termux/files/usr/tmp/.X1-lock 2>/dev/null
rm -f /data/data/com.termux/files/usr/tmp/.X2-lock 2>/dev/null
rm -f /data/data/com.termux/files/usr/tmp/.X11-unix/X1 2>/dev/null
rm -f /data/data/com.termux/files/usr/tmp/.X11-unix/X2 2>/dev/null
rm -rf /data/data/com.termux/files/usr/tmp/.X11-unix/ 2>/dev/null
rm -f /tmp/.X1-lock 2>/dev/null
rm -f /tmp/.X2-lock 2>/dev/null
rm -rf /tmp/.X11-unix/ 2>/dev/null
# Удаляем PID файлы
rm -f ~/.vnc/*.pid 2>/dev/null
echo "✅ VNC полностью остановлен, все блокировки удалены"
;;
status)
echo "📊 Статус VNC:"
vncserver -list
;;
restart)
echo "🔄 Перезапуск VNC..."
$0 down
sleep 2
$0 up
;;
*)
echo "Использование: vnc [up|down|restart|status]"
echo ""
echo " up - запустить VNC"
echo " down - полностью остановить VNC (с очисткой)"
echo " restart - перезапустить VNC"
echo " status - показать статус"
;;
esac
EOF
chmod +x $PREFIX/bin/vnc
Параметры скрипта:
- Запуск
vnc up
# или
vnc start
- Остановка
vnc down
или
vnc stop
- Проверка статуса
vnc status
Подключение к VNC с планшета
https://wiki.termux.dev/wiki/Graphical_Environment
Как рекомендует официальная документация - установить клиент VNC Viewer (developed by RealVNC Limited)
Создать новое подключение
Адрес: 127.0.0.1:5901
Качество (Picture quality): High
Указать пароль
Изменение масштаба XFCE4
На экране 11,5' и разрешением 2456x1540, элементы рабочего стола будут очень мелкими.
Изменение Масштаба в настройках экрана не работает.
Изменение DPI влияет только на шрифты.
Помогло: Setting - Appearance - Settings - Windows Scaling - 2x
Масштаб увеличится в 2 раза. Стало даже немного крупнее чем хотелось.
TUR (Termux User Repository)
TUR — это пользовательский репозиторий Termux, созданный по аналогии с AUR в Arch Linux. Он существует, потому что официальный репозиторий Termux не может включить все существующие пакеты — некоторые из них слишком нишевые, сложные в сборке или имеют специфические лицензионные ограничения
https://github.com/termux-user-repository/tur
В чём разница между официальным репозиторием и TUR?
| Характеристика | Официальный репозиторий | TUR |
|---|---|---|
| Поддержка | Разработчики Termux | Сообщество |
| Пакеты | Только проверенные и одобренные | Практически любые, включая Firefox, Chromium, VSCode |
| Установка | pkg install <имя> | pkg install tur-repo → затем pkg install <имя> |
| Надёжность | Высокая (строгий контроль качества) | Средняя (пакеты собираются сообществом) |
Некторые популярные пакеты в TUR
| Пакет | Команда установки | Что это |
|---|---|---|
| Firefox | pkg install firefox | Браузер |
| Chromium | pkg install chromium | Браузер от Google |
| VS Code (code-oss) | pkg install code-oss | Редактор кода без телеметрии Microsoft |
| VLC | pkg install vlc | Медиаплеер |
Полный список пакетов TUR можно посмотреть на официальной странице репозитория — https://repology.org/repository/tur
Установка Firefox
# Шаг 1: Подключение TUR репозитория
pkg install tur-repo
# Шаг 2: Обновление списка пакетов (чтобы Termux "увидел" новые пакеты)
pkg update
# Шаг 3: Установка Firefox
pkg install firefox
После этого Firefox будет доступен для запуска из XFCE4
proot
Установка ОС в псевдорут окружение используя утилиту proot
pkg install proot-distro
Установка debian
proot-distro login debian
proot-distro login debian
adduser da2001
apt update && apt upgrade -y
apt install -y mc tree tmux git htop vim sudo curl wget jq
echo "da2001 ALL=(ALL:ALL) ALL" > /etc/sudoers.d/da2001
chmod 440 /etc/sudoers.d/da2001
visudo -c -f /etc/sudoers.d/da2001
dpkg-reconfigure tzdata
Установка GUI
apt install tigervnc xfce4 xfce4-goodies
Звук в ОС proot также не работает. Не вижу смысла дальше разбираться с proot