SuperAPI AI 工具集

termux-app

Termux 是一款 Android 终端模拟器应用和 Linux 环境,可通过安装大量软件包进行扩展。它允许用户在移动设备上直接运行编码工具、AI 模型和开发环境,并内置 SSH 客户端支持登录远程主机。该应用核心仅包含用户界面和终端仿真,可安装的软件包由独立的 termux-packages 仓库维护。整体支持 Android 7 及以上版本,提供 F-Droid、GitHub 等多种安装来源,但不同来源的 APK 签名不同,必须从同一来源安装所有应用和插件。注意在 Android 12+ 上可能因系统进程限制而不稳定。

访问官网

工具介绍

Termux 是一个适用于 Android 操作系统的终端模拟器应用,同时也是一个 Linux 环境,可通过各种软件包进行扩展。本仓库仅包含应用本身(即用户界面和终端仿真部分),可安装到应用内的软件包请参见 termux/termux-packages 仓库。

【主要用途】 Termux 让用户在 Android 设备上获得一个可用的终端和 Linux 环境,从而直接运行编码工具、AI 模型和开发环境,并支持通过内置 SSH 客户端登录远程主机。

【主要能力】

  • 提供 Android 终端应用与 Linux 环境。
  • 可通过多种软件包扩展功能,软件包管理方式见 Package Management 文档。
  • 内置 SSH 客户端支持(资料中将其列为重要链接之一),可用于登录远程主机。
  • 提供 termux-shared 库(自 v0.109 起加入),定义应用及其插件共享的常量和工具,支持移除硬编码路径。
  • 核心应用附带若干可选插件应用。

【版本与获取方式】

  • 最新版本为 v0.118.3。强烈建议尽快更新到 v0.118.0 或更高版本,以获取多项错误修复,包括一个被报告为 critical 的全局可读漏洞。
  • 完整支持(应用和软件包)需要 Android >= 7。
  • 可从 F-Droid、GitHub Releases、GitHub Build Action 工作流以及 Google Play(实验分支,面向 Android 11+)获取。
  • Android 5 和 6 的支持曾于 2020-01-01 在 v0.83 中被放弃,后又于 2022-05-24 通过 GitHub 来源仅重新加入应用本身,不提供软件包更新支持。
  • 不同来源的 APK 使用不同签名密钥。Termux 应用及其所有插件使用相同的 sharedUserId com.termux,因此同一设备上安装的所有 APK 必须来自同一来源、使用相同签名密钥。混合安装会导致安装错误,如 App not installed、INSTALL_FAILED_UPDATE_INCOMPATIBLE、INSTALL_FAILED_SHARED_USER_INCOMPATIBLE 等。若要从不同来源安装,必须先卸载所有已有的 Termux 或插件 APK(可先考虑备份 Termux),再从同一新来源安装全部 APK。

【安装来源细节】

  • F-Droid:可直接从站点下载 APK,无需下载 F-Droid 应用。F-Droid 的构建与发布由 F-Droid 控制,Termux 维护者无法控制,也无法访问其签名密钥。更新可能延迟数天甚至一周以上;F-Droid 应用常不主动通知更新,需手动下拉刷新。仅发布通用 APK,安装大小约 180MB,F-Droid 不支持按架构区分的 APK。
  • GitHub:可从 GitHub Releases(版本 >= 0.118.0)或 GitHub Build Action 工作流获取。Android >= 7 仅安装 apt-android-7 变体;Android 5 和 6 仅安装 apt-android-5 变体。GitHub Releases 的 APK 位于 Assets 下拉列表;工作流 APK 位于 Artifacts 部分,需登录 GitHub 账号才可点击。两者均为可调试构建且相互兼容,但与其他来源不兼容。同时提供通用和按架构区分的 APK:通用安装大小约 180MB,按架构约 120MB。
  • 安全警告:GitHub 上的 APK 使用已与社区共享的测试密钥签名,这不是官方开发者密钥,任何人都可用它生成自己的测试发布。请仅从 https://github.com/termux/termux-app 获取 GitHub 构建,谨慎对待通过 Telegram 或其他社交媒体分发的 Termux 构建。
  • Google Play(实验分支):面向 Android 11+,为通过平台政策要求做了大量调整,功能不完整且有缺陷,与稳定的 F-Droid 构建相比存在缺失功能。目前 Google Play 会尝试将 F-Droid 安装更新为自身版本,但由于 sharedUserId 已被移除,更新会失败。可在 Google Play 的 Termux 应用页面通过右上角三点菜单关闭“启用自动更新”。该构建来自独立仓库 https://github.com/termux-play-store/ ,问题应报告到该仓库。

