使用OpenCore引导黑苹果

简介

OpenCore(OC)是一种新的引导方式,随着越来越多的kexts开始放弃Clover, 我相信提早使用OC会对你未来使用黑苹果会有很大的帮助。这是一个自然的现象,就像变色龙被Clover淘汰,而现在OC代替Clover也是大势所趋。你应该需要看一些相关的文章,来帮助你理解我的正文内容,同时也需要下载我推荐的软件:

 

 

 

帖子更新内容查询

2020-06-14:

以下是opencore 0.5.9正式版的更新内容:

1.Block更名Delete(章节2.1.2标题;章节2.3.3标题;章节2.6.2标题)

2.删除Hideself (章节2.5.2)

3.增加BlacklistAppleUpdate以及BootProtect(章节2.5.5)

4.删除DirectGopCacheMode (章节2.8.4)

5.增加DeduplicateBootOrder以及TscSyncTimeout (章节2.8.6)

 

2020-05-05:

1.最近BAT哥要考试,小兵的精解OPENCORE会停更一段时间,所以就我来写了,以后我只会在正式发行版中更新。这次更新的是0.5.8正式版,晚点写完。

2. 删除ApfsDriverLoader.efi (章节1.0) ;增加APFS章节(章节2.8.8)。

3.增加DisableRtcChecksum(章节2.4.5)。

4.Protocol更名ProtocolOverrides (章节2.8.5)。

5.增加RTC屏蔽选项(章节2.6.1)以及AppleRtcRam(章节2.8.5)。

6.增加ReservedMemory Properties (章节2.8.9)。

 

 

0.0 BIOS设置

直接抄袭@黑果小兵了~嘻嘻嘻

禁用如下:

英文 中文
Fast Boot 快速启动
CFG Lock (MSR 0xE2 write protection) CFG 锁 (MSR 0xE2 写入保护)
VT-d VT-d
CSM 兼容性支持模块

 

启用如下:

英文 中文
VT-x VT-x
Above 4G decoding 大于 4G 地址空间解码
Hyper Threading 处理器超线程
Execute Disable Bit 执行禁止位
EHCI/XHCI Hand-off 接手 EHCI/XHCI 控制
OS type: other types 操作系统类型: 其他

 

1.0 整理OPENCORE目录

  • 打开下载好的最新版OC(0.5.1),把Doc文件夹下面的SampleFull.plist改名为config.plist,并把此文件移动到EFI目录下面。
  • 打开EFI—Kexts,我们把常用的一些kexts先放进去,一般情况下你需要放如下Kexts:

               *Lilu.kext                             ———- Acidanthera驱动全家桶的底层依赖/下载地址

               *Applealc.kext                     ———- 声卡驱动/下载地址

               *VirtualSMC.kext                 ——— 传感器驱动依赖 /下载地址

               *SMCProcessor.kext           ———- CPU核传感器/同上    

               *SMCSuperIO.kext             ———- IO传感器/同上             

               *WhateverGreen.kext         ———- 核显&显卡驱动/下载地址

               *IntelMausi.kext                  ———- Intel类千兆网卡驱动/下载地址

               *Usbinjectall.kext                ———- USB驱动 (你也可以定制自己的USB补丁)/下载地址

               *NVMeFix.kext                    ———- 为NVME硬盘增加ASPT属性来保证节电,虽然对台式机没啥用,但是官方推荐所有NVME用户都使用此补丁/下载地址

 

  • 注意,一些机型用了1820A,1560,1830等网卡,需要自己放对应驱动;有线螃蟹卡也自己放一下驱动;笔记本类需要更多传感器的,请自行补齐VirtualSMC的那些传感器补丁; 

 

  • 打开EFI—Drivers,我们把常用的一些.efi文件放进去,一般情况下你需要放如下补丁:

               *MemoryAllocation.efi                          ———- 帮助主板空出第一个512MB内存,为后面的内存注入做铺垫,若要使用hibernation功能请不要使用它/下载地址

               *OpenRuntime.efi                                ———- 内存寻址补丁/ 在Opencore的程序包的drivers文件夹下。

               *HFSPlus.efi                                        ———- HFS格式支持,在安装MAC或者更新时必须使用此补丁,并且此补丁的效率显然高于官方的vboxhfs.efi/下载地址

               *OpenUsbKbDxe.efi                            ———- 键盘组合键的使用,在Opencore的程序包的drivers文件夹下。

                 *OpenCanopy.efi                                     ———— 如果你想使用第三方主题,请加载此项, 在Opencore的程序包的drivers文件夹下

 

下载完成后,我们的整个EFI文件夹如下图所示:

 

 

2.0 Config.plist 修改

这一章会把config的各个大项目分开来,内容会写的繁琐一点,为了让小白明白各个选项的用途,当然有能力的人可以直接看我最前面的几个链接来配置config.plist。我这里强制要求你使用XCode 10或者Propertree来编辑Config.plist,其他的任何软件我都不建议使用,包括Plistedit pro。

 

2.1 Config—-ACPI

ACPI包括了四个部分:Add, Block, Patch, Quirks。这里我们先把root下面的两条#WARNING – 1和#WARNING – 2删除,这两条没有实际意义。

 

2.1.1  Config—-ACPI—–Add

这部分主要填写我们使用的SSDT以及DSDT文件,如果没有请把0-8的ssdt全部删除。如果你有修改的SSDT或者DSDT文件,请先将文件放入EFI/OC/ACPI下。

因为我使用雷电卡,我需要添加两条关于雷电卡的ssdt文件:

 

Item 0
      Comment  String   Thunderbolt3-DTGP  //填一个你自己能辨别的名字,方便知道是啥
      Enable   Boolean        YES          //表示加载此SSDT,反之NO则为不加载
      Path     String   SSDT-DTGP.aml      //为你ssdt放在EFI/OC/ACPI下的文件名,必须一致

Item 1
      Comment  String   Thunderbolt3               
      Enable   Boolean        YES                 
      Path     String   SSDT-TB3.aml             

 

2.1.2  Config—-ACPI—–Delete

这个目录下是禁用一些SSDT/DSDT,没什么用,我把下面的item全都删了。

 

2.1.3  Config—-ACPI—–Patch

这里我们需要填写一下热补丁。

  • 在10.15中,一些资料指出我们需要把EC控制器(EC0)改名为EC来确保能进入10.15系统

 

Comment: EC0 to EC 
Count:0 
Enabled:YES 
Find:<4543305F>
Limit:0 
Mask:<> 
OemTable:<> 
Replace:<45435F5F> 
ReplaceMask:<>
Skip:0 
TableLength:0 
TableSignature:<>

 

需要注意的是,一些主板的EC控制器名字可能会叫H_EC等,请自行提取DSDT并搜索PNP0C09,来获取EC控制器的名字,这些内容会在第三章中写出。

 

  • 华擎、华硕、微星主板可能会遇到RTC问题而无法进入系统,这同样需要添加hotpatch补丁来解决:
Comment: RTC fix

Count:0

Enabled:YES

Find:<A00A9353 54415301>

Limit:0

Mask:<>

OemTable:<>

Replace:<A00A910A FF0BFFFF>

ReplaceMask:<>

Skip:0

TableLength:0

TableSignature:<>

 

2.1.4  Config—-ACPI—–Quirks

此目录下有五项,选择与解释如下:

Quirks Value 解释
FadtEnableReset NO 一些旧的主板需要对FADT进行标记来激活电脑的开机和关机功能,这里我们不许要启动它(如果你遇到关机变重启,可以打开试试,我们之后也会在nvram中将这个问题修复)
NormalizeHeaders YES 清理ACPI头,一些主板的ACPI表需要打开这个修复启动。但如果补丁点亮系统,请试试NO
RebaseRegions NO 换硬件、升级BIOS等对硬件的操作会对ACPI表产生影响,一般不需要打开,若发现卡PCI Configuraion Begin,请尝试打开
ResetHwSig NO 休眠相关项,台式机不需要
ResetLogoStatus NO 顾名思义了,关了

      

2.2 Config—–Booter

内存相关选项设置。

2.2.1 Config—Boot—MmioWhitelist

默认的第一项是为Haswell芯片提供的内存寻址修复,如果此类芯片碰到内存相关问题,请开启它(enable选择yes)。

默认第二项是开机卡PCI Configuration这里。ACPI、PCI device同时释放到内存时发生0x1000内存地址被占用而卡在PCI Configration.如果碰到此类问题,请开启它。

2.2.2 Config—Boot—Quirks

此项与OpenRuntime.efi有关。在aptiomemoryfix停更后,此补丁已经更名为Openruntime, 并将一些功能与OC合并、模块化。对于无法原生nvram的主板来说,这里的选项需要格外注意。当然我也会把像300系列、x299、c422这样支持原生nvram的选择方法一并写进去。

 

  • AvoidRuntimeDefrag:大部分UEFI都会写入时间、电源管理等信息,这个所有黑苹果主板都应该选择YES

 

  • DevirtualiseMmio:内存注入方式包括KASLR方式(分布式注射到各个内存地址中)以及连续性方式。在使用KASLR时,PCIE加载到内存,可能会占据所有avaliable值而导致OC的内核以及内核缓存无法注入,导致启动失败。此项目前建议选择YES,并且在下一项ProtectUefiServices中也选择yes。

      注:KASLR是更加高效的内存注入方式,但不代表每台机器都能使用这种方案,这里我提供两种关于内存的设置:

1:DevirtualiseMmio选择yes, ProtectUefiServices选择yes, 并删除2.6.1中boot-args里面的slide=1,以及删除Drivers文件夹下的Memoryallocations.efi。即开启KASLR内存注入方式。

2:DevirtualiseMmio选择yes, ProtectUefiServices选择no, 保留2.6.1中boot-args里面的slide=1,以及保留Drivers文件夹下的Memoryallocations.efi。即开启连续性内存注入方式。

 

  • DisableSingleUser:这里关乎主机是否能开启单用户模式。什么是单用户模式,请看此文章。如果你觉得有用就开启它,我选择NO,我不需要。

 

  • DisableVariableWrite:非原生NVRAM主板需要模拟nvram.plist进而写入variable值,因此我们要禁止此项来防止其他程序对nvram进行写入,我们这里选YES。需要注意一点,如果你的主板支持原生nvram,请选择NO!

 

  • DiscardHibernateMap:当电脑从休眠(hibernation)中唤醒时,硬盘里的资料会恢复到内存中去,但这个时候OC的内核以及内核缓存等也会写入,这样可能导致冲突,这个选项是帮助我们解决这个问题的。而目前来看,除了原生NVRAM都无法进行休眠(注意睡眠sleep和休眠hibernation是两个概念),台式机的话就更不需要休眠功能了,这里我选择NO。这里我们也不讨论如何休眠。

 

  • EnableSafeModeSlide:安全模式下是否启用连续性的内存注入方式。我就选择YES,与正常情况下保持一致。

 

  • EnableWriteUnprotector:保证nvram能正常写入而不受到UEFI内的一些服务的影响,无论什么主板都要选择YES

 

  • ForceExitBootServices:这个选项是让那些非常老旧的主板也能使用内存寻址,正常情况下选NO

 

  • ProtectMemoryRegions:官方对此项目的解释与AvoidRuntimeDefrag类似,除非你明白这是什么,不然选择NO,其实我也不明白。

 

  • ProtectSecureBoot:保护uefi安全启动被写入,我选择YES。

 

  • ProtectUefiServices:解决Z390系列主板卡开机卡++++的问题,这个功能从字面意思是与我提供的memoryallocation.efi功能类似。

 

  • ProvideCustomSlide: 此选项执行固件的内存映射分析并检查所有的 slide 值(1 – 255)是否可用。由于 boot.efi 生成的这个值是利用 rdrand 指令随机生成的或者伪随机指令 rdtsc 随机生成的,因此当其选择了 一个冲突的 slide 值时有可能启动失败。由于这种潜在的冲突存在,此选项强制 macOS 在可用的值中使用一个伪随机值,这也确保了 slide= 启动参数不会因为安全原因传递给操作系统。
    是否需要此选项由信息 OCABC (Only N/256 slide values are usable!) 是否存在于调试日 志中决定。如果存在此信息,则需要启用此 Quriks 选项。我选择YES。如果你对KASLR有一定的认知并会运用,请注意这个值。内容从@套陆 摘抄。

 

  • RebuildAppleMemoryMap:重新生成内存地图来匹配苹果系统。苹果的内核有很多缺陷,比如单张的内存地图不能超过4K,一旦超过就可能无法开机;又比如一些硬件会直接把读写权限写进内存里,而苹果却不能给与写入权限。如果你遇到此类的问题,请尝试开启它。注意此项目与EnableWriteUnprotector存在冲突关系,确保开启这个的时候,另一个是关闭的。另外,此项又需要与SyncRuntimePermissions项搭配使用。一般情况下请选择NO。

 

  • SetupVirtualMap:是否建立虚拟内存并对物理内存进行映射。我们在开机时,OC的程序需要一块连续性的内存进行存放内核等东西,而实际的物理内存一般都是分散的。因此,我们通过虚拟内存建立连续性内存供OC使用,并映射到分散的物理内存中。这里我们选择YES

 

  • SignalAppleOS: 通知同一台电脑上的设备mac上的硬件选择,此项应该是给白苹果用的。如果你的mac开启了核显,但是win下核显不能开启,请打开。我选择NO。

 

  • SyncRuntimePermissions:修正硬件在注入内存时无法注入权限的问题。一般此类问题存在2018年后的主板。一般我们选择NO。

 

 

