/ThinkPad-T460s-macOS-OpenCore

Bootloader configuration for macOS on T460s and possibly others 6th gen ThinkPads

Primary LanguageASLBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

ThinkPad T460s running macOS (OpenCore bootloader)

Lenovo Thinkpad T460s macOS Hackintosh OpenCore

macOS macOS-beta OpenCore Model BIOS License

DISCLAIMER:
The original maintainer of this repo sold his laptop, and discontiuned his work, now duszmox and mhl221135 countinue this project. Read the entire README before you start. We are not responsible for any damages you may cause.
If you find an error or improve anything — whether in the config or in the documentation — please consider opening an issue or pull request.
If you find our work useful, please consider donating via PayPal. It would mean a lot to us.

This repo has now support for macOS 12 Monterey beta. It isn't a stable version yet, so it's not reccommended for daily use, but there is the option for it. Please read the discussion about it, if you encounter any problems please contribute to that thread. The OS has support from EFI update 0.7.0.1, and you can install it as you would install a normal update.

duszmox's donate link:
donate

mhl221135's donate link:
donate

Introduction

Getting started 📖

Meet the bootloader:

Recommended tools:

Resources

Tested Hardware 💻
@duszmox's Model Thinkpad T460s 20FAS2SV00
Processor Core i7-6600U (2C, 2.6 / 3.4GHz, 4MB) vPro
Graphics Integrated Intel HD Graphics 520
Memory 4GB Soldered + 8GB DIMM 2133MHz DDR4, dual-channel
Display 14" Full HD (1920x1080) IPS, non-touch
Storage Samsung Evo 970 PRO 500GB NVMe SSD
Ethernet Intel Ethernet Connection I219-LM (Jacksonville)
WLAN + Bluetooth 11ac+BT, Broadcom BCM94360CS2, 2x2 card
Camera HD720p resolution, low light sensitive, fixed focus
Audio support HD Audio, Realtek ALC3245 codec, stereo speakers 1Wx2, dual array microphone, combo audio/microphone jack
Keyboard 6-row, spill-resistant, multimedia Fn keys, LED backlight
Battery Front Li-Polymer 3-cell (23Wh) and rear Li-Ion 3-cell (26Wh), both Integrated
@mhl221135's Model Thinkpad T460s 20F90002**
Processor Core i5-6300U (2C, 2.4 / 3.0GHz, 3MB)
Graphics Integrated Intel HD Graphics 520
Memory 4GB Soldered + 8GB DIMM 2133MHz DDR4, dual-channel
Display 14" Full HD (1920x1080) IPS, Touch (currently not supported)
Storage Western Digital Black SN750 500GB NVMe SSD
Ethernet Intel Ethernet Connection I219-LM (Jacksonville)
WLAN + Bluetooth 11ac+BT, Intel® Dual Band Wireless-AC 8265, 2x2 card
Camera HD720p resolution, low light sensitive, fixed focus
Audio support HD Audio, Realtek ALC3245 codec, stereo speakers 1Wx2, dual array microphone, combo audio/microphone jack
Keyboard 6-row, spill-resistant, multimedia Fn keys, LED backlight
Battery Front Li-Polymer 3-cell (23Wh) and rear Li-Ion 3-cell (26Wh), both Integrated
Hardware compatibility 🧰

This EFI will suit any T460s regardless of CPU model1, amount of RAM, display resolution2 and internal storage3.

1. Optional custom CPU Power Management guide.
2. 1440p displays should change NVRAM -> Add -> 7C436110-AB2A-4BBB-A880-FE41995C9F82 -> UIScale:2 to get proper scaling while booting.
3. Follow NVMe fix guide below for NVMe drives.

