‎Windows RT Build 7792.0.winmain.100802-1750

来自 WinStory Wiki
跳转到导航 跳转到搜索
7792.0.winmain.100802-1750
Windows RT 的版本
操作系统系列Windows NT 系列
NT 版本Windows NT 6.1
内部版本号7792
修订版本号0
体系结构ARM32(ARMv7)
内部版本实验室winmain
编译日期2010 年 8 月 2 日
有效期
时间炸弹2010 年 10 月 1 日 (+60 天)
已知 SKU 版本
Starter(N、E)、
Home Basic(N、E)、
Home Premium(N、E)、
Professional(N、E)、
Enterprise(N、E)、
Ultimate(N、E)

Windows RT Build 7792 是 Windows RT 的 Milestone 1 前版本,也是 ARMv7 系列中已知最早的可用版本。此版本的一个疑似从 Microsoft 符号服务器捕获的 setup.exe 于 2023 年 7 月 2 日上传到 Internet Archive,[1]完整版本于 2024 年 8 月 13 日上传。

在泄露之前,在此版本的驱动程序开发工具包在 2022 年 2 月 28 日的 NVIDIA 源代码泄露中就已作为 Wi-Fi 驱动程序编译日志文件中的包含目录被提及,此日志文件位于 dev\gpu_drv\stage_rel\drivers\tegra\platform\drivers\network\wifi\athlib\host\hif\sdio\buildchk_win8_arm.log。次日,一个适用于 ARM32 体系结构的此版本安装文件被上传到 BetaWiki Discord 服务器。2022 年 10 月 30 日,前 Windows 部门总裁史蒂文·西诺夫斯基(Steven Sinofsky)上传了一段画质较低的此版本摄像机录像,展示了在 Nvidia Tegra 250 Harmony 参考平台上运行的 DirectX 9 示例应用,同时还提供了 Build 7867 的额外录像,这些内容记录在他关于任职 Microsoft 期间事件的帐户名为《Hardcore Software(硬核软件)》的问题 104 中。[2][3]

由于它的早期性,系统范围内许多地方仍然将自身标识为“Windows 7”,内核版本仍然是 6.1。(就像早于 Build 7865 的版本一样)。

安装

QEMU 安装指南:

先决条件

以下是将基于 tegra2 HAL 安装早期 ARMv7 体系结构 Windows 版本安装到虚拟机所需的要求:

  • 用于模拟真实 Nvidia Tegra 250 开发套件的 QEMU v6.1.0 Tegra 2 WoA 分支,已针对运行早期的 Windows on ARM 版本修改
    • 截至当前,持续集成(CI)当前仅设置为自动产生 Windows 版本。此分支必须使用 macOS 或 Linux 等其他操作系统手动从源代码编译。
  • 所需的修补 EFI 固件封装映像(最初来自 Build 7822),需放置在 QEMU 安装目录中新建的名为 fw 的文件夹中
  • 两个虚拟磁盘映像(用于存放安装媒介和操作系统安装)

注意事项

  • 当系统重新启动时,模拟器可能会退出。这是 Microsoft 有意的设计决策,原因是在 Tegra 250 HAL 中,重启被视为完全关机,这是无法规避的。只能在模拟器退出后重新运行相关启动脚本再次运行。
  • 在极少数情况下,安全数字多媒体卡(SDMMC)模拟可能不可靠,且可能在镜像部署或功能设置过程中损坏主操作系统磁盘分区。通过先格式化主操作系统分区,然后使用以下命令修改安装介质中位于 EFI\Microsoft\Boot\BCD 的 BCD 设置以使用一个CPU核心,重新尝试以下操作,可能会显著提高安装成功的几率,但由于缺乏多线程支持,完成时间可能会增加:
bcdedit /offline /store M:\EFI\Microsoft\Boot\BCD /set {default} NUMPROC 1
  • USB HID 设备模拟不稳定,偶尔会导致设备无法注册任何用户输入。要恢复输入,请切换到 QEMU 兼容性监视器(Ctrl+Alt+2)并运行以下命令:
