Como testar drivers de pré-produção com a Inicialização Segura habilitada
Em sistemas de varejo e produção, o kernel do Windows só confia e carrega drivers com uma assinatura WHQL/WHCP de produção. Para testar drivers de pré-produção, é necessário que os desenvolvedores de driver habilitem TESTSIGNING
para habilitar o carregamento de drivers de não produção. TESTSIGNING
requer a desativação do Secure Boot, para apresentar uma diferença nos ambientes de teste e produção.
O kernel do Windows dá suporte ao carregamento de drivers de pré-produção assinados com a assinatura de pré-produção WHQL/WHCP. A assinatura WHQL/WHCP pode ser acessada por meio do Microsoft Hardware Developer Center (HDC).
Pré-requisitos
Assinar seus drivers de pré-produção com o painel de hardware do Partner Center
Baixe EnableUefiSbTest.exe da versão mais recente do WDK (Windows Driver Kit) ou do Centro de Download. O local de instalação padrão da ferramenta EnableUefiSbTest é C:\Arquivos de Programas (x86)\Windows Kits\10\tools\{arch}\SecureBoot\EnableSB.
{arch}
pode ser um dos{amd64, x86, arm, arm64}
. As políticas estão localizadas no mesmo diretório SecureBoot:C:\Arquivos de Programas (x86)\Windows Kits\10\tools\{arch}\SecureBoot\Policies.
Habilitar suporte para a assinatura WHQL/WHCP de pré-produção
Depois que o driver for assinado em pré-produção, você estará pronto para provisionar um computador de teste em que instalará o driver.
As ferramentas de provisionamento e o conteúdo são fornecidos a partir de Windows 11, versão 22H2.
O uso da ferramenta EnableUefiSbTest é recomendado. Como alternativa, você pode provisionar manualmente a chave raiz de teste da Microsoft na seção Testes manuais de inicialização segura do HLK (UefiSecureBootManualTests.zip\ManualTests\certs\test\db_MSFTtestSigningRoot.cer
). A chave de teste da Microsoft deve ser incluída no banco de dados de inicialização segura (DB) e na política de configuração de inicialização segura (SBCP) para habilitar a confiança para a assinatura do driver WHQL/WHCP de pré-produção.
Observação
Ao provisionar qualquer um dos bancos de dados de Inicialização Segura, nunca assine uma carga com as chaves de teste da Microsoft dentro.
Etapas de provisionamento
No menu UEFI do sistema, desative a Inicialização Segura e limpe as chaves de Inicialização Segura, se aplicável. Isso permite que a ferramenta de provisionamento defina as chaves de teste para confiar no arquivo de política de Inicialização Segura e reabilitar a Inicialização Segura.
Baixe o arquivo .p7b correto da política de Inicialização Segura, dependendo da arquitetura do sistema, e da ferramenta de provisionamento que o acompanha, EnableUefiSbTest.exe, do WDK. Para obter o local da ferramenta de provisionamento, consulte Pré-requisitos.
Execute o seguinte comando em uma instância elevada do PowerShell ou Terminal e valide se os valores PK, KEK, db, dbx e OemId estão vazios ("Não Encontrado"):
EnableUefiSbTest.exe /dump
Se a Inicialização Segura estiver desabilitada e as chaves forem limpas com êxito, a seguinte saída será esperada:
EnableUefiSbTest.exe /dump Name: PK Not Found Name: KEK Not Found Name: db Not Found Name:dbx Not Found Name: OemId Not Found
Provisione as chaves de teste de Inicialização Segura no banco de dados de Inicialização Segura e reative a Inicialização Segura executando o seguinte comando em uma instância elevada do PowerShell ou do Terminal:
EnableUefiSbTest.exe
Observação
EnableUefiSbTest.exe não emitirá/retornará nada após a execução bem-sucedida.
Opcionalmente, especifique o
thirdparty
comando para provisionar o certificado de CA UEFI da Microsoft junto com as chaves padrão no banco de dados de inicialização segura. Isso permite confiança para executáveis EFI assinados pela Microsoft UEFI CA, como ROMs de opção e carregadores de inicialização não Windows.EnableUefiSbTest.exe /thirdparty
Para dispositivos que executam o Windows baseado em desktop, monte a partição EFI do sistema e copie o arquivo de política de Inicialização Segura (.p7b) para S:/EFI/Microsoft/Boot executando o seguinte comando em uma instância elevada do PowerShell ou do Terminal:
mountvol s: /s copy-item <path_to_p7b> S:/EFI/Microsoft/Boot/SecureBootPolicy.p7b
Observação
Como o kernel do Windows requer o arquivo de política de Inicialização Segura na forma de , o nome e o formato do
SecureBootPolicy.p7b
arquivo não devem ser modificados.Para dispositivos que não executam o Windows baseado em desktop, copie o arquivo correspondente
PreProductionPolicy.pol
para\EFI\Microsoft\Boot\Policies
. Em seguida, excluaFullDebugPolicy.pol
de\EFI\Microsoft\Boot\Policies
.Reinicialize o sistema para permitir que o kernel do Windows atualize as políticas. A Inicialização Segura agora é reativada e provisionada automaticamente pela ferramenta de provisionamento. Isso pode ser validado executando
EnableUefiSbTest.exe /dump
novamente como administrador e validando se apenas osdbx
valores eOemId
estão vazios ("Não encontrado").O sistema está pronto para validar o conteúdo do driver assinado WHQL/WHCP de pré-produção. A reinicialização do sistema não afetará o estado do dispositivo, desde que as chaves de Inicialização Segura e os arquivos de política de Inicialização Segura não sejam modificados.
Etapas de desprovisionamento
Para desprovisionar o sistema e recusar a confiança de assinatura de pré-produção no sistema:
Exclua os arquivos de política de Inicialização Segura da partição EFI montada executando os seguintes comandos em uma instância elevada do PowerShell ou do Terminal:
mountvol s: /s rm S:/EFI/Microsoft/Boot/SecureBootPolicy.p7b
Observação
Se as validações estiverem sendo executadas em um HoloLens 2, os arquivos de política .pol também deverão ser removidos de S:/EFI/Microsoft/Boot/Policies.
Inicialize no menu UEFI do sistema e reconfigure as chaves de inicialização segura para as configurações de fábrica.
Reinicialize o sistema e execute
EnableUefiSbTest.exe /dump
o , que deve retornar valores não vazios paraPK
,KEK
,db
edbx
valores que indicam que as chaves foram retornadas ao estado de fábrica.Observação
Recomendamos a instalação limpa do Windows no sistema para desprovisionar um sistema destinado a ambientes de varejo.
Perguntas Frequentes
P: O EnableUefiSbTest.exe /dump
comando está mostrando apenas um resultado para PK
. Há algo de errado?
R: Isso acontece se a ferramenta for executada como um usuário padrão em vez de como administrador.
P: O EnableUefiSbTest.exe /dump
comando retorna um erro que não reconheço. O que devo fazer?
R: Um erro pode ser gerado pela ferramenta quando a Inicialização Segura não foi desabilitada com êxito e/ou as chaves de Inicialização Segura não foram apagadas. Verifique se a Inicialização Segura está desabilitada.