termux-app

termux-app

Android设备上的Linux终端模拟器和环境

Termux是一款Android应用,提供终端模拟和Linux环境。支持安装多种Linux软件包(如Python、Git、Vim等),可使用触摸或外接键盘操作。具有API访问、启动自动化、悬浮窗等功能和插件。适用于Android 7及以上版本,可从F-Droid、GitHub等获取。Termux让用户能在Android设备上方便地运行Linux命令和程序。

TermuxAndroid终端Linux环境开源Github开源项目

Termux 应用程序

构建状态 测试状态 加入 Gitter 聊天 加入 Termux Discord 服务器 Jitpack 上的 Termux 库发布

Termux 是一个 Android 终端应用程序和 Linux 环境。

请注意,这个仓库是针对应用程序本身(用户界面和终端模拟)。关于应用内可安装的软件包,请参阅 termux/termux-packages

Termux 包管理的快速指南可在 包管理 查看。其中还包含了如何修复运行 aptpkg 命令时出现的 repository is under maintenance or down 错误的信息。

我们正在寻找 Termux Android 应用程序的维护者。


注意:Termux 在 Android 12+ 上可能不稳定。 Android 操作系统会终止超过 32 个的任何(幻影)进程(限制适用于所有应用程序的总和),并且还会终止使用过多 CPU 的任何进程。您可能会在终端中看到 [Process completed (signal 9) - press Enter] 消息,而实际上您并未自己退出 shell 进程。请查看相关问题 #2366问题追踪器幻影缓存和空进程文档 以及 这个 TLDR 评论,了解如何禁用幻影和过度 CPU 使用进程的修剪。稍后将添加适当的文档页面。Android 12L 或 13 中应该会提供禁用终止的选项,所以如果您使用的是 Android 11,特别是如果您没有 root 权限,请自行权衡升级风险。


目录

Termux 应用和插件

核心 Termux 应用附带以下可选插件应用。

安装

最新版本是 v0.118.0

注意:强烈建议您尽快更新到 v0.118.0 或更高版本,以修复各种错误,包括 此处 报告的严重的世界可读漏洞。关于 Google Play 上的 Termux 信息,请参见 下文

Termux 可以通过以下列出的各种来源获得,适用于 Android >= 7,并完全支持应用和软件包。

对 Android 56 的应用和软件包支持于 2020-01-01v0.83 版本中停止,但仅针对应用的支持(不支持软件包更新)于 2022-05-24 通过 GitHub 源重新添加。详情请查看 这里

不同来源的 APK 文件使用不同的签名密钥签名。Termux 应用及其所有插件使用相同的 sharedUserId com.termux,因此安装在设备上的所有 APK 必须使用相同的签名密钥签名才能一起工作,所以它们必须全部从同一来源安装。不要尝试混合使用它们,即不要尝试从 F-Droid 安装一个应用或插件,而从其他来源(如 GitHub)安装另一个。Android 包管理器通常也不允许安装具有不同签名的 APK,安装时会出现诸如 应用未安装由于未知错误而安装失败INSTALL_FAILED_UPDATE_INCOMPATIBLEINSTALL_FAILED_SHARED_USER_INCOMPATIBLE签名与先前安装的版本不匹配 等错误。只有通过 root 或自定义 ROM 才能绕过这一限制。 如果您希望从不同的来源安装,那么您必须首先从您的设备上卸载所有现有的Termux或其插件应用的APK,然后从同一个新来源安装所有新的APK。有关详细信息,请查看卸载部分。在卸载之前,您可能还想考虑备份Termux,以便在从不同来源重新安装Termux后可以恢复它。

在接下来的段落中,"bootstrap"指的是与termux-app本身一起提供的最小软件包,用于启动一个可工作的shell环境。其压缩包在此处构建和发布。

F-Droid

Termux应用可以从这里F-Droid获取。

不需要下载F-Droid应用(通过"下载F-Droid"链接)来安装Termux。您可以通过点击每个版本部分底部的"下载APK"链接直接从网站下载Termux APK。

通常,一旦GitHub上发布了更新,需要几天(甚至一周或更长时间)更新才能在F-Droid上可用。F-Droid版本是由F-Droid检测到新的GitHub发布后构建和发布的。Termux维护者无法控制F-Droid上Termux应用的构建和发布。此外,Termux维护者也无法访问F-Droid发布版本的APK签名密钥,因此我们无法在GitHub上自行发布与F-Droid发布版本兼容的APK。

F-Droid应用通常可能不会通知您更新,您需要在应用的"更新"标签中手动下拉刷新来检查更新。确保为该应用禁用了电池优化,有关如何操作的详细信息,请查看https://dontkillmyapp.com/。

只发布一个通用APK,它可以在所有支持的架构上运行。APK和bootstrap安装大小将为~180MBF-Droid不支持特定架构的APK。

GitHub

