Windows 工厂 OS

Windows 工厂 OS 面向工厂车间和驱动程序开发这两种用例。

  • 对于工厂车间,可将其配置为超级轻量级,以便快速启动和测试。
  • 对于开发,可添加各种工具来便于开发和验证驱动程序并立刻对其进行测试。

优点

  • 更轻松地构建适合多种设备类型的工具:工厂 OS 中支持通用 Windows 应用和驱动程序,这使你能够创建和测试可在各种新设备上使用的应用和驱动程序。
  • 允许使用更广泛的应用和驱动程序来帮助测试设备:通过快速配置更改,你可运行不满足通用 Windows 平台标准的应用和驱动程序。
  • 快速闪存和启动:默认情况下,工厂 OS 不包括很多包或工具。 你的设备可在测试环境或工厂车间快速启动并立即开始工作。
  • 更可靠,尤其是在针对预发行版的 Windows 进行开发时:OEM 可在与仍在开发中的新 OS 功能无关的稳定环境中进行开发和测试。 这可避免因零售功能妨碍制造测试而出现代价高的问题。

功能

  • 经过认证的 Store 应用程序和通用 Windows 驱动程序
  • 应用:
  • SSH
  • Powershell Core
  • 使用 Factory Orchestrator,可以在 OEM 制造过程中运行制造测试和任务来进行硬件验证和诊断。
  • TAEF 支持
  • 启动至极简型的 UWP shell、UWP、应用或命令行接口。

语言

可以生成支持以下语言的工厂 OS 映像:

  • en-US
  • zh-CN
  • zh-TW

如需了解如何添加语言,请参阅将语言添加到工厂 OS

工厂 OS 产品配置

工厂 OS 提供多种不同的配置。 这些配置使用工厂 OS 作为其基础,并添加了额外的功能。 在运行 prepwskworkspace 创建工作区时,可以使用 -productconfiguration 选项配置产品配置:

产品配置 说明
制造 运行工厂 OS 所需的基本工具集
开发 可用于运行工厂 OS 的增强工具集
win32_manufacturing/win32_development 在容器中运行诊断 win32 应用的工厂 OS 版本

管理设备

连接和配置设备

工厂 OS 运行后,你可以使用 Windows 设备门户来配置和管理设备。

复制文件进行测试

将文件复制到启用了存储空间的工厂 OS 设备时,请将文件复制到 %DataDrive% 或其子文件夹中。

包含的功能清单

使用 Windows 系统工具包为工厂 OS 产品生成工作区时,你将获得一个包含以下功能清单的 OEMInput.xml 文件:

  • WindowsCoreProductionFM.xml
  • FOSNonProductionFM.xml
  • WindowsCoreNonProductionFM.xml
  • GenericDeviceFM.xml

这些功能清单包含有关添加到映像的包有效负载的信息,并定义了可在映像中启用的功能。 如果从 OEMInput.xml 文件中删除包含的任何功能清单,将不会使用映像所需的所有包来生成该映像。

Microsoft 添加的功能

当你使用 Windows 系统工具包创建工厂 OS 工作区时,生成的 OEMInput.xml 文件将包含以下功能。 可以根据设备设计添加或删除功能。 请参阅可用功能查看所有可用选项。

FeatureID 说明
WCOS_EVENTLOG_SERVICE 启用事件日志服务。 工厂 OS 设备不包含事件查看器,但你可以使用 DiagnosticLog CSP 从工厂 OS 设备生成和收集诊断信息。 有关详细信息,请参阅基于通道的跟踪
WCOS_PNP_RUNTIMEDEVICEINSTALL 允许在设备正在运行并且已启用开发模式的情况下使用 pnputil 安装 INF。 需要 STATESEPARATION_DEVMODE 功能。
FONTSIZE_15 对于控制台模式,将字号设置为 15。 建议用于 VM 和桌面 HW 映像。
SERVICING_STACK 允许通过脱机维护安装新的或更新的 OS 或 BSP 包,而无需重新刷写设备。
ALLOW_CONNECTEDSTANDBY 启用对连接待机的支持(始终打开且始终连接,新式待机)。
MICROSOFT_EDGE 将 Microsoft Edge (UWP) 添加到工厂 OS。
DEVICEPORTAL_OPTIONAL_MONITORCONFIG 设备门户监视配置功能
OEM_IMAGE 建议用于工厂版本。 启用保存到 C:\data\memory.dmp 的完整内核故障转储。
SHELL_BOOT 将映像配置为启动至 Factory Composer 应用。
MANUFACTURING_TOOLS %WINDIR%\System32\manufacturing\mfgtest 下添加一些测试工具。
STATESEPARATION_ON 启用状态分离。 除非通过维护操作或者在以大容量存储模式装载的映像中进行修改,否则 MainOS 文件、SYSTEM 配置单元和 SOFTWARE 配置单元是只读的。
WCOS_TESTSIGNING_ON 启用测试签名
ENABLE_WOW 为 AMD64 (x86 WOW) 和 Arm64 (Arm WOW) 映像均启用 WOW,代价是 FFU 大小/磁盘空间会增加 160-170MB。
WCOS_DEVICEPORTAL 启用设备门户
WCOS_DEVICEPORTAL_WOW 启用设备门户
WCOS_POWERSHELLCORE 启用 PowerShell Core
FACTORY_ORCHESTRATOR_SERVICE 启用 Factory Orchestrator 服务
STORAGESPACES_LAYOUT 启用设备上的存储空间。 此外,必须提供已启用空间的设备布局,使设备能够启动。
CAD_CHARGING 安装充电仲裁驱动程序 (CAD) 堆栈。 某些 BSP 可能需要该堆栈。
UEFI_HARDWARE 添加到基于 UEFI 的物理设备。
UEFI_VM 添加到基于 UEFI 的虚拟机(Hyper-V 第 2 代)。

