# Termux Android - [Termux Android](#termux-android) - [Предварительная настройка](#предварительная-настройка) - [Доступ к хранилищу](#доступ-к-хранилищу) - [Обновление пакетов и подключение репозиториев](#обновление-пакетов-и-подключение-репозиториев) - [Установка базового набора пакетов](#установка-базового-набора-пакетов) - [SSH доступ](#ssh-доступ) - [Настройка ZSH с Oh-My-Zsh](#настройка-zsh-с-oh-my-zsh) - [Установка ZSH](#установка-zsh) - [Установка Oh-My-Zsh](#установка-oh-my-zsh) - [Установка плагинов](#установка-плагинов) - [Настройка .zshrc](#настройка-zshrc) - [Внешний вид - плагин PowerLevel10K](#внешний-вид---плагин-powerlevel10k) - [Резервное копирование Termux (backup)](#резервное-копирование-termux-backup) - [Создание резервной копии](#создание-резервной-копии) - [Восстановление из резервной копии](#восстановление-из-резервной-копии) - [Настройка энергопотребления (Android)](#настройка-энергопотребления-android) - [Отключение оптимизации батареи](#отключение-оптимизации-батареи) - [Разрешение фоновой активности](#разрешение-фоновой-активности) - [Увеличение лимита процессов через ADB (Phantom Process Killer)](#увеличение-лимита-процессов-через-adb-phantom-process-killer) - [Подготовка](#подготовка) - [Выполнение ADB-команд](#выполнение-adb-команд) - [Установка графического окружения в Termux - XFCE4](#установка-графического-окружения-в-termux---xfce4) - [Запуск XFCE4 через Termux X11](#запуск-xfce4-через-termux-x11) - [Создание скрипта для быстрого запуска](#создание-скрипта-для-быстрого-запуска) - [Запуск XFCE4 через VNC](#запуск-xfce4-через-vnc) - [Установка VNC сервера](#установка-vnc-сервера) - [Настройка пароля](#настройка-пароля) - [Создание конфигурационных файлов](#создание-конфигурационных-файлов) - [Скрипт для запуска / остановки VNC](#скрипт-для-запуска--остановки-vnc) - [Подключение к VNC с планшета](#подключение-к-vnc-с-планшета) - [Изменение масштаба XFCE4](#изменение-масштаба-xfce4) - [TUR (Termux User Repository)](#tur-termux-user-repository) - [Некторые популярные пакеты в TUR](#некторые-популярные-пакеты-в-tur) - [Установка Firefox](#установка-firefox) - [proot](#proot) - [Установка debian](#установка-debian) - [Установка GUI](#установка-gui) *** **Termux** - эмулятор терминала и среда Linux без необходимости получения root на Android устройстве. - - - Версия из Google Play имеет ряд ограничений, поэтому приложение необходимо устанавливать из F-Droid (рекомендуется) или GitHub. WIKI Termux (открывается через VPN) - Termux:X11 - для отображение графического интерфейса, если будет установлена графическа среда (xfce4, lxqt, kde и т.д.) - ## Предварительная настройка После установки запустить Termux и дождитесь завершения начальной инициализации Для планшета Huawei, Termux в горизонтальной ориентации планшета отображался с широкими боковыми рамками, это решилось в настройках планшета: настройки приложений - App Multiplier - найти в списке Termux и отключить. Эта настройка позволяет в горизонтальном положении иметь 2 окна приложения. В данном случае это только мешает Для увеличения размера шрифта в Termux достаточно изменить масштаб двумя пальцами (раздвинуть). Размер сохранится. ### Доступ к хранилищу После установки Termux необходимо предоставить доступ к хранилищу, иначе он не сможет ничего писать на диск. В консоли termux ```bash termux-setup-storage ``` ### Обновление пакетов и подключение репозиториев ```bash # Обновление списка пакетов pkg update && pkg upgrade # Установка необходимых репозиториев (несмотря на архив на GitHub, они нужны) pkg install root-repo x11-repo # Ещё раз обновляем после подключения репозиториев pkg update && pkg upgrade ``` ### Установка базового набора пакетов ```bash pkg install -y git nano vim curl wget htop tree openssh termux-api termux-tools android-tools ``` ### SSH доступ для разового включения демона ssh ```bash sshd ``` для автозагрузки вместе с Termux ```bash sv-enable sshd ``` демон ssh работает на порту 8022 Для подключения необходимо или задать пароль для пользователя устройства ```bash ❯ whoami u0_a529 ``` или скопировать на устройство публичную часть ключа ```bash mkdir ~/.ssh echo 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL/KY33g1maVDH80bsrfV1bHjkfiYXHu9Xtl3kJc7ofk artem@da2001.ru' >> ~/.ssh/authorized_keys chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys ``` ## Настройка ZSH с Oh-My-Zsh ### Установка ZSH ```bash pkg install zsh -y ``` ### Установка Oh-My-Zsh ```bash sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" ``` Когда появится вопрос о смене оболочки по умолчанию, указать `Y`. ### Установка плагинов ```bash # 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 ```bash nano ~/.zshrc ``` Найти строку `plugins=(git)` и заменить на: ```bash plugins=(git zsh-autosuggestions zsh-syntax-highlighting) ``` **Важно: `zsh-syntax-highlighting` должен быть последним в списке!** Применение настроек ```bash source ~/.zshrc ``` ### Внешний вид - плагин PowerLevel10K ### Резервное копирование Termux (backup) Для создания резервных копий есть встроенный скрипт - #### Создание резервной копии ```bash termux-backup /sdcard/termux-backup-$(date +%Y_%m_%d).tar.xz ``` - `/sdcard` - внутрення память устройства Android #### Восстановление из резервной копии ```bash 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-команд Откройте терминал на компьютере и выполните: ```bash adb devices ``` Если устройство видно как ` device` — всё готово для команд ADB. Если `unauthorized` — разблокируйте экран, подтвердите запрос "Разрешить отладку по USB" (поставьте галочку "Всегда разрешать") после активации отладки и подключения, можно отправлять команды ```bash 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`** ```bash pkg install cmus ``` Для работы графических приложений необходимо настроить - Termux X11 или - VNC: _**Одномоментно может работать что-то одно: X11 или VNC**_ ```bash # Установка XFCE4 pkg install xfce4 xfce4-goodies # Установка Termux:X11 (графический сервер) pkg install termux-x11-nightly # Установка PulseAudio (для звука) pkg install pulseaudio ``` Пакет `xfce4-goodies` включает полезные плагины и приложения для рабочего стола ### Запуск XFCE4 через Termux X11 Способ А: Прямая команда (простой) ```bash termux-x11 :1 -xstartup "dbus-launch --exit-with-session xfce4-session" ``` Способ Б: С флагом для Kirin (рекомендуется для вашего планшета) ```bash termux-x11 :1 -legacy-drawing -xstartup "dbus-launch --exit-with-session xfce4-session" ``` После выполнения команды: Откройте приложение Termux:X11 на планшете Вы должны увидеть рабочий стол XFCE #### Создание скрипта для быстрого запуска Чтобы каждый раз не вводить длинную команду, создайте скрипт в Termux: ```bash 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 ``` Параметры скрипта: - Запуск ```bash x11 up # или просто x11 ``` - Остановка ```bash x11 down ``` - Проверка статуса ```bash x11 status ``` ### Запуск XFCE4 через VNC Альтернатива X11 #### Установка VNC сервера ```bash # Установка TigerVNC сервера pkg install tigervnc -y ``` #### Настройка пароля ```bash # Установка пароля для подключения к VNC vncpasswd ``` #### Создание конфигурационных файлов ```bash mkdir -p ~/.vnc cat > ~/.vnc/config << 'EOF' # VNC конфиг geometry=2456x1540 depth=24 localhost=0 alwaysshared=1 EOF ``` Примечание: 2456x1540 родное разрешение планшета за вычетом строки состояния Android ```bash cat > ~/.vnc/xstartup << 'EOF' #!/bin/bash unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS startxfce4 & EOF chmod +x ~/.vnc/xstartup ``` #### Скрипт для запуска / остановки VNC ```bash 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 ``` Параметры скрипта: - Запуск ```bash vnc up # или vnc start ``` - Остановка ```bash vnc down или vnc stop ``` - Проверка статуса ```bash vnc status ``` #### Подключение к VNC с планшета Как рекомендует официальная документация - установить клиент [VNC Viewer](https://play.google.com/store/apps/details?id=com.realvnc.viewer.android) (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 не может включить все существующие пакеты — некоторые из них слишком нишевые, сложные в сборке или имеют специфические лицензионные ограничения В чём разница между официальным репозиторием и 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 можно посмотреть на официальной странице репозитория — ### Установка Firefox ```bash # Шаг 1: Подключение TUR репозитория pkg install tur-repo # Шаг 2: Обновление списка пакетов (чтобы Termux "увидел" новые пакеты) pkg update # Шаг 3: Установка Firefox pkg install firefox ``` После этого Firefox будет доступен для запуска из XFCE4 *** ## proot Установка ОС в псевдорут окружение используя утилиту `proot` ```bash pkg install proot-distro ``` ### Установка debian ```bash 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 ```bash apt install tigervnc xfce4 xfce4-goodies ``` Звук в ОС proot также не работает. Не вижу смысла дальше разбираться с proot