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