# Openharmony Download

> Interactive OpenHarmony source code download with mirror selection (GitCode/Gitee/GitHub), environment checking, branch selection, and real-time progress. Use when user requests:"下载 OpenHarmony", "download OpenHarmony", "下载源码", "获取源码", "拉取代码", "clone openharmony", or "repo init".

- Skill: `openharmonyinsight/openharmony-download` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add openharmonyinsight/openharmony-download`
- Raw SKILL.md: https://api.skillmd.com/api/skills/openharmonyinsight/openharmony-download/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: openharmonyinsight (https://skillmd.com/u/openharmonyinsight)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/openharmonyinsight/openharmony-download

---


# OpenHarmony Download Skill

OpenHarmony 源码下载 Skill - 对话式信息收集 + 环境检查 + 前台实时下载。

## 工作流程

1. **选择镜像源**（AskUserQuestion 单选）
2. **环境检查**（逐项对话式检查，失败时引导解决）
3. **选择分支**（AskUserQuestion 单选）
4. **选择目录**（AskUserQuestion 单选）
5. **执行下载**（Bash 工具，前台实时输出）

## 对话流程

### 步骤 1：选择镜像源

```javascript
AskUserQuestion({
  questions: [{
    header: "镜像源",
    question: "请选择 OpenHarmony 镜像源",
    options: [
      { label: "GitCode", description: "推荐国内用户，速度最快" },
      { label: "Gitee", description: "国内用户" },
      { label: "GitHub", description: "国际用户" }
    ],
    multiSelect: false
  }]
})
```

### 步骤 2：环境检查

镜像源选择后，使用 Bash 工具逐项检查环境：

```javascript
Bash({ command: "bash scripts/check_env.sh git", description: "Check git installation" })
Bash({ command: "bash scripts/check_env.sh git-lfs", description: "Check git-lfs installation" })
Bash({ command: "bash scripts/check_env.sh python3", description: "Check python3 installation" })
Bash({ command: "bash scripts/check_env.sh curl", description: "Check curl installation" })
Bash({ command: "bash scripts/check_env.sh repo", description: "Check repo installation" })
Bash({ command: "bash scripts/check_env.sh git-config", description: "Check git configuration" })
Bash({ command: "bash scripts/check_env.sh disk-space", description: "Check available disk space" })
```

**检查失败时**：显示错误 + 提供安装命令 + 等待用户修复 + 重新检查

**常用安装命令**：
- git: `sudo apt-get install git` (Ubuntu/Debian)
- git-lfs: `sudo apt-get install git-lfs && git lfs install`
- repo: 见脚本输出的安装指引
- Git 配置: `git config --global user.name "Your Name" && git config --global user.email "your-email@example.com"`

### 步骤 3：选择分支

```javascript
AskUserQuestion({
  questions: [{
    header: "分支",
    question: "请选择 OpenHarmony 分支",
    options: [
      { label: "master", description: "主分支（最新开发代码）" },
      { label: "OpenHarmony-5.1.0-Release", description: "5.1.0 版本" },
      { label: "OpenHarmony-5.0.3-Release", description: "5.0.3 版本" },
      { label: "OpenHarmony-5.0.2-Release", description: "5.0.2 版本" },
      { label: "OpenHarmony-5.0.1-Release", description: "5.0.1 版本" },
      { label: "OpenHarmony-4.1-Release", description: "4.1 版本" },
      { label: "自定义分支", description: "输入自定义分支名" }
    ],
    multiSelect: false
  }]
})
```

### 步骤 4：选择目录

```javascript
AskUserQuestion({
  questions: [{
    header: "目录",
    question: "请选择下载目录",
    options: [
      { label: "默认位置", description: "~/OpenHarmony/[branch]/" },
      { label: "自定义路径", description: "指定其他位置" }
    ],
    multiSelect: false
  }]
})
```

### 步骤 5：确认并执行下载

显示配置摘要，使用 **AskUserQuestion** 确认是否开始：

```javascript
// 显示配置摘要
Claude: 好的，准备下载 OpenHarmony 源码：

配置摘要:
- 镜像源: ${MIRROR}
- 分支: ${BRANCH}
- 目录: ${DOWNLOAD_DIR}
- 并行任务: CPU核心数/4（自动计算）

下载将在前台运行，进度实时显示。
这将需要 30 分钟到数小时。

AskUserQuestion({
  questions: [{
    header: "确认",
    question: "是否开始下载？",
    options: [
      { label: "开始下载", description: "立即开始下载 OpenHarmony 源码" },
      { label: "返回重新配置", description: "返回步骤1，重新选择配置" }
    ],
    multiSelect: false
  }]
})
```

**如果选择"开始下载"**：

使用 Bash 工具执行下载脚本，传入用户选择的镜像源、分支和目录参数：

```javascript
Bash({
  command: `bash scripts/download_openharmony.sh -m ${MIRROR} -b ${BRANCH} ${CUSTOM_DIR ? `-d ${CUSTOM_DIR}` : ''}`,
  description: `Download OpenHarmony ${BRANCH} from ${MIRROR}`
})
```

下载将在前台运行，进度实时显示。

**如果选择"返回重新配置"**：
返回步骤1，重新选择镜像源、分支、目录。

## 脚本说明

### download_openharmony.sh

```bash
必需参数:
  -m MIRROR    镜像源（gitcode|gitee|github）
  -b BRANCH    分支名

可选参数:
  -d DIR       下载目录（绝对路径）
  -j JOBS      并行任务数（默认: CPU核心数/4）
```

### check_env.sh

```bash
用法: check_env.sh <check_type>

检查类型: git | git-lfs | python3 | curl | repo | git-config | disk-space | all
```

### verify_download.sh

自动验证下载完整性（下载脚本自动调用）：
- 目录结构检查
- foundation 子系统检查
- ACE Engine 组件检查
- 关键文件检查
- repo 状态检查
- 仓库完整性验证

## 验证结果处理

### 验证通过
```
✓ 验证通过！OpenHarmony 源码完整。

后续步骤:
1. 配置编译环境
2. 全量编译代码: ./build.sh --ccache --product-name rk3568
```

### 验证失败
```
✗ 验证发现问题

建议:
1. 同步缺失仓库: repo sync -c
2. 拉取 LFS 文件: repo forall -c 'git lfs pull'
3. 检查网络连接
```

