OpenHarmony应用签名-手动签名相关探索 原创
场景一:应用不更改应用证书,只提升应用能申请到的权限等级时,可以覆盖安装
参考解决修改APL、ACL权限后自动签名证书指纹改变,无法覆盖安装的问题
我们在开发OpenHarmony应用使用自动签名时,每次自动签名都会重新生成新的应用证书和Profile签名文件,这样意味着一但重签,再次打包的hap包将无法覆盖安装,当我们不想更改应用证书,只提升应用能申请到的权限等级时,可通过单独修改并重签Profile生成新的p7b文件,替换掉原来自动签名生成的p7b文件,即可解决修改权限等级后,再次自动签名打包的hap无法覆盖安装的问题。
主要是修改openharmony-sdk\9\toolchains\lib\UnsgnedReleasedProfileTemplate.json
重签Profile 可是有时候我们直接拿到的是一个p7b,不知道distribution-certificate参数;可以参考场景二的第一步查看;
场景二:生成厂商私有签名和修改运行系统中的配置文件,使私有签名签出的应用可以正常在系统中安装和使用。
参考OpenHarmony应用签名 - 厂商私有签名的配置和使用
- 使用hap-sign-tool.jar查看原权限管理应用p7b签名文件信息对应的Profile签名证书信息。
2,将bundle-name、apl、app-feature和allowed-acls字段分别复制到UnsgnedReleasedProfileTemplate.json文件中。
3. 替换distribution-certificate为私有签名OpenHarmony-Tizi-app-cert.pem文件中第一部分的密钥。把回车转换为\n字符,替换UnsgnedReleasedProfileTemplate.json文件的distribution-certificate字段
4,ProvisionProfile文件签名,生成权限管理应用的p7b文件。 (具体参数请替换对应你自己的文件,不要硬拷贝)
java -jar hap-sign-tool.jar sign-profile -keyAlias “OpenHarmony-Tizi-profileCA” -signAlg “SHA256withECDSA” -mode “localSign” -profileCertFile “OpenHarmony-Tizi-profile-cert-release.pem” -inFile “UnsgnedReleasedProfileTemplate.json” -keystoreFile “OpenHarmony-Tizi.p12” -outFile “pm.p7b” -keyPwd “Pwd-Tizi-5” -keystorePwd “Pwd-Tizi-2”
5,将生成的.p7b文件替换源码中原p7b文件。
老师下午好!我这边软件绿色联盟的运营,看到您写的这篇文章很不错,想问一下方便转载吗,转载到软件绿色联盟的微信公众号上,绿盟覆盖主体主要是开发者,通过日常发布技术文章赋能开发者,转载文章会备注来源以及作者,期待老师的回复!