Создание пакета обновления встроенного ПО
Каждый пакет обновления встроенного ПО содержит один двоичный файл, содержащий все полезные данные встроенного ПО (например, firmware.bin) и каталог безопасности, используемый Windows для проверки firmware.bin. Дополнительные сведения о каталогах и драйверах безопасности см. в разделах Файлы каталога и цифровые подписи и Создание файла каталога для пакета драйверов PnP.
Пакеты обновления встроенного ПО должны поддерживать обновление одного или нескольких из следующих типов встроенного ПО:
Встроенное ПО системы UEFI.
Встроенное ПО для одного устройства в системе.
Рекомендуется, чтобы каждый пакет обновления встроенного ПО предназначен для одного ресурса встроенного ПО (встроенное ПО системы UEFI или одно устройство), но в некоторых случаях было бы полезно иметь один пакет обновления встроенного ПО, который обновляет встроенное ПО системы и одно или несколько устройств.
Устройство не может быть предназначено для нескольких пакетов обновления встроенного ПО. Если устройство предназначено для пакета обновления встроенного ПО, который также включает встроенное ПО системы, оно не может быть нацелено на второй пакет обновления встроенного ПО, предназначенный только для устройства.
Чтобы пакет обновления встроенного ПО был предназначен для обновления встроенного ПО для соответствующего оборудования системы, Windows отображает экземпляр устройства для каждой записи в ESRT, где такой экземпляр устройства предоставляет идентификатор оборудования, который определяет его как принадлежащий записи ESRT.
При установке пакета обновления встроенного ПО он обрабатывается Windows как пакет драйвера. Windows скопирует полезные данные встроенного ПО каждого пакета обновления в безопасное расположение в каталоге System, подготовит систему к выполнению обновлений встроенного ПО и запустит перезагрузку системы.
Windows не поддерживает зависимости между пакетами драйверов. Поэтому при создании нового пакета обновления встроенного ПО необходимо соблюдать следующие требования:
Пакет обновления встроенного ПО должен успешно устанавливаться самостоятельно и без зависимости от другого встроенного ПО устройства, системного ПО или других пакетов обновления встроенного ПО.
Рекомендуется, чтобы каждый пакет обновления был предназначен для одного устройства в системе или встроенного ПО UEFI (определенного в ESRT).
Каждый пакет обновления должен содержать один двоичный файл обновления встроенного ПО (например, firmware.bin).
Полезные данные обновления встроенного ПО в каждом пакете обновления должны содержаться в одном двоичном файле. После перезагрузки системы загрузчик ОС загружает каждый двоичный файл обновления встроенного ПО для каждого пакета обновления встроенного ПО в физическую память и создает массив указателей на каждый файл полезных данных, подготовленный для установки (в спецификации UEFI 2.3.1 этот массив называется CapsuleHeaderArray).
Этот массив передается в вызове функции EFI UpdateCapsule(). UpdateCapsule() используется в качестве почтового ящика, передавая полезные данные обновления встроенного ПО каждого пакета драйвера в встроенное ПО платформы.
Каждая капсула (полезные данные обновления встроенного ПО) определяется идентификатором встроенного ПО, указанным в записи ESRT для ресурса встроенного ПО.
После получения каждой полезной нагрузки обновления встроенного ПО запрос на обновление встроенного ПО обрабатывается и применяется, когда это применимо.
Каждая запись в CapsuleHeaderArray представляет собой единый непрерывный блок данных, содержащий полезные данные обновления встроенного ПО из пакета драйверов встроенного ПО для одного устройства в системе. Для каждого целевого ресурса встроенного ПО полезные данные обновления встроенного ПО должны содержать образ встроенного ПО и все сведения, необходимые платформе для проверки.
Полезные данные встроенного ПО для всех пакетов драйверов обновления встроенного ПО передаются встроенному ПО платформы через службу UEFI UpdateCapsule. Так как интегрированные устройства будут получаться из различных IHV, ИЗГОТОВИТЕЛь системы (и, возможно, изготовитель SoC) должен будет работать непосредственно с этими IHV, чтобы обеспечить создание обновлений встроенного ПО устройства соответствующим образом для данной системы. Кроме того, изготовитель оборудования системы должен убедиться, что записи ESRT позволяют использовать пакеты UpdateCapsule для соответствующих систем.
Например, несколько изготовителей оборудования могут выбрать одно и то же устройство мобильной широкополосной связи (MBB) для своих систем. Несмотря на то, что устройство MBB идентично в каждой системе, каждый изготовитель оборудования должен сотрудничать с MBB IHV, чтобы создать пакет обновления встроенного ПО, настроенный для своей системы. Этот уровень настройки обновления встроенного ПО устройства необходим для решения переменных в системах OEM.
Адресация устройства может отличаться в зависимости от soC, выбранного изготовителем оборудования, и способа подключения устройства к SoC.
Изготовитель оборудования системы может продать систему нескольким операторам мобильной сети (MNOS) для перепродажи потребителям. Устройство MBB должно поддерживать MNO, требуя, чтобы встроенное ПО было настроено и сертифицировано в соответствии с определенными требованиями MNO.
Система может продаваться на нескольких рынках по всему миру, каждый из которых имеет различные правила rf и радиочастотные назначения. Встроенное ПО устройства MBB может потребовать настройки в соответствии с этими требованиями рынка.
Каждый изготовитель оборудования должен тщательно рассмотреть такие требования, относящиеся к конкретному устройству, и принять необходимые меры, чтобы обеспечить целевую и обновленную версию встроенного ПО устройства. Это требует тщательного управления записями ESRT, чтобы обеспечить правильное развертывание встроенного ПО устройства.
После создания пакета обновления его необходимо отправить в корпорацию Майкрософт для сертификации и подписи.
Похожие статьи
Обновления встроенного ПО системы и устройства с помощью пакета драйверов встроенного ПО
Настройка встроенного ПО для разных географических регионов