【HarmonyOS】HarmonyOS应用APP与HAP包签名信息查看方法
阅读原文时间:2023年07月31日阅读:2

​HarmonyOS可以通过DevEco Studio 构建对应的APP包或者是HAP包,对于签名我们有两种方式:

  • DevEco Studio提供了根据开发者信息生成自动调试签名的能力方便各位开发者进行调试,简化签名步骤。
  • 在开发流程中也可以根据自己的需要生成固定的调试签名和发布签名文件给APP包或者HAP包进行手动签名,调试签名需要添加设备的UDID才可以在相应的设备上运行。

下面提供一个查看APP包或者HAP包的签名信息的方法。方法很简单,通过NotePad++打开对应的APP包或者HAP,全局搜索“version-name”

​​​

如果搜索不到相关信息,证明这个包是一个未签名的包即unsigned包,没有签名的包无法在真机上运行只能在模拟器上运行。

如果可以搜索到相关信息,大家可以获取到如下一个json字符串:

{
"version-name": "2.0.0",
"version-code": 2,
"app-distribution-type": "app_gallery",
"uuid": "",
"validity": {
"not-before": 1678703485,
"not-after": 1773397884
},
"type": "release",
"bundle-info": {
"developer-id": "",
"distribution-certificate": "",
"bundle-name": "",
"apl": "normal",
"app-feature": "hos_normal_app"
},
"baseapp-info": {},
"permissions": {
"restricted-permissions": []
},
"acls": {
"allowed-acls": []
},
"issuer": "app_gallery"
}

这些信息与HarmonyAppProvision配置中的信息是一致的,上述json是从APP Release包中提取的信息,其中:

  • “version-name”“version-code”表示应用的版本信息;
  • “type”表示应用用于是发布场景(release)还是调试场景(debug);
  • “bundle-name”对应HarmonyOS应用的bundleName;
  • “distribution-certificate”表示这边使用的是发布证书,如果是调试证书这边会显示为“development-certificate”
  • “apl”表示元能力权限等级APL(Ability Privilege Level), 默认情况下,应用的APL等级都为normal等级,不了解的可以参考文末的链接
  • “acls”表示acl权限信息。

如果是一个调试应用程序包,json中还会有“debug-info”的信息,如下:

"debug-info": {
    "device-ids": [
        "BF377XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXC2",
        "6B513XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXB1",
        "82B8AXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX15"
        ],
    "device-id-type": "udid"
  },

其中“device-ids”表示应用调试场景下允许调试的设备ID列表。需要注意的是,如果我们的设备的UDID不在这个列表中,调试应用是无法安装的会报” INSTALL_FAILED_APP_SOURCE_NOT_TRUSTED”的错误。

最后,如果大家想要了解很多的信息可以查看以下OpenHarmony中的说明文档:

1、 HarmonyAppProvision配置文件说明

2、 访问控制(权限)开发概述