解锁4/6/8代Intel处理器ThinkPad的BIOS高级选单, 解除WWAN和Wi-Fi白名单教程
Disclaimer
本教程在 T440
, ThinkPad X1 Carbon 6th
, ThinkPad X1 Yoga 3rd
上测试成功, 运行稳定, 但不代表该方法适配任何一台搭载4/6/8代处理器的 ThinkPad. 本教程涉及硬件操作, 操作不当可能存在损坏计算机硬件的风险, 请自行考虑是否破解, 笔者不对任何因本教程造成的损失负责.
Motivation
解锁搭载4/6/8代 Intel 处理器 ThinkPad 的 BIOS 高级选单 (Advanced Settings), 并完全解除WWAN和Wi-Fi白名单.
Idea
使用 CH341A
编程器和免拆夹具读取并写入主板BIOS芯片, 使用 UEFIPatch
工具破解和修改导出的 BIOS 文件, 进而实现 BIOS 解锁.
Outline
- 购置并组装
CH341A
编程器和免拆夹具 - 配置正常运行并具有完整
Python3
环境的 Linux/macOS环境 (本教程以Ubuntu 18.04 LTS 为例) - 安装
flashrom
,GHex
, 下载UEFIPatch
和ThinkPad UEFI Sign
(4代U机器必须) - 从断电的机器主板上读取
BIOS
芯片中的数据 - 使用 UEFIPatch 工具和破解文件解锁 BIOS 高级选单并移除白名单
- 使用十六进制编辑器修改 BIOS 文件中的一处内容, 使其可以正常启动
- (仅限4代U的ThinkPad) 使用 ThinkPad UEFI Sign 签名修改后的 BIOS 文件
- 使用
flashrom
和CH341A
编程器将解锁, 签名后的 BIOS 文件刷回机器
Preparations
Hardware Preparations
- 淘宝购买
CH341A
编程器和免拆夹具: CH341A 淘宝搜索 - 通过拆解, 图纸, 点位图, 询问主板维修奸商, 观看主板维修教程等方式确定你的机器主板上BIOS所在位置
- 确保有另外一台运行Linux, 可以运行Linux 的 PC 或 Mac
Software Preparations
- 基本的Linux命令行操作常识
- 下载
UEFIPatch
和 相应的 BIOS 破解文件, 下载地址如下:
- UEFIPatch
- 破解文件
- ThinkPad UEFI Sign注: 若你的 ThinkPad 搭载了4/6/8 代 Intel 处理器, 则对应下载文件名开头为xx40/xx60/xx80的txt文件.
Procedures
Hardware Preparation Procedures
- 组装编程器: 将免拆夹具的排线扣到随包装附送的
8Pin
小板上. 令夹具排线的红线和编程器扣具锁止杆处于同一侧, 将小板安装到扣具的下半部分, 也就是编程器 PCB 背面的 “BIOS 25 SPI” 对应的位置. - 拆机, 并 断开 ThinkPad 的电池排线或拆下电池, 定位主板上的 BIOS 芯片位置, 将免拆夹具稳妥地固定在BIOS芯片上. 从多角度检查夹具的固定情况, 确保夹具和芯片的八个针脚之间接触良好.
注意: 免拆夹具连接线的红线位置和芯片表面的圆形凹槽位置必须保持一致, 否则无法正常读取并可能损坏芯片.
Software Preparation Procedures
- 从 USB 闪存盘启动 Ubuntu 18.04 LTS, 进入桌面并连接网络. 将预先下载好的
UEFIPatch
单程序(不包含任何txt) , 与自己机器处理器对应的破解文件和ThinkPad UEFI Sign
文件夹移动到桌面.
- 换源:
启动 Terminal, 键入命令:
sudo chmod 777 /etc/apt/sources.list
sudo gedit /etc/apt/source.list
- 获取
sources.list
的写入权限并调用文档编辑器打开sources.list
.
使用阿里源
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
- 更新源并安装
flashrom
和GHex
:
键入命令
sudo apt update
更新源, 待源更新完毕后依次键入命令:
sudo apt-get install ghex
和
sudo apt-get install flashrom
如果你的机器不幸搭载了 Intel 四代处理器, 你还需要在 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
的部分全部注释掉了.
Dumping & Patching & Flashing
- 备份原有的 BIOS 数据:
在确保夹具连接良好后, 将CH341A
编程器本体和运行 Ubuntu 的计算机连接, 在终端窗口中输入命令:
cd Desktop
sudo flashrom -p ch341a_spi -r bios1.img
若执行命令后提示 “No Chip Found”, 请在 将编程器拔下计算机后 调整免拆夹具.
若程序正确识别了芯片, 在等待大约三分钟后数据备份将会完成, 此时备份出的文件名为 bios1.img
, 位于桌面上. 为了确保备份出的文件没有任何错误, 我们需要重复备份一次, 并且比较先后两次备份出的文件是否有差异. 执行下列命令:
sudo flashrom -p ch341a_spi -r bios2.img
在第二次备份完成后, 键入下列命令比较两个文件, 若无任何输出, 则说明文件一致, 备份成功:
diff bios1.img bios2.img
若提示前后两次备份的文件不同, 则重新连接编程器本体, 并重复整个备份过程, 直到先后两次备份出的文件完全一致为止.
拔出编程器本体, 并删除桌面上的 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, 开机测试, 破解完成.