Archived because I bought a MacBook Air M1 2020
This guide it's updated to OpenCore 0.9.7 and tested on my main device with macOS High Sierra, Mojave, Catalina, Big Sur, Monterrey, Ventura and Sonoma.
Here's the Amazon Link for this exact model, it cost me 1.199€
when purchased on 18/09/2018
Component | Name |
---|---|
Motherboard: | FX504GE HM370 |
CPU: | Intel i7-8750H |
RAM: | SK Hyinix HMA82GS6CJR8N-VK 16GB 2666Mhz |
iGPU: | Intel UHD 630 (Mobile) |
dGPU: | nVidia GeForce GTX 1050 Ti (DISABLED) |
NVMe: | Samsung 970 EVO Plus |
HDD: | HGST HTS721010A9E630 |
Wifi/BT: | Intel Wireless-AC 9560 160MHz (Type CNVi) |
Audio: | RealTek ALC255 |
Ethernet: | RealTek RTL8111 |
Trackpad: | ELAN1200 Precision TouchPad (Type HID) |
Keyboard: | PS/2 Keyboard (ISO Spain) |
Note: The NVMe is the only component that has been replaced from STOCK
-
- Built-In Display
- All USB Ports
- Jack 3.5mm, Speakers & Microphone
- DC-IN & Battery
- NVMe & HDD
- Camera
- Ethernet
- Keyboard
- Trackpad
-
- WiFi
- Bluetooth
- HDMI Port
- Continuity Features (Apple Ecosystem Fancy Things)
-
- dGPU (nVidia GTX 1050Ti)
Name | Solution |
---|---|
Built-In Display | Works thanks to SSDT-PNLF-CFL.aml (Backlight Fix) and WhateverGreen.kext (iGPU Fixes). |
All USB Ports | Thanks to USBMap.aml (Ports mapped for macOS) and SSDT-EC-USBX.aml . |
Jack 3.5mm, Speakers & Microphone | Thanks to AppleALC.kext (Audio Driver) and layout setted to "30" (Dec) or "1E000000" (Hex). |
DC-IN & Battery | VirtualSMC.kext with SMCBatteryManager.kext allows management off charging and Battery Info. |
NVMe & HDD | It used to be something tricky but having SATA on AHCI Mode on BIOS/UEFI and latest firmware for the NVMe is enough. |
Camera | Is connected via Internal USB and it works. |
Ethernet | Thanks to RealtekRTL8111.kext (Ethernet Driver). |
Keyboard | Thanks to VoodooPS2.kext (Driver for PS2 devices). |
Trackpad | Thanks to SSDT-XOSI.aml (Make some Windows Features Avaible for macOS too) and with VoodooI2C.kext in combination with VoodooI2CHID.kext (Driver for I2C and HID devices like my trackpad). |
PowerOff, Reboot & Sleep | Working thanks to having correct configs for CPU, iGPU, disabled dGPU, mapped USB Ports and executed these commands after macOS installation: sudo pmset autopoweroff 0 , sudo pmset powernap 0 , sudo pmset standby 0 , sudo pmset proximitywake 0 , sudo pmset tcpkeepalive 0 . |
WiFi | Thanks to AirportItlwm.kext (Driver for Intel WiFi Card) and loading from system the kext: IO80211Family.kext . |
Bluetooth | Thanks to IntelBluetoothFirmware.kext and BlueToolFixup.kext. |
HDMI Port | Thanks to DeviceProperties Patch from MegaStood Guide. But Audio over HDMI is totally broken and Hi-Res Displays can cause visual bugs or unstable connections. |
Continuity Features | With the exception of "AirDrop" And "Apple Watch AutoLogin" all other Features work thanks to AirportItlwm.kext,IntelBluetoothFirmware.kext,FeatureUnlock.kext; Sidecar, AirPlay to Mac, NightShift and Universal Control are working (More Info). |
dGPU | This laptop use Optimus and dGPU is not usable on macOS and Mojave dropped support for nVidia Web Drivers (Not even try this...). |
Download installers: Ventura - Monterrey - Big Sur - Catalina - Mojave - High Sierra
(Alternative Download (Mr. Machintosh Post))
- Connect a >=16 GB pendrive.
- Open Disk Utility and Erase the USB with the name: MyVolume.
- Open Terminal and use the proper commands for your macOS installer:
- Ventura:
sudo /Applications/Install\ macOS\ Ventura.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume
- Monterrey:
sudo /Applications/Install\ macOS\ Monterey.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume
- Big Sur:
sudo /Applications/Install\ macOS\ Big\ Sur.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume
- Catalina:
sudo /Applications/Install\ macOS\ Catalina.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume
- Mojave:
sudo /Applications/Install\ macOS\ Mojave.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume
- High Sierra:
sudo /Applications/Install\ macOS\ High\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume
- Make Sure you have Latest BIOS v323
- After Updating the BIOS, stock configuration works, so don't worry about this part.
Here (Under these Dropdown Menus) are written only Enabled Parameters, Leave everything default on a supposedly new
sample.conf
, I have explained what does and why every parameter, I hope you understand something.
ACPI
ACPI are related mainly to modifying or patching the device firmware (DSDT).
SSDT-PLUG.aml
(Allows for native CPU power management)SSDT-PMC
(Enable Native NVRAM for HM370 MotherBoard)SSDT-dGPU-Off.aml
(PowerOff GTX 1050Ti)SSDT-EC-USBX.aml
(Fix the embedded controller and USB power)SSDT-PNLF-CFL.aml
(Backlight support for Coffee Lake machines)SSDT-XOSI.aml
(This is for Trackpad ELAN HID)SSDT-USBMap.aml
(All Ports Mapped Correctly)
Rename _OSI to XOSI
(Important for trackpad (Without this patch trackpad is not gonna work))
0 | Dictionary | 12 key/value pairs |
---|---|---|
Comment | String | Change _OSI to XOSI |
Find | Data | 5F4F5349 |
Replace | Data | 584F5349 |
Enabled:
ResetLogoStatus
(Recomended for correctly displaying Apple logo on Boot)
Booter
Booter related when booting.
Enabled:
AvoidRuntimeDefrag
(Fixes for common NVRAM properties)EnableSafeModeSlide
(Needed for something called KASLR)ProvideCustomSlide
(Needed for something called KASLR)RebuildAppleMemoryMap
(Makes the current Memory Map compatible to Apple's Expected one)SetupVirtualMap
(Fix for virtual memory accessing)SyncRuntimePermissions
(Fix for permission memory over OpenRuntime)
DeviceProperties
DeviceProperties is related to explaining to the SO the devices you have and info you want to "fake" to them.
Audio Card Properties:
PciRoot(0x0)/Pci(0x1F,0x3) | Dictionary | Keys / Values | Info about |
---|---|---|---|
AAPL,slot-name | String | Internal@0,31,3 | Indicates Virtual Slot for Audio Card |
device-id | Data | 70A10000 | Giving it a Unique ID |
device_type | String | Audio device | Just to know what it is |
hda-gfx | String | onboard-1 | Indicates board that is located (1) |
layout-id | DATA | 1E000000 | Best layout for the best Jack 3.5 and Speakers audio quality |
iGPU (Integrated Graphics Processing Unit) Properties:
PciRoot(0x0)/Pci(0x2,0x0) | Dictionary | Keys / Values | Info about |
---|---|---|---|
AAPL,ig-platform-id | DATA | 00009B3E | Indicates iGPU ID for macOS |
AAPL,slot-name | String | Internal@0,2,0 | Indicates Virtual Slot for iGPU |
device-id | DATA | 9B3E0000 | Fake iGPU ID (Just in case / Futureproof) |
agdpmod | DATA | 01000000 | Disable port checking so HDMI output works |
disable-external-gpu | DATA | 1000000 | Disables All GPUs Except iGPU |
enable-backlight-registers-fix | DATA | 1000000 | Fix for Backlight Display |
framebuffer-patch-enable | DATA | 01000000 | Switch for next patches |
framebuffer-unifiedmem | DATA | 000080BE | Makes VRAM be 3048 MB instead of the 1500 MB |
framebuffer-con1-enable | DATA | 01000000 | |
framebuffer-con1-index | DATA | 01000000 | |
framebuffer-con1-busid | DATA | 01000000 | |
framebuffer-con1-pipe | DATA | 12000000 | |
framebuffer-con1-type | DATA | 00080000 | Indicates that Connector 1 is HDMI |
framebuffer-con1-flags | DATA | 87010000 | I have no idea |
enable-lspcon-support | DATA | 01000000 | Switch for Enabling LSPCON Drivers |
framebuffer-con1-has-lspcon | DATA | 01000000 | Indicate that con1 has LSPCON |
framebuffer-con1-preferred-lspcon-mode | DATA | 01000000 | Makes LSPCON Default for con1 |
hda-gfx | String | onboard-1 | Indicates board that is located (1) |
model | String | Intel UHD 630 | Name Displayed Under → About this Mac |
Kernel
Kernel are things related with kernel an ".kext"(kernel extension).
ORDER MATTER! Think about which kexts should load before which.
- Lilu.kext (Allows kernel injection and modification )
- VirtualSMC.kext (Allows monitoring and controlling of system parameters)
- SMCProcessor.kext (Allow monitoring and controlling of CPU)
- SMCSuperIO.kext (Allow monitoring and controlling of IO(fans,WhaterPumps,etc..))
- SMCBatteryManager.kext (Allow monitoring and in some cases controlling battery)
- WhateverGreen.kext (Graphics Driver)
- AppleALC.kext (Audio Driver)
- RealtekRTL8111.kext (RJ45 Driver)
- VoodooPS2Controller.kext (PS/2 Driver)
- VoodooI2C.kext (I2C Devices Driver)
- VoodooI2CHID.kext (Driver for this specific trackpad)
- Airportitlwm.kext (Intel WiFi Driver)
- IntelBluetoothFirmware.kext (Intel Bluetooth Driver)
- IntelBluetoothInjector.kext (Required Enabled on Big Sur or lower, now just required but Disabled)
- BlueToolFixup.kext (Bluetooth Fix for Monterrey)
- BrightnessKeys.kext (Fix some of fn Keys like Brightness or Audio)
- FeatureUnlock.kext (Bring Back Handoff, UniversalControl, and other Apple Fancy Features)
We need to force IO80211Family.kext
from System/Library/Extensions
to have complete support of WiFi with Airportitlwm.kext.
0 | Dictionary | Keys / Values | Info about |
---|---|---|---|
BundlePath | String | System/Library/Extensions/IO80211Family.kext | Location of the Driver Loaded by Force |
Identifier | String | com.apple.iokit.IO80211Family | Internal Identifier |
ExecutablePath | String | Contents/MacOS/IO80211Family | Location of the Executable File |
Enabled:
AppleXcpmCfgLock
(We don't have options to unlock de CFG-Lock on the BIOS so this option will create a virtual CFG)DisableLinkeditJettison
(Let Lilu.kext and other kexts run better)PowerTimeoutKernelPanic
(Prevents kernel panics because Apple Drivers)
Misc
Misc things related with Visual and security also Boot Picker of OpenCanopy.
Enabled:
DisableWatchDog
(Disables Timeouts on Boot wen Debug
Enabled:
-
AllowSetDefault
(Allow setting a Default Boot entry on the picker) -
BlacklistAppleUpdate
(Stop reciving firmware updates intended for real Mac hardware)
DmgLoading
SignedScanPolicy
0SecureBootModel
DefaultVault
Optional
Remove from EFI/OC/Tools
everything. This should be a clean key
NVRAM
NVRAM things for the Non-volatile memory
7C436110-AB2A-4BBB-A880-FE41995C9F82 | Dictionary | Keys / Values |
---|---|---|
boot-args | String | |
csr-active-config | DATA | 00000000 |
prev-lang:kbd | String | en-US:0 |
PlatformInfo
*PlatformInfo is mainly for "faking" your macOS model so it fits better with macOS expected specifications.
Download GenSMBIOS (opens new window), and open the GenSMBIOS.command with Right-Click > Open, follow the intructions on the Terminal Window.
Generic | Dictionary | Keys / Values |
---|---|---|
AdviseWindows | Boolean | False |
SystemMemoryStatus | String | Auto |
MLB | String | Generate your own with GenSMBIOS |
ProcessorType | Number | 0 |
ROM | DATA | Your own MAC Address |
SpoofVendor | Boolean | True |
SystemProductName | String | MacBookPro15,3 |
SystemSerialNumber | String | Generate your own with GenSMBIOS |
SystemUUID | String | Generate your own with GenSMBIOS |
These values are masked from the provided config file, make sure you enter your own before testing!
UpdateDataHub Boolean
Enable
UpdateNVRAM Boolean
Enable
UpdateSMBIOS Boolean
Enable
UpdateSMBIOSMode String
Create
UEFI
UEFI have multiple porpouses for all things.
Enabled:
- EnableJumpStart (Load APFS driver from APFS Container)
- HideVerbose (Hide APFS Verbose on boot)
Enabled:
- GraphicsInputMirroring (Fixes for Keyboard input on certain stages)
OpenRuntime.efi
(OpenCore Engine)HFsPlus.efi
(Driver for HFsPlus on every hadrware)OpenCanopy.efi
(Fancy Boot Picker)
Enabled:
KeySupport
Enabled:
ProvideConsoleGop
Enabled:
FirmwareVolume
Enabled:
EnableVectorAcceleration
ReleaseUsbOwnership
(Mainly for USB fixes)RequestBootVarRouting
(Redirects some Variables for macOS)
Fixing Trackpad - What I identified is:
- 2 fast clicks = 1 Force Click
- 1 click = nothing on most parts of OS or bug with Voodoo2IC
- Small issues with trackpad... Here's the Settings I Use for myself (Ventura's Settings are a mess)
Open Terminal.app and run those commands:
sudo pmset autopoweroff 0
sudo pmset powernap 0
sudo pmset standby 0
sudo pmset proximitywake 0
sudo pmset tcpkeepalive 0
These 5 commands help fixing possible Sleep/Wake Issues
- sudo rm /Library/Preferences/SystemConfiguration/NetworkInterfaces.plist
- sudo rm /Library/Preferences/SystemConfiguration/preferences.plist
These 2 commands help fixing possible iCloud Ban/iMessages Ban or WiFi/Ethernet Issues (Use only if you want or need)
Apple (macOS)
OpenCore Team (Bootloader)
Dortania (Guide)
PoomSmart (Base Repo)
MegaStood (iGPU Properties)