Status: Stable | Used daily
DISCLAIMER: As you embark on your Hackintosh journey you are encouraged to READ the entire README and Dortania guides before you start. It will save many a message instructing you to RTFM. I am not an expert, I haven't forced you to do anything, put on your big boy pants and take responsibility for any mess you get yourself into.
All that said I'm happy to help when/where I can. When you encounter bug or want to improve this repo, consider opening an issue or pull request. You can also find a wealth of knowledge on Reddit, TonyMacX86 or Google.
This is not a guide!
This is not a guide. It shoud only be used as a reference. I provide some tips and tricks I learned on my journey in building a hackintosh. The best way of using this is as a supplement to the OpenCore guide. If you have questions about how to setup your specific hardware, are unclear about what to do, or would like to see the settings I've used.
I understand that some may simply add the OC and Boot folders to their EFI folder. For clarity the EFI partition needs a folder called EFI that contains the Boot and OC folder.
EFI (drive)
EFI
├── BOOT
├── OC
It should work and your X1C7 should boot and work fine. You will at minimum need to generate SMBIOS values if you want Apple services to work. Note that all error reporting/logging has been turned off in the config.plist. You will have a difficult time trouble shooting with the setup provided. You can easily turn on the error reporting and logging if you follow the Dortania guide. Best of luck.
NOTE if you simply wish to copy my EFI please do the following:
- Generate SMBIOS values and add them in the config.plist (Use MacBookPro15,1)
- Ensure the value of
showpicker
istrue
in the config.plist file to provide the opencore menu when booting.- Prepare your install USB
- Move the entire EFI folder (with your modifications) to the proper partition on your USB (or hard drive once the install is complete).
- Install - You'll need to select F12 to get the boot menu options and boot from the USB each time the computer restarts until you've copied the EFI folder onto the hard drive. You may also need to select the correct boot option during install.
This is a guide!
- To install macOS follow the guides provided by Dortania
Credits
Shout out to NotARobot6969 for the DevicesProperties patches to enable HDMI.
- EETagent For orginal T480 OpenCore repo (I like the layout of his guide and used it to create this one)
- The guys from Acidanthera that make this possible
- 1Revenger1 and leo-labs for VoodooRMI and VoodooSMBus
- Apple for macOS and HfsPlus.efi
- corpnewt for USBMap and CPUFriendDataProvider
- headkaze for Hackintool
- jwise for HoRNDIS
- Mieze for IntelMausiEthernet
- MSzturc for ThinkPad Assistant
- OpenIntelWireless for IntelBluetoothFirmware, itlwm and HeliPort
- zhen-zen for YogaSMC
- And every other contributor
- People at r/hackintosh for their advice and help
- Useful tools by CorpNewt and headkaze
OTHER REPOSITORIES
- x1c8-hackintosh repositories:
- x1c7-hackintosh repositories:
- x1c6-hackintosh repositories:
Hardware
I used to own two Lenovo ThinkPad X1 Gen 7 laptops, an i5 and an i7. Both worked great (including the touch screen on the i7). I now only have the one computer outlined below:
Category | Component | Note |
---|---|---|
Type | 20QD, 20QE | |
CPU | Intel Core i5-8265U | |
GPU | Intel UHD 620 | |
SSD | Toshiba 512GB | Replaced cursed PM 981 which still doesn't work reliably |
Screen | 14" WQHD - 2560x1440 | |
Memory | 16GB / 2133MHz LPDDR3 | |
Battery | Integrated Li-Polymer 51Wh | Single battery |
Camera | 720p Camera | |
Wifi & BT | Intel Wireless-AC 9560 | Use AirportItlwm for your macOS version and enjoy native Wi-Fi control, or use Heliport app. |
Input | PS2 Keyboard & Synaptics TrackPad (touchscreen) | I'm using ThinkPad Assistant an alternative most seem to be moving to YogaSMC for media keys like microphone switch, etc. |
Main software
Component | Version |
---|---|
macOS Monterey | 12.5 |
OpenCore | v0.8.3 |
ACPI Files
Component |
---|
SSDT-AWAC |
SSDT-BATT |
SSDT-EC-USBX-LAPTOP |
SSDT-PLUG-DRTNIA |
SSDT-PNLF-CFL |
SSDT-ThinkPad_ClickPad |
SSDT-X1C6-KBRD |
SSDT-XOSI |
Kernel extensions
Kext | Version |
---|---|
AirportItlwm | 2.1.0 |
AirportItlwmBS (BigSur) | 2.1.0 |
AppleALC | 1.7.4 |
BlueToolFixup | 2.6.3 |
CPUFriend | 1.2.6 |
CPUFriendDataProvider | 1.00 |
IntelBluetoothFirmware | 2.1.0 |
IntelBluetoothInjector | 2.1.0 |
IntelMausi | 1.0.7 |
Lilu | 1.6.2 |
NVMeFix | 1.1.0 |
SMCBatteryManager | 1.3.0 |
SMCProcessor | 1.3.0 |
SMCSuperIO | 1.3.0 |
USBMap | 1.0.0 |
VirtualSMC | 1.3.0 |
VoodooI2C | 2.7.0 |
VoodooI2CHID | 2.7.0 |
VoodooPS2Controller | 2.2.9 |
WhateverGreen | 1.6.1 |
UEFI drivers
Driver | Version |
---|---|
HfsPlus.efi | OcBinaryData |
OpenRuntime.efi | OpenCorePkg 0.8.3 |
UEFI settings
Config
- Keyboard/Mouse
Trackpoint
EnabledTrackpad
Enabled
- Display
Boot Display Device
ThinkPad LCDTotal Graphics Memory
256MBBoot Time Extension
Disabled
- CPU
Intel Hyper-Threading Technology
Enabled
- Thunderbolt
Thunderbolt BIOS Assist Mode
DisabledSecurity Level
No SecuritySupport in Pre Boot Environment -> Thunderbolt(TM) device
Disabled
Security
Password
DisabledFingerprint
DisabledSecurity Chip
DisabledMemory Protection -> Execution Prevention
EnabledVirtualization -> Kernel DMA Protection
DisabledVirtualization -> Intel Virtualization Technology
EnabledVirtualization -> Intel VT-d Feature
DisabledVirtualization -> Enhanced Windows Biometric Security
DisabledI/O Port Access -> FingerPrint Reader
DisabledI/O Port Access -> Wireless WAN
DisabledSecure Boot -> Secure Boot
DisabledIntel SGX -> Intel SGX Control
DisabledDevice Guard
Disabled
Startup
UEFI/Legacy Boot
UEFI OnlyCSM Support
NoBoot Mode
Diagnostics (This can be changed to "Quick" once you know your system is running properly)
Own prev-lang-kbd
Either add as a string or as a data ( HEX data (ProperTree) )
Format is lang-COUNTRY:keyboard
- 🇺🇸 | [0] en_US - U.S --> en-US:0 --> (656e2d55 533a30 in HEX)
Key | Type | Value |
---|---|---|
prev-lang:kbd | String | en-US:0 |
Pick your keyboard layout here:
Big Sur or Monterey
The EFI folder is setup for both Monterey and BigSur. I used MinKernel
and MaxKernel
values in the config.plist to load the proper kexts based on which OS you are installing. I tested it with Monterey, so let me know if you have issues with BigSur.
TrackPad - Disable force touch
If the Battery management doesn't show up in the System Preferences after the SSDT-Batt.aml file is added to your ACPI folder and config.plist file. You will not be able to change any trackpad settings. You may experience the annoying behaviour of clicking on the touchpad and it doing a Force Touch where the preview of the file is shown. I found this very annoying. You can disable force touch by modifying the file in ~/Library/Preferences/com.apple.AppleMultitouchTrackpad.plist
Opened it with Propertree and changed ForceSuppressed to True
Another trick to manage your trackpad, if you can't get the battery to work, is to connect a bluetooth trackpad. Once the bluetooth trackpad is connected you can adjust the settings. Disconnect the bluetooth trackpad and your built in one will maintain those settings.
I used these methods prior to receiving a SSDT-Batt.aml that worked from a friendly Redditor Galactic_Dev
Generate your own SMBIOS
Use GenSMBIOS to create your own serial #... based off of your preferred model.
- MacBookPro15,1 -
What I used
- MacBookPro15,4 -
Reported as used by others
Note: If you use a different SMBIOS model than the MacbookPro15,1 that I've used. The provided USB mapping will not work. You will need to edit the USBMap.kext file. You can right click on the file and select Show Package Contents. From there you can open the Info.plist file in ProperTree and change MacBookPro15,1 to whatever Model ID you've chosen. This should provide a working USBMap.kext.
CPUFriend power management
Generate CPUFriendDataProvider for your machine here or use those I've provided. My files are set for power conservation over performance. Highly recommended that you use power management.
Audio Setup
Key | Value |
---|---|
boot-args | alcid=71 |
Using the above boot-arg to initially setup your config.plist file. This will enable the top and bottom speakers in the System Preferences>Sound allowing you to select either set of speakers. To combine the two you'll need to open Audio MIDI Setup (use Spotlight to find and open it) and create an Aggregate Device with both sets of speakers. Unfortunately you can't control the volume of an Aggregate Device with the volume keys. You'll need to install a utility as highlighted below.
Create Multi-output device or Aggregate Device in Audio MIDI Setup controller for all speakers - use utility like AggregateVolumeMenu to control the volume
- See description here Change Volume on Aggregate Sound
If you're happy with the setup above you can use the guide to replace alcid=71 per below:
- Add audio codec to DeviceProperties - layout-id | data | 47000000
What's working ✅
- Battery percentage
- Bluetooth - Intel Wireless-AC 9560
- CPU power management
- HDMI -
HDMI is working fine through the HDMI port, haven't tested via the USB-C port though. Doesn't work if plugged in at boot until you unplug and replug.
- GPU UHD 620 hardware acceleration / performance (if not working add
-igfxmlr
flag toboot-args
in config.plist issue #6) - iMessage, FaceTime, App Store, iTunes Store. Generate your own SMBIOS
- Intel I219-V Ethernet port -
works with the Lenovo dongle
- Keyboard
Volume and brightness hotkeys. Another media keys with ThinkPad Assistant.
- Realtek® ALC3286 ("ALC285") Audio -
See setup above
- Sleep/Wake
- TouchPad
1-5 fingers swipe gestures
- TrackPoint
Works perfectly. Just like on Windows or Linux.
- USB Ports
USB Map is different for devices with Windows Hello camera.
- Web camera
- Wifi - Intel Wireless-AC 9560
- Multi-Touch Screen
- Graphical Boot menu
OpenCanopy (It does work. Not included in OC folder as I skip the boot menu.)
What's not working ⚠️
- Fingerprint reader -
There is finally after many years working driver for Linux (python-validity), don't expect macOS driver any time.
- Samsung PM 981 NVME -
Still unstable. Could work for some, not for others. (In most cases which it does work, it will give a "hash mismatch" error every so often.)
- Microphone -
Microphone doesn't work due to the fact that there is no AppleALC layout specifically for the X1C7. This will require some knowledge on AppleALC to get working; specifically on how pin configs work and how to make custom layouts. Maybe for someone more experienced? If you're willing to give it a shot,
here's a codec#0 dump I made under xubuntu.Remember to PR if you get it working!
Untested
- Thunderbolt
No device to test.
- Boot chime
(should work just haven't bothered with it)
- FireVault 2
(should work just haven't bothered with it)
- Sidecar wired
- Sidecar wireless
- Windows/Linux from OC boot menu
It's best practice to not boot from OC when planning to perform firmware upgrade