OpenHarmony应用签名 - 系统应用签名(4.0-Release)

这篇具有很好参考价值的文章主要介绍了OpenHarmony应用签名 - 系统应用签名(4.0-Release)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概述

文档环境

开发环境:Windows 11

DevEco Studio 版本:DevEco Studio 4.0 Release(4.0.0.600)

SDK 版本:4.0.10.15(Full SDK)

开发板型号:DAYU 200(RK3568)

系统版本:OpenHarmony-4.0-Release

示例工程:Applications_SystemUI

功能简介

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

openharmoney系统签名,OpenHarmony,harmonyos,华为

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

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

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

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

标准签名

签名文件获取

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

openharmoney系统签名,OpenHarmony,harmonyos,华为

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

openharmoney系统签名,OpenHarmony,harmonyos,华为

签名文件配置

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

openharmoney系统签名,OpenHarmony,harmonyos,华为

2. 配置工程根路径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"
    }
}],
​

构建安装验证

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

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

systemui_entry:
entry\phone\build\default\outputs\default\phone_entry-default-signed.hap

systemui_dialog:
product\default\dialog\build\default\outputs\default\default_dialog-phone_entry-default-signed.hap

systemui_volumepanel:
product\default\volumepanel\build\default\outputs\default\default_volumepanel-phone_entry-default-signed.hap

systemui_statusbar:
product\phone\statusbar\build\default\outputs\default\phone_statusbar-phone_entry-default-signed.hap

systemui_notificationmanagement:
product\default\notificationmanagement\build\default\outputs\default\default_notificationmanagement-phone_entry-default-signed.hap

systemui_navigationbar:
product\default\navigationBar\build\default\outputs\default\default_navigationBar-phone_entry-default-signed.hap

systemui_dropdownpanel:
product\phone\dropdownpanel\build\default\outputs\default\phone_dropdownpanel-phone_entry-default-signed.hap

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

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

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

锁屏应用与SystemUI共包名,但属于单独工程,不在SystemUI工程中。

此处使用 Build APP(s) 而非 Build Hap(s) ,因为 Build APP(s) 会构建出 Release 类型包,与系统预制包类型一致,如果使用 Build Hap(s) 则需删除锁屏应用。

openharmoney系统签名,OpenHarmony,harmonyos,华为

3. 在OpenHarmony系统 Shell命令行 中执行 rm -rf /data/* && reboot 系统会删除所有用户数据并重启,重启后系统重新安装全部系统应用。也可通过 bm instlal -p {HAP包地址} -u 0 的方式单独安装某一个HAP包进行验证,不同系统应用在安装过程中存在差异。

4. 在OpenHarmony系统Shell命令行 中使用 bm dump -n com.ohos.systemui | grep '"name": "com.ohos.systemui.' 或查看界面 SystemUI 是否启动,验证安装是否成功。

openharmoney系统签名,OpenHarmony,harmonyos,华为

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

set systemui_entry=entry\phone\build\default\outputs\default\phone_entry-default-signed.hap

set systemui_dialog=product\default\dialog\build\default\outputs\default\default_dialog-phone_entry-default-signed.hap

set systemui_volumepanel=product\default\volumepanel\build\default\outputs\default\default_volumepanel-phone_entry-default-signed.hap

set systemui_statusbar=product\phone\statusbar\build\default\outputs\default\phone_statusbar-phone_entry-default-signed.hap

set systemui_notificationmanagement=product\default\notificationmanagement\build\default\outputs\default\default_notificationmanagement-phone_entry-default-signed.hap

set systemui_navigationbar=product\default\navigationBar\build\default\outputs\default\default_navigationBar-phone_entry-default-signed.hap

set systemui_dropdownpanel=product\phone\dropdownpanel\build\default\outputs\default\phone_dropdownpanel-phone_entry-default-signed.hap

set hdc=hdc

%hdc% shell mount -o remount,rw /

%hdc% shell rm -rf /data/*

%hdc% file send %systemui_entry% /system/app/com.ohos.systemui/SystemUI.hap

%hdc% file send %systemui_dialog% /system/app/com.ohos.systemui/SystemUI-SystemDialog.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 界面查看 。

openharmoney系统签名,OpenHarmony,harmonyos,华为

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

openharmoney系统签名,OpenHarmony,harmonyos,华为

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

openharmoney系统签名,OpenHarmony,harmonyos,华为

配置工程签名

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

openharmoney系统签名,OpenHarmony,harmonyos,华为

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

openharmoney系统签名,OpenHarmony,harmonyos,华为

证书指纹获取

方式一(官方推荐)

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

openharmoney系统签名,OpenHarmony,harmonyos,华为

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

openharmoney系统签名,OpenHarmony,harmonyos,华为

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

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

openharmoney系统签名,OpenHarmony,harmonyos,华为

打印指纹信息:

openharmoney系统签名,OpenHarmony,harmonyos,华为

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

29D2B4EFFD0E6009778AF993EFBB270A6513420781BD37C5513B983C3253355C

方式二(个人推荐)

1. 单击 Build > Build Hap(s)/APP(s) > Build Hap(s) 构建 SystemUI 工程HAP包。找到 SystemUI_Entry模块构建的HAP包目录,位于工程路径 entry\phone\build\default\outputs\default\ 中。

openharmoney系统签名,OpenHarmony,harmonyos,华为

2. 把HAP推送至系统中。

hdc file send entry\phone\build\default\outputs\default\phone_entry-default-signed.hap /data/

openharmoney系统签名,OpenHarmony,harmonyos,华为

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

openharmoney系统签名,OpenHarmony,harmonyos,华为

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

hilog -b D

openharmoney系统签名,OpenHarmony,harmonyos,华为

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

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

openharmoney系统签名,OpenHarmony,harmonyos,华为

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

openharmoney系统签名,OpenHarmony,harmonyos,华为

29D2B4EFFD0E6009778AF993EFBB270A6513420781BD37C5513B983C3253355C

应用特权配置

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

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

openharmoney系统签名,OpenHarmony,harmonyos,华为

2. 找到 install_list_capability.json 中 SystemUI 配置段。

openharmoney系统签名,OpenHarmony,harmonyos,华为

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

openharmoney系统签名,OpenHarmony,harmonyos,华为

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

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

openharmoney系统签名,OpenHarmony,harmonyos,华为

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

构建安装验证

同标准签名。

参考文档

OpenHarmony Gitee Docs - 应用特权配置指南文章来源地址https://www.toymoban.com/news/detail-847221.html

到了这里,关于OpenHarmony应用签名 - 系统应用签名(4.0-Release)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OpenHarmony SystemUI 3.2Release签名和编译

    IDE版本:DevEco Studio 3.1Release(3.1.0.500) SDK版本:3.2.14.5 Full-SDK 设备:RK3568 3.2release(3.2.15.2)   链接:https://gitee.com/openharmony/applications_systemui/tree/OpenHarmony-3.2-Release/ 选择OpenHarmony-3.2-Release分支,点击克隆/下载 -- 下载ZIP; 注意 :下载ZIP可以直接下载OpenHarmony-3.2-Release分支的,

    2024年02月04日
    浏览(39)
  • 《HarmonyOS开发 – OpenHarmony开发笔记(基于小型系统)》第4章 OpenHarmony应用开发实例

    开发环境 : 开发系统:Ubuntu 20.04 开发板:Pegasus物联网开发板 MCU:Hi3861 OpenHarmony版本:3.0.1-LTS 1.新建工程及源码 新建目录 在applications/sample/myapp中新建src目录以及myapp.c文件,代码如下所示。 新建编译组织文件 新建applications/sample/myapp/BUILD.gn文件,内容如下所示: static_libr

    2024年02月09日
    浏览(77)
  • HarmonyOS/OpenHarmony应用开发-ArkTSAPI系统能力SystemCapability列表

    SysCap,全称SystemCapability,即系统能力,指操作系统中每一个相对独立的特性。 开发者使用某个接口进行开发前,建议先阅读 系统能力使用说明 ,了解Syscap的定义和使用指导。 说明 当前列表枚举出3.1 Beta版本中支持的系统能力。开发者可以在SDK中通过phone.json文件查询。 Sy

    2024年02月13日
    浏览(35)
  • OpenHarmony开源鸿蒙学习入门 - 基于3.2Release 应用开发环境安装

    基于目前官方master主支,最新文档版本3.2Release,更新应用开发环境安装文档。 一、安装IDE: 1.IDE安装的系统要求 2.IDE下载官网链接 (IDE下载链接) 3.下载完成后进行IDE安装。 【最新的IDE,HarmonyOS和OpenHarmony的IDE已经统一,只是SDK管理分开】 IDE的依赖有 node.js 和 Ohpm。 有两种

    2024年02月15日
    浏览(62)
  • OpenHarmony应用签名 - DevEco Studio 自动签名

    开发环境:MacBook Pro DevEco Studio 版本:DevEco Studio 3.1 Beta1(3.1.0.200) SDK 版本:3.2.10.6 开发板型号:DAYU 200 系统版本:OpenHarmony 3.2 Beta5 为了保证 OpenHarmony 应用的完整性和来源可靠,在应用构建时需要对应用进行签名。经过签名的应用才能在设备上安装、运行、和调试。 DevEco

    2024年01月24日
    浏览(39)
  • 鸿蒙应用开发学习路线(OpenHarmony/HarmonyOS)

    作者:坚果 团队:坚果派 公众号:“大前端之旅” 润开鸿技术专家,华为HDE,InfoQ签约作者,OpenHarmony布道师,擅长HarmonyOS应用开发、熟悉服务卡片开发,在“战码先锋”活动中作为大队长,累计培养三个小队长,带领100+队员完成Pr的提交合入。 欢迎通过主页或者私信联系

    2024年02月15日
    浏览(83)
  • HarmonyOS/OpenHarmony应用开发-Stage模型应用/组件级配置

    在开发应用时,需要配置应用的一些标签,例如应用的包名、图标等标识特征的属性。本文描述了在开发应用需要配置的一些关键标签。图标和标签通常一起配置,可以分为应用图标、应用标签和入口图标、入口标签,分别对应 app.json5配置文件 和 module.json5配置文件 文件中的

    2024年02月13日
    浏览(62)
  • HarmonyOS/OpenHarmony应用开发-HDC环境变量设置

    hdc(HarmonyOS Device Connector)是 HarmonyOS 为开发人员提供的用于调试的命令行工具,通过该工具可以在 windows/linux/mac 系统上与真实设备或者模拟器进行交互。 hdc 工具通过 HarmonyOS SDK 获取,存放于 /Huawei/Sdk/openharmony/版本号/toolchains/ 目录下。 1、打开环境变量 2、新建系统变量 3、

    2024年04月15日
    浏览(51)
  • HarmonyOS/OpenHarmony(Stage模型)应用开发单一手势(三)

    RotationGesture (value?:{ fingers ? :number ; angle ? :number }) 旋转手势用于触发旋转手势事件,触发旋转手势的最少手指数量为2指,最大为5指,最小改变度数为1度,拥有两个可选参数: fingers:非必选参数,用于声明触发旋转手势所需要的最少手指数量,最小值为2,最大值为5,默认值

    2024年02月09日
    浏览(52)
  • HarmonyOS/OpenHarmony原生应用-ArkTS万能卡片组件Stack

    堆叠容器,子组件按照顺序依次入栈,后一个子组件覆盖前一个子组件。该组件从API Version 7开始支持。可以包含子组件。 一、接口 Stack(value?: { alignContent?: Alignment }) 从API version 9开始,该接口支持在ArkTS卡片中使用。 二、属性 除支持通用属性外,还支持以下属性: 三、示例

    2024年02月07日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包