映像审核

运行 BuildWSKImg 时,会生成多个文件以及可闪存的工厂 OS 映像。 其中两个文件包含有关工厂 OS 映像中所包含组件的信息。 可以使用这些文件审核生成映像的内容。 这些文件在工厂 OS 映像的输出文件夹中:

文件 说明
<imagename>.DeviceDB.xml 所有 OS 组件的清单
<imageame>.BSPDB.xml 所有 OEM 自定义组件的清单
<imageame>.WCOSCustomizationReport.xml 有关映像中的自定义包的信息

这些文件的名称与用于生成它们的映像的名称相同,但文件扩展名不同。 例如:

  • FactoryOS_Development_AMD64_UEFI_SpacesGPT_VM.DeviceDB.xml
  • FactoryOS_Development_AMD64_UEFI_SpacesGPT_VM.BSPDB.xml
  • FactoryOS_Development_AMD64_UEFI_SpacesGPT_VM.WCOSCustomizationReport.xml

DeviceDB.xml

DeviceDB.xml 文件包含有关映像中包含的所有 OS 包(由 Microsoft 提供并包含在 WSK 中的包)的信息。 添加到映像的包取决于在用于生成工厂 OS 映像的配置 (OEMInput) 文件中指定的内容。 DeviceDB.xml 中的信息包括:

  • 在映像中选择的功能
  • 组成给定映像的 OS 包(由 Microsoft 提供并包含在 WSK 中)。 有关 OS 包的信息包括:
    • OS 包 ID
    • OS 包版本

使用此文件审核映像内容时,请基于列出的包进行审核。 包提供比功能更精细的粒度,功能背后的包可能会因版本而更改。

示例文件名:FactoryOS_Development_AMD64_UEFI_SpacesGPT_VM.DeviceDB.xml

示例 DeviceDB.xml

这是一个部分 DeviceDB.xml 文件,其中显示了映像中包含的 OS 包。

<?xml version="1.0" encoding="utf-8"?>
<CompDB xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" CreatedDate="2019-04-15T17:00:53.0428689Z" Revision="1" SchemaVersion="1.2" Product="FactoryOS" BuildID="737b6f27-951a-1b5e-f0ae-0e9b8924999b" BuildInfo="rs_prerelease.18865.1000.190322-1503" OSVersion="10.0.18865.1000" BuildArch="AMD64" ReleaseType="Test" Type="Device" BSPBuildID="00000000-0000-0000-0000-000000000000" xmlns="http://schemas.microsoft.com/embedded/2004/10/ImageUpdate">
<Tags Type="Device">
  <Tag Name="UpdateType" Value="Canonical" />
</Tags>
<Features>
    <Feature Type="MobileFeature" FeatureID="BASE" FMID="WCPFM" Group="Microsoft">
      <Packages>
        <Package ID="Microsoft.FactoryOS.WindowsCoreProductionFM~31bf3856ad364e35~AMD64~~" FIP="true" PackageType="FeaturePackage" />
      </Packages>
    </Feature>
    <Feature Type="MobileFeature" FeatureID="MS_WCOS_DEVICEPORTAL" FMID="WCPFM" Group="Microsoft">
      <Packages>
        <Package ID="WindowsDevicePortal-WCOS-Package~31bf3856ad364e35~AMD64~~" PackageType="FeaturePackage" />
        <Package ID="WindowsDevicePortal-WCOS-Package_en-us~31bf3856ad364e35~AMD64~en-us~" PackageType="FeaturePackage" />
        <Package ID="Microsoft.FactoryOS.MS_WCOS_DEVICEPORTAL.WCPFM.FIP~31bf3856ad364e35~amd64~~" FIP="true" PackageType="FeaturePackage" />
      </Packages>
    </Feature>