可用功能

除了适用于所有工厂 OS 产品的功能外,以下功能也适用于工厂 OS。 可以在映像配置 (OEMInput) 文件中添加这些功能。

在所有工厂 OS 映像中可用的功能

以下功能在所有工厂 OS 映像中可用。 你无需指定任何其他 FM 即可添加这些功能。

粗体显示的功能包含在 Windows 系统工具包生成的 OEMInput.xml 文件中。

FeatureID 说明
ALLOW_CONNECTEDSTANDBY 启用对连接待机的支持(始终打开且始终连接,新式待机)。
ENABLE_WOW 为 AMD64 (x86 WOW) 和 Arm64 (Arm WOW) 映像均启用 WOW,代价是 FFU 大小/磁盘空间会增加 160-170MB。
OEM_IMAGE 所有 OEM 零售版都需要此功能,建议用于工厂版本。 启用保存到 %DataDrive%\memory.dmp 的完整内核故障转储。
MANUFACTURING_POWER_SCHEME 将电源方案从平衡方案更改为高性能方案。 此方案针对性能进行优化,可提高工厂吞吐量和可靠性。 注意:对于任一方案,将禁用在工厂 OS 中显示超时。
TESTSIGNING_ON 允许通过在映像中包含 Microsoft 产品和 OEM 测试根证书并打开 BCD 测试签名,来部署经过测试签名的内容。
FACTORY_ORCHESTRATOR_SERVICE 启用 Factory Orchestrator 服务
状态分离 - 选择一项(必需)
STATESEPARATION_ON 启用状态分离。 除非通过维护操作或者在以大容量存储模式装载的映像中进行修改,否则 MainOS 文件、SYSTEM 配置单元和 SOFTWARE 配置单元是只读的。
● STATESEPARATION_DEVMODE 监视状态分离,但不强制执行状态分离规则。
调试 - 选择零项或一项
● KDNETUSB_ON 启用 KDNET 和 EEM 调试。 windbg.exe -k net:port=50000,key=1.2.3.4
● KDSERIAL_ON 在 COM1 上启用串行调试器。 主要用于 VM 调试。 windbg -k com:port=COM1,baud=115200
● KDUSB_ON 启用 KDUSB 调试。 windbg.exe -k USB2:targetname=WOATARGET
启动环境 - 选择一项(必需)
● CONSOLE_BOOT 将映像配置为启动至控制台模式。 启用此选项后,UWP 应用无法运行。
● POWERSHELL_BOOT 将映像配置为启动至 PowerShell Core 环境。 启用此选项后,UWP 应用无法运行。
SHELL_BOOT 将映像配置为启动至 Factory Composer 应用。
字号 - 选择零项或一项 对于控制台模式,如果未选择以下任何选项,则默认字号为 20。
FONTSIZE_15 对于控制台模式,将字号设置为 15。 建议用于 VM 和桌面 HW 映像。
● FONTSIZE_30 对于控制台模式,将字号设置为 30。 建议用于小规格映像。
设备/固件 - 选择一项(必需)
UEFI_HARDWARE 用于基于 UEFI 的物理设备。
UEFI_VM 用于基于 UEFI 的虚拟机(Hyper-V 第 2 代)。
CAD_CHARGING 安装充电仲裁驱动程序 (CAD) 堆栈。 某些 BSP 可能需要该堆栈。
SERVICING_STACK 允许通过脱机维护安装新的或更新的 OS 或 BSP 包,而无需重新刷写设备。
DEVICEPORTAL_OPTIONAL_MONITORCONFIG 设备门户监视配置功能
MANUFACTURING_TOOLS %WINDIR%\System32\manufacturing\mfgtest 下添加一些测试工具。
MICROSOFT_EDGE 将 Microsoft Edge (UWP) 添加到工厂 OS。
FACTORY_ORCHESTRATOR_SERVICE_IN_TESTCONTENT 允许你使用自己的 Factory Orchestrator 版本从 %DataDrive%\TestContent\Container\FactoryOrchestrator 运行。 Factory Orchestrator 服务二进制文件必须位于 Container\FactoryOrchestrator 子目录中的 OEMInput 中设置的 <TestContent> 目录中。
SETTINGS_APP 将设置应用添加到映像。 仅支持基本硬件功能。
WCOS_APP_CENTENNIALRUNTIME 打包的 Win32 应用支持。
MANUFACTURING_MODE_EMPTY_PROFILE 允许驱动程序和应用在工厂 OS 中运行时使用 ExIsManufacturingModeEnabled()GetOsManufacturingMode() API 实现分叉行为,因为包含此功能时两者都将返回 true

