Termux is a free and open-source terminal emulator for Android which allows for running a Linux environment on an Android device. Termux installs a minimal base system automatically; additional packages are available using its package manager, based on Debian's. [2]
Most commands available in Linux are accessible in Termux, as well as built-in Bash commands. There are several other shells available, such as Zsh and tcsh.[3]
Overview[edit]
Packages are cross-compiled with Android NDK and have compatibility patches to get them working on Android. Since all files are installed in the application directory, rooting is not required.[4]
There are more than one thousand packages available, and users can submit requests for new ones. Alternatively, packages can be compiled from source, as Termux supports a variety of build tools including CMake, Meson, GNU Autotools, as well as compilers for C++, Rust, Go, Swift, and other programming languages. Termux can also install interpreters for languages like Ruby, Python, and JavaScript.
Terminal-based text editors such as Emacs and Vim can be installed. It is also possible to execute GUI applications in Termux by using a VNC server and installing a desktop environment (Xfce, LXQt, MATE) or window manager.[5]
User interface[edit]
Termux's user interface is fairly simple, only displaying the extra keys row and the terminal output. Color scheme and font can be changed through Termux: Styling.
The extra-keys row can also be customized. Users can add more function keys and controls by editing ~/.termux/termux.properties
.
Termux has mouse/touch support which can be used to interact with programs such as htop and other ncurses-based applications. Scrolling is done by swiping up or down in the terminal buffer.
Configuration[edit]
Users configure Termux by editing ~/.termux/termux.properties
.
Add-ons[edit]
Termux also includes 7 add-ons:
Termux:API: exposes Android functionality to CLI applications
Termux:Styling: allows changing the color scheme and font of the terminal
Termux:Boot: executes Termux commands at boot
Termux:GUI: allows for some Termux apps to have a GUI using default Android resources; does not work with X11/Wayland apps
Termux:Widget: lets users run scripts in a dedicated widget or a shortcut in the Home screen
Termux:Float: runs terminal session in a floating window
Termux:Tasker: integrates Tasker with Termux
Add-ons must be installed from the same source as the application so that the same User ID is used.
History[edit]
Termux was initially released in 2015. Support for requesting packages and features was added through GitHub issues in the app's repository. People can also contribute to the project by adding new features and packages.
In January 2020, the Termux development team ended support for devices running Android 5-6, making Android version 7 the minimum OS requirement.
Termux v0.101
was the last version to be updated in the Google Play Store. Since November 2020, Google Play has enforced apps targeting API level 29, which breaks the execution of binaries in private application directories. According to Google:
Untrusted apps that target Android 10 cannot invoke
exec()
on files within the app's home directory. This execution of files from the writable app home directory is a W^X violation. Apps should load only the binary code that's embedded within an app's APK file.[6]
The Termux development team suggests moving to F-Droid in order to continue getting updates, as F-Droid does not impose such restrictions. It is also possible to download APK files from the project's GitHub repository.
In May 2021, Bintray, which had been the primary host for the Termux packages, shut down its services.[7] Termux migrated to Hetzner, another hosting service.[8]
Installation[edit]
The installation process extracts the bootstrap archive from the APK file, sets correct permissions for the executable, and sets up directories like the home directory.
Package management and distribution[edit]
Packages in Termux are installed through the application's package manager (pkg
) and use the .deb format. However, normal Debian packages cannot be installed as Termux is not FHS compliant.[9] Users can also build and submit packages.
Package availability[edit]
Termux has more than 1000 packages available as of 2021.
Package repositories[edit]
Termux has 3 repositories available. Repositories included in the default Termux bootstrap installation include:
main
is the main repository containing all CLI utilities and other popular Linux tools and language compilers/interpreters.x11-repo
contains X11-based packages and graphical applications.root-repo
contains packages useful for rooted devices. Some of these packages can be used without root, but functionality may be limited.
References[edit]
^ "Release 0.118.0". 7 January 2022. Retrieved 24 October 2022.
^ Seth Kenlon (August 11, 2020). "Use a Linux terminal on your Android phone". opensource.com. Retrieved August 17, 2021.
^ "ZSH - Termux Wiki". Termux. July 30, 2020. Retrieved August 17, 2021.
^ "The Termux Wiki". Termux. July 30, 2021. Retrieved August 17, 2021.
^ "Graphical Environment - Termux Wiki". Termux. July 30, 2021. Retrieved August 17, 2021.
^ "Behavior changes: apps targeting API 29+". Android Developers. Retrieved 2021-12-01.
^ "Into the Sunset: Bintray, JCenter, GoCenter, and ChartCenter". JFrog. 2021-02-03. Retrieved 2021-12-01.
^ "Differences from Linux - Termux Wiki". termux.com. 30 July 2021. Retrieved 18 August 2021.