2.3 Config—–DeviceProperties

此项是用来注入你的设备的,主要是显卡和声卡两部分。同样你也可以定制一些设备到你的关于本机–系统报告–PCI列表中,尽管没有多大的意义。

 

2.3.1  声卡

这里首先我们需要找自己声卡的地址,打开hackintool,到PCI列表中寻找IOReg IOname那栏,一般声卡的设备名称叫做HDEF或者HDAS:

这里我们找到的声卡PCI路径为PciRoot(0x0)/Pci(0x1f,0x3)。我们把预先填写在那里的PciRoot(0x0)/Pci(0x1b,0x0)项替换成我们真正的声卡路径。后面一段我们看到预先填写的声卡ID为<01000000>,这里我们需要把它换成自己系统的ID。

  • 打开先前要求下载的Hackintool,到声卡选项部分,我们可以看到自己的声卡编号,我的是ALC1220。

 

  • 打开黑果小兵关于声卡的博客,并搜索我们的声卡型号:ALC1220,我们发现我们的声卡型号对应1, 2, 3, 5, 7, 11, 13, 15, 16, 27, 28, 29, 34的layout ID。我们需要一个个测试过去,选定自己能用的。这里我们选择7这个ID进行测试,将7转化成16进制格式为07,后面为了满足格式要求添加6个0,则为07000000,将这个值替换刚才预先填的01000000中;如果我们测试ID为27,27的16进制为1b,补上6个0则为1b000000。

 

  • 一些奇怪的声卡可能需要注入device ID才能用,不知道为啥:
PciRoot(0x0)/Pci(0x1f,0x3) 
   device-id         data        <70a10000>  //这个device id是固定的,不要问为什么是这个id
   layout-id         data        <0b000000>  //这个Layout id我瞎写的,你按实际情况写

 

 

  • 如果你测试的ID都无效,请确保你的操作过程正确、并测试用万能声卡补丁来替换AppleALC这个补丁。如果都不行,你可能需要自行编译声卡补丁

 

2.3.2  核心显卡

打开PciRoot(0x0)/Pci(0x2,0x0)这项,此项为驱动核心显卡。驱动核心显卡我们要分情况讨论:1.只有核心显卡的DP显示器用户 (HDMI我会在进阶设置中写);2.没有核心显卡的用户;3.有核心显卡并用独显做主力的用户。注意,这里我们只讨论8代和9代CPU的机器,其他CPU机型的请在论坛或者黑果小兵博客中搜索相关代码。

 

2.3.2.1 只有核心显卡的DP显示器用户

8代和9代的核显ID为:3E9b0007,device ID为3e9b0000,但是我们需要符合一定的顺序格式填入进去,至于为什么是这么奇怪的一个顺序,我也不知道,你照抄就是了:

AAPL,ig-platform-id     data    <07009b3e>
device-id               data    <9b3e0000>
enable-hdmi20           data    <01000000>  //如果你的hdmi不是2.0的(主板说明书会写),不需要填写这行。
framebuffer-unifiedmem  data    <00000080>  //核显显存相关

 

2.3.2.2 没核心显卡的用户

带f的cpu (e.g. 9100f 9900kf), Xeon等不带核心显卡的用户不需要管这项,直接把AAPL,ig-platform-id选项卡删了。

 

2.3.2.3 有核心显卡并用独显做主力的用户

这种情况我们一般把核心显卡作为加速用,而显示则用独立显卡。这样,我们填一个作为加速用的核显ID即可了:

AAPL,ig-platform-id     data      <0300983e>

 

 

2.3.3 Delete

这里是禁用一些设备的,我们按默认就行了,不需要任何修改。

 

 

2.4 Config—–Kernel

这里是内核相关选项。

 

2.4.1 Config—–Kernel—–Add

这里我们需要填写kexts的相关资料。值得注意的是OC的kexts填写必须注意顺序,比如applealc的依赖是lilu,那么lilu必须填在第一个;SMCProcessor.kext依赖于Virtualsmc.kext。那virtualsmc必须放在SMCProcessor.kext之前。

这里默认情况下很多我们需要的补丁已经被加载里面了,但是enabled那块我们要手动改成yes去开启它,把一些不用的删了:

 

Item 0
    BundlePath         String     Lilu.kext            //kext的名字
    Comment            String                          //你自己填一个注释,可以不填
    Enabled            Boolean      YES                //启动此补丁,反之则为关闭
    ExecutablePath     String     Contents/MacOS/Lilu  //通过右键kext显示包内容查找lilu运行文件的真正路径
    MaxKernel          String                          //此补丁支持的最大系统版本,填19为10.15,18位10.14;我们一般情况下留空
    MinKernel          String                          //此补丁支持的最小系统版本
    PlistPath          String     Contents/Info.plist  //kext的plist位置,可以右键kext显示包内容查找正确路径

............
............

Item 4
    BundlePath         String     WhateverGreen.kext          
    Comment            String                         
    Enabled            Boolean      YES               
    ExecutablePath     String     Contents/MacOS/WhateverGreen
    MaxKernel          String                          
    MinKernel          String                          
    PlistPath          String     Contents/Info.plist  

............
............
Item 7
    BundlePath         String     USBPorts.kext        
    Comment            String                         
    Enabled            Boolean      YES               
    ExecutablePath     String                         //一些没有执行文件的kext不需要填写
    MaxKernel          String                          
    MinKernel          String                          
    PlistPath          String     Contents/Info.plist  

............
............
    

 

2.4.2 Config—–Kernel—–Block

禁用一些kexts,这里好像没啥用,不用理会。

 

2.4.3 Config—–Kernel—–Emulate

此选项帮助Ivy Bridge 和一些不受支持的CPU加载电源管理的,我们这里不做此方面讨论(我没这么老的CPU)。所有选项按默认即可。

 

2.4.4 Config—–Kernel—–Patch

这里是为一些kext打补丁用的。

我们可以看到样本里面有四个补丁,都是关闭着的,其中有两个是关于APPLE RTC的,这对于华硕主板来说相对比较重要,这里我们需要对appleRTC相关的两个补丁一一测试,打开—–Enabled—YES其中一个,即可。如果不行,关闭一个打开另一个。这样能解决华硕主板重启丢失BIOS设置以及需要按F1跳过安全模式,当然RTC仍然需要进一步的设置,我会在进阶教程中详细写一下这一块。

 

2.4.5 Config—–Kernel—–Quirks

这里是内核相关的快捷选项,比较重要。

AppleCpuPmCfgLock:四代之前的CPU,如果未解锁CFG(即MSR0xE2)请选择YES。如何解CFG锁我在这篇文章中有详细教程。如果你不会解这个锁,你就选择YES,解锁的情况下选择NO

 

AppleXcpmCfgLock: 四代之后的CPU若未解锁CFG(即MSR0xE2)请选择YES。

 

AppleXcpmExtraMsrs: 主要在没有原生电源管理的CPU上启用,一般是Haswell-E, Broadwell-E, Skylake-X这三种CPU需要填写YES。除此之外的CPU选择NO。

 

AppleXcpmForceBoost:选择yes时将电脑的cpu频率锁定为最高频率,不建议开启,我选择NO。

 

CustomSMBIOSGuid: 戴尔笔记本专用项,我们选择NO。

 

DisableIoMapper: 禁用vt-d,我们在BIOS里已经禁用vt-d了,这里我们选择NO就行了。

 

DisableRtcChecksum:越过两条rtc检查(0x58及0x59)。一般情况下,卡RTC我们会更多地使用RTCMemoryFixup.kext来防止它。我们一般情况下选择NO。

 

DummyPowerManagement:替代NullCpuPowerManagement.kext,如果你使用此补丁,请删除并选择yes。我们一般选择no。

 

ExternalDiskIcons: 修复苹果系统把内部硬盘识别为外置硬盘时(黄色图标的硬盘)开启,我们一般选择NO。

 

IncreasePciBarSize:解决卡PCI configuration,如果碰到请选择yes, 我们选择no。注意,一般卡pci configuration都是因为自己错误的设置和硬件问题。

 

LapicKernelPanic: 适用于HP笔记本的内核奔溃选项,我们选择NO。

 

PanicNoKextDump: 防止kext出错打报告而让我们看不到真正的panic原因,这个随便选,我选择NO。

 

PowerTimeoutKernelPanic: 10.15系统中存在一些设备自身的电源管理无法让系统进入睡眠而超时,导致内核奔溃,如果有这个问题请选择YES。

 

ThirdPartyDrives: 开启Sata类SSD的trim功能,我没有sata类的ssd,我选择NO。自行根据情况选择。

 

XhciPortLimit: 解除15个端口限制,我选择YES。

 

 

2.5 Config—-Misc

这里都是一些开机引导类的设置。

 

2.5.1 Config—–Misc—–BlessOverride

这个选项是帮助我们寻找一些不寻常的EFI位置的,除非你有这种情况,不然我们不需要填写任何东西。

 

2.5.2 Config—–Misc—–Boot

 

ConsoleAttributes: 设置开机选择界面的颜色,默认直接填0。使用方法为填入字体颜色和背景颜色的值的16进制之和例如蓝色字(0x01)+红色背景(0x40)=0x41。色彩选择如下:

  • 0x00 — 黑

  • 0x01 — 蓝

  • 0x02 — 绿

  • 0x03 — 青

  • 0x04 — 红

  • 0x05 — 艳红

  • 0x06 — 棕

  • 0x07 — 淡灰

  • 0x08 — 深灰

  • 0x09 — 淡蓝

  • 0x0A — 淡绿

  • 0x0B — 淡青

  • 0x0C — 淡红

  • 0x0D — 淡艳红

  • 0x0E — 黄

  • 0x0F — 白

  • 0x00 — 背景 黑

  • 0x10 — 背景 蓝

  • 0x20 — 背景 绿

  • 0x30 — 背景 青

  • 0x40 — 背景 红

  • 0x50 — 背景 艳红

  • 0x60 — 背景 棕

  • 0x70 — 背景 淡灰

 

HibernateMode: 检测休眠模式。我们的机器一般都不支持休眠,选none。如果你的主板支持原生nvram、并想测试休眠,可以考虑填auto。

 

HideAuxiliary:在开机选择画面隐藏一些辅助项目,比如recovery盘,clean NVRAM等。一般我们选择NO。

 

PickerAttributes:当你使用OC主题时,你可以通过计算以下数值之和来配合使用OC主题,OC主题至今还在测试阶段。默认填0,你可能使用到的值如下:

  • 0x0004简化主题图标下的文字
  • 0x0008使用老式的图标

 

PickerAudioAssist:是否开启开机朗读文字功能,一般选择NO,如果你要开启,请同时阅读章节2.8.5和2.8.7的相关音频设置。

 

PickerMode: 是否使用OC的开机启动盘选项,如果我们填Builtin就是不使用任何主题;如果我们填External就会调用第三方主题。

*注:目前第三方主题只有https://github.com/acidanthera/OcBinaryData下载,请将下载好的文件如图放置,同时,你需要将OpenCanopy.efi放入Drivers文件夹下并加载:

 

PollAppleHotKeys:是否开启一些热键功能,包括Cmd+K;Cmd+S。我选的是yes。如果你开机发现键盘无法选择,也选NO,并且删除OC/Drivers下的AppleUsbKbDxe.efi 。

 

 

ShowPicker: 是否显示开机启动盘选项,比如MAC,WINDOWS那些。我们选择YES。

 

TakeoffDelay:开机热键延时,如果你按热键老是老不急按,你可以设置5000到10000之间的值让你有更多时间按热键。

 

Timeout: 倒计时进入指定硬盘,这里我们按需求填写,我填写5,代表5秒钟进入指定硬盘。

 

 

2.5.3 Config—–Misc—–Debug

是否开启debug模式,这里我们暂时不需要,全部忽略过。

 

 

2.5.4 Config—–Misc—–Entries

这里是帮助我们添加一些你希望的引导路径,这个会在之后的进阶教程中讲,这里暂时略过不填写。

 

2.5.5 Config—–Misc—–Security

AllowNvramReset: 是否在开机引导项中加入重置nvram缓存功能的选项,我们选YES。

 

AllowSetDefault:选择yes后即可在开机选择系统页面中通过Ctrl+enter键设置默认启动盘。

 

AuthRestart:filevault相关项,选择NO。

 

BlacklistAppleUpdate:是否禁用苹果系统中的设备固件更新(比如网卡,雷电卡等固件)。

 

BootProtect:请填写Bootstrap。此选项能保证OPENCORE.EFI的永久性而免遭到其他操作系统对开机顺位的破坏。在填写此项后,你同样需要保证RequestBootVarRouting是开启的。

 

ExposeSensitiveData: 因为要使用到模拟nvram,这个数值我们必须填3。如果我们是原生nvram,填写2。

 

