OpenHarmony 4.0 Release源码下载、编译及烧录

一、前言

本文以OpenHarmony 4.0 Release(以下简称4.0r)为例,详细介绍如何拉取、编译4.0r源码,以及如何烧录4.0r镜像。

二、环境配置

设备参数
主机平台Windows 10 64bit 16G RAM
代码服务器Ubuntu 20.04 128G RAM 16T存储
运行设备DAYU200 RK3568 2G RAM 1T存储

RK3568开发详情参考:RK3568开发板介绍

三、源码下载

首选推荐源码下载至linux代码服务器,资源更充裕,下载和编译更高效;若条件有限,需在个人PC上下载和编译4.0r源码,可使用虚拟机或WSL2下载和编译4.0r源码,参考:Windows 10 使用WSL2下载和编译安卓10源码

参考链接:
OpenHarmony搭建开发环境
OpenHarmony-v4.0-release 源码获取

安装OpenHarmony 工具和库

在linux环境下运行以下命令,安装OpenHarmony源码下载和编译所需的工具和库

$ sudo apt-get install -y gcc-arm-linux-gnueabi gcc-9-arm-linux-gnueabi
$ sudo apt-get install -y python python3 python3-pip binutils binutils-dev git git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev   libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4 bc gnutls-bin python3.8 python3-pip ruby genext2fs device-tree-compiler make libffi-dev e2fsprogs pkg-config perl openssl libssl-dev libelf-dev libdwarf-dev u-boot-tools mtd-utils cpio doxygen liblz4-tool openjdk-8-jre gcc g++ texinfo dosfstools mtools default-jre default-jdk libncurses5 apt-utils wget scons python3.8-distutils tar rsync git-core libxml2-dev lib32z-dev grsync xxd libglib2.0-dev libpixman-1-dev kmod jfsutils reiserfsprogs xfsprogs squashfs-tools pcmciautils quota ppp libtinfo-dev libtinfo5 libncurses5-dev libncursesw5 libstdc++6 gcc-arm-none-eabi vim ssh locales libxinerama-dev libxcursor-dev libxrandr-dev libxi-dev

获取源码

可通过repo + ssh和repo + https获取4.0r源码,两种方式取其一,推荐ssh

  • 方式一: repo + ssh
    注意: ssh需要在gitee注册公钥,步骤如下:
# 查看linux服务器个人公钥
$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAxxx...xxxserver2
#将上述公钥copy,添加到gitee ssh公钥处「个人设置」->「安全设置」->「SSH公钥」->「添加公钥」,否则没有权限拉取源码,报错如下:
...
git@gitee.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists
...

在这里插入图片描述

repo + ssh拉取代码步骤如下

#创建名为OpenHarmony_4.0_release文件夹,用于存放OpenHarmony 4.0 release源码
$ mkdir OpenHarmony_4.0_release
# 进入OpenHarmony_4.0_release目录
$ cd OpenHarmony_4.0_release
#初始化4.0r源码仓库
$ repo init -u git@gitee.com:openharmony/manifest.git -b refs/tags/OpenHarmony-v4.0-Release --no-repo-verify
#正常结果
...
Resolving deltas: 100% (6490/6490), done.
...
repo has been initialized in xxx/OpenHarmony_4.0_release
#拉取所有子仓库代码
$ repo sync -c
#拉取git lfs大文件(如二进制资源、模型文件、镜像等)
$ repo forall -c 'git lfs pull'
#统一将所有git仓库切换至OpenHarmony-v4.0-Release分支
$ repo start --all OpenHarmony-v4.0-Release
  • 方式二:repo + https
repo init -u https://gitee.com/openharmony/manifest -b refs/tags/OpenHarmony-v4.0-Release --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'
$ repo start --all OpenHarmony-v4.0-Release

四、源码编译

OpenHarmony 4.0 release源码编译步骤如下:
注意:bash build/prebuilts_download.sh仅首次编译时执行,后续编译无需执行

