20 января 2025 года состоялся релиз открытого инструментария для загрузки прошивок Fwupd 2.0.4. Исходный код проекта написан на C и Python и опубликован на GitHub под лицензией GNU Lesser General Public License v2.1. Выпуск стабильной версии Fwupd 2.0 с поддержкой больших разделов в томах EFI FFS3 и возможностью стабильной работы с большинством типов CRC-32 и CRC-16 произошёл в октябре 2024 года.
Проект Fwupd предоставляет OEM‑производителям и разработчикам прошивок сервис для загрузки прошивок в специальный централизованный каталог LVFS (Linux Vendor Firmware Service), который можно использовать в дистрибутивах Linux при помощи инструментария fwupd.
В настоящее время в каталоге проекта Fwupd предложены прошивки для более 1600 устройств от 160 производителей. Использование централизованного каталога избавляет производителей от необходимости формирования пакетов для дистрибутивов и позволяет передавать прошивки в архиве *.cab с дополнительными метаданными, которые также применяются при публикации прошивок для Windows.
В проекте Fwupd поддерживается как режим автоматического обновления прошивок, без необходимости совершения каких‑то действий со стороны пользователя, так и выполнение операции после подтверждения или запроса пользователя.
Инструментарий Fwupd и LVFS применяется в сборках RHEL, Fedora, Ubuntu, SUSE, Debian и многих других дистрибутивах Linux для автоматизированного обновления прошивок, а также поддерживается в менеджерах приложений GNOME Software и KDE Discover. Решение Fwupd не ограничено настольными системами и пригодно для обновления прошивок на смартфонах, планшетах, серверах и устройствах интернета‑вещей.
Основные изменения и добавления в Fwupd 2.0.4:
добавлена возможность записи всего дескриптора USB в данные эмуляции и получение определённого кода возврата при сбое обновления сетевых метаданных;
добавлен флаг отложенного удаления для footgun, появился идентификатор экземпляра для USB‑устройств qc‑s5gen2, добавлен fadvise64 в разрешённый список системных вызовов systemd, добавлен VID/PID загрузчик Unifying в качестве полного идентификатора экземпляра, обновление позволяет отключить пакет нулевой длины для устройств‑менеджеров модемов и восстановить работу Logitech Bolt в режиме загрузчика;
исправлены несколько ошибок и багов, внесены улучшения для правильного анализа потоков CSV, которые не содержат конечных NUL, определения доступности сети перед загрузкой метаданных, отключения чтения устройства OptionROM после дампа и больше не запрашивания интерфейса ядра, чтобы избежать сброса нисходящего порта Parade;
исправлено возможное критическое предупреждение для устройств масштабирования MediaTek, исправлена проблема с заполнением Firehose для некоторых устройств‑менеджеров модемов и проблема с обновлениями элементов UEFI при использовании размера блока NVME 4096 байт;
проект больше не сохраняет BootOrder при измерении целостности системы, правильно перечисляет дочерние устройства nordic‑hid, больше не считывает параметры составного потока из частичного потока, уведомляет демон snapd об обновлениях DBX и правильно обрабатывает FU_DEVICE_PRIVATE_FLAG_NO_GENERIC_GUIDS;
проект правильно извлекает версию пакета обновления док‑станции Dell, показывает правильную версию при установке составного обновления того же устройства, разделяет AMD GPU VBIOS P/N для версии, показывает обновления с проблемами при использовании fwupdmgr get‑releases и корректно восстанавливает идентификаторы экземпляров совместимости Logitech UFY;
fwupd теперь использует attr USB4_TYPE вместо угадывания из thunderbolt_domain, использует дату ISO в качестве номера версии dbx для MS KEK и использует KEK для установки идентификатора поставщика dbx. Проект также удаляет тест на блокировку производства CSME 18 и проверяет sd_mod перед запуском.
Источник новости: habr.com