前言
随着HarmonyOS NEXT应用生态的推广和发展,越来越多的开发者希望能将HarmonyOS应用安装到OpenHarmony设备上。由于OpenHarmony设备不识别HarmonyOS签名,因此需要对应用进行重签名操作。
开发流程
配置重签名环境
在本机电脑上创建重签名目录
D:\resign
。将仓库里的
hap-sign-tool.jar
、OpenHarmony.p12
、OpenHarmonyProfileRelease.pem
、UnsgnedReleasedProfileTemplate.json
、OpenHarmonyApplication.pem
等文件复制到重签名目录下。
修改hap重签模板
将需要重签的
origin.hap
复制到重签名目录下。修改
origin.hap
为origin.zip
并解压到当前目录得到origin
。打开目录
origin\module.json
,将其中的配置bundleName
对应的值复制到UnsgnedReleasedProfileTemplate.json
的配置bundle-name
下。将
origin\module.json
里requestPermissions
配置下的ACL权限复制到UnsgnedReleasedProfileTemplate.json
的配置acls
的allowed-acls
下。
重签p7b签名文件
打开终端,cd到重签名目录。
执行以下指令
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
打开终端,cd到重签名目录。
执行以下指令
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
重签后的包。
注意事项
配置重签名环境里步骤2需要下载的仓库分支需要与重签之后的包将要安装的系统版本对应。
如果设备系统配置的是私有证书,需要设备方提供对应的公钥以及签名材料如Alias、加密算法等。