映像配置文件(或 OEMInput)
映像配置文件(或 OEMInput)是一个 XML 文件,用于定义进入映像设计的包和自定义项,其中包括硬件和驱动器配置、工厂 OS 产品、语言,以及特定于产品的具体功能、应用、驱动程序和包。
生成映像时,映像生成过程会使用那些映射到你已在 OEMInput.xml 中配置的值和属性的包生成映像。 配置某些 OEMInput 元素(如语言和产品)时,会将来自 Windows 系统工具包 (WSK) 的包直接添加到映像中,无需其他配置。 还可以配置和添加功能清单,以定义其他包位置并启用其他功能、应用、驱动程序和设置。
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>