映像配置文件(或 OEMInput)

映像配置文件(或 OEMInput)是一个 XML 文件,用于定义进入映像设计的包和自定义项,其中包括硬件和驱动器配置、工厂 OS 产品、语言,以及特定于产品的具体功能、应用、驱动程序和包。

生成映像时,映像生成过程会使用那些映射到你已在 OEMInput.xml 中配置的值和属性的包生成映像。 配置某些 OEMInput 元素(如语言和产品)时,会将来自 Windows 系统工具包 (WSK) 的包直接添加到映像中,无需其他配置。 还可以配置和添加功能清单,以定义其他包位置并启用其他功能、应用驱动程序设置

Shows that feature manifest can be added to an image configuration file to add functionality. Once an image configuration file is customized, an image is built using collateral from the WSK and the OEM workspace.

OEMInput 位置

准备工作区时,你将在工作区目录的根目录中获取一个起始映像配置文件,该文件预配置了所选产品的设备信息、功能清单功能应用。 在工作区目录中查找具有以下命名方案的文件:<Product>_<architecture>_<boottype>_<hardware or VM>_<imagetype>.xml

可以通过从 WSK 环境运行 echo %WSKOEMInputFileName%,获取 OEMInput.xml 文件的路径和文件名。

架构说明

下面是一个空的 OEMInput.xml 文件。 本部分介绍每个元素的用途和用法。

<OEMInput>
  <Description></Description>
  <DeviceLayoutType></DeviceLayoutType>
  <Device></Device>
  <ReleaseType></ReleaseType>
  <BuildType></BuildType>
  <Languages>
    <Language></Language>
  </Languages>
  <AdditionalFMs>
    <AdditionalFM></AdditionalFM>
  </AdditionalFMs>
  <Features>
    <Microsoft>
      <Feature></Feature>
    </Microsoft>
    <OEM>
      <Feature></Feature>
    </OEM>
  </Features>
  <AppXOptionalPackages>
    <AppXID></AppXID>
  </AppXOptionalPackages>
  <DevicePlatformIDs>
    <DevicePlatformID></DevicePlatformID>
  </DevicePlatformIDs>​
  <Product></Product>
  <TestContent></TestContent>
  <UserInstallableFeatures>​
      <Feature></Feature>​
  </UserInstallableFeatures>
</OEMInput>

说明

映像说明和映像的体系结构。 体系结构(AMD64,x86)必须在此字段中。 如果体系结构不在此字段中,则可能会导致生成失败。

示例:

<Description>Factory OS Hardware Validation image. UEFI Hardware OEMInput for AMD64</Description>

DeviceLayoutType

定义映像的磁盘布局属性。

选项 说明
GPT 用于基于 UEFI 的设备以及 Hyper-V 第 2 代虚拟机。
GPT_SPACES_512 用于基于 UEFI 的设备以及 Hyper-V 第 2 代虚拟机(使用空间布局)。 使用 PrepWSKWorkspace 创建新的示例文件时,这是默认设置。
GPT_SPACES_4096 用于那些使用 4096 扇区磁盘的基于 UEFI 的设备以及 Hyper-V 第 2 代虚拟机(使用空间布局)。
GPT_SPACES_SPLIT 在使用拆分设备布局时使用。

示例:

<DeviceLayoutType>GPT_SPACES_512</DeviceLayoutType>

设备

定义映像是否适用于基于 UEFI 的设备。

选项 说明
GenericUEFIDevice 用于基于 UEFI 的设备以及 Hyper-V 第 2 代虚拟机。 使用 PrepWSKWorkspace 创建新的示例文件时,这是默认设置。

示例:

<Device>GenericUEFIDevice</Device>

ReleaseType

确定是否可以使用测试应用、驱动程序和其他包。

选项 说明
测试 使用此项将映像标识为测试映像,对此映像类型的映像限制将较少。
<ReleaseType>Test</ReleaseType>

BuildType

指定此项以使用生产版本。

选项 说明
fre 这是默认值。 请勿更改此值。

示例:

<BuildType>fre</BuildType>

语言

指定映像中可用的语言。

  • 语言在 <Language> 元素中指定。
  • 默认语言是使用语言的 Default 属性指定的。 必须将一种语言指定为默认语言。 仅指定一种默认语言。

若要了解如何添加语言,请参阅添加语言

