579
社区成员
发帖
与我相关
我的任务
分享开发环境:MacBook Pro
DevEco Studio 版本:DevEco Studio 3.1 Beta1(3.1.0.200)
SDK 版本:3.2.10.6
开发板型号:DAYU 200
系统版本:OpenHarmony 3.2 Beta5
为了保证OpenHarmony应用的完整性和来源可靠,在应用构建时需要对应用进行签名。经过签名的应用才能在设备上安装、运行、和调试。DevEco Studio自动化签名功能仅用于应用调试阶段使用,不可用于发布上架应用市场。
Hap包签名工具支持本地签名需求的开发,为OpenHarmony应用提供完整性保护和来源管控机制,该签名工具基于PKI公钥证书的机制实现,在进行开发前,开发者应了解以下基本概念:
应用签名信息配置于工程目录build-profile.json5文件中,配置项说明:
{
"app": { //工程级别信息配置,包含API等级、签名和产品信息
"signingConfigs": [{ //工程的签名信息,可包含多个签名信息
"name": "default", //标识签名方案的名称
"material": { //该方案的签名材料
"certpath": "ohos.cer", //调试或发布证书文件,格式为.cer
"storePassword": "******", //密钥库Password,以密文形式呈现
"keyAlias": "debug_ohos", //密钥别名信息
"keyPassword": "******", //密钥Password,以密文形式呈现
"profile": "ohos.p7b", //调试或发布证书Profile文件,格式为.p7b
"signAlg": "SHA256withECDSA", //密钥库signAlg参数
"storeFile": "ohos.p12" //密钥库文件,格式为.p12
}
}],
"products": [{ //定义构建的产品品类,如通用默认版、付费版、免费版等
"name": "default", //定义产品的名称,由开发者自定义
"signingConfig": "default" //指定当前产品品类对应的签名信息,签名信息需要在signingConfigs中进行定义
}]
···
}
}
···
使用DevEco Studio创建一个新的工程,默认是没有配置签名信息的。签名信息可通过工程根路径的build-profile.json5文件查看。未签名的HAP包无法保证应用的完整性和来源可靠,在OpenHarmony系统是无法被安装的。




应用在真机设备上运行,需要提前为应用进行签名,DevEco Studio为开发者提供了自动化签名方案,可以一键完成应用签名。
配置自动签名:



OpenHarmony针对应用访问额外的系统或其他应用的数据(包括用户个人数据)或功能,提供了一种访问控制机制来保证这些数据或功能不会被不当或恶意使用,即应用权限。根据权限对于不同等级应用有不同的开放范围,权限类型对应分为以下三种,等级依次提高。
默认情况下自动化签名功能只能申请权限等级为“normal”的权限。若使用了更高级别的权限system_core或system_basic,需修改自动化签名所需要的Profile模板,然后再使用自动化签名功能对应用进行签名。
修改Profile模板:



