profzei / Matebook X Pro 2018
Labels
Projects that are alternatives of or similar to Matebook X Pro 2018
macOS on Huawei Matebook X Pro 2018
This repo is currently compatible with macOS Big Sur, Catalina and OpenCore 0.6.7
macOS Big Sur | macOS Catalina | macOS Mojave |
---|---|---|
11.2.3 (20D91) | 10.15.7 (19H15) | 10.14.6 (18G87) |
11.2.2 (20D80) | 10.15.6 (19G2021) | 10.14.5 (18F132) |
11.2.1 (20D74) | 10.15.5 (19F101) | 10.14.4 (18E226) |
11.2 (20D64) | 10.15.4 (19E287) | 10.14.3 (18D42) |
11.1 (20C69) | 10.15.3 (19D76) | 10.14.2 (18C54) |
11.0.1 (20B29) | 10.15.2 (19C57) | 10.14.1 (18B75) |
10.15.1 (19B88) | 10.14 (18A389) | |
10.15 (19A583) |
DISCLAIMER
- 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.
- Complete EFI packs are available in the Releases page (please, refer to the rightside menu).
- Please do not clone or download the main branch for daily use: it may include unstable code just because it is my repository.
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.
Introduction
This repo contains information for getting macOS 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 very 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 Big Sur/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 as shown in the macOS menu bar screenshots below).
- 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 (however it is fine for most use cases). With the latest
AirportItlwm.kext
even Handoff and Continuity features are working, but with a very limited support for AirDrop and Apple Watch unlocking (see Changelog for OpenIntelWireless release v. 1.2.0 stable). For any issues aboutAirportItlwm.kext
please refer to OpenIntelWireless Gitter Page
This repository is for personal purposes
Generate your own SMBIOS Information
For privacy reasons, all SMBIOS information has been wiped out in the configuration file EFI/OC/config.plist
. You need to generate your unique SMBIOS
info by yourself (recommend to use CorpNewt's GenSMBIOS), and inject them into your config.plist
. For more details on dual booting settings, please, see also below OpenCore notes.
Configuration
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
Changelog
2021 - March - 09
See Current status
Status
- [x] Intel(R) UHD 620 Graphics card
- [x] Intel(R) Wireless-AC 8265/8275 & Intel(R) Bluetooth
- [x] Power Management with support for HWP (Intel Speed Shift & Intel SpeedStep)
- [x] Sleep and Wake (support for native macOS
hibernatemode3
) - [x] Hibernation (support for native macOS
hibernatemode25
withHibernationFixup.kext
) - [x] Battery support with better memory access and integration of Battery Information Supplement
- [x] Automatic Backlight control (with more granular levels)
- [x] Backlight shortcuts (F1 [brightness level down] - F2 [brightness level up])
- [x] Volume shortcuts (F4 [mute] - F5 [audio level down] - F6 [audio level up])
- [x] Audio for Realtek ALC256 card (via
AppleALC.kext
andlayout-id 97
) - [x] Speakers (4 Channels) & Internal Mic
- [x] Headphone jack [2 in 1] (via
ALCPlugFix
) - [x] HDMI 2.0 up to two 4K @60 Hz monitors (via LSPCON)
- [x] Native Color Profile for Display JDI 3k
- [x] TouchPad (via
GPI0
interrupt mode) and native macOS gestures - [x] Touchscreen
- [x] Updated support for LiteON SSD PCIe NVMe
- [x] PCI Devices latency support and complete description for System Information app
- [x] USB Ports Mapping (Type-A & Type-C) with proper power levels
- [x] Thunderbolt Port (limited support)
- [x] HD Camera
- [x] NVRAM native support
Notes
- Intel Bluetooth could not support some Bluetooth devices like some Bluetooth mouse since it is only a firmware injector; please, report any issues not here but only on OpenIntelWireless/IntelBluetoothFirmware Gitter Chat
-
Touchscreen support is disabled by default since release v. 1.8.0. Why? It seems that all
VoodooI2C
versions after 2.4 are affected to a greater or lesser extent byMulti_GPI0
issues. The solution proposed so far byVoodooI2C
developers is only a workaround and not a real fix: proposing to use theGPI0
pinning for touchpad and polling method for touchscreen is not a real fix because this approach increases interrupts and causes a degrade in battery life. This being the case and not needing to use the touchscreen in my daily work, for the moment I have disabled this function pending improvements that can only come fromVoodooI2C
developers.
Thunderbolt support
As reported in NotebookCheck review our Matebook X pro (2018) is utilizing only half the PCIe lanes for its single Thunderbolt 3 port (TB). Thus, its PCIe x2 Thunderbolt 3 port is only capable of providing a maximum of 20 Gbps instead of 40 Gbps when compared to a standard Thunderbolt 3 port with PCIe x4 lanes.
The connector type is Usb-C and it can do multiple protocols (TB, USB 2/3/3.1, DP, etc...) with different backing controllers. The problem on Hackintoshes is mostly about TB on Usb-C, because the firmware and power management of Apple's TB-controllers works entirely different than those for other OS'es. So even if it's the same hardware found on Windows laptops, they don't "just work" because of the different firmware.
The ACPI-part for handling Thunderbolt 3 port and its power management has been implemented:
- it enables not only the PCIe-to-PCIe-bridge mode of the TB controller but also the native drivers which make it possible to completely poweroff the controller after using the TB port, saving battery life and prevent the controller from preventing the CPU goes into deeper C-State
- the ICM is disabled on boot to let OSX' drivers take over the job
- the TB port works when any device is plugged into it at the boot time: this means no hot-plug
- it's largely untested since I don't have any TB 3 devices.
For reference, see Thunderbolt 3 Fix and ThunderboltPatcher for related attempts to fix TB by patching its firmware.
Due to lack of Thunderbolt devices my interest in this feature is very marginal; therefore, in my default config.plist
, Thunderbolt controller has been left disabled.
Steps for enabling support for Thunderbolt controller (\_SB.PCI0.RP09
):
- disable
SSDT-DTB3.aml
- enable all
SSDT-TB-DSB*.aml
- enable
TB3: _GPE.NTFY,1,S to XTFY
binary patch - enable
TB3: RP9._INI,0,N to XINI
binary patch
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
- Fingerprint readers on Macbooks are managed by T2 chip which has not been very throughly reverse engineered yet
- Have used
SSDT-XHC.aml
to disable it (in order to save some power).
Bootloader Firmware
- Default bootloader:
OpenCore 0.6.7
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.2
-
For dual-booting systems, Windows Activation may fail due to different hardware UUID generated by OpenCore
- According to OpenCore Official Configuration, you are highly recommended to inject the original Windows system UUID to
PlatformInfo -> Generic - >SystemUUID
inEFI/OC/config.plist
: runwmic csproduct get UUID
command in Windows PowerShell app
- According to OpenCore Official Configuration, you are highly recommended to inject the original Windows system UUID to
- Limited theme with
OpenCanopy
: a cleaner version with custom graphics has been provided by @R-Teer
Post - Install Settings
Enable Tap (with one finger) for Touchpad
Starting from VoodooI2C v. 2.4.1, the click down action is emulated to force touch, which causes the failure of click down and drag gestures.
For example, you can turn off Force Click
in System Preferences -> Trackpad
or choose three finger drag in System Preferences -> Accessibility -> Mouse & Trackpad -> Trackpad Options
Suggested configuration:
Enable Apple Services
Default SMBIOS settings of this repo is MacBookPro14,1
MacBookPro15,2
- 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
MacBookPro14,1
, then pressEnter
Sleep & Hibernation settings
Sleep function works flawlessly (both via software and via clamshell) like hibernation (suspend to disk or S4 sleep). In order to get automatic sleep working properly like real Macs, the following settings are mandatory:
sudo pmset -a standby 0
sudo pmset -a powernap 0
sudo pmset -a proximitywake 0
sudo pmset -a tcpkeepalive 0
sudo pmset -a womp 0
-
powernap
will wake up the system from time to time to check mail, make Time Machine backups, etc... -
proximitywake
can wake your machine when an iDevice is near. -
tcpkeepalive
has resolved periodic wake events after setting up iCloud. -
womp
is wake on lan.
Default macOS setting is hibernatemode 3 i.e. sleep mode.
After every update, ALL these settings should be reapplied manually!
Suggested configuration in System Preferences -> Bluetooth -> Advanced
for Bluetooth devices for avoiding random wake events during sleep:
Hibernation mode can be enabled only via console command sudo pmset -a hibernatemode 25
and is fully supported by Matebook X Pro (obviously using HibernationFixup
kext). If, however, you would like to disable it, then
sudo pmset -a hibernatemode 0
sudo pmset -a autopoweroff 0
sudo rm -rf /private/var/vm/sleepimage
sudo touch /private/var/vm/sleepimage
sudo chflags uchg /private/var/vm/sleepimage
You can verify your power settings by typing in terminal sudo pmset -g live
. If you ever want to reset these settings: sudo pmset -a restoredefaults
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).
Power Management settings
With CPUFriend.kext
and SSDT-PM.aml
we achieved a very good power management on battery (without compromising performance) as reported in the following macOS menu bar screeshots:
- a mean 10% rate discharge for hour
- temperature range from 30°C to 40°C for light/medium CPU workload
- a mean
CPU package total
value of about 0.65-0.70 W for idle state
Suggested configuration for Battery and Power Adapter settings in System Preferences -> Battery
are reported in the following:
Activate Surround Sound via MIDI
By default macOS only uses 2 out of our MBXP 4 speakers: if you want to achieve a surround sound system on macOS, you need to create an Aggregate Device. But then macOS does not allow you to control the volume of the sound: yes, it is real and is a general behaviour of MacBookPro machines.
For a detailed guide on how to activate surround sound via MIDI on internal speakers and native audio shortcuts, see Wiki section
Fix Headphone jack switch
Refer to my custom ALCPlugFix instructions for properly setting/fixing headphone jack switch for Matebook X Pro.
Undervolt using VoltageShift
Undervolting is a great way to maximise performance, lower power consumption and reduce temperatures.
For a detailed guide on how to undervolt our MBXP using VoltageShift
from the EFI folder instead of disabling SIP, see Wiki section
Optional Settings
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
Remove Eject icon from macOS menu bar
Apple no longer sells any Mac with a built-in optical drive, but many users still rely on CDs, DVDs, and Blu-ray discs for both work and entertainment.
How do I get rid of this icon?
- Press and hold the
Apple/Command
key - Click and drag the
Eject
menu icon off the menu bar - Once you start dragging the
Eject
icon, you can release theApple/Command
key - When you see a small "x" icon appear, then release the mouse button: it will remove the
Eject
icon from your menu bar.
How to add Eject icon to menu bar
- From the macOS desktop, make sure Finder is the active application and then select
Go -> Go to Folder
from the menu bar. Alternatively, you can use the keyboard shortcutShift-Command-G
- Enter the following location:
/System/Library/CoreServices/Menu Extras/
- Find and double-click on
Eject.menu
Increase Launchpad icons number
By default (for a 13 inch MacBook Pro), the Launchpad shows the icons in 5×7 format.
Type in Terminal the following commands:
defaults write com.apple.dock springboard-rows -int 6
defaults write com.apple.dock springboard-columns -int 9;killall Dock
Relaunch the Launchpad to see the icons are changed now.
Finally you can revert to the default setting with the following commands:
defaults delete com.apple.dock springboard-rows
defaults delete com.apple.dock springboard-columns
defaults write com.apple.dock ResetLaunchPad -bool TRUE;killall Dock
(Warning: the last command also will remove any custom folders you have created)
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
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.
Add custom shortcuts to F7, F9 & F10 hotkeys
With the latest update and inclusion of the new SSDT-KBD.aml
we are now able to reconfigure the shortcuts to custom settings.
For a detailed guide on how to enable original F7
, F9
& F10
hotkeys using native Automator app, please see Wiki section.
Otherwise, you can follow these suggestions [credit @R-Teer]:
- There are various freeware software tools to achive this such as Karabiner Elements or Ukelele.
- Personally I use the application BetterTouchTool, which is paid but incredibly useful and allows custom trackpad gestures amongst other features.
- My current settings are as follows:
Update tracker
Item | Version | Remark |
---|---|---|
MacOS | 11.2.3 | |
OpenCore | 0.6.7 | Default Bootloader |
Lilu | 1.5.1 | Kext/process/framework/library patcher |
WhateverGreen | 1.4.8 | Handle Graphics card |
AppleALC | 1.5.8 | Handle/fix onboard audio |
CodecCommander | 2.7.2 | Fix headphone audio switch |
CPUFriend | 1.2.3 | Power management |
HibernationFixup | 1.3.9 | Handle hibernate status |
IntelBluetoothFirmware | 1.1.2 | Handle Bluetooth |
AirportItlwm | 1.3.0 beta | Handle native Wi-Fi card |
NullEthernet | 1.0.6 | Fake Ethernet card |
NoTouchID | 1.0.4 | Disable TouchID |
NVMeFix | 1.0.5 | Fix for NVMe SSDs |
RestrictEvents | 1.0.0 | Block unwanted processes |
VoodooI2C | 2.5.2 | Handle I2C device |
VoodooI2CHID | 2.5.2 | Touchpad I2C satellite |
VoodooPS2Controller | 2.2.2 | Enable keyboard, alternative trackpad driver |
VirtualSMC + plugins | 1.2.1 | SMC chip emulation |
USBInjectAll | 0.7.6 | Inject USB ports |
VoltageShift | 1.25 | Undervoltage tool |
Dev. Notes
In Wiki section are stored some significant/advanced technical guides.
USB port mapping scheme
Proper SSDT-XHC.aml
is used for USB Host Controller (XHCI-Device-ID: <2f 9d 00 00>
): this file is 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 |
Boot arguments
A very minimal set of boot arguments has been achieved for actual config.plist
:
-
igfxnorpsc=1
enables RPS control patch and improves IGPU performance -
itlwm_cc=IT
changes/enables the country code to IT-Italy forAirportItlwm.kext
Power Management
Verify working XCPM
configuration by typing the commands below:
sysctl machdep.xcpm.mode
// If it returns '1', then it means the XCPM is active.
Verify if the X86PlatformPlugin.kext
is loaded:
kextstat|grep -y x86plat
Verify loaded/injected kexts in macOS system:
kextstat -kl | awk '!/com\.apple/{printf "%s %s\n", $6, $7}'
Saving last boot info:
log show --predicate 'process == "kernel"' --style syslog --source --debug --last boot > sys_log.txt
Fixing Xcode issue
If you encounter an issue with Xcode, you could kill it with the following commands:
killall Xcode
xcrun -k
xcodebuild -alltargets clean
rm -rf "$(getconf DARWIN_USER_CACHE_DIR)/org.llvm.clang/ModuleCache"
rm -rf "$(getconf DARWIN_USER_CACHE_DIR)/org.llvm.clang.$(whoami)/ModuleCache"
rm -rf /Applications/Xcode.app
rm -rf ~/Library/Caches/com.apple.dt.Xcode
rm -rf ~/Library/Developer
rm -rf ~/Library/MobileDevice
rm -rf ~/Library/Preferences/com.apple.dt.Xcode.plist
rm -rf ~/Library/Preferences/com.apple.dt.xcodebuild.plist
sudo rm -rf /Library/Preferences/com.apple.dt.Xcode.plist
sudo rm -rf /System/Library/Receipts/com.apple.pkg.XcodeExtensionSupport.bom
sudo rm -rf /System/Library/Receipts/com.apple.pkg.XcodeExtensionSupport.plist
sudo rm -rf /System/Library/Receipts/com.apple.pkg.XcodeSystemResources.bom
sudo rm -rf /System/Library/Receipts/com.apple.pkg.XcodeSystemResources.plist
sudo rm -rf /private/var/db/receipts/com.apple.pkg.Xcode.bom
Credits
Standing on the shoulders of giants! Based on the works of many great people.
- 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
The greatest thank you and appreciation to Zero-zer0, GZXiaoBai and Benbender whose work is very inspiring!
And to everyone else who supports and uses my repo.
Other Matebook X Pro repositories [Old]
- 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.