查询设备安全模式(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;
    }
    

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/bb/v3/3VzySVVuTke3CbqCOEfwWQ/note_3.0-zh-cn.png?HW-CC-KV=V1&HW-CC-Date=20260709T132417Z&HW-CC-Expire=86400&HW-CC-Sign=8BB90BC041276CF5B3A19C24497BB766B41AC94ED1CD316DA83008F92F4AF7F8)

若应用使用到ArkWeb组件，需进一步参考[说明](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/web-secure-shield-mode)，进行Web特性的兼容性评估。