加入收藏 | 设为首页 | 会员中心 | 我要投稿 驾考网 (https://www.jiakaowang.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 系统 > 正文

OpenHarmony系统应用文件管理器签名 - 通信系统应用文件管理器签名

发布时间:2023-03-02 11:21:49 所属栏目:系统 来源:
导读:概述
文档环境
开发环境: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

示例工程
概述
文档环境
开发环境: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分支)​​​

系统应用目前包含如下:

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

除以上主要业务应用之外,还预设了一些复杂的示例应用,如时钟、计算器、空气湿度等,可供开发者参考学习。

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

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

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

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

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

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

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

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

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

配置工程根路径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应用签名 - 系统应用签名-开源基础软件社区

构建安装验证
单击Build >Build Hap(s)/APP(s) > Build Hap(s) 构建SystemUI 工程HAP包。
SystemUI 工程共有6个HAP包分别位于以下目录:

systemui_entry:
entry\phone\build\default\outputs\default\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

使用"hdc file send {源地址} {目标地址}"命令分别把HAP包放入系统中替换当前SystemUI 项目的安装包,SystemUI 安装包路径为/system/app/com.ohos.systemui/。
推送文件前需先获取系统文件权限,执行"hdc shell mount -o remount,rw /"获取权限。

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

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

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

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

复制
set systemui_entry=entry\phone\build\default\outputs\default\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% 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

自动签名
修改权限文件
打开OpenHarmony SDK 所在目录,可通过工程根路径local.properties 文件或DevEco Studio 菜单栏中单击File > Settings > SDK > OpenHarmony 界面查看 。
OpenHarmony应用签名 - 系统应用签名-开源基础软件社区

在OpenHarmony SDK 目录下,进入{Version} > toolchains > lib 文件夹,打开 UnsgnedReleasedProfileTemplate.json 文件。
OpenHarmony应用签名 - 系统应用签名-开源基础软件社区

将apl 配置项配置为system_core ,app-feature 配置项配置为ohos_system_app , Profile 文件的修改参考​​HarmonyAppProvision配置文件的说明​​。
OpenHarmony应用签名 - 系统应用签名-开源基础软件社区

配置工程签名
单击File > Project Structure > Project > SigningConfigs 界面勾选Automatically generate signature ,等待自动签名完成即可,单击OK。
OpenHarmony应用签名 - 系统应用签名-开源基础软件社区

查看build-profile.json5 配置信息,配置信息中增加自动签名生成的证书信息。
OpenHarmony应用签名 - 系统应用签名-开源基础软件社区

证书指纹获取
方式一(官方推荐)
证书存放在HarmonyAppProvision 文件(修改权限文件中修改的Profile文件)的distribution-certificate 字段下,新建profile.cer 文件,将证书的内容拷贝到profile.cer 文件中。
OpenHarmony应用签名 - 系统应用签名-开源基础软件社区

打印指纹信息:

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

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

方式二(个人推荐)
单击Build > Build Hap(s)/APP(s) > Build Hap(s) 构建SystemUI 工程HAP包。找到 SystemUI_Entry模块构建的HAP包目录,位于工程路径 \entry\phone\build\default\outputs\default\ 中。
OpenHarmony应用签名 - 系统应用签名-开源基础软件社区

把HAP推送至系统中。
hdc file send entry\phone\build\default\outputs\default\phone_entry-default-signed.hap /data/

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

在DevEco Studio 中打开Log 界面,选择HiLog 过滤 "finger" 字符。
OpenHarmony应用签名 - 系统应用签名-开源基础软件社区

进入系统Shell命令行 ,设置Hilog 等级。
hilog -b D

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

安装推送进系统的SystemUI_Entry 构建的HAP包,此时会发现安装报错,是因为我们HAP包的指纹信息与系统中配置的不同导致,但此时我们目的为获取指纹信息,忽略报错信息。
bm install -p /data/phone_entry-default-signed.hap -u 0

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

查看DevEco Studio 的Log 界面,指纹信息已经被打印出来。
OpenHarmony应用签名 - 系统应用签名-开源基础软件社区

A08D9DAB5FF3012158CDAA68D45ACAEE49F848E05065ED1CEF29A9B2724E3FA6

应用特权配置
提取当前系统中的特权配置文件install_list_capability.json ,文件位于/etc/app/ 中。
hdc file recv /etc/app/install_list_capability.json D:\

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

找到install_list_capability.json 中SystemUI 配置段。
OpenHarmony应用签名 - 系统应用签名-开源基础软件社区

替换app_signature为我们在证书指纹获取章节中获取到的指纹信息并保存。
OpenHarmony应用签名 - 系统应用签名-开源基础软件社区

将特权配置文件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应用签名 - 系统应用签名-开源基础软件社区

重启系统特权配置文件生效。
构建安装验证
同标准签名。​​

​​51CTO 开源基础软件社区​​

分享到微信

分享到微博
相关推荐

OpenHarmony应用签名 - DevEco Studio 自动签名
为了保证OpenHarmony应用的完整性和来源可靠,在应用构建时需要对应用进行签名。经过签名的应用才能在设备上安装、运行、和调试。
2023-02-22 15:11:51

鸿蒙
应用签名

OpenHarmony应用开发—配置OpenHarmony应用签名信息
开发OpenHarmony应用的第一步就是配置环境,如果你需要使用开发板(真机)进行调试,那就免不了配置签名信息,下面我们聊下基于OpenHarmony应用开发的签名配置。
2022-03-02 16:08:31

Harmony
应用开发
鸿蒙

OpenHarmony应用Hap包签名
在HarmonyOS中有AGC应用商店可以帮助开发者完成Release签名,但是OH就没有这么方便了,本文将介绍OH应用签名方法步骤,将使用OH官方提供的签名工具对Hap进行签名。
2022-09-21 14:58:11