HaltLevel: 按默认设置即可。

 

ScanPolicy: 这里暂时填0。我们也许会碰到开机的时候默认进入的系统永远是WINDOWS,并无法更改,之后我们在进阶教程中讲述,如何让MAC盘排在第一个,让WIN排在后面。

 

Vault: 黑苹果的vault加密方式,我们不需要这个功能,填Optional。

 

 

 

2.5.6 Config—–Misc—–Tools

这里是加入一些开机时候的工具的。其实我觉得只有重置nvram的工具是有用的,但之前的设置里面我们已经开启了,这个选项就没啥用了,不用理会。

 

 

2.6 Config—-NVRAM

这是关于nvram的选项卡。

 

2.6.1 Config—–NVRAM—–Add

4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14

                 UIScale                  Data            <02>      //这里填写01为普通的UI显示模式,02为开启HIDPI的UI显示模式,我选择02
                 DefaultBackgroundColor   Data          <00000000>  //默认开机背景色为黑色

7C436110-AB2A-4BBB-A880-FE41995C9F82
                 boot-args                String        Slide=1 darkwake=0 -v //slide=1表示从第一组内存开始连续注入;darkwake=0代表一键唤醒机器并偏好设置中节能选项的小憩功能。如果你要用小憩功能请填8; -v是跑代码,在没装好稳定的黑果前我建议加上,方便定位错误,弄完后再删除-v
                 bootercfg                String       log=0 debug=0 level=0  //这条自己添加进去,是关闭开机时的代码的。
                 csr-active-config        Data          <e7030000>            //关闭SIP保护
                 nvda_drv                 Data          <31>                  //对10.13系统之前的N卡的相关设置,我们不做讨论。
                 prev-lang:kbd            Data          <7a68 2d48 616e 733a 3235 32>  //语言设置相关,记得改成这个,这个是中文

7C436110-AB2A-4BBB-A880-FE41995C9F82
                 填写相关RTC屏蔽选项,具体参考AppleRtcRam

 

 

2.6.2 Config—–NVRAM—–Delete

禁用一些nvram变量,我们这里按默认设置不必理会。

 

2.6.3 Config—–NVRAM—–LegacyEnable

如果你的主板不支持原生NVRAM,请一定要选择YES! 如果你的主板支持原生nvram的,填no。

 

2.6.4 Config—–NVRAM—–LegacySchema

这里是nvram的变量设置,大部分默认已经填好,我们只需添加两个变量即可。

打开7C436110-AB2A-4BBB-A880-FE41995C9F82这一栏,添加两个item如下:

item 11             String       efi-boot-device
item 12             String       efi-boot-device-data

 

2.6.5 LegacyOverwrite

对模拟nvram用户来说,将nvram.plist写入硬件,我认为不管是原生nvram还是模拟nvram,都选择no。

2.6.6 WriteFlash

如果你的主板bios因为nvram导入垃圾内容,请关闭它,一般都是选择no。

 

2.7 Config—-PlatformInfo

这里我们填合适的机型。对于最近一代的主板来说,一般的原则,只有核显的机器我们选Macmini8,1;只有独显的机器我们选择iMac Pro 1,1;有核显和独显的我们选择iMac 19,1。

 

因为这部分内容太过复杂,其实很多内容都不必要填写,我们直接删除Datahub,PlatfromNVRAM,SMBIOS这三项,无需填写。

 

2.7.1 Config—–PlatformInfo—–Automatic

这里意思是是否自动填写系统信息。因为后面的很多选项都好繁琐,我们只要认真填几个选项就行了,这里我选YES,不重要的信息让它自动填。

 

2.7.2 Config—–PlatformInfo—–Generic

这里是我们需要填写的三码部分。获得三码,我们可以运用一下Clover的Clover Configurator帮我们生成一下相关的数据:

  • 打开Clover configurator,并到SMBIOS选项卡中,选择合适的机型,这里我们以iMac19,1 为例:

 

  • 我们换到Rt variables里,点击ROM下的生成,获得一个ROM编号,这样我们就获得了所有需要的信息了。

 

  • 我们整理一下刚才获得的信息并依次填入Generic下面即可。

 

  • 值得注意的是,SystemUUID这一项最好留空,让OC自动生成,它会影响你的WINDOWS激活状态。

 

  • AdviseWindows:如果你的windows的efi不在showpicker的第一个,必须选择yes,这里一般选择yes。

 

  • SpoofVendor:是否把主板名称更改为acdt,一般我们选择yes。

2.7.3 Config—–PlatformInfo—–剩余部分

UpdateDataHub:选择YES

 

UpdateNVRAM:选择YES

 

UpdateSMBIOS:选择YES

 

UpdateSMBIOSMode:选择Create

 

2.8 Config—-UEFI

这里我们需要填写UEFI相关的设置。

 

2.8.1 Config—–UEFI—-ConnectDrivers

是否加载补丁,我们选择YES

 

2.8.2 Config—–UEFI—-Drivers

把我们之前放在OC/EFI/Drivers下面的驱动一一填上,这里我们也注意一下填入的顺序以及文件名的大小写

Drivers
     item0          String       
     ........................    ApfsDriverLoader.efi
     ........................    MemoryAllocation.efi
     ........................    OpenRuntime.efi
     ........................    HFSPlus.efi
     ........................    OpenUsbKbDxe.efi
     ........................    OpenCanopy.efi

 

2.8.3 Config—–UEFI—-Input

此选项是原生apple开机热键的选项,需要配合我们之前设置的PollAppleHotKeys=yes以及AppleUsbKbDxe.efi补丁一起用。下面的设置完全按照默认情况就行了。因为我的键盘是苹果原生键盘,不支持这个功能,所以我直接PollAppleHotKeys里填了NO,这里也不会生效的。

有一点需要说,如果你是华硕的z87或者z97,你需要打开PointerSupport这个选项。

 

2.8.4 Config—–UEFI—-Output

 

ClearScreenOnModeSwitch:消除开机时从图形模式转换到文本时出现残影的问题,如果没有这个问题我们选择NO。

 

ConsoleMode:这里填主机的输出方式,一般情况下填MAX,或者留空

 

DirectGopRendering:是否使用内置显卡直接渲染开机画面,建议选择no。

 

IgnoreTextInGraphics: 修复在不使用-v跑马模式时候,开机日志导致的苹果logo显示不正确的问题。如果有这种情况选择YES,一般我们选择NO。

 

ProvideConsoleGop:调用显卡gop,我选择YES。

 

ReconnectOnResChange: 一些固件在 GOP 分辨率改变后会重新连接显示器才能输出,一般情况下选择NO。

 

ReplaceTabWithSpace:一些固件在UEFI Shell下TAB功能键不生效。开启这个会用空格键代替。一般我们选择NO。

 

Resolution:开机分辨率。比如我的显示器是4K、16:9的,我就填写3840×2160。这个你根据情况填写或者不填。

 

SanitiseClearScreen: 修复4k及以上显示器的输出问题,选择YES。

 

TextRenderer:OC开机代码字体渲染方式,我这里填BuiltinGraphics

 

2.8.5 Config—–UEFI—-ProtocolOverrides

AppleAudio: 如果你想要开启如同白苹果一样的开机DUANG的声音等,请开启它,并且还需要配合UEFI—-Audio的正确设置。

 

AppleBootPolicy: 虚拟机的mac需要用的,我们选择NO。

 

AppleDebugLog:重新安装苹果错误日志界面,一般选择NO。

 

AppleEvent: 虚拟机并具有vault的mac需要用的,我们选择NO。

 

AppleImageConversion: 重建apple图标,选择NO。

 

AppleKeyMap: 重建苹果功能键,选择NO。

 

AppleRtcRam:重装applertc协议。一般选择NO,如果你要屏蔽相关选项,请在2.6.1章节中添加相关屏蔽项目。项目可以通过RtcRW提取,或者阅读此文章来指定你想屏蔽的内容。

 

AppleSmcIo:代替之前的VirtualSMC.efi,请选择YES

 

AppleUserInterfaceTheme: 重新安装 Apple User Interface Theme 协议,选择NO。

 

DataHub:重建datahub,这里我们选NO。

 

DeviceProperties: 虚拟机或者老款的电脑需要选择YES才能注入device property,我们选NO。如果你发现你注入device property无效,请选择YES。

 

FirmwareVolume: VAULT相关项,我们选NO。

 

HashServices: VAULT相关项,我们选NO。

 

OSInfo: 通知主板以及一些程序关于MAC引导的信息,一般情况选择NO。

 

UnicodeCollation: 旧的主板需要,我们选NO。

 

 

2.8.6 Config—–UEFI—-Quirks

 

DeduplicateBootOrder:当RequestBootVarRouting选项为开启时,一些其他的操作系统(e.g.windows)可能在某些主板(e.g.ASUS)中会找不到自己的引导而重新创建,最终导致黑果在没有清理NVRAM的情况下是无法进入系统的,请选择YES。

 

ExitBootServicesDelay:旧主板需要给予主板退出时间(单位为微秒),较新的主板直接填0。旧的主板比如Z87pro,填3000000-5000000

 

IgnoreInvalidFlexRatio:如果你没有在bios中解锁MSR0x194,一定要选YES。

 

ReleaseUsbOwnership:大部分的主板都有自动释放USB所有权的功能,我们选NO。如果你开机键盘鼠标卡死了,或者USB失灵,试试选Yes。

 

RequestBootVarFallback:一些固件会主动扫描系统启动盘的位置而阻止OC扫描,如果碰到这样的问题选择YES,一般这个BUG在华硕的主板中比较常见。

 

RequestBootVarRouting: 增加”启动磁盘” 的可靠性,这里选择YES。

 

TscSyncTimeout:帮助一些X99 X299的主板开启全核同步功能。此选项旨在代替TSCAdjustReset.kext等类似补丁,推荐的值是500000。但是此选项并不能在睡眠唤醒后生效,所以请填写默认值0,并使用TSCAdjustReset.kext来做全核同步。

 

UnblockFsConnect:惠普笔记本可能会让OC无法扫描到启动项,一般选择NO,如果你是惠普笔记本,请选择YES。

 

2.8.7 Config—–UEFI—-Audio

AudioCodec:填写音频声卡in节点,一般为数字10,20,33之类的。可以用此软件提取。

PinConfigurator2.2.2汉化版

 

AudioDevice: 填写你声卡的路径。这里我们填写章节2.3.1中寻找到的声卡路径。这里我填了PciRoot(0x0)/Pci(0x1f,0x3),请按你自己的实际情况填写。

 

AudioOut:音频声卡out节点,一般为数字10,20,33之类的。

 

AudioSupport:是否开启黑苹果的开机提示音支持。如果你选择YES,后面的内容你必须认真看,不支持DP类的数字音频

 

MinimumVolume:声音音量。范围在0-100之间,默认是20。

 

PlayChime:如果要使用开机duang声音,请选择YES。

 

VolumeAmplifier:按照默认设置。

 

注意,如果你选择开启音频提示音,你需要下载此压缩包,解压后放到OC/目录下,如图。

 

2.8.8 Config—–UEFI—-APFS

EnableJumpstart: 从APFS容器中加载内置APFS驱动,建议开启YES。此选项仍然依据你的Scanpolicy来做出决定,请确保在Scanpolicy中放开APFS格式。

 

HideVerbose:是否隐藏啰嗦模式,一般我们需要看日志的时候才开启,所以我们选择隐藏,选择YES。

 

JumpstartHotPlug:是否加载APFS格式的热插设备,一般我们选择YES。

 

MinDate:加载最低发行的APFS格式。一些旧的apfs可能会危害电脑,我们填0。如果你想加载旧的发行日期的APFS格式硬盘,请填-1。

 

MinVersion:加载最低版本的APFS格式。填0代表从HIGH SIERRA开始加载。填-1代表所有版本,建议填0。

 

2.8.9 Config—–UEFI—-ReservedMemory Properties

此项为保留内存所用。一些硬件会把硬件EFI写进内存过程中占据必要的UEFI运行空间,所以我们可以通过此项来预留内存来保证UEFI的运行。填写方式可以参考小兵的文章。来寻找指定内存的起始位置,以4K为一个节点。

 

一般情况下,此项我们并不需要理会。

2.9 小节

到这里,我们应该可以通过OC正确引导MAC OS了,但是还有很多问题需要去修补,包括模拟nvram,寻找EC控制器,原生的电源管理等。我会在下一个章节写这些东西。

 

 

3.0 OpenCore 完善

3.1 模拟NVRAM

对OC而言,NVRAM是非常核心的一环,不管是原生还是模拟的。如果你是原生nvram的主板,请不必理会这章节。这张的主要内容为生成模拟的NVRAM.plist。

 

  • 首先打开我们之前下载好的opencore,进入目录下的Utilities/LogoutHook,并将LogoutHook放入一个安全的位置。这里我推荐将他放到文档目录下。

 

  • 右键finder,前往目录,填/Users, 再点进入以你名字命名的文件夹,既能看到Documents(文档)目录了,把我们的LogoutHook放在里面。

 

  • 打开Terminal (终端),输入一下命令:
