源码获取

About 19 min

源码获取

OpenHarmony介绍

OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目,目标是面向全场景、全连接、全智能时代,搭建一个智能终端设备操作系统的框架和平台,促进万物互联产业的繁荣发展。

开源代码仓库地址:https://openharmony.gitee.com

源码获取概述

本文档将介绍如何获取OpenHarmony源码并说明OpenHarmony的源码目录结构。OpenHarmony的代码以组件的形式开放,开发者可以通过如下其中一种方式获取:

  • 获取方式1:从码云代码仓库获取。通过repo或git工具从代码仓库中下载,此方式可获取最新代码。
  • 获取方式2:通过HPM包管理器获取。在HPM网站,查找满足需求的开源发行版,直接下载(或者定制后下载),再通过hpm-cli命令工具将所需的组件及工具链下载、安装到本地。
  • 获取方式3:从镜像站点下载归档后的发行版压缩文件。如果要获取旧版本的源码,也可通过此方式获取,此方式下载速度较快。
  • 获取方式4:从github代码仓库获取。通过repo或git工具从代码仓库中下载,此方式可获取最新代码。

获取方式1:从码云仓库获取

适用场景

  • 基于OpenHarmony的稳定分支建立自己的基线,分发下游客户。

  • 已经完成自身软件与OpenHarmony的对接,需要进行OpenHarmony官方认证。

  • 芯片/模组/app通过OpenHarmony官方认证后,贡献代码到OpenHarmony社区。

  • 修复OpenHarmony的问题。

  • 学习OpenHarmony的源码。

前提条件

  1. 注册码云gitee账号。

  2. 注册码云SSH公钥,请参考码云帮助中心

  3. 安装git客户端git-lfs并配置用户信息。

    git config --global user.name "yourname"
    git config --global user.email "your-email-address"
    git config --global credential.helper store
    
    1
    2
    3
  4. 安装码云repo工具,可以执行如下命令。

    curl -s https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo  #如果没有权限,可下载至其他目录,并将其配置到环境变量中
    chmod a+x /usr/local/bin/repo
    pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests
    
    1
    2
    3

操作步骤

获取轻量/小型/标准系统源码

说明: Master主干为开发分支,开发者可通过Master主干获取最新特性。发布版本代码相对比较稳定,开发者可基于发布版本代码进行商用功能开发。

  • OpenHarmony主干代码获取

    方式一(推荐):通过repo + ssh 下载(需注册公钥,请参考码云帮助中心)。

    repo init -u git@gitee.com:openharmony/manifest.git -b master --no-repo-verify
    repo sync -c
    repo forall -c 'git lfs pull'
    
    1
    2
    3

    方式二:通过repo + https 下载。

    repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify
    repo sync -c
    repo forall -c 'git lfs pull'
    
    1
    2
    3
  • OpenHarmony 发布版本代码获取

    OpenHarmony发布版本源码获取方式请参考版本Release-Notes

获取方式2:从HPM获取

适用场景

对于刚接触OpenHarmony的新用户,希望能够参考一些示例解决方案从而进行快速开发。可以在HPM网站获取下载开源发行版,也可以在开源发行版的基础上定制(添加或删除组件)。然后通过包管理器命令行工具(hpm-cli)将需要的组件及相关的编译工具链全部下载、安装到本地。

前提条件

先要在本地安装Node.js和hpm命令行工具,安装步骤如下:

  1. 安装Node.js。

    官网下载并在本地安装Node.js.

    推荐安装 Node.js 12.x (包含 npm 6.14.4)或更高版本 (推荐 12.13.0+)。

  2. 通过Node.js自带的npm安装hpm命令行工具。

    打开CMD,执行以下命令:

    npm install -g @ohos/hpm-cli
    
    1
  3. 安装完成后执行如下命令,显示hpm版本,即安装成功。

    hpm -V 或 hpm --version
    
    1
  4. 如果升级hpm的版本,请执行如下命令:

    npm update -g @ohos/hpm-cli
    
    1

