被软屏蔽TPM的华为本,完美开启TPM涅槃重生Windows 11的教程
本文最后更新于 1025 天前,其中的信息可能已经有所发展或是发生改变。

前言

这篇文章主要针对华为部分在硬件方面拥有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://58.qa/archives/137
知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

评论

  1. Eason
    Android Chrome
    3 年前
    2021-12-25 15:19:38

    型号一样是不是可以跳过看偏移值的那一项

  2. eigenhermit
    Windows Chrome
    已编辑
    3 年前
    2021-12-16 22:08:15

    多谢楼主的分享!另外,请问如果修改错误会导致无法开机等严重过后吗?有办法在修改之前备份,以及在失败之后恢复吗?提前谢谢了!

  3. 小白
    Windows Chrome
    3 年前
    2021-11-12 14:05:45

    H2OUVE修改完后保存不了是什么原因啊

    • ChrisC
      小白
      Windows Edge
      3 年前
      2021-11-12 20:21:30

      我的是能保存,但是重启进入bios没变化

      • 小白
        ChrisC
        Windows Chrome
        3 年前
        2021-11-12 20:33:50

        肯定有哪个步骤没做对,等大神回复吧

      • 小白
        ChrisC
        Windows Chrome
        3 年前
        2021-11-13 15:12:49

        我搞定了 已经升级win11了

        • 南街北栀
          小白
          Windows Edge
          2 年前
          2022-12-22 15:02:38

          你是怎么搞定的?我弄完重启没反应,重新查看发现数值又变回原来的了

    • 博主
      小白
      Windows Yandex
      3 年前
      2021-11-17 15:30:45

      抱歉啊~
      最近实在太忙,没能够及时回复你的issues,您的问题具体体现在哪呢?
      这边看您最新更楼内容是已经解决了,您或许也可以简述一下您的解决方法,方便我们及时更进文章内容,感谢。

  4. ChrisC
    Windows Edge
    已编辑
    3 年前
    2021-11-06 9:24:35

    搜了一圈就您这个解释的很明白
    但是
    用H2OUVE改了save之后电脑没变化。。。在bios里面改动之后,win下用load runtime出来的参数并没有相应改变。
    不知道怎么回事

    • 博主
      ChrisC
      Windows Yandex
      3 年前
      2021-11-17 15:37:41

      抱歉啊~
      最近实在太忙,没能够及时回复你的issues。
      针对您所述的问题,我想我需要先询问您几个问题:
      您是否按照文章4.7.1所述正确的去运行“H2OUVE”这个软件的呢?
      您通过软件save的时候有提示成功或与其相似的信息吗?
      现在是否解决了呢?或许您可以通过私密评论的方式留下您的联系方式,让我协助您解决这个问题。

      • ChrisC
        深海
        Windows Edge
        已编辑
        3 年前
        2021-11-18 14:59:04

        非常感谢您回复!
        H2OUVE软件运行正常,可以保存。没有提示,但再次load runtime可以看到上次的修改。但是电脑并没有变化。
        为了测试,我进入bios将摄像头关掉,进入windows后用h2ouve来load runtime,发现摄像头对应的那个偏移值并没有变化,但是之前用h2ouve做出的更改依然还在。也就是说似乎h2ouve修改的bios和电脑的bios似乎并不是同一个东西。
        另外,h2ouve软件中,variables功能正常,但切换到setup就会报错(虽然貌似并不需要用到setup)。
        PS
        其实我不是升级win11,是华为matebook 16,amd处理器+集显,想要修改的是iGPU、UMA buffer size(共享显存容量)两个选项,在h2ouve中找到了并修改了,只是显存并没有变化。
        b站上有个视频是acer的同款bios解锁后,修改上述两个选项就能更改显存容量。知乎上也有yoga 14s修改上述两个选项来修改显存的例子,所以应该修改上述两个选项这件事本身应该是没错的。
        不过您提到的BIOS Lock和CFG Lock两个选项我没有更改,因为找不到这两项,可能是因为amd的原因,并没有这两项?其中BIOS Lock所在的Pch Setup这一项在h2ouve中也没有。
        再次感谢!

  5. 搞笑不起来呀
    Windows Chrome
    3 年前
    2021-10-10 0:58:15

    load image一直加载不出来,等半天了都没用。。。求解救。。。 ̄﹃ ̄

    • 博主
      搞笑不起来呀
      iPhone Safari
      3 年前
      2021-10-10 1:04:08

      额,不是“load image”喔,参照教程4.7.2,是“File” - “Load Runtime”。

      • 夏木
        深海
        Windows Edge
        3 年前
        2021-12-02 22:22:39

        我的load runtime点击没反应

  6. lee
    Windows Edge
    3 年前
    2021-10-07 10:46:50

    这样修改开机会小概率出现 no boot device

    • 博主
      lee
      iPhone Safari
      3 年前
      2021-10-07 17:35:14

      没有碰到你说的问题,按照教程修改只是将BIOS中TPM相关的选项开启,理论来说和“no boot device”错误没有直接的联系,有可能是您修改错误导致的。

  7. JayShum
    Windows Chrome
    3 年前
    2021-10-07 4:22:15

    烦请标明出处

    • 博主
      JayShum
      iPhone Safari
      已编辑
      3 年前
      2021-10-07 17:42:18

      教程内所有文字、图片、视频均为原创。
      其中有关Insyde BIOS隐藏参数的修改有参考自百度经验《如何解锁Insyde的BIOS隐藏设置》:https://jingyan.baidu.com/article/63f236286163d30209ab3d63.html

      • JayShum
        深海
        Windows Chrome
        3 年前
        2021-10-07 17:51:48

        这原创跟我写的贴子一摸一样我就觉得很神奇了,从翻译偏好,写作结构,用词喜好,这么雷同也真是一个奇迹。
        https://club.huawei.com/forum.php?mod=viewthread&tid=28415872

        • 博主
          JayShum
          Windows Yandex
          已编辑
          3 年前
          2021-10-07 18:08:24

          哈哈,这么看来是有部分有所相似呢,但是和你的原帖对比,并不一样哈。
          你说的用词喜好和写作结构什么的,可以参考我其它的博文,你应该可以看出就是这样的风格,条条框框的都写的很清楚。

      • JayShum
        深海
        Windows Chrome
        3 年前
        2021-10-07 17:53:07

        没错,什么“TPM支援版本” “TPM可用性”都是我瞎翻译的。

        • 博主
          JayShum
          Windows Yandex
          已编辑
          3 年前
          2021-10-07 18:06:50

          另外你所说的TPM支援版本和TPM可用性,BIOS的编译文件中已经有相关的注释,通过百度翻译后面的结果就是这样的。(文章4.6.2)

  8. 深海未眠
    Windows Edge
    3 年前
    2021-10-06 20:53:45

    谢谢大佬!想了解一下如此修改会影响以后升级bios嘛?以后升级bios是否还需要再次修改?

    • 博主
      深海未眠
      Windows Yandex
      3 年前
      2021-10-06 21:28:59

      不客气!这个修改不会影响BIOS固件以后升级的喔,以后升级BIOS理论来说是会保存我们的修改的,如果被恢复了也没关系,按照这个教程再次修改一遍就好。不过我觉得,待Windows11逐渐普及后,官方那边也应该会推送出新的BIOS固件把TPM的相关选项给放出来的。

      • 深海未眠
        深海
        Windows Edge
        3 年前
        2021-10-06 21:30:37

        了解了,十分感谢!!

  9. 11
    Windows Firefox
    3 年前
    2021-10-06 18:09:47

    H2OUVE LOAD runtime没反应是怎么回事儿

    • 博主
      11
      iPhone Safari
      3 年前
      2021-10-07 17:51:19

      点击“Load Runtime”后软件就开始加载本机BIOS数据了,可能需要等待一段时间,并非无响应。

      • 夏木
        深海
        Windows Edge
        已编辑
        3 年前
        2021-12-02 22:24:05

        等待很久还是没有反应……

  10. 马大壮
    iPhone Safari
    3 年前
    2021-10-03 2:17:08

    大佬硬核!这个tpm非常有需要!留个微信或者支付宝,请您喝杯coffee!

发送评论 编辑评论


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