sudo defaults write com.apple.loginwindow LogoutHook /Users/你的用户名/Documents/LogoutHook/LogoutHook.command
比如:
sudo defaults write com.apple.loginwindow LogoutHook /Users/xjn/Documents/LogoutHook/LogoutHook.command

 

  • 终端会提示要求你输入密码(密码打进去不会显示)

 

  • 重启后,你会在/EFI/下看到nvram.plist,代表已经成功模拟了。

 

  • 值得一提,nvram.plist在开机的加载需要之前我们要求放入的EmuVariableRuntimeDxe.efi来读取,请确保此补丁存在。

 

3.2 建立自己的开机选择系统目录

  • 这个教程主要针对的是非原生nvram主板的用户,如果你是原生nvram的用户,直接在偏好设置—启动磁盘中选定你希望设置为默认启动的磁盘即可,不必往下看浪费时间!
  • 此步骤可能只适合oc纯净安装的系统,如果你之前使用过clover或者oc mod版本,请参照《精解opencore》中模拟nvram的方法。

非原生nvram用户必须完成以下几点:

  • 通过3.1的教程建立nvram.plist.
  • 确保OpenCore的版本为2019年11月20日之后的。更新OpenCore替换BOOT/BOOTx64.efi以及OC/OpenCore.efi即可。
  • 确保AppleSupportPkg版本为2.1.4以及之后,可以在我这里提供编译好的。
  • 确保config.plist下/Misc/Security/ExposeSensitiveData=3Booter/Quirks/DisableVariableWrite=True/YES ; NVRAM/LegacyEnable=True/YES 
  • 确保文件夹OC/Drivers/下没有VariableRuntimeDxe.efi

 

如果你是华硕的非原生nvram主板,你还需要做(此文件由群友@哞 提供):

  • 下载LoginHook.command,把它与LogoutHook.command放在一起,并执行:sudo defaults write com.apple.loginwindow LoginHook /写上你的路径/LoginHook.command

 

在保证以上要素后,打开系统偏好设置---启动磁盘,选择你想要设置为默认启动的启动磁盘即可。

 

 

3.2.1以及3.2.2也是排列启动盘开机进入顺序的,比较麻烦,不推荐。

 

3.2.1 第一部分

我们首先要对Config—Misc—Security—scanpolicy这个值进行修改,默认的是0,代表着扫描所有硬盘,而我们现在只让它扫我们的苹果系统硬盘。

感谢@xlivans提供的OC扫描策略:

## OC-引导扫描策略

设置位置:`Misc\Security\ScanPolicy`

– **定义:**

  (01)0x00000001 — 限定为文件系统,由以下`允许扫描文件系统子项`开启

  (02)0x00000002 — 限定为设备类型,由以下`允许扫描设备类型子项`开启

  `允许扫描文件系统子项`

  (03)0x00000100 — 允许扫描APFS文件系统

  (04)0x00000200 — 允许扫描HFS文件系统

  (05)0x00000400 — 允许扫描EFI系统分区文件系统

  `允许扫描设备类型子项`

  (06)0x00010000 — 允许扫描SATA设备

  (07)0x00020000 — 允许扫描SAS和Mac NVMe设备

  (08)0x00040000 — 允许扫描SCSI设备

  (09)0x00080000 — 允许扫描NVMe设备

  (10)0x00100000 — 允许扫描CD / DVD设备

  (11)0x00200000 — 允许扫描USB设备

  (12)0x00400000 — 允许扫描FireWire设备

  (13)0x00800000 — 允许扫描读卡器设备

  `扫描策略数值`=(01)+(02)+1个或数个`允许扫描文件系统子项`+1个或数个`允许扫描设备类型子项`

  例如:希望扫描对象是APFS文件系统的USB设备,`扫描策略数值`=(01)+(02)+(03)+(11),经16进制加法计算得出,`扫描策略数值`=`0x200103`

  `注意`,使用时需将16进制转换为10进制。示例最终`扫描策略数值`=`2097411`

几种扫描策略

  `F0103` —官方推荐值:(01)+(02)+(03)+(06)+(07)+(08)+(09)

  

    最终`扫描策略数值` = `983299`

  

  `0`—允许扫描所有已知文件系统+允许扫描所有已知设备类型。

  

  `2F0303` —官方推荐值+允许扫描HFS文件系统+允许扫描USB设备

  

    最终`扫描策略数值` = `3080963`

                        

我们这里让OC只扫描MAC盘。根据说明,(1)+(2)是必须选的;因为我的MAC是APFS,所以系统子项类我选(3);我的MAC是安装在NVME上的,所以我在设备类型上选择(09),如果你是安装在sata盘上的,你应该选(6)。

这样我们的公式就是:

(1)+(2)+(3)+(9)= 0x00000001+0x00000002+0x00000100+0x00080000

 

拿起苹果自带的计算器,按住coomand+3切换到编程型计算器,并转换到16进制模式:

 

输入:

1+2+100+80000=80103

得到数值后,我们再按一下转换10进制的按键,得出524547这个数值。

我们把524547填到scanpolicy中,重启,你就会看到第一个选项就是你的MAC盘了。但如果你还安装了WINDOWS什么的,选项中却没有了,别急,我们现在要把WIN的引导添加到mac的后面去。注:似乎oc还不能引导ubuntu,请用Bios快捷键进入,未证实。

 

3.2.2 第二部分

现在我们要在开机画面中,将其他的一些系统排在mac后面。此项能需要你下载debug版本的Opencore,请在文章开始部分提到的Opencore程序下载界面进行下载,并备份好你目前的EFI

 

首先我们需要把下载好的Opencore-Debug版本里的efi/boot/BOOTx64.efi 以及efi/OC/OpenCore.efi两个文件替换到你正在使用中的EFI里去。用XCODE修改你正在使用的EFI/OC/Config.plist,修改内容如下:

Misc
     Debug
          DisableWatchDog        Boolean     YES
          Target                 Number      65


     Security
          ScanPolicy             Number      0             //这里我们要先改为0来寻找windows的地址,之后找到后改回之前算出来的即可

 

 

接着,我们需要寻找你其他系统的UUID,我们打开终端,输入:

diskutil list

 

我们找到你需要的盘的盘名,比如我的windows在disk0这个位置,而引导WIN的EFI文件夹的盘位是disk0s1。注意,这里我们不讨论Gpt格式的WIN引导位置该在哪里,如果你实在不清楚,可以把disk0s1以及dsik0s2都记录下来。

 

接着输入:

diskutil info disk0s1

在输出内容里,我们需要的是Disk / Partition UUID,我的是FF555974-AB3F-40B7-8530-AE6462E197CE,把它记下来。

 

现在我们通过oc的开机选项直接重启到windows,我们打开diskgenius,并且到我们mac的EFI盘符下,我们看到有一个日志报告opencore-xxxxx-xxxxx生成,为了好记,我们右键把它改名叫111.txt。

重启回到mac,加载efi分区,打开刚才的111.txt,我们搜索刚才记录下来的FF555974-AB3F-40B7-8530-AE6462E197CE,我们搜到如下内容,而标注的即是WINDOWS的引导路径:

 

把之前我们备份好的EFI,全部替换回去。把disablewatchdog,target,scanpolicy都改回原来的。这样我们的EFI又回到正式版本了,而不是DEBUG版本了。

打开config,我们把win的引导路径添加到misc—-entries,并在此下面添加一个item,输入如图内容:

 

保存即可,重启后,你会看到windows10放在了mac的下面。

tips: 你可以在config—-misc—boot—showpicker选择no,就不会看到选择界面了,而当你需要时,只需要在开机时候按住option或者esc就可以唤出选择界面了,非常白果的体验哦。

 

 

3.3 提取DSDT

提取DSDT是我们之后完善系统的必需品,没有他我们无法找到相关的硬件位置,我们可以通过Clover直接提取,这里我们需要一个空的U盘。我的教程是非常偏向小白的,所以这里提取我也会用到windows,以及Diskgenius这个软件,做最简单的示范。

 

  • 插入U盘,我们打开diskgenius,选中我们的U盘,并选择顶部菜单栏的快速分区:

 

  • 严格按照我的图示选择,不要创建esp msr分区,并且分区格式为fat32。

 

  • 格式化完成后,放入我从黑果小兵镜像包提取出来的EFI(点击下载)放进去。这是一个clover引导,但并不能引导你的系统,只能提取DSDT。

 

  • 插上U盘,重启,通过U盘引导,看到Clover界面,我们按F4,这样原始的DSDT文件就收集好了。

 

  • 重新通过OC引导进入系统,我们打开U盘,EFI/Clover/ACPI/Orgin下,有我们的原始ACPI内容,我们只需要DSDT.aml这个就行了,保存到安全的地方。

 

 

3.4 加载原生电源管理

在提取dsdt后,我们可以得到相关里硬件名字及目录,这样我们就可以加载原生电源管理。这里非常感谢宪武大大在ssdt这块的付出成果!我们先下载一下宪武大大的OC-SSDT包

以下的内容,你需要文章开始阶段提供下载的MaciASL以及刚才提取的DSDT.aml

 

  • 用MaciASL打开DSDT.aml
  • 搜索你cpu的名字。一般情况下,CPU的名字可能是: PR.CPU0,PR.P000,PR.PR00,SB.CPU0,SB.P000,SB.PR00, SCK0.C000, SCK0.CPU0。请依次搜索直到找到自己的CPU名字,比如我的就是SB.PR00

 

打开宪武大大的OC-SSDT包,到x86目录下,我们看到宪武大大已经把大部分不同名字的CPU的dsl文件都做好了。我的cpu名字叫SB.PR00,我直接打开SSDT-PLUG-_SB.PR00.dsl这个文件,左上角另存为(save as), 其中文件格式(file format)必须选择ACPI Machine Language Binary,文件名字随便写吧,我就叫plug-xcpm.aml,记住后缀为aml。

将plug-xcpm.aml放入EFI/OC/ACPI下,并在config.plist中添加加载此aml文件:

 

<dict>
<key>Comment</key>
<string>XCPM</string>
<key>Enabled</key>
<true/>
<key>Path</key>
<string>plug-xcpm.aml</string>
</dict>

 

加载后,重启,并清理一次nvram,我们看到偏好设置–节能中,原生电源管理已经被加载了。

 

3.5 加载节能五项

节能五项是白果台式机中,偏好设置—节能中的选项。在加载原生电源管理后,我们一般有4项节能出现,而第五项“断电后重启”这项还需要加载PPMC以及LPCB下的PMCR才能出现。虽然说这项功能没啥鸟用,但对于强迫者而言,少一个一定很难受吧。如果你是笔记本,不需要看这章,白果笔记本本身就没有。

直接下载SSDT-PM.aml载入即可。这个里面的内容我不想解释了。

SSDT-PM.aml

 

3.6 Mac OS 10.15下解锁S/L/E目录

在10.15系统中,尽管你已经通过config解锁了SIP,但系统目录仍然需要命令去开启。这里群友bugprogrammer给出了一个一劳永逸的解决方案,请到他的博客中查看方法:解锁macOS10.15的系统分区

 

3.7 关于EC控制器

EC控制器是电脑自带的一个叫embedded controller的部件。在10.15的系统环境中,笔记本电脑必须重命名原来的EC,而一些台式机主板则需要禁用。下面我会分开来讲解如何禁用EC、如何加载USB电源管理支持。

 

3.7.1 禁用EC控制器

之前我在2.1.3章节中提供了重命名这种方式去讲EC0更名为EC,其实这种方法是只适合笔记本的,台式机最好还是禁用EC。

我这里会把笔记本重命名EC以及台式机禁用EC写在一起。

 

打开之前提取出来的DSDT.aml,搜索PNP0C09,这里我搜到我的ec真实名字叫做H_EC,你的可能叫EC0或者别的什么奇怪的名字。

这里我可以看到我的H_EC已经是屏蔽掉的,怎么判定,你看下面有一个Return (Zero),意味着这个部件是不生效的,即禁用。这样的情况我们不需要做任何SSDT去禁用这个真的EC。

那么什么样的情况是需要我们去屏蔽的呢?我发现基本上华硕的台式机主板都会启用这个EC控制器,这里我截图了一张华硕主板的EC部件图,我们同样在DSDT中搜索PNP0C09,我们看到这种情况下,这个叫EC0的EC控制器是开启的,注意他没有return (Zero)这个语句,我们需要通过SSDT去屏蔽它。

 

这里我提供了一个禁用EC0的补丁,请直接下载,打开后左上角另存为(save as), 其中文件格式(file format)必须选择ACPI Machine Language Binary,文件名字随便写吧,我就叫ssdt-no-EC.aml,记住后缀为aml。记得将ssdt-no-EC.aml放入EFI/OC/ACPI下,并在config.plist中添加加载此aml文件。

SSDT-no-EC.dsl

如果你的EC名字叫H_EC或者别的什么的,你打开这个.dsl文件,改一下图中红线中的字即可。

 

 

对笔记本而言,我们不能禁用EC,因为禁用EC后会直接导致笔记本没有电池。那么我们怎么去重命名EC呢?按照上面提到的方法,找到你EC的真实名字,在章节2.1.3中我提供了假如你的笔记本的EC叫做EC0时候的重命名办法,那如果你的EC叫别的乱七八糟的名字呢?