Termux应用可以在GitHub上从GitHub Releases(适用于版本>= 0.118.0)或GitHub Build Action工作流程获取。对于android >= 7,只安装apt-android-7变体。对于android 56,只安装apt-android-5变体。

GitHub Releases的APK将列在发布版本的Assets下拉菜单中。这些在发布新版本时会自动附加。

GitHub Build操作工作流程的APK将列在工作流程运行的Artifacts部分。这些是为每次对存储库的提交/推送创建的,可供不想等待发布并希望立即尝试最新功能或想要测试其拉取请求的用户使用。请注意,对于操作工作流程,您需要登录GitHub账户才能启用/点击Artifacts链接。如果您使用GitHub应用,请确保在已登录GitHub账户的Chrome或Firefox等浏览器中打开工作流程链接,因为应用内浏览器可能未登录。

这两种APK都是可调试的,并且彼此兼容,但与其他来源不兼容。

发布了通用和特定架构的APK。如果使用通用APK,APK和bootstrap安装大小将为~180MB,如果使用特定架构的APK,则为~120MB。详细信息请查看这里

安全警告:GitHub上的APK文件使用已与社区共享的测试密钥签名。这不是官方开发者密钥,每个人都可以使用它来生成自己的测试版本。在使用从https://github.com/termux/termux-app以外的地方获得的Termux GitHub构建时要非常小心。任何人都能够使用它来伪造可安装在GitHub构建版本之上的恶意Termux更新。在安装通过Telegram或其他社交媒体分发的Termux构建时要三思。如果您的设备被恶意软件感染,我们将无法帮助您。

测试密钥不应被用来冒充@termux,也无法用于此目的。我们不信任这个密钥,而且很容易在用户生成的内容中检测到它的使用。

<details> <summary>密钥库信息</summary>
别名: alias
创建日期: 2019年10月4日
条目类型: PrivateKeyEntry
证书链长度: 1
证书[1]:
所有者: CN=APK Signer, OU=Earth, O=Earth
发行者: CN=APK Signer, OU=Earth, O=Earth
序列号: 29be297b
有效期自: 2019年9月4日 02:03:24 EEST 至: 2049年10月26日 02:03:24 EEST
证书指纹:
         SHA1: 51:79:55:EA:BF:69:FC:05:7C:41:C7:D3:79:DB:BC:EF:20:AD:85:F2
         SHA256: B6:DA:01:48:0E:EF:D5:FB:F2:CD:37:71:B8:D1:02:1E:C7:91:30:4B:DD:6C:4B:F4:1D:3F:AA:BA:D4:8E:E5:E1
签名算法名称: SHA1withRSA (已禁用)
主体公钥算法: 2048位RSA密钥
版本: 3
</details>

Google Play商店 (实验性分支)

目前在Google Play上有一个适用于Android 11+设备的Termux版本,为了通过政策要求进行了大量调整。这个版本正在开发中,与稳定的F-Droid版本相比功能不完整且存在bug(更新状态请参见这里),因此大多数用户仍应使用上述提到的F-Droid或GitHub版本。

目前,Google Play会尝试将F-Droid安装的版本更新。由于移除了sharedUserId,更新仍会失败。计划中的0.118.1 F-Droid版本将通过设置高于PlayStore应用的版本号来解决这个问题。同时,为防止Google Play尝试下载并安装失败Google Play版本,你可以打开Google Play上的Termux应用页面,点击右上角的3点选项按钮,然后禁用"启用自动更新"开关。但是,Termux应用的更新仍会显示在PlayStore应用更新列表中。

