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
マザーボードBIOSチップをch341Aのプログラマとアンマウント治具を用いる読み取り、書き込み、UEFIPatchのツールを用いて導出BIOSファイルを解読、修正し、さらにBIOSロック解除を実現する.
Outline
  • CH341Aプログラマと取り外し不要治具
  • を購入し、組み立てる.
  • 正常に動作し、完全なPython3環境を持つLinux/macOS環境(このチュートリアルではUbuntu 18.04 LTSを例に)
  • を構成します.
  • インストールflashrom,GHex,ダウンロードUEFIPatchThinkPad UEFI Sign(4世代Uマシン必須)
  • 電源が切れるマザーボードからBIOSチップのデータ
  • を読み出す.
  • UEFIPatchツールおよび解読ファイルを使用してBIOSプレミアムオプションをロック解除し、ホワイトリスト
  • を削除する
  • 16進数エディタを使用してBIOSファイルの内容を変更し、
  • を正常に起動できるようにします.
  • (4世代UのみのThinkPad)ThinkPad UEFI Sign署名を使用して修正するBIOSファイル
  • .
  • flashromCH341Aのプログラマを使用してロックを解除し、署名後のBIOSファイルをマシン
  • に戻す.
    Preparations
    Hardware Preparations
  • 淘宝购买CH341A编程器和免拆夹具:CH 341 A淘宝搜索
  • 解体、図面、ポイントマップ、マザーボードの修理業者に問い合わせ、マザーボードの修理チュートリアルを見るなどして、あなたのマシンのマザーボード上のBIOSの位置
  • を確定します.
  • は、Linuxを実行するPCまたはMac
  • を実行できる別のLinuxを確保する.
    Software Preparations
  • 基本的なLinuxコマンドライン操作常識
  • UEFIPatchと対応するBIOS解読ファイルをダウンロードし、ダウンロードアドレスは以下の通りである.
  • UEFIPatch
  • ファイルを解読
  • ThinkPad UEFI Sign注:ThinkPadに4/6/8世代Intelプロセッサが搭載されている場合は、ダウンロードファイル名の先頭がxx 40/xx 60/xx 80のtxtファイルに対応する.


  • Procedures
    Hardware Preparation Procedures
  • 組付プログラマ:取り外し不要治具の配線を包装に付随8pin小板に掛ける.治具の配線の赤線とプログラマブルファスナーロックレバーとを同一側にする、小板をファスナーの下半分、すなわちプログラマPCB裏面の「BIOS 25 SPI」に対応する位置に取り付ける.
  • は機械を分解する、ThinkPadの電池配線を切断したり、電池を取り外したりして、マザーボード上のBIOSチップの位置を特定する、取り外し不要治具をBIOSチップに確実に固定する.多角度から治具の固定状況を検査する、治具とチップの8つのピンの接触が良好であることを確保する.注意:取り外し不要治具の接続線の赤い線の位置とチップ表面の円形溝の位置は一致しなければならない.そうしないと、正常に読み取れず、チップが破損する可能性がある.

  • 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
    
    を使用して、元のファイル内のすべての内容を置換し、保存終了する.
  • ソースを更新し、flashromGHexをインストール:入力コマンド
     sudo apt update
    
    ソースを更新し、ソースの更新が完了したら順番にコマンドを入力:
    sudo apt-get install ghex
    
    sudo apt-get install flashrom
    
    もしあなたの機械が不幸にもIntel 4世代プロセッサを搭載していたら、BIOSの修正が完了した後に再署名する必要があります.署名ツールThinkPad UEFI Signは完全なPython3環境と依存PyCryptodome:ubuntu 18.04 LTS内に構築されたPython3pipが正常に動作せず、先に更新する必要がある.入力コマンド:
    sudo apt-get install python3-pip 
    
    更新後、入力コマンド
    pip3 install pycryptodome
    
    は依存PyCryptodomeをインストール.
  • カスタム解読ファイル:ファイルエディタを使用して、あなたのマシンに一致するBIOS解読ファイル(txt)を開き、ある解読コマンドの前に「#」を付けて注釈することができます.筆者を例として、筆者のX 1 Yoga Gen 3には独自のグラフィックスカードが搭載されていないため、解読ファイルのiGPUに関する部分をすべて注釈した.

  • Dumping & Patching & Flashing
  • 元のBIOSデータをバックアップする:治具の接続が良好であることを確保した後、CH341Aプログラマ本体とUbuntuを実行するコンピュータを接続し、端末ウィンドウにコマンドを入力:
    cd Desktop
    sudo flashrom -p ch341a_spi -r bios1.img
    
    命令を実行した後に「No Chip Found」と提示したら、プログラマをコンピュータから抜いた後に治具を外す調整してください.プログラムがチップを正しく認識すると、約3分待ってからデータのバックアップが完了する、このときバックアップされたファイル名はbios1.imgで、デスクトップ上に位置する.バックアップされたファイルにエラーがないことを確認するために、一度バックアップを繰り返し、前後2回バックアップされたファイルに違いがあるかどうかを比較する必要があります.次のコマンドを実行します:
    sudo flashrom -p ch341a_spi -r bios2.img 
    
    2 2回目のバックアップが完了した後に、以下のコマンドを入力して2つのファイルを比較して、もしいかなる出力がないならば、ファイルが一致していることを説明して、バックアップは成功します:
    diff bios1.img bios2.img
    
    前後の2回のバックアップのファイルが異なることを提示するならば、再びプログラマ本体を接続して、そして全体のバックアップの過程を再開して、前後の2回のバックアップのファイルが完全に一致するまで.プログラマ本体を抜き、デスクトップ上の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 FB4C 4E 56 42 42 53 45 43 FFに置き換える、保存する.
  • 署名BIOSファイル:あなたのマシンにIntel 4世代プロセッサが不幸にも搭載されているか、署名されていないBIOSファイルにブラシをかけて起動できない場合は、bios_patched.imgThinkPad UEFI Signフォルダに移動してください.端末にコマンドを入力、ThinkPad UEFI Signフォルダに切り替え、署名に成功したことを示す
    sign.py bios_patched.img -o bios_patched.img
    
    メッセージを入力し、ファイルをデスクトップに再移動し、次のステップを実行する.
  • 新しいBIOSファイル:取り外し不要治具をBIOSチップに確実に固定する.多角度から治具の固定状況を検査する、治具とチップの8つのピンの接触が良好であることを確保し、プログラマ本体を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