T430改造计划3-破解BIOS并保留BIOS启动图片

使用1vyrain项目破解BIOS并保留BIOS启动图片

在之前的工作中,已经完成了BIOS启动图片的自定义和键盘的改造

接下来就是进行BIOS的破解,启用高级功能& 删除白名单

后续所有涉及到文件的操作省略cdcp过程

请全程插入电源接口并使用电池

准备工作

软件准备

软件URL用途安装方法
IVprephttps://github.com/n4ru/IVprep降级BIOSGit clone
flashromhttps://github.com/flashrom/flashrom读写BIOSpacman
thinkpad-firmware-patcheshttps://github.com/digmorepaka/thinkpad-firmware-patches破解BIOSGit clone
thinkpad-uefi-signhttps://github.com/thrimbor/thinkpad-uefi-sign签名并校验BIOS镜像Git clone
chipsechttps://chipsec.github.io/yay
1vyrainhttps://github.com/n4ru/1vyrain破解BIOS并写入Git clone
Nginxhttps://nginx.org/en/网络服务器-
Pythonhttps://www.python.org/运行软件-

降级部分BIOS至最高可破解版本

T430改造计划2-修改BIOS启动图片中我们将系统升级到了2.81(g1uj48us)

但是最高可破解的版本为2.64,所以需要使用IVprep降级部分BIOS至2.64

Windows中运行downgrade.bat直接进行降级

同时因为是部分刷写,所以不会影响T430改造计划-改造键盘中刷入的EC固件

备份BIOS镜像

使用flashroom读取BIOS,以便进行后续修改

1
flashrom -p internal -r bios_backup.rom --ifd -i bios

破解BIOS并签名

破解BIOS

因为我们只需要修改部分BIOS区域,仅需保留最后的4M,其中包含我们修改的BIOS启动图片和需要修改的部分

1
dd if=bios_backup.rom of=4M.rom bs=1M skip=8

然后修改xx30_patches_v4.txt,开启需要修改的部分

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# AdvancedMenu By leokim |  W530 / T530 / T430 / x230 / T430s / X230t / X131e / L430 / L530
32442D09-1D11-4E27-8AAB-90FE6ACB0489 10 O:02A0:778B1D826D24964E8E103467D56AB1BA 

# PowerManagement2 | 0x194 unlock/OC enable test |
F7731B4C-58A2-4DF4-8980-5645D39ECE58 10 P:44243080fb0175080fbae80f89442430:44243080fb01eb080fbae80f89442430 
F7731B4C-58A2-4DF4-8980-5645D39ECE58 10 P:30488b4338f6000874080fba6c243014:30488b4338f60008eb080fba6c243014 

# LenovoWmaPolicyDxe | WL removal | ripped from dudu2002 | W530 2.76 / T530 2.77 / T430 2.82 / x230 2.77
79E0EDD7-9D1D-4F41-AE1A-F896169E5216 10 P:C8390F0F84:C8390F90E9 
79E0EDD7-9D1D-4F41-AE1A-F896169E5216 10 P:C8390F7516:C8390F7500 
79E0EDD7-9D1D-4F41-AE1A-F896169E5216 10 P:C8394F0474:C8394F04EB 

# PlatformHiiAdvancedDxe | 1066 fix | \x | xx30 thinkpads | change 1066 to another auto to stop bricking
CFEF94C4-4167-466A-8893-8779459DFA86 10 P:090E680101010100000000000000:090E9C0001010000000000000000

使用firmware-patches工具修改4M.rom

1
UEFIPatch 4M.rom xx30_patches_v4.txt -o patched_fig4M.rom

此时我们已经得到了破解修改后的patched_4M.rom

签名BIOS

ThinkPad会在每次开机时校验BIOS,如果不进行签名校验修补,会滴滴作响

使用uefi-signsign.py工具签名patched_4M.rom

1
python sign.py patched_fig4M.rom signed_fig4M.rom

使用校验工具verify.py工具校验signed_4M.rom

1
python verify.py signed_fig4M.rom

刷入BIOS

signed_4M.rom移动至Nginx网站目录,确保可以进行访问

1
wget http://localhost/signed_4M.rom

打开1vyrain的目录,需要修改start.sh

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
# Replace L18
if ! ping -q -c 1 -W 1 8.8.8.8 >/dev/null; then echo -e "\e[1;32mWaiting 10 seconds for Network...\e[0m" && sleep 10; fi
# To
if ! ping -q -c 1 -W 1 223.223.223.223 >/dev/null; then echo -e "\e[1;32mWaiting 10 seconds for Network...\e[0m" && sleep 10; fi

# Replace L31
flashsize=$(/root/flashrom/flashrom -p internal:laptop=force_I_want_a_brick --ifd -i bios -N -r /tmp/backup.rom > /dev/null && du /tmp/backup.rom | sed "s/[^0-9]//g")
# To
flashsize=$(flashrom -p internal:laptop=force_I_want_a_brick --ifd -i bios -N -r /tmp/backup.rom > /dev/null && du /tmp/backup.rom | sed "s/[^0-9]//g")

# Replace L62
# To

# Replace L117
/root/flashrom/flashrom -p internal:laptop=force_I_want_a_brick -w /root/bios/rom.temp --ifd -i bios -N
# To
flashrom -p internal:laptop=force_I_want_a_brick -w /root/bios/rom.temp --ifd -i bios -N

# Before L87
echo -e "\e[1;32mPlease enter a choice:\e[0m"
# Add
mkdir /root/bios

root权限运行start.sh

1
2
chmod +x start.sh
sudo ./start.sh

按照提示,在选择模式的时候选择2使用自定义镜像,输入

1
http://localhost/signed_4M.rom

在提示按下回车的时候按下回车

此时屏幕会息屏,类似于睡眠模式

按下电源按钮即可

等待脚本自动刷入BIOS,此时千万不要断开电源/关闭电脑

等待自动重启即可

此时可以安装非白名单设备例如AX210等,并可以在BIOS菜单中看到增加的功能

Enjoy~

使用 Hugo 构建
主题 StackJimmy 设计,DoubleCat 修改
© Copyright Licensed under CC BY-NC-SA 4.0