概述

在平时应用开发过程中,会遇到使用的api权限等级不够的情况,这时需要去升级权限重新签名,重新签名后不更新指纹信息会导致应用的预授权能力失效,此时就需要替换指纹信息。

环境描述

开发环境:Windows 10

DevEco Studio 版本:DevEco Studio 5.0.1 Release(5.0.5.315)

SDK 版本:5.0.0.70(Full SDK)

设备型号:黄鹂

系统版本:OpenHarmony 5.0.0.710

示例工程:Applications_Settings

操作步骤

1、删除Applications_Settings根目录下signature文件夹中所有文件

2、打开developtools_hapsigner仓库,进入dist目录,拷贝OpenHarmony.p12和OpenHarmonyApplication.pem文件到signature文件夹下,重命名.pem后缀成.cer文件

3、到HarmonyAppProvision目录(sdk存放目录)生成p7b文件并命名,生成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"

4、将生成的settings.p7b复制到signature目录下

5、点击deveco studio菜单栏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): 新添加的settings.p7b文件。

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

点击apply-ok

6、将应用编译hap,替换应用hap后重启设备,替换命令如下:

hdc shell "mount -o rw,remount /"

hdc shell "rm -rf /data/*"

hdc file send Settings.hap /system/app/com.ohos.settings/Settings.hap

hdc shell "reboot"

7、重启设备后cmd执行hdc shell "bm dump -n com.ohos.settings | grep finger"查看指纹信息

8、提取当前系统中的配置文件install_list_permissions.json ,文件位于system/etc/app/中,替换app_signature为我们在fingerprint中获取到的指纹信息并保存

9、将配置文件install_list_permissions.json推送回系统中,覆盖系统配置。

拉取         hdc file recv /etc/app/install_list_capability.json  ./

推送         hdc shell "mount -o remount,rw /"

                hdc file send d:\install_list_permissions.json  system/etc/app

10、推送完配置文件之后,再替换应用hap重启设备生效。

Logo

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

更多推荐