您当前的位置:首页 > 电脑百科 > 程序开发 > 移动端 > 鸿蒙

OpenHarmony应用签名 - 系统应用签名

时间:2023-03-01 11:33:34  来源:51CTO  作者:

概述

文档环境

开发环境:windows 11

DevEco Studio 版本:DevEco Studio 3.1 Beta1(3.1.0.200)

SDK 版本:3.2.10.8(Full SDK)

开发板型号:DAYU 200

系统版本:OpenHarmony 3.2 Beta5

示例工程:​​Applications_SystemUI (OpenHarmony 3.2 Beta5分支)​​​

功能简介

OpenHarmony开源社区提供了标准系统上的部分系统应用,如桌面、SystemUI、设置等,为开发者提供了构建标准系统应用的具体实例,这些应用支持在所有标准系统的设备上使用。本篇文档将介绍如何给这些系统应用进行签名,使它们可以正确的安装和运行在OpenHarmony系统上。本篇文档仅用于方便大家学习系统应用的开发和调试,不用做正式项目发布和商用使用。

系统应用目前包含如下:

  1. ​Applications_Launcher​​:Launcher 作为系统人机交互的首要入口,提供应用图标的显示、点击启动、卸载应用,并提供桌面布局设置以及最近任务管理等功能。
  2. ​Applications_SystemUI​​:SystemUI应用是OpenHarmony中预置的系统应用,为用户提供系统相关信息展示及交互界面,包括系统状态、系统提示、系统提醒等,例如系统时间、电量信息。
  3. ​Applications_Settings​​:设置应用是 OpenHarmony 系统中预置的系统应用,为用户提供设置系统属性的交互界面,例如设置系统时间,屏幕亮度等系统属性。
  4. ​Applications_Camera​​:相机应用是OpenHarmony标准系统中预置的系统应用,为用户提供基础的相机拍摄功能,包括预览、拍照、摄像、缩略图显示、跳转相册、多机位协同。 Camera 采用纯 arkui-ts 语言开发。
  5. ​Applications_Photos​​:图库是系统内置的可视资源访问应用,提供图片和视频的管理、浏览、显示、编辑操作等功能,并支持默认相册和用户相册管理。

除以上主要系统应用之外,还预置了一些简单的示例应用,如时钟、计算器、空气质量等,可供开发者参考学习。

系统应用签名

我们以相对较复杂的 Applications_SystemUI 项目为例,克隆 SystemUI 项目,使用 DevEco Studio 打开工程,查看当前工程的签名配置 build-profile.json5 。

 

OpenHarmony应用签名 - 系统应用签名-开源基础软件社区

 

当前默认工程是未配置签名的状态,所构建的包均为 unsigned 标记的HAP包,无法安装到 OpenHarmony 系统中,下面我们分别使用 标准签名 和 自动签名 ,两种方式给 SystemUI 工程配置签名。

标准签名:配置简单,适用于工程中提供p7b签名文件的工程。

自动签名:配置较复杂,适用于工程中未提供p7b签名文件或p7b签名文件与系统配置不匹配的情况。

除以上两种方式外还可使用手动签名的方式生成签名文件给应用签名,此种方式更为复杂,但具有较高的灵活性,不在此篇文档中进行介绍。

标准签名

签名文件获取

拷贝 OpenHarmony 标准版工程签名文件到 SystemUI 工程的 signature 目录。打开​​developtools_hapsigner​​仓库,进入 dist 目录,点击下载​​OpenHarmony.p12​​​和​​OpenHarmonyApplication.pem​​(pem文件若无法直接下载,可直接在目录中创建文件然后将内容拷贝到文件中)。

 

OpenHarmony应用签名 - 系统应用签名-开源基础软件社区

 

把下载好的文件放入工程目录的 signature 中。

 

OpenHarmony应用签名 - 系统应用签名-开源基础软件社区

 

签名文件配置

  1. DevEco Studio 3.1 Beta1 版本界面化配置签名时,秘钥不允许配置8位以下纯数字秘钥,而标准签名文件的秘钥为123456 ,所以无法通过DevEco Studio 界面进行签名的配置。仅能使用手动配置build-profile.json5 文件方式,进行签名信息的配置。下载​​material包​​解压后放入signature 目录中,material 文件夹中存放的为加密盐文件,此包将给予签名工具验证秘钥时使用。

 

OpenHarmony应用签名 - 系统应用签名-开源基础软件社区

 

  1. 配置工程根路径build-profile.json5 文件,拷贝以下签名信息到配置文件中,其中storePassword keyPassword material 包与秘钥加密生成的数据,keyAlias 为固定值"OpenHarmony Application Release"。
