- 积分
- 106
- 下载分
- 分
- 威望
- 点
- 原创币
- 点
- 下载
- 次
- 上传
- 次
- 注册时间
- 2013-6-16
- 精华
|
马上注册,获取阅读精华内容及下载权限
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 fuhua0087 于 2020-3-21 16:36 编辑
2.从“ 英特尔引擎:固件存储库”线程中,确保已基于主版本/次要版本下载了正确的存储库包并解压缩。
3.使用ME Analyzer打开转储的SPI / BIOS映像,以查看我们需要的主要/次要版本以及SKU。在这种情况下,我们有:
因此,我们的SPI / BIOS映像转储具有带有Consumer SKU的CSME 11.0固件。
4.浏览存储库包,将相同SKU和主要/次要版本(如上所述)的相同(或尽可能相似)的CSME / CSTXE RGN固件复制到某个地方,然后将其重命名为CSME的“ ME Region.bin” 11,CSTXE 3的“ TXE Region.bin”,CSME 12的“ ME Sub Partition.bin”或CSTXE 4的“ TXE Sub Partition.bin”,这取决于您使用的是什么。在这种情况下:
因此,我们选择了固件文件11.0 .1.1001_ CON_H _XX_PRD_ RGN,该文件与我们在ME Analyzer中看到的完全匹配。例如,如果转储的SPI / BIOS映像具有带有LP SKU的CSME 11.0.0.1196,我们将选择CSME 11.0.0.1197,因为我们想要的是EXTR而不是RGN。因此,我们将“ 11.0.1.1001_CON_H_XX_PRD_RGN.bin”副本重命名为“ ME Region.bin”。
5.使用ME Analyzer打开转储的SPI / BIOS映像。为了验证SPI / BIOS转储具有初始化数据,请确保将文件系统状态报告为“已初始化”。
6.从System Tools文件夹中,转到Flash Image Tool> WIN子文件夹,然后运行fit.exe。拖放要清除的转储SPI / BIOS映像。转到“构建>构建设置”,在“生成中间文件”选项中选择“否”,保留所有其他设置,然后单击“关闭”。
注意:如果您使用的是CSME 11-12 Engine区域,而不是SPI / BIOS映像,则还需要更改三个附加设置。将“ Flash设置> Flash组件> Flash组件数”设置为0,然后从“ Flash布局> Intel(R)ME区域> Intel(R)Trace Hub Binary”和“ Integrated Sensor Hub> ISH Data> PDT”中删除路径只有在转储的引擎区域中不存在二进制文件时(由“ Decomp”子文件夹中这些模块的零字节大小指示)。
7.转到“平台保护”,然后检查是否存在 “平台完整性”部分。如果存在“平台完整性”部分,请按照以下说明继续操作。除此以外,
- 检查“ OEM公钥哈希”字段是否存在以及该字段是否为空/清零。如果“ OEM公钥哈希”字段丢失或为空/置零,请继续进行本指南的下一步。
- 如果填充了“ OEM公钥哈希”,则您的SPI / BIOS映像很有可能由OEM签名,并且其OEM公钥哈希被永久存储在芯片组硬件中。在这种情况下,您将无法轻松/迅速地清理引擎固件,因为如果没有OEM的RSA私钥,平台将拒绝该固件。
- 如果您碰巧拥有OEM的私有RSA密钥(除非您是OEM,否则不太可能),可以在“ SMIP签名密钥”字段中输入它。然后转到“ Build> Build Settings”,在“ Intel(R)Manifest Extension Utility Path”字段中输入Manifest Extension Utility(MEU)可执行文件位置,在“ Signing Tool Path”字段中输入Win32 OpenSSL Lite可执行文件位置,确保在“签名工具”字段中选择“ OpenSSL”,确保将“根据OEM密钥清单验证清单签名密钥”设置为“是”,所有其他设置保持不变,然后单击“关闭”。现在继续进行指南的下一步。
- 如果您没有OEM的“私有RSA密钥”(最终用户的情况),您仍然可以清理SPI / BIOS映像的“引擎固件”部分,但需要执行更多步骤。这是因为引擎固件是独立签名的,因此具有独立的保护性,因此任何可配置FIT的RSA公钥哈希和签名仅与SPI / BIOS芯片映像的其余BIOS / IAFW / IFWI组件有关。例如,在“ OEM公钥哈希”字段上方找到的“ SMIP签名密钥”用于签名/重新签名SMIP BIOS / IAFW模块,该模块可能与引擎固件交互,但实际上并不是模块的一部分。因此,目标是仅更新引擎固件,而无需接触BIOS / IAFW模块(例如SMIP或DnX),后者需要在FIT处重建SPI / BIOS映像时重新签名。
- 我们需要创建一个虚拟/占位符RSA私钥,以在“ SMIP签名密钥”字段中插入。为此,需要使用OpenSSL。在Windows下,安装Win32 OpenSSL Lite,转到其目录并执行以下命令:
1个
openssl.exe genrsa --out dummy.pem 2048
- 在“ SMIP签名密钥”字段中,输入由OpenSSL工具创建的占位符RSA私钥(dummy.pem)。然后转到“生成>生成设置”,在“英特尔(R)清单扩展实用程序路径”字段中输入清单扩展实用程序(MEU)可执行文件位置,在“签名工具路径”字段中输入Win32 OpenSSL Lite可执行文件位置,确保在“签名工具”字段中选择“ OpenSSL”,确保将“对照OEM密钥清单验证清单签名密钥”设置为“否”,所有其他设置保持不变,然后单击“关闭”。
8.转到“文件>另存为”并保存配置xml文件,在这种情况下,该文件名为“ config.xml”。然后,关闭FIT窗口。
9.如果您正在处理完整的SPI / BIOS映像而不是仅用于Engine区域,请转到FIT文件夹,现在应该有一个以输入文件命名的文件夹,在这种情况下,其名为“ Z17EX62.00”。输入“ Decomp”子文件夹。那里应该有许多文件(BIOS区域,闪存描述符,OEM区域等),包括“ ME Region.bin”或“ TXE Region.bin”或“ ME Sub Partition.bin”或“ TXE Sub Partition.bin”文件。采取在步骤4中保存的先前的“ ME / TXE Region.bin”或“ ME / TXE Sub Partition.bin”文件,并将其复制到当前的“ ME / TXE Region.bin”或“ ME / TXE Sub Partition.bin”中”文件,可以有效地替换它。
如果仅在引擎区域上工作,而不是完整的SPI / BIOS映像,请使用在步骤4中保存的先前的“ ME / TXE Region.bin”或“ ME / TXE Sub Partition.bin”文件,将其重命名为完全相同作为输入文件(引擎区域),并将其复制到当前输入文件所在的位置,从而有效地替换它。
10.再次运行FIT。从“文件>打开”中,选择步骤8中保存的配置xml文件,然后将其打开。
11.单击“构建映像”图标(或“构建>生成映像”),它应成功完成。
12.现在,在FIT文件夹中,您应该看到一个名为“ outimage.bin”的文件,该文件是转储的SPI / CSME / CSTXE映像,其中包含Engine区域的Configured DATA部分,其中未存储任何不需要的“ Initialization”信息。
13. 如果您按照步骤7的说明进行了操作,但没有跳过,则确定您的SPI / BIOS映像已由OEM签名,因此在“ SMIP签名密钥”字段中输入了占位符RSA私钥(dummy.pem)。现在,您必须还原原始的OEM签名的SMIP模块。为此,您需要使用十六进制编辑器(例如:HxD十六进制编辑器)和ME分析器工具。
- 拖放要在ME Analyzer上清理的转储SPI / BIOS映像,然后在Option(选项)中输入“ -dfpt”参数。
- 找到“启动分区描述符表”,其中包括名称为“ SMIP”的条目。它不能为空(“否”)。记下SMIP分区的“开始”偏移量和“大小”,在这种情况下分别为0x2000和0x4000。对在步骤12中构建的“ outimage.bin”文件执行相同的操作。两个SPI / BIOS映像的SMIP“开始”偏移和“大小”通常是相同的。
- 在十六进制编辑器中打开要清除的转储SPI / BIOS映像以及“ outimage.bin”。从要清除的转储SPI / BIOS映像中,转到其SMIP“开始”偏移量,然后选择一个与您先前记下的SMIP“大小”相等的块。现在应选择一个等于SMIP“大小”的块。对“ outimage.bin”文件执行相同的操作。
- 现在,您需要从要清除的转储SPI / BIOS映像中“复制”选定的块,并在“ outimage.bin”的等效选定块中“粘贴”它。然后在“ outimage.bin”文件中“保存”更改。
14.现在,您需要验证生成的图像(“ outimage.bin”)确实未初始化。将输出文件导入ME Analyzer,并检查主要/次要版本,SKU和步进是否与以前相同。为了验证DATA部分现在已配置并且未初始化,请确保将文件系统状态报告为“已配置”。
15.最后但并非最不重要的一点是,一旦在目标系统上刷新了新的经过清理和配置的SPI / BIOS转储或引擎区域后,请使用命令fpt -greset运行Flash编程工具,然后等待系统重置(不丢失任何设置)。此步骤非常重要,因为它会强制引擎协处理器重新初始化并正确接受对其SPI / BIOS映像区域对应项的任何更改。
- 如果您在引擎区域而不是SPI / BIOS映像上工作,请确保输出区域在输入/转储区域的大小相同。为此,请从输入/转储值中减去输出区域的大小,以得到差值,该差值是需要使用十六进制编辑器在输出区域末尾附加的0xFF填充量。例如,在大小差异为0xA000的假设情况下,需要在HxD十六进制编辑器中调整输出区域,如下所示:
|
|