This repo is currently compatible with macOS Big Sur 11.0.1 (20B29), Catalina 10.15.7 Supplemental Update (19H15) and OpenCore 0.6.4
macOS Big Sur | macOS Catalina | macOS Mojave |
---|---|---|
11.0.1 (20B29) | 10.15.7 (19H15) | 10.14.6 (18G87) |
10.15.6 (19G2021) | 10.14.5 (18F132) | |
10.15.5 (19F101) | 10.14.4 (18E226) | |
10.15.4 (19E287) | 10.14.3 (18D42) | |
10.15.3 (19D76) | 10.14.2 (18C54) | |
10.15.2 (19C57) | 10.14.1 (18B75) | |
10.15.1 (19B88) | 10.14 (18A389) | |
10.15 (19A583) |
Read the entire README before you start.
I am not responsible for any damages you may cause.
Should 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 this bootloader configuration useful, consider giving it a star to make it more visible.
If you find my work useful, please consider donating via PayPal.
This repo contains information for getting macOS 10.15.x Catalina working on a Huawei MateBook X Pro (2018 Edition) laptop.
This is intended to create a "fully" functional (as far as possible) hackintosh for the Huawei Matebook X Pro. If you would like to get started with creating a hackintosh on your MBXP but have non experience, I would highly recomend following Dortania's OpenCore Install guide and then returning here for troubleshooting. With each new release of macOS we need to resolve each new "minor issue" we run into. The installation is not perfect yet since it's a continuos work-in-progress, but I'm glad to say that I learned a lot in the meantime. All of the steps I made to get to this point were a result of countless hours of reading along with trial and error. I am by no means an expert so any help to get this project functional is very appreciated!
The compatibility is good for the most part, most of the stuff works like it would on a real MacBook, including camera, audio, touchpad, iCloud services. The experience is pleasant, as the laptop is smooth and responsive under macOS Catalina. Battery life is quite great (from personal experience it lasts from 8 to 10 hours for light works depending on its age with a behaviour very similar to Windows 10). The Intel WiFi card is soldered onto the motherboard, which means it can't be replaced with a Broadcom one, but the Intel card is now functional albeit not operating at full speeds - I am getting 50/10 mbit up/down on a 200/20 connection, which is fine for most use cases. With the latest itlwm.kext
even Handoff and Continuity features are working, except for AirDrop.
This repository is for personal purposes
Quick note: my serial number, MLB and UUID have been removed from the config.plist
. Please use CorpNewt's GenSMBIOS to create your own.
Specifications | Details |
---|---|
Computer model | Huawei Matebook X Pro 2018 Space Gray |
Processor | Intel Core i7-8550U Processor @ 1.8 GHz |
Memory | 8 GB LPDDR3 2133 MHz |
Hard Disk | LiteON SSD PCIe NVMe 512 GB [CA3-8D512] |
Integrated Graphics | NVIDIA GeForce MX150 / Intel(R) UHD Graphics 620 |
Screen | JDI 3k Display @ 3000 x 2000 (13.9 inch) |
Sound Card | Realtek ALC256 |
Wireless Card | Intel Dual Band Wireless-AC 8265/8275 |
Bluetooth Card | Intel Bluetooth 8265/8275 |
Device Firmware Bios version: 1.28
See Current status
What's working
- Intel(R) UHD 620 Graphics card
- Intel(R) Wireless-AC 8265/8275 & Intel(R) Bluetooth
- Audio for Realtek ALC256 card (via AppleALC and layout-id 97)
- Power Management with support for HWP (Intel Speed Shift & Intel SpeedStep)
- Automatic Backlight control (with more granular levels)
- Backlight shortcuts (F1 [brightness level down] - F2 [brightness level up])
- Volume shortcuts (F4 [mute] - F5 [audio level down] - F6 [audio level up])
- Sleep and Wake (or Hibernation)
- Battery support with better memory access
- Headphone jack [2 in 1] (via ALCPlugFix)
- Speaker (4 Channels) & Internal Mic
- HDMI 2.0 up to two 4K @60 Hz monitors (via LSPCON)
- Native Color Profile for Display JDI 3k
- TouchPad (via GPIO interrupt mode) and native gestures
- Touchscreen
- Updated support for LiteON SSD PCIe NVMe
- PCI Devices latency support and complete description for System Information app
- USB Ports (Type-A & Type-C) with proper power levels
- Thunderbolt Port
- HD Camera
- Native NVRAM (
via OcQuirks)
What's not working
- Discrete graphics card (NVIDIA GeForce MX150) is not working, since macOS doesn't support Optimus technology
- Have used
SSDT-DDGPU.aml
to disable it in order to save power.
- Have used
- Fingerprint sensor is not working
- Have used
SSDT-UIAC.aml
to disable it in order to save power.
- Have used
- Intel Wi-Fi (Intel Wireless 8265/8275) is
not (yet)working:- see in Network section](/Network) for instructions to load
itlwm
andHeliPort
to drive our Intel Wi-Fi card: it is still in beta phase, but with support for WPA/WPA2 and 2.4 - 5 GHz bands - see in Network section for instructions to load
AppleIntelWiFi.kext
for enabling our Intel Wi-Fi card: it is still in beta phase, but with support for WPA/WPA2 and 2.4 - 5 GHz bandsthere is hard work and, therefore, some progress in Intel Wi-Fi support. Hope to see a fully functionalkext
asap. - Previously I bought a USB Wi-Fi dongle: tp-link TL-WN823Nv3 with macOS updated driver support Wireless-USB-Adapter Driver
- see in Network section](/Network) for instructions to load
- Default bootloader:
OpenCore 0.6.4
Official release. See more info in Wiki section about migration. - No longer maintained: Clover
r5118
Official releaser5103
Dids release
OpenCore
- Support macOS 10.14 ~ macOS 11.0.1
- Should clean NVRAM after using
Clover
: pressSpace
in OpenCore boot page and then selectReset NVRAM
entry - Limited theme with
OpenCanopy
: a cleaner version with custom graphics has been provided by @R-Teer
Clover
- Support macOS 10.14 ~ macOS 10.15.7, but not macOS 11+
- Should clean NVRAM after using
OpenCore
: pressFn + F11
in Clover boot page
Enable Apple Services
Default SMBIOS settings of this repo is MacBookPro15,2
MacBookPro14,1
- Launch
Terminal
app - Copy the following script, paste it into the
Terminal
window, then pressEnter
git clone https://github.com/corpnewt/GenSMBIOS && cd GenSMBIOS && ./GenSMBIOS.command
- Type
2
, then pressEnter
- Drag your
config.plist
inside theTerminal
window - Type
3
, then pressEnter
- Type
MacBookPro15,2
, then pressEnter
Activate Surround Sound via MIDI
For a detailed guide on how to activate surround sound via MIDI on internal speakers and native audio shortcuts, see Wiki section
Undervolt using VoltageShift
For a detailed guide on how to undervolt our MBXP using VoltageShift
from the EFI folder instead of disabling SIP, see Wiki section
CPUFriend
CPU power management can be achieved by using CPUFriend.kext
while CPUFriendDataProvider.kext
defines how it should be done. CPUFriendDataProvider.kext
is generated for a specific CPU and power setting. The one supplied in this repository was made for i7-8550U
and is optimized for balanced performance.
- The kexts and SSDT for
i7-8550U
are here. CPUFriendDataProvider.kext
is generated for SMBIOSMacBookPro15,2
because of Kaby Lake R architecture.CPUFriend.kext
andCPUFriendDataProvider.kext
need to be put inCLOVER/kexts/Other
- Furthermore, you also need to put
SSDT-XCPM.aml
inCLOVER/ACPI/patched
for working as normal after awake.
Hibernation
Hibernation (suspend to disk or S4 sleep) is not fully supported on a Hackintosh: so it's recommended to disable it.
sudo pmset -a hibernatemode 0
sudo rm -rf /private/var/vm/sleepimage
sudo touch /private/var/vm/sleepimage
sudo chflags uchg /private/var/vm/sleepimage
Also, it's important to disable the other hibernation related functions.
sudo pmset -a standby 0
sudo pmset -a autopoweroff 0
Disabling additional features prevents random wakeups while the lid is closed.
sudo pmset -a powernap 0
sudo pmset -a proximitywake 0 [optional]
sudo pmset -b tcpkeepalive 0 [optional]
After every update, ALL these settings should be reapplied manually.
You can verify yuor power settings by typing in terminal sudo pmset -g live
. If you ever want to reset these settings: sudo pmset -a restoredefaults
Sleep discharge fix
Sleep function works flawlessly (both via software and via clamshell) thanks to the following improvements:
- "right" choice of framebuffer
C0870005
for Intel(R) UHD 620 Graphics card - use of attribute
acpi-wake-type
for the USB ControllerPciRoot(0x0)/Pci(0x14,0x0)
- set
HWPEnable
value to true for SpeedShift CPU support About power consumption, HWMonitor reports for the idle state both before and after sleep phase the same value for "CPU package total" (0.65-0.70 W). Sleep discharge rate is about 1% every 4:30 hours (during night).
Mapping scheme
Proper SSDT-UIAC.aml
and SSDT-USBX.aml
are used for USB Host Controller (XHCI-Device-ID: <2f 9d 00 00>
): these files are configured to map only the necessary ports (tested with IOReg) with the correct connector type and prevent it from shutdown issues.
Port | Address | Physical Location | Internal/External |
---|---|---|---|
HS01/SS01 | 00000001 /0000000D |
Left Port type-C (Power Source) - next to 3.5mm jack port | E |
HS02/SS02 | 00000002 /0000000E |
Right Port type-A | E |
HS03 | 00000003 |
Left Port type-C Thunderbolt | E |
HS05 | 00000005 |
Bluetooth USB Port | I |
HS07 | 00000007 |
Integrated HD Camera module | I |
Monitor temperatures and power consumption with HWMonitor
HWMonitor is relatively old and no longer supported, but it gets the job done.
Make dock animation faster and without delay
Run these lines in terminal:
defaults write com.apple.dock autohide-delay -float 0
defaults write com.apple.dock autohide-time-modifier -float 0.5
killall Dock
Fix AppleID issue on macOS Catalina
- If you encounter the problem with AppleID which cannot login and logout, this problem happened on both Hackintosh and Macintosh.
- Fix this issue with the following commands:
sudo -v
killall -9 accountsd com.apple.iCloudHelper
defaults delete MobileMeAccounts
rm -rf ~/Library/Accounts
killall -9 accountsd com.apple.iCloudHelper
sudo reboot
Graphics section
Refer to: here
Dual Booting: fix Windows time
Windows uses local time by default while macOS uses universal time. You can switch Windows to use universal time. Open up a command prompt in Windows as an administrator and copy and paste this in:
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_QWORD /f
That will make Windows use universal time instead of local time. Then update your clock via the built-in internet time setting to update the time.
Item | Version | Remark |
---|---|---|
MacOS | 11.0.1 | |
OpenCore | 0.6.4 | Default Bootloader |
Clover | 5118 | Alternative (not more supported) Bootloader |
Lilu | 1.5.0 | Kext/process/framework/library patcher |
WhateverGreen | 1.4.5 | Handle Graphics card |
AppleALC | 1.5.5 | Handle/fix onboard audio |
CodecCommander | 2.7.2 | |
CPUFriend | 1.2.2 | Power management |
HibernationFixup | 1.3.8 | |
IntelBluetoothFirmware | 1.1.2 | Handle Bluetooth |
AirportItlwm | 1.2.0 beta | Handle native Wi-Fi card |
NullEthernet | 1.0.6 | |
NoTouchID | 1.0.4 | Disable TouchID |
NVMeFix | 1.0.4 | Fix for NVMe SSDs |
VoodooI2C | 2.5.2 | Handle I2C device |
VoodooI2CHID | 2.5.2 | Touchpad I2C satellite |
VoodooPS2Controller | 2.1.9 | Enable keyboard, alternative trackpad driver |
VirtualSMC + plugins | 1.1.9 | SMC chip emulation |
USBInjectAll | 0.7.6 | Inject USB ports |
Catalina 10.15.4 support
- Update
Clover
to r5107+ to support macOS 10.15.4 - Remove [config]
MSR 0xE2
kernel patch becauseClover
can automatically patch
<dict>
<key>Comment</key>
<string>MSR 0xE2 _xcpm_idle instant reboot(c) Pike R. Alpha</string>
<key>Disabled</key>
<false/>
<key>Find</key>
<data>ILniAAAADzA=</data>
<key>Replace</key>
<data>ILniAAAAkJA=</data>
</dict>
- Add [config]
setpowerstate_panic=0
kernel patch for macOS 10.15 according to Acindathera/AppleALC#513
<dict>
<key>Comment</key>
<string>Disable setPowerState panic with setpowerstate_panic=0 boot-args on 10.15 (credit vit9696)</string>
<key>Disabled</key>
<false/>
<key>MatchOS</key>
<string>10.15</string>
<key>Find</key>
<data>Y29tLmFwcGxlAA==</data>
<key>Replace</key>
<data>bm90LmFwcGxlAA==</data>
</dict>
- Add [config]
complete-modeset-framebuffers
property to Intel UHD Graphics 620 device section to improve HDMI
<key>PciRoot(0x0)/Pci(0x2,0x0)</key>
<dict>
...
<key>complete-modeset-framebuffers</key>
<data>AAAAAAAAAAE=</data>
...
</dict>
- Add [config]
force-online
andforce-online-framebuffers
properties to Intel UHD Graphics 620 device section to fix HDMI on macOS 10.15.4
<key>PciRoot(0x0)/Pci(0x2,0x0)</key>
<dict>
...
<key>force-online</key>
<data>AQAAAA==</data>
<key>force-online-framebuffers</key>
<data>AAAAAAAAAAE=</data>
...
</dict>
- Acidanthera
- Dortania's OC guide
- Rehabman's battery patch guide and Rehabman's ACPI hotpatching guide
- CorpNewt's tools
- OpenWireless project
- Daliansky's OC-little repo
- Daliansky's Xiaomi Pro Hackintosh
- Gnodipac886's MatebookXPro-hackintosh repo: this project was initially based on the hard work done by Gnodipac886 guy, but now it can be considered as a different project due to many and original very significant personal improvements in ALL the sections.
The greatest thank you and appreciation to Zero-zer0, GZXiaoBai and Benbender