我们先找到你的EC名字,比如你的EC叫做H_EC,我们打开在线的HEX转换器,输入H_EC,并点击下面的16进制转换,就可以看到转换出来的值是485F4543,把这个值替换到find这个选项卡中就行了。你也会注意到,EC的hex-16进制为45435F5F,刚好是Replace的值。这就是一个非常简单实用的OC重命名。但切记!OC万不得已不要用重命名!笔记本的EC是实在没有办法。

Comment: H_EC to EC 
Count:0 
Enabled:YES 
Find:<485F4543> 
Limit:0 Mask:<> 
OemTable:<> 
Replace:<45435F5F> 
ReplaceMask:<> 
Skip:0 
TableLength:0 
TableSignature:<>

 

 

3.7.2  USBX供电

开启apple自家的快速充电,这个需要设备支持此功能。你可以比较下面两张图,显然第二张是正确的。

从10.15开始,USB电源的控制被直接分配到了IOResources上面:

我们只需要一个简单的KEXT补丁来加载它

USBPower.kext

请你确定你已经用hackintool定制了你的usb口,并使用了usbports.kext(或者你直接实用USBInjectAll也行)!而不是ssdt类的定制,ssdt类的端口定制并没有对win进行判断请不要用!如何定制自己的usbports.kext,请看黑果小兵的视频教程:https://www.bilibili.com/video/av38860673

下载这个KEXT补丁,你可能需要对补丁进行修改才能用。右键kext显示包内容,一直点进去,直到打开info.plist。我们展开IOKitPersonalities_x86_64,可以看到机型是iMac19,1,请把它改成你正在使用的机型,把补丁放入OC/kexts下,并在config.plist中加载这个补丁,重启即可。

 

3.8 RTC相关问题

在之前的教程里我提供了一个rtc fix的重命名补丁(见2.1.3章节)。对OC而言,重命名就是比较忌讳的,而且我也非常讨厌重命名,所以这个不能忍啊!

因此,我们现在需要通过对RTC进行修复,来抛弃那个RTC重命名补丁。

 

在一些主板中,自带了AWAC部件,这个部件对于RTC来说是互相反锁的,我们必须禁用AWAC才能启动RTC,从而去掉之前使用的重命名补丁。如何去确定你的ACPI中有AWAC,打开IO Registry Explorer,我们查找AppleACPIEventController栏目下有没有AWAC这个部件,下面截图中是有AWAC这种情况:

 

这里我们直接使用宪武大大提供的ssdt,放入acpi目录下并在config中载入即可。(这个包是宪武大大在群里面发的最新版,他的github还未更新此文件,目前是10月28日)。加载此补丁后,你再打开IO Registry Explorer,你会发现awac已经没有了,并且多出了一个rtc部件,表示此补丁生效,并且你也可以删除之前在config里面添加的rtc fix补丁。

SSDT-RTC_Y-AWAC_N.aml

 

3.9 FCPX加速

FCPX在黑果下主要有两个问题:1.核显无法拉到最满的1.2GHZ,独显尤其是vega芯片的显卡不满载工作,看戏。这里我们主要针对具有核显和独显的机器进行优化(只有核显或者只有独显的不用试了),让核显跑满速度,提升整个FCPX的效率。至于只有独显的机器,我暂时没有找到比较好的方案,这也是我为什么不推荐买带f的cpu,毕竟黑果没有t2芯片,我们需要核显来支撑一些东西。提示:z170,z270,z370因BIOS缺陷可能无法使用。

这本来是一个比较繁琐的教程,多亏了群友@Bugprogrammer将whatevergreen简化了:博主魔改版Whatevergreen解析,还你正常核显频率(1.2g)

这里我已经帮大家编译好了,把原版的whatevergreen替换了就行了。此WhateverGreen.kext保留了AGDP黑屏补丁、开机紫条补丁以及改名补丁,非常精简。

现在看核显(GFX)整个工作效率都能维持在1.2GHZ上,(我这里对CPU做了优化,可能实际没我这么夸张)如图:

 

什么?效率还是不够高?大哥是开影视工作室的吗!?好吧,请看“CPU的变频优化”这章,记得CPU要有水冷哦!

 

3.10 睡眠即醒的相关问题

睡眠即醒很大程度上跟USB的定制相关,一般一个好的USB定制就能解决睡眠即醒的问题。当然系统的更新,MacOS的也在做不断的调整,比如蓝牙不能在HUB下进行内建,比如雷电卡必须将4个端口全部内建才行,等等。甚至有些时候我们都不知道为什么黑果会睡不着,那有没有一个办法让黑果强制睡眠呢?答案是有的。经过我的摸索,有几种方法能达到强制睡眠的效果,只是方法不同而已,但主要围绕的还是0d/6d的数值来做一些工作。那刚好,这些方法涉及了很多黑果领域的一些小技巧,我也顺便展示给大家。

 

注意:0d/6d补丁的本质是阻止一些部件参与唤醒工作,这其中包括了xhc部件,这意味着你无法使用鼠标键盘唤醒,只能用电源键唤醒。

若你有一组除了xhc之外的usb控制器,那把键盘鼠标插在那两个控制器上,这样可以即使用强制睡眠,也仍然可以键盘鼠标唤醒电脑。

3.10.1  方法一:OC版本的0D/06补丁

300系列的主板一般有5个部件是直接参与唤醒工作的,这五个部件分别是XHC(USB控制器)、CNVW(CNVI网卡,如果你的主板自带的话)、GLAN(有线网卡)、XDCI(USB相关)、HDEF(音频)。旧的一些主板可能会有不同的命名,比如XHC有叫EH01,HDEF叫做HDAS等,这里不做讨论。而这些设备往往会直接影响睡眠,比如你输入小兵哥哥经常说的这个命令:

log show --last 1d | grep "Wake reason"

 

我们有时候会看到如下结果:

那么即是这两个部件导致了睡眠出现了问题。于是,我们用几种方法去屏蔽或者说修改这些部件,来达到电脑正常睡眠的效果。

我们打开之前提取的SSDT,随便搜索五大部件中的一个,比如说XDCI:

 

我们主要是看上图中XDCI下的_PRW属性值,可以直接看到Return的值为GPRW (0x6D, 0x04)。其中6D这个数值看主板而定,有些主板叫做0D,而后面04这个值的含义为S4级别的电源管理,即休眠甚至关机情况下的唤醒;有些后面的数值是03,代表着S3级电源管理。这个我打一个大家比较熟悉的例子,GLAN这个部件的PRW值也是0x04,为什么要是04呢?因为这样我们可以使用远程通过网络启动主机功能。

那说了这么多,我们到底要做什么呢?我们要做的就是屏蔽掉他们,不让他们参与主机唤醒这个工作。这样可以彻底解决睡眠即醒的问题。

 

首先通过DSDT里确定你的返回值到底是0D还是6D,比如我这里返回的是6D,就记住自己是6D的。照旧打开宪武大大的OC-SSDT包,打开目录下的0D6D补丁包,看到两个plist的更名文件,我是6D的就直接实用6D更名补丁,打开我们看到两个patches,一个是把03(即S3级别电源管理)改名为00(即取消它的参与唤醒工作)。另一个是把04(S4级电源管理)改成00(取消它的参与唤醒工作)。

 

整个过程其实很简单,就是把宪武大大的两个补丁加到自己的CONFIG里去而已。这里主要运用的方法是HOTPATCH的重命名功能。

 

 

3.10.2  方法二:沿用Clover版本的0D/06补丁&展示TgtBridge在OC下的用法

宪武大大做的clover版本的0d/6d补丁,其实没啥必要讲,只是有留言问了tgtbridge在oc下怎么用,那我就展示一下吧。这个补丁原理是一样的,通过重命名的方式改_prw。

直接下载宪武大大的clover hotpatch补丁包,打开“11-1-睡了即醒(0D/6D)补丁”下的plist文件,按照clover的方式,其实把这些补丁直接拖到clover下就行了。那我们拿出一组数据来讲解怎么把它翻译成oc版本:

Comment          String        XHC:_PRW to XPRW
Disabled         Boolean       True//此补丁并未生效,这里要改成false才会生效
Find             5F505257      //hex转text的含义即是:_PRW
Replace          58505257      //hex转text的含义即是:XPRW
TgtBridge        5848435F      //hex转text的含义即是:XHC_

这里我来解释一下,这组改名是对xhc下PRW进行改名为xprw,这样的话,之前prw下的(0x6D, 0x04)即不生效了。而指定xhc的方法即是使用了tgtbridge,因为整张dsdt上有几十上百个_PRW,你必须通过tgtbridge来指定到底是哪一个部件的_PRW。

 

那么OC到底怎么使用tgtbridge来特定某一部件下的内容重命名呢?我们先把上面一段clover的补丁转换成oc的版本先吧:

Comment         String        XHC:_PRW to XPRW
Count           Number                  //需要重点解释  
Enabled         Boolean       True      //表示应用此补丁,不应用选False            
Find            Data          5F505257  //hex转text的含义即是:_PRW
Limit           Number        0         //这个按默认即可 不去管他
Mask            Data          <>        //这个按默认即可 不去管他
OemTableId      Data          <>        //这个按默认即可 不去管他
Replace         Data          58505257 //hex转text的含义即是:XPRW
ReplaceMask     Data          <>        //这个按默认即可 不去管他
Skip            Number                  //需要重点解释 
TableLength     Number        0         //这个按默认即可 不去管他
TableSignature  Data          44534454  //hex转text的含义即是:DSDT,这里按默认即可,代表对dsdt进行修改

 

这里就是一个还没全部翻译好的oc版改名xhc的prw。那么如何定位xhc下的_prw呢,主要是填写CountSkip。其实oc的tgtbridge是通过一个个数过去来定位具体哪一个位置的。比如xhc的prw是整张dsdt里面的第55个,那skip填54,意味着跳过前54个,从第55个开始执行。那执行多少次呢?执行一次count就填1;比如你要同时改第55个和56个,那count就填2。说了这么多,我来实操一下吧:

 

打开dsdt,在左下角直接搜索_PRW,就能把整张表的_PRW筛选出来了:

我总共数了一下,一共有56个_PRW。我们再在主内容栏上按command+f搜索xhc,直接找到xhc的_PRW,刚好我们看到我的xhc实在整张表的倒数第4个,也就是正数第53个:

 

那么我们就可以补充完整张表了:

Comment           String         XHC:_PRW to XPRW 
Count             Number         1
Enabled           Boolean        True
Find              Data           5F505257 
Limit             Number         0 
Mask              Data           <> 
OemTableId        Data           <> 
Replace           Data           58505257
ReplaceMask       Data           <> 
Skip              Number         52
TableLength       Number         0 
TableSignature    Data           44534454 

 

如果你想第53、54、55个都改掉,那count就写3,意味着顺序执行3次。好了,就这样,有问题留言。

 

3.10.3  方法三:配合SSDT+重命名的强制睡眠补丁 (重点推荐)

我之前也提过,我是一个比较反对在oc下进行直接重命名的用户,如果真的要用重命名,也一定是搭配ssdt去做重命名,所以这个方法也是宪武大大和我最推荐的一种方法。

打开宪武大大的OC-SSDT包,找到0D/6D文件夹,打开SSDT-GPRW.dsl。我来解释一下里面的内容

//
// In config ACPI, GPRW to XPRW
// Find:     47505257 02
// Replace:  58505257 02        //这里提示你要应用这个补丁,你必须在config中的ACPI-PATCH里面加入如上重命名内容          
//
DefinitionBlock ("", "SSDT", 2, "ACDT", "GPRW", 0)
{
    External(XPRW, MethodObj)    //寻找dsdt表中叫做XPRW的内容,这是要你在config中先把gprw改名成xprw才会生效,这就是为什么这个补丁的重命名必须是这个ssdt和重命名一起用的原因,你第一个重命名不生效,这个ssdt也不会生效。
    Method (GPRW, 2, NotSerialized)
    {
        If (_OSI ("Darwin"))          //为了不破坏dsdt完整性,这里做了系统判断,当你运行windows的时候,此ssdt不生效
        {
            If ((0x6D == Arg0))       //如果你的dsdt中是6D进行判断
            {
                Return (Package ()
                {
                    0x6D, 
                    Zero
                })
            }

            If ((0x0D == Arg0))      //如果你的dsdt中是0D进行判断
            {
                Return (Package ()
                {
                    0x0D, 
                    Zero
                })
            }
        }
        Return (XPRW (Arg0, Arg1))  //当运行mac系统时,如果你的dsdt中XPRW为6d,或者0d时返回为0,即屏蔽。
    }
}

 

这个ssdt不需要你改任何内容,打开后左上角另存为(save as), 其中文件格式(file format)必须选择ACPI Machine Language Binary,文件名字就叫,记住后缀为aml。记得将ssdt-gprw.aml放入EFI/OC/ACPI下,并在config.plist中添加加载此aml文件:

 

并且,我们需要在ACPI—Patch中增加一条配合此ssdt的重命名:

 

