麦创网

发表于 21/10/18 15:42:18 |显示全部楼层
「长期更新 经验分享 如有错误 烦请纠正」

引导间存在不同差异,为了及时更进,本教程使用Acidanthera团队开发的OpenCore Bootloader(OC引导)进行主要配置

演示机配置
处理器:英特尔酷睿 i5-8500
主板:华硕 ROGSTRIX B360M
内存:科赋雷霆8+8双通道 3200Mhz
显卡:华硕 ROGSTRIX RX580 2048SP(由于5802048SP未被系统识别导致无法驱动,故刷为570使用)
散热:酷冷至尊 T610P
声卡:华硕 ROGSupremeFX ALCS1220A
网卡:英特尔 I219V V7 + BCM943602CDP(拆机卡)
鼠标:罗技 G ProWireless
键盘:阿米洛樱花键盘

概念
从苹果采用 Intel 的处理器之后,macOS 被黑客破解之后可以安装在 PC 上,从而出现了一大批未购买苹果机而使用苹果操作系统的机器,这种就被称为黑苹果(Hackintosh)
(转自百科)

引导的选择
目前市面上主要有以下几种引导程式
OpenCoreBootloader(极为先进的引导程式,且目前被大多数人使用)
CloverBootloader(老牌的引导程式,积累了大多数的快捷补丁)
ChameleonBootloader(以前被Legacy+MBR的老机型用户青睐,目前逐渐被OpenCore取代)
Ozmosis(不做赘述)

由于引导程式的多样性,本篇仅围绕目前最潮流的OpenCore引导进行讲解

了解 OpenCore
我们可以从 OpenCore 找到引导的源码和已发布内编译完成的压缩包
(演示版本:OpenCore 0.6.5 Release)
下载完成后,解压压缩包,里面是这样的结构(忽略 IA32 文件夹,只解释 X64 文件夹里的 EFI 文件夹)

Docs
里面含有 OpenCore 的更新日志,以及示例的配置文件(也是我们需要用到的),以及示例的 SSDT 补丁等

EFI(位于 X64 下)
OpenCore 引导的主结构,也是重中之重

Utilities
一些附加的脚本

我们将 Docs 里的 Sample.plist 改名为 config.plist,并放在 EFI/OC 下,这就是 EFI 的完整结构
ACPI
OpenCore 存放 ACPI 补丁的目录,将 ACPI 补丁放置在里面,并在配置文件中选择加载(如 SSDT-EC.aml、SSDT-USBX.aml)

BootStrap
OpenCore BootStrap 启动方式的目录(如在配置文件中设置 BootStrap 启动则需要)

Drivers
OpenCore 启动时加载的驱动文件,将驱动放置在里面,并在配置文件中选择加载(如 HFSPlus.efi、OpenRuntime.efi)
放置必需驱动:OpenRuntime HFSPlus(加载 HFS 文件系统时需要,常见于系统安装盘)

Kexts
OpenCore 引导系统时加载的系统驱动,将驱动放置在里面,并在配置文件中选择加载(如 VirtualSMC.kext、Lilu.kext)
放置必需驱动:Lilu、VirtualSMC 或 FakeSMC

Resources
OpenCore 资源目录,可放置主题/音频等资源,并选择加载(需要 AudioDxe.efi、OpenCanopy.efi)

Tools
OpenCore 引导的可选小工具,如 ResetNVRAM.efi、CFGLock.efi

OpenCore.efi
OpenCore引导程序

config.plist
OpenCore配置文件

