Partilhar via


Validação da Funcionalidade da Plataforma de Atualização de Firmware UEFI do Windows

Esse documento lista os cenários básicos de validação que devem ser aprovados antes da assinatura da funcionalidade da plataforma de atualização de firmware UEFI do Windows.

Pré-requisitos

  • Para cada entrada na Tabela de Recursos do Sistema EFI (ESRT), é necessária uma cápsula para a versão de firmware mais recente. Os cenários se referem à versão mais recente como X. Cada entrada na ESRT é identificada usando uma GUID exclusiva.
  • Para cada entrada na ESRT exposta, crie um pacote de cápsula cuja versão seja incrementada acima do pacote criado na etapa 1. Essas cápsulas serão referidas como X+1.
  • Cápsulas que ajudam na simulação das condições de falha, como uma cápsula para a qual a carga útil não está assinada ou está assinada com uma PK inválida.
  • Garanta que todas as cápsulas a serem utilizadas estejam assinadas adequadamente do ponto de vista do SO, assinadas por catálogo e assinadas por firmware, assinadas pela PK. A menos que esteja testando especificamente os casos de assinatura por PK negativa. Consulte “Assinatura do pacote de driver do firmware” na especificação para obter detalhes sobre como assinar um pacote de driver de cápsula ou firmware.
  • Garante que seu sistema esteja vinculado a PCR7. Se o seu sistema tiver o Bitlocker habilitado, mas não estiver vinculado a PCR7, as atualizações de cápsula UEFI serão bloqueadas.

Instruções

Instalar uma nova cápsula ou reinstalar uma cápsula instalada anteriormente

  1. Abrir o gerenciador de dispositivos.
  2. Encontre o nó do dispositivo que representa seu firmware (geralmente está nos dispositivos de “Firmware”).
  3. Clique com o botão direito do mouse no dispositivo de firmware que deseja atualizar.
  4. Selecione Atualizar software do driver. Será exibido um pop-up que informa “Atualizar software do driver: <Firmware>”.
  5. Selecione Procurar o software de driver no computador.
  6. Na próxima janela, escolha Permitir que eu escolha em uma lista de drivers de dispositivo no meu computador.
  7. Se o driver já tiver sido instalado antes, escolha-o na caixa Mostrar hardware compatível. Se não existir, selecione Tem disco e prossiga. Caso contrário, selecione OK e reinicie o sistema.
  8. Se você selecionar Tem disco, será exibido um pop-up com o título Instalar do disco.
  9. Utilize a opção Procurar para acessar o diretório que contém a cápsula do firmware que deseja instalar.
  10. Escolha o arquivo INF nesse diretório e pressione OK para instalar.
  11. Durante a instalação, se for exibido um pop-up dizendo que o driver não está assinado, aceite esse driver.
  12. O sistema pedirá para você reinicializar.
  13. Depois de instalar a cápsula para o firmware, será necessário reinicializar. Se quiser instalar vários pacotes de cápsula, espere até que todas as cápsulas estejam instaladas e reinicialize depois da última cápsula.

Consultar os detalhes de versão e status

Para executar o script

  1. Execute o PowerShell como administrador.
  2. Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Force (Isso só precisa ser feito uma vez.)
  3. Exiba os detalhes de versão e status para a GUID fornecida. Por exemplo: .\QueryVersionAndStatus.ps1 6bd2efb9-23ab-4b4c-bc37-016517413e9a
  4. Verifique se a atualização do firmware foi bem-sucedida. Para isso, consulte a seção “Validação do status da atualização do firmware” no documento de especificações. Verifique se o status da última tentativa e a versão atual correspondem à versão esperada.
  5. Recomendado: verifique se os dispositivos que estão sendo atualizados também continuam funcionando.
  6. Defina a política de reversão: alguns cenários podem exigir a reversão do firmware. A reversão não é um cenário de produção. Para poder reverter, é necessário criar uma chave de política do Registro. Crie uma chave REG_DWORD com o nome “Policy” no nó HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FirmwareResources\{<GUID>} e defina o valor da chave Policy como 1. Observe que a GUID deve ser substituída pela GUID real da ESRT.

Cenários

C1: cada entrada na ESRT é atualizada com sucesso por meio da cápsula

As etapas a seguir devem ser concluídas para cada entrada na ESRT que é compatível com a plataforma. Ou, em outras palavras, para o firmware do sistema e cada firmware de dispositivo que é compatível com a atualização de firmware por meio de UpdateCapsule.

Etapas do C1

  1. Para cada entrada na ESRT, instale a cápsula para a versão X do firmware.
  2. Garanta que todas as cápsulas acima estejam instaladas antes de reinicializar.

Resultado esperado do C1

