写点什么

【Harmony】鸿蒙企业应用详解

作者:GeorgeGcs
  • 2025-07-03
    上海
  • 本文字数:2808 字

    阅读完需:约 9 分钟

【Harmony】鸿蒙企业应用详解

【HarmonyOS】鸿蒙企业应用详解

一、前言

1、应用类型定义速览:HarmonyOS 目前针对应用分为三种类型:普通应用,游戏应用,企业应用。


而企业应用又分为,企业普通应用和设备管理应用 MDM(Mobile Device Management)


HarmonyOS NEXT 版本中,普通应用用户只能通过应用市场下载并安装应用包。


企业类应用包括企业普通应用和 MDM(Mobile Device Management)设备管理应用。仅在企业定制设备上运行,不会在普通消费者设备上运行。不会上架华为应用市场。


2、MDM 应用实现详解:设备管理应用通过 EnterpriseAdminExtensionAbility 来调用 MDM Kit 中的接口,实现管理设备的意图。



3、企业应用的前提企业应用和普通应用最大的分别是,企业应用只能运行在特定的企业设备上,不能安装在面向普通消费者的商用设备上。


并且企业应用需要和华为 AGC 平台进行申请:



申请成为企业MDM应用开发者申请将应用加入企业MDM应用受邀名单可向华为运营人员申请开通。在收到您的申请后,华为运营人员将在1-3个工作日内为您安排对接人员。申请方法如下:
申请邮箱地址:agconnect@huawei.com。邮件标题:[申请企业MDM应用发布证书和发布Profile]-[应用名称]-[应用包名]-[APP ID]-[Developer ID],Developer ID等查询方法可参见查看应用基本信息。邮件正文:请说明申请原因。
复制代码

二、企业如何选择普通应用,还是企业应用?

上述问题,最关键的核心因素是,是否只需要满足,企业应用不对外,在应用市场不公开下载,但是企业内部可以安装的诉求。


如果只是该诉求,完全可以选择普通应用,但是不公开发布的策略。


非公开发布:



是指您可以将不适合公开分发的应用以非公开方式在华为应用市场上发布,使其仅可通过链接被用户发现。非公开发布的应用不会出现在任何华为应用市场的类别、推荐、排行榜、搜索结果或其他列表中。


企业应用只有企业特殊需求,例如在自己的企业设备上,例如银行的平板,教育机构的平板或者手机,都可以选择企业应用。


设备管理应用还有一种情况,当企业需要管理员工设备时,此时就需要 MDM,将应用创建为设备管理应用。

三、企业 MDM 应用发布证书与 Profile 申请全流程指南

1、准备申请资质与材料

(1)企业开发者账号认证


