OpenHarmony 应用重签名开发流程

前言

随着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权限可以通过https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-system-apps.md查看。

参考文献

https://gitee.com/openharmony/developtools_hapsigner

https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/app-permission-mgmt-overview.md#%E8%AE%BF%E9%97%AE%E6%8E%A7%E5%88%B6%E5%88%97%E8%A1%A8acl

  • 12
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值