OpenHarmony开发者论坛
标题:
解决修改APL、ACL权限后自动签名证书指纹改变,无法覆盖安装的问题
[打印本页]
作者:
westinyang
时间:
2023-10-26 15:20
标题:
解决修改APL、ACL权限后自动签名证书指纹改变,无法覆盖安装的问题
[md]
> 关于作者:[I'm westinyang](
https://kaihongpai.feishu.cn/wiki/CqWLwJRadibxztkrIWZcogWxnXd
)
我们在开发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文件进行签名
```shell
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包,即可保持与之前的包签名一致,可以覆盖安装。
最后提示一下,记得备份下 `首次自动签名生成的的证书`、`秘钥盐文件`和 `项目中的签名配置`,防止丢失后换签名又无法覆盖安装了。
# 相关资料
- [访问控制(权限)开发概述](
http://docs.openharmony.cn/pages ... stoken-overview.md/
)
- [应用权限列表](
http://docs.openharmony.cn/pages ... permission-list.md/
)
- [hap包签名工具指导](
http://docs.openharmony.cn/pages ... tool-guidelines.md/
)
- [HarmonyAppProvision配置文件说明](
http://docs.openharmony.cn/pages ... ision-structure.md/
)
# 持续关注
- 关于作者:[I'm westinyang](
https://kaihongpai.feishu.cn/wiki/CqWLwJRadibxztkrIWZcogWxnXd
)
- 哔哩哔哩:[个人主页](
https://space.bilibili.com/74433635
)
[/md]
欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/)
Powered by Discuz! X3.5