每个 OS 包都按其 PackageID 在此文件中列出。 除了包 ID 之外,某些包还包含其他信息,例如安装的大小和版本:

    <Package ID="Microsoft-OneCore-SS-Boot-Package~31bf3856ad364e35~AMD64~~" Partition="mainos" PublicKeyToken="31bf3856ad364e35" InstalledSize="278039" Version="10.0.18865.1000">
      <Payload />
    </Package>

BSPDB.xml

BSPDB.xml 文件包含有关工厂 OS 映像中包含的 OEM 自定义项的信息,包括:

  • OEM 添加的自定义驱动程序
    • <Packages> 部分中列出
    • 包括有关安装的驱动程序的信息(包括版本和大小)
  • 映像中包含的应用商店应用
    • <AppxPackages> 部分中列出
    • 包含有关安装的应用商店应用的信息
    • 列出安装的依赖项

    注意

    即使是随 WSK 一起提供的应用也被视为 OEM 自定义项,会在此文件中列出。 这是因为工厂 OS 产品在默认情况下不包含任何应用,映像中包含的任何应用由 OEM 选择包含在映像中。

使用此文件审核映像内容时,请基于列出的包进行审核。 包提供比功能更精细的粒度,功能背后的包可能会因版本而更改。

示例文件名:FactoryOS_Development_AMD64_UEFI_SpacesGPT_VM.BSPDB.xml

示例 BSPDB.xml 文件

以下代码片段显示了安装的驱动程序和安装的应用如何显示在 BSPDB.xml 文件中。 驱动程序和应用分为两个不同的部分,一个包含 <Packages>,另一个包含 <AppxPackages>

<?xml version="1.0" encoding="utf-8"?>
<CompDB xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" CreatedDate="2019-04-15T17:00:53.0428689Z" Revision="1" SchemaVersion="1.3" Product="FactoryOS" BuildID="737b6f27-951a-1b5e-f0ae-0e9b8924999b" BuildInfo="rs_prerelease.18865.1000.190322-1503" OSVersion="10.0.18865.1000" BuildArch="AMD64" ReleaseType="Test" Type="BSP" BSPVersion="" BSPProductName="Factory OS.BSP." xmlns="http://schemas.microsoft.com/embedded/2004/10/ImageUpdate">
  <Tags Type="BSP">
    <Tag Name="UpdateType" Value="Canonical" />
  </Tags>
  <Features>
    <Feature Type="DriverSet" FeatureID="BASE-DRIVERSET "Group="OEM" />
  </Features>
  <Packages>
      <Package ID="Microsoft-universalblender.inf" Partition="BSP" OwnerType="OEM" InstalledSize="42703" CompressedSize="26212" Type="DriverPackage" Version="19.7.8.216">
        <Payload />
      </Package>
  </Package>
...
  <AppX>
    <AppXPackages>
      <Package OwnerType="OEM" AppXPackageType="AppXFramework" FullName="Microsoft.VCLibs.140.00_14.0.26706.0_x64__8wekyb3d8bbwe" FamilyName="Microsoft.VCLibs.140.00_8wekyb3d8bbwe">
        <Payload>
          <PayloadItem PayloadSize="848261" Path="Appx\Frameworks\Microsoft.VCLibs.x64.14.00.appx" PayloadType="Canonical" />
        </Payload>
      </Package>
...
    </AppXPackages>
  </AppX>

WCOSCustomizationReport.xml

WCOSCustomizationReport 包含有关映像中包含的 OEM 自定义包(相对于映像中包含的 Microsoft OS 包)的相关信息。

报告包含以下项的元素:

  • 适用自定义项,其中存在公开自定义项的 OS 包的自定义项。
  • 不适用自定义项,其中不存在公开自定义项的 OS 包的自定义项。
  • 所有可用自定义项,映像中的所有可用自定义项。 如果发现映像中包含任何不适用自定义项,则报告会对每个自定义项记录警告。

对于 OEM 创作的自定义项,每个自定义项的值会显示在日志中,以用于所有注册表设置(字符串、数字等),但不用于文件类型设置。