配置 OpenCore
可使用的配置工具:
OpenCore Configurator(简称 OCC,小白强推)
Propertree(Github 开源的编辑工具,有一定经验者推荐)
OpenCoreQTEditor(采用 Qt 框架开发的一款爱好者自制工具,个人试用后觉得还不错,支持 Win/Mac)
Xcode(不做赘述)
(这里采用 OpenCore Configurator 进行配置讲解)
我们用 OCC 打开 config.plist
ACPI
我们可以看到,ACPI 配置加载 SSDT 补丁的地方,已经为我们预留好了一些补丁的加载位置,我们只需要选择对应补丁的启用框打勾,并把文件放在 ACPI 目录下即可
简略说明:
SSDT-PLUG:CPU 加载 X86 原生电源管理所需的 SSDT 补丁,除英特尔二三代不需要外,基本都需要。
SSDT-EC:处理 EC 用
SSDT-EC0:AMD 部分需要
SSDT-USBX:加载 USBX 供电用
SSDT-EC-USBX:上面两个的集合
SSDT-CPUR:AMD B550 X570 需要
SSDT-PNLF:背光修补
SSDT-AWAC:如果 300 系及以上的主板 BIOS 中未含有切换 AWAC/Legacy RTC 时钟计时的选项,则需要使用该补丁,禁用 AWAC,仿冒 RTC(华硕一般都有,如果没有,使用这个可能还需要 RTC Fix 补丁,OCC 中在 ACPI 下补丁处即可找到对应补丁)
SSDT-RTC0:和上面一起
SSDT-PMC:300 系加载 AppleEFINVRAM 用(马甲板不需要,如 Z370)
SSDT-SBUS:修复 400 系 SBUS 总线管理用,B360 用了会无法睡眠
SSDT-DNVMe:屏蔽 NVMe 设备(如硬盘、网卡)
SSDT-ULAC:USB Port 定制

ACPI下删除栏不用管(X 系列可能需要 Drop 一些 OEM 表)

补丁栏自行选用需要的
Fix RTC _STA bug:修复华硕/技嘉/华擎等机型的 RTC 问题
GPRW 改名:修复唤醒问题(阻断 USB 唤醒)
(笔记本可能需要 EC 改名和 _OSI 改名)
电池改名:匹配 BAT0 内容
OSI 改名:I2C 操作系统补丁
……

FadtEnableReset:主要用于老旧的硬件和部分的笔记本,也可以修复电源快捷键
NormalizeHeaders:清理 ACPI 头字段以修复导致的引导崩溃
RebaseRegions:重新定位 ACPI 内存区域(如加载完整 DSDT 可能需要开启)
ResetHwSig:将 FACS 表内的 HardwareSignature 的值重置为 0
ResetLogoStatus:适用于提供 BGRT 表但无法更新屏幕状态的固件

以上 5 个选项基本不用管

Booter
MmioWhitelist 处如果 Haswell 机型遇到 PCI 问题,可尝试开启(不讲解进阶方法,如定位 MMIO 区域等)

AllowRelocationBlock:允许通过重定位块引导 macOS(适用于没有可用的 Slide、不支持 KASLR 内存注入、安全模式等情况下 slide 值强制为 0)
AvoidRuntimeDefag:修复主板环境和服务(必须开启)
DevirtualiseMmio:释放 64 至 256 兆字节的内存,对于内存分配有帮助,如无效则使用 MmioWhitelist 方法(Z390、10 代机型如果遇到问题尝试开启)
DisableSingleUser:关闭单用户模式
DisableVariableWrite:防止 macOS 写入 NVRAM 区域,没有原生 NVRAM 的可以通过这个模拟 NVRAM(nvram.plist)
DiscardHibernateMap:睡眠相关,修复老旧机型的内存映射 BUG
EnableSafeModeSlide:在安全模式下使用 Slide(一般开启)
EnableWriteUnprotector:开放对 UEFI 服务的写入权限(一般开启)
ForceExitBootServices:老主板无法使用内存寻址的时候可尝试开启
ProtectMemoryRegions:防止老旧机型的内存区域不被错误访问
ProvideCustomSlide:使用随机的不重复的 Slide 值(一般开启,当 OpenCore Debug 显示 You can disable ProvideCustomSlide 可将其关闭)
SetupVirtualMap:构建虚拟内存并映射(一般开启,10 代台式机型(Comet Lake)及 AMD 部分主板因 OVMF 兼容问题需关闭该选项)
ProtectSecureBoot:防止安全启动(Secure Boot)被写入
ProtectUefiServices:防止UEFI服务(UEFI Sevices)被覆盖(一般和 DevirtualiseMmio 一起开启,Z390 需要开启,10 代(CometLake)可单独开启)
SignalAppleOS:白果用的,能在非 macOS 操作系统同时启动 IGPU 和 EGPU
RebuildAppleMemoryMap:重构 macOS 兼容的内存映射,和 EnableWriteUnprotector 二选一,遇到问题尝试开启
SyncRuntimePermissions:对齐 MAT 表权限(Windows、Linux 引导遇到问题可尝试开启,确认是否支持 MAT)
ProvideMaxSlide:默认即可

