OpenHarmony 应用重签名开发流程

395 阅读1分钟

前言

随着HarmonyOS NEXT应用生态的推广和发展,越来越多的开发者希望能将HarmonyOS应用安装到OpenHarmony设备上。由于OpenHarmony设备不识别HarmonyOS签名,因此需要对应用进行重签名操作。

开发流程

配置重签名环境

  1. 在本机电脑上创建重签名目录D:\resign

  2. 下载社区仓OpenHarmony/developtools_hapsigner

  3. 将仓库里的hap-sign-tool.jarOpenHarmony.p12OpenHarmonyProfileRelease.pemUnsgnedReleasedProfileTemplate.jsonOpenHarmonyApplication.pem等文件复制到重签名目录下。

修改hap重签模板

  1. 将需要重签的origin.hap复制到重签名目录下。

  2. 修改origin.haporigin.zip并解压到当前目录得到origin

  3. 打开目录origin\module.json,将其中的配置bundleName对应的值复制到UnsgnedReleasedProfileTemplate.json的配置bundle-name下。

  4. origin\module.jsonrequestPermissions配置下的ACL权限复制到UnsgnedReleasedProfileTemplate.json的配置aclsallowed-acls下。

重签p7b签名文件

  1. 打开终端,cd到重签名目录

  2. 执行以下指令

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 "resign.p7b" -keyPwd "123456" -keystorePwd "123456"

得到resign.p7b签名文件。

重签hap

  1. 打开终端,cd到重签名目录

  2. 执行以下指令

java -jar hap-sign-tool.jar sign-app -keyAlias "OpenHarmony Application Release" -signAlg "SHA256withECDSA" -mode "localSign" -appCertFile "OpenHarmonyApplication.pem" -profileFile "resign.p7b" -inFile "origin.zip" -keystoreFile "OpenHarmony.p12" -outFile "resign.hap" -keyPwd "123456" -keystorePwd "123456" -signCode "1"

得到resign.hap重签后的包。

注意事项

  1. 配置重签名环境步骤2需要下载的仓库分支需要与重签之后的包将要安装的系统版本对应。

  2. 如果设备系统配置的是私有证书,需要设备方提供对应的公钥以及签名材料如Alias、加密算法等。

  3. ACL权限可以通过gitee.com/openharmony…查看。

参考文献

gitee.com/openharmony…

gitee.com/openharmony…