[经验分享] 解决修改APL、ACL权限后自动签名证书指纹改变,无法覆盖安装的问题 原创

westinyang 显示全部楼层 发表于 2023-10-26 15:20:03

关于作者:I'm westinyang

我们在开发OpenHarmony应用使用自动签名时,每次自动签名都会重新生成新的应用证书和Profile签名文件,这样意味着一但重签,再次打包的hap包将无法覆盖安装,当我们不想更改应用证书,只提升应用能申请到的权限等级时,可通过单独修改并重签Profile生成新的p7b文件,替换掉原来自动签名生成的p7b文件,即可解决修改权限等级后,再次自动签名打包的hap无法覆盖安装的问题。

修改Profile

实际位置根据你本机设置的OpenHarmonySDK位置以及使用的SDK版本去找

修改 openharmony-sdk\9\toolchains\lib\UnsgnedReleasedProfileTemplate.json 文件

  • distribution-certificate 把之前自动签名生成的cer文件中的第一段用\n连成一行填写在这里
  • bundle-name 改为当前应用的包名
  • apl、app-feature、acls 按需调整

重签Profile

然后进入 openharmony-sdk\9\toolchains\lib 目录,打开命令窗口,手动对Profile文件进行签名

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 "app1-profile.p7b" -keyPwd "123456" -keystorePwd "123456"
  • 把重新签名生成到当前目录的 app1-profile.p7b 改名并替换为你之前自动签名生成的 p7b文件,在 C:\Users\%username%\.ohos\config\openharmony\auto_ohos_default_******.p7b
  • 或者在项目的 build-profile.json5 中修改 signingConfigs.material.profile 的路径指定为上面对Profile修改重签生成的p7b文件

重新打包应用

无需再次自动签名,重新打包应用生成的hap包,即可保持与之前的包签名一致,可以覆盖安装。

最后提示一下,记得备份下 首次自动签名生成的的证书秘钥盐文件项目中的签名配置,防止丢失后换签名又无法覆盖安装了。

相关资料

持续关注

©著作权归作者所有,转载或内容合作请联系作者

您尚未登录,无法参与评论,登录后可以:
参与开源共建问题交流
认同或收藏高质量问答
获取积分成为开源共建先驱

Copyright   ©2023  OpenHarmony开发者论坛  京ICP备2020036654号-3 |技术支持 Discuz!

返回顶部