"signingConfigs": [{
    "name": "release",
    "material": {
        "storePassword": "00000016D9DCF063F0FC4BBD0E7FE1E3B06A67C07BECE1BDD4E2A3EFDAE20F890810EC02AA2A",
        "certpath": "signature/OpenHarmonyApplication.pem",
        "keyAlias": "OpenHarmony Application Release",
        "keyPassword": "00000016FD3897FD4C46940ED39FFC652872B7B18BEDCCA07400A6EBEE307C9C41B96DB6B64D",
        "profile": "signature/systemui.p7b",
        "signAlg": "SHA256withECDSA",
        "storeFile": "signature/OpenHarmony.p12"
    }
}],

 

OpenHarmony应用签名 - 系统应用签名-开源基础软件社区

 

构建安装验证

  1. 单击Build >Build Hap(s)/APP(s) > Build Hap(s) 构建SystemUI 工程HAP包。

SystemUI 工程共有6个HAP包分别位于以下目录:

systemui_entry:
entryphonebuilddefaultoutputsdefaultphone_entry-default-signed.hap

systemui_volumepanel:
productdefaultvolumepanelbuilddefaultoutputsdefaultdefault_volumepanel-phone_entry-default-signed.hap

systemui_statusbar:
productphonestatusbarbuilddefaultoutputsdefaultphone_statusbar-phone_entry-default-signed.hap

systemui_notificationmanagement:
productdefaultnotificationmanagementbuilddefaultoutputsdefaultdefault_notificationmanagement-phone_entry-default-signed.hap

systemui_navigationbar:
productdefaultnavigationBarbuilddefaultoutputsdefaultdefault_navigationBar-phone_entry-default-signed.hap

systemui_dropdownpanel:
productphonedropdownpanelbuilddefaultoutputsdefaultphone_dropdownpanel-phone_entry-default-signed.hap

  1. 使用"hdc file send {源地址} {目标地址}"命令分别把HAP包放入系统中替换当前SystemUI 项目的安装包,SystemUI 安装包路径为/system/app/com.ohos.systemui/。

推送文件前需先获取系统文件权限,执行"hdc shell mount -o remount,rw /"获取权限。

hdc工具位于SDK/{Version}/toolchains/目录中。

 

OpenHarmony应用签名 - 系统应用签名-开源基础软件社区

 

  1. 在OpenHarmony系统Shell命令行 中执行"rm -rf /data/* && reboot"系统会删除所有用户数据并重启,重启后系统重新安装全部系统应用。也可通过"bm instlal -p {HAP包地址} -u 0"的方式单独安装某一个HAP包进行验证,不同系统应用在安装过程中存在差异
  2. 在OpenHarmony系统Shell命令行 中使用"bm dump -n com.ohos.systemui | grep name"或查看界面SystemUI 是否启动,验证安装是否成功。

 

OpenHarmony应用签名 - 系统应用签名-开源基础软件社区

 

以下为一键替换安装脚本,方便大家学习使用,可保存为 shell 或 bat 脚本,在 SystemUI 根目录下执行:

set systemui_entry=entryphonebuilddefaultoutputsdefaultphone_entry-default-signed.hap
set systemui_volumepanel=productdefaultvolumepanelbuilddefaultoutputsdefaultdefault_volumepanel-phone_entry-default-signed.hap
set systemui_statusbar=productphonestatusbarbuilddefaultoutputsdefaultphone_statusbar-phone_entry-default-signed.hap
set systemui_notificationmanagement=productdefaultnotificationmanagementbuilddefaultoutputsdefaultdefault_notificationmanagement-phone_entry-default-signed.hap
set systemui_navigationbar=productdefaultnavigationBarbuilddefaultoutputsdefaultdefault_navigationBar-phone_entry-default-signed.hap
set systemui_dropdownpanel=productphonedropdownpanelbuilddefaultoutputsdefaultphone_dropdownpanel-phone_entry-default-signed.hap
set hdc=hdc
%hdc% shell mount -o remount,rw /
%hdc% shell rm -rf /data/*
%hdc% shell rm -rf /system/app/com.ohos.systemui/*
%hdc% file send %systemui_entry% /system/app/com.ohos.systemui/SystemUI.hap
%hdc% file send %systemui_volumepanel% /system/app/com.ohos.systemui/SystemUI-VolumePanel.hap
%hdc% file send %systemui_statusbar% /system/app/com.ohos.systemui/SystemUI-StatusBar.hap
%hdc% file send %systemui_notificationmanagement% /system/app/com.ohos.systemui/SystemUI-NotificationManagement.hap
%hdc% file send %systemui_navigationbar% /system/app/com.ohos.systemui/SystemUI-NavigationBar.hap
%hdc% file send %systemui_dropdownpanel% /system/app/com.ohos.systemui/SystemUI-DropdownPanel.hap
%hdc% shell reboot

自动签名

修改权限文件

  1. 打开OpenHarmony SDK 所在目录,可通过工程根路径local.properties 文件或DevEco Studio 菜单栏中单击File > Settings > SDK > OpenHarmony 界面查看 。

 

OpenHarmony应用签名 - 系统应用签名-开源基础软件社区

 

  1. OpenHarmony SDK 目录下,进入{Version} > toolchains > lib 文件夹,打开 UnsgnedReleasedProfileTemplate.json 文件。

 

OpenHarmony应用签名 - 系统应用签名-开源基础软件社区

 

  1. apl 配置项配置为system_core app-feature 配置项配置为ohos_system_app , Profile 文件的修改参考​​HarmonyAppProvision配置文件的说明​​。

 

OpenHarmony应用签名 - 系统应用签名-开源基础软件社区

 

配置工程签名

  1. 单击File > Project Structure > Project > SigningConfigs 界面勾选Automatically generate signature ,等待自动签名完成即可,单击OK。

 

OpenHarmony应用签名 - 系统应用签名-开源基础软件社区

 

  1. 查看build-profile.json5 配置信息,配置信息中增加自动签名生成的证书信息。

 

OpenHarmony应用签名 - 系统应用签名-开源基础软件社区

 

证书指纹获取

方式一(官方推荐)
  1. 证书存放在HarmonyAppProvision 文件(修改权限文件中修改的Profile文件)的distribution-certificate 字段下,新建profile.cer 文件,将证书的内容拷贝到profile.cer 文件中。

 

OpenHarmony应用签名 - 系统应用签名-开源基础软件社区

 

  1. profile.cer 内容换行和去掉换行符。

 

OpenHarmony应用签名 - 系统应用签名-开源基础软件社区

 

  1. 使用keytool 工具执行 "keytool -printcert -file profile.cer" 打印对应的证书指纹。

若提示以下信息,则未安装 JAVA环境 或 keytool工具 未加入环境变量中。可安装后再次尝试,或使用完整路径使用工具。

 

OpenHarmony应用签名 - 系统应用签名-开源基础软件社区

 

打印指纹信息:

 

OpenHarmony应用签名 - 系统应用签名-开源基础软件社区

 

  1. 处理证书指纹,使用SHA256证书信息,去掉冒号,最终结果为:

A08D9DAB5FF3012158CDAA68D45ACAEE49F848E05065ED1CEF29A9B2724E3FA6

方式二(个人推荐)
  1. 单击Build > Build Hap(s)/APP(s) > Build Hap(s) 构建SystemUI 工程HAP包。找到 SystemUI_Entry模块构建的HAP包目录,位于工程路径 entryphonebuilddefaultoutputsdefault 中。

 

OpenHarmony应用签名 - 系统应用签名-开源基础软件社区

 

  1. 把HAP推送至系统中。

hdc file send entryphonebuilddefaultoutputsdefaultphone_entry-default-signed.hap /data/

 

OpenHarmony应用签名 - 系统应用签名-开源基础软件社区

 

  1. DevEco Studio 中打开Log 界面,选择HiLog 过滤 "finger" 字符。

 

OpenHarmony应用签名 - 系统应用签名-开源基础软件社区

 

  1. 进入系统Shell命令行 ,设置Hilog 等级。

hilog -b D

 

OpenHarmony应用签名 - 系统应用签名-开源基础软件社区

 

  1. 安装推送进系统的SystemUI_Entry 构建的HAP包,此时会发现安装报错,是因为我们HAP包的指纹信息与系统中配置的不同导致,但此时我们目的为获取指纹信息,忽略报错信息。

bm install -p /data/phone_entry-default-signed.hap -u 0

 

OpenHarmony应用签名 - 系统应用签名-开源基础软件社区

 

  1. 查看DevEco Studio Log 界面,指纹信息已经被打印出来。

 

OpenHarmony应用签名 - 系统应用签名-开源基础软件社区

 

A08D9DAB5FF3012158CDAA68D45ACAEE49F848E05065ED1CEF29A9B2724E3FA6

应用特权配置

  1. 提取当前系统中的特权配置文件install_list_capability.json ,文件位于/etc/app/ 

hdc file recv /etc/app/install_list_capability.json D:

 

OpenHarmony应用签名 - 系统应用签名-开源基础软件社区

 

  1. 找到install_list_capability.json SystemUI 配置段。

 

OpenHarmony应用签名 - 系统应用签名-开源基础软件社区

 

  1. 替换app_signature为我们在证书指纹获取章节中获取到的指纹信息并保存。

 

OpenHarmony应用签名 - 系统应用签名-开源基础软件社区

 

  1. 将特权配置文件install_list_capability.json 推送回系统中,覆盖系统配置。

hdc shell "mount -o remount,rw /"
hdc file send d:install_list_capability.json /etc/app/install_list_capability.json

 

OpenHarmony应用签名 - 系统应用签名-开源基础软件社区

 

  1. 重启系统特权配置文件生效。

构建安装验证

同标准签名。

文章相关附件可以点击下面的原文链接前往下载:

https://ost.51cto.com/resource/2546。



Tags:OpenHarmony   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
OpenHarmony - 基于ArkUI框架实现日历应用
前言对于刚刚接触OpenHarmony应用开发的开发者,最快的入门方式就是开发一个简单的应用,下面记录了一个日历应用的开发过程,通过日历应用的开发,来熟悉基本图形的绘制,ArkUI的组件...【详细内容】
2024-01-16  Search: OpenHarmony  点击:(54)  评论:(0)  加入收藏
OpenHarmony4.0发布:新增4000多个API接口,交互及隐私能力增强
钛媒体App 11月6日消息,以“技术筑生态,智联赢未来”为主题的第二届OpenHarmony技术大会在北京举办,活动中,OpenHarmony 4.0版本正式发布。据介绍,OpenHarmony4.0版本开发套件同...【详细内容】
2023-11-07  Search: OpenHarmony  点击:(139)  评论:(0)  加入收藏
OpenHarmony,奏响中国基础软件的“光辉岁月”
梦想需要多久的时间,多少血和泪,才能慢慢实现?天地间任我展翅高飞,谁说那是天真的预言?《光辉岁月》歌词中的这两个问题,恰好可以送给今天的中国基础软件事业。曾几何时,我们认为中...【详细内容】
2023-11-07  Search: OpenHarmony  点击:(101)  评论:(0)  加入收藏
OpenHarmony:如何使用HDF驱动控制LED灯
一、程序简介该程序是基于OpenHarmony标准系统编写的基础外设类:RGB LED。目前已在凌蒙派-RK3568开发板跑通。详细资料请参考官网:https://gitee.com/Lockzhiner-Electronics/...【详细内容】
2023-09-08  Search: OpenHarmony  点击:(263)  评论:(0)  加入收藏
深入了解华为OpenHarmony开源系统的架构与功能
当下最火的科技圈新闻,莫过于华为即将发布的Mate 60系列手机,但是今天摸鱼君不讲这些,毕竟我也没抢到,我也不是专业测评。但是以我所长说说它搭载鸿蒙系统的一些内容。 鸿蒙系...【详细内容】
2023-09-07  Search: OpenHarmony  点击:(208)  评论:(0)  加入收藏
OpenHarmony中使用MQTT
MQTT**(**消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而...【详细内容】
2023-08-29  Search: OpenHarmony  点击:(432)  评论:(0)  加入收藏
OpenHarmony组件复用示例
OpenHarmony组件复用示例 摘要:在开发应用时,有些场景下的自定义组件具有相同的组件布局结构,仅有状态变量等承载数据的差异。这样的组件缓存起来,需要使用到该组件时直接复用,...【详细内容】
2023-08-28  Search: OpenHarmony  点击:(352)  评论:(0)  加入收藏
OpenHarmony运行docker详细步骤
本文将介绍如何在OpenHarmony内核上运行docker容器。 目录 1.环境和设备 2.准备支持Docker容器的OpenHarmony内核 3.编译烧录镜像 4.安装docker容器引擎组件 5.格式...【详细内容】
2023-07-28  Search: OpenHarmony  点击:(399)  评论:(0)  加入收藏
OpenHarmony 3.2 Release新特性解读之驱动HCS
HCS(HDF Configuration Source)是HDF驱动框架的配置描述源码,内容以Key-Value为主要形式。它实现了配置代码与驱动代码解耦,便于开发者进行配置管理。OpenAtom OpenHarmony(以下...【详细内容】
2023-06-01  Search: OpenHarmony  点击:(328)  评论:(0)  加入收藏
OpenHarmony系统之Service代码一键生成工具介绍
作者:苟晶晶前言当开发者为OpenHarmony系统框架开发某些功能时,有时需要将这个功能包装成一个独立的服务进程运行在系统中,为了其它应用进程能够调用此服务,开发人员需要基于系...【详细内容】
2023-05-31  Search: OpenHarmony  点击:(287)  评论:(0)  加入收藏
▌简易百科推荐
OpenHarmony - 基于ArkUI框架实现日历应用
前言对于刚刚接触OpenHarmony应用开发的开发者,最快的入门方式就是开发一个简单的应用,下面记录了一个日历应用的开发过程,通过日历应用的开发,来熟悉基本图形的绘制,ArkUI的组件...【详细内容】
2024-01-16    51CTO  Tags:OpenHarmony   点击:(54)  评论:(0)  加入收藏
鸿蒙工程师,熬来了「造富时代」
  作者|张俊  来源|新浪科技  ID|techsina  “套壳安卓”的质疑言犹在耳,如今华为正在计划将鸿蒙OS与安卓完全脱离。  此前,鸿蒙OS为了迅速扩大用户规模,采取了兼容安卓...【详细内容】
2023-11-20    锌财经  Tags:鸿蒙   点击:(213)  评论:(0)  加入收藏
OpenHarmony:如何使用HDF驱动控制LED灯
一、程序简介该程序是基于OpenHarmony标准系统编写的基础外设类:RGB LED。目前已在凌蒙派-RK3568开发板跑通。详细资料请参考官网:https://gitee.com/Lockzhiner-Electronics/...【详细内容】
2023-09-08    51CTO  Tags:OpenHarmony   点击:(263)  评论:(0)  加入收藏
深入了解华为OpenHarmony开源系统的架构与功能
当下最火的科技圈新闻,莫过于华为即将发布的Mate 60系列手机,但是今天摸鱼君不讲这些,毕竟我也没抢到,我也不是专业测评。但是以我所长说说它搭载鸿蒙系统的一些内容。 鸿蒙系...【详细内容】
2023-09-07  摸鱼IT  微信公众号  Tags:OpenHarmony   点击:(208)  评论:(0)  加入收藏
鸿蒙操作系统开发 搭建环境
2019年8月9日,华为在东莞举行华为开发者大会,正式发布鸿蒙操作系统;2020年9月推出了鸿蒙2.0,全面使能全场景生态,具备跨设备、服务流转、极速直达、可视可说、隐私安全五大能力。...【详细内容】
2023-09-07  清华计算机学堂  微信公众号  Tags:鸿蒙   点击:(198)  评论:(0)  加入收藏
OpenHarmony中使用MQTT
MQTT**(**消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而...【详细内容】
2023-08-29    51CTO  Tags:OpenHarmony   点击:(432)  评论:(0)  加入收藏
OpenHarmony组件复用示例
OpenHarmony组件复用示例 摘要:在开发应用时,有些场景下的自定义组件具有相同的组件布局结构,仅有状态变量等承载数据的差异。这样的组件缓存起来,需要使用到该组件时直接复用,...【详细内容】
2023-08-28  zhushangyuan  51CTO  Tags:OpenHarmony   点击:(352)  评论:(0)  加入收藏
HarmonyOS开发第一步,熟知开发工具DevEco Studio
俗话说的好,工欲善其事,必先利其器,走进HarmonyOS第一步,开发工具必须先行,当然了,关于开发工具的使用,官网和其他的博客也有很多的讲解,但是并没有按照常用的功能进行概述,如果需要...【详细内容】
2023-08-22  程序员一鸣  今日头条  Tags:HarmonyOS   点击:(205)  评论:(0)  加入收藏
鸿蒙元服务开发实例:桌面卡片上的电动自行车助手E-Bike
E-Bike是一款基于HarmonyOS开发的元服务,以万能卡片的形式给骑行提供便捷服务。首先需要完成HarmonyOS开发环境搭建。一、元服务E-Bike简介E-Bike是一款基于HarmonyOS开发的...【详细内容】
2023-08-16    51CTO  Tags:鸿蒙   点击:(302)  评论:(0)  加入收藏
OpenHarmony运行docker详细步骤
本文将介绍如何在OpenHarmony内核上运行docker容器。 目录 1.环境和设备 2.准备支持Docker容器的OpenHarmony内核 3.编译烧录镜像 4.安装docker容器引擎组件 5.格式...【详细内容】
2023-07-28  离北况归  51CTO  Tags:OpenHarmony   点击:(399)  评论:(0)  加入收藏
站内最新
站内热门
站内头条