Need help with Matebook-X-Pro-2018?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

profzei
238 Stars 29 Forks Apache License 2.0 540 Commits 16 Opened issues

Description

macOS on Huawei Matebook X Pro 2018

Services available

!
?

Need anything else?

Contributors list

macOS  on Huawei Matebook X Pro 2018

Huawei Big Sur 11.0

This repository is currently compatible with macOS Monterey, Big Sur, Catalina and OpenCore 0.7.3

Monterey (beta) macOS Big Sur macOS Catalina macOS Mojave
12.0 (21A5506j) 11.6 (20G165) 10.15.7 (19H15) 10.14.6 (18G87)
11.5.2 (20G95) 10.15.6 (19G2021) 10.14.5 (18F132)
11.5.1 (20G80) 10.15.5 (19F101) 10.14.4 (18E226)
11.5 (20G71) 10.15.4 (19E287) 10.14.3 (18D42)
11.4 (20F71) 10.15.3 (19D76) 10.14.2 (18C54)
11.3.1 (20E241) 10.15.2 (19C57) 10.14.1 (18B75)
11.3 (20E232) 10.15.1 (19B88) 10.14 (18A389)
11.2.3 (20D91) 10.15 (19A583)
11.2.2 (20D80)
11.2.1 (20D74)
11.2 (20D64)
11.1 (20C69)
11.0.1 (20B29)
Support for macOS Monterey is on the way!

For testing macOS Monterey:

  • download latest beta from https://mrmacintosh.com
  • check the InstallAssistant.pkg integrity running the following in Terminal app:
    openssl dgst -sha256 InstallAssistant.pkg
  • finally, follow Dortania's steps for making the installer in macOS running in Terminal app:
    sudo /Applications/Install\ macOS\ Monterey\ beta.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume
  • download from this repo proper config-install.plist

If you find my work useful: * please consider giving it a star to make it more visible. * please consider donating via PayPal. donate

DISCLAIMER

  • For best results, read the entire README before you start and follow the install instruction throughly.
  • I am not responsible for any damages you may cause.
  • This is not a support forum.
  • 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 or very old code just because it is my repository.
  • EFI is configured with Monterey or Big Sur in mind: if you are using it on Catalina (or Mojave), read the whole guide to make the necessary changes.
  • EFI is configured for macOS installation on internal NVMe SSD both in dual-boot configuration with Windows and as a single OS (macOS installation on external SSDs are not taken into account)

Disclaimer

This repository is for personal purposes only.

Introduction

This repo contains the files needed for getting macOS working on a Huawei MateBook X Pro (2018 Edition) laptop with OpenCore. * This is intended to create a "fully" functional (as far as possible) hackintosh for the Huawei Matebook X Pro. * The project can be considered stable. * With each new release of macOS we need to resolve each new "minor issue" we run into. All of the steps I made to get to this point were a result of countless hours of reading along with trial and error, however I'm glad to say that I learned a lot in the meantime. I am by no means an expert so any effective help (suggestions, observations, ...) to tune this project is very appreciated! * If you would like to get started with creating a hackintosh on your MBXP but have non experience, I would highly recommend following Dortania's OpenCore Install guide and then returning here for troubleshooting or last improvements.

Summary

  • 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 about
    AirportItlwm.kext
    please refer first to OpenIntelWireless Troubleshooting page and then to OpenIntelWireless Gitter Page

MBXP Battery Menu bar

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
. - With every EFI update you retrieve from here, please, remember to transfer your Device details under
PlatformInfo -> Generic
in your
config.plist
. - For more details on dual booting settings, please, see also below OpenCore notes.

About this Mac

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
Benchmarks
System configuration GPU - OpenCL Performance 4731

Compare with these.

Changelog