A atualização de firmware deve ser bem-sucedida para cada entrada na ESRT que foi atualizada. Para todas as entradas na ESRT com tentativa de atualização, valide que:

  • Versão atual do firmware = X
  • Versão na última tentativa = X
  • Status da última tentativa = 0 (STATUS_SUCCESS)

C2: a versão de firmware mais recente X também pode ser atualizada para X + 1

As etapas a seguir devem ser concluídas para cada entrada na ESRT que é compatível com a plataforma. Ou, em outras palavras, para o firmware do sistema e cada firmware de dispositivo que é compatível com a atualização de firmware por meio de UpdateCapsule.

Etapas do C2

  1. Conclua o cenário C1 acima.
  2. Para cada entrada na ESRT, instale a cápsula para a versão X+1 do firmware.

Resultado esperado do C2

A atualização de firmware deve ser bem-sucedida para cada entrada na ESRT que foi atualizada. Para todas as entradas na ESRT com tentativa de atualização, valide que:

  • Versão atual do firmware = X+1
  • Versão na última tentativa = X+1
  • Status da última tentativa = 0 (STATUS_SUCCESS)

C3: em caso de falha, a atualização do firmware retorna o código de status correto, conforme definido na especificação

Os códigos de status são definidos na seção “Definição da Tabela de Recursos do Sistema UEFI”, na tabela com o título “Valores dos campos de status de última tentativa da ESRT”.

C3.1 Bateria insuficiente e atualização de firmware do sistema UEFI

Etapas do C3.1

  1. Reduza a carga da bateria até menos de 25%, depois conecte a alimentação CA.
  2. Instale a cápsula para a versão X+1 do firmware do sistema UEFI. Vamos supor que a versão atual seja X.
  3. Antes de reinicializar, verifique se a carga da bateria é inferior a 25%.

Resultado esperado do C3.1

A atualização do firmware deve falhar. Para a entrada na ESRT correspondente ao firmware do sistema, valide que:

  • Versão atual do firmware = X
  • Versão na última tentativa = X+1
  • Status da última tentativa = 0xc00002de (STATUS_INSUFFICIENT_POWER)

C3.2 Bateria insuficiente e atualização de firmware do dispositivo

Etapas do C3.2

  1. Reduza a carga da bateria até menos de 25%, depois conecte a alimentação CA.
  2. Instale as cápsulas para TODOS os dispositivos compatíveis no sistema com a versão de firmware X+1. Vamos supor que a versão atual do firmware para o dispositivo específico seja X.
  3. Antes de reinicializar, verifique se a carga da bateria é inferior a 25%.

Resultado esperado do C3.2

A atualização do firmware deve falhar. Para todas as entradas na ESRT com tentativa de atualização, valide que:

  • Versão atual do firmware = X
  • Versão na última tentativa = X+1
  • Status da última tentativa = 0xc00002de (STATUS_INSUFFICIENT_POWER)

C3.3 Bateria insuficiente e atualização de firmware do dispositivo e do sistema UEFI ao mesmo tempo

Etapas do C3.3

  1. Reduza a carga da bateria até menos de 25%, depois conecte a alimentação CA.
  2. Instale as cápsulas para o firmware do sistema UEFI e para todos os firmwares de dispositivos com a versão X+1.
  3. Antes de reinicializar, verifique se a carga da bateria é inferior a 25%.

Resultado esperado do C3.3

A atualização deve falhar para o firmware do sistema e para todos os firmwares de dispositivos cuja atualização foi tentada. Para todas as entradas na ESRT com tentativa de atualização, valide que:

  • Versão atual do firmware = X
  • Versão na última tentativa = X+1
  • Status da última tentativa = 0xc00002de (STATUS_INSUFFICIENT_POWER)

C3.4 A atualização de firmware deve falhar quando a cápsula não estiver assinada por PK

As etapas a seguir devem ser concluídas para cada entrada na ESRT que é compatível com a plataforma. Ou, em outras palavras, para o firmware do sistema e cada firmware de dispositivo que é compatível com a atualização de firmware por meio de UpdateCapsule.

Etapas do C3.4

  1. Para cada entrada na ESRT, crie uma cápsula X+2, cuja carga útil não está assinada.
  2. Instale as cápsulas X+2. Vamos supor que a versão atual seja X.

Resultado esperado do C3.4

A atualização de firmware deve falhar para todas as entradas na ESRT cuja atualização foi tentada. Para todas as entradas na ESRT com tentativa de atualização, valide que:

  • Versão atual do firmware = X
  • Versão na última tentativa = X+2
  • Status da última tentativa = 0xC0000022 (STATUS_ACCESS_DENIED)

