Установка Termux:API из F-Droid решает главную проблему связки терминала с Android: версия из Google Play давно не обновляется, а пакеты из разных источников конфликтуют по подписи и отказываются работать вместе. Если при установке termux-api вы видите ошибку о несовпадении подписи пакета или команда termux-battery-status возвращает ошибку подключения — причина почти всегда в смешении источников установки.
Ниже разберём, почему именно F-Droid считается правильным источником для Termux и его плагинов, как корректно всё установить с нуля или переехать с версии из Play Market, и какие возможности открывает Termux:API после настройки.
Что такое Termux:API и зачем он нужен
Termux — это эмулятор терминала и среда Linux для Android, не требующая root-доступа. Сам по себе терминал изолирован от системы: он не может напрямую читать SMS, получать данные с датчиков или управлять уведомлениями. Именно эту связку обеспечивает Termux:API — отдельное приложение-плагин, которое выступает мостом между терминалом и системными функциями Android.
После установки плагина в терминале становятся доступны команды семейства termux-*. С их помощью можно автоматизировать действия, которые обычно требуют отдельных приложений: отправить SMS из скрипта, получить координаты GPS, сделать снимок камерой, вывести уведомление или прочитать буфер обмена.
- 📱
termux-battery-status— уровень заряда и состояние батареи в формате JSON; - 📷
termux-camera-photo— съёмка фото с камеры устройства; - 📍
termux-location— получение текущих координат; - 🔔
termux-notificationиtermux-toast— системные уведомления из скриптов; - ✉️
termux-sms-send— отправка SMS прямо из терминала.
Почему устанавливать нужно именно из F-Droid
Версия Termux в Google Play долгое время не обновлялась из-за изменений требований магазина к целевой версии Android SDK. Разработчики проекта официально перенесли публикацию на F-Droid — открытый каталог свободных приложений. Сборка оттуда получает актуальные обновления пакетов и исправления безопасности.
Второй аргумент — подпись пакетов. Android не позволяет обновить приложение, если новая версия подписана другим ключом. Termux, Termux:API и остальные плагины (Termux:Styling, Termux:Widget и другие) должны быть установлены из одного источника, иначе система откажет в установке или плагин не сможет взаимодействовать с терминалом.
⚠️ Внимание: нельзя ставить Termux из Google Play, а Termux:API из F-Droid (или наоборот). Оба приложения обязаны происходить из одного источника. При смешении вы получите либо ошибку установки, либо неработающие API-команды.
Установка Termux и Termux:API из F-Droid
Сначала нужен сам клиент F-Droid. Его нет в Google Play, поэтому установочный APK скачивается с официального сайта проекта F-Droid. После установки клиента дайте системе разрешение на установку приложений из этого источника — Android запросит его при первой попытке.
Дальше порядок такой: в клиенте F-Droid найдите Termux, установите его, затем тем же способом поставьте Termux:API. После этого откройте Termux и обновите пакетную базу — это гарантирует совместимость утилит со свежей сборкой.
pkg update && pkg upgrade
pkg install termux-api
Обратите внимание: пакет termux-api внутри терминала — это набор консольных утилит-обёрток, а сам плагин Termux:API ставится как отдельное Android-приложение. Нужны оба компонента: без приложения команды не найдут системный интерфейс, без пакета — нечем будет вызывать API из терминала.
☑️ Проверка корректной установки Termux
Переход с версии Google Play на F-Droid
Если Termux уже стоит из Play Market, просто поставить версию F-Droid поверх не получится — подписи различаются. Потребуется полное удаление старой сборки вместе со всеми плагинами. Перед удалением сохраните важные данные из домашнего каталога терминала: скрипты, конфигурации, ключи SSH.
Для резервной копии удобно скопировать нужные файлы в общедоступное хранилище. Предварительно выполните termux-setup-storage и выдайте разрешение на доступ к файлам — после этого появится каталог ~/storage с привязками к стандартным папкам Android.
termux-setup-storage
cp -r ~/my-scripts ~/storage/shared/
После копирования удалите Termux и все его плагины, затем установите свежие версии из F-Droid и верните файлы обратно. Пакеты придётся поставить заново — список установленных можно заранее сохранить командой dpkg --get-selections.
⚠️ Внимание: удаление Termux стирает всё содержимое его домашнего каталога, включая установленные пакеты, настройки и скрипты. Убедитесь, что резервная копия действительно записалась в общее хранилище, прежде чем удалять приложение.
Настройка разрешений для Termux:API
Сразу после установки многие команды не сработают: Android требует явных разрешений. Плагин запрашивает их стандартным системным диалогом при первом вызове соответствующей функции, но часть разрешений удобнее выдать заранее через системные настройки приложения.
Также проверьте, что система не «убивает» Termux в фоне. На многих прошивках агрессивная оптимизация батареи прерывает долгие скрипты. Для стабильной фоновой работы полезно удерживать терминал активным через команду termux-wake-lock в начале скрипта.
- 🔋 Доступ к состоянию батареи — обычно работает без дополнительных разрешений;
- 📍 Геолокация — требует разрешения на местоположение;
- ✉️ SMS и контакты — запрашиваются отдельно при первом вызове;
- 📷 Камера и микрофон — выдаются системным диалогом;
- 🔔 Уведомления — на новых версиях Android разрешение запрашивается отдельно.
Популярные команды Termux:API с примерами
Ниже — сводка наиболее востребованных команд. Полный актуальный список всегда можно посмотреть в справке пакета или документации проекта, так как набор функций со временем расширяется.
| Команда | Назначение | Пример вызова |
|---|---|---|
termux-battery-status | Заряд и состояние батареи | termux-battery-status |
termux-notification | Системное уведомление | termux-notification -t "Готово" -c "Скрипт завершён" |
termux-location | Координаты устройства | termux-location -p gps |
termux-clipboard-get | Чтение буфера обмена | termux-clipboard-get |
termux-tts-speak | Озвучивание текста | termux-tts-speak "Привет" |
Практический сценарий: скрипт, который следит за зарядом и сообщает, когда батарея заряжена. Данные возвращаются в JSON, поэтому для разбора удобно поставить jq через pkg install jq.
level=$(termux-battery-status | jq '.percentage')
if [ "$level" -ge 100 ]; then
termux-notification -t "Батарея" -c "Заряд завершён"
fi
Это главное преимущество Termux:API — системные функции Android становятся обычными командами shell, которые комбинируются с cron-подобными планировщиками, ssh-сессиями и любыми скриптами на bash или Python.
Автозапуск скриптов при старте терминала
Установите плагин Termux:Boot из того же F-Droid. После его установки скрипты, размещённые в каталоге ~/.termux/boot/, будут выполняться при загрузке устройства. Плагину требуется разрешение на автозапуск, а на некоторых прошивках — ручное включение в настройках батареи.
Типичные ошибки и их решение
Наиболее частая жалоба — команда termux-* зависает или сообщает, что приложение Termux:API не установлено, хотя оно есть. Почти всегда это конфликт источников: проверьте, что и терминал, и плагин пришли из F-Droid. Второй вариант — не выдано нужное разрешение; откройте настройки приложения Termux:API и проверьте список разрешений вручную.
Ещё одна ситуация — устаревшая версия из Play Market перестала обновлять пакеты, и pkg update выдаёт ошибки репозиториев. Здесь помогает только переход на сборку F-Droid по инструкции выше: репозитории старой сборки со временем прекращают поддержку.
Если команда возвращает пустой результат без ошибки — например, termux-location молчит, — убедитесь, что сама системная функция включена (геолокация активна, датчик доступен), и повторите запрос. API лишь передаёт данные системы, оно не может получить то, чего Android не предоставляет.
Часто задаваемые вопросы
Можно ли установить Termux:API без F-Droid?
Да, сборки публикуются и в виде APK в репозитории проекта на GitHub. Главное условие остаётся тем же: Termux и все плагины должны быть подписаны одним ключом, то есть взяты из одного источника.
Нужен ли root для работы Termux:API?
Нет, базовые функции работают без root. Права суперпользователя расширяют возможности самого Termux, но плагин API использует стандартные системные разрешения Android.
Почему termux-notification не показывает уведомления?
На современных версиях Android уведомления требуют отдельного разрешения. Проверьте настройки приложения Termux и убедитесь, что показ уведомлений разрешён, а фоновая активность не ограничена оптимизацией батареи.
Безопасно ли скачивать F-Droid APK с сайта?
Официальный сайт проекта F-Droid — штатный способ распространения клиента, поскольку в Google Play его нет. Скачивайте установочный файл только с официального ресурса проекта и проверяйте, что браузер не предупреждает о подмене сертификата.
Как обновить Termux:API после установки?
Через клиент F-Droid — он сам уведомит о новых версиях. Консольную часть обновляйте вместе с остальными пакетами командой pkg upgrade внутри терминала.