操作步骤

  1. 查找发行版。

    1. 打开包管理页面HPM,设定搜索的对象为“发行版“,如下图所示。

    2. 在搜索框输入关键字搜索,如“摄像头”。

    3. 结果中显示与关键字匹配的发行版,可以进一步根据组件类别等过滤条件(如:适配的开发板,内核)精确筛选。

    4. 查找合适的发行版,点击查看发行版的详情介绍。

      图 1 包管理

  2. 了解发行版详情。

    1. 仔细阅读发行版的说明信息,以了解使用场景、特性、组件构成、使用方法以及如何进行定制化,如下图所示。
    2. 点击「直接下载」,将发行版下载到本地。
    3. 点击「定制组件」,将对发行版包含的组件进行定制(添加/删除)。

    图 2 发行版示例

  3. 定制组件。

    1. 进入发行版的定制页面,如下图所示。

    2. 通过关闭开关移除可选组件,或者通过“添加组件”增加新的组件。

    3. 在右边填写您的项目基本信息,包括名称、版本、描述等信息。

    4. 点击“下载“,系统会根据您的选择,生成相应的OpenHarmony代码结构文件(如my_cust_dist.zip),保存至本地文件。

      图 3 组件定制

  4. 下载安装组件。

    1. 解压下载的压缩文件,用命令行工具CMD(Linux下的Shell终端)
    2. 在解压后的文件目录下执行hpm install指令
    3. 下载的组件存在工程目录下的ohos_bundles文件夹中(部分组件安装后会将源码复制到指定目录下)。

获取方式3:从镜像站点获取

为了获得更好的下载性能,您可以选择从以下站点的镜像库获取源码或者对应的解决方案。

说明:

  • 本部分只提供OpenHarmony Master最新版本和LTS最新版本的源码获取方式, 其他版本源码获取方式以及具体版本信息请参考Release-Notes
  • 当前Master 1.0版本已经不再维护。

表 1 源码获取路径

LTS版本源码

版本信息

下载站点

SHA256校验码

全量代码(标准、轻量和小型系统)

3.0

站点

SHA256校验码

标准系统解决方案(二进制)

3.0

站点

SHA256校验码

Hi3861解决方案(二进制)

3.0

站点

SHA256校验码

Hi3518解决方案(二进制)

3.0

站点

SHA256校验码

Hi3516解决方案-LiteOS(二进制)

3.0

站点

SHA256校验码

Hi3516解决方案-Linux(二进制)

3.0

站点

SHA256校验码

RELEASE-NOTES

3.0

站点

-

Master版本源码

版本信息

下载站点

SHA256校验码

Beta版本(标准系统)

2.2 Beta2

站点

SHA256校验码

全量代码(标准系统)

2.0 Canary

站点1站点2

SHA256校验码

全量代码(轻量和小型系统)

1.0(不再维护)

站点

SHA256 校验码

Hi3861解决方案(二进制)

1.0(不再维护)

站点

SHA256 校验码

Hi3518解决方案(二进制)

1.0(不再维护)

站点

SHA256 校验码

Hi3516解决方案(二进制)

1.0(不再维护)

站点

SHA256 校验码

RELEASE-NOTES

1.0(不再维护)

站点

-

编译工具链

版本信息

下载站点

SHA256校验码

编译工具链获取清单

-

站点

-

获取方式4:从github镜像仓库获取(每天UTC时间23点同步)

方式一(推荐):通过repo + ssh 下载(需注册公钥,请参考GitHub帮助中心)。

repo init -u git@github.com:openharmony/manifest.git -b master --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'
1
2
3

方式二:通过repo + https 下载。

repo init -u https://github.com/openharmony/manifest.git -b master --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'
1
2
3

源码目录简介

下表是OpenHarmony源码的目录及简单说明:

表 2 源码目录

目录名

描述

applications

应用程序样例,包括camera等

base

基础软件服务子系统集&硬件服务子系统集

build

组件化编译、构建和配置脚本

docs

说明文档

domains

增强软件服务子系统集

drivers

驱动子系统

foundation

系统基础能力子系统集

kernel

内核子系统

prebuilts

编译器及工具链子系统

test

测试子系统

third_party

开源第三方组件

utils

常用的工具集

vendor

厂商提供的软件

build.py

编译脚本文件