3.10.4  方法四:从白果DSDT中学习到的睡眠补丁

最近群友在看白果的dsdt中发现白果的5大部件_PRW值都是(0x69,0x03)。那么何不试试把这5大部件的s4级电源管理都改成s3级呢?实践证明在某一些机器上把04改成03是有效的,方法如下:

 

3.11 OC官方内核补丁集介绍

这里会长期更新OC官方提供的Kernel Patch (KP)补丁。

 

3.11.1 华硕等机型开机卡F1

注意此kp补丁只对10.14.4以上系统版本生效,旧的我懒得提供了,需要留言。

Kernel
  Patch
     Item 0
         Base            String
         Comment         String         f1 patch (随便填,好记就行)
         Count           Number         1
         Enabled         Boolean        Yes或者True
         Find            Data           75330fb7
         Identifier      String         com.apple.driver.AppleRTC
       Limit           Number         0
       Mask            Data            
       MaxKernel       String
       MinKernel       String
       Replace         Data           eb330fb7
       ReplaceMask     Data        
       Skip            Number         0

 

 

3.11.2 系统版本10.15.2开始无法自动进入睡眠补丁

在@Bugprogrammer 的qq群中曾推广过使用SSDT-SBUS.aml来解决这个问题,有些人可以自动睡,有些人不行,我也不知道为什么,我甚至不知道为什么新主板要加这个补丁。如果你用了有效那就用吧。

 

除此之外,OC官方推荐开启小憩后可以自动睡眠,但小憩带来的问题是它会自动醒,OC提供如下补丁来解决这个问题:

Kernel 
  Patch 
    Item 1 
       Base         String    __ZN8AppleRTC18setupDateTimeAlarmEPK11RTCDateTime 
       Comment      String    RTC Wake(随便填,好记就行) 
       Count        Number    1 
       Enabled      Boolean   Yes或者True 
       Find         Data      
       Identifier   String    com.apple.driver.AppleRTC 
       Limit        Number    0 
       Mask         Data      
       MaxKernel    String 
       MinKernel    String 
       Replace      Data      c3 
       ReplaceMask  Data 
       Skip         Number    0

 

 

3.11.3 关机卡RTC

Kernel 
   Patch 
      Item 2 
        Base          String       __ZN8AppleRTC14updateChecksumEv
        Comment       String       Disable RTC ck poweroff(随便填,好记就行) 
        Count         Number       1 
        Enabled       Boolean      Yes或者True 
        Find          Data         
        Identifier    String       com.apple.driver.AppleRTC 
        Limit         Number       0 
        Mask          Data        
        MaxKernel     String  
        MinKernel     String 
        Replace       Data         c3 
        ReplaceMask   Data       
        Skip          Number       0

 

 

3.12 300系列主板开启原生NVRAM

OC在0.5.5正式版开始支持300系列的原生nvram。首先打开你的dsdt,搜索001F0000,确定自己的

  • lpc部件名字,如图示,我的lpc部件名叫做LPC0, 别的主板可能叫做LPCB,请根据实际情况记录
  • lpc的路径,如图左下角红线提示,我的LPC路径在_SB_.PC00.LPC0

 

下载SSDT-PMC.dsl,根据自己的dsdt编辑相关内容:

 

左上角另存为(save as), 其中文件格式(file format)必须选择ACPI Machine Language Binary,文件名字随便写吧,我就叫ssdt-pmc.aml,记住后缀为aml。记得将ssdt-pmc.aml放入EFI/OC/ACPI下,并在config.plist中添加加载此aml文件。

如果你之前模拟过nvram,请执行以下命令删除相关模拟内容:

  • # 删除文件 LogoutHook.command
    sudo rm -rf $(sudo defaults read com.apple.loginwindow LogoutHook)
    # 清空 LogoutHook 的触发设置
    sudo defaults delete com.apple.loginwindow LogoutHook
  • 删除EFI下的nvram.plist。

 

同时你需要对config.plist进行设置:

  • NVRAM—LegacyEnable 选择no/false
  • NVRAM—LegacyOverwrite 选择no/false
  • Booter—Quirks—-DisableVariableWrite 选择no/false
  • 你也许要打开NVRAM—WriteFlash 选择YES(请尽可能不要选!)

 

 

4.0 OpenCore 进阶

 

以下内容对你正常使用黑苹果已经无关了,如果你追求更好的黑果表现,可以看下去,但这部分内容也需要你自己有更好的能力与耐心。如果你不具备足够的条件,我不建议你看下去;如果你的失误导致硬件的损坏,我也不会、也没能力负责。

4.1 CPU的变频优化

