Freigeben über


Erstellen eines Firmwareupdatepakets

Jedes Firmwareupdatepaket enthält eine einzelne Binärdatei, die die gesamte Firmwarenutzlast (z. B. firmware.bin) und einen Sicherheitskatalog enthält, den Windows zum Überprüfen von firmware.bin verwendet. Weitere Informationen zu Sicherheitskatalogen und Treibern finden Sie unter Katalogdateien und digitale Signaturen und Erstellen einer Katalogdatei für ein PnP-Treiberpaket.

Firmwareupdatepakete müssen mindestens einen der folgenden Firmwaretypen aktualisieren können:

  • Die Firmware des UEFI-Systems.

  • Die Firmware für ein einzelnes Gerät im System.

Es wird empfohlen, dass jedes Firmwareupdatepaket auf eine einzelne Firmwareressource (UEFI-Systemfirmware oder ein einzelnes Gerät) ausgerichtet ist. Es kann jedoch vorkommen, dass es vorteilhaft ist, über ein einzelnes Firmwareupdatepaket zu verfügen, das sowohl die Systemfirmware als auch ein oder mehrere Geräte aktualisiert.

Für ein Gerät kann nicht mehr als ein Firmwareupdatepaket verwendet werden. Wenn für ein Gerät ein Firmwareupdatepaket verwendet wird, das auch Die Systemfirmware enthält, kann es nicht von einem zweiten Firmwareupdatepaket als Ziel verwendet werden, das nur auf das Gerät abzielt.

  1. Damit ein Firmwareupdatepaket als Ziel für ein Firmwareupdate auf die entsprechende Systemhardware ausgerichtet ist, zeigt Windows eine Geräteinstanz für jeden Eintrag im ESRT an, wobei eine solche Geräteinstanz eine Hardware-ID verfügbar macht, die sie als zum ESRT-Eintrag gehört.

  2. Wenn ein Firmwareupdatepaket installiert ist, wird es von Windows als Treiberpaket verarbeitet. Windows kopiert die Firmwarenutzlast jedes Updatepakets an einen sicheren Speicherort unter dem Systemverzeichnis, bereitet das System auf die Durchführung der Firmwareupdates vor und löst den Neustart des Systems aus.

    Windows unterstützt keine Abhängigkeiten zwischen Treiberpaketen. Daher müssen beim Erstellen eines neuen Firmwareupdatepakets die folgenden Anforderungen beachtet werden:

    • Ein Firmwareupdatepaket muss in der Lage sein, die Installation selbst und ohne Abhängigkeit von anderer Gerätefirmware, Systemfirmware oder anderen Firmwareupdatepaketen erfolgreich zu installieren.

    • Es wird empfohlen, dass jedes Updatepaket auf ein einzelnes Gerät im System oder auf die Firmware des UEFI-Systems (definiert im ESRT) ausgerichtet ist.

    • Jedes Updatepaket muss eine einzelne Firmwareupdate-Binärdatei (z. B. firmware.bin) enthalten.

  3. Die Firmwareupdatenutzlast in jedem Updatepaket muss in einer einzelnen Binärdatei enthalten sein. Beim Systemneustart lädt das Betriebssystemladeprogramm jede Firmwareupdate-Binärdatei für jedes Firmwareupdatepaket in den physischen Arbeitsspeicher und erstellt ein Array von Zeigern auf jede Nutzlastdatei, die für die Installation bereitgestellt wird (die UEFI 2.3.1-Spezifikation bezieht sich auf dieses Array als CapsuleHeaderArray).

  4. Dieses Array wird im Aufruf der EFI UpdateCapsule()-Funktion übergeben. UpdateCapsule() wird als Postfach verwendet und übergibt die Firmwareupdatenutzlast jedes Treiberpakets an die Plattformfirmware.

  5. Jede Kapsel (eine Firmwareupdatenutzlast) wird durch die Firmware-ID identifiziert, die durch den ESRT-Eintrag für eine Firmwareressource angegeben wird.

  6. Nach Erhalt jeder Firmwareupdatenutzlast wird die Firmwareupdateanforderung verarbeitet und ggf. angewendet.

    Jeder Eintrag im CapsuleHeaderArray ist ein einzelner, zusammenhängender Datenblock, der die Firmwareupdatenutzlast aus einem Firmwaretreiberpaket für ein einzelnes Gerät im System enthält. Für jede zielorientierte Firmwareressource muss die Firmwareupdatenutzlast das Firmwareimage und alle Informationen enthalten, die von der Plattform für die Validierung benötigt werden.

    Die Firmwarenutzlast für alle Firmwareupdatetreiberpakete wird über den UEFI UpdateCapsule-Dienst an die Plattformfirmware übergeben. Da integrierte Geräte von verschiedenen IHVs bezogen werden, muss der System-OEM (und möglicherweise der SoC-Hersteller) direkt mit diesen IHVs zusammenarbeiten, um sicherzustellen, dass Firmwareupdates für gerätegerecht für das jeweilige System erstellt werden. Darüber hinaus muss der System-OEM sicherstellen, dass die ESRT-Einträge es zulassen, dass UpdateCapsule-Pakete auf die entsprechenden Systeme ausgerichtet werden können.

    Beispielsweise können mehrere OEMs für ihre Systeme dasselbe MbB-Gerät (Mobile Broadband) auswählen. Obwohl das MBB-Gerät in jedem System identisch ist, muss jeder OEM mit dem MBB IHV zusammenarbeiten, um ein für sein System angepasstes Firmwareupdatepaket zu erstellen. Diese Anpassungsstufe des Firmwareupdates des Geräts ist erforderlich, um Variablen für OEM-Systeme zu adressieren.

    • Die Adressierung des Geräts kann sich je nach dem vom OEM ausgewählten SoC und der Verbindung des Geräts mit dem SoC unterscheiden.

    • Der System-OEM kann das System an mehrere Mobilfunknetzbetreiber (MNOs) zum Weiterverkauf an Verbraucher verkaufen. Das MBB-Gerät muss MNO-fähig sein, sodass die Firmware an die Anforderungen eines bestimmten MNO angepasst und zertifiziert werden muss.

    • Das System kann in mehreren Märkten weltweit mit unterschiedlichen HF-Vorschriften und Hochfrequenzzuweisungen verkauft werden. Die Firmware des MBB-Geräts erfordert möglicherweise Anpassungen, um diese Marktanforderungen zu erfüllen.

    Jeder OEM muss diese gerätespezifischen Anforderungen sorgfältig berücksichtigen und die erforderlichen Schritte unternehmen, um sicherzustellen, dass die Gerätefirmware gezielt und entsprechend aktualisiert werden kann. Dies erfordert eine sorgfältige Verwaltung von ESRT-Einträgen, um sicherzustellen, dass die Gerätefirmware ordnungsgemäß bereitgestellt werden kann.

  7. Nachdem das Updatepaket erstellt wurde, muss es zur Zertifizierung und Signatur an Microsoft übermittelt werden.

System- und Gerätefirmwareupdates über ein Firmwaretreiberpaket

Auffüllen der ESRT-Tabelle

Anpassen der Firmware für verschiedene geografische Regionen

Zertifizieren und Signieren des Updatepakets

Installieren des Updates