GithubHelp home page GithubHelp logo

alex-spataru / matebook-x-pro-2018 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from profzei/matebook-x-pro-2018

0.0 2.0 0.0 141.88 MB

macOS on Huawei Matebook X Pro 2018

License: Apache License 2.0

Shell 0.61% ASL 99.39%

matebook-x-pro-2018's Introduction

Huawei Matebook X Pro (2018 Edition)

Model BIOS LICENSE Release Wiki

macOS on Huawei Matebook X Pro 2018

Huawei Big Sur 11.0

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)

macOS Big Sur 11.0.1 is here!

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.

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. donate

Introduction

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.

MBXP Battery Menu bar

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.

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 Single-Core 4618

Changelog

2020 - December - 10

See Current status

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.
  • Fingerprint sensor is not working
    • Have used SSDT-UIAC.aml to disable it in order to save power.
  • Intel Wi-Fi (Intel Wireless 8265/8275) is not (yet) working:
    • see in Network section](/Network) for instructions to load itlwm and HeliPort 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 bands there is hard work and, therefore, some progress in Intel Wi-Fi support. Hope to see a fully functional kext asap.
    • Previously I bought a USB Wi-Fi dongle: tp-link TL-WN823Nv3 with macOS updated driver support Wireless-USB-Adapter Driver

Bootloader Firmware

OpenCore
  • Support macOS 10.14 ~ macOS 11.0.1
  • Should clean NVRAM after using Clover: press Space in OpenCore boot page and then select Reset 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: press Fn + F11 in Clover boot page

Post - Install

Enable Apple Services

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

  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 && cd GenSMBIOS && ./GenSMBIOS.command 
  3. Type 2, then press Enter
  4. Drag your config.plist inside the Terminal window
  5. Type 3, then press Enter
  6. Type MacBookPro15,2, then press Enter
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

Power management

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 SMBIOS MacBookPro15,2 because of Kaby Lake R architecture.
  • CPUFriend.kext and CPUFriendDataProvider.kext need to be put in CLOVER/kexts/Other
  • Furthermore, you also need to put SSDT-XCPM.aml in CLOVER/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 Controller PciRoot(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).

USB port mapping

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

Optional

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.

Update tracker

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

Development

Catalina 10.15.4 support
  • Update Clover to r5107+ to support macOS 10.15.4
  • Remove [config] MSR 0xE2 kernel patch because Clover 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>
	<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 and force-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>

Credits

The greatest thank you and appreciation to Zero-zer0, GZXiaoBai and Benbender

matebook-x-pro-2018's People

Contributors

imgbotapp avatar kian1991 avatar profzei avatar r-teer avatar tetrois avatar venipa avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.