示例(将 en-us 设置为默认值):

<Languages>
    <Language Default="true">en-us</Language>
    <Language>zh-cn</Language>
</Languages>

AdditionalFMs

列出在设备设计中使用的功能清单。 功能清单列出了可添加到映像的应用、驱动程序和其他组件。 其中一些文件在你创建新工作区和示例文件集时是预定义的,例如:

预定义功能清单的示例:

<AdditionalFMs> 
    <!-- You MUST include GenericDeviceFM.xml and FOSNonProductionFM.xml! -->
    <AdditionalFM>%WSKContentRoot%\FMFiles\%WSKImageArchitecture%\FactoryOS\WindowsCoreProductionFM.xml</AdditionalFM>
    <AdditionalFM>%WSKContentRoot%\FMFiles\%WSKImageArchitecture%\FactoryOS\FOSNonProductionFM.xml</AdditionalFM>
    <AdditionalFM>%WSKContentRoot%\FMFiles\%WSKImageArchitecture%\FactoryOS\WindowsCoreNonProductionFM.xml</AdditionalFM>
    <AdditionalFM>%WSKContentRoot%\FMFiles\%WSKImageArchitecture%\FactoryOS\GenericDeviceFM.xml</AdditionalFM>
    <!-- Add OEM FMs here. -->
    <AdditionalFM>%WSKWorkspaceRoot%\FMFiles\OEMAppsFM.xml</AdditionalFM>
    <AdditionalFM>%WSKWorkspaceRoot%\FMFiles\OEMDriversFM.xml</AdditionalFM>
</AdditionalFMs>

功能

可以通过 <Features> 元素向映像添加可选功能。

示例:

<Features>
    <Microsoft>
        <Feature>WCOS_EVENTLOG_SERVICE</Feature>        
        <Feature>WCOS_PNP_RUNTIMEDEVICEINSTALL</Feature>
        <Feature>FONTSIZE_15</Feature>
        <Feature>DEVICEPORTAL_OPTIONAL_MONITORCONFIG</Feature>
        <Feature>SERVICING_STACK</Feature>
        <Feature>ALLOW_CONNECTEDSTANDBY</Feature>
        <Feature>MICROSOFT_EDGE</Feature>
        <Feature>OEM_IMAGE</Feature>
        <Feature>SHELL_BOOT</Feature>
        <Feature>DEVSHELL_MFG</Feature>
        <Feature>MANUFACTURING_TOOLS</Feature>
        <Feature>STATESEPARATION_ON</Feature>
        <Feature>TESTSIGNING_ON</Feature>
        <Feature>ENABLE_WOW</Feature>
        <Feature>WCOS_DEVICEPORTAL</Feature>
        <Feature>WCOS_DEVICEPORTAL_WOW</Feature>
        <Feature>WCOS_POWERSHELLCORE</Feature>
        <Feature>FACTORY_ORCHESTRATOR_SERVICE</Feature>
        <Feature>STORAGESPACES_LAYOUT</Feature>
        <Feature>KDNETUSB_ON</Feature>
    </Microsoft>
    <OEM>
        <Feature>OEMDriver</Feature>
    </OEM>
</Features>

AppXOptionalPackages

添加要包含在映像中的可选应用的应用 ID。

示例:

<AppXOptionalPackages>
    <AppXID>Microsoft.WindowsCalculator_8wekyb3d8bbwe</AppXID>
    <AppXID>Microsoft.FactoryTestFrameworkUWP_8wekyb3d8bbwe</AppXID>
</AppXOptionalPackages>

DevicePlatformIDs

DevicePlatofrmID 是一个字符串,由 SMBIOS 系统信息结构中的值组成,这些值串联在一起,每个值用句点分隔。 OEMInput.xml 文件可以包含多个 DevicePlaformID。

创建工作区时,OEMInput 文件将包括 <DevicePlatformID>Manufacturer.Family.Product.Version</DevicePlatformID>。 更新 <DevicePlatformID> 字符串以反映硬件的情况。 有关详细信息,请参阅 DevicePlatformID

如果 OEMInput.xml 文件不包含 <DevicePlatformIDs> 元素,请确保添加它。 如果此元素不在 OEMInput.xml 文件中,则无法将映像刷写到硬件上。

示例:

