解锁4/6/8代Intel处理器ThinkPad的BIOS高级选单, 解除WWAN和Wi-Fi白名单

解锁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

  1. 购置并组装 CH341A 编程器和免拆夹具
  2. 配置正常运行并具有完整 Python3 环境的 Linux/macOS环境 (本教程以Ubuntu 18.04 LTS 为例)
  3. 安装 flashrom, GHex, 下载 UEFIPatchThinkPad UEFI Sign (4代U机器必须)
  4. 从断电的机器主板上读取 BIOS 芯片中的数据
  5. 使用 UEFIPatch 工具和破解文件解锁 BIOS 高级选单并移除白名单
  6. 使用十六进制编辑器修改 BIOS 文件中的一处内容, 使其可以正常启动
  7. (仅限4代U的ThinkPad) 使用 ThinkPad UEFI Sign 签名修改后的 BIOS 文件
  8. 使用 flashromCH341A 编程器将解锁, 签名后的 BIOS 文件刷回机器


Preparations

Hardware Preparations

  1. 淘宝购买 CH341A 编程器和免拆夹具: CH341A 淘宝搜索
  2. 通过拆解, 图纸, 点位图, 询问主板维修奸商, 观看主板维修教程等方式确定你的机器主板上BIOS所在位置
  3. 确保有另外一台运行Linux, 可以运行Linux 的 PC 或 Mac

Software Preparations

  1. 基本的Linux命令行操作常识
  2. 下载 UEFIPatch 和 相应的 BIOS 破解文件, 下载地址如下:
    • UEFIPatch
    • 破解文件
    • ThinkPad UEFI Sign
      注: 若你的 ThinkPad 搭载了4/6/8 代 Intel 处理器, 则对应下载文件名开头为xx40/xx60/xx80的txt文件.


Procedures

Hardware Preparation Procedures

  1. 组装编程器: 将免拆夹具的排线扣到随包装附送的 8pin 小板上. 令夹具排线的红线和编程器扣具锁止杆处于同一侧, 将小板安装到扣具的下半部分, 也就是编程器 PCB 背面的 “BIOS 25 SPI” 对应的位置.

  2. 拆机, 并 断开 ThinkPad 的电池排线或拆下电池, 定位主板上的 BIOS 芯片位置, 将免拆夹具稳妥地固定在BIOS芯片上. 从多角度检查夹具的固定情况, 确保夹具和芯片的八个针脚之间接触良好.
    注意: 免拆夹具连接线的红线位置和芯片表面的圆形凹槽位置必须保持一致, 否则无法正常读取并可能损坏芯片.


Software Preparation Procedures

  1. 从 USB 闪存盘启动 Ubuntu 18.04 LTS, 进入桌面并连接网络. 将预先下载好的 UEFIPatch 单程序(不包含任何txt) , 与自己机器处理器对应的破解文件和 ThinkPad UEFI Sign 文件夹移动到桌面.

  1. 换源:

    启动 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
    
    替代原文件内的全部内容, 保存退出.

  1. 更新源并安装 flashromGHex:

    键入命令

     sudo apt update
    

    更新源, 待源更新完毕后依次键入命令:

    sudo apt-get install ghex
    

    sudo apt-get install flashrom
    

    如果你的机器不幸搭载了 Intel 四代处理器, 你还需要在 BIOS 修改完成后对其重新签名. 签名工具 ThinkPad UEFI Sign 需要完整的 Python3 环境和依赖 PyCryptodome:

    ubuntu 18.04 LTS 内建的 Python3pip 工作不正常, 需要先对其更新. 键入命令:

    sudo apt-get install python3-pip 
    

    在更新完毕后, 键入命令

    pip3 install pycryptodome
    

    安装依赖 PyCryptodome.


  1. 自定义破解文件:

    使用文件编辑器打开与你的机器相匹配的BIOS破解文件 (txt), 你可以通过在某个破解命令前加上 “#” 将它注释掉. 以笔者为例, 由于笔者的 X1 Yoga Gen3 未搭载独立显卡, 故笔者将破解文件中关于 iGPU 的部分全部注释掉了.

Dumping & Patching & Flashing

  1. 备份原有的 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文件极为重要, 请将其从桌面上复制到另一个存储器中妥善保存, 它是挽救一切操作失误的唯一保障!


  1. 破解导出的 BIOS 文件:

    将桌面上的 UEFIPatch 文件拖入到终端窗口内, 紧随其后键入
    bios1.img [你需要使用的破解文件的文件名].txt -o bios_patched.img 
    
    提示成功后, 桌面上将会出现新文件 bios_patched.img. 这即为解除了白名单, 并解锁了高级选单的BIOS.

  1. 使用 GHex 修改 BIOS 文件:

    启动此前安装好的 GHex, 打开 bios_patched.img, 将 4C 4E 56 42 42 53 45 43 FB 替换为 4C 4E 56 42 42 53 45 43 FF, 保存.

  1. 签名 BIOS 文件:

    如你的机器不幸搭载了 Intel 四代处理器, 或刷入未经签名的 BIOS 文件后无法启动, 请执行该步骤:

    bios_patched.img 移动到 ThinkPad UEFI Sign 文件夹中.
    在终端中键入命令, 切换到 ThinkPad UEFI Sign 文件夹中, 再键入如下命令:

    sign.py bios_patched.img -o bios_patched.img
    

    提示签名成功后, 将文件重新移动到桌面, 执行下一步.


  1. 刷入新的 BIOS 文件:

    将免拆夹具稳妥地固定在BIOS芯片上. 从多角度检查夹具的固定情况, 确保夹具和芯片的八个针脚之间接触良好, 将编程器本体插入 USB 接口内.
    注意: 免拆夹具连接线的红线位置和芯片表面的圆形凹槽位置必须保持一致, 否则无法正常读取并可能损坏芯片.

    在终端中执行命令:

    sudo flashrom -p ch341a_spi -w bios_patched.img
    

    待刷入成功后, 先将编程器本体拔出, 再将夹具从 BIOS 芯片上卸下. 重新组装 ThinkPad, 开机测试, 破解完成.



References

  • http://paranoid.anal-slavery.com/biosmods/skylake.html
  • https://youtube.com/watch?v=ce7kqUEccUM
  • https://github.com/tylernguyen/x1c6-hackintosh/issues/68
  • https://github.com/thrimbor/thinkpad-uefi-sign
  • https://github.com/LongSoft/UEFITool/releases
  • https://www.cnblogs.com/masbay/p/10887571.html

你可能感兴趣的:(奇技淫巧)