Zephyr V4.5.0发布
Zephyr 从 2026 年起由季度发布改为半年发布,v4.5.0 是第二个半年版本,也就是今年的发布已经全部完成,原定于 2026 年 10 月 26 日发布,实际晚了 2 天,到 10 月 28 日才发布。支持截止日期为 2027 年 10 月 28 日。
这个版本有 1297 名贡献者,新增 178 个主板、29 个扩展板和 71 个实例。官方博客提到驱动和硬件支持的提交占总数一半以上,所以板卡数字的膨胀并不意外。
- Release 文件 https://github.com/zephyrproject-rtos/zephyr/releases/tag/v4.5.0
- Release Notes https://docs.zephyrproject.org/latest/releases/release-notes-4.5.html
- Release Blog https://www.zephyrproject.org/zephyr-rtos-4-5-now-available-two-new-architectures-multimedia-pipelines-sboms-and-more/
- 迁移指南(从 4.4.0 迁移到 4.5.0) https://docs.zephyrproject.org/latest/releases/migration-guide-4.5.html
- 配套视频 https://youtu.be/gmtVwv26smo?si=pW3CWPvDITyj3yjY
重大变化 链接到标题
- 新增两个处理器架构:Infineon TriCore(AURIX 汽车微控制器)和 Qualcomm Hexagon(DSP),两者都提供了 QEMU 目标
- 新增实验性多媒体管线 mpipe:把 GStreamer 的 source / transform / sink 模型搬进 MCU
- 网络栈提速与新协议
- IP 栈优化,zperf 回环基准测试中 TCP 吞吐最高提升 21%,UDP 提升 7~12%
- 新增 QUIC 与 HTTP/3、RTP(RFC 3550)、SSH 服务端与客户端、MCP(Model Context Protocol)服务器
- 新增网关能力:IPv4 转发与 NAT、IPv6 路由器角色、DHCPv6 前缀委派
- 安全与合规
- SPDX 3.0 SBOM:不只记录有什么,还记录怎么被构建出来的
- 加固工具重做:内置 CWE 引用,配置回退时可以让 CI 构建失败
- 部分 Silicon Labs、NXP、STM32 器件支持硬件加速的 PSA Crypto
- 新增 FIDO2 认证器子系统,设备可以当 passkey 用
- 调试与诊断
ZASSERT():按模块、按文件设置断言级别- 堆内存错误检测:native_sim 上用 ASAN,真实目标上用 KASAN
- Tracing 支持 Perfetto 导出和纯 Python 的终端查看器
- 崩溃设备可以通过 UDP 把 coredump 发到网络另一头
- 内核提速 3~15%(STM32F412 上跑 Thread-Metric),信号量 give/take 快 15% 以上,消息队列往返快近 14%
- 新增 6 个驱动类:Buzzer、Clock Monitor、DALI、LIN、MUX、Pulse IO
- 仿真与测试:native_sim 增加 Wi-Fi、音频、视频、LED 和宿主目录挂载;QEMU 增加 VirtIO 驱动;Twister 支持多设备测试和多工具链构建;网络栈增加 TTCN-3 一致性测试套件
- 新增 178 个主板、29 个扩展板、71 个实例,修复 2 个 CVE
两个新架构:TriCore 与 Hexagon 链接到标题
官方博客里有一句话:“It’s not every day that a new processor architecture gets added to Zephyr, so getting two in the same release is pretty exciting!”一次进两个,确实是第一次。
- Infineon TriCore 是 AURIX 系列汽车微控制器的架构。TriCore 进树意味着 Zephyr 不再只跑在 Cortex-M 小核或者协处理器上,而是能直接跑在 ECU 的主核上。博客的说法是“If you build ECUs, Zephyr now runs on the cores you already use.”
- Qualcomm Hexagon 是高通 SoC 里的 DSP 架构,面向音频、传感器和信号处理负载
两者都给了 QEMU,可以先无硬件验证:
# 板名以 west boards 的输出为准
west build -b qemu_tc3x samples/hello_world
west build -b qemu_hexagon samples/hello_world
需要注意 TriCore 的 QEMU 和 Hexagon 的工具链都还没有随 Zephyr SDK 发布,要按对应板卡的文档先自己配好工具链,再用 west build -b <board> -t run 跑。
加上这两个,Zephyr 覆盖的架构变成 Arm、RISC-V、x86、Xtensa、ARC、OpenRISC、TriCore、Hexagon。有意思的是最近两个 Zephyr 版本进的都是“边缘”架构:4.4 的 OpenRISC 是软核与 FPGA 场景,4.5 的 TriCore 和 Hexagon 是汽车与 DSP,都不是通用 MCU 主战场。说明通用 MCU 的架构覆盖已经做得差不多了,增量在往垂直领域走。
多媒体管线 mpipe(实验性) 链接到标题
这是 4.5 里我个人比较感兴趣的部分。mpipe 把 GStreamer 的模型搬到了 MCU 上:
- 元素分三类:source、transform、sink,连成管线,缓冲区在管线中流动而不做拷贝
- pads 与 links、元素之间的 caps 协商、buffer pool、READY / PAUSED / PLAYING 状态机
- 一路摄像头输入可以分发给多个分支,每个分支独立线程
- 漏式队列(leaky queue)只保留最新一帧
但是 mpipe 目前还是实验性的,视频和显示还在评审中(PR #108344、PR #108345),也就是说 4.6 才是它真正可用的时候。
网络:提升性能,支持更多协议、可被 AI 调用 链接到标题
网络是这次改动最密集的子系统。
性能:IP 栈本身做了优化,zperf 测试中 TCP 吞吐最高提升 21%,UDP 提升 7~12%(x86 与 Cortex-M3),RISC-V 上是 1~3.5%。另外 TCP 的选择性确认(SACK)已默认启用,丢包恢复更快;zperf 实验性支持了 iperf3,不用再跑 iPerf 2。
协议:
- QUIC 传输层,HTTP 服务器可以直接提供 HTTP/3 服务。QUIC 自带 TLS 1.3,建连往返次数更少,对丢包网络更友好
- RTP(RFC 3550)媒体流栈,UDP 上收发音视频
- SSH 服务端与客户端,带 shell 后端
网关:
- IPv4 转发与 NAT,含连接跟踪,用 shell 的
net iptable可以管转发规则 - IPv6 路由器角色与路由通告
- DHCPv6 前缀委派
MCP 服务器:Zephyr 能直接和 AI Agent 生态连接。Devicetree 绑定新增了一个 class: 键(比如 class: sensor),MCP 服务器用 DT_FOREACH_CLASS_STATUS_OKAY(sensor, ...) 遍历所有状态为 okay 的传感器,自动为每一个注册一个工具。博客演示一台跑 Zephyr 的飞控板:Agent 被问“Is this board ready to fly?”,调用 sensor_read_<node> 系列工具把所有通道读一遍(加速度计、陀螺仪、磁力计、气压计、温度、供电电压),发现磁力计数据可疑,并且能结合“健康无人机该是什么样”给出判断。
内容摘要 链接到标题
修补漏洞 链接到标题
详细的说明可以在 https://docs.zephyrproject.org/latest/security/vulnerabilities.html 找到。
这次只有 2 个 CVE,比 4.4 的 14 个少了一个数量级:
- CVE 2026-8718(封禁至 2026-08-08)
- CVE 2026-9263(封禁至 2026-06-28)
数量少不代表安全投入变少。这版的安全主线是“可审计”——SPDX 3.0 SBOM 和加固工具,比修漏洞影响更长远。
API 变化 链接到标题
删除的 API 和选项
- 架构
- ARM:移除
CONFIG_PLATFORM_SPECIFIC_INIT与z_arm_platform_init() - RISC-V:移除
CONFIG_EXTRA_EXCEPTION_INFO - x86:移除
CONFIG_SSE、CONFIG_SSE_FP_MATH - Xtensa:移除
CONFIG_XTENSA_BACKTRACE_EXCEPTION_DUMP_HOOK
- ARM:移除
- 构建系统
- 移除 C17 之前的 C 标准支持,
CONFIG_STD_C11、CONFIG_STD_C99、CONFIG_STD_C90全删,只剩 C17 - 移除
CONFIG_BUILD_NO_GAP_FILL,改由CONFIG_BUILD_OUTPUT_HEX_GAP_FILL/CONFIG_BUILD_OUTPUT_S19_GAP_FILL按需开启 - 移除
cmake/app/boilerplate.cmake、ZephyrUnittestCMake 包、WEST_DIR变量 - 移除 CMake 的
flash、debug、debugserver、attach、rtt目标
- 移除 C17 之前的 C 标准支持,
- 内核:移除
CONFIG_SMP_BOOT_DELAY;k_futex不再是内核对象,K_OBJ_FUTEX一并移除 - 蓝牙
- Controller:移除
CONFIG_BT_CTRL_ADV_ADI_IN_SCAN_RSP - Host:移除
CONFIG_BT_RECV_CONTEXT及其选择的CONFIG_BT_RECV_WORKQ_SYS/_BT、CONFIG_BT_HCI_RAW_H4/_ENABLE、CONFIG_BT_AUTO_PHY_UPDATE、_bt_gatt_ccc与BT_GATT_CCC_INITIALIZER、CONFIG_BT_CONN_TX_MAX、CONFIG_BT_FIXED_PASSKEY与bt_passkey_set() - Mesh:移除
CONFIG_BT_MESH_BLOB_IO_FLASH_WITH_ERASE/WITHOUT_ERASE - 服务:移除
CONFIG_BT_DIS_MANUF、CONFIG_BT_DIS_MODEL
- Controller:移除
- 板卡:删除 4.3 之前弃用的板名别名(
arduino_uno_r4_minima、esp32c6_devkitc、xiao_esp32c6、neorv32等),panb511evb改名panb611evb,scobc_module1改名scobc_a1 - CAN:移除
bus-speed/bus-speed-data属性,改用bitrate/bitrate-data - 以太网:移除
CONFIG_ETH_NUMAKER、CONFIG_ETH_NATIVE_TAP_*、ETHERNET_CONFIG_TYPE_T1S_PARAM - 工具:移除
imgtool的west sign支持、log_parser_uart.py、west flash/debug的--skip-rebuild选项
弃用的 API 和选项
include/zephyr/sys_clock.h弃用,改用include/zephyr/sys/clock.hCONFIG_LEGACY_GENERATED_INCLUDE_PATH弃用且默认关闭,zephyr/前缀为唯一写法- CMake 变量
SOC_NAME、SOC_SERIES、SOC_FAMILY、SOC_V2_DIR分别改用CONFIG_SOC、CONFIG_SOC_SERIES、CONFIG_SOC_FAMILY、SOC_FULL_DIR CONFIG_SRAM_SIZE、CONFIG_SRAM_BASE_ADDRESS弃用,改用 Devicetree 的zephyr,sramchosen 节点- 音频后端 API:
struct audio_codec_api→audio_codec_driver_api,struct _dmic_ops→dmic_driver_api,都要用DEVICE_API()包装 - CAN:
can_set_state_change_callback()拆成can_add_state_change_callback()/can_remove_state_change_callback() - CPU Load 并入统一的
CONFIG_CPU_LOAD模块 - RP2350 的
m33/hazard3cpucluster 限定符改用m33_0/hazard3_0(影响约 23 组板卡) - 其余:蓝牙
CONFIG_BT_CUSTOM与 HCIsetup()时机、Nordic 时钟与电源宏、RTIO、Ring buffer、USB、Video、West、Work queue、SPI 的 inclusive 术语等
新功能与增强
- 内核:
k_sleep_ticks();IRQ API 命名空间化(k_irq_lock()等);K_MSGQ_DEFINE_STATIC;K_SYSCALL_OBJ_STATIC - Ring buffer:新增
sys_ringq,以及ring_buf_put_ptr()/get_ptr()/commit()/consume() - Devicetree:
DT_IRQN_BY_NAME、DT_INST_IRQN_BY_NAME;绑定新增class:键,为 MCP 的自动注册提供依据 - 驱动新增 6 个类:Buzzer、Clock Monitor、DALI、LIN、MUX、Pulse IO;另有 Haptics 与 FIDO2 两套新 API
- Counter:
CONFIG_COUNTER_CAPTURE输入捕获系列 - Crypto:CFB / OFB 模式、SHA3 系列哈希
- LoRa:
lora_energy_detect()、lora_rssi()、lora_recv_duty_cycle_async() - Zbus:支持运行时注册通道
- 网络:邻居缓存 API、DHCPv6 服务器端、TCP SACK、SNTP 服务器、gPTP 静态时间接收者
- 调试:
ZASSERT()四级(off / terse / normal / verbose)
迁移指南(4.4.0 → 4.5.0) 链接到标题
按影响面分成两档,只列应用开发者可能会遇到的。
必改
- CMake 最低版本 3.28
- C17 是唯一选择,
CONFIG_STD_C11/C99/C90已删除 DEVICE_API宏强制使用。所有上游驱动类的 API 实例(包括树外驱动)都必须用DEVICE_API(class, ...)声明- Ring buffer 的 claim / finish 换成
ring_buf_put_ptr()/ring_buf_get_ptr()加commit()/consume() - CMake 的
flash/debug目标被移除,改用west flash/west debug k_sleep()/k_usleep()不再是独立系统调用,变成k_sleep_ticks()的内联封装,放在新头文件include/zephyr/sleep.h- 板级修订的 Kconfig 片段改名:不再读取
<board>_<revision>.conf,改成<board>_<revision>_defconfig zephyr_code_relocate(FILES ...)不再展开通配符,遇到*会失败,要先用file(GLOB ...)再传文件find_package(ZephyrUnittest)换成find_package(Zephyr COMPONENTS unittest)- 头文件包含:
CONFIG_LEGACY_GENERATED_INCLUDE_PATH默认关闭,必须使用#include <zephyr/...>
建议改
- STM32 板大多不再默认开
CONFIG_GPIO(有 gpio-hog 的除外),要显式CONFIG_GPIO=y - STM32 的 GPIO 在禁用态配上下拉现在返回
-EINVAL,以前返回 0 - RP2040 / RP2350 的
vreg节点默认改 disabled,树外板要自己设status = "okay";RP2040 的mbox拆成了mbox0/mbox1,ipm_mbox也变成两个 - Nordic 的时钟配置整体搬到 Devicetree。
&xo、&hfclk、&lfclk等节点要显式status = "okay",CONFIG_CLOCK_CONTROL_NRF_K32SRC_*全被k32src和k32src-accuracy-ppm属性取代;CONFIG_SOC_DCDC_*改用®1的regulator-initial-mode = <NRF5X_REG_MODE_DCDC> - ESP32 系列板:per-module dtsi 与一批 SoC 符号移除,板级 dts 要自己描述 flash 的
reg/ranges和 PSRAM 的size can_set_state_change_callback()拆分后,驱动侧要改成用can_fire_state_change_callbacks()触发CONFIG_NVME_REQUEST_TIMEOUT以前误按毫秒换算,现在按秒正确换算- LVGL 的
CONFIG_LV_COLOR_16_SWAP不能和PIXEL_FORMAT_RGB_565X同时启用 k_sem_reset()不再唤醒 poll 等待者,依赖这个行为实现的要换成显式同步CONFIG_SCHED_CPU_MASK_PIN_ONLY模式下,k_thread_cpu_mask_clear()/enable_all()/disable()会触发断言,改用k_thread_cpu_pin()west spdx --init弃用(计划 5.0 移除),SPDX 3.0 用west spdx --spdx-version 3.0,且不需要 init 步骤
主板 & 扩展板 链接到标题
新增 178 个主板、29 个扩展板和 71 个实例,详见 Release Note。178 块板按厂商分成 79 组,其中约 80 块来自芯片厂商自家的评估套件(Silicon Labs、NXP、Infineon、Microchip、ST、Renesas、TI、Espressif、AMD、Alif),基本都是随新 SoC 支持一起进来的。
这次新增的板卡里中国厂商多了不少,新增的中国厂商板卡如下:
- 乐鑫(Espressif)
- esp32c61_devkitc:ESP32-C61
- esp32p4_function_ev_board:ESP32-P4
- esp32p4x_function_ev_board:ESP32-P4
- esp32s3_box3:ESP32-S3(带屏语音助手套件)
- 微雪(Waveshare)
- esp32c6_lcd_1_47:ESP32-C6
- esp32p4_wifi6 / esp32p4_wifi6_dev_kit / waveshare_esp32p4_eth:ESP32-P4
- core2350b / rp2350b_plus_w:RP2350B
- M5Stack
- m5stack_stackchan:ESP32-S3(桌面机器人)
- m5stack_sticks3 / m5stack_paper_color:ESP32-S3
- m5stack_unitc6l:ESP32-C6
- 沁恒(WCH)
- ch32h417evt:CH32H417
- ch32v103evt:CH32V103
- ch32v203c8t6evt:CH32V203
- ch32v305f_evt_r0:CH32V305
- WeAct Studio
- ch32v00x_core:CH32V006
- mini_stm32h750:STM32H750
- usb2canfdv2:STM32G431
- weact_ra4m1_core:RA4M1
- 矽速(Sipeed)
- m0sense:BL702
- m1s_dock:BL808
- tang_mega_138k_pro_dock:高云 GW5AST-138 内的 RISC-V AE350 核
- 瑞莎(Radxa)
- rock_3b:RK3568
- rock_5b_plus:RK3588
- 亿佰特(Ebyte)
- e80_900mbl_01:STM32F103
- eora_hub_900tb:ESP32-S3
- 安信可(Ai-Thinker)
- ai_m64p_32s_kit:BL616
- aipi_eyes_s2:BL618
- 博流(Bouffalo Lab)
- bl618g0:BL618
- MuseLab
- nano_ch32v317:CH32V317
- nano_ch57x:CH570
- 兆易创新(GigaDevice)
- gd32c231c_eval:GD32C231
- 嘉立创(JLC)
- skystar_gd32f407vet6:GD32F407
- 野火(Armfly)
- armfly_stm32h743xih6:STM32H743
- LilyGO
- t_deck:ESP32-S3(带键盘和轨迹球的掌上设备)
- 富斯(FlySky)
- fs_i6s:STM32F072VB(10 通道 2.4 GHz 航模遥控器)
- 瑞赛德(Ruiside)
- ra8p1_titan:RA8P1
- ra8p1_titan_mini:RA8P1
- Heltec
- heltec_t114_v2:nRF52840
- 香橙派(Xunlong)
- opi_zero2w:全志 H618
- 幸运狐(Luckfox)
- pico_ultra:瑞芯微 RV1106
- 联发科(MediaTek):mt8370_genio_510_evk、mt8390_genio_700_evk(Genio 510 / 700)
- 瑞昱(Realtek):pke8721daf_c13_f10(RTL8721Dx)
- 新唐(Nuvoton):NUMAKER M031KI、NUMAKER M3351KI
- 劲达(Raytac):AN54LV-DB-15
- 其他:Makerfabs 的 matouch_mtro128g(ESP32-S3)、VIEWE 的两块 ESP32-C3/S3 显示板、Jhoinrch 的 RH02 系列、KinCony 的 KC868-A8、涂鸦的 TYZS3、GD32F470ZIT6 Core Board
除了国内厂商做的板,还有一批海外或无厂商归属的板卡用了国内芯片:
- Adafruit Feather ESP32C6、Arduino Nesso N1:ESP32-C6
- OLIMEX ESP32-P4-PC:ESP32-P4
- Pine64 PineCone:BL602
- UDOO KEY:ESP32
- ESP32-H2-SUPERMINI:ESP32-H2
- BL704L Development Board:BL704L
- JZ-F407VET6 Industrial Control Board:STM32F407
另外四块“非典型”板卡值得一提:
- Pebble Round 2(
pr2):开源复刻的 Pebble 智能手表。有意思的是它用的主控是思澈(SiFli)的 SF32LB52,配 nPM1300 PMIC 和 GD25Q256E Flash - M5Stack StackChan:桌面机器人,源自 Stack-chan 开源项目,双串行舵机加触摸屏
- FlySky FS-i6S:航模遥控器,但射频部分还没驱动。厂商中立的射频 API(PR #123210)预计 4.6 进来,之后我家小朋友的航模遥控器就可以烧成 Zephyr 的固件了
- Tomu:能放进 USB Type-A 口的超迷你板,EFM32HG309F64
按 SoC 统计,ESP32 系列仍然是最大族群——乐鑫自己只报了 4 块,但微雪、M5Stack、LilyGO、VIEWE、安信可、Makerfabs 都在基于 ESP32 做板。RT-Thread 生态的两块 RA8P1 主板也加入了 Zephyr 阵营。
驱动 链接到标题
新增 6 个驱动类,详见 Release Note。这次的重点不在数量,而在这几个类本身透露的方向:
- LIN 和 DALI:一个是汽车的低成本串行总线,一个是楼宇照明的数字可寻址接口。两个都是“现场总线”性质的东西,说明 Zephyr 在往工业和楼宇的末端设备走
- Pulse IO:生成和捕获定时数字边沿,直接对着可寻址 LED 灯带和红外收发器。这类功能以前要靠 PWM 加定时器
- Buzzer、MUX、Clock Monitor
新增驱动 API:
- Haptics(触觉反馈,配合 CS40L5x、DRV2605 这类器件)
- FIDO2(USB 或 BLE 传输,把设备变成 passkey 认证器):有配套示例,博客作者拿 Nordic nRF52840 Dongle 刷了几乎没改动的上游示例,就能当 USB 安全密钥登录 Ubuntu
加密加速:部分 Silicon Labs、NXP 和 STM32 器件已支持硬件加速的 PSA Crypto。
实例 链接到标题
新增 71 个实例,详见 Release Note。从示例的分布看技术路线,这次有几个新方向:
- 电源管理:ADI MAX32 的 power modes、NXP MCX 的 suspend-to-RAM 与 system off、RT700 双核电源管理、CPUFreq 温度封顶策略。低功耗从“配几个 Kconfig”变成了有完整示例集的子系统
- 连接侧把 4.5 的新能力都配了例子:QUIC 的 echo client / server、SSH 服务端与客户端、MCP Hello World、CoAP over TCP、SNTP server、DHCPv6 前缀委派、TSN Switch、Wi-Fi Mesh 与其上的 IP 通信、ESP-NOW
- 新驱动类的配套:buzzer tone、DALI、NCV7430 over LIN(带一个 LIN 从机模拟器)、pulse_io byte transfer
- 第一次出现 NPU 示例:TensorFlow Lite for Microcontrollers 跑在 NXP Neutron 上
- 安全侧:FIDO2 authenticator、TF-M firmware update、HTTP FOTA
- 内核与调试:assertions(ZASSERT)、object cores、object monitor、UDP coredump via shell
库和子系统 链接到标题
- 内核
- Thread-Metric 在 STM32F412 上跑完整套件,涉及内核的测试在 4.5 上比 4.4 快 3~15%,提升最大的是线程间通信
k_sleep()改为k_sleep_ticks()的内联封装,睡眠跟踪钩子也跟着换成 enter / exit 这一对- futex 从内核对象降级为纯用户态机制,对象核心框架重构:对象挂到按类型的链表上,改用
k_obj_type_walk_locked()/k_obj_type_walk_unlocked()遍历 CONFIG_SMP_BOOT_DELAY改成在 Devicetree 的 cpu 节点上加zephyr,deferred-start,再用k_smp_cpu_start()/k_smp_cpu_resume()拉起CONFIG_SCHED_CPU_MASK不局限于SCHED_SIMPLE,可直接配SCHED_SCALABLE和SCHED_MULTIQ
- 调试与诊断
ZASSERT()支持按模块、按文件设置级别(off / terse / normal / verbose)- 堆内存错误检测:
CONFIG_SYS_HEAP_SANITIZER_ASAN用于 native_sim,CONFIG_SYS_HEAP_KASAN用于真实目标。KASAN 能在真实硬件上抓非法堆访问,这是 C/C++ 内存问题的强大工具 - Tracing 增加终端查看器
scripts/tracing/trace_viewer.py,纯 Python 无依赖,可以回放、缩放、逐事件步进,也能切回原始事件日志 - Trace 可以导出成 Perfetto 格式,用和 Linux、Android 同一套 UI 打开
- 崩溃设备可以通过 UDP 把 coredump 发出来
- 网络
- TCP SACK 默认启用,新增 SNTP 服务器、iperf3 for zperf、gPTP 静态时间接收者、邻居缓存 API
- 增加 TTCN-3 一致性测试套件,网络协议栈有正式的符合性测试
- 蓝牙:新增一批 BAP / CAP / ASCS / ISO / RFCOMM / SDP 相关 API
- 仿真与测试
- native_sim 支持更多的宿主资源:Wi-Fi、音频、视频、LED、温度传感器,还能把宿主目录挂载进 Zephyr 文件系统
- QEMU 增加 VirtIO 驱动(block、input、GPIO、I2C、SPI)
- Twister 支持跨多设备测试,也支持用多种工具链构建同一个测试
- SBOM 与加固
west spdx支持 SPDX 3.0,SBOM 变成类型化元素图,用 JSON-LD 序列化。除了每个源文件及其哈希、许可证、版权声明,还多了一份 Build Profile:通过 CMake file API 记录编译器、编译选项,以及哪些源码进了哪个库- 生成时会在
build/spdx/下产出四份文档,其中一份列了各模块的 CPE 与 PURL 标识符,可以直接喂给漏洞扫描器 - 加固工具改成读 YAML 建议库,每条建议都能解释含义、映射到 CWE,配置出现回退时会让 CI 直接失败
更多细节请参考 Release Note。