黑苹果解锁cfg lock新姿势----通用教程。可修改bios隐藏设置。
青空栀浅5
编辑于 2021年04月26日 03:07
收录于文集
共1篇

教程所使用的工具。

注意:本帖不针对小白。故将读者设定为有一定基础的人。

链接: https://pan.baidu.com/s/1H3T9YVf4YpGy4COr9T30tA 提取码: j55e 

至于如何导出txt文件,请自行百度。

一、教程开始前解释一些概念,并说一下,我为什么会找到这个工具。

RU.efi工具好像只适用于insyde bios。如果你的bios不是这个类型,建议不要折腾这个啦

代码块
JavaScript
自动换行
复制代码
0x1DE19 	VarStore: VarStoreId: 0x1 [EC87D643-EBA4-4BB5-A1E5-3F3E36B20DA9], Size: 0x7E3, Name: Setup {24 1C 43 D6 87 EC A4 EB B5 4B A1 E5 3F 3E 36 B2 0D A9 01 00 E3 07 53 65 74 75 70 00}
复制成功

上面的信息是导出txt文件中的,在文件的开头。

VarStore: VarStoreId: 0x1->可以理解为: 变量寄存器的ID。几乎bios中所有的设置都可以在相应的寄存器中找到对应的设置。

Name:Setup  -> 可以理解为:变量寄存器的名字。 网上其他的教程基本都是使用这个工具:grub-mod-setup_var。

[EC87D643-EBA4-4BB5-A1E5-3F3E36B20DA9]  ->  变量存放的guid位置

该工具默认已经锁定修改的变量地址或VarStore:Name。2021年3月14日。该工具已增加新的命令,setup_var_cv。具体教程去github就可以啦。

这个工具我阅读基本的源码,setup_var 、 setup_var2、setup_var_3等这个几个指令是锁定了guid地址。在源码中,他是定义为常量的。导致只能修改寄存器名字为:Name:Setup 这个寄存器。

在新的主板中,早已经有好多主板不将cfg lock放在Setup这个寄存器中。

我的七彩虹B460i 白色款的主板就是。

在此之中,我在想为什么不知道灵活一点,通过guid来修改变量?

于是我在github上找到了对应的工具。本来是想直接写一个的,奈何C语言太渣了。(蒟蒻一枚)。

然后我就在github上面搜索setup_var 于是………,我找到了以下工具。

先放工具地址:https://github.com/XDleader555/grub_setup_var/releases 

这是grub-mod-setup_var的旧版工具。

前面已经度盘把所用资料上传。

七彩虹bios可以去官网下载。

注:这个github地址上有对应的使用说明。

咳咳,接下来是开始实操的时候了。

本教程以七彩虹B460i白色版为例子。将通过下面的例子让你们理解上面的概念。

二、导出txt,找到cfg lock 

代码块
JavaScript
自动换行
复制代码
Form: View/Configure CPU Lock Options, FormId: 0x2747 {01 86 47 27 DA 03}
0x23613 		One Of: CFG Lock, VarStoreInfo (VarOffset/VarName): 0x3E, VarStore: 0x11, QuestionId: 0x1BD, Size: 1, Min: 0x0, Max 0x1, Step: 0x0 {05 91 E5 05 E6 05 BD 01 11 00 3E 00 10 10 00 01 00}
复制成功

可以看到我的cfg lock bios的变量是0x3E。其中有一个特别重要的一个数据。

得到上面的内容,我们就可以去导出文件开头的文本数据,就可以找到对应的Name啦。。(这个图在文章的开头。)

如果使用新版grub-mod-setup_var工具,修改的是Setup寄存器上面的变量。要改的变量不在Setup寄存器里,修改后也没有效果。

我们使用前面解释的概念:

varStore:0x11。 这个是寄存器的ID。 观察下图:

可以理解为:0x3E 的变量是在寄存器CpuSetup上的

这就是新版的Grub-mod-setup-var 工具修改后无效的原因。你可以去验证一下:使用这个工具,去efi修改变量,使用它指令,或者它后面新增的指令也可。

setup_var  变量地址

它会打印对应的guid地址,你可以对比一下guid地址是否一致,或者也可以对比打印的Name。

最后,把efi放入oc引导中,启动。运行工具。解锁七彩虹B460i   白色版的cfg lock 可以使用以下指令。

代码块
JavaScript
自动换行
复制代码
setup_var CpuSetup 0x3E 00
复制成功

其他bios的设置也可以通过导出txt找到对应的变量位置的地址来修改。

比如:从bios屏蔽笔记本独显等等用途。

最后,感谢以下三位大佬开发的工具。

WoefulDerelict Llewelyn Trahaearn

XDleader555 Andrew Miyaguchi

KA2107 Keshav A.

开发的工具。