可以禁用此报告的创建,以减少映像创建时间。 若要禁用报告创建,请在运行 BuildWSKImage 之前,从 Windows 系统工具包环境将 DISABLE_CUSTOMIZATION_REPORT 变量设置为 1:

DISABLE_CUSTOMIZATION_REPORT=1

高级自定义设置

对于使用 -advanced 参数指定的设置自定义文件,这些设置不会出现在日志的“所有可用自定义项”部分中。 但是,它们会出现在“适用自定义项”部分中。

示例 WCOSCustomizationReport.xml

<?xml version="1.0" encoding="utf-8"?>
<WCOSCustomizationReport xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/embedded/2004/10/ImageUpdate">
  <ApplicableCustomizationsAuthored>
    <Customization FeatureArea="Cellular" Name="OEM COSA Provisioning package" />
    <Customization FeatureArea="FactoryOrchestrator" Name="DisableCommandPromptPage" Value="1" />
    <Customization FeatureArea="FactoryOrchestrator" Name="DisableFileTransferPage" Value="1" />
    <Customization FeatureArea="FactoryOrchestrator" Name="DisableManageTasklistsPage" Value="1" />
    <Customization FeatureArea="FactoryProduct" Name="HideMouseCursor" Value="1" />
    <Customization FeatureArea="OOBE" Name="OOBE_Assets" />
    <Customization FeatureArea="TextInput" Name="InputPanelImageCustomization" />
  </ApplicableCustomizationsAuthored>
  <InapplicableCustomizationsAuthored>
    <Customization FeatureArea="DisplayEnhancement" Name="DefaultAdaptiveColorAdaptationStrength" Value="66" />
    <Customization FeatureArea="DisplayEnhancement" Name="DefaultBatterySaverBrightnessMultiplier" Value="99" />
    <Customization FeatureArea="DisplayEnhancement" Name="IsAdaptiveColorOnByDefault" Value="1" />
  </InapplicableCustomizationsAuthored>
  <AllAvailableCustomizationsInThisImage>
    <Customization FeatureArea="Cellular" Name="OEM COSA Provisioning package" />
    <Customization FeatureArea="DeviceLayout" Name="SplitLayoutFile" />
    <Customization FeatureArea="FactoryOrchestrator" Name="DisableCommandPromptPage" />
    <Customization FeatureArea="FactoryOrchestrator" Name="DisableFileTransferPage" />
    <Customization FeatureArea="FactoryOrchestrator" Name="DisableManageTasklistsPage" />
    <Customization FeatureArea="FactoryOrchestrator" Name="DisableNetworkAccess" />
    <Customization FeatureArea="FactoryOrchestrator" Name="DisableUWPAppsPage" />
    <Customization FeatureArea="FactoryProduct" Name="BackgroundImagePath" />
    <Customization FeatureArea="FactoryProduct" Name="DisableSSHUser" />
    <Customization FeatureArea="FactoryProduct" Name="HideMouseCursor" />
    <Customization FeatureArea="FactoryProduct" Name="OEMVersion" />
    <Customization FeatureArea="FactoryProduct" Name="SSHPassword" />
    <Customization FeatureArea="FactoryProduct" Name="SSHUsername" />
    <Customization FeatureArea="FactoryProduct" Name="UWPLaunchOnBoot" />
    <Customization FeatureArea="OOBE" Name="OOBE_Assets" />
    <Customization FeatureArea="Start" Name="PrimaryOEMApps" />
    <Customization FeatureArea="Start" Name="SecondaryOEMApps" />
    <Customization FeatureArea="TextInput" Name="InputPanelImageCustomization" />
    <Customization FeatureArea="Theme" Name="DefaultBackgroundImage" />
    <Customization FeatureArea="Theme" Name="OEMBackgrounds" />
    <Customization FeatureArea="Theme" Name="SystemUsesLightTheme" />
  </AllAvailableCustomizationsInThisImage>
</WCOSCustomizationReport>