注册华为开发者联盟账号(https://developer.huawei.com/consumer/cn/),并完成企业实名认证(需提供营业执照、法人信息等)。


认证通过后,在“管理中心”选择“HarmonyOS 应用”,进入 MDM 应用开发专区。


(2)资质审核材料


企业 MDM 应用需说明使用场景(如企业设备管理、数据安全管控等),并提交《企业应用开发资质声明》(华为开发者平台可下载模板)。


若涉及敏感权限(如设备控制、数据监控),需额外提供企业内部安全策略文档。

2、生成证书请求文件(CSR)

(1)工具准备


使用 OpenSSL 工具生成密钥对与 CSR 文件,示例命令:



# 生成私钥(2048位RSA) openssl genrsa -out enterprise_mdm.key 2048 # 生成CSR文件(需填写企业信息,Common Name建议使用企业域名) openssl req -new -key enterprise_mdm.key -out enterprise_mdm.csr -subj "/C=CN/O=企业名称/CN=企业域名"
复制代码


(2)上传 CSR 申请证书


在华为开发者平台“证书管理”页面,选择“创建企业 MDM 发布证书”,上传 CSR 文件并提交审核(审核周期通常为 1-3 个工作日)。

3、下载与配置证书

审核通过后,下载证书文件(.p12 格式),并在 DevEco Studio 中配置:


  1. 打开Project Structure > Signing Configs,添加.p12 证书路径及密码;

  2. build.gradle中指定签名配置,确保应用打包时使用该证书签名:


     signingConfigs {         release {             storeFile file('enterprise_mdm.p12')             storePassword '证书密码'             keyAlias '证书别名'             keyPassword '密钥密码'         }     }
复制代码
4、Profile 文件核心参数说明

Profile 文件(.p7b 或.json 格式)需包含以下关键信息(通过 DevEco Studio 自动生成或手动配置):


(1)应用基本信息


bundleName:应用包名(需与证书绑定的包名一致)


versionCode/versionName:应用版本号


distributionType:设置为enterprise_mdm(标识 MDM 应用类型)


(2)MDM 专属权限声明


在 module.json5 中声明 MDM 必需权限(参考仅MDM应用可用权限):


  "requestPermissions": [    {      "name": "ohos.permission.MDM_CONTROL_DEVICE", // 设备控制权限      "reason": "用于企业设备管理"    },    {      "name": "ohos.permission.MDM_SET_SECURITY_POLICY", // 安全策略设置权限      "reason": "用于下发企业安全策略"    }    // 其他MDM权限...  ]
复制代码


(3)设备管理能力声明


在 Profile 中添加设备管理扩展能力(需与激活命令中的类名一致):


  "deviceManagement": {    "adminExtention": "com.enterprise.mdm.DeviceAdminExtension", // 设备管理扩展类名    "supportTypes": ["super_admin", "byod"] // 支持超级管理或BYOD模式  }
复制代码
5、生成与签名 Profile 文件

(1)通过 DevEco Studio 生成


  1. 在项目中创建 profile.json,按上述规范配置参数;

  2. 使用证书对 Profile 签名:通过以下 hdc 命令生成签名后的 Profile 文件(.p7b)。



hdc shell bm sign-profile -p profile.json -k enterprise_mdm.p12 -a 证书别名 -w 证书密码
复制代码


(2)手动配置注意事项


Profile 中的 distributionType 必须为 enterprise_mdm,否则非企业设备无法安装(参考错误码 9568398);


权限声明需与 MDM Kit 开发指南一致,避免因权限缺失导致功能失效。

6、设备激活为 MDM 管理设备

(1)超级设备管理模式(全管控)


    hdc shell edm enable-admin -n com.enterprise.mdm -a com.enterprise.mdm.DeviceAdminExtension
复制代码


(2)BYOD 模式(自带设备办公)


    hdc shell edm enable-admin -n com.enterprise.mdm -a com.enterprise.mdm.DeviceAdminExtension -t byod
复制代码


注意:激活限制


同一设备仅能激活一个超级设备管理应用;


BYOD 模式下,设备仍保留部分用户个人权限,需在 Profile 中配置byod支持。

2. 部署与测试验证

(1)安装 MDM 应用


使用已签名的 HAP 包和 Profile 文件,通过以下方式安装:


  hdc shell bm install -p mdm_app.hap -f mdm_profile.p7b
复制代码


(2)功能验证


检查 MDM 权限是否生效(如调用setSecurityPolicy接口下发密码策略);


测试设备管理功能(如远程锁定、应用黑名单管理,参考黑名单处理文档)。

注意

1、非企业设备安装失败(错误码 9568398)


原因:Profile 中的 distributionType 为 enterprise_mdm,但设备未经过企业认证。


解决方案:仅在企业定制设备或通过 MDM 激活的设备上安装,或修改 Profile 类型为普通应用(非 MDM 场景)。


2、MDM 权限调用失败


原因:未正确激活设备管理应用或权限声明缺失。


解决方案:确认已执行 edm enable-admin 激活,并在 Profile 和代码中完整声明权限(如ohos.permission.MDM_CONTROL_DEVICE)。


3、证书与 Profile 绑定错误


原因:HAP 包签名证书与 Profile 签名证书不一致。


解决方案:使用同一证书对 HAP 包和 Profile 签名,通过jarsigner -verify命令校验签名一致性。

发布于: 12 小时前阅读数: 2
用户头像

GeorgeGcs

关注

路漫漫其修远兮,吾将上下而求索。 2024-12-24 加入

鸿蒙创作先锋,华为HDE专家,鸿蒙讲师,作者。 目前任职鸿蒙应用架构师。历经腾讯,宝马,研究所,金融。 待过私企,外企,央企。 深耕大应用开发领域十年。 OpenHarmony,HarmonyOS,Flutter,H5,Android,IOS。

评论

发布
暂无评论
【Harmony】鸿蒙企业应用详解_鸿蒙_GeorgeGcs_InfoQ写作社区