OH应用签名
鸿蒙

Authenticode签名在未签名代码中的应用详解
作为一个逆向工程师或者是红队开发人员,了解如何将合法签名应用于未签名、攻击者提供的代码中是很重要的。本文将介绍代码签名机制,数字签名二进制格式,和在未签名的PE文件中应用数字证书的技术。
2017-09-07 16:00:20


安全子系统之应用签名与验签
这是一篇讲解如何生成已经签名的hap包和签名以及验签流程的文章。
2021-12-27 16:20:45

鸿蒙
HarmonyOS
应用
怎么给Android应用程序签名
Android程序的签名和Symbian类似都可以自签名(Selfsigned),但是在Android平台中证书初期还显得形同虚设,平时开发时通过ADB接口上传的程序会自动被签有Debug权限的程序。
2011-05-27 10:13:39

如何对iOS应用进行修改并重新签名
我们在本文中使用工具集optool、Apple的编译环境以及一些shell命令来讲解如何对iOS应用进行修改并重新签名。
2017-02-24 09:30:17

iOS
签名
代码
Android应用程序签名和权限增强应用程序安全性
Android包括一个应用程序框架、几个应用程序库和一个基于Dalvik虚拟机的运行时,所有这些都运行在Linux&174;内核之上。通过利用Linux内核的优势,Android得到了大量操作系统服务,包括进程和内存管理、网络堆栈、驱动程序、硬件抽象层以及与本文主题——安全性——相关的服务。
2011-11-03 09:41:35

Android
签名
安全性
辨析数字签名与电子签名
数字签名和电子签名这两个术语已经被人们所熟悉,人们经常不加区分地使用这两个术语,但二者是有区别的。本文从标准及法律中的基本定义出发,分析了数字签名与电子签名之间的区别和渊源,供大家在实际中根据不同的语境来区别使用这两个术语
2009-08-14 13:40:17

OpenHarmony系统是怎么知道应用是Ark应用的
本人手中的开发板是Hi3516,所以去productdefine目录下面查看了一下Hi3516DV300.json文件,确认是否Ark子系统是否参与了编译。
2022-03-14 15:26:59

Hi3516
Ark子系统
鸿蒙
应用程序签名带来新防火墙规则膨胀?
防火墙规则永远不会消亡,它们只是存在一些漏洞,但其复杂度将继续提升。现在,下一代应用程序意识的防火墙可能让事情变得更加复杂,因为这些防火墙需要维护数百甚至成千上万的应用程序签名。
2012-08-08 17:41:49

防火墙
防火墙规则
应用程序签名
为文件贴防伪标签 Ubuntu文件数字签名应用
在《Ubuntu系统中如何对文件进行加密传输》一文中,我们为大家讲解了网络传输过程中,如何对文件进行加密的方法。但是在实际应用中,文件的传输还会碰到其他问题,例如如何确认收到的文件不是伪造的又如何知道发来的文件不是窜改过的呢而类似的问题,就需要利用另外一项技术——数字签名来解决。
2010-01-14 10:05:48

Ubuntu
数字签名

Android 签名详解
Android系统中,所有安装到系统的应用程序都必有一个数字证书,此数字证书用于标识应用程序的作者和在应用程序之间建立信任关系,如果一个permission的protectionLevel为signature,那么就只有那些跟该permission所在的程序拥有同一个数字证书的应用程序才能取得该权限。
2014-07-28 10:09:30

Android
51CTO专栏:李洋谈Android应用程序签名概述
在Android系统中,所有安装到系统的应用程序都必有一个数字证书,此数字证书用于标识应用程序的作者和在应用程序之间建立信任关系。
2011-11-03 09:24:57

李洋
签名
数字签名、电子签名和数字证书的使用
本文对数字签名、电子签名和数字证书进行了分别介绍,并用一个实例介绍了这三种方法的具体应用。
2010-09-02 21:10:13

Android程序的签名
开发Android应用程序时,必须处理很多与安全性相关的方面,包括应用程序进程和沙箱、代码和数据共享、通过应用程序签名达到的系统保护,以及权限使用。
2011-05-27 09:33:31

Android
程序
签名

HarmonyOS - 实现签名功能
我刚接触HarmonyOS不久,接触到了很多不一样的东西。这次我分享一个用Canvas实现的签字效果。
2022-07-28 14:31:04

如何将应用内置到OpenHarmony系统中
为笔者开发过程中的一些经验分享,旨在解决官方文档过于晦涩难懂或者示例代码不够详细的问题,同时方便笔者日后回顾以及其他开发者更快上手。
2022-11-25 16:27:07

应用开发
鸿蒙
Ubuntu系统下-加密和数字签名Email
有些人希望在Email上面添加数字签名,这样可以确实保证Email的来源正确性。另外,Email也可以进行加密。加密Email以后,只有收信人才能查看,在传递过程如果任何人截获了Email,那么看到也是一段加密的数据包。
2009-03-02 16:42:33

同话题下的热门内容
开源鸿蒙开机只需8秒,这是要赶超安卓的节奏吗?
跟着小白一起学鸿蒙—开源协议分析
OpenHarmony L1(3.0)串口功能开发
跟着小白一起学鸿蒙—WebSocket的使用和流程分析
技术构筑万物智联-OpenHarmony技术峰会记录(230225)
自制一款ArkUI组件-应用文件管理器(一)
OpenHarmony应用签名 - 系统应用签名
OpenHarmony富设备移植指南(5.1)显示调试经验分享
编辑推荐
如何在OpenHarmony上进行双网卡设置
静态分析工具Clang Static Analyzer (4) Clang-Tidy
静态分析工具Clang Static Analyzer (3) Cppcheck
 

(编辑:驾考网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章