Windows 工厂 OS
Windows 工厂 OS 面向工厂车间和驱动程序开发这两种用例。
- 对于工厂车间,可将其配置为超级轻量级,以便快速启动和测试。
- 对于开发,可添加各种工具来便于开发和验证驱动程序并立刻对其进行测试。
优点
- 更轻松地构建适合多种设备类型的工具:工厂 OS 中支持通用 Windows 应用和驱动程序,这使你能够创建和测试可在各种新设备上使用的应用和驱动程序。
- 允许使用更广泛的应用和驱动程序来帮助测试设备:通过快速配置更改,你可运行不满足通用 Windows 平台标准的应用和驱动程序。
- 快速闪存和启动:默认情况下,工厂 OS 不包括很多包或工具。 你的设备可在测试环境或工厂车间快速启动并立即开始工作。
- 更可靠,尤其是在针对预发行版的 Windows 进行开发时:OEM 可在与仍在开发中的新 OS 功能无关的稳定环境中进行开发和测试。 这可避免因零售功能妨碍制造测试而出现代价高的问题。
功能
- 经过认证的 Store 应用程序和通用 Windows 驱动程序
- 应用:
- 包含独立性部署的 .NET Core 应用
- 面向 Windows“伞形”库的本机应用
- 容器内部支持完全硬件访问的本机 Win32 应用
- 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)的支持。 | 否 |