BMS 安全与校验

使用此 skill 处理 BundleManager 中权限、安全校验、签名校验和 provision profile 相关修改。

工作流程

  1. 先判断安全面:

    • 调用方权限或 system API:看 BundleMgrHostImplBundlePermissionMgr
    • HAP 签名、完整性、安装校验:看 verify/BundleInstallCheckerBundleParser
    • Provision profile:看 app_provision_info/
    • Code signature:搜索 code signature 和相关错误码。
    • Installs 进程权限:看 InstalldPermissionMgr 和 foundation UID 校验。
    • 应用管控:看 app_control/
  2. 阅读 references/security-map.md,确认核心文件。

  3. 阅读 references/security-checklist.md,检查权限、错误码、日志和测试。

  4. 修改时把安全失败路径当作主要路径处理,必须明确返回错误码和日志敏感性。

安全原则

  • 调用方身份检查要靠 token/UID/PID 等系统来源,不要信任入参。
  • 多用户场景要检查 userId 是否允许调用方操作。
  • 敏感日志使用 %{private},公开信息使用 %{public}
  • 安装安全检查失败时,不要继续写入数据或执行文件操作。
  • Installs 进程只信任 Foundation 进程调用。

参考资料

  • references/security-map.md:安全与校验文件地图。
  • references/security-checklist.md:安全修改检查清单。