#进入源码根目录
$ cd OpenHarmony_4.0_release/
# 下载预便于工具链、编译器、依赖等,完成编译前的环境配置 (存在一定耗时,耐心等待~)
bash build/prebuilts_download.sh
#基于rk3568标准设备类型全量编译(默认8线程)
./build.sh -p rk3568
#一切顺利,编译成功结果如下:
...
[OHOS INFO] rk3568 build success
[OHOS INFO] Cost time:  0:40:14
=====build  successful=====
2025-09-18 20:20:30

在这里插入图片描述
生成镜像位于:out\rk3568\packages\phone\images
在这里插入图片描述

常见编译问题参考:OpenHarmony常见编译异常处理
注意:有时Ubuntu系统因为环境问题,导致OpenHarmony源码编译异常,可借助docker部署干净的ubuntu环境来下载和编译OpenHarmony源码,可参考:Docker 编译OpenHarmony 4.0 release

五、镜像烧录

参考链接
烧录OpenHarmony源码镜像需要使用RKDevTool烧写工具
在这里插入图片描述
RKDevTool_windows工具下载

安装USB驱动

解压下载好的DriverAssitant_v5.1.1.zip,鼠标选中DriverInstall.exe双击打开安装程序
在这里插入图片描述
选择"驱动安装"按钮,安装成功后点击"确定",关闭弹框
在这里插入图片描述

烧写镜像

打开RKDevTool.exe烧写工具
在这里插入图片描述
表格鼠标右键选择"导入配置"
在这里插入图片描述
选择生成镜像目录out\rk3568\packages\phone\images\config.cfg文件,鼠标√项最右侧空白栏,选择相应文件,更新选项路径

名称文件
LoaderMiniLoaderAll.bin
Parameterparameter.txt
Ubootuboot.img
misc
resourceresource.img
Boot_linuxboot_linux.img
ramdiskramdisk.img
Systemsystem.img
Vendorvendor.img
sys-prod
chip-prod
updaterupdater.img
Userdatauserdata.img
bootctrl

在这里插入图片描述
表格区域鼠标右键选择"导出配置",选择合适路径保存为xxx/config.cfg,以便后续烧录直接导入该配置文件,避免重复更新配置
在这里插入图片描述
此时RKDevTool 显示没有发现设备发现一个MASKROM设备,不在’LOADER’烧写模式,无法给设备烧写镜像。

  • 将RK3568设备开机,按下图连接蓝色USB烧写线
    在这里插入图片描述
  • 设备开机后,持续按下Recovery(2) + RESET(1)按键大约3秒,然后松开 RESET(1) 按键,大约3秒后松开Recovery(2) 按键,正常情况RKDevTool 识别到设备,并进入LOADER模式
    在这里插入图片描述
  • 点击"执行"按钮,进行程序烧写,烧写成功后设备自动开机
    在这里插入图片描述
    可通过以下hdc命令查看系统版本、关闭自动锁屏
#查看系统版本信息
> hdc shell param get const.product.software.version
OpenHarmony 4.0.10.13

#修改电源模式为性能模式,避免自动锁屏
> hdc shell power-shell setmode 602
Set Mode: 602
Set Mode Success!
***Mutex Cycles Statistic***

更多OpenHarmony源码(FullSDK、模块等)编译技巧↩

✍OneMoreThink
想必你也想到了,每次编译源码后,config.cfg会被覆盖,每次RKDevTool烧录系统,选择配置文件、配置文件路径还是略显繁琐,最好能"傻瓜式"一键完成烧录,那么你可以使用笔者写好的OpenHarmony镜像自动烧录bat脚本工具,提升镜像烧录效率。

六、总结

Congratulations~✌ 通过本文,你已基本掌握:

  • OpenHarmony源码环境搭建
  • OpenHarmony源码下载和编译
  • OpenHarmony镜像烧录

接下来就可以尝试基于OpenHarmony源码进行开发创作了~

了解更多关于OpenHarmony文章↩

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值