本文根据 解锁4/6/8代Intel处理器ThinkPad的BIOS高级选单, 解除WWAN和Wi-Fi白名单_霧雨魔理沙的博客-CSDN博客_uefipatch 整理而来。
声明
本教程在 T440、ThinkPad X1 Carbon 6th、ThinkPad X1 Yoga 3rd 上测试成功,运行稳定,但不代表该方法适配任何一台搭载 4/6/8 代处理器的 ThinkPad。本教程涉及硬件操作,操作不当可能存在损坏计算机硬件的风险,请自行考虑是否破解,笔者不对任何因本教程造成的损失负责。
思路
使用 CH341A
编程器和免拆夹具读取并写入主板 BIOS 芯片,使用 UEFIPatch
工具破解和修改导出的 BIOS 文件,进而实现 BIOS 解锁。
概要
- 购置并组装 CH341A 编程器和免拆夹具;
- 配置正常运行并具有完整 Python3 环境的 Linux/macOS 环境(本教程以 Ubuntu 18.04 LTS 为例);
- 安装
flashrom
、GHex
,下载UEFIPatch
和ThinkPad UEFI Sign
(4 代 CPU 机器必须); - 从断电的机器主板上读取 BIOS 芯片中的数据;
- 使用 UEFIPatch 工具和破解文件解锁 BIOS 高级设置并解除白名单;
- 使用十六进制编辑器修改 BIOS 文件中的一处内容,使其可以正常启动;
- (仅限 4 代 CPU 的 ThinkPad)使用 ThinkPad UEFI Sign 签名修改后的 BIOS 文件;
- 使用 flashrom 和 CH341A 编程器将解锁、签名后的 BIOS 文件刷回机器。
准备工作
准备硬件
- 淘宝购买 CH341A 编程器和免拆夹具;
- 通过拆解、图纸、点位图、询问主板维修奸商以及观看主板维修教程等方式确定你的机器主板上 BIOS 芯片所在位置;
- 确保有另外一台运行 Linux 的 PC 或 Mac。
准备软件
下载所需。地址如下:
注:若你的 ThinkPad 搭载了4/6/8 代 Intel 处理器,则对应下载文件名开头为 xx40/xx60/xx80 的 txt 文件。
过程
硬件准备
- 组装编程器:将免拆夹具的排线扣到随包装附送的 8Pin 小板上。令夹具排线的红线和编程器扣具锁止杆处于同一侧,将小板安装到扣具的下半部分(也就是编程器 PCB 背面的 “BIOS 25 SPI” 对应的位置)。
- 拆机,并断开 ThinkPad 的电池排线或拆下电池,定位主板上的 BIOS 芯片位置,将免拆夹具稳妥地固定在 BIOS 芯片上。从多角度检查夹具的固定情况,确保夹具和芯片的八个针脚之间接触良好。
注意:免拆夹具连接线的红线位置和芯片表面的圆形凹槽位置必须保持一致,否则无法正常读取并可能损坏芯片。
软件准备
- 从 USB 闪存盘启动 Ubuntu 18.04 LTS,进入桌面并连接网络。将预先下载好的
UEFIPatch
单程序(不包含任何 txt)、自己机器处理器对应的破解文件和ThinkPad UEFI Sign
文件夹移动到桌面; - 安装
flashrom
和GHex
; - 如果你的机器是 4 代 Intel CPU,还需要在 BIOS 修改完成后对其重新签名。签名工具 ThinkPad UEFI Sign 需要完整的 Python3 环境和依赖 PyCryptodome(Ubuntu 18.04 LTS 内建的 Python3 的 pip 工作不正常,需要执行
sudo apt-get install python3-pip
先对其更新),执行pip3 install pycryptodome
安装依赖的 PyCryptodome。 - 自定义破解文件:使用文件编辑器打开与你的机器相匹配的 BIOS 破解文件(txt),你可以通过在某个破解命令前加上
#
将它注释掉。以笔者为例,由于笔者的 X1 Yoga Gen3 未搭载独立显卡,故笔者将破解文件中关于iGPU
的部分全部注释掉了。
转储、修补、刷写
备份原有的 BIOS 数据
在确保夹具连接良好后,将 CH341A 编程器本体和运行 Ubuntu 的计算机连接。在终端窗口中输入命令:
1 2 |
cd Desktop sudo flashrom -p ch341a_spi -r bios1.img |
若执行命令后提示 No Chip Found
, 请在将编程器拔下计算机后调整免拆夹具。
若程序正确识别了芯片,在等待大约三分钟后数据备份将会完成,此时备份出的文件名为 bios1.img
,位于桌面上。为确保备份出的文件没有任何错误,应重复备份一次,并且比较两次备份出的文件是否有差异。执行下列命令:
<pre>sudo flashrom -p ch341a_spi -r bios2.img</pre>
在第二次备份完成后,键入下列命令比较两个文件。若无任何输出则说明文件一致,备份成功:
<pre>diff bios1.img bios2.img</pre>
若提示前后两次备份的文件不同,则重新连接编程器本体,并重复整个备份过程,直到先后两次备份出的文件完全一致为止。
拔出编程器本体,并删除桌面上的 bios2.img
,妥善备份 bios1.img
,准备破解导出的 BIOS 文件。
注意:备份所得的 BIOS 文件极为重要,请将其从桌面上复制到另一个存储内妥善保存,它是挽救一切操作失误的唯一保障!
破解导出的 BIOS 文件
将桌面上的 UEFIPatch
文件拖入到终端窗口内,紧随其后键入 bios1.img [你需要使用的破解文件的文件名].txt -o bios_patched.img
,回车执行。提示成功后,桌面上将会出现新文件 bios_patched.img
。这就是解除了白名单并解锁了高级设置的 BIOS 文件。
使用 GHex 修改 BIOS 文件
启动 GHex,打开 bios_patched.img
,将 4C 4E 56 42 42 53 45 43 FB
替换为 4C 4E 56 42 42 53 45 43 FF
,保存。
签名 BIOS 文件
如你的机器不幸搭载的是 Intel 四代处理器,或刷入未经签名的 BIOS 文件后无法启动,请执行这些步骤:
- 将
bios_patched.img
移动到ThinkPad UEFI Sign
文件夹中; - 在终端中进入到
ThinkPad UEFI Sign
文件夹中,再执行sign.py bios_patched.img -o bios_patched.img
; - 提示签名成功后,将文件重新移动到桌面。
刷入新的 BIOS 文件
将免拆夹具稳妥地固定在 BIOS 芯片上,从多角度检查夹具的固定情况,确保夹具和芯片的八个针脚之间接触良好。将编程器本体插入 USB 接口内。
注意:免拆夹具连接线的红线位置和芯片表面的圆形凹槽位置必须保持一致,否则无法正常读取并可能损坏芯片。
在终端中执行 sudo flashrom -p ch341a_spi -w bios_patched.img
,待刷入成功后,先将编程器本体拔出,再将夹具从 BIOS 芯片上卸下。
重新组装 ThinkPad,开机测试,破解完成。