Termux, una aplicacion y emulador de terminal para Android y Linux

noviembre 12, 2020 , 0 Comments

Termux es un emulador de terminal para dispositivos Android y una aplicación en Linux que funciona directamente sin necesidad de acceso root o configuración especial.

En Termux hay paquetes adicionales disponibles mediante el administrador de paquetes APT. El objetivo principal del desarrollador es llevar la experiencia de la línea de comandos de Linux a los usuarios de dispositivos móviles sin demasiados dolores de cabeza y Termux está enriquecido con un gran conjunto de utilidades.

En Termux todos los paquetes incluidos se compilan con Android NDK y solo tienen correcciones de compatibilidad para que funcionen en Android.

El sistema operativo no proporciona acceso completo a sus sistemas de archivos, por lo que Termux no puede instalar archivos de paquetes en directorios estándar como /bin, /etc, /usr o /var. En cambio, todos los archivos se instalan en el directorio privado de la aplicación ubicado en «/data/data/com.termux/files/usr».

Para simplificar las cosas, este directorio ha sido renombrado como «prefix» y normalmente es por «$PREFIX», que también es una variable de entorno exportada al shell de Termux.

Dicho esto, el desarrollador advierte que este directorio no se puede cambiar ni mover a una tarjeta SD por dos razones principales.

En primer lugar, el sistema de archivos debe admitir permisos Unix y archivos especiales como enlaces simbólicos o sockets y en segundo lugar, la ruta al directorio «prefix» está codificada en todos los binarios.

Estas son algunas de las características y funcionalidades principales citadas por el autor de Termux:

  • Seguro: puede acceder a servidores remotos utilizando el cliente ssh OpenSSH. Termux combina paquetes estándar con una emulación de terminal precisa en una atractiva solución de código abierto.
  • Funciones integradas: tiene la opción de usar Bash, fish o Zsh y nano, Emacs o Vim; ingresar SMS en su bandeja de entrada, accedar a terminales API con curl y utilizar rsync para almacenar copias de seguridad de la lista de contactos en un servidor remoto.
  • Personalizable: se pueden instalar una gran cantidad de paquetes al sistema con ayuda de la gestión de paquetes APT conocido de Debian y Ubuntu.
  • Explorable: los paquetes disponibles en Termux son los mismos que los de Mac y Linux. Se pueden instalar las páginas de manual en el teléfono y leerlas en una sesión mientras experimenta con ellas en otra.
  • Pilas incluidas: Termux incluyó versiones actualizadas de Perl, Python, Ruby y Node.js.
  • Escalado: se puede conectar un teclado bluetooth y conectar un dispositivo a una pantalla externa si es necesario, Termux admite atajos de teclado y tiene soporte completo para mouse.

Aparte del sistema de archivos, existen otras diferencias con las distribuciones tradicionales de Linux, por lo que no se debe confundir a Termux con una distribucion. De hecho, aunque proporciona un ecosistema de paquetes similar a las distribuciones de Linux, deben saber que Termux es solo una aplicación normal que se ejecuta en Android.

  1. Todo está instalado en $ PREFIX y no en directorios estándar como /bin o /etc.
  2. El entorno es de un solo usuario, con lo cual se debe tener cuidado con esto cuando se ejecutan comandos como root, ya que puede estropear los permisos y etiquetas de SELinux (Security-Enhanced Linux).
  3. Termux usa la misma libc (biblioteca de lenguaje C estándar) y el mismo enlazador dinámico que el sistema operativo Android.

Según el sitio web de Termux, estas 3 diferencias principales causan problemas al intentar ejecutar programas que han sido compilados para un sistema GNU/Linux típico.

Finalmente, la página de GitHub de Termux señala que el emulador no apunta actualmente a Android 10 (API 29) debido a una serie de cambios realizados por esta versión del sistema operativo.

“Las aplicaciones que no son de confianza que tienen como objetivo Android 10 no pueden invocar exec () en archivos ubicados en el directorio de inicio de la aplicación. Esta ejecución de archivos desde el directorio de inicio de la aplicación para escritura es una violación de W ^ X. Las aplicaciones solo deben cargar el código binario que está incrustado en el archivo APK de la aplicación ”, informa Google sobre API 29.


Some say he’s half man half fish, others say he’s more of a seventy/thirty split. Either way he’s a fishy bastard.