【Android 12+ 稳定性说明】 在 Android 12+ 上 Termux 可能不稳定。Android 系统会杀死任何超过 32 个的(幻影)进程(该限制针对所有应用合计),也会杀死占用过多 CPU 的进程。终端中可能出现 [Process completed (signal 9) - press Enter] 消息,而实际并未自行退出 shell 进程。相关 issue #2366 及文档提供了禁用幻影进程和过度 CPU 占用进程修剪的方法。Android 12L 或 13 中应会提供禁用该杀死的选项。

【卸载】 若要完全卸载,必须卸载 Termux App and Plugins 中列出的所有 Termux 及其插件 APK。可在 Android 设置 -> 应用中查找(可使用搜索功能搜索 termux),即使认为未安装任何插件,也建议逐一核对。卸载前可考虑备份 Termux。

【调试与日志】 可在 Termux 应用设置 -> <APP_NAME> -> Debugging -> Log Level 中设置 logcat 日志级别(要求 Termux 应用版本 >= 0.118.0)。日志级别默认 Normal,Verbose 会额外记录信息。调试完成后建议恢复为 Normal,因为正常运行时可能将私有数据传入 logcat,且额外日志会增加执行时间。插件应用本身不执行命令,而是向 Termux 应用发送执行 intent,因此需同时设置 Termux 和相关插件应用的日志级别。可在终端实时运行 logcat 查看日志(Ctrl+c 停止)或使用 logcat -d > logcat.txt 导出日志,也可通过 PC 上的 ADB 查看。用户还可通过终端长按选项菜单 More -> Report Issue 自动生成 termux 文件状态信息和 logcat 转储。报告问题时须提供完整报告(可去除敏感信息),仅提供错误报告截图的问题可能被自动关闭或删除。

【开发者与贡献】

  • termux-shared 库自 v0.109 起加入,定义应用及插件共享的常量和工具。若贡献的代码使用了可能共享的常量或工具,而该库中尚不存在,应将其定义在 termux-shared 库中并从此处引用。使用硬编码值的 Pull Request 将不被接受。Termux 应用及插件专属类须放在 com.termux.shared.termux 包下,通用类放在其外部。贡献代码时须检查并更新 termux-shared LICENSE。
  • 主要 Termux 常量由 TermuxConstants 类定义,其中包含如何 fork Termux 或使用自有包名构建的信息。更改包名需要使用新的 $PREFIX 构建 bootstrap zip 包及其他包,详见 Building Packages。
  • 在插件应用中导入 termux 库请参见 Termux Libraries,为插件更新 termux 库请参见 Forking and Local Development。
  • Termux 及其插件应用 build.gradle 文件中的 versionName 必须遵循语义化版本 2.0.0 规范,格式为 major.minor.patch(-prerelease)(+buildmetadata)。在提升 versionName 及创建 GitHub 新版本标签时,须包含修订号,如使用 v0.1.0 而非 v0.1。
  • 仓库正在寻找 Termux Android 应用维护者。

【社区链接】 主要社区渠道包括 Termux Reddit 社区、Termux User Matrix 频道(Gitter)、Termux Dev Matrix 频道(Gitter)、Termux X(Twitter)、Termux 支持邮箱。Wiki 资源包括 Termux App Wiki、Termux Packages Wiki。