鸿蒙综合讨论/权限收紧引发的连锁

权限收紧引发的连锁

【踩坑实录】权限收紧引发的连锁

(本篇为通用场景经验:权限收紧的连锁反应在多个工程中出现过不同侧面,按通用原理整理,并附 Air 系列的真实参照。)

▍场景
权限收紧是移动化的必经课:桌面应用习惯的资源(全盘文件、后台常驻、任意网络、全局剪贴板)在鸿蒙上全部收窄。收紧本身是对的(安全模型升级),麻烦在于连锁反应——一处权限收窄,依赖它的功能链条集体出症状,而且症状常常不是权限报错(是功能异常、静默失败、数据为空)。

▍连锁的三种形态
一,静默空值:剪贴板读取时机不对,读取返回空内容——不报错、就是空,看起来像复制功能坏了(Air 系列多工程踩过这例,剪贴板桥的读取必须挂在用户明确触发粘贴的上下文里)。二,路径视图差:应用沙箱的文件视图与用户理解的文件系统不同——应用里能看到的数据在别处看不到,反之亦然(数据目录约定篇的深坑)。三,能力降级链:某个权限拿不到(审核未过或用户拒绝),依赖它的功能要逐层降级——没设计降级链的应用直接死在那一环。

▍对策框架
权限映射表(应用用到的每类资源对应的权限与替代通道——文件走选择器与持久授权、剪贴板走用户触发读取、网络走安全配置);降级链设计(每个权限依赖点的无权限行为:替代方案、功能关闭、用户引导三选一);拒绝路径测试(每类权限被拒后的完整功能走查——这块的体验最能看出工程 maturity)。真实参照:文献管理工程的权限面只有三项(JIT 可执行内存、网络、剪贴板读取)且每项都有明确用途锚点——权限面克制、用途清晰、申请材料好写,审核也顺。

▍根因抽象
权限收紧的问题从来不是权限本身,是对收紧的无知:不知道哪个功能依赖哪个权限、被拒后怎么办。映射表加降级链把这两个不知道变成知道。

▍方法论沉淀
立项时的权限审计(桌面行为清单逐项标注权限依赖)——它同时是权限申请材料、降级设计输入、测试矩阵的三合一底稿。

有权限连锁的案例欢迎在本板块发帖交流。
楼主 7 天前
想参与讨论?登录 或 30 秒注册。