OpenHarmony 4.0 Release源码下载、编译及烧录
文章目录
- 一、前言
- 二、环境配置
- 三、源码下载
- 安装OpenHarmony 工具和库
- 获取源码
- 四、源码编译
- 五、镜像烧录
- 安装USB驱动
- 烧写镜像
- 六、总结
一、前言
本文以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文件,鼠标√项最右侧空白栏,选择相应文件,更新选项路径
名称 | 文件 |
---|---|
Loader | MiniLoaderAll.bin |
Parameter | parameter.txt |
Uboot | uboot.img |
misc | |
resource | resource.img |
Boot_linux | boot_linux.img |
ramdisk | ramdisk.img |
System | system.img |
Vendor | vendor.img |
sys-prod | |
chip-prod | |
updater | updater.img |
Userdata | userdata.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文章↩