OpenHarmony 4.1版本申请HarmonyOS鸿蒙Next系统级别权限

OpenHarmony 4.1版本申请HarmonyOS鸿蒙Next系统级别权限 1.根据文档修改UnsgnedReleasedProfileTemplate.json文件中的. apl:system_basic

2.修改app-feature:hos_system_app

3.添加 apls:[ “xxxxxx” //对应权限 ] 4.删除.ohos当中已有的签名相关文件

5.build-profile.json当中清空

signingConfigs[]

然后重新编译,自动签名

运行起来之后还是报错 Install Failed: error: failed to install bundle.

code:9568289

error: install failed due to grant request permissions failed.

View detailed instructions.

$ hdc shell rm -rf data/local/tmp/528ce0143e334a8a8681deb2e50063dc

Error while Deploy Hap


更多关于OpenHarmony 4.1版本申请HarmonyOS鸿蒙Next系统级别权限的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

OpenHarmony 4.1版本中,系统级别权限的申请机制基于新的权限模型。应用需在module.json5配置文件中声明所需权限,并在代码中通过abilityAccessCtrl模块的requestPermissionsFromUser接口动态申请。对于敏感权限,系统会向用户弹窗请求授权。权限分为system_basicsystem_core等级别,Next版本可能进一步细化权限管控粒度。具体权限列表和申请流程需查阅对应版本的官方API文档。

更多关于OpenHarmony 4.1版本申请HarmonyOS鸿蒙Next系统级别权限的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


根据您的描述,您正在尝试为OpenHarmony 4.1版本的应用申请HarmonyOS Next的系统级权限(system_basic APL),但遇到了安装失败(错误码9568289)。

您已遵循的步骤(修改配置文件、声明权限、处理签名)是申请系统权限的必要基础,但安装失败表明流程尚未完成或配置有误。核心问题在于:仅修改应用侧的配置不足以获取系统权限,您的应用必须使用与目标设备系统匹配的、有效的系统签名文件进行签名。

以下是关键点分析:

  1. 系统权限的核心依赖:系统签名

    • system_basic或更高的APL(如system_core)权限,必须使用由设备OEM厂商或系统镜像提供方(即设备制造商)颁发的系统签名文件.p7b证书和.p12私钥)进行签名。
    • 您提到的“删除已有签名文件”和“清空signingConfigs”后“自动签名”,这很可能导致应用使用了默认的调试签名或一个无效的签名。调试签名不具备系统权限的授予能力。
  2. 错误码9568289的含义

    • 错误信息“install failed due to grant request permissions failed”直接指出:权限授予失败。
    • 在HarmonyOS/OpenHarmony的安全模型中,安装时系统会校验应用的签名。如果应用的签名不在设备信任的系统签名白名单中,即使您在配置文件中声明了系统权限,安装也会被拒绝。
  3. 您需要完成的步骤

    • 获取有效的系统签名文件:这是最关键的一步。您需要从您所开发设备的OEM厂商或负责该系统镜像的团队处获取对应的系统签名证书和私钥(.p7b.p12文件)。个人开发者通常无法生成有效的系统签名。
    • 在工程中配置系统签名:将获取到的系统签名文件放置在工程目录下(例如signature目录),并在build-profile.json5文件的signingConfigs中正确引用它们,而不是清空。配置示例:
      "signingConfigs": [
        {
          "name": "release",
          "material": {
            "certpath": "signature/your_system_certificate.p7b",
            "storePassword": "your_keystore_password",
            "keyAlias": "your_key_alias",
            "keyPassword": "your_key_password",
            "profile": "signature/your_release_profile.p7b",
            "signAlg": "SHA256withECDSA",
            "storeFile": "signature/your_system_key.p12"
          }
        }
      ]
      
    • 确保设备系统信任该签名:您用于调试的设备所运行的系统镜像,必须已经预置了给您签名的根证书或中间证书,即设备信任该签名来源。这通常需要烧录与签名匹配的系统版本。

总结:您遇到的安装失败根本原因是应用未使用被目标设备系统信任的系统签名进行签名。请优先联系您的设备供应商或系统开发团队,获取正确的系统签名材料,并完成工程配置。仅修改UnsgnedReleasedProfileTemplate.jsonapp-feature是声明需求,最终授权取决于签名校验。

回到顶部