跳到主要内容

查询设备安全模式(C/C++)

场景介绍

Device Security Kit提供了系统安全模式的查询能力。通过调用Device Security Kit的接口,可以判断设备当前的安全模式(包含普通模式、坚盾守护模式),应用可根据设备当前的安全模式提供差异化的服务。

  • 普通模式:操作系统默认模式,适用于绝大部分用户使用。

  • 坚盾守护模式:提供给高安全需求用户的系统级别安全模式。该模式通过限制设备基础功能,增强安全性,有效抵御远程攻击面的针对性攻击。

    坚盾守护模式下,操作系统禁止应用申请获取匿名内存可执行权限。

    应用应当根据系统安全模式进行自主适配,停用即时编译(JIT,Just-in-time compilation)功能或切换为解释执行。

开发步骤

  1. 在CMakeLists.txt中导入设备安全模式共享库,并链接该库。

    find_library(dsm-lib libdevice_security_mode.z.so)
    target_link_libraries(entry PUBLIC libace_napi.z.so ${dsm-lib})
  2. 导入设备安全模式的头文件。

    #include <DeviceSecurityKit/device_security_mode.h>
  3. 调用接口查询设备当前的安全模式。

    int32_t IsSecureShieldModeOn(void)
    {
    DSM_DeviceSecurityMode mode = HMS_DSM_GetDeviceSecurityMode();
    return mode & DSM_SECURE_SHIELD_MODE;
    }

若应用使用到ArkWeb组件,需进一步参考说明,进行Web特性的兼容性评估。