GenericDeviceFM.xml

GenericDeviceFM 包含用于启用启动支持(无论目标硬件是什么)的功能。

功能 说明
UEFI_HARDWARE 用于基于 UEFI 的物理设备。
UEFI_VM 用于基于 UEFI 的虚拟机(Hyper-V 第 2 代)。
STORAGESPACES_LAYOUT 启用设备上的存储空间。 此外,必须提供已启用空间的设备布局,使设备能够启动。

WindowsCoreNonProduction.xml

以下功能仅用于开发和测试

FeatureID 说明 默认包括
WCOS_TEST_COMPONENTS 安装用于支持测试的组件
选择零项或一项
OFFLINE_CRASH_DUMP_SUPPORTED
DISABLE_SCREEN_TIMEOUT 禁用屏幕超时
DEBUGGER_IGNORE_UM_EXCEPTIONS 告知调试器忽略用户模式异常
选择零项或一项
WCOS_TEST_GPIOACCESS 启用 GPIO 的测试签名
WCOS_TESTSIGNING_ON 启用测试签名。
WCOS_WDTF_COMPONENTS 提供用于启用运行 Windows 测试框架测试的平台。 要求映像中还包含 TESTSIGNING_ON 功能<>。
WCOS_POWERSHELL 启用 PowerShell 是,在工厂 OS 中
WCOS_PNP_RUNTIMEDEVICEINSTALL 允许在设备正在运行并且已启用开发模式的情况下使用 pnputil 安装 INF。 需要 STATESEPARATION_DEVMODE 功能。 是,在工厂 OS 中
WCOS_OPENSSH_AUTOSTART 在工厂 OS 设备上自动启动 SSH 服务器。

WindowsCoreProductionFM.xml

FeatureID 说明 默认包括
WCOS_ACCESSIBLITY_NARRATOR 讲述人辅助功能
WCOS_DEVICEPORTAL 启用设备门户
WCOS_DEVICEPORTAL_WOW 启用设备门户
WCOS_DISPLAY_ENHANCEMENT_SERVICE 显示增强服务
WCOS_DISPLAY_MULTIPLEINTEGRATED_ENABLE 启用对多个集成显示器的支持
WCOS_DRIVERS_USB_ETHERNET 通用 USB 以太网驱动程序
WCOS_EVENTLOG_SERVICE 启用事件日志服务。 工厂 OS 设备不包含事件查看器,但你可以使用 DiagnosticLog CSP 从工厂 OS 设备生成和收集诊断信息。 有关详细信息,请参阅基于通道的跟踪
WCOS_MDM_PROVISIONING 手机网络和企业预配
WCOS_CONTAINERS 容器支持。 Win32 容器需要此功能。
WCOS_APP_WIN32SUPPORT_ARGON 容器支持。 Win32 容器需要此功能。
WCOS_NET_PROXIMITY_SERVICE NFC 支持所需的邻近性服务。
选择零项或一项
WCOS_HYPERV_GUEST_UEFI UEFI 工厂 OS 虚拟机所需的 Hyper-V 功能
WCOS_TIMESYNC_MOBILE 移动运营商感知的自动时间管理
WCOS_TIMESYNC_NETWORK NTP 自动时间管理
WCOS_TIMESYNC_NETWORK_WOW WOW 的 NTP 自动时间管理
WCOS_NET_CELLULAR_DATA 启用手机网络数据。 要求映像中还包含 WCOS_NET_RADIO_MANAGEMENT 和 WCOS_MDM_PROVISIONING 功能。
WCOS_NET_RADIO_MANAGEMENT 无线电管理平台
WCOS_SPEECH_VOICE_AGENT_SUPPORT 启用多语音代理 (MVA)(包括 Cortana)的支持。

后续步骤:

准备工作区