任务目标:

将7885 解耦项目的OpenHarmony框架从OH4.1Release升级到OH5.0Release。

 

项目结构说明:

由社区sig工程和laval工程组成,社区sig工程负责编译OH框架和开源产品仓,laval工程负责编译展锐镜像。

工程具体说明可查阅:https://gitee.com/cooperation-team-7885/make_pac/blob/5.0/README.md

 

升级步骤:

一、搭建sig工程

1、创建manifests工程,xml中OH底座仓指向社区OH5.0.0release版本tag节点,产品仓(device和vendor仓)则基于OH4.1解耦版本在对应的sig仓fork一份新的5.0分支,fork仓的新分支需统一命名。

2、内核方面有三个仓,分别为kernel_linux_5.15、kernel_linux_common_modules和kernel_linux_patches。

kernel_linux_5.15仓在sig空间已存在,需fork一份新的5.0分支。

kernel_linux_common_modules和kernel_linux_patches仓在sig空间中不存在,涉及的嵌入式修改需作为patch放在device_board_hardmony下的kernel目录。

 

 

二、搭建laval工程

1、创建manifests工程,xml中OH底座仓指向社区OH5.0release版本tag节点,kernel相关仓指向sig仓的5.0分支,产品仓则基于OH4.1解耦版本fork一份新的5.0分支。

2、基于4.1版本底座的嵌入式修改pr,5.0工程对应的仓同样需要fork一份。

 

 

 

三、编译sig工程

目标:保障编译通过,和laval工程合并拍包烧录后启动正常,如hdc能识别设备,以及foundation、render_service基本服务能启动。

注意:需要嵌入式修改OH仓的代码需制作成patch放到device_soc_spreadtrum/patches目录下,并修改vendor/***/下的patch.yml配置。

1、裁剪产品仓模块

  • 裁剪产品仓非启动相关模块

  • build仓patch修改适配到5.0

     

2、执行产品编译,解决编译报错

  • 内核linux-5.15基于OH5.0适配

  • 内核5.15的kernel_linux_patch仓的hdf.patch挪到device/board/***/kernel目录,在编译内核时拷贝到kernel_linux_patch目录下

  • kernel_common_modules仓的patch挪到device/board/***/kernel目录,在编译内核时打补丁到kernel_common_modules目录

  • 内核5.15导致的部分OH部件编译报错问题需制作成patch,如device_soc_spreadtrum/patches下的drivers/hdf_core中的0001-hdf_core.patch

  • vendor仓配置适配OH5.0,如:features命名、resourceschedule配置、security_config配置等,可能还涉及其他配置,可参考社区rk3568

     

3、编译完成后拍包

拍包工具分:sig+laval合并拍包、sig工程独立拍包。

  • sig+laval合并拍包需在laval工程成功编译后执行,方便一次性烧录调试。

  • sig工程独立拍包为sig工程独立发布后的必要工具,保障oh相关功能更新时烧录。

拍包工具及说明见:https://gitee.com/cooperation-team-7885/make_pac/tree/5.0/

 

四、编译laval工程

目标:保障编译通过,和sig工程合并拍包烧录后启动正常。

1、执行产品编译,解决编译报错

  • 基于OH5.0底座的编译报错,涉及嵌入式修改的OH仓需fork,并更新manifests工程,适配修改后提交到fork的仓。

  • 编译完成后保障展锐相关组件和驱动没有缺失

     

2、编译完成后拍包

编译完成后会在out目录生成独立的laval工程pac包,可独立烧录该包,然后再烧录sig工程的pac包。也可以通过sig+laval合并拍包后一次性烧录。

 

Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