黑苹果EFI大全|免费分享各种黑苹果EFI资源
First of all, you need to know that a some things will not work on macOS!
This repository contains all the necessary files that I used to Hackintosh my Razer Blade
This EFI is based on Razer Blade 15 Base Model 2019 Hackintosh by The Mysticle tutorial.
The current CLOVER EFI folder is not compatible with Catalina and Big Sur! Also, it uses CLOVER. You can download the EFI_OC folder which is a new EFI folder for macOS 10.15+ (cause it uses MacBookPro16,1 SMBIOS) that uses OpenCore, which will have better support for future macOS updates!
Also, there are no unnecessary patches on OpenCore because I only patched required SSDT, there is no DSDT patch like on CLOVER!
I will not explain you how to install macOS because there are a lot of tutorials to do it! I will only explain how to have maximum hardware working after macOS installation
21
for ALC256 codec)In my OpenCore EFI folder, I use AirportItlwm and IntelBluetoothFirmware for macOS Big Sur, if you use another macOS version, check itlwm and IntelBluetoothFirmware pages to see what you have to do. And, if you changed you WiFi / BT card, follow another tutorial like AirPortBrcmFixup one to get it working if needed.
I use AppleALC with layout-id
21 to fix audio. If you want, you can see all the layout-ids
I tried in this file.
First of all, you need to know that a some things will not work on macOS!
This repository contains all the necessary files that I used to Hackintosh my Razer Blade
This guide is based on Razer Blade 15 Advanced 2019 by stonevil and Razer Blade 15 2018 by vettz500 tutorials.
The current CLOVER EFI folder is not compatible with Catalina and Big Sur! Also, it uses CLOVER. You can download the EFI_OC folder which is a new EFI folder for macOS 10.15+ (cause it uses MacBookPro16,1 SMBIOS) that uses OpenCore, which will have better support for future macOS updates!
I will not explain you how to install macOS because there are a lot of tutorials to do it! I will only explain how to have maximum hardware working after macOS installation
The basic config that I used is config_UHD630.plist by RehabMan
21
for ALC256 codec)To fix audio, you will need AppleALC kext by acidanthera
You will need to change your Clover configuration :
Open the config.plist file with a plist editor like Xcode.
Uncomment the layout-id line (In Root > Devices > Properties > PciRoot(0)/Pci(0x1f,3) > layout-id) that is commented by default.
Then set layout-id to 21
.
You will need to patch your DSDT to get battery status working.
Clover Boot Menu
press F2
EFI
partition using Clover Configurator or by typing in a Terminalsudo diskutil mount EFI
/Volumes/EFI/EFI/CLOVER/ACPI/
.origin
to Desktop
folder.MaciASL
and copy it to /Applications/
.iasl
.iasl.zip
if required.iasl
from ~/Downloads/
folder to /usr/bin/
folder with command in Terminal
application.sudo cp ~/Downloads/iasl /usr/bin/
rm ~/Downloads/iasl
~/Desktop/origin/
folder in Terminal
application with command cd ~/Desktop/origin/
..aml
files with command in Terminal
applicationiasl -da -dl DSDT.aml SSDT*.aml
MaciASL
application and open file ~/Desktop/origin/DSDT.dsl
.Patch
button in toolbar. Patch
window:into method label B1B2 remove_entry;
into definitionblock code_regex . insert
begin
Method (B1B2, 2, NotSerialized) { Return(Or(Arg0, ShiftLeft(Arg1, 8))) }\n
end;
into device label EC0 code_regex BIF1,\s+16, replace_matched begin IF10,8,IF11,8, end;
into device label EC0 code_regex BIF2,\s+16, replace_matched begin IF20,8,IF21,8, end;
into device label EC0 code_regex BIF3,\s+16, replace_matched begin IF30,8,IF31,8, end;
into device label EC0 code_regex BIF4,\s+16, replace_matched begin IF40,8,IF41,8, end;
into device label EC0 code_regex BST0,\s+16, replace_matched begin ST00,8,ST01,8, end;
into device label EC0 code_regex BST1,\s+16, replace_matched begin ST10,8,ST11,8, end;
into device label EC0 code_regex BST2,\s+16, replace_matched begin ST20,8,ST21,8, end;
into device label EC0 code_regex BST3,\s+16, replace_matched begin ST30,8,ST31,8, end;
into method label _BIF code_regex \^\^EC0\.BIF1, replaceall_matched begin B1B2(^^EC0.IF10,^^EC0.IF11), end;
into method label _BIF code_regex \^\^EC0\.BIF2, replaceall_matched begin B1B2(^^EC0.IF20,^^EC0.IF21), end;
into method label _BIF code_regex \^\^EC0\.BIF3, replaceall_matched begin B1B2(^^EC0.IF30,^^EC0.IF31), end;
into method label _BIF code_regex \^\^EC0\.BIF4, replaceall_matched begin B1B2(^^EC0.IF40,^^EC0.IF41), end;
into method label _BST code_regex \^\^EC0\.BST0, replaceall_matched begin B1B2(^^EC0.ST00,^^EC0.ST01), end;
into method label _BST code_regex \^\^EC0\.BST1, replaceall_matched begin B1B2(^^EC0.ST10,^^EC0.ST11), end;
into method label _BST code_regex \^\^EC0\.BST2, replaceall_matched begin B1B2(^^EC0.ST20,^^EC0.ST21), end;
into method label _BST code_regex \^\^EC0\.BST3, replaceall_matched begin B1B2(^^EC0.ST30,^^EC0.ST31), end;
# added for Razer Blade 15 (2018), per JomanJi
into device label EC0 code_regex BIF0,\s+16, replace_matched begin IF00,8,IF01,8, end;
into method label _BIF code_regex \(\^\^EC0.BIF0, replaceall_matched begin (B1B2(\^\^EC0.IF00,\^\^EC0.IF01), end;
# utility methods to read/write buffers from/to EC
into method label RE1B parent_label EC0 remove_entry;
into method label RECB parent_label EC0 remove_entry;
into device label EC0 insert
begin
Method (RE1B, 1, NotSerialized)\n
{\n
OperationRegion(ERAM, EmbeddedControl, Arg0, 1)\n
Field(ERAM, ByteAcc, NoLock, Preserve) { BYTE, 8 }\n
Return(BYTE)\n
}\n
Method (RECB, 2, Serialized)\n
// Arg0 - offset in bytes from zero-based EC\n
// Arg1 - size of buffer in bits\n
{\n
ShiftRight(Add(Arg1,7), 3, Arg1)\n
Name(TEMP, Buffer(Arg1) { })\n
Add(Arg0, Arg1, Arg1)\n
Store(0, Local0)\n
While (LLess(Arg0, Arg1))\n
{\n
Store(RE1B(Arg0), Index(TEMP, Local0))\n
Increment(Arg0)\n
Increment(Local0)\n
}\n
Return(TEMP)\n
}\n
end;
# buffer fields
into device label EC0 code_regex (ECCM,)\s+(256) replace_matched begin ECCX,%2,//%1%2 end;
into method label _BIF code_regex \(\^\^EC0.ECCM, replaceall_matched begin (^^EC0.RECB(0x60,256), end;
Patch
DSDT.aml
to /Volumes/EFI/EFI/CLOVER/ACPI/patched/
/Volumes/EFI/EFI/CLOVER/kexts/Other
.Sometimes, the ACPIBatteryManager
can cause bugs! I suggest you to replace it by VirtualSMC and its SMCBatteryManager
extension.
ACPIBatteryManager.kext
if you have it.VirtualSMC
and SMCBatteryManager
kexts in your kexts folder.Patch
button in toolbar.Apply
Patch
window.DSDT.aml
to /Volumes/EFI/EFI/CLOVER/ACPI/patched/
AirPortBrcmFixup
, BrcmFirmwareData
, BrcmNonPatchRAM2
and BrcmPatchRAM2
kexts to /Volumes/EFI/EFI/CLOVER/kexts/Other/
./Volumes/EFI/EFI/CLOVER/kexts/Other/
./Volumes/EFI/EFI/CLOVER/kexts/Other/
.VoodooI2C
and VoodooI2CHID
in /Volumes/EFI/EFI/CLOVER/kexts/Other/
.Patch
button in toolbar. [Windows] Windows 10 Patch
in _VoodooI2C-Patches
Apply
Patch
window:into method label _STA parent_label GPI0 replace_content begin
Return (0x0F)
end;
Device (TPD0)
in Scope (_SB.PCI0.I2C1)
:Name (SBFG, ResourceTemplate ()
{
GpioInt (Level, ActiveLow, ExclusiveAndWake, PullDefault, 0x0000,
"\\_SB.PCI0.GPI0", 0x00, ResourceConsumer, ,
)
{ // Pin list
0x0000
}
})
Name (SBFG, ResourceTemplate ()
{
GpioInt (Level, ActiveLow, ExclusiveAndWake, PullDefault, 0x0000,
"\\_SB.PCI0.GPI0", 0x00, ResourceConsumer, ,
)
{ // Pin list
0x00A2
}
})
Patch
windowDSDT.aml
to /Volumes/EFI/EFI/CLOVER/ACPI/patched/
config.plist
file with a plist editor like Xcode
Kernel and Kexts patches
> ForceKextsToLoad
\System\Library\Extensions\IOGraphicsFamily.kext
Manipulate LED
for Razer Blade (Razer)
in Devices
section There are two ways to control your Razer Keyboard. You can use the command line tool or the app
/Applications
folder.osx-razer-led static white
To enable iMessage and FaceTime you can follow this guide