刷BIOS工具分享(白名单,高级菜单,电源管理
一,BIOS备份
1. 使用第二部分对应版本的fptw。以管理员身份打开命令提示符,去到fptw所在路径,输入命令
fptw64.exe -d bios.bin -bios
其中fptw64.exe是64位系统用的(Windows64目录),32位用Windows目录下的fptw.exe,DOS环境用DOS目录下的fpt.exe。bios.bin是输出bios备份的文件名
2. 使用Universal BIOS Backup ToolKit 2.0
二,刷BIOS工具:Flash Programming Tool
命令,64位Windows
fptw64.exe -f bios.bin -bios
三,BIOS解包打包工具
Phoenixtool 2.6.6(修改白名单必备,具体教程请自行搜索)
四,16进制文件修改器:winhex
五,电源管理补丁,UEFIPatch(pmpatch升级版)
如果你只是为了给BIOS打这个补丁,不推荐刷BIOS,clover的kernel PM更安全方便
把bios放在UEFIPatch.exe目录下, 输入命令
uefipatch.exe bios.bin
其中bios.bin为bios文件名
注意,有时UEFIPatch会无法patch官网下载的bios(解压exe得到fd或是rom后缀的文件),至少Z410的BIOS就不行,需要用fptw或者universal bios backup toolkit备份的才行。
六,如果用fpt工具刷时遇到错误
错误代码28
进入DOS环境(很多PE工具都有提供),先运行prr2.exe,然后在用DOS版本的fpt刷。如果还不行可以再试试先运行prr.exe,再用DOS版本fpt刷
错误代码280
使用睡眠bug:先让电脑进入睡眠模式,过几秒后唤醒,再尝试刷。如果还不行,用下面的方法。
以下内容不适合小白
六,falseclock方法
需要Linux环境或OSX环境,因为要运行perl文件,也可以安装bash on ubuntu on windows 10)。在bios-mods有一个专门的帖子讲这个方法,可以不用解锁高级菜单来设置CPU频率,开启AHCI,设置显存等,也可以用于关闭Secure Flash。不过那个帖子提供的grub shell有bug,导致有些机型修改不了nvram的值(具体表现为输入setup_var命令会一直停留在setting offset xxxx to xxxx,需要按Ctrl+Alt+Del重启)。我这个帖子提供一个修复了这个bug的版本,并且简单说一下这个方法。
1. 首先用fptw备份bios,然后用phoenixtool解包bios,在bios文件同一目录下会出现DUMP文件夹,在DUMP文件夹里面找到一个以FE3542FE开头的文件(可能有几个,需要最大的那个),然后在Linux或OSX环境下,打开终端,把找到的FE3542FE开头的文件和parser.pl放在同一目录,输入命令
perl parser.pl ./FE3542FE* > result.txt
打开生成的result.txt,寻找诸如flash, lock, protection,比如我的BIOS
省略很多内容
Select option: 'Me Fw Image Re-Flash' [ VarStore: '0x1ee', QuestionId: '0x109', Help: 'Enable /Disable Me Fw Image Re-Flash function']
Option: 'Disabled' [ Value: '0' Default: 'true' Type: 'int8' ]
Option: 'Enabled' [ Value: '1' Default: 'false' Type: 'int8' ]
┌- Grayout IF:
| Question [ ID: '0x550' ] == 0x01
| Question [ ID: '0x0f' ] == 0x02
| Question [ ID: '0x0e' ] == 0x01
| AND expression
| OR expression
└- END IF Grayout;
Select option: 'BIOS Lock' [ VarStore: '0x4ab', QuestionId: '0x11a', Help: 'Enable/Disable BIOS Lock']
Option: 'Disabled' [ Value: '0' Default: 'false' Type: 'int8' ]
Option: 'Enabled' [ Value: '1' Default: 'true' Type: 'int8' ]
┌- Suppress IF:
| EQ == TRUE
| └- END IF Suppress;
┌- Suppress IF:
| EQ == TRUE
| └- END IF Suppress;
省略很多内容
可以看到,Me Fw Image Re-Flash(ME Firmware Re-flash)默认是Disabled关闭的,BIOS Lock(BIOS锁定)是打开的。
当然可能有些BIOS名称不同,比如下面SPI,TXE什么的(这两个其实我不懂是什么意思),
0x21067 Setting: LPSS SPI Support, Variable: 0x163
0x2108D Option: Disabled, Value: 0x0
0x210A9 Option: Enabled, Value: 0x1
0x210C5 End of Options
0x2179D Setting: BIOS Read/Write Protection, Variable: 0x1FC
0x217C3 Option: Enabled, Value: 0x1
0x217DF Option: Disabled, Value: 0x0 (default)
0x217FB End of Options
0x21A25 Setting: TXE HMRFPO , Variable: 0x170
0x21A4B Option: Disabled, Value: 0x0 (default)
0x21A67 Option: Enabled, Value: 0x1
0x21A83 End of Options
2. 这些值是储存在nvram的,用falseclock的方法可以改这些值,于是你的BIOS就可以重刷了。
新建一个Fat32分区,把下面的bootx64.efi放进新建分区的EFI/Boot文件夹下,然后用easyuefi新建一个一次性启动项来启动这个bootx64.efi,重启。
比如我的BIOS需要开启Me Fw Image Re-Flash, 地址(看VarStore)为0x1ee,需要改为Enabled(后面的Value: '1'),
同时需要关闭BIOS Lock,地址为0x4ab,需要改为Disabled(Value: '0'),
所以依次输入命令
以下命令只适用于Z410的BIOS!请从你自己的result.txt中找到正确的地址和值!直接复制执行会使你的电脑变砖!
setup_var 0x1ee 0x1
setup_var 0x4ab 0x0
然后输入reboot重启。进入Windows后就可以用睡眠bug刷bios了。
用以上方法,楼主备份了自己的bios,给bios打上了电源管理补丁,移除了白名单,所以楼主的Clover不用勾选Kernel PM,并且换上了苹果免驱的网卡(其实这个才是最重要的)。
https://kirainmoe.com/blog/post/hasee-laptop-change-uefi-bios-logo/