如果你想帮助测试Google Play版本(或无法从其他来源安装Termux),请注意它是从一个单独的仓库(https://github.com/termux-play-store/)构建的 - 请务必在那里报告问题,因为遇到的任何问题很可能是特定于该仓库的。

卸载

如果用户不再想在设备上安装Termux或正在切换到不同的安装来源,可能需要卸载。在卸载之前,你可能还想考虑备份Termux

要完全卸载Termux,你必须卸载Termux应用和插件中列出的所有现有的Termux或其插件应用APK

转到Android设置 -> 应用程序,然后查找这些应用。如果你的设备上有搜索功能,也可以在应用程序列表中搜索termux

即使你认为没有安装任何插件,也强烈建议仔细检查Android设置中的应用程序列表。

重要链接

社区

所有社区链接都可以在这里找到。

主要链接如下。

维基

其他

终端

终端资源

终端仿真器

</details>

调试

您可以通过在 Termux 应用设置 -> <APP_NAME> -> 调试 -> 日志级别中设置适当的 logcat 日志级别来帮助调试 Termux 应用及其插件的问题(需要 Termux 应用版本 >= 0.118.0)。日志级别默认为"正常",而"详细"日志级别目前会记录额外信息。完成调试后最好将日志级别恢复为"正常",因为私密数据可能会在正常操作期间传递给 logcat,而且额外的日志记录会增加执行时间。

插件应用不会自行执行命令,而是向 Termux 应用发送执行意图,Termux 应用有自己的日志级别,可以在 Termux 应用设置 -> Termux -> 调试 -> 日志级别中设置。因此,您必须同时设置 Termux 和相应插件应用的日志级别,以获取所有信息。

设置日志级别后,您可以在 Termux 应用终端中运行 logcat 命令实时查看日志(Ctrl+c 停止),或使用 logcat -d > logcat.txt 转储日志。您也可以通过 ADB 从 PC 查看日志。更多信息,请查看官方 Android logcat 指南此处

此外,用户还可以通过终端长按选项菜单中的"更多" -> "报告问题"选项,并在显示的提示中选择"是"来添加调试信息,自动生成 Termux 文件统计信息和 logcat 转储。这对报告和调试其他问题很有帮助。如果生成的报告太大,可以使用"报告活动"上下文菜单(右上角 3 个点)中的"保存到文件"选项,然后查看/共享该文件。

用户在报告问题时必须发布完整报告(可选择不包含敏感信息)。使用**(部分)错误报告截图**而不是文本打开的问题可能会被自动关闭/删除。

日志级别
  • "关闭" - 不记录任何内容。
  • "正常" - 开始记录错误、警告和信息消息以及堆栈跟踪。
  • "调试" - 开始记录调试消息。
  • "详细" - 开始记录详细消息。

对于维护者和贡献者

termux-shared 库在 v0.109 中添加。它定义了 Termux 应用及其插件的共享常量和工具。创建它是为了允许删除 Termux 应用中的所有硬编码路径。一些 Termux 插件也在使用它,其余的将来也会使用。如果您正在贡献使用可能共享的常量或工具的代码,那么如果它当前不存在,请在 termux-shared 库中定义它,并从那里引用它。同时更新相关的更新日志。使用硬编码值的拉取请求不会/不应该被接受。Termux 应用和插件特定的类必须添加在 com.termux.shared.termux 包下,一般类则添加在外部。在贡献代码时,还必须检查并在必要时更新 termux-shared 许可证。必须遵守任何外部库或代码的许可证。

主要的 Termux 常量由 TermuxConstants 类定义。它还包含有关如何分叉 Termux 或使用您自己的包名构建它的信息。更改包名将需要使用新的 $PREFIX 构建引导 zip 包和其他包,查看构建包以获取更多信息。

查看 Termux 库 了解如何在插件应用中导入 Termux 库,以及分叉和本地开发 了解如何更新插件的 Termux 库。

Termux 及其插件应用的 build.gradle 文件中的 versionName 必须遵循 语义版本 2.0.0 规范,格式为 major.minor.patch(-prerelease)(+buildmetadata)。在 build.gradle 文件中更新 versionName 并在 GitHub 上为新版本创建标签时,请确保包含补丁号,如 v0.1.0 而不仅仅是 v0.1。build.gradle 文件和 attach_debug_apks_to_release 工作流也会验证版本,如果 versionName 不符合规范,构建/附加将失败。

提交信息指南

提交信息必须使用 Conventional Commits 规范,以便可以由 create-conventional-changelog 脚本自动生成符合 Keep a Changelog 规范的更新日志,查看其仓库以获取有关规范的更多详细信息。**type 和 description 的首字母必须大写,描述应使用现在时态。**冒号 : 后的空格是必需的。对于破坏性更改,在冒号 : 之前添加感叹号 !,以便在更新日志中自动突出显示。

<type>[optional scope]: <description>

[optional body]

[optional footer(s)]

**只能使用下面列出的 types,它们与更新日志标题中使用的完全一致。**例如,Added: Add foo, Added|Fixed: Add foo and fix bar, Changed!: Change baz as a breaking change 等。您还可以选择添加范围,如 Fixed(terminal): Fix some bug。不要使用任何其他内容作为类型,例如使用 add 而不是 Added 等。

  • 新增:用于新功能。
  • 变更:用于现有功能的变更。
  • 弃用:用于即将移除的功能。
  • 移除:用于已移除的功能。
  • 修复:用于任何错误修复。
  • 安全:用于处理漏洞。

分支

  • 查看 TermuxConstants 的 javadoc,了解更改应用程序包名时需要进行哪些修改。
  • 你还需要为新的包名重新编译引导程序压缩包。请查看构建引导程序这里这里
  • 目前,并非所有插件都使用 termux-shared 库中的 TermuxConstants,有些插件中硬编码了 com.termux 的值,需要手动修改。
  • 如果分支 Termux 插件,请查看分支和本地开发,了解如何为插件使用 Termux 库。

编辑推荐精选

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

热门AI工具AI办公办公工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

模型训练热门AI工具内容创作智能问答AI开发讯飞星火大模型多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

热门AI工具生产力协作转型TraeAI IDE
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

AI助手热门AI工具AI创作AI辅助写作讯飞绘文内容运营个性化文章多平台分发
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

下拉加载更多