众所周知,台式机电脑可以通过调整BIOS设置的Power State After Power Off来实现插电自动开机。但是大部分笔记本都没有类似的选项,无法做到插电自启。
实际上大多数笔记本BIOS厂商提供了State After G3的功能,他和台式机Power State After Power Off功能是一样的。在G3电源断开之后默认进入S5关机状态。只要我们找到这个选项,将其改为S0,即可做到让笔记不插电自动开机。
但是这些设置我们找不到,他们实际上是被OEM给隐藏了,只要我们想办法找到这些设置存储的位置,通过UEFI协议再对其进行修改,不用更改BIOS固件就可以直接修改这些隐藏的参数。
难点在于如何确定这些参数所对应的位置。因为每台电脑的BIOS都不尽相同,所以我们要提取BIOS并对其拆包、翻译,从而找到这个参数所在的位置。
1.使用万能备份工具BIOS Backup TooKit来导出本机的BIOS固件到文件
*** 记得用管理员身份运行哦!(只要管理员的权限才能加载WinRing0驱动对BIOS FLASH进行读取)
识别不出来BIOS型号,就随便选一个最大的大小开始读取(反正后边是0x00都可以被忽略)
读取完之后将文件保存
2.使用UEFITool工具来对EFI BIOS进行解包。
Step:File->open image file[选择之前保存的文件]
打开之后:
我们查找各个GUID里含有zip(Lzma字样)的段,这个段包含了BIOS Setup Utility(就是俗说的BIOS设置界面)的Dxe可执行文件。
我们最终要对他进行UEFI语言提取和翻译,来确定要修改的参数的对应地址。
我们在PE32 image 段上点击右键->Extract as is...
选择保存的文件为:
3.使用IFR Extractor工具来翻译取刚刚获取的Sct(Dxe)文件中的配置信息
选择sct(Dxe)之后,点击Extract开始解压
将得到翻译后的TXT文件:
用记事本或是Vs code打开
在VS code中Ctrl+f(搜索关键词:State After)
记住其地址和相应的值。(别搞错了!否则电脑就废了!因为笔记本的BIOS参数是存储在主板Flash的NVRAM区里,不是台式机那种断电就丢的CMOS里,断电数据不丢失!无法放跳线恢复!)
4.使用 开源软件
https://github.com/datasone/grub-mod-setup_var
接着是点击下载文件
将该可执行文件下载到U盘中,在此之前要将U盘进行格式化(文件系统要选择FAT32)
格式化后的结果:
将efi文件移动到U盘中
PS:要进行以下改动,(新建文件夹,并且对efi文件进行改名操作)
5.引导efi文件
(1)首先,我们要进行BIOS界面,secure boot-》disabled【这样我们才能引导一个没有签名的镜像】
(2)接着,我们就需要用启动菜单引导U盘
(3)输入setup_var 0x8e6 0
(4)结果:
6.将之前改的secure boot 改为enable
PS:这样是为了防止别的没有经过签名的文件篡改本机系统的数据,为了安全吧!
7.接着,我们就可以尝试关机,插上电源来测试是否插电自启了!
8.祝你好运!