此章节对你的要求会相对高一点,并且请你具备如下条件:

  • 有耐心
  • CFG已经解锁,可以看我博客中apitomemoryfix那篇文章解锁。(这也许不是必要条件
  • 已经通过3.4章节打开原生电源管理。
  • 此章节只适用于4代之后的CPU。
  • 在调整CPU变频时,出现失误导致CPU温度过高,能有正确的处理能力保证CPU不烧毁,我对极端的后果不负责任。
  • 此教程对无核显用户不友好,需要自己更多的领悟。
  • 如果你不同意第五条,请不要看下去。

 

在Intel四代之后,苹果引入了新的内核级电源管理方式:XCPM(XNU CPU Power Management),这种新的管理方式可以高效地管理电源及变频。同时,苹果也推出了HWP (HardWare controlled Performance states),这种技术可以快速根据特定程序的需求,作出变频转换。我们这个章节,本质上就是在加载XCPM的情况下,调整HWP来优化CPU的变频。

 

同时我要说的是,我在论坛上看到很多所谓的“变频”,有的甚至加载了50多个档位的变频,其实这种是完全没有意义的。我认为,变频是能在你需要的高频的时候快速进入高频状态,在关闭程序后又能很快回到低档位,换句话说,其实只需要三个档位就高了:睿频档,正常频率,以及低频档。

 

  • 首先,你需要搞清楚自己的cpu型号,并找到、换成与自己cpu型号最接近或者一样的白苹果型号,并且此型号必须带有HWP。一般新的笔记本机型都具有,台式机的话推荐iMac19.1以及Macmini8.1。可查询此帖选取适合的机型。

 

  • 执行如下命令:
cd ~/desktop
mkdir cpu
cd cpu
git clone https://github.com/corpnewt/CPUFriendFriend.git
git clone https://github.com/acidanthera/CPUFriend.git
cp ~/desktop/cpu/CPUFriend/tools/ResourceConverter.sh ~/desktop/cpu/
CpuFriendFriend/CPUFriendFriend.command

 

  • 你会看到如图的命令行,这里1 of 4代表第一段睿频的设置,以此类推,数值越大睿频越高,下面要求你填写的是最低的频率值,你想要低一点的800MHZ就填08,高一点的1300MHZ就填0D(注意大小写)

 

  • 填完前两段后,它会要求你填写EPP值,EPP值越低,性能表现越强。我们是填的前两段的低频率部分,我们可以选择节能型的,比如0x80,如果你想极致性能,可以填0x00。

 

  • 直至你填完所有4段变频需求后,便会生成你的变频plist。我们执行以下命令:
cp ~/Desktop/cpu/CpuFriendFriend/Results/*.* ~/Desktop/cpu

 

  • 我们会在桌面的CPU文件夹中找到你所需要的ResourceConverter.sh以及Mac-xxxxxxx.plist两个文件

 

  • 执行以下命令生成你最终需要的CPUFriendDataProvider.kext
cd ~/Desktop/cpu
./ResourceConverter.sh --kext ~/Desktop/cpu/Mac-AA95B1DDAB278B95.plist

注意命令行中Mac-AA95B1DDAB278B95.plist,请替换成你自己的文件名,这样我们就可以在桌面的CPU文件夹下拿到CPUFriendDataProvider.kext

 

  • 我们再到CPUFriend的release页面下,下载最新的release版本,得到里面的CPUFriend.kext

 

  • CPUFriendDataProvider.kextCPUFriend.kext一起放到oc/kexts下,并在config中加载,注意:CPUFriend.kext应该放在CPUFriendDataProvider.kext的前面。

 

  • 感谢@请叫我官人 的帮助。完成,自行测试。

 

 

4.2 5700/XT/Redeon VII显卡的性能优化

 

此教程已经发于pcbeta:点此直达

4.3 

 

 

 

 

 

 

287 评论

  1. 支持,希望有时间的话,重点讲讲如何使用OC提供的那些SSDT,来实现一些Clover一个补丁或者一键就能搞定的问题。谢谢。

  2. 2.3.2.1 有核心显卡并用独显做主力的用户
    请问这里的 device-id 需要填写吗 如果需要填写的话是这样的吗
    谢谢博主

    1. 我没理解错的话,OpenCore从0.0.4之后就用“FwRuntimeServices.efi”配合config.plist里“Booter”和“NVRAM”部分的几个参数替代了“EmuVariableRuntimeDxe.efi”的功能,所以Emu那个在新版OpenCore里就不需要了

      1. 謝博主回覆 對了有i5-8400核心显卡并用rx570独显做主力
        引导参数要填什麼正確?目前填 shikigva=40+shiki-id=Mac-7BA5B2D9E42DDD94
        videoproc有檢測到h264跟hevc可是fcpx只有独显跑滿核心显gfx都未做動還請博主開示

          1. 博主你好参数只用Slide=1 darkwake=0
            FCPX在輸出時會失敗關閉 目前bios設定Z370
            Primary Display-PCIE
            CPU Graphics Multi-Monitor-Enable
            關閉也試過FCPX在輸出時就會失敗
            一直找不到確切原因也都按教程做了...

  3. 你好,我按照您的教程修改后,开机啰嗦没有问题一过后卡在进度条上,一直不动,也不出安装磁盘界面,哦对了。我是华硕u4100uq 笔记本

  4. 请问HD4600核显应该注入什么ID才对啊 我注入04001204可以进入系统 但是分辨率只有1024×720 我显示器是2K无法开启

  5. “不需要再做仿冒EC以及做SSDT-USBX。加载USB电源控制直接通过KEXT来实现。”
    请问是以后两种方法均可,还是说升级10.15.1测试版之后就只能用KEXT实现,需要删除USBX.aml。
    如果说两种方法都可以的话,是SSDTEC+USBX好,还是只USBPower.kext这个方法好。

  6. 先膜拜一下博主了,按照博主的教程现在能进入系统了。但有个问题,就是在clover下面声卡layout-id注入是5,但在OC下不能用,在黑果小兵那边查的数值都试了也还是不行。检查了声卡位置也没有错,能帮分析下吗?

      1. 感谢博主回复哈,已经弄好了,发现是数据类型选的不对。还有个问题想问一下。我的win10和osx装在同一个nvme硬盘里面的不同分区,efi文件夹也是共用的。scanpolicy设置为0,但是扫描不到我的win10系统,是不是它们必须在不同的硬盘啊?

  7. 博主大大,文中提到的禁用awac会影响节能5项,这其中有什么详细关系呀?以后是否有不影响节能5项的rtc修复出现呢?

  8. 博主,我输入数字之后就一直卡在选择系统的那个界面,过段时间就回自己重启 都是按照帖子的步骤来的 请问是哪里出了问题

  9. 我的 Deskmini 310 还存在睡眠即醒的问题,睡了一会自己醒,醒了又睡,如此反复循环。期待博主后续更新。除此之外其他方面非常完美,堪比白苹果,非常感谢博主的分享。

      1. 的确是这个原因,关闭小憩功能后睡眠就正常了。还有一个困扰我的问题是:从进入睡眠状态开始到电源风扇关闭的这段时间,无论是接入内建声卡还是 USB 声卡,音箱都有巨量电流声,不知道如何解决。

  10. DSDT.aml里面搜索不到PNP0C09怎么办?另外一直卡启动选择,IgnoreInvalidFlexRatio改成yes或者NO都不行

  11. 大佬,雷神911 s1g可以装吗? 我想花点钱装..找了几个群里的,都不行..
    配置是 6700hq 530集显,1060独显..驱动不驱动的无所谓..我连安装界面我都看不到…

  12. 请问:
    3.8.2 不存在AWAC的情况下修复RTC这一段,打上补丁后,IORegistryExplorer里面是什么效果,我这主板没有看见awac,打上补丁后,现实效果也没变,只在IORegistryExplorer里面找到一个rtc,展开后,下面显示AppleRTC/AppleRTCUserClient,有截图对比吗?

  13. 写的非常详细,本人小白,非常感谢。。。能否麻烦针对AMD CPU做一些说明?因为参考OC原作者的说明的话,https://khronokernel-2.gitbook.io/opencore-vanilla-desktop-guide/ AMD和Intel是分开写的,所以猜测有些设置是不能通用的?

  14. 请问一下楼主,我是Z390 AORUS PRO WIFI主板+9900k,如果因为Z390的问题无法使用这个修改后的whatevergreen使FCPX核显加速,能否使用您在“Z390各种问题解决方案”这篇文章中提到的去掉whatevergreen的这个方法呢?如果可以的话在OC中如何实现呢?谢谢!

    1. 兄弟我和你的主板,CPU一直,我分别装了装mojave和catalina都是无法正常关机,每次关机卡代码mojave卡在BSD process name corresponding to current thread: launchd.
      catalina卡在coredump complete of kernel.
      还有就是这个主板应该是能驱动蓝牙的,但是我的蓝牙时有时无(跟不同的EFI有关)

  15. 感谢博主的文章,在这里分享一下我折腾的EFI
    链接: https://pan.baidu.com/s/1SNFy2i1GxCcI-GnXyHPBjg 提取码: xute
    但是有一个问题没折腾明白,我用usb链接的键盘(AnnePro2)开机选完oc引导后键盘就没反应了,重新插拔后恢复,ReleaseUsbOwnership true和false都试过都是一样不行,但是鼠标usb链接的鼠标就没事。。
    还有就是蓝牙没问题 wifi却没有。
    希望大神指导!
    配置如下:
    CPU:3700x
    显卡:5700xt超白金
    主板:MSI B450m迫击炮钛金板
    内存:金士顿掠食者3200*2

    1. 跑分情况:
      geekbench5 显卡metal分42619 opengl分36110
      r20 4700分
      fcpx跑BruceX 5k 渲染 13s
      不知道这个分数正常吗?

  16. 博主您好,我配置完oc引导后,进入界面,选择mac os所在的数字后,界面直接没有相应了,重置nvram的选项和进入Windows的选项倒是都可以用,就是mac os 无法进入,不知为何

  17. 博主,我的主板是华硕Z170A,OC什么都更新到最新版,删掉EmuVariableRuntimeDxe.efi,开机就会卡在AppleNVME Assert Failed。。该如何解决

      1. 后来在远景论坛找到一哥们分享的旧版的fwruntimeservice替换掉就ok了,然后再换回自己的新版的fwruntimeservice也没问题了,reset了话就又不行了,这个东西比较诡异。。

  18. 技嘉B365M小雕, 模拟nvram 生成的 nvram.plist 只有7C436110-AB2A-4BBB-A880-FE41995C9F82这一项,该怎么解决,看别人好像是有2项。

  19. 技嘉b365 小雕, RX590, 9400F。

    模拟NVRAM 生成的 nvram.plist 只有 一个子节点:7C436110-AB2A-4BBB-A880-FE41995C9F82

    并没有:8BE4DF61-93CA-11D2-AA0D-00E098032B8C子节点(Boot0080,BootOrder)

    请问该如何解决,opencore用的都是最新的,还有教程里提供的驱动

      1. 谢谢,我后来用了VariableRuntimeDxe.efi配合FW开头那个EFI驱动, nvram.plist现在有2个节点了, 但是发现 从设置—启动磁盘里 选择MAC, 重启后 只有第一次生效(默认启动MACOS), 第二次重启后,默认又是windows了, 发现 nvram.plist的Boot0080会改变。

  20. oc可以启动mac os无法启动win7怎么回事?怎么让win7和OS共存啊,对了我是单磁盘双系统,clover可以,oc却不行这是为什么呢?

  21. 博主,为啥我模拟了nvram.plist之后,只有手动选择启动磁盘,开机后之前打开的软件还开着,

    如果不手动选择启动磁盘重启后所有软件都关闭了,

    默认启动项是macOS,是哪里设置的有问题

    1. 我不是博主~
      关机若有勾选 ‘Reopen windows when logging back in’ (对不起,不知道中文怎么写),重开机后自然会自动重开,不过我看不懂你第二行所说的不手动就关闭

  22. 博主好!正是学习了你的教程用上了OC,非常好!目前一个问题不知啥原因:用选择项进系统,第一屏大苹果,二屏正常;跳过选择项直接进系统正常。能帮忙分析是哪里设置不对吗?

  23. 你好楼主 想请教 10.15后一些完善的问题 配置华硕x399+amd2970wx 主要是想解决一下传感器的问题 现在只能显示一下硬盘的温度 还不知道准不准 如果显示cpu的温度和频率 还有显卡的温度和频率 多谢

  24. 你好,请教一个问题
    基本按照你的配置的,睡眠可以,休眠到硬盘启动的话会失败重启。
    有什么思路的吗?
    主板应该是支持nvme的z170

  25. 老铁 有偿解决我的一个问题么? 10.15.1/10.15.2 beta3 都有一个问题, 就是鼠标键盘如果大概5-10分钟不使用, 系统会hang住, 只能重启按钮? 配置是 amd 3700x 微星b450迫击炮max 迪兰rx5700.

  26. 博主的博文对我的帮助很大,很多问题都解决了,但是关于利用cpufriend实现cpu变频遇到一点问题。如果用cpufriend.kext,那么acpi里面的XCPM plugin还要保留吗?我试了试,如果删掉xcpm plugin的ssdt补丁,节能5项变2项了,如果不删掉的话,好像cpufriend.kext也没什么用。现在不知道该怎么办了。我的电脑是hp prodesk g3,cpu 6700,显卡gt730,主板芯片组应该是2系的,机型用的imac 17,1。希望博主能讨论一下这个问题。谢谢!

  27. 想问下博主,通过上述的教程之后如何才能判断非原生的nvram是否加载成功呢?因为自从我换了oc引导就出现了handoff、sidecar失灵的情况。先过谢谢博主,文章获益匪浅!

      1. “您不能将启动磁盘更改为所选磁盘。”
        “Bless工具无法设定当前的启动磁盘。”
        这个提示应该是加载失败了的吧?

  28. 大佬,我有点疑惑:
    为什么z370主板支持nvram,不是应该可以省去这个麻烦吗,可是看到很多都是最推荐的z390

  29. 用了usbports.kext和usbpower.kext,ioreg里applebuspowercontroller sleep wake那三条也有了,但是系统报告usb没有睡眠电流
    我是台式机H_EC返回0,没用H_EC->EC,试了仿冒EC和不仿冒也还是没用

  30. 5700XT这个超频超的太狠了 一般的卡千万不能用
    核心频率拉到2.4G
    老铁这个最好下架吧这个别人用了要烧显卡了

  31. 3.8.1 存在AWAC的情况下修复RTC
    这里我们直接使用宪武大大提供的ssdt,放入acpi目录下并在config中载入即可。(这个包是宪武大大在群里面发的最新版,他的github还未更新此文件,目前是10月28日)。加载此补丁后,你再打开IO Registry Explorer,你会发现awac已经没有了,并且多出了一个rtc部件,表示此补丁生效,并且你也可以删除之前在config里面添加的rtc fix补丁。

    SSDT-RTC_Y-AWAC_N.aml

    请问方法这个clover可以用吗?

  32. 博主,为啥执行CPUFriendFriend.command之后,只有一个档位,1 of 1,不是1 of 4。我是iMac 17,1,6700k

  33. 博主好!目前是10.15.1系统,OC 053引导,除了唤醒需要用电源键,其他一切还算完美,一直没搞懂你说的那个“0d/6d补丁”,我的系统里好像也没有看到0d/6d补丁,USB已经定制并内建,就是不能用蓝牙键盘唤醒,(插上USB可以唤醒),能否指点一下,谢谢~~

  34. 您好,我的华硕飞行堡垒笔记本,通电时睡眠和唤醒正常,电池供电时候唤醒就会直接从开机界面开始,进入系统之后上次未关闭的软件会自动恢复,系统提示错误sleepwakefailure from efi。经测试只要睡眠过程中拔掉电源,就会出现前这个错误。 系统10.15.1 oc引导。 请问有没有排错思路

  35. 博主:
    我的配置是:技嘉z390i Aorus Wifi, 9900k, Vega56。按您的方法,基本都成功了,很流畅。

    唯一存在的问题是:
    模拟NVRAM 生成的 nvram.plist 也只有 一个子节点:7C436110-AB2A-4BBB-A880-FE41995C9F82,
    8BE4DF61-93CA-11D2-AA0D-00E098032B8C子节点没有,章节3.2实现不了。

    OC 0.5.3和AppleSupportPkg 2.1.4都是官网最新的Release,问题会出在哪?

  36. CPU频率那一步,没有必要再使用ResourceConverter.sh以及Mac-xxxxxxx.plist两个文件重新生成CPUFriendDataProvider.kext了。
    CPUFriendFriend脚本直接生成了CPUFriendDataProvider.kext和ssdt两种文件,直接使用就可以了。

  37. 我在引导页面选不了引导项,用的是用生的苹果键盘和鼠标。在efi里也没有放UsbKbDxe.efi。后来我只引导MAC也是没反应。我摄影为15显示超时。就是进不去,老大这是什么情况?

      1. 加上了,可以进系统了,但是好像没有加速啊,使用VDADecoderChecker和videoproc,都没有显示加速

  38. 问下OC可以注入内存么?我的单根32G内存黑苹果无法识别,clover改成16*2可以成功启动,opencore无法启动

  39. 大佬,按照你的文章把 OC 引导折腾的几乎完美了,但唯独还一个问题——睡眠问题(手动进入睡眠正常)。
    1. 如果开启小憩,可以自动睡眠,但醒了一次后不会再次进入睡眠。
    2. 如果关闭小憩,加载 SSDT-SBUS.aml 也无法自动进入睡眠。
    已经被这个问题困扰好几天了,搜索并尝试了无数种办法,依旧没有解决。

  40. 请问一下dalao,你的技嘉主板是怎么更换的开机logo啊?
    我现在用的 x299 aorus ultra gaming 不用-v 的话,那个苹果logo真的非常大。。。

  41. 从10.15开始,USB电源的控制被直接分配到了IOResources上面:

    博主你好,我在power里面并没有看到你博文中写的USB电源控制,也就是我的里面没有那三个项目。我该怎么办?

  42. 想开启hwp,机器是9400f的rx580独显,机型设置为imacpro1.1,运行小兵的机型设置命令后,出来56个备选机型,其中有好些有绿色的Hwp的列表,但所有带hwp的我上网搜了一下,没有一个是imacpro的机型,不知道应该选哪个,相对接近的就是Mac-AA95B1DDAB278B95,是imac19.1,可这机型有集显,我的机器能用吗,有点没太理解。

      1. 我现在在未设置的情况下,已经可以硬解,如果设置了还要调整吗,麻烦给指导一下思路,我来尝试一下。

    1. 哦对了…请教一下 用hdmi连接后…发现随着使用时间的增加…显存占用逐渐爆满…这个会有严重的影响吗?

  43. 大佬,在主板的logo之后会出现一段很快的“ocs:no schema for consolecontrol at 0 index!”,然后才开始显示苹果的logo,您加的bootercfg说是关闭开机时的代码,是指关闭这个么?

      1. 是照着文档的simple.plist在UEFI里的Protocols下填写了并将值改为了true
        (我是因为去掉-v之后在苹果logo阶段还有跑码,所以就添加了IgnoreTextInGraphics,以及看文档知道的它需要的ConsoleControl,现在是没有跑码了,但是有如上提到的问题

      2. 好吧,我没仔细看在后面多加了一个consolecontrol,现在没有报错了,谢谢大佬了,不过还是会闪一个start再开始引导,这个能关掉不呀

  44. 大佬,请问下为什么我的OCShowPicker包括选择系统后的界面,独立显卡貌似都没渲染到,清晰度很低,而且苹果的LOGO也是瘪的(技嘉 Z170N-WiFi rev.1.0 + AMD RX 570 4G 公版 2048SP)

  45. 大佬,开机出现 Failed to parse real field of type 2,我看1有解决办法,但是2没有找到,需要跟1进行相反的操作吗

  46. 我看了你的博客,准备按你的电脑配置来买电脑,可是看你好久都不来这里更新了,不知道你会不会回复我呢。不知道你有没有什么建议。

  47. 提个建议, 博主是否可以用版本控制来写博客? 这样的好处是, 对于OPENCORE更新导致的字段增减, 可以非常直观的看出来. 提高效率.

  48. 请教大神,SMBIOS设置为iMacPro1,1需要设置VEGA64改PEGP为GFX0,OC下如何在不影响Windows的前提下实现?谢谢!

  49. 引导的时候卡在 iohiddevice 了,提示不能开启,过会就黑屏了

    asus 170 6600K 5500xt 不知道那里出错了

  50. MaciASL打开宪武大大的SSDT-PLUG-_PR.CPU0.dsl编译不能通过,报错
    12, 4096, syntax error, unexpected ‘(‘
    12, 4096, Invalid character (0x3D), expecting ASL keyword or name
    .
    .
    .
    一共12个错误,是我的MaciASL有问题么

  51. 大佬,按照你的文章把黑苹果opencore引导的几乎完美了,但还有一个问题——睡眠问题。
    1. 手动睡眠和自动睡眠都可以,就是睡眠后usb键盘也断电了,鼠标不断电,但是怎么样都换醒不了,按电源键也不醒。
    已经被这个问题困扰好几天了,搜索并尝试了无数种办法,依旧没有解决。希望大佬能指导一下!谢谢!
    AMD 3900x加华硕X570-E,显卡5700XT。

  52. 总是在下载的时候自动重启,重启后报告如下:
    panic(cpu 0 caller 0xffffff7f9dc674a7): nvme: “Fatal error occurred. CSTS=0x1 US[1]=0x0 US[0]=0x96 VID=0x126f DID=0x2263
    . FW Revision=S0614B0\n”@/BuildRoot/Library/Caches/com.apple.xbs/Sources/IONVMeFamily/IONVMeFamily-470.80.1/IONVMeController.cpp:5258

      1. 博主大神,2.16更新后,U盘引导安装系统界面全部乱码,进入系统也是乱码,重新制作安装u盘也是乱码,这个和配置有关系还是什么问题?

  53. 您好,问下华硕 z390i 主板 + 9900k + Vega56 开机 opencore 卡禁止符号,啰嗦模式显示 Error Loading Kernel Cache (0x1),之前用同样 config 可以进入系统,前天重启之后就卡 0x1 了,请问有啥解决思路不?换回 clover 正常进系统没有任何问题,nvram 清理过了,重建缓存也试过了就是卡在这一步,非常莫名其妙

  54. 你好,OC下如何仿冒处理器,我的是AMD处理器,10.15.2以上的系统命令行下已经可以正确识别,以前命令行下显示未知,但在关于本机里无法显示,想在OC下更改处理器为未知来使用上个版本的方法修改处理器名称。cpuid和smbios如何设置?

  55. AppleACPIPlatformPower Wake reason: GPP0 GPP1 GPP3 GPP4 GPP5 GPP6 GPP7 GPP9 GPPA GPPB GPPC GPPD GPPE GPPF
    大神你好,我的是amd锐龙1200 华擎 b350mpro,macos10.15.4beta , 唤醒部件返回值都是08,不是6d也不是0d,但我按照方法1打补丁还是睡眠秒醒,请问如何解决?

  56. 2.4.1 Config—–Kernel—–Add
    Item 7
    BundlePath String USBPorts.kext
    Comment String
    Enabled Boolean YES
    ExecutablePath String //一些没有执行文件的kext不需要填写
    MaxKernel String
    MinKernel String
    PlistPath String Contents/Info.plist
    请问这里“USBPorts.kext”和Kexts文件夹里的“USBInjectAll.kext”是什么关系?因为其他的都是名称对应,这里没看懂。

  57. 大神,我用OC引导后想用Boot Camp装Windows但是启动转换助理没发打开是缺少什么驱动么,clover下能打开但是报错:磁盘格式化时出问题

  58. 大佬大佬,z370主板核显频率bug,有没有可能解决?解锁cfg的时候用hackingtool查看cfg状态,看到了igpu频率350,turbor boost频率1150,看来问题跟默认频率有关。这个问题有没有解决的可能?

  59. OC引导win 启动转圈然后卡了,重启继续win 又卡住反复如此,应该如何解决 支持原生nvram ,mac通过磁盘助理切换win也一样

  60. 注:似乎oc还不能引导ubuntu,请用Bios快捷键进入,未证实。
    表示我的笔记本使用OC可以正常引导ubuntu,就是名字不能正确被读取。只显示ubuntu的EFI分区名字,点击进入正常引导开机

  61. 请问我Z390主板无法关机是什么情况呢,点关机会只显示壁纸,必须得手动长按电源键。假如有办法能调出关机verbose mode的话也可以~

  62. 大神,你好,我原来是clover引导的,按你的教程换成了OC引导,但是在启动的时候提示:
    End SetConsoleMode
    ERROR!!!could not find apfs system volume handle
    OCB:StartImage failed – Aborted
    Halting on critical error
    然后就卡住一直不能动了,但安装盘和时间机器是能正常进入的,请问怎样解决,谢谢!!
    Drivers文件夹下是有ApfsDriverLoader.efi的,而且也正确配置了的。
    Root-UEFI-Drivers-0-string-ApfsDriverLoader.efi

  63. 楼主,我的opencore启动时会报fix your kexts,而且一旦进入opencore,再进入windows,网卡就无法使用,nvram中的smbios也会在win中生效

  64. 请问下,我的笔记本是 EC0, 打不打 change ECO to EC 貌似看不出来什么区别? 请大佬赐教。 不打这个重命名会怎么样?

  65. 哥,睡眠唤醒过几秒就重启,我看到你的教程里提过可能是appalc.kext的问题,禁用之后问题解决了,有更好的解决办法吗?

  66. 不管是0.5.6还是0.5.7都有开机卡F1的问题,按教程里的方法开了rtc补丁但是不起效,只能关闭主板bios的那个f1报错选项,但强迫症很难受……有没有其它方法呀?

  67. 我是微星b250m-nano,i7-7700k,amd550的配置。AAPL,ig-platform-id 这一项删除使用videoproc双解,但是把这个填上就检测不双解

  68. 在0.5.6版本的OC的Drivers里面没有OpenRuntime.efi 和OpenUsbKbDxe.efi 文件呀,还有博主您的ApfsDriverLoader.efi文件链接不能下载了,好像截图中没有这个ApfsDriverLoader.efi文件,是不是这个文件不需要了呢?

  69. 楼主你好,我是ASUS z390i 主板,BIOS版本2603,目前存在一个小问题,重启卡F1,已经打了3.11补丁,但是不起作用,只能关闭F1,逼死强迫症的节奏…

  70. 你好,博主,我的OC现在倒是可以引导了,但是为何找不到其他硬盘呢?在clover下,可以看到其他硬盘,但是在OC下,只能看到Mac的系统盘,好尴尬,我两个nvme,3个ssd,1个机械,1个傲腾加速。

  71. 哥,有个问题请教下~
    我的配置是10.15.4 Catalina,OC 0.5.7,Asus Z390-E,8700K,UHD630,DP口接4K显示器。根据博客完成了所有定制,现在有个问题:在每次正常开机状态中,手动关闭显示器再开启(或者从任何睡眠状态中唤醒),亮屏约8秒后自动黑屏,于是要等几十秒到几分钟(感觉是随机的)屏幕才正常亮起,期间键鼠有用但是无法点亮屏幕。
    显卡ID注入0x3E9B0007,定制USB也弄了,深度睡眠也正常;没有连接其他网卡蓝牙配件,内置蓝牙也用uia_exclude=HS14屏蔽了。Clover和OC引导都会出现这个问题,也试过其他同主板i9的Clover和OC配置,问题一样,请问这个问题从何排查呀?

      1. 你们好,我也遇到一毛一样的问题!请问你们解决了吗?
        在 Catalina 10.15.4 + OC 0.5.8 + Q370 + UHD630 + DP口接4K显示器。
        睡眠唤醒后亮屏几秒钟就黑屏,然后得等几十秒-几分钟不等,屏幕又重新亮起。
        我的和 @iSwfe 的情况比较像,使用了 0x3E9B0007,定制 USB 也弄了。

  72. 大佬,我msi z390 gaming edge ac主主板,买的bcm94360cd网卡,但是蓝牙现实是在usb 2.0hub里面的,您文章中提到蓝牙不能在hub下构建,有解决办法吗

  73. 哥,有个问题请教下~
    我的配置是10.15.4 Catalina,OC 0.5.7(试过0.5.6),Asus Z390-E,8700K,UHD630,DP口接4K显示器。看的你的博客完成了所有定制,现在有个问题:在每次正常开机状态中,手动关闭显示器再开启(或者从任何睡眠状态中唤醒),亮屏约8秒后自动黑屏,于是要等几十秒到几分钟(感觉是随机的)屏幕才正常亮起,期间键鼠都有用但是无法点亮屏幕。
    显卡ID注入0x3E9B0007(WhateverGreen1.3.8不需要注入了也试过),定制USB也弄了,深度睡眠也正常;没有连接其他网卡蓝牙配件,内置蓝牙也用uia_exclude=HS14屏蔽了。Clover和OC引导都会出现这个问题,也试过其他同主板i9的Clover和OC配置,问题一样。
    请问要怎么排查这个问题啊?

  74. 博主您好,我想去掉OC引导界面直接进入苹果系统,但是我在【Misc–boot–ShowPicker 设置为False】时系统都进不去。硬件技嘉Z390 wifi ,9900k,vega56

  75. 楼主你好
    我用0.5.7 opencore 3900x asus tuf gaming plus x570 rx 580出現 OSX 10.15.4
    Kernel Panic: IONVMeController.cpp:5320
    请问要怎么排查这个问题啊?

  76. 感谢大神 已经开机使用了,就是开机出来主板信息后 随着就是一串串的英文 不知道怎么去掉 或者跳过去

  77. 你好,我这边有个G551JW笔记本,clover正常使用,根据教程配置完OC后开机跑到end ramdomseed马上就重启,尝试修改内存注入方式无果,请问还有什么办法可以解决吗?

  78. 请教一下,MSR 0x194对应的是BIOS哪项配置呢,搜了一圈好像都没细说。只知道这几个字节跟CPU倍频有关的样子。

    1. 楼主越来越完善了,国内oc黑苹果系统就属你写的最清楚,详细,
      别的教程要是就是有点技术在那侃侃而谈,要么似懂放非懂的东一刀,西一刀的,
      有点基础的都看的都是晕头转向的,更别说小白了。非常支持你!

      还要想问一下,Rx580显卡是否有折腾FBNAME的必要毕竟弄了之后可以抛弃weg、注入FBname,听说功耗会有所下降,跑分性能有所提升!
      按您的原话就是:真正的显卡驱动调用MAC下自己特定显卡的ROM号,特定的EFI REVERSION等。

  79. 博主大佬、按“Config.plist修改”OC配置、加载了3个基本的驱动(ApfsDriverLoader.efi、OpenRuntime.efi、HFSPlus.efi)和基本传感器
    使用过程感知:音频会“爆声”或者“突然没声然后正常重复”(核显DP显示器音响)和在线视频会卡顿转一下下圈(看进度条是缓冲好了)
    换回clover是没问题、试了文中的两个内存注入方式、换OC版本、换传感器版本、声卡注入id也试了下,都会这样
    有点懵哪里出错了、谢谢大佬指导下

  80. 博主大大 ,上次说卡在第一步的UHD630核显DP输出会爆音、声音忽没。。
    在:Config—–Kernel—–Quirks–AppleXcpmCfgLock(选yes)就不会出现了,之前按大大上一篇“300系列主板正确使用AptioMemoryFix.efi的姿势(重写版)”解锁了CFG,在hackintool也能看到“ – CFG Lock…….. : 0 (MSR not locked)” 所以奇怪明明解锁了
    U是 i7-8700 板是 B360 M AORUS PRO 没独显

  81. 你好,我按照教程OC引导能进入系统,其他方面都没问题,就是关闭微信等一些应用的时候会卡一下,鼠标转圈3秒左右,是哪里没做好吗,如果可以请指点一下谢谢

  82. XJN大佬,我有如下配置:
    主板: asrock rack ep2c621d12ws, intel c621 chipset, dual sockets
    cpu: intel xeon platinum 8175M x2, 2.5GHz, 48Cores, 96Threadings, Skylake Server, Cpuid: 0x50654
    显卡: Nvidia Quadro P5000
    参照你的指南配置了,也参考了你列出的那些指南,还在某宝上找过安装服务,始终搞不定10.13.6安装。
    能否劳驾你单独指导?

  83. 大佬,我和您用的相同的EFI, 但是引导的时候有时候能成功进入,有时候跑码却很慢,很久都不能进入,请问这事什么原因?

  84. 请问CFG lock这个东西的作用到底是啥?
    我从来没安装过黑苹果,最近想上车,通过了很多搜索还是不太明白作用,怕买主板有问题上不了车,800以内,尺寸大小无所谓,有推荐吗

  85. 博主,您好!
    我在进行OC引导的时候,能从U盘安装,但是在二次启动选择macOS installer之后,会卡在“administrator is creating non-ejectable disk image”这一步,不知道是什么原因?
    您能帮忙解答一下么?谢谢🙏

  86. 勘误一下,2.5.5 BlacklistAppleUpdate 应该是指忽略硬件更新,开启后仍然能够接到苹果系统更新的通知,只是不再更新苹果网卡之类的固件了而已。

  87. 开机Setting NVRAM ….:Boot0080 – Invalid Parameter和Setting NVRAM ….:BootOrder – Invalid Parameter报错知道怎么回事吗大佬

  88. 大佬,我用的是10.3.6的系统,OC引导,华硕X99 DELUXE II 主板,6850K,现在主要问题是 只要关机断电,就无法进入苹果系统,需要CMOS放电,重置BIOS后,进入另外一个盘的Windows系统,然后再重启进入苹果系统,不知道是怎么回事?我想用开机bios重置补丁,有没有适合10.3.6的呀?

      1. 大神,我今天加入了声音支持,第一次开机直接进入苹果系统,会有duang的提示音,还有welcome to open core ,然后就是屏幕给一下,就没有反应了,华硕主板错误码提示AO,查了下代表ide初始化。只能cmos放电重置bios进入windows然后重启进入苹果。明天试一下这个补丁看看管用不。

  89. 你好,请问大佬我的 dsdt 在更新 bios 后, CPU 命名从 Processor (CP00, 0x00, 0x00000510, 0x06) 变成 Device (CP00) 导致无法引导,如果改回去是可以的,这种情况下如何优雅的更改? 我现在直接修改的 dsdt 变成了静态 dsdt

发表评论

电子邮件地址不会被公开。 必填项已用*标注