ES — Aviso de fork independiente: este repositorio (
ESTRIN217/Terminal) es un fork independiente y no está afiliado, respaldado ni soportado por el equipo de Termux. No reportes sus issues al proyecto Termux ni uses sus canales de soporte/donación. Reporta todo en Issues de este fork.EN — Independent fork notice: this repository (
ESTRIN217/Terminal) is an independent fork and is not affiliated with, endorsed by, or supported by the Termux team. Do not report its issues upstream or use Termux support/donation channels. Report everything at this fork's Issues.
Terminal es una aplicación Android de terminal + entorno Linux (Debian vía proot), con UI moderna en Jetpack Compose y emulación de terminal nativa.
Versión actual: 2.0.0 (versionCode 120). Ver el CHANGELOG.
Terminal |
Opencode |
- Entorno Debian completo vía proot, sin root. El rootfs se descarga y verifica en el primer arranque.
- Renderer nativo en Compose — el terminal se dibuja directamente sobre un
Canvasde Compose, con selección de texto nativa, handles arrastrables, pinch-zoom e inercia de scroll. Detrás del flagnative_compose_renderer(Ajustes → Experimental). - Multipantalla — dos sesiones simultáneas (terminal o gestor de archivos) en pantallas de 600 dp o más.
- Tipografía a elegir — Fira Code, Cascadia Code, JetBrains Mono, D2 Coding, Hack o tu
propia fuente (
~/.termux/font.ttf, importable desde el almacenamiento), todas con Nerd Fonts v3.5.1. Las ligaduras se pueden activar o desactivar. - Color de 24 bits — esquemas personalizados desde
~/.termux/colors.properties. - Imágenes en la terminal — protocolo Kitty Graphics y OSC 1337 (iTerm2). Sixel no está soportado.
- Hipervínculos OSC 8 — se subrayan y se abren con un toque.
- Gestor de archivos integrado — funciona como pestaña más, con symlinks, papelera,
marcadores y edición de archivos con
nano/vim. - Refresco a 90/120 Hz, con opción de forzar 60 Hz para ahorrar batería.
- Atribución de recursos según el hardware del dispositivo (scrollback, parpadeo del cursor y renderer por defecto).
- Características
- Instalación
- Desinstalación
- Enlaces
- Depuración
- Mantenimiento y contribuciones
- Atribución
- Paquete:
com.estrin217.terminal. - Requiere Android con arquitectura
arm64-v8a(el binario proot embebido es solo AArch64). - Obtén los APK desde
GitHub Releases(secciónAssets) o desde los artefactos del workflowBuild(actions— requiere login de GitHub). - Los APK de GitHub están firmados con una clave de prueba no oficial
(
app/testkey_untrusted.jks). No instales builds del fork distribuidos por terceros (Telegram, redes sociales, etc.). - Si cambias de origen de instalación, desinstala primero todas las APK del fork (ver Desinstalación). No mezcles firmas distintas.
En el primer arranque se descarga y configura un rootfs Debian (unos ~50 MB comprimidos) y se instala el binario proot embebido.
Para desinstalar por completo, elimina la app Terminal (com.estrin217.terminal)
desde Ajustes de Android → Aplicaciones. Haz copia de seguridad de tus datos antes
si los necesitas.
- Repo: https://github.com/ESTRIN217/Terminal
- Issues: https://github.com/ESTRIN217/Terminal/issues
- Discussions: https://github.com/ESTRIN217/Terminal/discussions
- Wiki: https://github.com/ESTRIN217/Terminal/wiki
Puedes ajustar el nivel de logcat en Terminal → Ajustes → Terminal →
Debugging → Log Level (por defecto Normal; vuelve a Normal tras depurar).
Usa logcat -d en el terminal o adb logcat desde un PC.
Desde el menú largo del terminal (More → Report Issue) puedes generar un reporte
automático. Publica el texto completo al abrir un issue; los issues con
(partiales) capturas de pantalla en lugar de texto probablemente se cierren.
Off— no registra nada.Normal— errores, avisos, info y stacktraces.Debug— mensajes de depuración.Verbose— mensajes detallados.
En algunos dispositivos, la política SELinux del fabricante impide a la app enumerar
/dev, /dev/pts y /sys, por lo que ls /dev puede fallar con Permission denied
dentro de la sesión Debian. No es un bug: el acceso a dispositivos concretos
(/dev/null, /dev/tty, ...) sigue funcionando. Detalles en
docs/proot-debian-arm64-plan.md (sección 7).
Del mismo modo, desde Android 8 (API 26) SELinux deniega a las apps untrusted_app
leer /proc/stat, así que los monitores de CPU (btop, htop) no mostrarán
estadísticas de CPU en un dispositivo stock con SELinux enforcing (btop falla con
Failed to parse /proc/stat). El bind -b /proc está presente y correcto; sin root
o SELinux permissive no hay workaround.
- Java 17 requerido. NDK
30.0.14904198, CMake3.31.6. - Build:
./gradlew assembleDebug. Tests:./gradlew test(solo unitarios). targetSdk 28es intencional (modelo de acceso a archivos).- Los mensajes de commit deben seguir Conventional Commits
con tipos
Added,Changed,Deprecated,Removed,Fixed,Security(primera letra en mayúscula). - El
versionNameenapp/build.gradle.ktsdebe seguir semvermajor.minor.patch. - La librería
termux-sharedcentraliza constantes y utils compartidos. No uses valores hardcodeados si existe una constante.
La build release se firma en local. Las credenciales se leen de key.properties en la
raíz del repo, que está en .gitignore y nunca debe commitearse. Copia
key.properties.example como plantilla:
cp key.properties.example key.properties # y rellena con los datos de tu keystore
./gradlew assembleReleaseSin ese fichero, assembleRelease falla al no encontrar la configuración de firma.
Verifica el APK antes de distribuirlo: un fallo de empaquetado puede producir un archivo válido para el sistema de build pero inservible en Android.
unzip -l app/build/outputs/apk/release/terminal_release_universal.apk | grep -c AndroidManifest.xmlDebe devolver 1. Si devuelve 0, el APK se ha empaquetado sin manifest ni recursos.
Aviso: los APK que la CI adjunta a cada Release de GitHub son builds de debug firmados con
app/testkey_untrusted.jks. Son para pruebas y no son distribuibles: no los instales desde fuentes de terceros ni los publiques como versión estable.
Este proyecto es un fork de termux/termux-app
(licencia GPLv3) y se distribuye bajo la
misma licencia. No existe ninguna relación con el equipo de Termux.
Excepciones heredadas del upstream:
- Código de Terminal Emulator for Android
(Apache 2.0) en las librerías
terminal-viewyterminal-emulator. - Ver
termux-shared/LICENSE.mdpara excepciones determux-shared.

