在企业移动办公与政企数字化转型中,终端设备的安全管控早已从简单的网络限制演变为“软硬件物理层级的完全受控”与“基于业务场景的精细化行为放通”。HarmonyOS 6.1.1(API 24)通过MDM Kit(企业设备管理服务)提供了三大核心增强:Kiosk模式手势控制、企业应用重签名证书部署,以及PC/2in1底部快捷栏(Dock)的精细化增删。本文结合实战Demo,深度解析这些API的使用方法、适配要点与常见问题。
一、Kiosk模式手势特权控制:从暴力拦截到柔性放通
在以往的Kiosk锁定模式下,系统会全面屏蔽底部上滑和边缘内滑手势,导致用户无法调出最近任务栏或侧边Dock。HarmonyOS 6.1.1在KioskFeature中新增了两个特权级特征码:
- ALLOW_GESTURE_CONTROL(特征值3):允许单指底部上滑停留唤出最近任务栏。
- ALLOW_SIDE_DOCK(特征值4):允许单指边缘内滑停留唤出侧边Dock栏。
结合原有的ALLOW_NOTIFICATION_CENTER(特征值1)和ALLOW_CONTROL_CENTER(特征值2),企业可在维持Kiosk业务占位安全的前提下,按需放通特定手势,实现多应用流转与快捷操作。
部署时,应用需通过EDM Admin组件的Want向底层注册手势配置。示例代码中定义了一个KioskFeatureConfig类来管理每个特征值的启用状态,通过遍历允许列表并调用底层接口下发策略。真机测试时,若应用未被激活为企业管理器(错误码9200001),Demo会优雅捕获并进入沙箱模拟态,避免崩溃。
- // Kiosk特征配置实体
- class KioskFeatureConfig {
- featureId: number = 0;
- name: string = '';
- isAllowed: boolean = false;
- desc: string = '';
- // 构造函数略
- }
- // 下发策略(简化)
- handleApplyKioskFeatures() {
- // 提取允许手势列表
- // 调用底层API(实际需结合EDM Admin)
- // 捕获9200001错误并模拟
- }
复制代码
二、企业应用重签名证书静默部署:securityManager的安装与卸载
企业通过AGC申请的重签名公钥证书,可通过securityManager.installEnterpriseReSignatureCertificate静默注入受控终端,使使用该证书二次签名的内部HAP包实现极速覆写与静默准入。
核心API签名如下:- installEnterpriseReSignatureCertificate(
- admin: Want,
- certificateAlias: string, // 后缀必须为.cer
- fd: number, // 沙箱内已打开的文件描述符
- accountId: number // 目标本地账户ID,如100
- ): void
复制代码 卸载接口类似,但需注意:同一用户下最多共存10本证书;重复安装相同别名的证书会抛出9200012错误,必须先卸载再覆盖。
实战代码中,通过fileIo在应用专属cacheDir下动态创建模拟证书文件,获取合法fd后调用API。若运行环境不支持(如未激活EDM),Demo会模拟成功并记录日志,确保不会因底层异常而崩溃。
- // 安装证书(含沙箱模拟)
- handleInstallCertificate() {
- // 校验后缀.cer
- // 创建临时证书文件并获取fd
- const file = fs.openSync(certPath, fs.OpenMode.CREATE | fs.OpenMode.READ_WRITE);
- // 调用installEnterpriseReSignatureCertificate
- // 捕获9200001错误,触发沙箱模拟
- // 关闭fd
- }
复制代码
三、PC/2in1底部快捷栏精细化管控:applicationManager的增删改查
针对PC和2in1混合办公终端,applicationManager提供了高精度索引控制的Dock应用管理接口:
- addDockApp(admin, bundleName, abilityName, index?):在指定位置插入应用。若不传index或大于当前Dock应用数,则追加到末尾;若插入已有位置,后续应用自动顺移。严禁添加“应用中心”、“任务中心”、“文件管理”、“回收站”四个全局基础应用,否则直接拦截报错。
- removeDockApp(admin, bundleName, abilityName):移除指定应用,若传入系统必留应用会报错9201018。
- getDockApps(admin):返回DockInfo数组,包含包名、ability名和精确索引。
Demo中构造了LocalDockInfo实体,提供增加、移除、查询的完整交互。非PC/2in1设备调用addDockApp会返回801错误,此时Demo自动转入沙箱模拟,在本地列表中演示顺移效果。
- // 添加应用到Dock(含平台限制模拟)
- handleAddDockApp() {
- // 校验禁止添加的应用
- // 调用applicationManager.addDockApp
- // 捕获801并模拟插入
- // 捕获9200001并模拟插入
- }
复制代码
四、实战Demo架构与日志审计
完整的Demo页面“MdmKitEnhanceDetail.ets”包含三个核心控制模块:
1. Kiosk手势策略配置区:四个独立开关控制通知中心、控制中心、底部上滑手势、侧边Dock手势。
2. 企业重签名证书部署区:输入证书别名(.cer结尾)和域账号ID,支持安装与卸载,自动生成模拟证书文件。
3. Dock快捷栏调度区:输入包名、Ability名和位置索引(Slider 0-10),提供增加、移除、查询,并模拟对文件管理、回收站的拦截。
底部配备深黑色滚动日志控制台,实时输出每条指令的执行结果、错误码及沙箱模拟提示,便于调试审计。
项目结构(关键文件):- entry/src/main/ets/pages/
- ├── Index.ets // 主导航页
- └── MdmKitEnhanceDetail.ets // MDM管理舱
- entry/src/main/ets/entryability/EntryAbility.ets
复制代码
五、总结与影响分析
HarmonyOS 6.1.1 MDM Kit的三大增强显著提升了企业终端管控的灵活性:Kiosk手势放通解决了多任务流转与安全锁定的矛盾;重签名证书部署实现了内部分发HAP的离线静默准入;PC Dock精细管控则让企业IT可以按角色定制员工常用工具链。这些能力对政企服务窗口、商超收银终端、研发白名单设备等强监管场景具有极高价值。
开发者需注意:所有管控API均依赖EDM Admin组件授权;证书安装时务必确保文件描述符有效且后缀为.cer;Dock管控接口仅在PC/2in1设备上真正生效。Demo中引入的沙箱模拟机制可帮助开发者在非目标环境下完成逻辑验证,降低真机调试门槛。 |