DeviceProperties
配置 PCI 设备的参数,例如注入 IGPU 的 Framebuffer 数据、注入音频的设备 ID 和 Layout ID
PciRoot(0x0)/Pci(0x1f,0x3) 一般为内置声卡,可添加 layout-id
PciRoot(0x0)/Pci(0x2,0x0) 一般为内置显卡(核显-IGPU),可在这里注入 Framebuffer

Kernel
这里可以对内核作一些修改,包括注入驱动,对内核进行修补替换等
添加处可添加我们想加载的驱动(需放在EFI/OC/Kexts)
仿冒 CPU 处可仿冒对应的 CPU(macOS Big Sur Beta 6 开始支持 Comet Lake,仅为留档,无需理睬)
Cpuid1Data:EB060800 00000000 00000000 00000000
Cpuid1Mask:FFFFFFFF00000000 00000000 00000000
(来自Bugprogrammer)
DummyPowerManagement:和 NullCPUPowerManagement 类似,无原生电源管理的机型需使用(AMD 可用)

强制加载
特殊情况可能需要强制加载一些驱动(如 SecureBoot 值为 Disabled,需强制加载 itlwm 系驱动)

补丁
Ryzen 可在这里打对应的 Ryzen 专用内核补丁


华硕主板遇到重启卡 F1 SafeMode 问题可尝试以下补丁(推荐使用 RTCMemoryFix 框定区域修复)
AppleCpuPmCfgLock:如果 CFG Lock 状态为开启,则必须开启(Skylake 之前需和 AppleXcpmCfgLock 一起启用)
AppleXcpmCfgLock:如果 CFG Lock 状态为开启,则必须开启(Skylake 之后)
AppleXcpmExtraMsrs:无原生电源管理的英特尔 CPU 需开启(Pentium、Haswell-E、Broadwell-E 等)
AppleXcpmForceBoost:强制在 XCPM 模式下提供最高性能,部分至强CPU可用
CustomSMBIOSGuid:执行 SMBIOS 自定义模式下的 GUID 补丁(Dell 笔记本遇到序列号显示问题则开启)
DisableIoMapper:在 VT-D 中禁用 IOMapper 支持(如在 BIOS 内开启了 VT-D,则勾选)
ExtendBTFeatureFlags:替代 BT4LEContinuityFixup 驱动
DisableRtcChecksum:禁止 RTC 的校验和写入(58-59 范围)
ExternalDiskIcons:强制 AHCI 所有磁盘为内置磁盘(如果遇到硬盘反转(内置—>外置,外置—>内置)尝试开启)
ForceSecureBootScheme:强制使用 x86 方案进行 IMG4 验证(当启用 SecureBootModel 且在虚拟机使用时开启)
IncreasePciBarSize:将 PCI 带宽大小扩充至 4GB
LapicKernelPanic:禁用LAPIC中断时导致的内核崩溃(HP笔记本需开启)
LegacyCommpage:老旧主板使用SSSE3需开启
PanicNoKextDump:显示驱动崩溃信息(调试用)
PowerTimeoutKernelPanic:禁用电源状态超时导致的内核崩溃(遇到睡眠崩溃或重启的问题可尝试开启)
ThirdPartyDrives:修补 AHCI 驱动,开启第三方 SATA 硬盘的 TRIM 和休眠功能
XhciPortLimit:修补 USB 驱动,解除 USB 端口超过 15 个的限制,定制 USB 后如果超过 15 个 USB 端口则保持开启
DisableLinkeditJettison:修复 Lilu 的兼容性问题,解决 macOS Big Sur 启动卡 PCI 的问题


Misc
Boot
ConsoleAttributes:启动菜单的文字颜色
HibernateMode:休眠模式(台式建议 None,笔记本建议 Auto)
HideAuxiliary:隐藏启动菜单辅助项(恢复模式、重置NVRAM等,开启后可通过启动菜单内按空格键显示辅助项)
PickerVariant:启动菜单的自定义图标包
PickerAttributes:启动界面属性(默认即可)
PickerAudioAssist:菜单辅助语音
PollAppleHotKeys:模拟苹果快捷键(如 Command+V 进入调试模式)
ShowPicker:显示启动菜单(取消勾选时不显示引导项)
TakeoffDelay:快捷键延迟
Picker Mode:
Built In 为默认的显示模式
External 为外置资源的显示模式(可加载 Resources 主题)
Apple 为白果用

