跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / Bash大前端java

开源鸿蒙终端工具 Termony 编译 -WSL 版

介绍在 WSL Ubuntu 22.04 环境下编译开源鸿蒙终端工具 Termony 的步骤。需准备鸿蒙 SDK、JDK、Python 等依赖,克隆源码后运行构建脚本。编译成功后生成 HAP 包,需在真实鸿蒙 PC 上签名并安装。过程中需注意网络畅通及环境变量配置。

协议工匠发布于 2026/3/29更新于 2026/5/2936 浏览
开源鸿蒙终端工具 Termony 编译 -WSL 版

开源鸿蒙终端工具 Termony 编译 -WSL 版

前言

Termony 是一款开源运行在开源鸿蒙 PC 上的命令行操作工具,可内置多种开源命令行,但需要手动按照规则配置详细的交叉编译链路。 本文介绍 WSL 环境下编译 Termony 的步骤。

Termony 是什么?

Termony 是一个面向 HarmonyOS 电脑的类 Termux 终端环境,目前仍在开发中。它的目标是在 HarmonyOS 上提供类似 Linux 的命令行体验,支持运行基础命令、编译和执行 C/C++ 程序,并集成了大量实用工具和开发组件。 像我们熟悉的 Linux 命令行工具,如 bash、fish、gcc、gdb、git、python、vim、tmux、htop、openssh、make、curl 等常用开发与系统工具都有包含。 Termony 利用 HarmonyOS 的 HNP 机制打包原生二进制程序(.hnp 文件),在安装 HAP 时自动解压到 /data/app/ 并创建软链接至 /data/app/bin/。 Termony 是 HarmonyOS 电脑平台上的'Linux 子系统雏形',为开发者在鸿蒙生态中提供本地化、高自由度的命令行开发环境。

编译环境搭建

Termony 编译除了要搭建基础编译环境,还需要用到鸿蒙 SDK。

系统环境
  • WSL2 Ubuntu 22.04
  • 主机内存大于 16G
  • Windows 上配置好 hdc 等工具
下载源码
git clone https://github.com/TermonyHQ/Termony.git
软件包

WSL 的 Ubuntu 环境,需要安装的基础的软件包可能没有写,但下面的软件包一定需要安装。

# python3.8 环境
sudo apt-get install wget make gsed gettext automake coreutils flex cmake yacc libncurses5-dev pkg-config tcl zip nodejs openjdk-8-jdk
pip3 install meson==1.2.0
pip3 install toml
SDK

下载 Command Line Tools 6.0.1 Linux 版本的工具,解压到某个目录。官网下载地址:最新版本 - 下载中心 - 华为开发者联盟

TOOL_HOME 环境变量

注意:TOOL_HOME 识别不了 ~/路径,所以不要偷懒,使用绝对路径。

export TOOL_HOME="/home/test/command-line-tools"

编译

前面都准备好了,接下来就开始编译了。编译并不复杂,但耗时较长。

cd Termony
./build-linux.sh -b

在 WSL 环境编译可能需要数小时,如果编译机器性能好,时间会短些。 编译过程中,会大量的下载源码,所以一定要保持网络畅通,否则代码下载不全,可能会导致编译失败。 遇到错误,查看具体的错误原因,如源码不完整,工具没装,待准备好后,重新编译。

编译成功后的 HAP 目录

> hvigor Finished :entry:default@SignHap... after 37 ms
> hvigor Finished :entry:default@CollectDebugSymbol... after 48 ms
> hvigor Finished :entry:assembleHap... after 1 ms
> hvigor BUILD SUCCESSFUL in 19 s 279 ms

如上提示即为编译成功。 编译好的 HAP 包体积较大。

ls entry/build/default/outputs/default/ -lh
total 1.4G
-rwxrwxrwx 1 test test 1.4G Dec 7 18:46 entry-default-unsigned.hap
drwxrwxrwx 1 test test 4.0K Dec 7 07:33 mapping
-rwxrwxrwx 1 test test 533 Dec 7 07:31 pack.info

安装

Termony 可能还不支持在 DevEco 模拟器里的安装。需要在实际的鸿蒙 PC 上安装,官方说明文档也是写的 MateBook Pro。 安装到鸿蒙 PC 需要签名,需要执行签名脚本。配置 build-profile.json5 相关签名,然后执行。

./build-linux -s

签名后即可通过 hdc 工具将 HAP 包安装到鸿蒙 PC。

其它

Termony 本身是一个 HAP,它内部集成了整套工具链,甚至包含 qemu。 另外还有两个正在开发中的鸿蒙终端工具,是基于 qemu 开发的。Harmonix 和 HiSH,这两个工具是同一个开发者,前者是基于 qemu-user,后者基于 qemu。 这两个终端工具可以直接在模拟器里安装,可以不用编译直接使用。

可能遇到的问题

  1. 提示 git submodule update --init 这种错误,一般是代码没有下载全,需要下载完整的代码才能编译。
  2. hvigor ERROR: spawn java ENOENT 需要安装 openjdk-8-jdk 软件包。

目录

  1. 开源鸿蒙终端工具 Termony 编译 -WSL 版
  2. 前言
  3. Termony 是什么?
  4. 编译环境搭建
  5. 系统环境
  6. 下载源码
  7. 软件包
  8. python3.8 环境
  9. SDK
  10. TOOL_HOME 环境变量
  11. 编译
  12. 编译成功后的 HAP 目录
  13. 安装
  14. 其它
  15. 可能遇到的问题
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 利用 Figma MCP 与 Claude Code 实现 UI 设计稿 1:1 还原
  • Qwen2 开源大模型本地部署与 WebUI 对话机器人搭建
  • Vue 3 编程的 10 个实用技巧
  • VSCode 集成 DeepSeek 模型配置与使用指南
  • Spring AI 入门与实战:构建生成式 AI 应用
  • Effective Modern C++ 条款 37:确保 std::thread 在所有路径上不可结合
  • GitHub 国内镜像站汇总与高速访问方案
  • nRF54L 系列架构全景:蓝牙 6.0 与超低功耗设计详解
  • KrLongAI 旗博士:本地部署 AI 数字人口播视频自动化工程
  • GitHub 44K Star Skills:开源智能体技能库与自定义开发指南
  • CSS 元素显示模式详解:块级、行内与行内块
  • SpringBoot 结合 Leaflet 实现天地图路径规划可视化实践
  • STL list 容器模拟实现与核心原理
  • AI 智能体应用工程师认证报考流程与课程内容解析
  • Linux 基础:HTTPS 原理与加密机制详解
  • 宏智树 AI:基于 ChatGPT 学术版的智能写作平台
  • Android 主流三方库源码分析:EventBus
  • TradingView 图表库 Web 数据可视化集成指南
  • 前端地图开发基础:服务类型、坐标系与 SDK 简介
  • 基于动态反演和扩展状态观测器的无人机鲁棒反馈线性化自适应姿态控制器

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online