<DevicePlatformIDs>
    <DevicePlatformID>Manufacturer.FamilyName.ProductName.ProductVersion</DevicePlatformID>
    <DevicePlatformID>Contoso.Laptops.ContosoBook.V1</DevicePlatformID>
    <DevicePlatformID>Contoso.ContosoLaptop.*.1</DevicePlatformID>
</DevicePlatformIDs>

产品

产品定义在映像中使用的核心功能清单

选项 说明
工厂 OS 用于工厂 OS

示例:

<Product>Factory OS</Product>

TestContent

用于向映像添加测试附件文件夹。 请参阅测试内容,了解如何添加测试内容。

示例:

<TestContent>%WSKWorkspaceRoot%\TestContent</TestContent>

启用了空间的工厂 OS AMD64 UEFI VM 的示例映像配置文件

<?xml version="1.0" encoding="utf-8"?>
<OEMInput xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/embedded/2019/06/ImageUpdate">
  <Description>FactoryOS Test en-us image. VM2 OEMInput for VMGen2 on amd64</Description>
  <DeviceLayoutType>GPT_SPACES_512</DeviceLayoutType>
  <Device>GenericUEFIDevice</Device>
  <ReleaseType>Test</ReleaseType>
  <BuildType>fre</BuildType>
  <Languages>
    <Language Default="true">en-us</Language>
  </Languages>
  <AdditionalFMs> 
    <AdditionalFM>%WSKContentRoot%\FMFiles\%WSKImageArchitecture%\FactoryOS\WindowsCoreProductionFM.xml</AdditionalFM>
    <AdditionalFM>%WSKContentRoot%\FMFiles\%WSKImageArchitecture%\FactoryOS\WindowsCoreNonProductionFM.xml</AdditionalFM>
    <AdditionalFM>%WSKContentRoot%\FMFiles\%WSKImageArchitecture%\FactoryOS\MobileDeviceSpaceFM.xml</AdditionalFM>
    <AdditionalFM>%WSKContentRoot%\FMFiles\%WSKImageArchitecture%\FactoryOS\FOSNonProductionFM.xml</AdditionalFM>
    <!-- Add OEM FMs here. -->
    <AdditionalFM>%WSKWorkspaceRoot%\FMFiles\OEMAppsFM.xml</AdditionalFM>
    <AdditionalFM>%WSKWorkspaceRoot%\FMFiles\OEMDriversFM.xml</AdditionalFM>
  </AdditionalFMs> 
  <Features>
    <Microsoft>
        <Feature>STATESEPARATION_ON</Feature>
        <Feature>STORAGESPACES_LAYOUT</Feature>
        <Feature>UEFI_VM</Feature>
        <Feature>WCOS_EVENTLOG_SERVICE</Feature>        
        <Feature>FONTSIZE_15</Feature>
        <Feature>DEVICEPORTAL_OPTIONAL_MONITORCONFIG</Feature>
        <Feature>WCOS_STORAGE_CDDVD</Feature>        
        <Feature>WCOS_POWERSHELL</Feature>
        <Feature>TESTSIGNING_ON</Feature>
        <Feature>SHELL_BOOT</Feature>
        <Feature>MANUFACTURING_TOOLS</Feature>
        <Feature>ENABLE_WOW</Feature>
        <Feature>WCOS_DEVICEPORTAL</Feature>
        <Feature>WCOS_DEVICEPORTAL_WOW</Feature>
        <Feature>FACTORY_ORCHESTRATOR_SERVICE</Feature>
        <Feature>MANUFACTURING_POWER_SCHEME</Feature>
        <Feature>MANUFACTURING_MODE_EMPTY_PROFILE</Feature>
        <Feature>RESOLUTION_1080X1920</Feature>
        <Feature>OEM_IMAGE</Feature>
        <Feature>KDNETUSB_ON</Feature>        
        <Feature>WCOS_HYPERV_GUEST_UEFI</Feature>
    </Microsoft>
  </Features>
  <AppXOptionalPackages>
    <AppXID>Microsoft.FactoryTestFrameworkUWP_8wekyb3d8bbwe</AppXID>
  </AppXOptionalPackages>
      <DevicePlatformIDs>
      <DevicePlatformID>*.*.*.**</DevicePlatformID>
    </DevicePlatformIDs>
  <Product>Factory OS</Product>
  <TestContent>%WSKWorkspaceRoot%\TestContent</TestContent>
</OEMInput>