device_del kbd
device_add usb-kbd,id=kbd
  • 对于 Build 7957 之前的版本(不包括 Build 77927822),至关重要的是必须用原始合作伙伴镜像中的 Windows 预安装环境(WinPE)镜像替换 Windows 安装启动镜像(通常位于 winpewoape 目录中),原因是安装启动镜像不包含所需的硬件抽象层(HAL)扩展,因此一旦启动序列开始,操作系统将立即因 HAL_INITIALIZATION_FAILED 错误代码而崩溃。
  • 由于 Build 7915 设计用于在德州仪器的 OMAP4 上运行,且无法在 Tegra 2 QEMU 上运行,本指南不适用于此版本。必须改用 QEMU-woa。

详细说明

这些说明基于假设用户已经打开了提升权限的命令提示符窗口。

通过运行以下脚本使用 diskpart 工具创建所需的虚拟磁盘映像;它们将会在 C: 盘名为 ARM8 的目录下创建。INSTALLMainOS 和 EFI 系统分区将分别装载到 F 和 P 盘符下。

create vdisk file="C:\ARM8\Setup.vhd" maximum=4096 type=expandable
select vdisk file="C:\ARM8\Setup.vhd"
attach vdisk
convert gpt
create partition primary
format quick fs=fat32 label=INSTALL
assign letter=M
create vdisk file="C:\ARM8\Main.vhd" maximum=65536 type=expandable
select vdisk file="C:\ARM8\Main.vhd"
attach vdisk
convert gpt
create partition efi size=100
format quick fs=fat32 label=EFIESP
create partition primary
format quick fs=ntfs label=MainOS
assign letter=P
exit

根据用户希望的版本(free 版本或 checked 版本),将安装介质的内容复制到 INSTALL 分区。从 Windows PEWindows 安装程序启动映像中提取所需的 EFI 引导管理器(\Windows\Boot\EFI\bootmgfw.efi)到 INSTALL,作为 EFI\Boot\bootarm.efi

弹出计算机上所有已连接的虚拟硬盘,并将以下脚本的内容粘贴到 QEMU 安装目录下的批处理文件中运行,将 YYYY-MM-DD 替换为早于版本内置时间炸弹到期的日期,将 FWType 替换为 78xx 变体固件(适用于早期至 7898 的版本)或 multi 变体(适用于 Build 78987996):[a]

set BL=".\fw\HARMONY.fd.FWType"
set MAIN="C:\ARM8\Main.vhd"
set SETUP="C:\ARM8\Setup.vhd"

qemu-system-arm ^
    -M tegra2-qemu -m 1G -accel tcg,thread=multi ^
    -bootloader %BL% ^
    -device usb-tablet,id=mouse -device usb-kbd,id=kbd ^
    -drive if=sd,index=0,format=vpc,file=%SETUP% ^
    -drive if=sd,index=1,file=%MAIN% ^
    -serial null -nic none ^
    -s ^
    -rtc base=YYYY-MM-DD,clock=vm ^

开始安装操作系统。安装程序必须直接从原始安装介质启动,这是因为操作系统启动映像中的版本无法使用。可使用以下命令启动安装过程:

start D:\sources\setup.exe

在完成第一阶段的安装程序后,立即取出安装媒介的 SD 卡槽,并使用以下批处理脚本配置启动操作系统:[a]

set BL=".\fw\HARMONY.fd.FWTYPE"
set MAIN="C:\ARM8\Main.vhd"

qemu-system-arm ^
    -M tegra2-qemu -m 1G -accel tcg,thread=multi ^
    -bootloader %BL% ^
    -device usb-tablet,id=mouse -device usb-kbd,id=kbd ^
    -drive if=sd,index=0,file=%MAIN% ^
    -serial null -nic none ^
    -s ^
    -rtc base=YYYY-MM-DD,clock=vm ^

继续通过正常方式安装操作系统。

  1. 1.0 1.1 如果使用 Tegra 2 WoA 分支的四核版本,则必须修改批处理脚本中的机器配置以支持 2 GB 内存,并且还必须使用经过修补的 2g EFI 固件封装来启动虚拟机。multi2g 组合可以用于立即启动 Build 8020 到 8061;如果未使用此组合,则需要对 SYSTEM 配置单元进行必要的注册表修改,以加载 Tegra 2 HAL 扩展 ID VEN_ra2.&DEV_0002HalExtTegra2.dll)和 VEN_ra2.&DEV_0003HalExtTegra2Dma.dll;在后期版本中为 HalExtTegraDma.dll)。

组件

由于此版本还很早期,因此有一些奇怪的组件存在或缺失:

媒体组件

  • x86 BIOS 的 bootmgr 存在于安装介质的根目录中;尽管在其他位置不存在。
  • ARMv7 的 bootmgfw.efi 不存在于 \efi\boot 中,尽管它存在于 WIM 镜像中。

存储组件

  • 存在一个旧的 CMIv2 风格组件存储(仅包含 Windows Foundation 组件),同时也存在较新的 CBS 组件存储。
  • .NET 框架不存在,尽管依赖它的组件(如 PowerShell)存在。
  • Windows 7 游戏不存在,尽管存在一些特定于它们的 DLL。
  • 此版本早于 Warbird 移植到 ARMv7;因此,所有软件许可组件未进行混淆。
  • 此版本早于 HAL 扩展;因此存在两个 HAL,一个用于 Tegra 2,一个用于 OMAP3。
  • 在开发的此阶段,Windows Search 索引引擎尚不存在。

隐藏功能

PDF 阅读器

包含了沉浸式阅读器的初步版本,可以通过应用以下注册表值并使用 PDF 文件作为参数运行 C:\Windows\System32\glcnd.exe 来访问:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Applets\Paint\Capabilities]
"CLSID"="{D3E34B21-9D75-101A-8C3D-00AA001A1652}"

Webcam Capture Application(摄像头捕获应用)

包含了 Webcam Capture Application(摄像头捕获应用)的早期版本,可通过应用以下注册表值并运行 C:\Windows\System32\Webcam.exe 来访问:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\GRE_Initialize]
"RemoteFontBootCacheFlags"=dword:0000100f

捕获的文件将会保存到 %USERPROFILE%\Pictures\Webcam

功能区 UI

Windows 资源管理器的功能区版本也已包含。可以通过应用以下注册表值来启用它:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CLSID\{4F12FF5D-D319-4A79-8380-9CC80384DC08}]
"AppID"="{9198DA45-C7D5-4EFF-A726-78FC547DFF53}"

Bug

启动过程

  • 如果第二阶段启动应用程序失败,则会导致启动环境将进入无限循环而无法进入系统。
    • 可以通过将无限循环指令修补到 mov sp, r4 来修复。
  • 内核只将 EFI 帧缓冲用于引导屏幕。由于在这些情况下使用了不受支持的 bootvid.dll ,SOS 模式和错误检查文本打印功能会被破坏。

控制面板

  • 打开个性化控制面板时会导致 explorer.exe 崩溃。

缩略图

尝试查看照片缩略图将导致资源管理器崩溃。

任务栏

对系统托盘设置的修改只有在注销后才会保存,如果用户直接重启,这些修改将会被清除。

Windows Media Player

Windows Media Player 应用的快捷方式错误地指向了其 WoW64 版本,而此版本目前仅存在于 x64 版本的 Windows 中。

多核支持

只有一个核心被启动并被操作系统使用——在 ARM32 版本的 Windows 中,目前尚未实现多处理支持。

Sysprep

由于 tssysprep.dll 出现故障,Sysprep 将失败。

buildchk_win8_arm.log

BUILD: (TpSubmitQ:ALLOC) PASS:Pass1 NoSync TICK:0
1>Compiling c:\work\ar6002wifi\athlib\host\hif\sdio\windows\src *************
1>'nmake.exe /nologo BUILDMSG=Stop. -i /nologo /f c:\winddk\7792.0.0\bin\makefile.def BUILD_PASS=PASS1 NOLINK=1 NOPASS0=1 THREAD_ID=1 MAKEDIR_RELATIVE_TO_BASEDIR='

图库

公开前上传的照片

引用资料

  1. https://archive.org/details/WindowsBuildFiles
  2. Steven Sinofsky. 104. //build It and They Will Come (Hopefully)(//建造它,他们就会来,希望如此), Hardcore Software: Inside the Rise and Fall of the PC Revolution(硬核软件:个人计算机革命的兴衰内幕). 2022 年 10 月 30 日.
  3. 多名作者. Windows 8 on NVIDIA Tegra running in Microsoft labs(在 Microsoft 实验室运行的搭载 NVIDIA Tegra 的 Windows 8), Hardcore Software: Inside the Rise and Fall of the PC Revolution(硬核软件:个人计算机革命的兴衰内幕). 2010 年末—2011 年 8 月 20 日.