Lenovo ThinkPad T420 - OpenCore Configuation
Status: Work in Progress
Version: 1.0.0-preview1
Download now »
Report Bug
·
YouTube Video
⚠️ Disclaimer
[!CAUTION]
This repo is Work in Progress! Expect possible bugs and instability! The development of this project is very slow at the moment because I don't have the time for it.
This guide is only for the Lenovo ThinkPad T420. I am NOT responsible for any harm you cause to your device. This guide is provided "as-is" and all steps taken are done at your own risk.
This configuration is based of this repository by tluck.
Introduction
EFI folders
This repo includes multiple EFI configuations for different macOS Versions.
EFI |
Description |
Type |
EFI |
Supports macOS High Sierra & Catalina (using Airportitlwm) |
Stable |
EFI - HeliPort |
Supports every macOS Version, Require HeliPort app |
Soon |
Download HeliPort app »
💻 My Hardware
These are the Hardware component I use. But this OpenCore configuation should still work with your device, even if the components are not equal.
> **Note** Check the model of your WiFi & Bluetooth card. Intel cards should be compatible with itlwm (or AirportItlwm). If your card is from another manufacturer, please check if your card supports macOS.
| Category | Component |
| --------- | ------------------------------------ |
| CPU | Intel Core i5-2540M |
| GPU | Intel HD Graphics 3000 |
| WiFi & BT | Dell Wireless 1510 (BCM4322) |
Installation
📝 Requirements
You must have the following items:
- Lenovo ThinkPad T420 (Obviously 😁).
- Access to a working Windows machine with Python installed.
- A pendrive with more than 4 GB (Remember that during the preparation we will format the flash drive to create the installation media).
- an Internet connection (recommended via Ethernet).
- 1-2 hours of your time.
⚙️ Preperation
### Create the install media
First of all, you will need the install media of macOS. I will use [macrecovery](https://github.com/acidanthera/OpenCorePkg) to download and create the macOS Install media.
With macrecovery, the process is the following:
- Download [OpenCorePkg](https://github.com/acidanthera/OpenCorePkg) as a ZIP.
- Extract the OpenCorePkg-master.zip file.
- Open ```cmd.exe``` with Administrator privileges and change the directory to OpenCorePkg-master\Utilities\macrecovery.
- Enter the following command to download macOS:
```
# Big Sur (11)
python macrecovery.py -b Mac-42FD25EABCABB274 -m 00000000000000000 download
# Monterey (12)
python macrecovery.py -b Mac-E43C1C25D4880AD6 -m 00000000000000000 download
# Ventura (13)
python macrecovery.py -b Mac-7BA5B2D9E42DDD94 download
```
- After the download succeeded, type ```diskpart``` and wait until you see ```DISKPART>```
- Plug-in your pendrive and type ```list disk``` to see your disk id.
- Select your pendrive by typing ```select disk ```
- Now we are gonna clean the pendrive and convert it to GPT. First, type ```clean``` and then ```convert gpt```.
> **Note**: If an error occurred, try to convert again by typing ```convert gpt```.
- After the pendrive is clean and converted, we will create a new partition where we can put our files on. First, type ```create partition primary```, then select the new partition with ```select partition 1``` and format it ```format fs=fat32 quick```.
- Finally, mount your pendrive by typing ```assign```
- Now, close the Command Prompt and copy the folder ```com.apple.recovery.boot``` on the pendrive.
Now we are ready to make the USB drive bootable.
### Configure and install OpenCore
Download the EFI folder from this repo, you will find the latest files under the release tab or just download the repo as it is. Move the folder to the root of your pendrive (e.g. J:\) and rename the folder to ```EFI```.
#### GenSMBIOS
We need a script, called [GenSMBIOS](https://github.com/corpnewt/GenSMBIOS), to create fake serial number, UUID and MLB numbers. **This step is essential to have working iMessage, so do not skip it!**
The process is the following:
- Download GenSMBIOS as a ZIP, then extract it.
- Start GenSMBIOS.bat and use option ```1``` to download MacSerial.
- Choose option ```2```, to select the path of the config.plist file. It will be located in ```EFI -> OC``` folder.
- Choose option ```3```, and enter ```MacBookPro8,1``` as the machine type.
- Press ```Q``` to quit. Your config now should contain the requied serials.
#### Enter the proper ROM value
After adding serials to your config.plist, you have to add the computer's MAC address to the config.plist file. **This step is also essential to have a working iMessage, so do not skip it.** We need a Plist editior, to write the MAC address into the config.plist file. I used [ProperTree](https://github.com/corpnewt/ProperTree), since it works on Windows too. You have to change the MAC address value in the config.plist at
```PlatformInfo -> Generic -> ROM```
Delete the generic ```112233445566``` value, and enter your MAC address into the field, without any colons. Save the Plist file, and it is now ready to be written out to the EFI partition of your install media.
#### Default keyboard layout and language
The default keyboard layout and language is ```German```. To change the language, edit the value of ```NVRAM -> Add -> 7C436110-AB2A-4BBB-A880-FE41995C9F82 -> prev-lang:kbd``` to the value of your language. If your value contains an underscore "```_```", replace it with a hyphen "```-```". The value for English would be ```en-US:0```. You can find a list of all language values [here](https://github.com/acidanthera/OpenCorePkg/blob/master/Utilities/AppleKeyboardLayouts/AppleKeyboardLayouts.txt).
##### ACPI patches
Please enable / disable the following patches depending on what is installed in your device.
| SSDT | Affected device | Description |
| ----------------- | -------------------------- | ---------------------------------------------------------- |
| SSDT-ARPT.aml | Broadcom cards | Disable Broadcom card during sleep |
| SSDT-OFFTB.aml | Thunderbolt | Disable Thunderbolt |
| SSDT-OFFGDGPU.aml | NVIDIA GeForce MX 150 | Disable NVIDIA GPU (necessary if installed) |
### Install OpenCore
After you've finished with the neccesary tweaks, you have to copy the EFI folder to the EFI partition of your pendrive.
🚚 Installation
### Prepare BIOS
The bios must be properly configured prior to installing macOS.
In Security menu, set the following settings:
- `Security > Security Chip`: must be **Disabled**
- `Memory Protection > Execution Prevention`: must be **Enabled**
- `Virtualization > Intel Virtualization Technology`: must be **Enabled**
- `Virtualization > Intel VT-d Feature`: must be **Enabled**
- `Anti-Theft > Computrace -> Current Setting`: must be **Disabled**
- `Secure Boot > Secure Boot`: must be **Disabled**
- `Intel SGX -> Intel SGX Control`: must be **Disabled**
- `Device Guard`: must be **Disabled**
In Startup menu, set the following options:
- `UEFI/Legacy Boot`: **UEFI Only**
- `CSM Support`: **No**
In Thunderbolt menu, set the following options:
- `Thunderbolt BIOS Assist Mode`: **UEFI Only**
- `Wake by Thunderbolt(TM) 3`: **No**
- `Security Level`: **No**
- `Support in Pre Boot Environment > Thunderbolt(TM) device`: **No**
Now you can go through the install.
### Install macOS
1. Boot from USB, press ```SPACE``` and select the USB drive inside of OpenCore ```"NO NAME (DMG)" or similar```.
> **Note:** The first boot may take up to 20 minutes.
2. Wait for the macOS Utilities screen.
3. Select Disk Utility, select your disk and click erase. Give a name and choose **APFS** with **GUID Partition Map**.
4. After erasing, go back and select **Reinstall macOS** and follow the steps on your screen. The installation make take up to **2 hours**.
> **Note:** Your PC will restart multiple times. Just boot from USB and select your disk inside of OpenCore. (named macOS Installer or the disk name).
5. Once you see the `Region selection` screen, you are good to proceed.
6. Create your user accound and everything else.
♻️ Upgrade macOS / Switch EFI
If you plan to upgrade your macOS (or updating the EFI / switching to HeliPort), you'll need a different OpenCore configuation (EFI). Please follow these steps:
> Note: Download the desired macOS version in the Settings before following these steps, if you are connected via WiFi.
1. Download the newest release & [ProperTree](https://github.com/corpnewt/ProperTree) and extract it.
2. Start ProperTree and load the ```Config.plist``` on your EFI partition. (File -> Open)
> Note: You can mount your EFI partition by pressing ```ALT + SPACE```, typing Terminal and enter the following command: ```sudo diskutil mountDisk disk0s1```.
3. Now also load the new configuration file from the repo for the desired macOS installation (or HeliPort config).
4. You should now have 2 ProperTree-windows open on your screen.
5. Go in both windows to ```Root -> PlatformInfo -> Generic```. Transfer ```MLB, ROM, SystemProductName, SystemSerialNumber and SystemUUID``` to the new config.
6. Save the new config (File -> Save) and close both windows.
7. Now delete your existing EFI folder from the EFI partition and copy the new one to it. (Make sure that the Directorys ```Boot and OC``` are in ```EFI```).
If you want to upgrade macOS, download the desired macOS version in the Settings app and perform the upgrade like on a real Mac.
Post-install (optional)
💾 Install OpenCore to Hard drive
1. Press `ALT + SPACE` and open terminal. Type `sudo diskutil mountDisk disk0s1` (where disk0s1 corresponds to the EFI partition of the main disk)
2. Open Finder and copy the EFI folder of your USB device to the main disk's EFI partition.
3. Unplug the USB device and reboot your laptop. Now you can boot macOS without your USB device.
✏️ Create a offline install media (Optional)
In case of reinstalling macOS, a offline install media can save some time. You also don't need an Ethernet connection for the installation.
To create a offline install media, you need the following stuff:
- macOS Installer from the App Store.
- A 16 GB pendrive (Keep in mind, during the preperation we will format the disk to create the install media).
Press `ALT + SPACE` and open Disk utility. Select your USB device and click erase. Name it `MyUSB` and choose **Mac OS Extended** with **GUID Partition Map**. After erasing the USB device, close Disk utility.
Now press `ALT + SPACE` and open terminal. Type the following command:
Big Sur:
```sudo /Applications/Install\ macOS\ Big\ Sur.app/Contents/Resources/createinstallmedia --volume /Volumes/MyUSB --downloadassets```
Monterey:
```sudo /Applications/Install\ macOS\ Monterey.app/Contents/Resources/createinstallmedia --volume /Volumes/MyUSB --downloadassets```
Ventura:
```sudo /Applications/Install\ macOS\ Ventura.app/Contents/Resources/createinstallmedia --volume /Volumes/MyUSB --downloadassets```
After creating the install media, copy your EFI folder to the EFI partition of your USB device.
Status
✅ What's working
- [X] It boots
⚠️ What's not working
- [ ] Safari DRM ```Use Chromium powered Browser or Firefox to watch Amazon Prime Video, Netflix, Disney+ and others```
- [ ] AirDrop & Continuity (devices with Intel WiFi)
- [ ] Fingerprint Reader (Disabled with NoTouchID kext)
- [ ] Sidecar Wireless
- [ ] Apple Watch Unlock
- [ ] Dualbooting Windows / Linux (with OpenCore) ```Theoretically, this works, but due to the ACPI patches, the respective operating system can become unstable.```
🔄 Not tested
- [ ] Intel WiFi & Bluetooth (thanks to [itlwn](https://github.com/OpenIntelWireless/itlwm))
- [ ] Brightness / Volume Control
- [ ] Battery Information
- [ ] Audio (Audio Jack & Speaker)
- [ ] USB Ports & Built-in Camera
- [ ] Graphics Acceleration
- [ ] Trackpoint / Touchpad
- [ ] Power management / Sleep
- [ ] FaceTime / iMessage (iServices)
- [ ] HDMI
- [ ] Automatic OS updates
- [ ] Handoff / Universal Clipboard
- [ ] Sidecar (Cable) / AirPlay to Mac
- [ ] SIP / FireVault 2
- [ ] USB-C
- [ ] WWAN
⭐️ Feedback
Did you find any bugs or just have some questions? Feel free to provide your feedback using the Discussions tab.
📜 License
This repo is licensed under the MIT License.
OpenCore is licensed under the BSD 3-Clause License.
© 2018 - 2024 valnoxy. All Rights Reserved.
By Jonas Günner <jonas@exploitox.de>