在之前的工作中,已经完成了BIOS启动图片的自定义和键盘的改造
接下来就是进行BIOS的破解,启用高级功能& 删除白名单
后续所有涉及到文件的操作省略cd和cp过程
请全程插入电源接口并使用电池
准备工作
软件准备
降级部分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-sign的sign.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~