在企业移动办公和政企数字化转型中,终端设备管控正从简单的Wi-Fi限制或应用黑名单,向物理层级的完全受控和业务场景的精细化放通演进。HarmonyOS 6.1.1(API 24)的MDM Kit(企业设备管理服务)针对锁屏级手势控制、企业专有重签名证书分发部署以及PC/2in1的Dock快捷栏管理,新增了三项重磅系统管理API。本文基于实测Demo,详细解析这些能力的技术实现与适配经验。
一、Kiosk模式手势特权:从“全锁死”到“按需放通”
在以往的Kiosk锁定模式下,系统会暴力拦截一切底部上滑与边缘内滑手势,导致用户无法调出系统底座或进行多任务流转。API 24新增了KioskFeature的四个特权级特征码,让企业可在维持Kiosk强占位安全前提下,弹性授权部分手势:
- ALLOW_NOTIFICATION_CENTER(1):允许左上方下滑进入通知中心
- ALLOW_CONTROL_CENTER(2):允许右上方下滑进入控制中心
- ALLOW_GESTURE_CONTROL(3):允许底部上滑停留唤起最近任务栏
- ALLOW_SIDE_DOCK(4):允许边缘内滑停留唤起侧边Dock栏
实际开发中,我们通过一个KioskFeatureConfig类维护四个特征的开关状态,调用时提取被允许的特征列表下发到底层EDM服务。注意,这些手势策略需要先激活EDM Admin(Want对象),否则会抛出9200001错误。我们的Demo中加入了沙箱级容错:当捕获到该错误时,控制台温和提示并进入模拟态。
二、企业应用重签名证书部署(securityManager)
企业自有应用通常通过AGC的重签名工具进行二次签名,然后静默分发到受控终端。API 24提供了安装与卸载两个接口:
- installEnterpriseReSignatureCertificate(admin, certificateAlias, fd, accountId)
- uninstallEnterpriseReSignatureCertificate(admin, certificateAlias, accountId)
参数要点:
- certificateAlias必须以“。cer”结尾,作为受控端唯一检索Key
- fd是已在应用沙箱内打开的重签名证书文件描述符
- accountId为目标本地账户ID(如主用户100)
- 同一用户下最多共存10本证书;重复安装相同别名的证书会抛出9200012错误,必须先卸载再覆盖更新
实战中遇到一个常见问题:真机沙箱中证书文件缺失导致openSync报错。我们引入了“沙箱动态占位文件流机制”:在点击安装按钮时,自动在应用专属的cacheDir目录下即时生成仿真重签名证书文件,并安全获取其文件描述符fd。这样保证API调用100%具备真实底层描述符句柄,防止运行时崩溃。生成后及时调用fs.closeSync关闭fd,避免泄漏。
三、PC/2in1底部Dock栏管控(applicationManager)
针对PC和2in1双模态终端,MDM Kit新增了三个Dock快捷栏管理接口:
- addDockApp(admin, bundleName, abilityName, index?):不传index则追加到末尾,否则在指定位置插入,后续应用自动顺移。系统严厉禁止添加“应用中心”、“任务中心”、“文件管理”和“回收站”四个基础应用,否则直接拦截报错。
- removeDockApp(admin, bundleName, abilityName):移除指定应用;若传入系统必留应用包名会报错9201018。
- getDockApps(admin):获取当前Dock栏应用数组,成员包含包名、Ability名称以及零基索引index。
我们的Demo控制台提供了Bundle包名、Ability名称和位置索引选择器(0-10),右侧模拟器列表实时展示装载状态。同时内置了“文件管理”和“回收站”的阻断校验,提升体验。注意:addDockApp和removeDockApp仅在PC或2in1设备上生效,手机/平板调用会抛出错误码801。Demo通过沙箱模拟自动降级,确保开发调试不中断。
四、沙箱级虚拟注入与仿真总线
由于真机或模拟器经常缺少已激活的EDM管理员资质,我们在代码层引入了“沙箱级虚拟注入与仿真总线”。核心逻辑是:在每个API调用前检测环境是否支持对应函数,如果不支持则记录日志并执行本地模拟操作(如插入模拟Dock列表、设置证书安装标志)。这样开发者无需真实EDM环境即可完成前端业务调试,待部署到受控设备时再移除模拟分支。
五、项目结构与代码示例
Demo的目录结构如下(仅展示关键):- entry/
- ├── src/
- │ └── main/
- │ ├── ets/
- │ │ └── pages/
- │ │ ├── Index.ets(挂载本实战入口)
- │ │ └── MdmKitEnhanceDetail.ets(本期实战舱)
- │ └── resources/base/profile/main_pages.json
复制代码
下面是MdmKitEnhanceDetail.ets中核心的证书安装逻辑片段(完整代码见原文):
- // 获取应用专属沙箱缓存路径
- const cacheDir = getContext(this).cacheDir;
- const certPath = `${cacheDir}/${this.certAlias}`;
- // 建立证书实体并写入占位数据
- const file = fs.openSync(certPath, fs.OpenMode.CREATE | fs.OpenMode.READ_WRITE);
- fs.writeSync(file.fd, 'Mock Enterprise Re-Signature Certificate Binary Data');
- // 调用安装接口(含沙箱兼容)
- if (securityManager && typeof securityManager.installEnterpriseReSignatureCertificate === 'function') {
- securityManager.installEnterpriseReSignatureCertificate(this.adminWant, this.certAlias, file.fd, this.accountId);
- } else {
- // 沙箱模拟:直接设置标志位
- }
- fs.closeSync(file.fd);
复制代码
注意:代码中应提前导入securityManager、applicationManager、Want、fileIo等模块。错误处理采用BusinessError类型捕获,并针对9200001、801等常见错误提供友好提示。
六、总结
HarmonyOS 6.1.1的MDM Kit增强特性为政企终端管控提供了锁屏手势精细化放通、企业重签名证书静默部署、PC Dock快捷栏灵活编排三大能力。开发者需注意:所有MDM API调用都依赖EDM Admin权限;证书别名必须“.cer”结尾;Dock操作受限平台和设备类型。通过沙箱模拟机制,可以实现在非受控环境下的全链路调试,降低开发门槛。这些API的合理使用能有效支撑企业从“全锁死”向“按需放通”的管控策略演进。 |