Timeout:
到倒计时结束时进入默认指定到系统
0 为不开启
1-Max 为开启

Debug
DisplayDelay:屏幕调试输出延迟
DisplayLevel:屏幕调试输出等级
Target:屏幕调试输出目标
DisableWatchDog:禁用 watchdog 服务
AppleDebug:调试日志
ApplePanic:内核崩溃日志
SysReport:在引导分区内生成系统报告
SerialInit:串口设备的初始化

Security
HaltLevel:默认即可
ExposeSensitiveData:暴露操作系统的敏感数据(UEFI 变量)
Scan Policy:
调整系统扫描规则
0 为全部显示
ApECID:苹果安全引导标识符

Vault:
如果不使用文件加密选 Optional

BootProtect:
None 为使用默认的引导启动方式
BootStrap 选项设置 EFI\OC\Bootstrap\Bootstrap.efi 的启动优先级最高,即开机自动接管启动 OpenCore
BootstarpShort:短引导选项,无法处理完整启动路径的固件可用(例如 Insyde)
DmgLoading:恢复映像的加载策略
PasswordHash:密码哈希值
PasswordSalt:密码加盐
AllowNVRAMReset:引导界面开启内置的 NVRAM 重置工具
AuthRestart:VirtualSMC 的身份验证重启
AllowSetDefault:允许使用 Ctrl+Enter 选择默认的启动项
EnablePassword:密码保护
SecureBootModel:选择 Disabled 即可(使用 Nvidia Web Driver、itlwm 需设为 Default,或强制加载)
BlacklistAppleUpdate:忽略更新苹果扩展固件的启动项(例如 MultiUpdater.efi)

BlessOverride
可在此设置单 EFI 多系统启动的引导(.efi)指定
\EFI\Microsoft\Boot\bootmgfw.efi 即为引导单 EFI 下的 Windows

Entries
自定义引导项

NVRAM
修改 NVRAM 内的数据
(主要修改 7C436110-AB2A-4BBB-A880-FE41995C9F82 的内容)
SystemAudioVolume:修改系统声音大小(0-100)
boot-args:启动参数(我们最常用的就是 -v alcid=x -wegnoegpu,具体根据自己需求设置)
csr-active-config:
SIP 参数
00000000 开启 SIP
E7030000 关闭 SIP(10.15.x 及以下)
77000000 关闭 SIP(Big Sur 11.0)
prev-lang:kbd:
设置默认语言
默认为俄语
72753a3139343536 俄语
656e2d55533a30 英语
7A682D48616E733A323532 中文(zh-Hans:252)
nvda_drv:
开启 10.13.x Web Driver
nvda_drv 字符数值为 1 时即开启(推荐在 boot-args 里添加 nvda_drv_vrl=1)

LegacyEnable:非原生 NVRAM(模拟 NVRAM)需开启
LegacyOverwrite:重写变量
WriteFlash:允许把变量写入闪存

SMBIOS
这里不细讲,选自己适合的就行了
AdviseWindows:Windows 下 ESP 分区不在第一分区需开启
SpoofVendor:仿冒主板品牌商为 Acidanthera
ProcessType:仿冒 CPU,默认设为 0 即可(AMD Ryzen 或 ES 处理器可将其设为 Model 定义的值以显示具体核心数)
SystemMemoryStatus:默认即可
按照以下图片设置(Dell 机型需将 UpdateSMBIOSMode 设为 Custom)
UEFI
APFS
EnableJumpstart:开启内置的 APFS 驱动
HideVerbose:隐藏 APFS 驱动的调试日志
JumpstartHotPlug:支持含有 APFS 分区的设备的热插拔
GlobalConnect:在 APFS 加载期间执行完整的设备连接(针对 HP 机型)

UEFI 驱动
将我们想加载的驱动的名字写在里面如
并勾选连接驱动程序(Connect Driver)

ExitBootServicesDelay:在退出启动服务后添加延迟(以微秒为单位)
IgnoreInvalidFlexRatio:如果 MSR 0x194 区域被锁定则开启(Skylake 之前的机型如果未解锁 CFG 开启此项)
ReleaseUsbOwnership:分离 USB 控制器所有权,笔记本一般开启
RequestBootVarRouting:macOS 下启动磁盘内切换默认系统引导需开启
UnblockFsConnect:HP 机型遇到启动项加载问题则开启
DeduplicateBootOrder:如果启动方式选择 BootStrap,需开启(在 OpenCore BootLoader 0.6.5 中被移除)
TscSyncTimeout:TSC 同步相关,一般不使用,推荐使用 VoodooTSCSync 等驱动代替

