Project Icon

termux-app

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

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

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,也无法用于此目的。我们不信任这个密钥,而且很容易在用户生成的内容中检测到它的使用。

密钥库信息
别名: 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

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设置中的应用程序列表。

重要链接

社区

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

主要链接如下。

维基

其他

终端

终端资源

终端仿真器

调试

您可以通过在 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 库。
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号