Termux

From Justapedia, unleashing the power of collective wisdom
Jump to navigation Jump to search
Termux
Original author(s)Fredrik Fornwall
Initial release30 May 2015; 8 years ago (2015-05-30)
Written inJava
Operating systemAndroid
Platformx86-64, ARM64, i686, ARMv7
Size101 MB
TypeTerminal Emulator, Command-line interface
LicenseGPLv3

Termux is a free and open source terminal emulator for Android which allows for running a Linux environment on an Android device. In addition, various software can be installed through the application's package manager.

Termux is the first Android terminal application to include a variety of software, unlike other terminal emulators, in which only small or limited utilities provided by Android are available.

Termux installs a minimal base system automatically, and additional packages are available using a package manager. [1]

Most commands available in Linux are accessible as well as built-in Bash commands. There are also several other shells available, such as Zsh and tcsh.[2]

Overview

Packages are cross-compiled with Android NDK and have compatibility patches to get them working on Android. Since all files are installed at the application directory, rooting is not required.[3]

There are more than one thousand packages that can be downloaded 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 several others. Termux can also install interpreters for languages like Ruby, Python, JavaScript, etc.

Terminal-based text editors such as Emacs and Vim can be installed to edit and create files from the terminal.

It is also possible to execute GUI applications in Termux through a VNC server and installing a desktop environment (Xfce, LXQt, MATE) or window manager.[4]

User interface

Termux's user interface is fairly simple and only displays extra keys row and the terminal output, managing sessions by swiping left and manipulating Terminal session by tap and holding and clicking more to bring 10 options. It is also possible to change the color scheme and font through Termux:Styling.

Extra keys row can also be customized. Users can add more function keys and controls within termux.properties file

Termux also has mouse/touch support which can be used to interact some programs that can be used with mouse such as htop and other ncurses-based applications, scrolling is also be done by swiping over terminal buffer.

Configuration

Users can configure the Terminal within termux.properties file. unlike other Terminal emulators, Termux's configuration is read within that file instead of using graphical settings which users will have to use a text editor.

Add-ons

Termux also includes 7 add-ons:

  • Termux:API: exposes Android functionality to CLI applications
  • Termux:Styling: allows to change the colorscheme and the 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, but 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: plugin to integrate Tasker with Termux

Add-ons must be installed from same source, as add-ons signed with same signature key to use have same User ID between these apps

History

Termux was initially released in 2015. At its initial launch, it already included a variety of Linux software. 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 and Termux required Android version 7 as a minimum OS requirement.

With the policy changes in Google Play policies,[5] updates to the app through Play Store are no longer possible and as such, it is recommended to install the app through alternative sources.

As of 2021, Termux is maintained by the volunteer development team.

Installation

During the installation, it extracts the bootstrap archive from the APK file and set correct permissions for executable and sets up directories like the home directory.

Package management and distribution

Packages in Termux are installed through the application's package manager (pkg) and uses the .deb format by default. However, normal Debian packages cannot be installed as Termux is not FHS compliant.[6] Users can also build and submit packages.

Package availability

Termux has more than 1000+ packages available as of 2021. However, compared to traditional Linux environments, packages in Termux are still relatively small and certain packages cannot be ported due to a variety of reasons which primarily involve compilation.

Package repositories

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 that is useful for rooted devices only. However, some packages can be used without root but functionality may be somewhat limited

Google Play updates

Termux v0.101 is the last version to be updated in the Google Play Store. Google Play has enforced apps targeting API level 29 since November 2020 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.[7]

The Termux development team suggests moving to F-Droid in order to continue getting updates, as F-Droid does not impose such restrictions.

Bintray shutdown

In May 2021, Bintray shut down their services,[8] which had been the primary host for the Termux packages. Termux migrated to another hosting service and updating/installing packages leads to 403/404 errors in older Termux versions.

See also

References

  1. ^ Seth Kenlon (August 11, 2020). "Use a Linux terminal on your Android phone". opensource.com. Retrieved August 17, 2021.
  2. ^ "ZSH - Termux Wiki". Termux. July 30, 2020. Retrieved August 17, 2021.
  3. ^ "The Termux Wiki". Termux. July 30, 2021. Retrieved August 17, 2021.
  4. ^ "Graphical Environment - Termux Wiki". Termux. July 30, 2021. Retrieved August 17, 2021.
  5. ^ "Device and Network Abuse - Play Console Help". support.google.com.
  6. ^ "Differences from Linux - Termux Wiki". termux.com. 30 July 2021. Retrieved 18 August 2021.
  7. ^ "Behavior changes: apps targeting API 29+". Android Developers. Retrieved 2021-12-01.
  8. ^ "Into the Sunset: Bintray, JCenter, GoCenter, and ChartCenter". JFrog. 2021-02-03. Retrieved 2021-12-01.

External links