2021 - October - 11

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
    with
    HibernationFixup.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
    and
    layout-id 97
    )
  • [x] Speakers (4 Channels) & Internal Mic
  • [x] Headphone jack 2 in 1
  • [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
  1. 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
  2. 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 by Multi_GPI0 issues. The solution proposed so far by VoodooI2C developers is only a workaround and not a real fix: proposing to use the GPI0 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 from VoodooI2C developers.
  3. If you would like to increase benchmark values for your Intel UHD 620 Graphics card, you need to set rps-control key in DeviceProperties -> PciRoot(0x0)/Pci(0x2,0x0):
...
<key>DeviceProperties</key>
<dict>
    <key>Add</key>
    <dict>
        ...
        <key>PciRoot(0x0)/Pci(0x2,0x0)</key>
        <dict>
            ...
            <key>rps-control</key>
            <data>AQAAAA==</data>
            ....
        </dict>
        ...
    </dict>
</dict>
...

Keep in mind that rps-control property has been removed to lower down GFX Request.

Notes: Support for external Display

Intel UHD 620 Graphics card works well with external display from both USB type-C ports.

  • Suggestion: prefer USB type-C to DisplayPort cable over USB type-C to HDMI one where possible
  • Removed for PciRoot(0x0)/Pci(0x2,0x0) the key force-online (which was set to <data>AQAAAA==</data>). Why?
    • With latest WhateverGreen releases our available connector types are 1 LVDS (internal monitor) and 2 DP; using an external monitor connected with a USB C-type to DP cable I verified the correct recognition and functioning of my BenQ PD2500Q even after the system wake-up. This force-online key could instead be useful for connections using a USB-C type to HDMI cable.
    • Eliminating this key reduces tons of warning messages like [IGFB] [ERROR] [AGDC] Failed with status -536870212 for stream access aux in system log during boot phase: that warning is correct/normal since it reports that the display is not connected for the remaining ports (i.e. FB1 and FB2 in our case using only FB0 i.e. internal display); eliminating those warnings reduces log-file size (in debug-mode) from 2.6 to 1.6 MB thus reducing slightly boot loading time. Reference
  • force-online and force-online-framebuffers work around (possible) HDMI black screen issues after waking from sleep
...
<key>DeviceProperties</key>
<dict>
    <key>Add</key>
    <dict>
        ...
        <key>PciRoot(0x0)/Pci(0x2,0x0)</key>
        <dict>
            ...
            <key>force-online</key>
            <data>AQAAAA==</data>
            <key>force-online-framebuffers</key>
            <data>Af////////8=</data>
            ....
        </dict>
        ...
    </dict>
</dict>
...
Notes: NVMe SSD support
  1. Very rarely some users reported the following kernel panic after sleep:
    panic(cpu 0 caller 0xffffff800b6ce860): nvme: "Fatal error occurred. CSTS=0xffffffff
    ...
    It's certainly a NVMe error, but it is not due to EFI released in the present repo:

In case you run into such an issue, it is recommended adding forceRenderStandby=0 boot-args in your config.plist to disable RC6 Render Standby.

  1. If your laptop has a Samsung PM981 NVMe SSD or any unsupported SSD listed in dortania/bugtracker#192, then it's obviously not supported here. I have no way to make my EFI work on broken IONVME compatibility SSDs.

Obvious solutions:

  • buy another (internal) NVMe SSD
  • or install macOS on an external SSD drive

Even if your macOS installed on an external SSD drive, you need to add a new ACPI patch to disable PM981 (or other non-supported NVMe SSDs) detection on macOS:

DefinitionBlock ("", "SSDT", 2, "HUAWEI", "_DRP05", 0)
{
    External (OSDW, MethodObj)

    External (_SB_.PCI0.RP05, DeviceObj)

    Scope (\_SB.PCI0.RP05)
    {
        OperationRegion (DE01, PCI_Config, 0x50, One)
        Field (DE01, AnyAcc, NoLock, Preserve)
        {
                ,   1, 
                ,   3, 
            DDDD,   1
        }
    }

    Scope (\)
    {
        If (OSDW ())
        {
            \_SB.PCI0.RP05.DDDD = One
        }
    }
}
Notes: Bios version

If your BIOS version is &gt; 1.30 then edit config.plist disabling SSDT-BIOS.aml in ACPI -&gt; Add section:

  • method _QBF (related to battery thermal management) is added only for BIOS versions up to 1.30 since it was introduced by Huawei starting from v. 1.33.
Notes: OpenCore and Windows Activation

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 -&gt; Generic - &gt;SystemUUID in EFI/OC/config.plist: run wmic csproduct get UUID command in Windows PowerShell app
Catalina (or Mojave) support for AirportItlwm

If you use this release in macOS Catalina you need to make the following changes in the config.plist to make AirportItlwm.kext support active:

  • DmgLoading set to Signed
  • SecureBootModel set to Default
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: Incompatible Hardware
  • 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.
  • 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.7.3
    Official release.
    • Support macOS 10.14 ~ latest macOS release
    • As theme for
      OpenCanopy
      , a cleaner version with custom graphics has been provided by @R-Teer
    • See more info in Wiki section about migration from Clover.
  • No longer maintained: Clover
    r5118
    Official release ~~
    r5103
    Dids release~~

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 -&gt; Trackpad or choose three finger drag in System Preferences -&gt; Accessibility -&gt; Mouse &amp; Trackpad -&gt; Trackpad Options

Suggested configuration:

Touchpad Settings

Enable Apple Services

To use iMessage and other Apple services, you need to generate your own serial numbers. This can be done using CorpNewt's GenSMBIOS:

  • If Serial numbers have been correctly generated, these services (iMessage, FaceTime, ...) should work for you
  • If not, clean up and generate new serial number for your SMBIOS.

Default SMBIOS settings of this repo is MacBookPro15,2 MacBookPro14,1 MacBookPro16,3

  1. Launch Terminal app
  2. Copy the following script, paste it into the Terminal window, then press Enter
    git clone https://github.com/corpnewt/GenSMBIOS &amp;&amp; cd GenSMBIOS &amp;&amp; ./GenSMBIOS.command 
  3. Type 1 for downloading/updating MacSerial script
  4. Type 3, then press Enter
  5. Type MacBookPro15,2 10, then press Enter
  6. Then, go Apple Check Coverage page to check your generated serial numbers. If the website tells you that the serial number is not valid, that is fine. Otherwise, you have to generate a new set.
  7. Next you will have to copy the following values to your config.plist:
    • Serial Number -> PlatformInfo/Generic/SystemSerialNumber
    • Board Number -> PlatformInfo/Generic/MLB
    • SmUUID -> PlatformInfo/Generic/SystemUUID. Reboot and Apple services should work.
  8. If they don't, follow this in-depth guide. It goes deeper into clearing Keychain (missing this step might cause major issues), and much more.
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 -&gt; Bluetooth -&gt; Advanced for Bluetooth devices for avoiding random wake events during sleep:

Bluetooth settings

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 for Intel Core i7-8550U (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

MBXP Battery Menu bar MBXP Battery Menu bar

Suggested configuration for Battery and Power Adapter settings in System Preferences -&gt; Battery are reported in the following:

Battery settings Power Adapter settings

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

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:

BetterTouchTool Settings

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)

Monitor temperatures and power consumption with HWMonitor

HWMonitor is relatively old and no longer supported, but it gets the job done.

Make macOS zsh Terminal colorful

The default macOS Terminal looks very lame since it lacks in visibility: things should be colorful like Ubuntu. In the following steps, a proper solution for that is given without installing any custom theme:

  • Choose any black theme first as the color combination of my snippet is dark theme friendly
  • Open Terminal and type:
    cd
    touch zshrc
    open zshrc
  • Append the following code in the file:
    export CLICOLOR=1
    export LSCOLORS=GxBxCxDxCxegedabagaced
  • Save the file and quit your default editor
  • In Terminal type:
    mv zshrc .zshrc
  • Quit Terminal (cmd + q)
  • Now open a new Terminal window and the changes will be reflected

How did the customization worked?

By setting CLICOLOR=1 you are enabling colors.

LSCOLORS is the variable where you will define which file should display what color: it is used to color the directory and file list. It provides you 11 positions, each with FB (foregroundColor backgroundColor) combination. Thus it contains 22 characters. Below is the details of which position means what:

  1. directory
  2. symbolic link
  3. socket
  4. pipe
  5. executable
  6. block special
  7. character special
  8. executable with setuid bit set
  9. executable with setgid bit set
  10. directory writable to others, with sticky bit
  11. directory writable to others, without sticky

The colors for each position are placed as FB format; below is the list which color means what:

  • a: black
  • b: red
  • c: green
  • d: brown
  • e: blue
  • f: magenta
  • g: cyan
  • h: light grey
  • A: bold black, usually shows up as dark grey
  • B: bold red
  • C: bold green
  • D: bold brown, usually shows up as yellow
  • E: bold blue
  • F: bold magenta
  • G: bold cyan
  • H: bold light grey; looks like bright white
  • x: default foreground or background

The colors mentioned above are ANSI colors, but according to the version of your macOS or terminal, they may differ a little.

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 the Apple/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 -&gt; Go to Folder from the menu bar. Alternatively, you can use the keyboard shortcut Shift-Command-G
  • Enter the following location: /System/Library/CoreServices/Menu Extras/
  • Find and double-click on Eject.menu
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.

Terminal Commands

--> macOS specific

Disable Gatekeeper:

sudo spctl --master-disable

Disable Logging:

sudo rm /System/Library/LaunchDaemons/com.apple.syslogd.plist

Make dock animation faster and without delay:

defaults write com.apple.dock autohide-delay -float 0
defaults write com.apple.dock autohide-time-modifier -float 0.5
killall Dock

Show all Files in Finder:

defaults write com.apple.finder AppleShowAllFiles -bool true
killall Finder

Show User Library in Big Sur:

setfile -a v ~/Library
chflags nohidden ~/Library

Sidecar:

defaults write com.apple.sidecar.display AllowAllDevices -bool true
defaults write com.apple.sidecar.display hasShownPref -bool true

Update PreBoot Volume:

sudo diskutil apfs updatePreboot /

--> Hackintosh specific

Check working XCPM configuration:

sysctl machdep.xcpm.mode
   // If it returns '1', then it means the XCPM is active.

Check if the X86PlatformPlugin.kext is loaded:

kextstat|grep -y x86plat

Check loaded/injected kexts:

kextstat -kl | awk '!/com\.apple/{printf "%s %s\n", $6, $7}'

Debug ACPI Hotpatches:

log show --predicate "processID == 0" --start $(date "+%Y-%m-%d") --debug | grep "ACPI"

Debug Sleep/Wake-up issues

  • Clean all the logs: sudo log erase --all
  • Enter sleep mode: pmset sleepnow
  • Wait a few minutes so the logs can collect some data and then wake up the machine
  • Run log show --style syslog | fgrep "[powerd:sleepWake]"
    pmset -g assertions
    pmset -g

Check sleep log: pmset -g log | egrep '\b(Sleep|Wake|Start)\s{2,}'

Save last boot info:

log show --predicate 'process == "kernel"' --style syslog --source --debug --last boot &gt; sys_log.txt

Update tracker

Item Version Remark
MacOS 11.6
OpenCore 0.7.3 Default Bootloader
Lilu 1.5.6 Kext/process/framework/library patcher
WhateverGreen 1.5.3 Handle Graphics card
AppleALC 1.6.4 Handle/fix onboard audio
CodecCommander 2.7.2 Fix headphone audio switch
CPUFriend 1.2.4 Power management
HibernationFixup 1.4.3 Handle hibernate status
IntelBluetoothFirmware 2.0.1 Handle Bluetooth
AirportItlwm 2.1.0 beta Handle native Wi-Fi card
NullEthernet 1.0.6 Fake Ethernet card
NoTouchID 1.0.4 Disable TouchID
NVMeFix 1.0.9 Fix for NVMe SSDs
RestrictEvents 1.0.4 Block unwanted processes
VoodooI2C 2.5.2 Handle I2C device
VoodooI2CHID 2.5.2 Touchpad I2C satellite
VoodooPS2Controller 2.2.4 Enable keyboard, alternative trackpad driver
VirtualSMC + plugins 1.2.7 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: &lt;2f 9d 00 00&gt;): 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:

  1. igfxrpsc=1 enables RPS control patch and improves IGPU performance
  2. itlwm_cc=IT changes/enables the country code to IT-Italy for AirportItlwm.kext
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
Fixing Command Line Tools

It may occur Big Sur (or Xcode) updates remove the CLT which are, for example, required by Homebrew. Simply removing their folder and reinstalling them worked; open your Terminal app and type the following commands:

sudo rm -rf /Library/Developer/CommandLineTools
sudo xcode-select --install
Fixing Notification banner

It may occur some notifications won't appear in Big Sur (check you don't have "Do not Disturb" on...). Simply deleting ~/Library/Preferences/com.apple.ncprefs.plist and then restart your machine.

Changing Mac computer name
  • Open your Terminal app and perform the following tasks to change the workstation hostname using the scutil command
    sudo scutil --set HostName ""
    sudo scutil --set ComputerName "MacBook Pro"
    sudo scutil --set LocalHostName MacBook-Pro
    where
  1. HostName is your fully qualified hostname
  2. ComputerName is the user-friendly computer name you see in Finder
  3. LocalHostName is the name usable on the local network i.e. the Bonjour hostname of your Mac
  • Flush the DNS cache by typing dscacheutil -flushcache
  • Restart the device.
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

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.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.