This bootloader configuration will probably suit other 6th generation Thinkpads, but there could be some defacts (i. e. not working usb ports, can't connect any displays.. etc.). If you own a model other then a T460s check out these repositories:

Maintainer Model Bootloader
MSzturc T460 Opencore
duszmox X1 Carbon Gen 4 Opencore
Tluck T560/T460 Clover

Installation

How to install macOS
  1. Create an installation media
  2. Download the latest EFI folder and copy it into the ESP partiton
  3. Change your BIOS settings according to the table below
  4. Boot from the USB installer (press F12 to choose boot volume) and start the installation process
Menu Setting
Config USB UEFI BIOS Support Enable
Power Intel SpeedStep Technology Enable
CPU Power Management Enable
CPU Hyper-Threading Technology Enable
Security Security Chip Disable
Memory Protection Execution Prevention Enable
Virtualization Intel Virtualization Technology Enable
Intel VT-d Feature Enable
Anti-Theft Computrace Disable
Secure Boot Disable
Intel SGX Disable
Device Guard Disable
Startup UEFI/Legacy Boot UEFI Only
CSM Support No
Boot Mode Quick
Enable Apple Services
  1. Run the following script in Terminal
git clone https://github.com/corpnewt/GenSMBIOS && cd GenSMBIOS && chmod +x GenSMBIOS.command && ./GenSMBIOS.command
  1. Type 3 to Generate SMBIOS, then press ENTER
  2. Type MacbookPro13,1 5, then press ENTER. Leave this Terminal window open.
  3. Open /EFI/OC/Config.plist with any editor and navigate to PlatformInfo -> Generic
  4. Add the script's last result to MLB, SystemSerialNumber and SystemUUID
<key>PlatformInfo</key>
<dict>
   <key>Generic</key>
   <array>
      </dict>
         <key>AdviseWindows</key>
         <false/>
         <key>SystemMemoryStatus</key>
         <string>Auto</string>
         <key>MLB</key>
+        <string>M0000000000000001</string>
         <key>ProcessorType</key>
         <integer>0</integer>
         <key>ROM</key>
         <data>ESIzRFVm</data>
         <key>SpoofVendor</key>
         <true/>
         <key>SystemProductName</key>
         <string>MacBookPro13,1</string>
         <key>SystemSerialNumber</key>
+        <string>W00000000001</string>
         <key>SystemUUID</key>
+        <string>00000000-0000-0000-0000-000000000000</string>
      </dict>
   </array>
</dict>
  1. Save and reboot the system
How to update the bootloader
  1. Download the latest release
  2. Copy and Paste your PlatfromInfo
  3. Enable optional kexts if needed (NVMEFix, AirportItlwm, etc.)
  4. Test the new bootloader with an USB stick (Set BootProtect: None whenever booting with external drives)
  5. Customize boot preferences (skip picker, disable verbose, etc.)
  6. Mount your ESP partition
  7. Backup your old EFI folder and replace it with the new one

Post-install (optional)

Enable Intel WLAN cards
Two different drivers are under development for Intel WiFi support: `AirportItlwm.kext` and `AirPortOpenBSD.kext`. Do NOT use them both at the same time.
  1. Open /EFI/OC/Config.plist with any editor
  2. Add the content of #intel-wlan - macOS 11.plist or #intel-wlan - macOS 12.plist according to your macOS version
  3. Save and reboot the system

Note: The drivers provided in this repo are for Big Sur and Monterey only; if you're running a different version of macOS please use the corresponding AirportItlwm.kext or AirPortOpenBSD.kext.

Optional: Remove unnecessary firmware files from OpenIntelWireless drivers.

Enable non-natively supported Broadcom WLAN cards
  1. Download AirportBrcmFixup and BrcmPatchRAM.

  2. Copy AirportBrcmFixup.kext, BrcmBluetoothInjector.kext, BrcmFirmwareData.kext and BrcmPatchRAM3.kext to /EFI/OC/Kexts

  3. Open /EFI/OC/Config.plist with any editor

  4. Add the content of [#broadcom-wlan.plist](/EFI/OC/#broadcom-wlan.plist

  5. Save and reboot the system

Fix NVMe power management
  1. Open /EFI/OC/Config.plist with any editor
  2. Add the content of #nvme-fix.plist
  3. Save and reboot the system
Custom CPU Power Management
  1. Run the following script in Terminal
git clone https://github.com/corpnewt/CPUFriendFriend; cd CPUFriendFriend; chmod +x ./CPUFriendFriend.command; ./CPUFriendFriend.command
  1. When asked, select preferred values
  2. From the pop-up window, copy ssdt_data.aml into /EFI/OC/ACPI/ folder (rename it if you'd like)
  3. Open /EFI/OC/Config.plist with any editor
  4. Add the content of #cpu-pm.plist (make sure SSDT-PLUG.aml is disabled and match your new SSDT filename)
  5. Save and reboot the system
ThinkPad Dock USB ports mapping

I've never had one so there's a chance something might not be working. USB mapping guide.

Other tweaks

Enable HiDPI
  1. Disable SIP
  2. Run the following script in Terminal
    bash -c "$(curl -fsSL https://raw.githubusercontent.com/xzhih/one-key-hidpi/master/hidpi.sh)"
  3. Follow the instructions, then reboot
  4. Re-enable SIP (if desired)

Alternative method

Enable multimedia keys, fan & LEDs control
  1. Download and install YogaSMC-App-Release.dmg (both the pref-panel and app itself)
  2. Open the app
  3. Check the launch on login option
Use PrtSc key as Screenshot shortcut

Super useful shortcut that I wish I had it on my previous MBP. Default is ⌘⇧5.

  1. Open SystemPreferences.app
  2. Go under Keyboard > Shortcuts > Screenshots
  3. Click on Screenshot and recording options field
  4. Press PrtSc on your keyboard (it should came out as F13)
Use calibrated display profile

NotebookCheck's calibrated profiles. Not all panel are the same, final result may vary.

  1. Run one of the following script in Terminal
    • for 1440p displays
      cd ~/Library/ColorSync/Profiles; wget https://github.com/simprecicchiani/ThinkPad-T460s-macOS-OpenCore/raw/master/Files/DisplayColorProfiles/T460s_WQHD_VVX14T058J02.icm
    • for 1080p displays
      cd ~/Library/ColorSync/Profiles; wget https://github.com/simprecicchiani/ThinkPad-T460s-macOS-OpenCore/raw/master/Files/DisplayColorProfiles/T460s_FHD_N140HCE_EAA.icm
  2. Go under SystemPreferences > Displays > Colour
  3. Select the profile
Lenovo Thinkpad T460s macOS Hackintosh OpenCore
Add Apple Watch authentication to sudo

If you have an Apple Watch and you already replaced the build in WiFi card, you could enable authenticating as sudo with you Apple Watch using pam-watch.

  1. Download the latest ZIP file

  2. Unzip, which by default creates a folder called pam-watchid-main.

  3. Open Terminal and install it:

    • $ cd ~/Downloads/pam-watchid-main
    • $ sudo make install
  4. Regsiter the new PAM module for sudo:

    • Edit /etc/pam.d/sudo
    • Add a new line under line 1 (which is a comment) containing:
      auth sufficient pam_watchid.so

That’s it. Now, whenever you use sudo, you have the option of using your Watch to authenticate. Apple Watch authenticating with sudo

Monitor temperatures and power consumption
  1. Download and install HWMonitor
  2. Check launch on login (optional)
Faster macOS dock animation

This enables auto-hide and speeds up the animation

  1. Run the following script in Terminal
    defaults write com.apple.dock autohide-delay -float 0; defaults write com.apple.dock autohide-time-modifier -float 0.5; killall Dock
Boot process tweaks
Menu Setting What does it do?
Misc Boot ShowPicker False Skip bootloader page
UEFI Audio PlayChime Disabled Always silent boot
Setup Hibernatemode & Sleep at low Battery script
Script that performs auto sleep/hibernate at low battery

1.Open terminal
2.Enter commands below one by one
Settings for AC:
sudo pmset -c standby 1
sudo pmset -c hibernatemode 0

Setting for battery:

sudo pmset -b standby 1
sudo pmset -b standbydelayhigh 900
sudo pmset -b standbydelaylow 60
sudo pmset -b hibernatemode 25
sudo pmset -b highstandbythreshold 70

Settings for all:

sudo pmset -a acwake 0
sudo pmset -a lidwake 1
sudo pmset -a powernap 0

To restore default system settings run pmset restoredefaults command

Commands description

acwake - wake the machine when power source (AC/battery) is changed (value = 0/1)

lidwake - wake the machine when the laptop lid (or clamshell) is opened (value = 0/1)

powernap - enable/disable Power Nap on supported machines (value = 0/1)

standbydelayhigh and standbydelaylow specify the delay, in seconds, before writing the hibernation image to disk and powering off memory for Standby. standbydelayhigh is used when the remaining battery capacity is above highstandbythreshold(has a default value of 50 percent), and standbydelaylow is used when the remaining battery capacity is below highstandbythreshold.

hibernatemode supports values of 0, 3, or 25.

To disable hibernation, set hibernatemode to 0.

hibernatemode = 0 by default on desktops. The system will not back memory up to persistent storage. The system must wake from the contents of memory; the system will lose context on power loss.

hibernatemode = 3 by default on portables. The system will store a copy of memory to persistent storage (the disk), and will power memory during sleep. The system will wake from memory, unless a power loss forces it to restore from hibernate image.

hibernatemode = 25 is only settable via pmset. The system will store a copy of memory to persistent storage (the disk), and will remove power to memory. The system will restore from disk image. If you want "hibernation" - slower sleeps, slower wakes, and better battery life, you should use this setting.

pmset Descriptions Source



BIOS Mod

I know it can be scary at first but with the right amount of carefulness anyone can do it.
Is it worth the effort and risk? I don't think so. I enjoyed it? 100%.
A brief guide referencing other guides.

Status

What's working ✅
  • CPU Power Management ~1W on IDLE
  • Intel HD 520 Graphics incuding graphics acceleration
  • USB ports
  • Internal camera working fine on FaceTime, Skype, Zoom and others
  • Sleep / Hibernatemode 25 or 3 / Wake / Shutdown / Reboot
  • Intel Gigabit Ethernet
  • Wifi, Bluetooth, Airdrop, Handoff, Continuity, Sidecar wireless some functionalities may be buggy or broken on Intel WLAN cards
  • iMessage, FaceTime, App Store, iTunes Store Please generate your own SMBIOS
  • Speakers and headphones combo jack
  • Batteries
  • Keyboard map and hotkeys with YogaSMC
  • Trackpad, Trackpoint and physical buttons all macOS gestures working thanks to VoodooRMI
  • SIP and FileVault 2 can be turned on
  • HDMI with digital audio passthrough
  • SD Card Reader slow r/w speed but works
What's not working ⚠️
  • Some users reported Mini DisplayPort is broken for them with latest updates, but it's working for me just fine
  • Safari DRM Use Chromium engine to watch Apple TV+, Amazon Prime Video, Netflix and others
  • WWAN (needs to be implemented)
  • Fingerprint Reader
  • Touchscreen
Update tracker 🔄
EFI Release 0.7.2
MacOS 11.5 / 12 beta-4
OpenCore 0.7.2
Lilu 1.5.5
VirtualSMC 1.2.6
YogaSMC 1.5.1
WhateverGreen 1.5.2
AppleALC 1.6.3
VoodooPS2Controller 2.2.4
VoodooRMI 1.3.3
IntelMausi 1.0.7
HibernationFixup 1.4.2
CPUFriend 1.2.4
NVMeFix 1.0.9
RTCMemoryFixup 1.0.7
AirPortOpenBSD 2.0.6
AirportItlwm 2.0.0b
IntelBluetoothFirmware 2.0.0RC-2
AppleBacklightSmoother 1.0.2
BrightnessKeys 1.0.2
Sinetek-rtsx 9.0

Performances

Power consumption & thermals 🔥
Idle State Max Frequency 2 Thread Frequency All Thread Frequency GPU Max Frequency
Benchmarks ⏱
CPU Single-Core Multi-Core
Cinebench r20 348 842
Geekbench 5 809 1862
GPU OpenCL Metal
Geekbench 5 4417 4179
BruceX Test 5K 104''

macOS 10.15.7, EFI release 0.6.2

CPU Single-Core Multi-Core
Cinebench r23 2175

macOS 11.1, EFI release 0.6.5

Thanks to

Simone, the original maintainer of this repo, the hackintosh community on GitHub, InsanelyMac, and r/hackintosh.