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

westinyang
发布于 2023-7-7 23:37
浏览
0收藏

关于作者: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包,即可保持与之前的包签名一致,可以覆盖安装。

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

相关资料

持续关注

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2024-1-18 11:46:41修改
2
收藏
回复
举报
2条回复
按时间正序
/
按时间倒序
红叶亦知秋
红叶亦知秋

每次自动签名确实很麻烦,感谢分享!

回复
2023-7-10 10:06:51
陈浩南xxx
陈浩南xxx

新增的权限 需要在 

  • apl、app-feature、acls​​按需调整​​ 里面配置吗? 我没有写, 还是权限不够
回复
2024-1-9 17:11:17
回复
    相关推荐