至此,config.plist 配置结束

BIOS 设置
开启-Enabled
关闭-Disabled
XHCI Hand Off:开启
Above 4G Recoding:开启
CSM:关闭
Secure Boot:清除默认密钥
启动方式:Windows 8/10 UEFI
VT-D:关闭
Fast Boot:关闭
DVMT:128MB-256 MB(如核显设为加速用,可以设为最小值)
CFG Lock:关闭
ACPI Alarm:Legacy RTC
(以上为演示机 BIOS 设置,其他主板可能有相关调整)

写入映像

如果是从我的帖子里下载的 DMG 安装映像,使用 Etcher(已不推荐 TransMac)写入到 U 盘里,这里不作赘述
这里讲解下另一种写入方式
需要工具:
我们可在这里选择我们想要下载的版本,如 10.15.6,也可以选择 C(Change Catalog)切换开发者版(Big Sur)

下载完成后,我们可以执行 MakeInstall.bat,选择 U 盘并写入(Windows),在 macOS 下我们可以直接使用BuildmacOSInstallApp.command 生成对应版本的安装程序

替换引导文件

在 macOS 下我们可直接使用 OCC 挂载 EFI 分区
在 Windows 下,我们可以使用 DiskGenius
找到我们 U 盘的 EFI 分区,并强制删除 EFI 文件夹,将修改好的 EFI 拖进去并确认(推荐使用 DiskGenius 原版,有些 DiskGenius 和谐版可能阉割了拖拽功能)
替换完成之后,我们就可以进入 OpenCore 尝试引导系统

引导 macOS
重启电脑,我们按下对应主板的引导菜单键(华硕为 F8)选择我们写好的U盘

我们选择 3 回车,等待跑码完成进入安装
进入安装界面后,我们选择磁盘工具
选择我们要格式化安装 macOS 的分区,并选择抹掉(也可直接选择整块硬盘格式化)
格式:APFS(机械硬盘推荐HFS+)
分区名:自己取
分区表:GUID
完成后,我们退出磁盘工具,进入安装 macOS
一路往下,等待安装
进度条走一会后,系统会重启,这时候引导界面会多出来一个启动项,我们选择那个回车即可
多次重启后,引导界面会出现我们在磁盘工具内格式化分区填写的名称的启动项,我们选择它,回车,等待进入系统
进入系统后,自行过开机向导(网络选择不连接网络,待进入系统连接)

安装后

完善驱动
我们需要驱动最基本的三卡(显卡、网卡、声卡),所以我们需要了解我们的设备型号

显卡(核心)
查看你的 CPU 对应的是什么核显
比如 i5-8500 UHD630
打开 config.plist,进入 DeviceProperties 栏,创建项 PciRoot(0x0)/Pci(0x2,0x0),在右处右键,选择预设值,如图

主界面是这样的
选择我们对应的版本,以及 CPU 架构,选择合适的显卡 ID(百度搜索 Intel 核显缓冲帧即有相应结果)并选择添加

如果遇到缓冲帧崩溃(PANIC)将 AAPL,ig-platform-id 内写入 11223344
进入系统,使用 Hackintool 修补显卡

选择生成补丁,并在左上角文件内选择导出 config.plist(笔记本内屏分辨率超过 1080P 可能需要勾选 DPCD 修补相关)
生成后,桌面上会出现一个 config.plist,我们打开它,进入 DeviceProperties
DeviceProperties
选中 PciRoot(0x0)/Pci(0x2,0x0) 右键,复制,并粘贴到你自己的 config.plist 相应位置即可

显卡(AMD,不包括ATI)
Polaris 架构(RX4xx-5xx)使用 WhateverGreen 驱动即可
专业卡(如 Radeon VII)& Navi(RX55xx-RX57xx)使用 WhateverGreen 驱动即可,并在 boot-args 中加入 agdpmod=pikera(解决 Navi 系显示黑屏,替换 board-id)

