在鸿蒙OpenHarmony系统中,诸如Settings,SystemUI等系统应用,如果开发这些系统应用,与常规的普通应用有什么区别呢,本文以OpenHarmony4.0下的Settings为例对此予以简要阐述。
1,系统应用Settings的获取
可以通过 gitee.com/openharmony… 获取到Settings的源代码。
获取到源代码后,通过DevEco Studio 4.0开发工具打开代码,会发现代码是编译不过的,其原因是DevEco Studio工具下载的SDK是public sdk,而系统应用的编译需要使用full sdk.
2,下载full sdk
获取full sdk可以通过openharmony的流水线 ci.openharmony.cn/workbench/c… 获取,在每日构建中选择相应的分支和相应的时间段。
另外也可以通过访问镜像网址 mirrors.huaweicloud.com/harmonyos/o… 获取不同版本的full sdk,比如可以选择 mirrors.huaweicloud.com/harmonyos/o… 下的full sdk。
下载了full sdk 后,将之解压缩后替换到DevEco Studio 4.0中SDK的位置相应的API比如API 10下,这样系统应用就可以调用full sdk中的相关接口。
3,安装系统应用
系统编译通过后,需要安装到系统上,此时涉及到系统签名问题。
(1) 首先通过 gitee.com/openharmony… 获取到developtools_hapsigner源代码。
(2) 接着打开developtools_hapsigner仓库,进入 dist 目录,点击下载 OpenHarmony.p12 和 OpenHarmonyApplication.pem(pem文件若无法直接下载,可直接在目录中创建文件然后将内容拷贝到文件中)。
并将下载好的 OpenHarmony.p12 和 OpenHarmonyApplication.pem 放在系统应用Settings的工程目录中的 signature 文件夹下。
(3) 下面需要配置签名文件,DevEco Studio 4.0 Release 版本界面化配置签名时,秘钥不允许配置8位以下纯数字秘钥,而标准签名文件的秘钥为123456 ,所以无法通过DevEco Studio 界面进行签名的配置。仅能使用手动配置build-profile.json5 文件方式,进行签名信息的配置。
下载material(ost.51cto.com/resource/25…) 下载后解压缩将文件放在系统应用Settings的工程目录中的signature文件夹下。
material 文件夹中存放的为加密文件,此包将给予签名工具验证秘钥时使用。
(4) 配置工程根路径build-profile.json5 文件,拷贝以下签名信息到配置文件中,其中storePassword 和keyPassword 为material 包与秘钥加密生成的数据,keyAlias 为固定值"OpenHarmony Application Release"。另外products中的 signingConfig 设置为release。
"products": [
{
...
"signingConfig": "release",
...
}
]
"signingConfigs": [{
"name": "release",
"material": {
"storePassword": "00000016D9DCF063F0FC4BBD0E7FE1E3B06A67C07BECE1BDD4E2A3EFDAE20F890810EC02AA2A",
"certpath": "signature/OpenHarmonyApplication.pem",
"keyAlias": "OpenHarmony Application Release",
"keyPassword": "00000016FD3897FD4C46940ED39FFC652872B7B18BEDCCA07400A6EBEE307C9C41B96DB6B64D",
"profile": "signature/settings.p7b",
"signAlg": "SHA256withECDSA",
"storeFile": "signature/OpenHarmony.p12"
}
}]
(5) 构建安装应用
单击 Build >Build Hap(s)/APP(s) > Build APP(s) 构建 Settings 工程HAP包。
编译好的应用在\product\phone\build\default\outputs\default\phone-default-signed.hap
之后执行如下命令:
hdc shell
# mount -o remount,rw /
# exit
hdc file send .\phone-default-signed.hap /system/app/com.ohos.settings
hdc shell
# mount -o remount,rw /
# cd /system/app/com.ohos.settings
# mv phone-default-signed.hap Settings.hap
# bm install -p Settings.hap
# reboot
这样新的hap文件应用就安装到设置中了。