# SECBOOT ***Copyright © Quectel Wireless Solutions Co., Ltd. 2026. All rights reserved.*** --- # 功能概述 SECBOOT(Secure Boot,安全启动)是一种基于可信根(Root of Trust)的安全启动机制,用于确保设备在启动过程中仅加载和执行经过授权的固件镜像,从而防止恶意代码、篡改固件或未授权软件运行。 在设备上电启动时,系统首先从芯片内部固化的启动程序(Boot ROM)开始运行,并对后续启动阶段的固件进行数字签名校验。只有当固件签名验证通过后,系统才会继续执行下一阶段的启动流程;如果校验失败,则拒绝加载相关固件,从而保障系统启动链路的安全性。 SECBOOT通过建立从Boot ROM到Bootloader、Kernel以及应用程序的信任链(Chain of Trust),确保整个启动过程中的软件均来源可信且未被篡改。 主要提供以下安全能力: - 防止未授权固件被加载执行 - 防止固件文件被恶意篡改 - 保护设备系统完整性与可信性 - 提升产品对恶意攻击和非法破解的防护能力 - 满足工业、车载、物联网等安全场景的部署要求 # SECBOOT API ## 头文件 *qosa_secboot.h* ## 函数概览 | **函数** | **说明** | | --- | --- | | *qosa_secboot_enable()* | 启用SECBOOT | | *qosa_secboot_get_enable_state()* | 获取SECBOOT的启用状态 | ## 函数详解 ### qosa_secboot_enable - **功能描述** 启用SECBOOT。 - **函数原型** ```c qosa_secboot_error_e qosa_secboot_enable(void) ``` - **参数说明** 无 - **返回值说明** *QOSA_SECBOOT_OK*:函数执行成功 其他错误码:函数执行失败 ### qosa_secboot_get_enable_state - **功能描述** 获取SECBOOT的启用状态 **。** - **函数原型** ```c qosa_secboot_error_e qosa_secboot_get_enable_state(qosa_uint8_t *enable_state) ``` - **参数说明** | **参数名** | **输入/输出** | **类型** | **说明** | | --- | --- | --- | --- | | *enable_state* | 输出 | qosa_uint8_t * | 输出参数
*0*:禁用
*1*:启用 | - **返回值说明** *QOSA_SECBOOT_OK*:函数执行成功 其他错误码:函数执行失败 ## 枚举定义 ### qosa_secboot_error_e 结果码枚举定义如下: ```c QOSA_COMPONENT_SECBOOT = 0x811B #define QOSA_ERRCODE_SECBOOT_BASE (QOSA_COMPONENT_SECBOOT << 16) typedef enum { QOSA_SECBOOT_OK = QOSA_OK, QOSA_SECBOOT_EXECUTE_ERR = QOSA_ERRCODE_SECBOOT_BASE | 1, QOSA_SECBOOT_INVALID_PARAM_ERR , QOSA_SECBOOT_UNKNOW_ROM_VECTOR , QOSA_SECBOOT_ERROR_MAX } qosa_secboot_error_e; ``` | **成员** | **说明** | | --- | --- | | *QOSA_SECBOOT_OK* | 函数执行成功 | | *QOSA_SECBOOT_EXECUTE_ERR* | 函数执行失败 | | *QOSA_SECBOOT_INVALID_PARAM_ERR* | 参数无效 | | *QOSA_SECBOOT_UNKNOW_ROM_VECTOR* | 未知的变量 | | *QOSA_SECBOOT_ERROR_MAX* | 其他错误 | # 示例代码 完整示例代码请查看https://github.com/UniRTOS/UniRTOS-Doc-Examples/blob/main/system/secboot/secboot.c