查看: 137|回复: 1

HarmonyOS 6.1.1 MDM Kit实战:Kiosk手势放通、企业证书静默部署与PC Dock精细管控

[复制链接]
发表于 昨天 20:00 | 显示全部楼层 |阅读模式
在企业移动办公与政企数字化转型中,终端设备的安全管控早已从简单的网络限制演变为“软硬件物理层级的完全受控”与“基于业务场景的精细化行为放通”。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会优雅捕获并进入沙箱模拟态,避免崩溃。
  1. // Kiosk特征配置实体
  2. class KioskFeatureConfig {
  3.   featureId: number = 0;
  4.   name: string = '';
  5.   isAllowed: boolean = false;
  6.   desc: string = '';
  7.   // 构造函数略
  8. }
  9. // 下发策略(简化)
  10. handleApplyKioskFeatures() {
  11.   // 提取允许手势列表
  12.   // 调用底层API(实际需结合EDM Admin)
  13.   // 捕获9200001错误并模拟
  14. }
复制代码

二、企业应用重签名证书静默部署:securityManager的安装与卸载

企业通过AGC申请的重签名公钥证书,可通过securityManager.installEnterpriseReSignatureCertificate静默注入受控终端,使使用该证书二次签名的内部HAP包实现极速覆写与静默准入。

核心API签名如下:
  1. installEnterpriseReSignatureCertificate(
  2.   admin: Want,
  3.   certificateAlias: string,   // 后缀必须为.cer
  4.   fd: number,                 // 沙箱内已打开的文件描述符
  5.   accountId: number           // 目标本地账户ID,如100
  6. ): void
复制代码
卸载接口类似,但需注意:同一用户下最多共存10本证书;重复安装相同别名的证书会抛出9200012错误,必须先卸载再覆盖。

实战代码中,通过fileIo在应用专属cacheDir下动态创建模拟证书文件,获取合法fd后调用API。若运行环境不支持(如未激活EDM),Demo会模拟成功并记录日志,确保不会因底层异常而崩溃。
  1. // 安装证书(含沙箱模拟)
  2. handleInstallCertificate() {
  3.   // 校验后缀.cer
  4.   // 创建临时证书文件并获取fd
  5.   const file = fs.openSync(certPath, fs.OpenMode.CREATE | fs.OpenMode.READ_WRITE);
  6.   // 调用installEnterpriseReSignatureCertificate
  7.   // 捕获9200001错误,触发沙箱模拟
  8.   // 关闭fd
  9. }
复制代码

三、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自动转入沙箱模拟,在本地列表中演示顺移效果。
  1. // 添加应用到Dock(含平台限制模拟)
  2. handleAddDockApp() {
  3.   // 校验禁止添加的应用
  4.   // 调用applicationManager.addDockApp
  5.   // 捕获801并模拟插入
  6.   // 捕获9200001并模拟插入
  7. }
复制代码

四、实战Demo架构与日志审计

完整的Demo页面“MdmKitEnhanceDetail.ets”包含三个核心控制模块:
1. Kiosk手势策略配置区:四个独立开关控制通知中心、控制中心、底部上滑手势、侧边Dock手势。
2. 企业重签名证书部署区:输入证书别名(.cer结尾)和域账号ID,支持安装与卸载,自动生成模拟证书文件。
3. Dock快捷栏调度区:输入包名、Ability名和位置索引(Slider 0-10),提供增加、移除、查询,并模拟对文件管理、回收站的拦截。

底部配备深黑色滚动日志控制台,实时输出每条指令的执行结果、错误码及沙箱模拟提示,便于调试审计。

项目结构(关键文件):
  1. entry/src/main/ets/pages/
  2.   ├── Index.ets           // 主导航页
  3.   └── MdmKitEnhanceDetail.ets  // MDM管理舱
  4. 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中引入的沙箱模拟机制可帮助开发者在非目标环境下完成逻辑验证,降低真机调试门槛。
回复

使用道具 举报

发表于 昨天 20:10 | 显示全部楼层

Re: HarmonyOS 6.1.1 MDM Kit实战:Kiosk手势放通、企业证书静默部署与PC Dock精细管控

非常专业且详实的实战分享!尤其是Kiosk模式下手势柔性放通的设计,解决了企业场景中安全和应用流转的矛盾,这个思路很实用。企业证书静默部署和Dock精细管控的API封装也很有参考价值,沙箱模拟报错的处理方式对开发调试很友好。请问在Kiosk手势配置中,如果多个手势同时需要开启,是否有优先级或冲突处理的建议?另外,Dock管控中“文件管理”这类全局应用被拦截时,是不是完全无法添加到Dock,还是可以通过其他方式绕过?期待更多后续的实践总结!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-6-14 02:01 , Processed in 0.034154 second(s), 18 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部