前言

介于最近有很多小伙伴咨询相关的问题,所以为了更好的帮助大家去快速上手OpenHarmony系统应用的开发,下文会详细介绍3.2release版本系统应用对DevEcoStudio3.1Release的适配,以及系统应用的签名和安装。

 

示例环境

系统版本: 3.2release(3.2.14.5)

芯片型号: rk3568

设备型号: DAYU200

SDK版本: Full-SDK(3.2.14.2)

示例应用: Launcher(系统桌面)

应用分支: 3.2Release

IDE版本: 3.1Release(3.1.0.500)(适配)、 3.0Beta4(3.0.0.991)(签名)

说明:以上环境并不是需要完全相同才能进行适配,OpenHarmony本身是有向下兼容机制的,只要系统、SDK、系统应用、IDE版本差距不要太大即可。

 

适配流程

步骤一 适配ohpm

使用3.1Release版本的IDE打开下好的Launcher代码,IDE会自动提示是否要升级工程

依次点击Start automatic configuration migration->Migrate->Finish。 

 

步骤二 适配依赖

将根目录下的oh-package.json5里的

"hypium": "^1.0.0"

删除并Sync now

 

步骤三 配置签名

在OpenHarmony中,出于安全考虑,系统应用需要配置系统颁发的相关签名文件才可以正常安装到设备上。

在最近更新的系统应用中,有的已经将相关的文件和配置传到了社区仓库中,如Launcher

 也有部分系统应用只上传了p7b文件,如SystemUI

因此,针对未上传的部分系统应用,需要如下操作去进行签名配置。

 

新建签名工程 

3.0Beta4版本的IDE里新建一个OpenHarmony工程。

 

添加签名文件

在根目录下创建signature文件夹,并将OpenHarmony.p12OpenHarmonyApplication.cer以及通过签名工具生成的xxx.p7b放到signature目录下。

说明: 上述签名文件的作用及生成方法可参考https://gitee.com/openharmony/developtools_hapsigner

快速生成p7b的方法:

java -jar hap-sign-tool.jar sign-profile -keyAlias "OpenHarmony Application Profile Release" -signAlg "SHA256withECDSA" -mode "localSign" -profileCertFile OpenHarmonyProfileRelease.pem -inFile UnsgnedReleasedProfileTemplate.json -keystoreFile OpenHarmony.p12 -outFile xxx.p7b -keyPwd "123456" -keystorePwd "123456"

上述命令中的hap-sign-tool.jarOpenHarmonyProfileRelease.pemUnsgnedReleasedProfileTemplate.json可在SDK的toolchains/lib文件夹下找到。

 

配置签名

依次点击IDE菜单栏File->Project Structure->Project->Signing Configs,取消Automatically generate signature勾选,进行如下配置:

Store File(*.p12): 新添加的OpenHarmony.p12文件。

Store Password: 123456(固定值)。

Key Alias: OpenHarmony Application Release(固定值)。

Key Password: 123456(固定值)。

Profile File(*.p7b): 新添加的xxx.p7b文件。

Cerpath File(*.cer): 新添加的OpenHarmonyApplication.cer文件。

配置好后依次点击Apply->OK即可。 

说明: 配置Store Password和Key Password时,由于IDE默认不支持全数字输入,所以会看到有报错警告。但是在3.0Beta4版本的IDE中,不影响配置签名的操作,这也就是为什么不能直接在原工程直接进行签名配置的原因。

 

查看根目录下的build-profile.json5signingConfigs签名已经配置完成,并且在signature目录下正确生成了material文件夹。

 

修改签名配置路径 

certpathprofilestoreFile3个签名配置改为相对路径,并重新Sync Now

 

移植签名配置

将签名工程中的signature文件夹及build-profile.json5中的signingConfigs移植到待签名系统应用工程中,并重新Sync Now

 以上,系统应用的签名就配置成功了。

 

步骤四 编译替换

依次点击IDE菜单栏Build->Build Hap(s)/APP(s)->Build Hap(s),编译成功后,将编译好的hap通过以下指令替换到设备中:

hdc shell "mount -o remount,rw /"
hdc shell "rm -rf /data/*"
hdc file send Launcher.hap /system/app/com.ohos.launcher/Launcher.hap
hdc shell "reboot"

待设备重启后,就能看到成功替换运行的系统应用了。

说明: 有的系统应用的编译产物只有1个hap,而有的系统应用包含多个。比如Launcher就会生成Launcher和Launcher_Settings2个hap,这里需要把对应包名下的所有hap都替换才能重启后成功安装,因为OpenHarmony安装应用时会校验签名一致性和SDK一致性。这里有个非常特殊的系统应用就是SystemUI,其包名下的hap分别为2个项目来源,一个是SystemUI本身,一个是ScreenLock,所以替换时,需要同时替换这两个项目编译出来的hap(用同一套SKD和签名)。

 

相关仓

applications_launcher

developtools_hapsigner

Logo

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

更多推荐