显卡(NVIDIA)
GTX6xx-7xx 部分显卡免驱(但可能会花屏)
不免驱但可驱动的卡使用 10.13.x(RTX 全系无法驱动,9xx-10xx 可驱动)
可在 Web Driver 内下载到系统对应版本的驱动(一定要对应系统版本)安装驱动后,在 NVRAM 下 7C436110-AB2A-4BBB-A880-FE41995C9F82 处加入 nvda_drv 项,并填写字符值为 1
file:///C:/Users/11960/AppData/Local/Temp/msohtmlclip1/01/clip_image048.jpg
如图

声卡(Realtek ALC)
瑞昱(Realtek)ALC 系大部分可通过 AppleALC 注入对应 Layout ID 输出声音,笔记本可能需要定制 codec 数据
使用 AppleALC,并在 Layout ID 处找到你主板声卡对应的 Layout ID 并在 boot-args 中加入 alcid=x(如对应的 Layout ID 为 5 则 alcid=5,如果出现多个 ID,一个一个尝试,如果 ID 为 5-10,尝试 5、6、7、8、9、10)

有线网卡(Realtek)
寻找对应瑞昱(Realtek)有线网卡的驱动,如 RTL8111RTL8125RTL8100,如使用中存在网络无法连接问题,则可能需要更改如下选项

配置改为手动,速度改为路由器速率(如果路由器速率为 1000M,就选 1000M;如果路由器速率为 100M,就选 100M),全双工,保存应用即可联网

有线网卡(Intel)
Intel 有线网卡尝试使用 IntelMausi,推荐使用目前 Acidanthera 接管的 IntelMausi,如果无法驱动则不在支持范围内

I225-V 驱动方案:
Intel I225-V 网卡理论在 macOS Catalina 以上免驱,需仿冒为I225-LM以使用系统自带的原生驱动进行驱动

打开Hackintool,选择PCIe选项

选择 Intel I225-V 网卡,右键选择 Copy Device Path
在 config.plist下DeviceProperties 内添加刚刚复制的 Device Path,在对应路径下添加 device-id 项,值为 F2150000,类型为 DATA

完成后保存重启即可

有线网卡(Atheros)
Atheros 有线网卡尝试使用 AtherosE2200Ethernet