C3.5 A atualização de firmware deve falhar quando a cápsula estiver assinada com a chave/certificado incorreto

As etapas a seguir devem ser concluídas para cada entrada na ESRT que é compatível com a plataforma. Ou, em outras palavras, para o firmware do sistema e cada firmware de dispositivo que é compatível com a atualização de firmware por meio de UpdateCapsule.

Etapas do C3.5

  1. Para cada entrada na ESRT, crie uma cápsula X+2, assine a carga útil com uma chave ou um certificado incorreto (por exemplo, use uma cápsula assinada para depuração em um dispositivo de produção).
  2. Instale as cápsulas X+2. Vamos supor que a versão atual seja X.

Resultado esperado do C3.5

A atualização de firmware deve falhar para todas as entradas na ESRT cuja atualização foi tentada. Para todas as entradas na ESRT com tentativa de atualização, valide que:

  • Versão atual do firmware = X
  • Versão na última tentativa = X+2
  • Status da última tentativa = 0xC0000022 (STATUS_ACCESS_DENIED)

C3.6 A atualização de firmware deve falhar quando a carga útil da cápsula for violada

As etapas a seguir devem ser concluídas para cada entrada na ESRT que é compatível com a plataforma. Ou, em outras palavras, para o firmware do sistema e cada firmware de dispositivo que é compatível com a atualização de firmware por meio de UpdateCapsule.

Etapas do C3.6

  1. Para cada entrada na ESRT, crie uma cápsula X+2 e assine a carga útil com a chave ou o certificado correto. Depois, abra o arquivo .bin do firmware, inverta um ou mais bits no arquivo e salve o arquivo de volta.
  2. Gere novamente o catálogo para o arquivo .bin e o arquivo INF.
  3. Instale as cápsulas X+2. Vamos supor que a versão atual seja X.

Resultado esperado do C3.6

A atualização de firmware deve falhar para todas as entradas na ESRT cuja atualização foi tentada. Para todas as entradas na ESRT com tentativa de atualização, valide que:

  • Versão atual do firmware = X
  • Versão na última tentativa = X+2
  • Status da última tentativa = 0xC0000022 (STATUS_ACCESS_DENIED) ou 0xC000007B (STATUS_INVALID_IMAGE_FORMAT)

C3.7 O firmware não permite a reversão além da LowestSupportedFirmwareVersion

As etapas a seguir também devem ser executadas para outro firmware do dispositivo (prioridade mais baixa).

Etapas do C3.7

  1. Para o firmware do sistema UEFI, crie uma cápsula X+1 de modo que “LowestSupportedFirmwareVersion” da entrada na ESRT para o firmware do sistema esteja definida como X+1.
  2. Instale a cápsula X+1 e garanta que a atualização seja bem-sucedida.
  3. Crie uma cápsula de atualização do firmware do sistema UEFI, de modo que a versão no INF seja X+2, mas o arquivo binário do firmware real seja da versão X.
  4. Instale a cápsula X+2 e reinicialize o sistema.

Resultado esperado do C3.7

A atualização do firmware deve falhar. Para a entrada na ESRT correspondente ao firmware do sistema, valide que:

  • Versão atual do firmware = X+1
  • Versão na última tentativa = X+2
  • Status da última tentativa = 0xC0000059 (STATUS_REVISION_MISMATCH)

C4: recuperação perfeita e atualização do firmware (se implementada)

Este cenário varia de acordo com a plataforma, dependendo da implementação da recuperação direta. Com base na implementação, a validação pode exigir a criação de cápsulas defeituosas que forçam o sistema a recuperar ou desligar a alimentação no meio de uma atualização ou por qualquer outro meio de exercer os fluxos de recuperação.

Resultado esperado do C4

O sistema deve ser inicializado no SO e a atualização de firmware deve ser marcada como com falha. A versão relatada pelo dispositivo de recurso de firmware UEFI não deve ter sido alterada.

C5: a atualização de firmware cumpre o requisito de experiência do usuário (UX)

Etapas do C5

  • Este cenário pode ser validado durante a execução de qualquer um dos cenários acima que levam a uma atualização de firmware bem-sucedida.

Resultado esperado do C5

A experiência do usuário está de acordo com a especificação. Consulte a seção “Experiência do usuário”.

  • O único texto que é exibido na tela é “Aguarde enquanto instalamos uma atualização do sistema”. O texto é exibido nas coordenadas do lado direito da tela, conforme destacado na especificação.
  • O logotipo do OEM é exibido conforme descrito na especificação.

Plataforma de atualização de firmware UEFI do Windows

Diretrizes de validação da Opção ROM de validação de UEFI

Script QueryVersionAndStatus.ps1 do PowerShell (PS)