被软屏蔽TPM的华为本,完美开启TPM涅槃重生Windows 11的教程

前言

这篇文章主要针对华为部分在硬件方面拥有TPM芯片,但在BIOS中未提供开启选项(软屏蔽)的笔记本,提供自行修改Insyde BIOS参数完美开启TPM的方法。

注意事项

  1. 本教程仅适用于被软屏蔽但硬件上确定存在TPM的华为笔记本。
  2. 本教程仅适用于有一定动手能力的人。
  3. 本教程所用到的工具软件均来自互联网搜集。
  4. 请确认完全理解本教程、备份重要数据再进行操作,造成任何数据或硬件损坏,本人不负任何责任。

准备过程

需要用到的东西

  1. 官方BIOS固件文件 ----- 可通过华为官网下载(防止误差,请确认当前本机安装的BIOS固件版本和下载的BIOS固件文件版本一致)
  2. UEFITool ----- 用于查找BIOS中相关变量(字串)导出为二进制文件的工具
  3. IRFExtractor ----- 将二进制文件转换成文本文档的工具
  4. H2OUVE ----- Windows环境下修改Insyde BIOS设定的工具

PS:如果IRFExtractor运行报错,安装微软运行库即可。

我这里已经给大家打包好了后三个大家需要用到的工具,当然,你也可以自己动手丰衣足食。

下载地址:点我

操作过程

温馨提示

教程实操用到的设备是华为荣耀MagicBook 2018。

如果你用的也是这款设备,参照教程,放心冲!

第一步

点此从华为官网下载最新的BIOS固件。(建议通过设备序列号搜索驱动)

更新BIOS固件到最新的版本,若当前机器BIOS固件版本和官网最新下载的BIOS固件版本一致,可略过此步骤。

第二步

通过压缩软件解压下载的BIOS固件安装程序(.exe)直到得到BIOS的.bin文件为止(很难阐述这个步骤,具体看我录屏吧)。

第三步

使用工具“UEFITool”打开得到的BIOS .bin文件。

通过快捷键(Ctrl+F)在搜索的Text页选项卡中搜索关键词“BIOS LOCK”。


搜索后双击下方的搜索结果,在上方跳转的结果处右键,选择菜单中的“Extract as is....”将其保存为一个.sct的文件。

第四步

打开工具“IRFExtractor”,在“Module Locatio”中选择上一步通过“UEFITool”导出的.sct的文件,随后点“Extract”按钮将其保存为.txt的文本文档文件。

第五步

通过NotePad++、浏览器或任何便于你自己浏览的工具打开上一步所保存的.txt文档。(这里选用NotePad++)

接着,我们需要在文本文档中分别找出并记录几个参数的VarOffset(偏移值)和VarStore(偏移集)。

VarOffset:偏移值,即我们随后要修改的数据地址坐标。
VarStore:偏移集,即我们随后要修改的数据所在的大项。

需要找出并记录的参数如下:

CFG Lock  //配置锁定
BIOS Lock  //BIOS锁定
TPM 1.2 Deactivate  //停用TPM1.2
TPM/TCM, VarStoreInfo   //启用TPM/TCM
Current TPM Device   //切换TPM到2.0
TPM Availability   //启用TPM芯片
TPM Operation  //激活TPM所有设置

参数是唯一的,为了方便我们查找,我们可以在参数后面加上“, VarStoreInfo”再搜索,这样定位出来就没有重复的了。

例如“CFG Lock”,我们可以搜索“CFG Lock, VarStoreInfo”,全部找到就是下面这些这样:

全部找到之后,这一块就包含了我们待会修改需要用于定位的VarOffset(偏移值)和VarStore(偏移集)。

我们将有用的部分(从参数开始到QuestionID前面都是有用的部分)先新建个文档保存下来,再对VarStore值一样的参数进行分类,方便后面的修改,例如:

CFG Lock, VarStoreInfo (VarOffset/VarName): 0x3C, VarStore: 0x3

BIOS Lock, VarStoreInfo (VarOffset/VarName): 0x17, VarStore: 0x5

TPM 1.2 Deactivate, VarStoreInfo (VarOffset/VarName): 0x6, VarStore: 0x1108

TPM/TCM, VarStoreInfo (VarOffset/VarName): 0xF0, VarStore: 0x1234
Current TPM Device, VarStoreInfo (VarOffset/VarName): 0xE3, VarStore: 0x1234
TPM Availability, VarStoreInfo (VarOffset/VarName): 0x9D, VarStore: 0x1234
TPM Operation, VarStoreInfo (VarOffset/VarName): 0x62, VarStore: 0x1234

上面的工作做完,我们紧接着来找我们VarStore(偏移集)所在大项的名称。

如何找呢?这里举两个例子:

比如参数“CFG Lock”,我们已知其VarStore对应的值为0x3,那我们就搜索“VarStoreID: 0x3”,找到它所在大项的名称“Name: CpuSetup”。

