【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)企业开发者账号认证
注册华为开发者联盟账号(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中配置:
- 打开
Project Structure > Signing Configs
,添加.p12证书路径及密码; - 在
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生成
- 在项目中创建profile.json,按上述规范配置参数;
- 使用证书对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
命令校验签名一致性。