解决修改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包,即可保持与之前的包签名一致,可以覆盖安装。
最后提示一下,记得备份下首次自动签名生成的的证书
、秘钥盐文件
和项目中的签名配置
,防止丢失后换签名又无法覆盖安装了。
相关资料
持续关注
- 关于作者:I’m westinyang
- 哔哩哔哩:个人主页
©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2024-1-18 11:46:41修改
赞
2
收藏
回复
相关推荐
每次自动签名确实很麻烦,感谢分享!
新增的权限 需要在
按需调整
里面配置吗? 我没有写, 还是权限不够