无线网卡(Broadcom)
博通(Broadcom)系苹果拆机网卡无需另外驱动,插上可直接使用
博通(Broadcom)系非苹果拆机网卡(如 DW1820A)则需要 AirportBrcmFixup 驱动(将 4360_Injector 的 MaxKernel 值写为 19.9.9,大陆用户推荐加入 brcmfx-country=#a 到 boot-args 以解锁全部频段)

无线网卡(Intel AC 系 AX 系)
1.尝试使用 itlwm 进行驱动(由国人开发),并使用 HeliPort 连接网络
2.尝试使用 AirportItlwm 进行驱动(由国人开发),并使用网络中的 WIFI 设置连接网络

无线网卡(USB 系)
如果是从网上购买的 USB 网卡,尝试安装 Wireless USBAdapter,驱动后连接网络即可(可能需要 Windows 下安装驱动后热启动到 macOS 才可使用)

蓝牙(Broadcom)
博通(Broadcom)系苹果拆机网卡的蓝牙无需另外驱动,插上可直接使用
博通(Broadcom)系非苹果拆机网卡(如DW1820A、DW1560)的蓝牙大部分无需另外驱动,如果识别不到蓝牙,则需要 BrcmPatchRAM 驱动

蓝牙(Intel)
英特尔(Intel)AC 系 AX 系的蓝牙默认系统可直接识别,但不能用,可以尝试使用 IntelBluetoothFirmware 驱动

USB(推荐定制 USB)
大部分 USB 可直接使用 USBInjectAll 识别所有端口(RehabMan 永远滴神!)
400 系(B460、Z490)需要使用特制的 USBInjectAll 识别所有端口
记得开启 XhciPortLimit!!!!!

PS2(键盘、鼠标、触摸板等)
使用 VoodooPS2 即可

I2C(触摸板、触摸屏等)
使用 VoodooI2C 即可

SD 读卡器(Realtek)
少部分可通过使用 Sinetek-rtsx 驱动

附加内容

定制 USB(记得先开启 XhciPortLimit)
前提条件:使用 USBInjectAll 识别全部端口
打开 Hackintool 的 USB 栏,点击清空全部(扫把),再点击刷新
然后分别拿一个 USB3.0 和 2.0 设备插你机箱上的全部 USB 插口,如果插上一个 USB 插口,USB 栏有一个接口绿了,记录即可,如果网卡占用了一个 USB 内置端口(蓝牙)则记为 USB2.0,USB2.0 使用 2.0 设备插,USB3.0 则分别使用一个 2.0 和 3.0 设备插,记录 USB3.0 插口的 HS 和 SS 端口(一般对应)TypeC 如果使用 TypeC 线正反插都只亮一个 HS/SS 端口,则记为 TypeC-SW,反之则记为 Type-C,记录完成后如图所示
记录
点击清空全部(扫把),再点击刷新,将记录的信息分别对应填写对应的 USB 端口里,如图
完成后导出即可,使用 MaciASL 打开生成的 SSDT-UIAC.dsl,查看每个端口的 UsbConnector 是否和你记录的对应,Zero 为 USB2.0;3 为 USB3.0;9 为 TypeC-SW;10 为 TypeC,确认对应后编译为 aml 并放入 EFI/OC/ACPI 中,并在 config.plist 中设置加载

注入 EDID/开启 HIDPI
为了省事,我们直接使用修改好的 one-key-hidpi(适配 Big Sur),下载后执行 hidpi.command,选择开启 HIDPI(注入 EDID),剩下几步自行选择需要的,开启后效果为
IGPU 加载 Apple Guc Firmware
WhateverGreen 默认不加载 Apple Guc,如想使用 Apple Guc,在 boot-args 中加入 igfxfw=2

IGPU 加载四项
WhateverGreen 默认不加载四项,如想加载 AppleGraphic 四项,在 boot-args 中加入 agdpmod=ignore

注入白果 SMBIOS 三码
如果手里有白果的 SMBIOS 信息,我们可注入以使用 iMessage 和 Facetime(iServices)
将序列号和 UUID 和 ROM 和 MLB 填写,机型无需更改
屏蔽显示器音频
在 config.plist 的 DeviceProperties 处添加自己显卡的 PCI 路径,并添加 no-hda-gfx,如下图所示
CPU 变频
基本要求:CPU 进行高负载运算时,负载/频率快速上升,CPU 关闭高负载运算程序后,负载/频率快速下降
如果自己的 CPU 是白苹果(苹果原装机)使用过的,直接使用对应的机型(如 8500、8600k--iMac 19,1)
如果自己的 CPU 不在白苹果(苹果原装机)范围内,则使用 CPUFriend 进行频率/调度调节(使用 CPUFriendFriend 辅助工具更加方便)
英特尔 2/3 代则不支持原生电源管理,需另外方法变频,这里不讲解

AMD 传感器
由于 SMCProcessor 仅支持英特尔 CPU,并不适用于 AMD CPU,所以我们需要使用 SMCAMDProcessor 驱动传感器,AMDRyzenPowerManagement 加载时将 DummyPowerManagement(config.plist 内 Quick)关闭,仅支持 VirtualSMC,不支持 FakeSMC

核显唤醒黑屏
当遇到这种问题时,我们可以使用 WhateverGreen 的 IGPU 强制在线参数,将 igfxonln=1 添加至 boot-args 中,保存应用即可

网卡仿冒(确保网卡被识别)
在 Big Sur 11.0 中,由于 4360 的驱动被删除,我们需要仿冒网卡以使用 NIC 驱动
进入 Hackintool,PCI 设备一栏找到我们的网卡对应的路径(PciRoot.....)如图
file:///C:/Users/11960/AppData/Local/Temp/msohtmlclip1/01/clip_image062.jpg
使用 OCC 打开 config.plist,在 DeviceProperties 加入网卡对应的 PCI 路径(如 PciRoot(0x0)/Pci(0x1D,0x2))在右侧添加 compatible 项,并填写 pci14e4,43a3,保存应用

睡眠修复(实验性)
内容仅针对:睡眠秒醒、睡眠唤醒重启、无法睡眠进行修补,如遇见睡眠唤醒黑屏,尝试添加(核显唤醒黑屏)内容,如还是同样症状,本内容可能不适用于你

在睡眠唤醒后,在终端中输入 log show --last boot | grep -Ei "Wake Reason" 查看睡眠日志(如果你安装了无线网卡,可能会出现 airportd:systemWokenByWiFi: System Wake Reason not found 字样,忽略即可)
如日志中出现 XDCI CNVW 字样,尝试关闭小怠以及网络唤醒,再尝试睡眠
如日志中出现 EHC1 EHC2 XHC XHCI XHC1 字样,定制 USB,再尝试睡眠
如日志中出现 GLAN IGBE 字样,内建网卡,并关闭节能中此项,再尝试睡眠
如果还是无法解决,直接使用 OC-little 的 060D 补丁
在自己的 DSDT 中,搜索 _PRW,查找 Return (GPRW (0x6D, 0x04))、Return (GPRW (0x0D, 0x04)) 等相关关键词(6D 04 6D 03 0D 04 0D 03)结果如图
将 SSDT-GPRW.dsl 编译为 SSDT-GPRW.aml(使用 MaciASL 或 iasl-binary 都可)并放在 EFI/OC/ACPI 下,在 OC 中加载,使用 OCC 打开 config.plist,在 ACPI/补丁下右键
如果 _PRW 下关键词为 6D 04 或 6D 03,则使用6D更名补丁,反之则使用 0D 更名补丁

屏蔽独显(EGPU)
在笔记本上,我们经常因为独立显卡无法驱动的原因而导致无法进入系统,我们可以使用 WhateverGreen 内置的 -wegnoegpu 参数达到禁止独显的效果,使用 OCC 打开 config.plist,在 boot-args 中添加 -wegnoegpu 即可(这种方法可能会导致 S3 睡眠崩溃)

重置 NVRAM
在 OpenCore 引导界面选择 Reset NVRAM 后回车(如没有可能需要按下空格或 Tab,恢复辅助显示,如果没有引导界面,可能需要打开 ShowPicker 选项)

注入 EDID(修正 RGB)
有些显示器会出现色彩偏差或不定时黑屏等问题,这里我们通过修补 EDID 来解决
打开 Hackintool 的显示器栏
我们钩上图中的两个选项,并更改我们需要的分辨率(如果没有,可手动添加分辨率),然后点击添加,再点击导出,将导出的文件放在 Library/Displays/Contents/Resources/Overrides 下,如图
保存应用

RTC 唤醒问题
当我们在唤醒日志中看到 RTC Wake Alarm 相关内容,请尝试启动 Sample.plist 里 Kernel to Patch 自带的 Disable RTC wake 补丁,如图
file:///C:/Users/11960/AppData/Local/Temp/msohtmlclip1/01/clip_image074.gif
启用并检查问题是否解决

开启第三方 TRIM
我们可以打开 config.plist 里 Kernel 下的 ThirdPatryDrive 以开启,但这不是最佳的,推荐使用如下方法开启 TRIM
在 config.plist 里 NVRAM 的 7C436110-AB2A-4BBB-A880-FE41995C9F82 中加入 EnableTRIM 参数,如图
EnableTRIM 参数,如图

笔记本核显外接输出(确保笔记本 HDMI 或 Type-C 接口从核显接出)
当笔记本核显 HDMI 或 Type-C 输出不正常(如黑屏)时,尝试在 boot-args 中添加 agdpmod=vit9696 以禁止检测 board-id,同时 SMBIOS 需与笔记本对应

macOS Big Sur 内屏 4K 60Hz 输出
当在 macOS Big Sur 下内屏 4K 60Hz 输出黑屏或崩溃时,尝试在 boot-args 中添加 -igfxmpc,操作后如果还是存在部分问题,再添加 -cdfon

Source:
https://github.com/acidanthera
https://github.com/Mieze
https://github.com/xzhih
https://github.com/corpnewt
https://github.com/ic005k
https://github.com/OpenIntelWireless
https://github.com/corpnewt
https://github.com/daliansky
https://github.com/chris1111
https://github.com/AMD-OSX
https://github.com/cholonam

Help:
https://blog.xjn819.com
https://github.com/IlikemacOS

感谢以上开源项目的付出!(如有遗漏可联系补全)

 
您需要登录后才可以回帖 登录 | 注册

本版积分规则

麦创网 ( 苏ICP备13053101号-1 )

@麦创网 禁止任何未经允许的修改,传播或使用。

Powered by Discuz!

©2012 @ iMac.vip. 用户言论不代表本站立场。

返回顶部