比如参数“BIOS Lock”,我们已知其VarStore对应的值为0x5,那我们就搜索“VarStoreID: 0x5”,找到它所在大项的名称“Name: PchSetup”。

总结来说,就是在我们上面得到的各个参数“VarStore: xxx”的“VarStore”上加上“ID”,再在文本文档中进行搜索,搜到的内容中的Name即是它所在大项的名称。

最后,我们得到了上述所需参数所在大项的所有名称,再次对应记录好保存起来,它有着关键性的作用。

CFG Lock —— CpuSetup
BIOS Lock —— PchSetup
TPM 1.2 Deactivate —— MeSetupStorage
TPM/TCM —— SystemConfig
Current TPM Device —— SystemConfig
TPM Availability —— SystemConfig
TPM Operation —— SystemConfig

最后的整理。

为了更加直观方便的让我们修改,我们最后再将4.62和4.63所记录的内容整理在一起。
主要就是将我们要修改的几个参数的“VarOffset(偏移值)”和它所在大项的名称记录一下。

VarOffset(偏移值)就是“VarStoreInfo (VarOffset/VarName)”的值。
从4.62我们记录的内容中可以清楚的得知各个参数的VarOffset(偏移值)。

例如参数“CFG Lock”:
CFG Lock, VarStoreInfo (VarOffset/VarName): 0x3C, VarStore: 0x3
那么,它的“VarOffset(偏移值)”就是0x3c

例如参数“BIOS Lock”:
BIOS Lock, VarStoreInfo (VarOffset/VarName): 0x17, VarStore: 0x5
那么,它的“VarOffset(偏移值)”就是0x17

那我们可以这么记录好:

CFG Lock —— CpuSetup —— 0x3c
BIOS Lock —— PchSetup —— 0x17
TPM 1.2 Deactivate —— MeSetupStorage —— 0x6
TPM/TCM —— SystemConfig —— 0xF0
Current TPM Device —— SystemConfig —— 0xE3
TPM Availability —— SystemConfig —— 0x9D
TPM Operation —— SystemConfig —— 0x62

决战时刻

最后一步,辛苦了这么久,马上就能看到胜利的曙光了!
当然,这一步极为重要,“一失足成千古恨”,不想让你的本以后只能“盖泡面”,就打起一万分的精神来操作。

打开工具“H2OUVE”,先管理员运行一下“WDFInst.exe”安裝WDFinst驱动程序,再打开“H2OUVE-W-GUIx64.exe”。

点击软件中的“File” - “Load Runtime”,加载机器的BIOS配置数据。

再点击软件左侧的绿色按钮“Variable”,读取BIOS的设置,准备进行修改

最后的修改

最后,我们只需要在软件中找到需要修改的坐标将其内容修改即可。

如何寻找?

我们参照4.6.4记录的“VarOffset(偏移值)”和它所在大项的名称,换成它在软件中的位置。

例如:

CFG Lock —— CpuSetup —— 0x3c = 左侧栏命名为“CpuSetup”的项目,横为30,竖为0C的方块。
BIOS Lock —— PchSetup —— 0x17 = 左侧栏命名为“PchSetup”的项目,横为10,竖为07的方块。
TPM 1.2 Deactivate —— MeSetupStorage —— 0x6 = 左侧栏命名为“MeSetupStorage”的项目,横为00,竖为06的方块。
TPM/TCM —— SystemConfig —— 0xF0 = 左侧栏命名为“SystemConfig”的项目,横为F0,竖为00的方块。
Current TPM Device —— SystemConfig —— 0xE3 = 左侧栏命名为“SystemConfig”的项目,横为E0,竖为03的方块。
TPM Availability —— SystemConfig —— 0x9D = 左侧栏命名为“SystemConfig”的项目,横为90,竖为0D的方块。
TPM Operation —— SystemConfig —— 0x62 = 左侧栏命名为“SystemConfig”的项目,横为60,竖为02的方块。

PS:SystemConfig = Setup,如果左侧栏找不到命名为“SystemConfig”的项目,那就修改“Setup”项目中的对应坐标内容。

修改成什么?

例图为本文开头提及的实操设备,其它型号、不同固件版本可能会有所出入,请参照实际情况谨慎操作。

到这就全部改完了!检查一遍没什么问题就点击软件上的“File” - “Save”,把我们刚刚修改的都给它保存咯。

最后直接重启电脑,一起见证奇迹。

涅槃重生Windows 11。

尾声

结束了,其实别看字这么多,操作起来要不了几分钟,只是苦了我码这保姆级教程几个钟头...

对了,理论上所有版本的Insyde BIOS均可使用此方法修改隐蔽参数的。

好了,希望大家都能成功,不过折腾这个好像也只能成功...

Article:被软屏蔽TPM的华为本,完美开启TPM涅槃重生Windows 11的教程
Author:深海
转载请注明出处:https://ajax.win/archives/137
知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

评论

  1. SanWan
    Windows Edge
    2月前
    2022-3-12 11:42:35

    能分享一下BIOS吗 现在官网下载的BIOS好像加密了解压不了 我也是magicbook14的....

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