请保证在黑苹果已完全能够正常使用、并有足够能力理解相关术语后进行以下操作。
TODOS 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 # OpenCore https://forums.macrumors.com/threads/manually-configured-opencore-on-the-mac-pro.2207814/ https://forums.macrumors.com/threads/refindplus-opencore-by-mybootmgr.2231693/ https://dortania.github.io/OpenCore-Legacy-Patcher/START.html#patcher-warnings # 长期更新教程 # 于2021-06-06阅读 https://dortania.github.io/OpenCore-Install-Guide/ https://dortania.github.io/OpenCore-Post-Install/ # 仍然保留的阅读内容 # config.plist,各平台都还没看 https://dortania.github.io/OpenCore-Install-Guide/config.plist/penryn.html#starting-point https://dortania.github.io/OpenCore-Multiboot/oc/linux.html#method-a-chainloading-a-efi-bootloader-grub2-systemd-boot # 看到这里 https://github.com/dortania/OpenCore-Install-Guide/blob/master/clover-conversion/Clover-config.md#graphics # OpenCore-Post-Install看到这里 https://dortania.github.io/OpenCore-Post-Install/usb/system-preparation.html#checking-what-renames-you-need
资料 论坛和博客 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 https://dortania.github.io/ https://aserebln.blogspot.com/ http://netkas.org/ https://howtomacospc.wordpress.com/ https://hackintosh.com/ https://blog.skk.moe/ http://dosdude1.com/ https://blog.daliansky.net/ https://osxlatitude.com/forums/ https://www.tonymacx86.com/forums/ https://www.macos86.it/ https://www.hackintosh-forum.de/ https://www.reddit.com/r/hackintosh/ https://www.insanelymac.com/forum/ https://blog.neroxps.cn/ https://www.hackintosh-montreal.com/ https://www.applelife.ru/ https://www.misonsky.cn/ https://www.bugprogrammer.me/ https://fangf.cc/ https://blog.xjn819.com/ http://bbs.pcbeta.com/ http://mac.pcbeta.com/ https://www.itpwd.com/ https://www.penghubingzhou.cn/#blog https://blog.zuiyu1818.cn/ https://change-y.github.io/ https://www.macrumors.com/ https://www.kancloud.cn/chandler/mac_os/480611 https://www.firewolf.science/ https://www.osx86.net/ http://yqp7js.coding-pages.com/ https://xstar-dev.github.io/ https://heipg.cn/ https://hamac.pl/ https://www.reddit.com/r/hackintosh/ https://pikeralpha.wordpress.com/ https://com-chris1111.github.io/ https://i.pcbeta.com/home.php?mod=space&uid=233039&do=thread&view=me&type=reply&order=dateline&from=space
硬件选择 1 2 3 4 5 6 7 https://wiki.osx86project.org/wiki/index.php/Main_Page https://blog.daliansky.net/Mojave-Hardware-Support-List.html https://www.tonymacx86.com/threads/guide-how-to-get-bluetooth-and-wifi-working.275962/ https://4pda.to/forum/index.php?showtopic=72333&st=7780 https://www.insanelymac.com/forum/topic/286092-guide-1st-generation-intel-hd-graphics-qeci/?hl=%20vertek http://myoldmac.net/sitemap-e.htm https://github.com/toleda/wireless_half-mini
显卡 1 2 3 4 5 6 7 https://applelife.ru/threads/ati-radeon-hd-4xxx-hd-5xxx-amd-radeon-hd-6xxx-hd-7xxx-r5-r7-r9-rx-vega.28890/ https://applelife.ru/threads/nvidia-gt-x-750-950-980-maxwell-1030-1080-pascal.1546195/ https://applelife.ru/threads/nvidia-gt-x-640-690-740-760-780-kepler.37131/ https://applelife.ru/threads/nvidia-gt-x-420-480-510-590-610-630-fermi.27607/ https://www.tonymacx86.com/threads/guide-general-framebuffer-patching-guide-hdmi-black-screen-problem.269149/ https://www.tonymacx86.com/threads/ati-mobility-radeon-34000-hd.21620/ https://www.insanelymac.com/forum/topic/139476-ati-mobility-radeon-hd-3400/
ACPI 1 2 3 4 5 https://uefi.org/specifications https://uefi.org/sites/default/files/resources/ACPI_6_3_May16.pdf https://uefi.org/sites/default/files/resources/ACPI_5.pdf https://uefi.org/sites/default/files/resources/ACPI_4.pdf https://uefi.org/specs/ACPI/6.4/19_ASL_Reference/ACPI_Source_Language_Reference.html
引导器 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 # 还没看的 // Clover显卡相关 https://www.insanelymac.com/forum/topic/282787-clover-v2-instructions/?do=findComment&comment=1853010 https://www.insanelymac.com/forum/topic/282787-clover-v2-instructions/?do=findComment&comment=1853099 // CPU https://www.insanelymac.com/forum/topic/282787-clover-v2-instructions/?do=findComment&comment=1853597 https://www.insanelymac.com/forum/topic/282787-clover-v2-instructions/?tab=comments#comment-1853640 // 睡眠 https://www.insanelymac.com/forum/topic/282787-clover-v2-instructions/?tab=comments#comment-1853603 // RAID https://www.insanelymac.com/forum/topic/282787-clover-v2-instructions/?do=findComment&comment=1868751 // 选项 https://www.insanelymac.com/forum/topic/282787-clover-v2-instructions/page/2/?tab=comments#comment-1878476 // kexts https://www.insanelymac.com/forum/topic/282787-clover-v2-instructions/?do=findComment&comment=1909550 // AAPL https://www.insanelymac.com/forum/topic/282787-clover-v2-instructions/?do=findComment&comment=2020878 // Legacy https://www.insanelymac.com/forum/topic/298027-guide-aio-guides-for-hackintosh/page/14/?tab=comments#comment-2097514
问题库 1 2 3 4 https://www.tonymacx86.com/threads/readme-common-problems-and-workarounds-on-10-14-mojave.255823/ https://wiki.osx86project.org/wiki/index.php/German_FAQ https://www.tonymacx86.com/threads/faq-read-first-laptop-frequent-questions.164990/ https://www.insanelymac.com/forum/topic/280062-waiting-for-root-device-when-kernel-cache-used-only-with-some-disks-fix/
亮度修复 1 2 3 https://www.tonymacx86.com/threads/native-brightness-working-without-blinkscreen-using-patched-applebacklight-kext.121031/ https://www.tonymacx86.com/threads/fixing-brightness-with-custom-edid.219413/ https://www.tonymacx86.com/threads/guide-patching-dsdt-ssdt-for-laptop-backlight-control.152659/
电源管理 1 2 3 4 https://www.tonymacx86.com/threads/macos-native-cpu-igpu-power-management.222982/ https://www.tonymacx86.com/threads/mavericks-native-cpu-igpu-power-management.128926/ https://www.tonymacx86.com/threads/ml-native-ivy-bridge-cpu-and-gpu-power-management.86807/ http://bbs.pcbeta.com/viewthread.php?tid=632561&fromuid=512654
旧版系统 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 https://wiki.osx86project.org/wiki/index.php/Install_On_A_Partition_Simple_And_Accurate https://emaculation.com/doku.php/sheepshaver_mac_os_x_setup https://emaculation.com/doku.php/sheepshaver_setup https://www.emaculation.com/doku.php/ppc-osx-on-qemu-for-osx https://www.emaculation.com/doku.php/ppc-osx-on-qemu-for-windows https://www.emaculation.com/forum/viewtopic.php?t=5275 https://emaculation.com/doku.php/basilisk_ii_setup https://emaculation.com/doku.php/basiliskii_osx_setup https://emaculation.com/doku.php/mini_vmac_setup https://www.gryphel.com/c/minivmac/ https://www.emaculation.com/doku.php/basilisk_ii https://www.emaculation.com/doku.php/sheepshaver http://macintoshgarden.org/installing-software-your-emulator Mac OSX Snow Leopard 10.6.6 Intel AMD Vmware Image https://thepiratebay.org/description.php?id=6120172 SnowLeopardAMD https://drive.google.com/file/d/18D9r0f40IGxo8f2llV1Nkl3DQux0sw9C/view 直接烧录到U盘即可 对于Intel,安装条走完即可 对于AMD,安装条走完后再进去一次安装程序,打开终端并输入以下命令 cd /Volumes/SnowLeopardAMD/PostInstall sh post.sh 参考: https://web.archive.org/web/20201129192905/https://amd-osx.com/forum/viewtopic.php?t=4482#p39746
其它 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 https://wiki.osx86project.org/wiki/index.php/Hardware_.kext_Patching_List https://wiki.osx86project.org/wiki/index.php/Leopard_on_MBR_DualBoot https://www.insanelymac.com/forum/topic/286092-guide-1st-generation-intel-hd-graphics-qeci/ https://www.olarila.com/topic/5693-guide-ssdt-with-pikes-pm-script-and-use-with-cpufriend/ https://applelife.ru/threads/fakesmc-virtualsmc-lan-sound-graphics-gde-vzjat-keksty.2942933/ https://osy.gitbook.io/hac-mini-guide/details/hades-canyon-nuc http://www.contrib.andrew.cmu.edu/~somlo/OSXKVM/OLD/index-20131109.html#sec_1 https://github.com/dortania/clover-laptop-guide/blob/master/extras/dual-booting-with-bluetooth-devices.md https://www.tonymacx86.com/threads/skylake-hwp-enable.214915/ https://blog.neroxps.cn/2017/03/07/BCM94352-5GHz-CN/ https://www.tonymacx86.com/threads/guide-usb-power-property-injection-for-sierra-and-later.222266/ // HD2000显存 https://www.insanelymac.com/forum/topic/298027-guide-aio-guides-for-hackintosh/page/17/?tab=comments#comment-2102367 // GPT Fdisk https://www.insanelymac.com/forum/topic/298027-guide-aio-guides-for-hackintosh/page/15/?tab=comments#comment-2098111 https://forums.macrumors.com/threads/mp5-1-what-you-have-to-do-to-upgrade-to-mojave-bootrom-upgrade-instructions-thread.2142418/
引导器 在macOS中,可通过在终端上输入以下命令获取引导器路径。
1 nvram 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:boot-path
可通过在终端上输入以下命令获取OEM信息。
1 2 3 nvram 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:oem-product # SMBIOS Type1 ProductName nvram 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:oem-vendor # SMBIOS Type2 Manufacturer nvram 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:oem-board # SMBIOS Type2 ProductName
基本概念 更名补丁 一般不建议使用过多的更名补丁,尽可能只添加和Method名称有关的重命名,而且要通过SSDT确保在非Mac下要调用并返回原始函数,即原始DSDT行为不会被改变。所需要的SSDT一般在OC-little包中均可找到。
更名补丁
作用
替代方法
change EHC1/EHC2 to EH01/EH02
避免与内置USB注入器冲突
六代(Skylake)及以上的机器已经没有EHC控制器了,建议用SSDT-EHCx_OFF关闭EHC控制器、并把重命名删除,六代以下机器保留该重命名
change XHC1/XHCI to XHC
避免与内置USB注入器冲突
进行USB定制
change SAT0/SAT1 to SATA
实现潜在的SATA兼容性
实质上完全没用
change _OSI to XOSI
配合SSDT-XOSI.dsl启用系统操作补丁
除非某些硬件设备只能在Windows下工作(I2C触摸板只能在Windows下使用,或ThinkPad对 FreeBSD的特殊优化),否则完全没有必要使用,而且大部分情况下直接定制SSDT也可以解除某些硬件的操作系统限制
change OSID to XSID
配合SSDT-XOSI.dsl启用系统操作补丁
除非某些硬件设备只能在Windows下工作(I2C触摸板只能在Windows下使用,或ThinkPad对 FreeBSD的特殊优化),否则完全没有必要使用,而且大部分情况下直接定制SSDT也可以解除某些硬件的操作系统限制
change APSS to APXX
可能导致AppleIntelCPUPowerManagement出现紧急情况,如果ACPI中不存在APSS,则无需启用
change _DSM to XDSM
对于VoodooI2C可能是必需的
遍历SSDT补丁,若没有依赖_DSM
,则应该删除(这个重命名涉及范围太大、太过于危险)
change LPC to LPCB
为macOS修补低引脚数总线
change _REG to XREG in EC0
对于电池状态可能是必需的
ALS: change Method(RALS,0,S) XALS
对于环境光传感器可能是必需的
Fix 300-series RTC Bug(Find A00A935354415301, Replace A00A910AFF0BFFFF)
修复300系主板的RTC问题
change HECI/HEC1/MEI to IMEI
WhateverGreen能够处理这个问题
change IDER to MEID
WhateverGreen能够处理这个问题
change GFX0 to IGPU
WhateverGreen能够处理这个问题
change PEG0/PEGP to GFX0
WhateverGreen能够处理这个问题
change SL01 to PEGP
WhateverGreen能够处理这个问题
change B0D3 to HDAU
WhateverGreen能够处理这个问题
change EC0/H_EC/ECDV/PGEC to EC
对于台式机可使用仿冒EC补丁(随意重命名EC控制器可能会对硬件造成伤害)
change HDAS/CAVS/AZAL to HDEF
AppleALC能够处理这个问题
change STAS to Noop
同时启用两个时钟设备(其中Mac下仅有RTC起作用),无法在BIOS中禁用AWAC时使用(Mac不支持新的时钟设备AWAC,因此需要使用传统的 RTC,在DSDT中有一个STAS变量使AWAC和RTC互锁,避免两个时钟设备同时启用,注意若该重命名在Windows下生效,则Windows下将会暴露两个时间设备,这对系统有害且违反ACPI规范)
用SSDT-AWAC替代
change PXSX to ANS1/ANS2
修复NVMe SSD的电源管理
用NVMeFix.kext
change PXSX to ARPT
修复Wifi
用AirportBrcmFixup
change LPC0 to LPCB
添加SMBUS支持
SBUS的SSDT注入补丁和MCHC设备补丁SSDT-SBUS-MCHC
change PC00 to PCIO
实质上完全没用
change FPU to MATH
实质上完全没用
change TMR to TIMR
实质上完全没用
change GBE1 to ETH0
实质上完全没用
change PIC to IPIC
实质上完全没用
驱动 内存管理驱动 固件会将内存分成小块,分配给计算机中的各种设备以及操作系统内核。Windows可以很好的适应这种机制,并会主动将NT内核映射到内存中。而Mac不仅需要更大的内存区块,非Mac设备的内置硬件设备数量也比Mac设备要更多,所以黑苹果需要在EFI中添加专门的驱动为Mac内核预留内存。若Mac无法获取正确的内存空间,将会造成内核无法加载。
一般而言,Mac将采用KASLR技术进行内存分配,即内核地址空间布局随机化,以防止攻击者获取重要对象在内存中的位置。但在内存太小或设备太多时,可能会因为内核所得到的内存空间大小而导致启动失败。此时需要让内核在内存固定区域。需要指出的是,KASLR找到需要操作的内存区域大约需要31ms,手动设置内存区域可节约该时间。
错误消息一般如下。若启动Mac时出现,则需要关闭CFG锁,更新引导和Whatevergreen,并修复内存分配。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 # 错误一 ERROR!!! Load prelinked kernel with status 0x8000000000000009 # 错误二 Couldn't allocate runtime area # 错误三 +++++++++++++++++++++++++++++++ # 错误四 panic(cpu 6 caller 0xffffff801fc057ba): a freed zone element has been modified in zone kalloc.4096: expected 0x3f00116dbe8a46f6 but found 0x3f00116d00000000 # 错误五 Only 244/256 slide values are usable!
一般而言,采用固定内存分配时,内核被分配到0x100000+X*0x200000
,其中X通过启动参数slide=X
传递,称为slide值。slide=0代表隐式关闭,在安全模式下将无法启动系统。slide=0x1-0x7F代表内核被分配到0x100000+0x200000至0x100000+0xFE00000。对于Sandy Bridge或Ivy Bridge架构,slide=0x80-0xFF代表内核被分配到0x100000+0x20200000至0x100000+0x30000000,对于其它架构则为0x100000+0x10000000至0x100000+0x1FE00000。
各内存管理驱动如下,按照发行顺序从早到晚排序。
名称
对于Clover
对于OpenCore
备注
OsxLowMemFixDrv
精简版的OsxAptioFixDrv,用于修复UEFI固件上的低位内存问题,两个不能同时使用(针对Insyde H2O UEFI的笔记本,一般不使用)
不兼容(FwRuntimeServices和OpenCore)
自Clover r608版本后不再维护
OsxAptioFixDrv/OsxAptioFix2Drv
修复AMIAptioEFI内存映射(一般只用OsxAptioFixDrv)
不兼容(FwRuntimeServices和OpenCore)
Clover r4368版本之前内置的内存分配驱动,不支持 NVRAM,其中OsxAptioFix2Drv是OsxAptioFixDrv 的简化的版本,去掉了内置内存分配算法,因此不能用在旧版本的Mac或者老硬件,但可以提供休眠支持
OsxAptioFix3Drv
修复AMIAptioEFI内存映射
不兼容(FwRuntimeServices和OpenCore)
Clover r4369版本之后至今内置的内存分配驱动,提供了对NVRAM的支持,现在仍由Clover团队维护
OSXAptioFix2Drv-Free2000
内存驱动,用于修复UEFI固件上的内存问题,只适用于一些特定的硬件、特定的设备、特定的内存大小
不兼容(FwRuntimeServices和OpenCore)
作者已经声明会损坏硬件https://www.reddit.com/r/hackintosh/comments/cfjyla/i_unleashed_a_plague_upon_you_guys_and_i_am_sorry/
AptioMemoryFix
NVRAM和内存驱动,用于修复UEFI固件上的内存问题(6代及以上电脑推荐使用)
不兼容(已集成为FwRuntimeServices)
Acidanthera团队开发,相比OsxAptioFix3Drv更好,AptioMemoryFix、AptioInputFix、CleanNvram合并发布为AptioFixPkg
OpenRuntime
通过OcQuirks使用,参见本章Clover部分
OpenCore最新的内存管理系统,原名FwRuntimeServices,用于实现OC_FIRMWARE_RUNTIME协议,允许隔离操作系统对所选变量的访问(如RequestBootVarRouting/ProtectSecureBoot),增强了OpenCore、Lilu以及Lilu插件的安全性(如VirtualSMC实现了AuthRestart支持),保护所有变量避免被不信任的操作系统写入(如DisableVariableWrite),UEFI Runtime Services内存保护管理以避开只读映射的问题(如EnableWriteUnprotector)。使用该驱动以替代以上所有驱动
对于OpenCore,使用最新的OpenRuntime即可。对于Clover,引导较新系统时应当使用OcQuirks以使用OpenRuntime。
在Clover上引导旧版系统时,可使用旧版驱动,其中应当按照AptioMemoryFix->OsxAptioFix3Drv->OsxAptioFix2Drv->OsxAptioFixDrv的顺序修复,每次只用一个,各驱动不能共用。
注意应当尽量避免使用slide启动参数。前三个驱动尝试不使用启动参数slide=#
,若不行则使用该参数,而最后一个驱动必须使用启动参数slide=0
。
其中#的值需要通过计算。记录启动时出现的错误信息,例子如下。取pages前面的数字,此处为0x116F6。
1 Error allocating 0x0x116F6 pages at 0x00000000093eb000 alloc type 2
制作UEFI Shell并进入,输入以下命令。
【进阶】对于OpenCore
对于OpenCore,UEFI Shell可为OpenShell。注意需要在配置文件的Booter中修改以下内容。
1 2 3 4 5 6 AvoidRuntimeDefrag: YES DevirtualiseMmio: YES EnableSafeModeSlide: YES ProtectUefiServices: NO ProvideCustomSlide: YES RebuildAppleMemoryMap: YES
1 2 3 4 memmap -b # 也可通过以下命令将内容写入文件 memmap > memmap.txt
在第十行左右找到符合要求的数据,其中Type为Available,Pages的值不小于刚才记录的值即0x116F6,Start的值大于10000000。使用Start/200000+1
计算出slide值,忽略小数点后数字,计算结果为十六进制,转换为十进制即可。注意,BIOS更新后可能需要重新计算该值。
【进阶】其它算法
取Start一列的最大值,设为X。计算(X-0x100000)/0x200000,得到slide值,设为Y。
若0x100000+(Y0x200000)=X,则slide值即为X。若0x100000+(Y 0x200000)<X,则slide值为X+1。
若slide值大于256,则取Start一列的第二大值,重复以上操作,直至slide值小于256。若slide值类似-0.379150390625,则取为0。
注意,有时内存速度过快会出现系统无法进入的问题,此时可以通过BIOS调低内存频率。如i7 8700k上可以正常运行32GB 3000MHz,而出于稳定性方面的考虑,i7 6700k可能必须降至2666MHz。
【进阶】OpenCore的DevirtualiseMmio
DevirtualiseMmio采用MMIO区域并删除Runtime属性,扩大slide的范围,与ProvideCustomSlide搭配使用可保证slide的安全属性。
对于Threadripper TRX40 19H等问题严重的系统,需要指定不需要进行操作的区域,这些区域将在MmioWhitelist中被定义。以打开了DevirtualiseMmio的OpenCore调试版本引导系统,可在日志中看到如下类似内容。
1 2 3 4 5 6 7 8 21:495 00:009 OCABC: MMIO devirt start 21:499 00:003 OCABC: MMIO devirt 0x60000000 (0x10000 pages, 0x8000000000000001) skip 0 21:503 00:003 OCABC: MMIO devirt 0xFE000000 (0x11 pages, 0x8000000000000001) skip 0 21:506 00:003 OCABC: MMIO devirt 0xFEC00000 (0x1 pages, 0x8000000000000001) skip 0 21:510 00:003 OCABC: MMIO devirt 0xFED00000 (0x1 pages, 0x8000000000000001) skip 0 21:513 00:003 OCABC: MMIO devirt 0xFEE00000 (0x1 pages, 0x800000000000100D) skip 0 21:516 00:003 OCABC: MMIO devirt 0xFF000000 (0x1000 pages, 0x800000000000100D) skip 0 21:520 00:003 OCABC: MMIO devirt end, saved 278608 KB
将十六进制转换为十进制后,在配置文件中的Booter-MmioWhitelist下分别添加转换好的地址即可。
其它驱动 各驱动的作用和适用范围如下。
名称
对于Clover
对于OpenCore
LegacyRegion2Dxe
某些旧的UEFI BIOS需要
NTFS
NTFS文件系统驱动程序(一般不使用,此模块与一些主板的UEFI不兼容)
同Clover
AppleEfiSignTool
验证AppleEFI二进制文件的开源工具(一般不使用)
AppleImageLoader
保护AppleEfiFat二进制驱动程序,将AppleEFI二进制文件安全加载到内存中(一般不使用)
AppleEvent
不兼容(已集成)
AppleImageCodec
为Clover启动FileVault 2解码PNG和BMP
不兼容(已集成)
AppleKeyMapAggregator
不兼容(已集成)
AppleUISupport
实现了FileVault支持,同时包含一些主板的哈希服务修复和unicode排序规则,替换了AppleKeyMapAggregator、AppleEvent、AppleUiTheme、FirmwareVolume、AppleImageCodec(一般不使用)
不兼容(已集成)
SMCHelper
UEFI层面的SMC驱动,VirtualSmc.efi的替代品,与FakeSMC配合(不能与VirtualSMC.kext配合使用)
不兼容
HashServiceFix
修复UEFI BIOS中的哈希支持
不兼容(已集成且提供了这个Quirk)
FirmwareVolume
为启动FileVault 2创建FirmwareVolume光标
不兼容(已集成)
EnhancedFatDxe
无法直接从引导器调用,如果在引导过程中写入EFI分区出现问题,则需要将此驱动用UEFITool刷入固件中(除非EFI分区格式为FAT16且在开机过程中可能会往EFI分区写入文件时考虑使用)
同Clover
EnglishDxe
在UEFI Shell中支持Unicode Collation协议
不兼容(已集成且提供了这个Quirk)
CsmVideoDxe
用于Clover GUI的显卡驱动,允许使用更多分辨率,基于UEFI BIOS中的CSM兼容模块,并将启用所需的CSM(6代以前核显开CSM使用)
不兼容
AudioDxe
启动时播放声音的HDA驱动
在UEFI环境播放音频的驱动
AppleUITheme
为Clover支持FileVault 2启动UI主题的驱动
不兼容(已集成)
AppleKeyFeeder
为Clover支持FileVault 2内PS/2键盘输入的驱动
不兼容(已集成)
AppleKeyAggregator
为Clover支持FileVault 2启动UI的驱动
不兼容(已集成)
APFS/ApfsDriverLoader
从此容器加载已嵌入APFS容器中的apfs.efi驱动程序
不兼容(OpenCore 0.5.8始已集成)
Ps2KeyboardDxe
为三代以前机型准备的PS/2键盘驱动
不提供对AppleKeyMapAggregator的支持,因此需要启用KeySupport这个Quirk
PS2MouseDxe/PS2MouseAbsolute/UsbMouseDxe
使鼠标/触摸板在CloverGUI界面工作(已存在于所有UEFI固件,一般不使用,三代以前机型才考虑使用)
同Clover
Usb*/UHCI/EHCI/XHCI
解决依赖性关系不满足导致的内建驱动工作不正常的情况的一组驱动(一般不使用)
OsxFatBinaryDrv
允许macOS 10.9以下版本加载FAT模块(如boot.efi)
不兼容(FwRuntimeServices和OpenCore)
DataHubDxe
macOS要求强制启动的协议(一般选用,不会引起冲突)
不兼容(已集成且提供了这个Quirk)
PartitionDxe/PartitionDxeLegacy
支持非常规分区图的驱动,用于加载旧版Mac(早于10.9)分区DMG映像文件的驱动(混合GPT/MBR或Apple分区图等,四代以前机型用PartitionDxeLegacy)
兼容性未知
EmuVariableUefi
对某些UEFI启动无法调用NVRAM的机器提供的NVRAM模拟(部分Skylake架构的机器需要,如Phoenix UEFI、DELL Vostro、ThinkPad,仅在必要时使用)
不兼容(替代品为VariableRuntimeDxe)
FSInject
加载第三方kexts
不兼容(已集成更先进的方法)
VBoxExt4
EXT4文件系统驱动,用于启动LinuxEFI系统
同Clover
VBoxExt3
EXT2/3文件系统驱动,用于启动LinuxEFI系统
AptioInputFix/AppleGenericInput
解决了某些固件上的鼠标输入问题(AppleUsbKbDxe的等效驱动),添加了对AppleKeyMapAggregator协议支持的用户输入驱动,为FileVault 2 GUI输入支持提供AMIAPTIO专有鼠标和键盘协议(通常修改的UsbKbDxe更好,一般不使用)
不兼容(已集成)
AppleDxeImageVerificationLib
为EFI二进制文件提供Apple的加密签名算法(一般不使用)
ExFatDxe/ExFatDxeLegacy
除非EFI/某个系统分区是ExFAT格式,否则不需要保留(在四代以前机型上由于缺少RDRAND指令支持,应使用ExFatDxeLegacy)
同Clover
HfsPlus/HfsPlusLegacy/VBoxHfs/OpenHfsPlus
HFS+文件系统驱动程序,留其一即可(一般推荐用HfsPlus,四代以前机型由于缺少RDRAND指令支持应用HfsPlusLegacy,VBoxHfs/OpenHfsPlus性能较差)
同Clover
OpenPartitionDxe
启动10.7至10.9的恢复分区时必须,OpenDuet已内置该驱动
UsbKbDxe
当内置驱动程序不适用于固件时,用于Apple Hotkeys和FileVault支持,已被取代为OpenUsbKbDxe
AppleUsbKbDxe/OpenUsbKbDxe
给使用模拟UEFI的老主板在OpenCore界面正常输入用,添加了对AppleKeyMapAggregator协议支持的USB键盘驱动,是AppleGenericInput的等效驱动(仅在运行DuetPkg的旧系统上使用,勿在Ivy Bridge即三代酷睿及以上的主板使用,否则将造成硬件损害,现代机型应使用OpenCore中KeySupport这一Quirk)
NvmExpressDxe
四代(Haswell)以前机型使用的NVMe硬盘加载驱动,支持SSD连接到NVM Express总线,若安装了NVMe SSD则需要使用
同Clover
XhciDxe
HCI USB控制器支持驱动程序,为二代(Sandy Bridge)以前的主板提供USB3支持(主要是Intel控制器)
同Clover
HiiDatabase
为四代以前的设备提供UEFI界面字体渲染支持,UEFI Shell中文字渲染异常时使用,Ivy Bridge(3代酷睿)或更老代主板上适用
同Clover
VirtualSmc
已被替代为AppleSmcIO这一Quirk
CrScreenshotDxe
增加OpenCore UI内截屏功能,快捷键为左Ctrl+左Alt+F12
OpenCanopy
加载第三方主题,实现图形引导界面
FwRuntimeServices
不兼容
通过支持只读/只写NVRAM变量提高OpenCore和Lilu的安全性,已被OpenRuntime替代
MemoryAllocation
为Z390/X99等主板预留第一组512MB内存,帮助引导工具注入内核以及内核缓存至第一组512MB内存,需要配合FwRuntimeServices和引导标识符slide=1(若要使用hibernation功能请勿使用)
UsbMouseDxe
USB鼠标驱动程序(仅在运行DuetPkg的旧系统上使用)
VBoxExt2
EXT2文件系统驱动,用于启动LinuxEFI系统
同Clover
VBoxIso9600
ISO9600文件系统驱动
同Clover
GrubUDF
加载UDF文件系统
同Clover
GrubNTFS
加载NTFS文件系统
同Clover
GrubISO9660
加载ISO9660文件系统
同Clover
GrubEXFAT
加载NTFS文件系统
同Clover
TbtForcePower
启用ThunderBolt热插拔
VariableRuntimeDxe
EDK II 的NVRAM驱动,OpenCore中用于模拟NVRAM,需要配合FwRuntimeServices(.efi)和DisableVariableWrite(Quirk)
BootChimeDxe
不兼容(已集成)
启动参数 普通参数 很多参数可以通过在内核或驱动程序代码中寻找PE_parse_boot_argn函数找到。
Core Dump指当程序运行的过程中异常终止或崩溃,操作系统将程序当时的内存状态记录下来,保存在文件中。
参数
对于Clover
对于OpenCore
内核与Lilu
-v
啰嗦模式(跑代码模式,用于排错)
-x
安全模式(忽略所有非必要的kext文件和引导设置,特别适用于黑苹果)
-s
单用户模式(命令行模式)
f
旧版安全模式
-D
mach_init在正常模式下启动,启动的服务器不进行核心转储,不推荐使用
-d
mach_init在调试模式下启动,并带有大量日志记录。核心转储用于所有启动的崩溃服务器。在10.4或更高版本上,此参数使启动的程序在初始化期间尽早进行守护进程
-f
启动时强制重建内核扩展(kext)缓存(只有从10.6到10.9的64位内核支持无缓存启动)
将Kernel-Scheme-KernelCache设置为Cacheless
-b
内核在其重新启动标志变量中设置RB_NOBOOTRC,以不执行/etc/rc.boot,不推荐使用
-l
日志中输出内存泄漏相关记录(osfmk/kern/startup.c)
-r
mach_init将其自身注册在其先前运行的副本中,不推荐使用
-legacy
启动到32位内核
-liluoff
跳过Lilu.kext
-no-zp
区域推迟
-no_compat_check
关闭兼容性检查(适用于10.7以上的版本)
MountEFI=yes/diskX
挂载所有/某个EFI分区
config=A
用/Library/Preferences/SystemConfiguration/A.plist代替com.apple.Boot.plist
LogLineCount=0
设置日志文件最大行数(0为无限制)
LogLocation=PATH
日志文件保存路径
LogEveryBoot=yes/no
每次启动保存日志文件
dart=0
关闭64位硬件上的系统PCI地址映射器(DART),修复因开启VT-d导致系统启动错误,同时删除DMAR表,在10.15上需要禁用SIP(DART在拥有2GB以上物理内存的机器上是必需的,但在所有机器上无论内存大小,默认情况下都会启用DART)
不推荐使用,更改为Kernel-Quirks-DisableIoMapper
darkwake=no/0/1/2/3/4/8/10
禁止系统休眠/设定休眠模式为固定数值
kext-dev-mode=1
启用第三方驱动(不要在El Capitan及以上系统使用)
不需要(OpenCore使用了内核注入方法)
rootless=0
rootless模式(不要在El Capitan及以上系统使用)
arch=i386
以32位内核模式启动
arch=x86_64
以64位内核模式启动
-legacy
强制启动到32位用户区
-force64
强制启动到64位用户区(AMD CPU通常需要32位内核与64位用户区)
npci=0x2000
在旧设备上禁用 kIOPCIConfiguratorPFM64,解决独立显卡PCIconfiguration begin卡住不动的问题
npci=0x3000
解决独立显卡PCIconfiguration begin卡住不动
Kernel=mach_kernel
从系统内核启动
rd=disk0s1
强制指定启动分区
rd=*/PCI0@0/CHN0@0/@0:1
啟動PCI RAID卡,格式rd=*<IODeviceTree path>
rp
根目录位置
trace
Kernel Trace缓冲区大小
initmcl
初始化mbuf集群
socket_debug
套接字调试
net_affinity
净亲和度
rte_debug=flags
路由调试
msgbuf
消息缓冲区
mseg
最大细分
mcache_flags
内存缓存标志
-rwroot_hack
挂载root读/写
mbuf_debug=1
MBuf调试
boot-uuid
引导UUID
config=foobar
加载/Library/Preferences/SystemConfiguration/foobar.plist以代替com.apple.Boot.plist
iog=0x0
强制Mac在笔记本上不使用Clamshell模式,当外接了显示器和键盘,合盖后笔记本不会睡眠,但内置显示器将会关闭
serverperfmode=1
在macOS Server中开启性能模式
_panicd_ip=11.4.5.14
设置一个Kernel Panic收集服务器的IP地址,日志将会通过UDP协议发送给这个IP的1069端口
panicd_port
修改日志发送端口(默认为1069)
-zc
自由区元素检查
keepsyms=1
保留KLD/Address-Symbol翻译,配合debug=0x100使用,使操作系统在内核崩溃时打印符号
artsize
指定要用于地址解析表(ART)的页数
dtrace_dof_mode=0/1/2/3
设置DTrace DOF模式
DisableFBT=1
关闭FBT
IgnoreFBTBlacklist=1
忽略FBT黑名单
BootCacheOverride=1
BootCache驱动程序被加载,但从网络启动时不会运行,设置BootCacheOverride=1可以覆盖此行为
diag
启用内核的内置诊断接口及其特定功能
serial
串行诊断控制台
io=#
I/O Kit驱动调试位,设置为0x00200000(即kIOLogSynchronous)时会使IOLog()函数同步执行
novmx=1
禁用AltiVec
pcata=0
禁用板载PC ATA驱动器(加载轮询模式驱动程序可能可以开启)
_router_ip=11.4.5.14
使用跨局域网内核调试时指定网关IP
serial=1
启用串口调试
serialbaud
指定串行端口的波特率。kprintf()函数的初始化例程检查此参数
smbios=1
在SMBIOS驱动中启用详细的日志信息,仅限于32位机器
vmdx/pmdx
内核启动时在内存中创建一个分区,参数格式为base.size,其中base是对齐的内存地址,size是内存页面大小的倍数。vmdx指虚拟内存、pmdx指物理内存,创建成功后将会被分别挂载在dev/mdx和dev/emdx下
srv=1
在X Servers或macOS Server系统中使用这一参数时会修改内核的电源和网络参数,提升作为服务器的性能
ncl
集群数
nbuf
BSD的缓冲区数
kmem=1
内核内存访问
nvram_paniclog=1
将Kernel Panic日志写入NVRAM
pmsafe_debug=1
将CPU置于安全电源模式
preempt
设置默认抢占率
unsafe
最大unsafe quanta
poll
最大poll quanta
yield
Schedule poll yield shift
kextlog=#
kext加载调试位
lapic_dont_panic=1
禁用AP内核的LAPIC Panic伪中断行为
smcdebug=#
AppleSMC调试位
ctrc
限制对特定处理器的跟踪
kdp_match_mac
指定要由远程内核调试协议使用的MAC地址
kdp_match_name
指定远程内核调试协议将使用的BSD网络接口名称
mcklog
指定机器检查标志
tb
指定非默认的跟踪缓冲区大小。内核将事件跟踪到循环内存缓冲区。默认情况下,内核在调试模式下使用32页,在非调试模式下使用8页。取值范围为1-256
vmmforce
将虚拟机监视器VMM特性指定为特性位的逻辑或,对所有虚拟机实例都是强制的
wcte=1
在PowerPC不可缓存单元(NCU)中启用写入合并计时器(或存储收集计时器),默认禁用
debug=参数
将所需选项数字求和后作为参数
debug=0x1
DB_HALT,在引导时暂停,直到外部调试串口已经连接并被识别
debug=0x2
DB_PRT,将内核的printf()函数输出的信息打印到 Console.app
debug=0x4
DB_NMI,启用内核调试功能,包括生成非屏蔽中断(NMI),在Power Mac上只需简单地按下电源键就能产生NMI。在笔记本电脑上在按下电源键时必须按住命令键,如果按住电源键超过五秒钟,系统将关闭电源,在系统偏好设置中更改启动盘时,DB_NMI位将被清除
debug=0x8
DB_KPRT,将kprintf()产生的内核调试输出发送到远程输出设备,通常是一个调试串口(如果有的话),注意kprintf()的输出是同步的
debug=0x10
DB_KDB,使用KDB代替GDB作为默认的内核调试器。与GDB不同,KDB必须被显式编译到内核中,此外基于KDB的调试需要原生的串口硬件(而不是基于USB的串口适配器)
debug=0x20
SB_SLOG,启用将杂项诊断记录到系统日志中,设置了这个位后load_shared_file()内核函数会记录额外的信息
debug=0x40
DB_ARP,允许跨局域网调试内核
debug=0x80
DB_KDP_BP_DIS,已经被弃用,用于支持旧版的GDB
debug=0x100
DB_LOG_PI_SCRN,禁用五国而把Kernel Panic的相关数据直接打印在屏幕上,还可用于Core Dump
debug=0x200
DB_KDP_GETC_ENA,在 Kernel Panic 后启用快捷键(c继续,r重启,k进入KDB)
debug=0x400
DB_KERN_DUMP_ON_PANIC,当Kernel Panic时触发一次Core Dump
debug=0x800
DB_KERN_DUMP_ON_NMI,当产生NMI时触发一次Core Dump
debug=0x1000
DB_DBG_POST_CORE,等待调试器连接(如果使用GDB)或在NMI触发的内核转储后等待调试器(如果使用 KDB),如果没有设置DB_DBG_POST_CORE,内核在Core Dump后继续运行
debug=0x2000
只生成并发送Kernel Panic Log,不生成完整的Core Dump
内存
maxmem=#
将可寻址内存限制为#MB
slide=#
手动设置KASLR slide值为#
fill
指定一个整数值,启动时用这个整数填充所有内存
?memory=
显示系统内存信息
CPU,ACPI与电源
-xcpm
在Ivy Bridge系统里强制xcpm使用系统内核以实现CPU原生电源管理
cpus=#
启用#个CPU核心(cpus=1为使用单核模式)
himemory_mode
用于调试超过4GB系统的大型物理内存配置(0-所有页面可用,1-禁用高内存,2-首选高内存)
-nossse3bit
启用AMD CPU的SSSE3仿真
acpi
启用AppleACPIPlatform调试
acpi=off
关闭电源管理
acpi=ht
以ACPI boot table启动
acpi=force
强制启动ACPI
acpi=strict
限制ACPI
acpi=noirq
不设定ACPI使用的IRQ
acpi_sci={edge,level,high,low}
设定ACPI SCI中断
idlehalt=1
无视所有空闲进程,使CPU进入低功率模式,系统闲置一段时间会停止电源(0为关闭,1为启动)
panic_io_port=0x0(,0x1,…,0xffff)
从该I/O端口读取panic
cpuidle=1
CPU省电模式,CPU闲置一段时间后会停止电源(0为关闭,1为启动)
platform=X86PC
强制禁用ACPI电源管理
platform=ACPI
强制启用ACPI电源管理
fn=1
关闭强制休眠
fn=2
开启强制休眠
_fpu
禁用x86上的FPU功能,_fpu=387
将禁用FXSR/SSE/SSE2,_fpu=se
将禁用SSE2
immediate_NMI=1
强制立即使用NMI调试器
lcks
锁定统计信息
novmx=1
在Rosetta禁用altivec仿真
max_valid_dma_addr
最大有效DMA地址
maxbouncepool
最大反弹池大小
maxloreserve
最大低储备
npvhash
物理到虚拟的哈希映射
wpkernel=1
内核写保护
-no_shared_cr3
禁用64位用户的共享内核地址空间
-pmap_trace
为pmap启用内核跟踪
hfile
休眠文件的名称(这一参数也会修改sysctl中的kern.hibernatefile变量)
pmsx=1
在10.4.3上启用实验性电源管理(PMS)
busratio=#
规定CPU总线比率为20
acpi_layer=0xFFFFFFFF
acpi_level=0xFFFF5F
代表ACPI_ALL_COMPONENTS
acpi_sleep
ACPI睡眠
nvdebug
NVDAResman调试
nvrm
NVDAResman
ndrv_debug_level
NDRV调试级别(NVDAResman)
pstep
功率步调试(ACPI_SMC)
hpet
AppleHPET
batman=#
AppleSmartBatteryManager调试位
batman-nosmc=1
禁用AppleSmartBatteryManager SMC接口
ioaccel_debug=#
IOAccelerator调试掩码
nvram-log=1
启用AppleEFINVRAM日志
显卡与Whatevergreen
forceRenderStandby=0
禁用RC6 Render Standby,避免NVMe内核panic以及KBL/CFL可在低功耗状态下由于显卡导致的系统不稳定
nv_disable=1
禁止加载Nvidia独显驱动
nvda_drv=1
让系统安装Nvidia官方WebDriver显卡驱动(10.12+失效,对于Clover在配置文件勾选System Parameters-NvidiaWeb,对于OpenCore在配置文件填写NVRAM->Add->7C436110-AB2A-4BBB-A880-FE41995C9F82->nvda_drv: <31>)
nvda_drv_vrl=1
Sierra和High Sierra中用于取代nvda_drv=1
romndrv=1
允许使用本机图形驱动程序(ndrv),即使其创建日期早于预定义的最小日期2001年3月1日
-amd_no_dgpu_accel
关闭AMD显卡硬件加速(默认),替代WhateverGreen的-radvesa,用于较新的GPUs
-radvesa
强制GPU进入VESA模式(无GPU加速),有助于进行故障排除,苹果内置标志的版本是-amd_no_dgpu_accel
shiki-id=Mac-7BA5B2D9E42DDD94
使用iMacPro1,1交换boardID
shikigva=1
让iGPU处理硬件解码,在同时使用iGPU与dGPU时需要
shikigva=4
在新于Haswell的架构上支持硬件加速的视频解码
shikigva=40
使用iMac14,2交换boardID,允许Polaris,Vega和Navi GPU处理所有类型的渲染,对于希望使用iGPU、不需要Nvidia GPU的SMBIOS有效
agdpmod=vit9696
禁用board ID检查,完成引导后屏幕变黑时可能需要
agdpmod=pikera
重命名board-id为board-ix以有效地禁用board ID检查
-wegnoegpu
禁用除iGPU以外的所有GPU
-igfxnohdmi
禁用DisplayPort到HDMI音频转换
-cdfon
执行启用HDMI 2.0支持所需的众多补丁
-igfxvesa
强制GPU进入VESA模式(无GPU加速),有助于进行故障排除
igfxonln=1
强制所有显示联机,对于解决Coffee and Comet Lake 10.15.4+中的屏幕唤醒问题很有用
igfxfw=2
支持为iGPU加载Apple的GUC固件,需要第9代芯片组或更高版本(例如Z390)
-nehalem_error_disable
用于MacPro5,1以避免内核panic
panic_on_display_hang=1
显示设备挂起时触发Panic
panic_on_gpu_hang=1
GPU挂起时触发Panic
spin_wait_for_gpu=1
减少GPU高负载情况下的超时时间
“Graphics Mode”=”1024x768x32”
指定分辨率(WidthxHeightxColor Depth,如1024x768x32,或WidthxHeightxDepth@Refresh Rate,如640x480x32@60)
?video=
显示显卡支持的最高分辨率
USB
-uia_exclude_hs
从USB3.0端口中禁用HS端口(将无法在这些端口上使用USB2.0设备,使用USB鼠标/键盘切勿使用)
-uia_exclude_xhc
启用EH0x和相关集线器的USBInjectAll端口注入器,从而覆盖内置集线器端口注入器,但保持对XHC的DSDT控制
-uia_exclude_ssp
禁用SSP端口
-uia_exclude_ss
禁用SS端口
-uia_ignore_rmcf
禁用USBInjectAll的SSDT替代代码
uia_exclude=#
手动设置禁用的端口
-gux_defer_usb2
修复使用GenericUSBXHCI.kext导致的睡眠问题(仅在EHC控制器存在时可用,i7系列适用)
-gux_no_idle
终止英特尔芯片上的一些空闲模式(idle-mode)功能(i7系列适用)
-gux_nosleep
强迫睡眠使用shutdown/reset方法
-gux_nomsi
强迫使用中断(interrupt)而不是msi
声卡与AppleALC
-alcoff
跳过AppleALC.kext
其它硬件
fhrdl1=1
强制硬件恢复数据高速缓存级别1(L1 D-cache)错误,已被废弃,换用mcksoft
mcksoft=1
启用计算机检查软件恢复
novmx=1
禁用AltiVec
bluetoothHostControllerSwitchBehavior=never/always
蓝牙驱动程序是否切换插入的加密狗,要使外部加密狗在重启后仍为默认设置则使用always
仅适用于PPC
mtxspin
Mutex spin
vmmforce
VMM force
fn=0/1/2
强制小睡
pmsx=1
实验电源管理步进模式
ctrc
将跟踪设置为特定的CPU
tb
非默认跟踪缓冲区大小
wcte
开启组合写计时器
mcklog
清除机器检查标志
mcksoft
机器检查软件恢复
ht_shift=1
非默认哈希表大小
zsize
目标区域大小
colors
设置VM颜色
serialbaud
设置串行波特率
其它
urgency_notification_abstime
Busradio参数 Busratio=xx参数仅适用于无法正确启动的多核Core i系列处理器,在10.5.7及之后不再需要。一般在10.5.6中使用i7 CPU时需要该参数。
xx的值为Core Speed数值除以Bus Speed数值,四舍五入到最接近的整数。
工具 部分工具作用如下。
工具名称
原因/用途
BootKicker
调用Mac内置的引导界面,用于白苹果安装OpenCore,黑苹果无法使用,可直接删除(仅Mac同款显卡才可使用)
ChipTune
测试BeepGen协议,生成不同频率和长度的音频信号
CleanNvram
NVRAM清理
FwProtect
解锁和回锁NVRAM保护,让其他工具在从OpenCore启动时能够获得完整的NVRAM访问权限
GopStop
停止显卡GOP,用于测试GraphicOutput协议(排错时使用)
KeyTester
在SimpleText模式下测试键盘输入
MemTest86
内存测试工具
OpenCore Shell
由OpenCore配置的UEFI Shell,与绝大部分固件兼容
PavpProvision
执行EPID配置(需要配置证书数据)
ResetSystem
执行系统重置(以重置类型作为参数,可为ColdReset/Firmware/WarmReset/Shutdown,默认为ColdReset)
RtcRw
读取和写入RTC(CMOS)存储器的使用程序
HdaCodecDump
导出声卡Codec,可用于定制声卡
VerifyMsrE2
用于检查主板上CFG锁的状态
系统启动标志位 即BooterConfig,具体含义如下。
Bit位
含义
0
RebootOnPanic,遇到内核崩溃自动重启
1
HiDPI,在启动过程中使用HiDPI模式显示
2
Black,在启动过程中不显示进度条
3
CSRActiveConfig,将读取当前生效的SIP控制标志位
4
CSRConfigMode,仅用于Recovery/安装环境,将允许对SIP进行配置
5
CSRBoot,仅用于Recovery/安装环境,SIP将完全禁用
6
BlackBg,在启动过程中使用黑色背景
7
LoginUI,在启动过程中使用登陆界面作为背景
8
InstallUI
kext补丁 修复外置硬盘识别为内置硬盘 RXh0ZXJuYWw=
指External,SW50ZXJuYWw=
指Internal。
1 2 3 Name: AppleAHCIPort Find: 45787465 726E616C Replace: 496E7465 726E616C
允许使用MacPro4,1或MacPro5,1的SMBIOS时不带ECC内存引导 1 2 3 Name: AppleTyMCEDriver Find: 720A004D 61635072 6F342C31 004D6163 50726F35 2C310058 Replace: 720A0000 00000000 00000000 00000000 00000000 00000058
使用VoodooHDA时将系统偏好设置-声音-输出中的设备由Headphones改为Telephones 1 2 3 Name: VoodooHDA Find: 48656164 70686F6E 657300 Replace: 54656C65 70686F6E 657300
IOAPIC修复 1 2 3 Name: AppleAPIC Find: C1E8100F B6F0 Replace: BE170000 0090
添加TRIM支持 1 2 3 Name: IOAHCIBlockStorage Find: 4150504C 45205353 44 Replace: 00000000 00000000 00
Intel HD3000连接器补丁 1 2 3 Name: AppleIntelSNBGraphicsFB Find: 01020400 10070000 10070000 05030000 02000000 30000000 02050000 00040000 07000000 03040000 00040000 09000000 04060000 00040000 09000000 Replace: 01020300 10070000 10070000 03040000 00040000 09000000 02050000 00040000 07000000 04060000 00040000 09000000 00000000 00000000 00000000
kernel补丁 去除Lilu内核崩溃时的kexts输出 根据MatchOS的版本号选用更名补丁。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Comment: Disable panic kext logging on 10.15.4 Release kernel Find: 008a0284c074 Replace: 008a0284c0eb MatchOS: 10.14.4,10.14.5 Comment: Disable panic kext logging on 10.13 Release kernel Find: 8A0284C07444 Replace: 8A0284C0EB44 MatchOS: 10.13 Comment: Disable panic kext logging on 10.14-10.14.3 Release kernel Find: 8A0284C07442 Replace: 8A0284C0EB42 MatchOS: 10.14-10.14.3 Comment: Disable panic kext logging on 10.14.4 Release kernel Find: 008A0284C074 Replace: 008A0284C0EB MatchOS: 10.14.4
NVRAM 即易失性UEFI变量。macOS广泛使用NVRAM变量使操作系统、BootLoader、固件之间互通。
macOS使用的NVRAM如下。
GUID
宏定义
含义
说明
常用
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14
APPLE_VENDOR_VARIABLE_GUID
AppleVendor
7C436110-AB2A-4BBB-A880-FE41995C9F82
APPLE_BOOT_VARIABLE_GUID
AppleBoot
默认GUID,通过nvram -p被调用
8BE4DF61-93CA-11D2-AA0D-00E098032B8C
EFI_GLOBAL_VARIABLE_GUID
EfiGlobal
非Apple GUID,由ACPI规范所制定
4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102
OC_VENDOR_VARIABLE_GUID
其它
9EBA2D25-BBE3-4AC2-A2C6-C87F44A1278C
APPLE_PASSWORD_UI_EFI_FILE_NAME_GUID
ApplePasswordUi
8D63D4FE-BD3C-4AAD-881D-86FD974BC1DF
APPLE_CORE_STORAGE_VARIABLE_GUID
AppleCoreStorage
F68DA75E-1B55-4E70-B41B-A7B7A5B758EA
APPLE_TRB_SECURE_VARIABLE_GUID
AppleTrbSecureVariable
5D62B28D-6ED2-40B4-A560-6CD79B93D366
APPLE_TRB_STAGING_COMMAND_GUID
AppleTrbSecureCommand
FA4CE28D-B62F-4C99-9CC3-6815686E30F9
APPLE_EFI_PERSONALIZATION_VARIABLE_GUID
AppleEfiPersonalization
36C28AB5-6566-4C50-9EBD-CBB920F83843
APPLE_EFI_NETWORK_VARIABLE_GUID
AppleEfiNetwork
AF9FFD67-EC10-488A-9DFC-6CBF5EE22C2E
APPLE_ACPI_VARIABLE_GUID
AppleAcpi
FA4CE28D-B62F-4C99-9CC3-6815686E30F9
FA4CE28D
2660DD78-81D2-419D-8138-7B1F363F79A6
Custom GUID for Lilu variable storage
LiluNormal
E09B9297-7928-4440-9AAB-D1F8536FBF0A
Custom GUID for Lilu read-only variable storage (cannot be written from OS), implemented by AptioMemoryFix
LiluReadOnly
F0B9AF8F-2222-4840-8A37-ECF7CC8C12E1
Custom GUID for Lilu write-only variable storage (cannot be read from OS), implemented by AptioMemoryFix
LiluWriteOnly
变量
变量
作用
必需变量
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:FirmwareFeatures
32位FirmwareFeatures。存在于所有Mac上,用来避免额外解析SMBIOS表
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:FirmwareFeaturesMask
32位FirmwareFeaturesMask。存在于所有Mac上,用来避免额外解析SMBIOS表
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:MLB
存在于较新的Mac上(至少2013年以后),用来避免额外解析SMBIOS表,尤其是在boot.efi中
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:ROM
主要的网络适配器的MAC地址或替换值。存在于较新的Mac(至少2013年以后)上,用来避免访问特殊内存区域,尤其是在boot.efi中
建议变量
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:ExtendedFirmwareFeatures
结合FirmwareFeatures和ExtendedFirmwareFeatures。存在于较新的Mac上,用来避免额外解析SMBIOS表
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:ExtendedFirmwareFeaturesMask
结合FirmwareFeaturesMask和ExtendedFirmwareFeaturesMask。存在于较新的Mac上,用来避免额外解析SMBIOS表
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:HW_BID
硬件BoardProduct(如Mac-35C1E88140C3E6CF)。在真正的Mac上不存在,但可用于避免额外解析SMBIOS表,尤其是在boot.efi中
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:HW_MLB
硬件BoardSerialNumber。覆盖MLB,存在于较新的Mac上(至少2013年以后)
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:HW_ROM
硬件ROM。覆盖ROM,存在于较新的Mac上(至少2013年以后)
7C436110-AB2A-4BBB-A880-FE41995C9F82:security-mode
定义FireWire安全模式的ASCII字符串。这一变量旧版本才有,建议不要设置这个变量,这样可能会加快启动速度。设置为full等同于不设置该变量,设置为none将禁用FireWire安全性
其它变量
7C436110-AB2A-4BBB-A880-FE41995C9F82:AAPL,PanicInfo0000
7C436110-AB2A-4BBB-A880-FE41995C9F82:AAPL,PanicInfoLog
7C436110-AB2A-4BBB-A880-FE41995C9F82:ALS_Data
UINT8, Present on 2016+ MBP; default is 03 (enables auto power-on on lid opening), 00 disables auto boot; reads SMC key “LIDB”, see AlertUI.efi in firmware
7C436110-AB2A-4BBB-A880-FE41995C9F82:AutoBoot
UINT8[2]
7C436110-AB2A-4BBB-A880-FE41995C9F82:backlight-level
7C436110-AB2A-4BBB-A880-FE41995C9F82:backlight-regs
7C436110-AB2A-4BBB-A880-FE41995C9F82:bluetoothActiveControllerInfo
7C436110-AB2A-4BBB-A880-FE41995C9F82:bluetoothInternalControllerInfo
7C436110-AB2A-4BBB-A880-FE41995C9F82:boot-gamma
7C436110-AB2A-4BBB-A880-FE41995C9F82:boot-image-key
UINT8[16], Boot image identifier, used for hibernation.
7C436110-AB2A-4BBB-A880-FE41995C9F82:boot-image
7C436110-AB2A-4BBB-A880-FE41995C9F82:boot-info-payload
7C436110-AB2A-4BBB-A880-FE41995C9F82:boot-signature
UINT8[20], Boot image encryption key, used for hibernation.
7C436110-AB2A-4BBB-A880-FE41995C9F82:boot-switch-vars
DATA, Legacy boot image identitifer and decryption key, corresponds to IORTCVariables, removed as of 10.13.6.
7C436110-AB2A-4BBB-A880-FE41995C9F82:bootercfg-once
在首次启动后删除Booter参数覆盖,否则等同于bootercfg
7C436110-AB2A-4BBB-A880-FE41995C9F82:BootCampHD
7C436110-AB2A-4BBB-A880-FE41995C9F82:BootCampProcessorPstates
7C436110-AB2A-4BBB-A880-FE41995C9F82:csr-data
7C436110-AB2A-4BBB-A880-FE41995C9F82:disable-network
7C436110-AB2A-4BBB-A880-FE41995C9F82:disable-network
7C436110-AB2A-4BBB-A880-FE41995C9F82:DisplayBackgroundColor
7C436110-AB2A-4BBB-A880-FE41995C9F82:edid-override
AppleGraphicsPolicy (outdated?)
7C436110-AB2A-4BBB-A880-FE41995C9F82:efi-apple-recovery
7C436110-AB2A-4BBB-A880-FE41995C9F82:efi-apple-payload#
7C436110-AB2A-4BBB-A880-FE41995C9F82:efi-apple-payload#-data
7C436110-AB2A-4BBB-A880-FE41995C9F82:efi-boot-device-data
7C436110-AB2A-4BBB-A880-FE41995C9F82:efi-boot-device-data
7C436110-AB2A-4BBB-A880-FE41995C9F82:efi-boot-device
7C436110-AB2A-4BBB-A880-FE41995C9F82:efi-boot-file
7C436110-AB2A-4BBB-A880-FE41995C9F82:efi-boot-file-data
7C436110-AB2A-4BBB-A880-FE41995C9F82:efi-boot-next
7C436110-AB2A-4BBB-A880-FE41995C9F82:efi-boot-payload0
7C436110-AB2A-4BBB-A880-FE41995C9F82:efi-boot-payload0-data
7C436110-AB2A-4BBB-A880-FE41995C9F82:eft-boot-next-data
7C436110-AB2A-4BBB-A880-FE41995C9F82:efi-boot-mkext
7C436110-AB2A-4BBB-A880-FE41995C9F82:efi-boot-kernelcache
7C436110-AB2A-4BBB-A880-FE41995C9F82:efi-boot-kernelcache-data
7C436110-AB2A-4BBB-A880-FE41995C9F82:efi-legacy-drive-hint
7C436110-AB2A-4BBB-A880-FE41995C9F82:efi-legacy-drive-hint-data
7C436110-AB2A-4BBB-A880-FE41995C9F82:efiboot-perf-record
启用boot.efi中的性能日志保存功能。性能日志会被保存到物理内存中,并通过efiboot-perf-record-data和efiboot-perf-record-size变量进行指向。从 10.15.4开始,也可以在OpenCore开启AppleDebug,以保存到OpenCore日志
7C436110-AB2A-4BBB-A880-FE41995C9F82:EFIBluetoothDelay
7C436110-AB2A-4BBB-A880-FE41995C9F82:EFICapsule_Result
7C436110-AB2A-4BBB-A880-FE41995C9F82:run-efi-updater
覆盖macOS中对EFI固件更新(MultiUpdater、ThorUtil)等的支持。将此值设置为No或其他可以转换为布尔类型的值将能够禁用10.10起的macOS固件更新
7C436110-AB2A-4BBB-A880-FE41995C9F82:EnableEHCIMode
7C436110-AB2A-4BBB-A880-FE41995C9F82:StartupMute
开机时禁用固件引导提示音,8进制整数。0x00指代不静音,其他任何值(或缺少该值)表示静音
7C436110-AB2A-4BBB-A880-FE41995C9F82:ErrorToneTestVariable
7C436110-AB2A-4BBB-A880-FE41995C9F82:fmm-computer-name
当前保存的主机名称,格式为ASCII字符串
7C436110-AB2A-4BBB-A880-FE41995C9F82:fmm-mobileme-token-FMM
7C436110-AB2A-4BBB-A880-FE41995C9F82:gpu-active
7C436110-AB2A-4BBB-A880-FE41995C9F82:gpu-policy
7C436110-AB2A-4BBB-A880-FE41995C9F82:gpu-power-prefs
7C436110-AB2A-4BBB-A880-FE41995C9F82:HW_BOOT_DATA
DATA, Boot data?
7C436110-AB2A-4BBB-A880-FE41995C9F82:KTSStatus
7C436110-AB2A-4BBB-A880-FE41995C9F82:KTSPrevious
7C436110-AB2A-4BBB-A880-FE41995C9F82:KTSResult
7C436110-AB2A-4BBB-A880-FE41995C9F82:LocationServicesEnabled
7C436110-AB2A-4BBB-A880-FE41995C9F82:manufacturing-enter-picker
7C436110-AB2A-4BBB-A880-FE41995C9F82:nv_efi_disable
7C436110-AB2A-4BBB-A880-FE41995C9F82:picker-show-delay
7C436110-AB2A-4BBB-A880-FE41995C9F82:platform-uuid
7C436110-AB2A-4BBB-A880-FE41995C9F82:prev-lang:kbd
ASCII String, Define default keyboard layout. Format is lang-COUNTRY:keyboard (e.g. ru-RU:19456 for Mac keyboard, also short forms ru:19456 and ru:0. Full list of keyboards in AppleKeyboardLayouts-L.dat, decoded at https://www.applelife.ru/posts/763537
7C436110-AB2A-4BBB-A880-FE41995C9F82:recovery-boot-mode
7C436110-AB2A-4BBB-A880-FE41995C9F82:RemoteDisabled
7C436110-AB2A-4BBB-A880-FE41995C9F82:security-mode
ASCII String, IOFireWireController security mode, setting to none may result in longer startup, full is recommended
7C436110-AB2A-4BBB-A880-FE41995C9F82:SystemAudioVolume
固件音频支持的系统音频音量等级,8进制整数。0x80指代静音,低位用于编码安装的音频编码解码器的音量范围。该值以MaximumBootBeepVolume AppleHDA layout值为上限,以避免固件中的音频播放声音过大
7C436110-AB2A-4BBB-A880-FE41995C9F82:SmcFlasherResult
7C436110-AB2A-4BBB-A880-FE41995C9F82:SystemAudioVolumeDB
7C436110-AB2A-4BBB-A880-FE41995C9F82:SystemAudioVolumeSaved
7C436110-AB2A-4BBB-A880-FE41995C9F82:target-mode
7C436110-AB2A-4BBB-A880-FE41995C9F82:tbt-dpdefault
7C436110-AB2A-4BBB-A880-FE41995C9F82:tbt-options
7C436110-AB2A-4BBB-A880-FE41995C9F82:UEFIWindowsBootCapable
7C436110-AB2A-4BBB-A880-FE41995C9F82:usb-options
7C436110-AB2A-4BBB-A880-FE41995C9F82:usb-cr-rec
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:AAPL,PathProperties0000
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:BackgroundClear
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:BBIF
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:BlackMode
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:current-network
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:FirmwareFeatures
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:FirmwareFeaturesMask
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:gfx-saved-config-restore-status
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:GR_CAUSE
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:HardwareBootMode
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:HW_BID
ASCII String, Hardware board-id (e.g. Mac-35C1E88140C3E6CF). Not present on real Macs, but used for SMBIOS override and faster board-id lookup in boot.efi.
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:HW_BREV
Hardware board-rev
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:HW_ICT
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:HW_MLB
DATA, Hardware MLB. Override for MLB. Present on newer Macs (2013+ at least).
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:HW_ROM
DATA, Hardware ROM. Override for ROM. Present on newer Macs (2013+ at least).
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:HW_SSN
DATA, Hardware serial number. Override for SSN (unsure if SSN is used by anything).
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:IASCurrentInstallPhase
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:IASInstallPhaseList
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:IpAddr
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:MLB
DATA, Motherboard Serial Number.
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:NetbootDefaultImage
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:NetbootDiagnostics
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:PickerEntryReason
DATA, 4 = right shift, 3 = left shift, 2 = remote (menu), 1 = NVRAM key (manufacturing-enter-picker)
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:ROM
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:security-key
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:SSN
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:system-id
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:UIScale
AF9FFD67-EC10-488A-9DFC-6CBF5EE22C2E:AcpiGlobalVariable
UINT8[8]
8D63D4FE-BD3C-4AAD-881D-86FD974BC1DF:last-oslogin-ident
8D63D4FE-BD3C-4AAD-881D-86FD974BC1DF:corestorage-passphrase
F68DA75E-1B55-4E70-B41B-A7B7A5B758EA:ResetNVRam
F68DA75E-1B55-4E70-B41B-A7B7A5B758EA:BootOrder
F68DA75E-1B55-4E70-B41B-A7B7A5B758EA:BootNext
F68DA75E-1B55-4E70-B41B-A7B7A5B758EA:DriverOrder
F68DA75E-1B55-4E70-B41B-A7B7A5B758EA:target-mode
F68DA75E-1B55-4E70-B41B-A7B7A5B758EA:CBF2CC32
F68DA75E-1B55-4E70-B41B-A7B7A5B758EA:3B3D2CF2
F68DA75E-1B55-4E70-B41B-A7B7A5B758EA:61B764CB
F68DA75E-1B55-4E70-B41B-A7B7A5B758EA:F89C7780
F68DA75E-1B55-4E70-B41B-A7B7A5B758EA:3E6D568B
F68DA75E-1B55-4E70-B41B-A7B7A5B758EA:BC9772C5
5D62B28D-6ED2-40B4-A560-6CD79B93D366:AAPLTrbCmd
FA4CE28D-B62F-4C99-9CC3-6815686E30F9:DisplayBackgroundColor
FA4CE28D-B62F-4C99-9CC3-6815686E30F9:DefaultBackgroundColor
FA4CE28D-B62F-4C99-9CC3-6815686E30F9:gpu-active
FA4CE28D-B62F-4C99-9CC3-6815686E30F9:wireless-boot-ssid
FA4CE28D-B62F-4C99-9CC3-6815686E30F9:wireless-boot-password
36C28AB5-6566-4C50-9EBD-CBB920F83843:current-network
Once existed in AppleVendor, see: https://github.com/erikberglund/AppleNVRAM/blob/master/Apple/4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14.md
36C28AB5-6566-4C50-9EBD-CBB920F83843:preferred-count
36C28AB5-6566-4C50-9EBD-CBB920F83843:preferred-networks
8BE4DF61-93CA-11D2-AA0D-00E098032B8C:BootXXXX
Boot0080, Boot0081, Boot0082, BootFFFF are used
8BE4DF61-93CA-11D2-AA0D-00E098032B8C:LEGACYVGAHANDLE
8BE4DF61-93CA-11D2-AA0D-00E098032B8C:agp-internal-edid
8BE4DF61-93CA-11D2-AA0D-00E098032B8C:GFXVENDOR
8BE4DF61-93CA-11D2-AA0D-00E098032B8C:_AGP_DISABLED
AppleGraphicsPolicy
E09B9297-7928-4440-9AAB-D1F8536FBF0A:vsmc-status
F0B9AF8F-2222-4840-8A37-ECF7CC8C12E1:vsmc-key
重置 在Clover和OpenCore之间切换时,建议重置NVRAM。
通过Clover 删除Clover的drivers64UEFI目录下的EmuVariableUefi.efi,重启进入Clover引导项选择界面,按F11或Fn+F11,直到设备自动重启。
通过OpenCore 在OpenCore引导界面按空格显示隐藏条目,选择Reset NVRAM。此法将会丢失BIOS中的自定引导项。
通过终端 在终端输入以下命令即可。
判断工作状态 删除引导工具内的VariableRuntimeDxe.efi、EmuVariableRuntimeDxe.efi和EmuVariableUefi.efi,删除NVRAM导出脚本LogoutHook和RC Script,删除EFI分区根目录下的nvram.plist,重启后输入以下命令。
再次重启后在终端输入以下命令,如果终端成功输出了test,则说明主板在Mac下NVRAM正常工作,反之为不正常。
1 nvram -p | grep -i myvar
SIP配置 SIP是Mac的安全保护机制,包括文件系统保护、运行时保护和内核扩展签名保护。
基本概念 csr-active-config 启动时控制SIP的参数。
BiT位
含义
0
[kext]允许加载不受信任的kext(与kext-dev-mode=1等效)
1
[fs]解锁文件系统限制
2
[debug]允许task_for_pid()调用
3
[N/A]允许内核调试 (官方的csrutil工具无法设置此位)
4
[internal]Apple内部保留位(csrutil默认会设置此位,实际不会起作用。设置与否均可)
5
[dtrace]解锁dtrace限制
6
[nvram]解锁NVRAM限制
7
[N/A]允许设备配置,用于Recovery/安装环境
修改 SIP可以防止将未签名的程序包注入内核,并可以防止应用程序覆盖NVRAM。通过Clover注入kext时不要求SIP禁用。
通过csrutil 在正常系统环境下,csrutil只能查询SIP状态,故需进入恢复模式更改。白苹果在启动时按command+R进入,黑苹果在Clover的引导菜单进入。按照需求输入以下命令即可。
1 2 3 4 5 6 7 8 9 10 11 12 13 // 查询状态 csrutil status // 完全启用 csrutil enable // 或csrutil clear // 开关各项技术 csrutil enable [--without kext|fs|debug|dtrace|nvram] [--no-internal] // 禁用 csrutil disable // 或csrutil enable --without kext --without fs --without debug --without dtrace --without nvram
通过引导器 通过修改引导器中的CsrActiveConfig,可修改SIP状态。使用0x67或0x3E7以禁用,两者参数比较如下表。
参数
有效值
0x67
CSR_ALLOW_UNRESTRICTED_NVRAM
CSR_ALLOW_TASK_FOR_PID
CSR_ALLOW_UNRESTRICTED_FS
CSR_ALLOW_UNTRUSTED_KEXTS
0x3E7
CSR_ALLOW_UNAPPROVED_KEXTS
CSR_ALLOW_ANY_RECOVERY_OS
CSR_ALLOW_DEVICE_CONFIGURATION
CSR_ALLOW_UNRESTRICTED_NVRAM
CSR_ALLOW_UNRESTRICTED_DTRACE
CSR_ALLOW_UNTRUSTED_KEXTS
通过写入NVRAM 打开终端并输入以下命令即可。
1 sudo nvram 7C436110-AB2A-4BBB-A880-FE41995C9F82:csr-active-config=%13%00%00%00
EFI分区说明 APPLE文件夹 该文件夹用于更新实际Mac上的固件,无实际作用。
重定位块 即Relocation Block,是一个分配在低位4GB内存的缓冲区,EfiBoot使用该这部分内存加载内核和相关结构。在内核启动之前,重定位块的内容会被复制回位于低位的保留内存。
在没有更好的 slide(所有内存都被使用了)、强制slide=0(通过参数或安全模式设置)、不支持 KASLR(slide,macOS 10.7 及更旧的版本)时,将使用重定位块。
使用重定位块启动时不支持休眠。
内存映射限制 Apple内核在解析UEFI内存映射时存在限制。
内存映射的大小不能超过4096字节,因为Apple内核将其映射为一个4KiB页面。某些固件的内存映射大小非常大(大约超过100个条目),在其上Apple内核会在启动时崩溃。
内存属性表会被忽略。EfiRuntimeServicesCode内存静态获得RX权限,其他内存类型则获得RW权限。某些固件驱动会在运行时把数据写到全局变量中,在其上Apple内核在调用UEFI Runtime Services时会崩溃,除非驱动的.data部分有EfiRuntimeServicesData类型。
通用操作 填充PCI列表 打开Hackintool,选择PCI,点击右下角的导出按钮,即可得到PCI列表。插入Clover配置文件的Devices-Arbitrary即可。
通过Clover 以Clover为例,打开Clover Configurator,点击Boot.log-Generate log-Save boot.log to desktop,在桌面生成bootlog.txt文件。
打开Hackintool,记住要添加的设备的设备ID,在bootlog.txt中搜索此ID,并记录同一行下形如xx:xx.xx的字符串,称为pciaddr。如现有设备NVME SSD SM961,其设备ID为0xA804,pciaddr为04:00.00。
打开config.plist,点击Devices-Arbitrary,点击PciAddr栏左下角的+号以新建条目。其中PciAddr填写刚才查询的值,Comment可记录下该设备的类型。双击此条目,并点击Value Type右下角的+号,添加两个条目,内容如下。
Key
Value
Value Type
AAPL,slot-name
端口位置,可任意填写,如Slot-1
STRING
model
设备名称,可任意填写,最好与源设备名一致
STRING
完成后保存并重启即可。注意,显卡信息无法添加到PCI列表中,而声卡PCI属性的注入会导致layout-ID的覆盖,从而使声卡不工作。故若需注入声卡属性,需在config.plist下设置Devices-Audio-inject为No,在Boot-Arguments下添加alcid=[layout-id]
。
禁用USB2控制器 USB2的控制器在DSDT一般命名为EHC1/EHC2。可用以下SSDT禁用EHC1和EHC2。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 /* * USB compatibility table for disable phantoms EHC1, EHC2. * * Attention! * Only for 7,8,9-series chipsets and 10.11 and newer! * * To disable EHC1 and EHC2 - set an option "XHCI Mode" to "Enabled" in yours BIOS. * If the "XHCI Mode" option is not available in yours BIOS or works incorrectly, then use this ACPI table. * Disabling through BIOS is preferable whenever possible. * * WARN: for some motherboards you need to use either "EH1D = One" or "EH2D = One" but not both! * This is because for some motherboards, device (EHC1 or EHC2) is used by macOS. Check the IOReg. */ DefinitionBlock ("", "SSDT", 2, "ACDT", "EHCx_OFF", 0x00001000) { Scope (\) { OperationRegion (RCRG, SystemMemory, 0xFED1F418, One) Field (RCRG, DWordAcc, Lock, Preserve) { , 13, EH2D, 1, , 1, EH1D, 1 } Method (_INI, 0, NotSerialized) // _INI: Initialize { // In most cases this patch does benefit all operating systems, // yet on select pre-Windows 10 it may cause issues. // Remove If (_OSI ("Darwin")) in case you have none. If (_OSI ("Darwin")) { EH1D = One // Disable EHC1 EH2D = One // Disable EHC2 } } } }
Clover Clover支持从10.5开始的Mac。
部分说明 kexts注入 流程为修补SIP开启->修补程序以启用XNU僵尸代码->修补带有kext注入的race condition->注入kext->恢复SIP状态。该过程依赖FSInject.efi驱动程序,该驱动可以阻塞OSX缓存,并注入驱动程序到SLE,此时屏幕上会出现很多点。该过程中Clover调用了自10.7以来从未使用过的XNU的僵尸代码。
在启动时,kext的搜索顺序如下。对于重名的kext,会按照以下顺序加载第一个kext,无论该kext是否可用。
1 2 3 4 EFI/CLOVER/OEM/xxx/kexts/xx.y EFI/CLOVER/OEM/xxx/kexts/Other EFI/CLOVER/kexts/xx.y EFI/CLOVER/kexts/Other
配置文件 默认配置文件路径为EFI/CLOVER/config.plist。
每个主题有独特的配置文件,如EFI/CLOVER/themes/black_green/theme.plist。主题配置文件示例如下。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Author</key> <string>Slice</string> <key>Year</key> <string>2012</string> <key>Description</key> <string>Main metallic looking theme</string> <key>Theme</key> <dict> <key>Badges</key> <dict> <key>Show</key> <true/> <key>Inline</key> <false/> <key>Swap</key> <false/> </dict> <key>Background</key> <dict> <key>Path</key> <string>MetalDragon.png</string> <key>Type</key> <string>Scale</string> <key>Dark</key> <false/> <key>Sharp</key> <string>0x80</string> </dict> <key>Banner</key> <string>logo-trans.png</string> <key>Font</key> <dict> <key>CharWidth</key> <integer>10</integer> <key>Path</key> <string>BoG_LucidaConsole_10W_NA.png</string> <key>Type</key> <string>Load</string> </dict> <key>Selection</key> <dict> <key>Big</key> <string>Select_trans_big.png</string> <key>Color</key> <string>0xF3F3F380</string> <key>Small</key> <string>Select_trans_small.png</string> <key>OnTop</key> <false/> </dict> <key>Anime</key> <array> <dict> <key>ID</key> <integer>1</integer> <key>Path</key> <string>logo_3D</string> <key>Frames</key> <integer>15</integer> <key>FrameTime</key> <integer>200</integer> </dict> </array> </dict> </dict> </plist>
组件 内核 CLOVERX64.efi为Clover的内核。
提取 下载Clover的pkg安装包后,在Windows下可用7z打开,一路双击直到看到Clover相关文件即可。在Mac下则可用Suspicious Package。
更新 用新的CLOVERX64.efi覆盖EFI分区中旧的EFI/CLOVER/CLOVERX64.efi即可。
ACPI ACPI/hotpatch是SSDT库,需应用的DSDT/SSDT要放到ACPI/patched。
DSDT搜索顺序 顺序如下。若希望每个操作系统使用不同的DSDT,则将相应的DSDT放到各自系统分区的根目录即可。
1 2 3 4 5 6 7 # 机器主板名称可在boot.log查看 # 以running on Inspiron 1525 ... with board 0U990C为例 # 可选用Inspiron 1525或0U990C ->[所引导的系统分区]/DSDT.aml ->[Clover所在分区]/EFI/CLOVER/OEM/[机器主板名称]/ACPI/patched/DSDT.aml ->[Clover所在分区]/EFI/CLOVER/ACPI/patched/DSDT.aml ->BIOS
重命名规律 Clover对ACPI的更名只对原有的ACPI表和ACPI/patched的DSDT起作用,而不对ACPI/patched的SSDT起作用。故若使用Clover的ACPI更名,则SSDT引用的变量需采用新名称而非旧名称。
DSDT调试 若打开DSDT的Debug功能,则会在/EFI/CLOVER/ACPI/origin下找到原始DSDT和修改过的DSDT。其中DSDT-or.aml表示原始DSDT,DSDT-pa0.aml表示第一次尝试修复的DSDT,DSDT-pa1.aml表示第二次尝试修复的DSDT,后面的同理。
引导界面 快捷键 若设置了跳过引导界面,在启动时点击空格即可重新唤出。
快捷键
含义
F1
帮助
F2
保存启动日志preboot.log到EFI/CLOVER/misc/
F3
显示被隐藏的入口
F4
提取DSDT到EFI/CLOVER/ACPI/origin/
F5
提取修正过的DSDT到EFI/CLOVER/ACPI/origin/
F6
提取显卡ROM的VideoBios到EFI/CLOVER/misc/
F10
截屏到EFI/CLOVER/misc/
F11
重置NVRAM
空格
制定菜单项的详细信息
A
关于Clover
O
Clover选项
U
退出
Options ACPI patching
选项
说明
Tables dropping
等同于Clover Configurator中ACPI选项卡的Drop Tables
Drop OEM _DSM
丢弃_DSM
DSDT fix mask
DSDT修复遮盖,等同于Clover Configurator中ACPI选项卡的各种Fix选项
Custom DSDT patches
自定义的ACPI重命名
System Parameters
选项
说明
Booter Cfg Command
自定义的ACPI重命名
目录层级 Kexts Kexts/10.x下的驱动,只有在Clover引导使用boot with injected kexts时才会加载。
Clover不能加载已经在SLE里的kexts。
Driver r4986以后,Clover会先从EFI/CLOVER/drivers/UEFI加载驱动,若无则从EFI/CLOVER/drivers64UEFI加载。
OEM OEM目录下可存储包含特定机型的配置文件,如EFI/CLOVER/OEM/Inspiron1525/config.plist或EFI/CLOVER/OEM/H61M-S1/UEFI/config.plist外加自定义DSDT.aml。其中有UEFI目录的为UEFI启动的配置文件。
OEM目录下的子目录名称是根据SMBIOS得到的。在Clover启动界面按F2保存日志文件preboot.log,在日志里搜索Cloverrevision,即可得知本机SMBIOS。
最简结构 推荐最简文件结构如下。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ├── ACPI ├── CLOVERX64.efi ├── config.plist ├── drivers │ └── UEFI │ ├── ApfsDriverLoader.efi │ ├── AudioDxe.efi │ ├── DataHubDxe.efi │ ├── FSInject.efi │ ├── HFSPlus.efi │ ├── OpenRuntime.efi │ └── VirtualSmc.efi └── kexts └── Other ├── Lilu.kext ├── VirtualSMC.kext └── WhateverGreen.kext
基本配置 隐藏启动界面 确保系统正常运作后,打开Clover的config.plist,进行下列操作。
选项
操作
启动参数
取消-v
Hide Volume
添加Preboot和Recovery
Timeout
0以跳过倒计时(-1为停止倒计时)
Default Boot Volume
Mac系统盘名称或GUID号或设备路径,如HD(1,GPT,57272A5A-7EFE-4404-9CDA-C33761D0DB3C,0x800,0xFF000)
找到Mac系统盘下的Library/Preferences/SystemConfiguration/com.apple.Boot.plist,复制到桌面后用文本编辑器打开,删除里面的-v
参数,保存后拷贝回原来的位置以替换原始文件。重启,系统启动过程中将不会进入Clover界面和啰嗦模式。
若Driver文件夹中APFS驱动使用的不是ApfsDriverLoader.efi,则下载该驱动并用该驱动替换apfs.efi。重启,系统启动过程中将不会出现log代码。
主题配置 将下载好的主题文件夹以主题本身名字命名,并复制到EFI/CLOVER/themes下,在Gui-Theme下填写主题名称即可。
Mojave主题下载链接如下。
1 https://www.lanzous.com/i5e807e
播放开机音乐 下载BootAudio-Utility工具包,链接如下。
1 https://www.lanzous.com/i6ux0dc
将sound.wav和sound_night.wav放到EFI/CLOVER/themes/[当前使用主题]。确保UEFI文件夹下存在AudioDxe.efi和BootChimeDxe.efi,tools文件夹中存在BootChimeCfg.efi和HdaCodecDump.efi。
进入Clover的 UEFI Shell,输入以下命令配置BootChimeCfg。
1 2 3 4 # fs0是Clover所在ESP分区标号 fs0: cd EFI\CLOVER\tools BootChimeCfg.efi
引导生成 在Mac下可通过pkg安装包安装。也可将整个文件夹父知道EFI分区,然后手动添加引导项,路径为/EFI/Clover/CLOVERX64.efi。
配置文件生成 1 https://cloudclovereditor.altervista.org/cce/cce/index.php
配置文件详解 以下不建议的配置默认折叠。
ACPI DSDT
选项
说明
ResetAddress
修复重启,默认为0x64(通过PS2控制器重新启动),0x0CF9为通过PCI导轨重新启动,0x0为使用默认的FACP值(可在Clover启动界面按F2后打开日志文件查找Address得到本值,如0000000000000CF9即为0xCF9)
ResetValue
修复重启,默认为0xFE(通过PS2控制器重新启动),0x06为通过PCI导轨重新启动,0x0为使用默认的FACP值(可在Clover启动界面按F2后打开日志文件查找Value to cause reset得到本值,如06即为0x06)
DsdtName
dsdt.aml的名称
AddMCHC
在DSDT中添加Device ID=0X0044的设备,该项启用了IMEI修复程序才会起作用(匹配Intel Clarkdale平台,有些芯片需要这个装置来解决PCI的电源管理问题,一般不启用)
AddIMEI
用于intelHDxxx集成显卡,解决完美注入(需要开启fakeid-IMEI)
AddPNLF
添加PNLF设置代码,实现系统良好睡眠/唤醒
AddHDMI
修复HDMI音频输出
FixDarwin
使macOS系统(Darwin)被标识为Windows
FixDisplay
修复显卡代码(增加GFX0以及HDMI音频设置HADU)
FakeLPC
仿冒LPC以加载AppleLPC.kext(Intel and NForce 芯片建议勾选,特别是ICH7/ICH9等老芯片组)
->
以下四条修复IRQ,消除可能导致触摸板和音频设备无法正常工作的任何潜在IRQ冲突
FixIPIC
从decice IPIC移除中断语句(IRQ(2)),有利于某些笔记本电源按钮的工作
FixRTC
从RTC装置中删除IRQ(0),作用与patch里的防RTC重置类似
FixTMR
从TMR装置中删除IRQ(8),适用于较早的dos设备
FixHPET
添加IRQ(0,8,11)代码,加载原生电源管理(10.9+无需勾选)
<-
FixIDE
修复在10.6时五国出现的AppleIntelPIIXATA错误(一般不启用)
FixSBUS
增加SMBusControlle到设备树种,可修复因缺失SBUS控制而在系统log中出现的警告
FixDisplay
此补丁将影响所有视频卡,包括嵌入式英特尔GFX
FixIntelGfx
开启对IntelGFX显卡的新补丁设置(需配合imei)
FixWAK
消除警告
FixADP1
将设备AC0重命名为ADP1,效果与直接用ACPI更名等效
FixS3D
修正_S3Dmethods函数,解决睡眠/唤醒问题
FixACST
重命名ACST,常用于华硕主板以避免冲突(ACST项对于华硕是AC适配器状态,对于苹果是CPU闲置休眠状态的功能)
FixRegions
修正BIOS中的浮动区域(每次BIOS设置更改时OperatingRegions的地址会被更改的区域,在某些BIOS中会存在这种情况,即OperationRegion (GNVS, SystemMemory, 0xDE6A5E18, 0x01CD)中0xDE6A5E18会不断变化)
FixHeaders
清理标头,用于MACH重启修复,使用不会带来冲突
FixHDA
修复声卡代码(修正AZAL为HDEF/HDAU,且增加layout -id和pinconfig/MaximumBootBeepVolume属性)
FixLAN
修复网卡代码(注入网卡属性,修改网卡为内建)
FixAirport
修复无线网卡代码(为支持Airport的无线网卡注入属性,以开启Airport功能)
Fixshutdown
修复关机断电代码(主要是添加_PTS函数,判断寄存器arg0值是否为5并防止设置SLP_SMI_EN=1,华硕主板建议勾选)
FixUSB
修复USB代码(包含EHCI代码,注入USB属性,帮助内建USB,是完成睡眠的关键)
FixFirewire
修复1394火线代码(在火线控制装置中增加fwhub属性,一般不启用)
FixSATA
内建磁盘,修复SATA代码(用ICH6的ID匹配,可修复硬盘图标显示为橙黄色问题)
PatchAPIC
修复MADT表
HaltEnabler
在OSX系统启动时设置SLP_SMI_EN=0,断电重启补丁,与OpenHaltRestart.kext作用相同
UseSystemIO
在生成的_CST表中对Register (FFixedHW,
与Register (SystemIO,
进行选择
SlpSmiAtWake
在_WAK方法添加SLP_SMI_EN=0,可能有助于解决UEFI引导时的睡眠和关机问题
SuspendOverride
将睡眠模式扩展为状态3、4、5
ReuseFFFF
将诸如Name (_ADR, 0xFFFF)的设备转换为(ADR,0)并重新用于注入(如FakeID)
Rtc8Allowed
设置RTC长度为8字节
Debug
打开后会在EFI/CLOVER/ACPI/origin看到未修补的DSDT-or.aml、经过第一次修补尝试后的DSDT-pa0.aml、经过第二次修补尝试后的DSDT-pa1.aml,一直生成,直至系统能够启动为止
SSDT
选项
说明
DeleteUnuse
从DSDT中删除无用设备
Double First State
CPU功耗相关(Ivy Bridge专用)
Drop OEM
获取内建SSDT表单,删除与OEM CPU相关的SSDT以避免在为处理器生成包含P State和C State的SSDT时发生冲突,使用自定义DSDT则默认值为false,使用BIOS.aml则默认值为true(对于Sandy Bridge及较旧硬件使用,非必须勿用)
Generate CStates
开启C-State功能,可以修复启动时ACPI_SMC_PlatformPlugin错误
Generate PStates
开启P-State功能
Plugin Type
值为0时用ACPI_SMC_PlatformPlugin,为1时用X86PlatformPlugin(Ivy Bridge专用)
PLimit Dict
限制CPU频率,0为不开启,1为降低一级,2为降低两级
UnderVolt Step
限制CPU功率,只针对core 2,对i系列CPU无效,0为不开启,设为2可能死机
Min Multiplier
最小变频数
Max Multiplier
最大变频数
smartUPS
若打开,在系统概述的电源项中UPS已安装显示为是(只起修饰作用)
PatchAPIC
在SSDT中添加CPUS=1,解决ACPI表单中NMI丢失时macOS启动可能五国的问题
EnableC2/C4/C6/C7
在SSDT中添加_CST函数以启用C2/C4/C6/C7休眠
CpuPm/Cpu0Ist
与CPU电源管理有关
DMAR
防止Vt-d出现问题,修复10.8.2中的AppleACPIPlatform.kext启动问题
MATS
此表可能包含无法打印的字符以导致内核崩溃,打开该选项可修复ACPI_SMC_PlatformPlugin错误
BGRT
删除BIOS内置的启动图片
HPET / MCFG
获取MCFG表单
RenameDevices 以将_SB.PCI0.RP02.PSXS修改为_SB.PCI0.RP02.ARPT为例。
选项
说明
Find Device
_SB.PCI0.RP02.PSXS
Rename Device
ARPT
DropTables 通过签名和/或表标识符删除OEM ACPI表。Signature、TableID和Length都可以在原SSDT表头找到,注意Length需转换为十进制。
ResetAddress/ResetValue 默认值分别为0x64和0xFE。若重启不断电,则根据ACPI表中FACP.aml的值更改,其中ResetAddress对应Address,ResetValue对应Value to cause reset,无需转换进制。
C3功能 开启C3功能需要C3Latency的值小于1000(0x3e8),可在FACP.aml搜索C3 Latency得到。若大于1000,则在Clover中将C3Latency设为0x3E7,对于支持Turbo技术的CPU可设置为0xFA。
BOOT
选项
说明
DefaultVolume
指定默认启动项,可以为卷名(Macintosh)、分区UUID(ABCDEFGH-ZXCV-ASDF-QWER-ASDFGHJKLPOIU)或设备路径(HD(1,GPT,ABCDEFGH-ZXCV-ASDF-QWER-ASDFGHJKLPOIU,0xAAA,0xBBBBB))
DefaultLoader
指定加载器路径(如BOOTX64.efi)
XMPDetection
当检测到XMP内存时读取最佳预设参数或禁止检测XMP内存
Debug
生成调试输出/EFI/CLOVER/misc/debug.log(大大增加加载时间)
IgnoreNVRAMBoot
忽略启动磁盘面板的设置并允许始终启动到同一操作系统
Secure
在启用安全启动时使用Clover(需要签署Clover的二进制文件并加载证书)
Legacy
加载旧版本Windows/Linux
LegacyBiosDefaultEntry
指定以Legacy模式启动的硬盘(在Legacy选项选中后才会显示)
Timeout
0为直接跳过引导界面,-1为停止倒计时
RtcHibernateAware
在从休眠状态唤醒时启用RTC内存擦除,等同于启用AppleRTC补丁并使用HibernationFixup.kext(至少在Ivy Bridge和更高版本上使用,非必要请勿使用)
SignatureFixup
为True时签名值来自休眠映像,为False时签名值为零,内核将其复制到映像中
Boot Graphics
选项
说明
UI Scale
高分辨率显示器可设置为2
CPU
选项
说明
Frequency MHz
CPU频率(如3300-3.3GHz,建议不要使用)
BusSpeed kHz
主频(如133330,代表133MHz)
Type
CPU类型(如0x0901,代表i3)
QPI
CPU的总线速度(如5000-i3 2120,装饰作用)
C2/C4/C6
启用CPU的Turbo功能
Type
CPU类型(修饰功能)
Latency
进入C3状态时发出的C3进入等待时间,最大为0x3E8(1000),0x3E9表示SpeedStep未打开,笔记本用户可用0x00FA以启用电源管理
Devices
选项
说明
ResetHDA
音频控制器初始化,在操作系统重新引导时将编解码器恢复为中立状态,以使在冷启动后无法正常工作、但重启或唤醒后仍可以工作时使用,等效于使用CodecCommander.kext,或OpenCore配置文件的UEFI-Audio-ResetTrafficClass,或启动参数alctsel=1,或使用JackFix
AFGLowPowerState
消除空闲模式后音频输出上的刺耳声音,等效于DeviceProperties-Add-PCIRoot…-AFGLowPowerState-<01000000>
USB/ixOwnership
使USB注入保持启用状态而仅关闭所有权修复,解决卡Enabling Legacy Matching问题(也可在BIOS启用XHCI Hand Off解决)
USB/AddClockID
启用良好的深度睡眠(无法通过键盘或鼠标输入/退出),需要配合USBInjection启用,等效于DeviceProperties-Add-PCIRoot…-AAPL,clock-id
USB/HighCurrent
为iPad充电等提供更多电源(不适用于10.11及更新版本),等效于DeviceProperties-Add-PciRoot…-AAPL, HighCurrent
UseIntelHDMI
如果为TRUE,hda-gfx=onboard-1将被注入到GFX0和HDEF设备中,另外如果存在ATI或Nvidia HDMI设备,它们将被分配给onboard-2;如果为FALSE,则ATI或Nvidia设备以及HDAU设备(如果存在)将在onboard-1上
NoDefaultProperties
影响DSDT修复程序,并强制它们生成空的_DSM,仅适用于显示、声音、LAN和WiFi
IntelMaxValue
需开启SetIntelBacklight和SetIntelMaxBacklight,建议Sandy/IvyBridge用1808,Haswell/Broadwell用2776,Skylake/Kabylake用1295
Gui
选项
说明
ConsoleMode
将控制台驱动程序切换到请求的控制台模式,供shell、boot.efi、dumpueficalls等使用,0(默认)为禁用,Min/Max为最低/最高模式,分别适合慢速/快速控制台,输入数字为选择特定模式,在boot.log中可查,非必要不打开
Mouse/Mirror
单轴负移动速度
ShowOptimus
在某些BIOS中启用或禁用Optimus的情况下为其供电
KbdPrevLang
修复旧macOS使用英语以外的语言时弹出窗口中使用混合语言的问题,会导致启动Recovery HD时始终保持英语(仅在使用AptioMemoryFix/OsxAptioFixV3且无EmuVariableUefi时可用)
PlayAsync
同步声音播放
CustomIcons
自定义磁盘图标(将会在启动界面显示Mac中磁盘简介的图标)
Entries 自定义启动项。示例如下。
选项
内容
说明
Path
\EFI\path\to\file.efi
启动的EFI文件路径
Title
启动项名称
Type
启动项类型
Volume
磁盘GUID(无用时可删除该项)
Comment
注释(可不填)
Graphics Clover检测到Intel iGPU时,如果config.plist中不存在Graphics部分,则会自动启用Intel显卡注入。
选项
说明
VRAM
设置显存(单位为MB)
Load VBios
从EFI/CLOVER/OEM/[model]/ROM或EFI/CLOVER/ROM/[vendor]_[device].rom加载视频BIOS(用于不带任何外部文件的移动Radeon卡,或向仅包含UEFI视频BIOS的卡提供旧版视频BIOS)
DualLink
设为0可解决某些机型显示四分之一屏幕问题
Patch VBios
获得最高监视器分辨率支持(若分辨率不满足需求,可安装驱动CsmVideoDxe.efi)
HorizontalSyncPulseWidth
注入32可解决某些机型出现八个苹果的问题
VideoPorts
显卡上的端口数量(包括TVO和/或HDMI)
FBName
选择帧缓冲区名称
NVCAP
注入NVCAP(仅对Nvidia视频卡有效)
display-cfg
显卡CFG(仅对Nvidia视频卡有效)
RadeonDeInit
取消初始化Radeon卡(解决AMD Radeon HD6xxx及更高版本在睡眠后无法唤醒的问题)
Kernel and Kexts Patches
选项
说明
KernelCpu
消除某些与旧系统中不受支持的CPU(例如Yonah,Atom或Haswell)相关的内核混乱
AppleRTC
修复RTC问题,确保重启后不会重置BIOS
KernelLapic
HP笔记本电脑存在Lapic问题,可以通过使用boot参数cpus=1
或使用此选项来解决
KernelHaswellE
阻止Haswell-E兼容性检查
ATI Connectors Controller
修改AMD视频卡控制器从而驱动AMD卡
KernelPM
阻止写入MSR 0xe2(适用于10.8.5和10.9内核),防止在使用XCPM时在启动时引起内核恐慌
AppleIntelCPUPM
与KernelPM相同,但是使用AppleIntelCPUPowerManagement时
KernelXCPM
适用于IvyBridge CPU的XCPM补丁
InfoPlistPatch
修补kext的Info.plist
Rt variables
选项
说明
BooterConfig
一般为0x28
CsrActiveConfig
0x0-启用SIP,0x3-部分禁用SIP(允许加载未签名的kexts),0x3E7-完全禁用SIP
ROM / UseMacAddr0
将板载MAC地址作为ROM
SMBIOS
选项
说明
Trust
优先考虑在SMBIOS或SPD中找到的内存描述符值(Mac中的内存描述不正确时需禁用)
Slots AAPL injections
填充PCI列表(一般不使用此法)
System Paramaters
选项
说明
BacklightLevel
监控亮度水平,最大值为0xFFFF(全背光),最小值为0x0(无),默认值为0x0501(只有部分系统会受到此参数的影响,台式机可忽略)
InjectSystemID
设置为YES时注入设备树ID(IODeviceTree:/efi/platform/system-id),NO时注入运行时变量(IODeviceTree:/options/platform-uuid)
InjectKexts
是否从EFI/CLOVER/kexts/10.xx中注入kexts
配置文件简化 自动生成 在终端输入以下命令自动生成config.plist,位置默认在个人文件夹目录。
1 /usr/local/bin/clover-genconfig >config.plist
手动修改
选项
操作
ACPI
禁用所有更名补丁
Gui
Scan处只勾选Entries和Tool以在引导界面出现UEFI Shell和Boot Options菜单
Kernel and Kext Patches
禁用四个选项卡中所有的自带项
System Parameters
删除BacklightLevel
OcQuirks Clover 5120移植了OpenCore的OpenRuntime.efi以替代较旧的内存管理驱动,Big Sur需要使用该方法驱动。需更新Clover Configurator至5.16及以上以适配新增的OcQuirks选项。
下载链接如下。
1 https://github.com/ReddestDream/OcQuirks
移除UEFI目录中的内存管理驱动,包括AptioMemoryFix、OsxAptioFix3Drv、OsxAptioFix2Drv、OsxAptioFixDrv、OsxLowMemFixDrv、OsxAptioFix2Drv-free2000。
将OcQuirks.efi、OpenRuntime.efi和OcQuirks.plist放到Clover的Drivers文件夹中,重启即可。若未找到OcQuirks,则采用以下默认值。
Quirk
默认值
说明
AvoidRuntimeDefrag
True
开启后会修复UEFI的运行服务,例如日期、时间、NVRAM、电源控制等
DevirtualiseMmio
False
开启后会减少Stolen内存占用空间,扩大Slide=N值的范围,适用于大多数主板
DisableSingleUser
False
开启后会禁止Cmd+S和-s的使用,使设备更加接近于T2白苹果
DisableVariableWrite
False
开启后会禁止NVRAM写入,在Z390/HM370等没有原生macOS支持NVRAM的主板上需要开启
DiscardHibernateMap
False
开启后会重用原始休眠内存映射,仅某些旧硬件需要
EnableSafeModeSlide
True
开启后会允许在安全模式下使用Slide值
EnableWriteUnprotector
True
开启后会在执行期间删除CR0寄存器中的写入保护
ForceExitBootServices
True
开启后会确保ExitBootServices即使在MemoryMap发生更改时也能调用成功(除非有必要,否则请勿使用)
MmioWhitelist
Array
设计为用plist dict值填充,描述使用DevirtualiseMmio的Quirk时对特定固件功能至关重要的地址
ProtectMemoryRegions
False
开启后会用于修复人为制造和睡眠唤醒的问题(AvoidRuntimeDefrag已经修复了这个问题,所以尽可能避免使用这个Quirk)
ProtectSecureBoot
False
避免操作系统对UEFI安全启动变量(db/dbx/PX/KEK)进行写入(主要用于避免Insyde主板和MacPro 5,1的NVRAM问题)
ProtectUefiServices
False
保护UEFI服务不被固件覆盖
ProvideConsoleGopEnable
True
控制台句柄缺少图形输出协议时需要
ProtectCsmRegion
False
ProvideCustomSlide
True
如果Slide值存在冲突,此选项将强制macOS使用一个伪随机值(只有在遇到OnlyN/256slidevaluesareusable!时需要)
RebuildAppleMemoryMap
True
生成与macOS兼容的内存映射
SetupVirtualMap
True
开启后会将SetVirtualAddresses调用修复为虚拟地址
SignalAppleOS
False
通过OS Info将macOS加载的信息报告给其它操作系统,用于在Windows中为MacBook启用iGPU
SyncRuntimePermissions
True
同步运行时环境的内存权限
ShrinkMemoryMap
False
QuirksProvideConsoleGopEnable
True
主题设置 1 https://www.insanelymac.com/forum/topic/282787-clover-v2-instructions/page/3/?tab=comments#comment-2645125
相关资源 配置文件在线编辑 1 https://cloudclovereditor.altervista.org/cce/index.php
编译源码 1 https://www.insanelymac.com/forum/topic/282787-clover-v2-instructions/page/2/?tab=comments#comment-2250955
OpenCore OpenCore是取代Clover的新引导程序,从0.6.2版本起支持从10.4开始的操作系统,可使Mac拥有更快的启动速度。OpenCore也支持包括MacPro 5,1和虚拟机在内的大部分较新的Mac型号。
注意,OpenCore不支持MBR,只支持GPT。OpenCore不支持基于UEFI的VBIOS补丁,但该补丁可在Mac中完成。
下载链接如下。
1 https://github.com/acidanthera/OpenCorePkg/
OpenCore与Clover一个很重要的不同在于,每个SSDT和kext都需要在config.plist中指定启动顺序。因此每次对ACPI和Kexts文件夹进行变动时,都需要修改config.plist。
在OpenCore主界面,点击空格以显示全部驱动器及辅助选项。
【过时】AppleSupportPkg
包括ApfsDriverLoader、FwRuntimeServices、VBoxHfs、VerifyMsrE2。
1 https://github.com/acidanthera/AppleSupportPkg
在macOS中,可通过在终端上输入以下命令获取OpenCore版本信息。
1 nvram 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:opencore-version
部分说明 kexts注入 流程为使现有的预链接内核和kexts做好注入准备->使用新的kexts在EFI环境中重建缓存->添加此新缓存。
操作系统不可知的预链接内核格式自10.6(v2)以来一直保持不变,且所涉及的修补少,因此该方法稳定性高。OpenCore还支持预链接内核(v1,10.4/10.5),无缓存,支持Mkext和KernelCollections,因此支持所有Intel版本的Mac。
不能从OpenCore注入IO80211Family,否则将导致内核panic。
SMBIOS与ACPI 默认情况下,OpenCore将假定对所有操作系统注入ACPI和SMBIOS信息,以提供BootCamp支持。要启用仅限Mac的SMBIOS注入,需设置Kernel-Quirks-CustomSMBIOSGuid为True,PlatformInfo-UpdateSMBIOSMode为Custom。这两个quirk在未来可能会无法使用。
DEBUG和RELEASE DEBUG版本可以极大地帮助调试启动问题,但是会增加一些明显的启动时间延迟。RELEASE版本引导时间短,但是在OpenCore中没有提供有用的调试信息,这使得故障排除更加困难。
从Clover转移 搭建引导 将下载的OpenCore压缩包解压,打开后将EFI文件夹复制到EFI分区下。
VBoxHfs和AudioDxe已和OpenCorePkg打包在一起,因此已经无需再额外下载AppleSupportPkg(同时该项目已经存档),只需下载OpenCorePkg和OcBinaryData即可。
复制Docs下的Sample.plist到EFI/OC,并更名为config.plist。若模拟2011年即以前的Mac机型,则复制SampleFull.plist。按照需求,将OpenCorePkg、OcBinaryData中的驱动放入Drivers文件夹,将OcBinaryData中Resources内的文件放入Resources文件夹。
开始时配置应尽量简单,建议初始配置如下。务必保证所有kexts均为最新版。完成文件放置后,根据配置文件详解部分,以Clover的config.plist为基础,配置OpenCore的config.plist。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ├── ACPI ├── Resources │ └── OcBinaryData ├── Drivers │ ├── HfsPlus.efi │ └── OpenRuntime.efi ├── Kexts │ ├── Lilu.kext │ ├── VirtualSMC.kext │ └── WhateverGreen.kext ├── Tools │ ├── ChipTune.efi │ ├── ... │ └── VerifyMsrE2.efi ├── OpenCore.efi └── config.plist
【进阶】Drivers的选择
对于UEFI机器,使用以下驱动即可。
对于BIOS机器则需要以下驱动。
1 2 3 OpenUsbKbDxe HfsPlusLegacy OpenPartitionDxe # OpenDuet用户(即没有 UEFI)将内置此驱动程序,仅在10.7-10.9使用
对于使用32位CPU的机器,还需要HfsPlus32,下载链接如下。
1 https://github.com/acidanthera/OcBinaryData/blob/master/Drivers/HfsPlus32.efi
【进阶】OpenRuntime的说明
若使用OpenRuntime,且想获得和AptioMemoryFix类似的行为,需要使用以下Quirks。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ProvideConsoleGop(UEFI Quirk) AvoidRuntimeDefrag DiscardHibernateMap EnableSafeModeSlide ForceExitBootServices ProvideCustomSlide // 需根据机型自行尝试是否启用 SyncRuntimePermissions SetupVirtualMap ProtectMemoryRegions EnableWriteUnprotector RebuildAppleMemoryMap // 可选,建议启用 DevirtualiseMmio ProtectUefiServices // 可选,不建议启用 DiscardHibernateMap ForceExitBootServices
kexts转移 OpenCore支持Clover下使用的大部分kexts,但有部分kexts已经被集成,具体如下。
名称
备注
NullCPUPowerManagement
整合到Kernel-Emulate-DummyPowerManagement
BT4LEContinuityFixup
整合到Kernel-Quirks-ExtendBTFeatureFlags
消除冲突 打开终端并输入以下命令。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 # 删除Clover设置面板 sudo rm -rf /Library/PreferencePanes/Clover.prefPane # 删除ESP分区下的NVRAM.plist rm -rf /Volumes/[ESP分区]/NVRAM.plist # 删除RC脚本 rm -rf "/etc/rc.clover.lib" rm -rf "/etc/rc.boot.d/10.save_and_rotate_boot_log.local" rm -rf "/etc/rc.boot.d/20.mount_ESP.local" rm -rf "/etc/rc.boot.d/70.disable_sleep_proxy_client.local.disabled" rm -rf "/etc/rc.boot.d/80.save_NVRAM_plist.local" rm -rf "/etc/rc.shutdown.local" rm -rf "/etc/rc.boot.d" rm -rf "/etc/rc.shutdown.d" # 删除Clover新开发的NVRAM守护程序CloverDaemonNew launchctl unload '/Library/LaunchDaemons/com.slice.CloverDaemonNew.plist' rm -rf '/Library/LaunchDaemons/com.slice.CloverDaemonNew.plist' rm -rf '/Library/Application Support/Clover/CloverDaemonNew' rm -rf '/Library/Application Support/Clover/CloverLogOut' rm -rf '/Library/Application Support/Clover/CloverWrapper.sh' # 获取logoutHook路径并删除LogoutHook.command sudo defaults read com.apple.loginwindow LogoutHook sudo rm -rf $(sudo defaults read com.apple.loginwindow LogoutHook) # 清空LogoutHook的触发设置 sudo defaults delete com.apple.loginwindow LogoutHook
完成后可重启并重置一次NVRAM,然后通过OpenCore引导,查看是否成功。
若成功,则可复制Clover的kext到Kexts文件夹,并继续以下操作完善。若由于SSDT/DSDT而无法进入系统,即应当通过以下操作修复。
修改SSDT/DSDT 由于OpenCore中的SSDT、DSDT、SMBIOS等将会对所有操作系统生效,因此需要修改SSDT和DSDT以使其只对Mac生效。具体方法为在代码生效部分加上以下框架。
1 2 3 4 If (_OSI ("Darwin")) { // 原本的代码 }
若不是自己编写的SSDT,可直接用OC-little包中的SSDT替换。
修改后的文件在各引导器通用。为验证效果,将修改过的SSDT和DSDT放回Clover中,重启后在终端输入以下命令。如果日志中不存在ACPI Error,则修改成功,可将文件复制到OpenCore的ACPI文件夹。
1 log show --last boot | grep -Ei "ACPI"
摆脱ACPI Quirks OpenCore没有Clover众多的ACPI Quirks,需要通过相关SSDT实现,列表如下。
ACPI Quirks
取代方法
FixIPIC
OC-little声卡IRQ补丁中的SSDT-IPIC
FixSBUS
OC-little注入设备中的SBUS_SMBU补丁(或SSDT-SBUS-MCHC)
FixShutdown
OC-little的PTSWAK综合补丁,需要添加其中的EXT1插件补丁或应用_PTS到ZPTS补丁并使用FixShutdown-USB-SSDT
FixDisplay
使用WhateverGreen和定制缓冲帧补丁
FixIPIC
使用SSDTTime的FixHPET-Patch out IRQ Conflicts
FixAirport
使用AirportBrcmFixup
AddMCHC
OC-little添加缺失的设备中的SSDT-MCHC/SSDT-SBUS-MCHC
FixHDA
AppleALC能够处理这个问题
FakeLPC
配置文件中DeviceProperties-Add-PciRoot…-device-id
FixHPET/FixRTC/FixTMR
OC-little声卡IRQ补丁中的SSDT-HPET_RTC_TIMR-fix或SSDTTime的FixHPET-Patch out IRQ Conflicts
FixSATA
开启OpenCore中名为ExternalDiskIcons的Quirk,也可使用innie.kext
FixADP1
见下方说明
FixRTC
OC-little的声卡IRQ补丁
FixTIMR
OC-little的声卡IRQ补丁
AddPNLF
OC-little注入设备中的PNLF注入方法(SSDT-PNLF)
AddIMEI
使用WhateverGreen或SSDT-SBUS-MCHC对于Z77上的Sandy Bridge或Z67上的IvyBridge,需用SSDT-IMEI仿冒IMEI
FixIntelGfx
使用WhateverGreen
AddHDMI
使用WhateverGreen
DropTables
配置文件中ACPI-Delete
DisableASPM
在设备属性(DeviceProperties)中分别添加相关设备的PCI总线位置并注入属性pci-aspm-default | DATA | <00>
HaltEnabler
配置文件中ACPI-Quirks-FadtEnableReset设为True
PluginType
OC-little注入X86中的SSDT-PLUG补丁
NeverHibernate
配置文件中Misc-Boot-HibernateMode-None
Generate P/C States
六代以前CPU才需要设置,可用ssdtPRGen.sh生成对应的SSDT
降压和超频
使用sVoltageShift
AFGLowPowerState
在设备属性(DeviceProperties)中注入属性AFGLowPowerState | DATA | <01000000>
ResetHDA
安装JackFix以及配套的守护进程
flagstate
若设置为0,则在配置文件中的NVRAM-Add-4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14添加flagstate | Data | <00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000>
UIScale
可设置为1/2,在配置文件中的NVRAM-Add-4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14添加UIScale | Data | <01(02)>
CPU Type
配置文件中PlatformInfo-Generic-ProcessorType
HWPEnable
使用HWPEnable.kext,手动设置MSR 0x770
ForceHPET
配置文件中UEFI-Quirks-ActivateHpetSupport
对于FixADP1,可直接执行重命名change AC0_ to ADP1。根据原始DSDT中对AC0_设备的定义,可能还需要用SSDT为ADP1设备注入Name (_PRW, Package (0x02) {0x1C,0x03}),SSDT代码如下。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 DefinitionBlock ("", "SSDT", 2, "SUKA", "FixADP1", 0x00001000) { External (_SB_.ADP1, DeviceObj) External (_SB_.AC0_, DeviceObj) If (_OSI ("Darwin")) { Scope (\_SB) { Device (ADP1) { Name (_ADR, Zero) Name (_PRW, Package (0x02) { 0x1C, 0x03 }) Method (_STA, 0, NotSerialized) { Return (0x0F) } } } } }
也可不进行重命名,直接使用以下SSDT。注意该SSDT已注入Name (_PRW, Package (0x02) {0x1C,0x03})。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 DefinitionBlock ("", "SSDT", 2, "SUKA", "FixADP1", 0x00001000) { External (_SB_.ADP1, DeviceObj) External (_SB_.AC0_, DeviceObj) If (_OSI ("Darwin")) { Scope (\_SB) { Scope (AC0_) { Method (_STA, 0, NotSerialized) { Return (Zero) } } Device (ADP1) { Name (_ADR, Zero) Name (_PRW, Package (0x02) { 0x1C, 0x03 }) Method (_STA, 0, NotSerialized) { Return (0x0F) } } } } }
【进阶】对于以上SSDT的说明
以上SSDT用于在不使用更名补丁的情况下进行更名,模版如下。
1 https://github.com/dortania/OpenCore-Install-Guide/blob/master/extra-files/Rename-SSDT.dsl
修改补丁形式 KernelToPatch和KextToPatch在OpenCore中的条目与在Clover有所不同。
具体而言,在OpenCore中,InfoPlistPatch没有奇偶校验,MatchOS被替换为MinKernel和MaxKernel,TgtBridge被替换为Base。同时,KernelToPatch和KextToPatch都被放置于配置文件的Kernel-Patch下,需要使用Identifier标示是适用于Kernel还是Kext。若适用于Kernel,直接填写kernel
即可。若适用于kext,则填写kext的标识符,如com.apple.iokit.IOGraphicsFamily
。
注意以下Quirk会应用对应的Patch。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 # Kernel Patches # Kernel-Quirks-AppleXcpmCfgLock MSR 0xE2 _xcpm_idle instant reboot # Kernel-Quirks-AppleXcpmExtraMsrs _xcpm_bootstrap xcpm_pkg_scope_msrs _xcpm_SMT_scope_msrs 1 _xcpm_SMT_scope_msrs #2 _xcpm_core_scope_msrs _xcpm_performance_patch xcpm MSR Patch 1 and 2 /0x82D390/MSR_PP0_POLICY 0x63a xcpm support patch 1 and 2 # Kext Patches # Kernel-Quirks-PanicNoKextDump Disable Panic Kext logging # Kernel-Quirks-ExternalDiskIcons AppleAHCIPort External Icon Patch1 # Kernel-Quirks-ThirdPartyDrives SSD Trim Enabler # Kernel-Quirks-XhciPortLimit USB Port Limit Patches # AppleALC+WhateverGreen FredWst DP/HDMI patch # Kernel-Quirks-IncreasePciBarSize IOPCIFamily Patch # WhateverGreen Disable board-ID check # AppleALC AppleHDA Patch # NVMeFix # High Sierra及更新系统无需该Patch IONVMe Patches
引导更新 下载新的引导包后,覆盖EFI分区中的EFI/BOOT/BOOTx64.efi,EFI/OC/OpenCore.efi,EFI/OC/Drivers/OpenRuntime,并更新其它Drivers。
通过以下脚本比较新版配置文件与旧版的区别。
1 https://github.com/corpnewt/OCConfigCompare
也可在终端输入以下命令进行。
完成后可通过ocvalidate检查是否符合规范。在终端输入以下命令即可。
1 2 3 cd [OC文件夹路径]/Utilties/ocvalidate chmod +x ocvalidate ./ocvalidate [配置文件名称]
配置文件生成 可通过工具自动生成。
1 2 3 4 5 # Opencore Gen-X https://github.com/Pavo-IM/OC-Gen-X # AXIVO OpenCore Plistlib Generator http://github.com/axivo/opencore
配置文件详解 用Xcode或ProperTree打开config.plist,也可使用OpenCore Configurator。根据以下内容进行配置。
【进阶】ProperTree的Clean Snapshot功能
通过该功能,可将路径下的所有SSDT、Kexts和Drivers添加到路径中。
ACPI 对ACPI的修补按照Patch-Delete-Add-Quirks的顺序执行。所有对ACPI的更改会在所有操作系统上生效。
Add 此处需添加EFI/OC/ACPI下的DSDT/SSDT路径。以添加电池热补丁SSDT-BAT0.aml为例,格式如下。
选项
设置
说明
Comment
Battery
注释(可不填)
Enabled
True
启用/禁用
Path
SSDT-BAT0.aml
DSDT/SSDT路径
注意应把DSDT放到最前面,而SSDT的顺序一般可以随意。
Delete 禁用某个ACPI表,常用于禁用DAMR来关闭VT-d,一般无需修改。
当序列需要在多处替换的时候,注意不要指定表的签名。
选项
说明
All
设置为true则所有符合条件的ACPI表都会被舍弃,否则只舍弃第一个匹配到的
Comment
注释(可不填)
Enabled
启用/禁用
OemTableId
将表的OEM ID匹配为此处所填的值,全部为0时忽略
TableLength
将表的大小匹配为此处所填的值,填0时忽略
TableSignature
将表的签名匹配为此处的值,全部为0时忽略
Patch 对DSDT(SSDT)的内容进行查找和替换,相当于Clover里的改名补丁。Find和Replace的长度必须完全一样,否则ACPI表可能会被破坏、导致系统不稳定。必要时可使用NOP填充剩余区域。
如EC0->EC补丁,书写格式如下。
选项
设置
说明
Base
/
为重命名补丁指定一个ACPI路径,让OC通过取得该路径的偏移量来查找(或替换)重命名补丁,留空时忽略。只有正确的绝对路径被支持,如\_SB.PCI0.LPCB.HPET
,目前支持的Object类型有Device、Field、Method
BaseSkip
/
在重命名补丁被应用之前跳过多少次Base指定的路径,如果将此值设置为0,补丁将会被应用于指定Base中的所有匹配
Comment
change EC0 to EC
Comment
Count
0
执行次数(0代表不限制)
Enabled
True
启用/禁用
Find
4543305F
寻找的十六进制内容
Limit
0
要搜索的最大字节数(0代表遍历整个ACPI表)
Mask
/
查找比较期间使用的数据按位掩码,通过忽略未屏蔽(设置为零)位来进行模糊搜索。可以设置为空数据以忽略,否则此值的长度必须和Replace的长度相等
OemTableId
/
将表的OEM ID匹配为此处所填的值,全部为0时忽略
Replace
45435F5F
替换为的十六进制内容
ReplaceMask
/
替换数据期间使用的数据按位掩码,通过忽略未屏蔽(设置为零)位来进行模糊搜索。可以设置为空数据以忽略,否则此值的长度必须和Replace的长度相等
Skip
0
跳过前N个,0表示不跳过
TableLength
0
将表的大小匹配为此处所填的值,填0时忽略
TableSignature
/
将表的签名匹配为此处的值,全部为0时忽略
通过Count和Skip的应用,可以达成Clover下Tgtbridge的效果。具体而言,若想将DSDT中的某一特定字段重命名,则可在Skip下填写在该字段之前有多少个同名字段,在Count下填写该改名规则需执行几次。如现需将DSDT中的第54和55个_PRW改为XPRW,则Skip填53,Count填2。
对于华擎、华硕、微星主板,可能会遇到RTC问题而无法进入系统。此时可应用以下补丁。
选项
设置
Comment
RTC fix
Count
0
Enabled
True
Find
A00A9353 54415301
Limit
0
Mask
/
OemTableId
/
Replace
A00A910A FF0BFFFF
ReplaceMask
/
Skip
0
TableLength
0
TableSignature
/
Quirks
选项
设置
说明
FadtEnableReset
NO
在FADT表中提供寄存器复位标志,用于在旧硬件上修复重启和关机(如果遇到关机变重启可尝试打开,非必要不启用)
NormalizeHeaders
NO
清除ACPI头字段以解决macOS ACPI实现错误导致的引导崩溃(macOS 10.13/某些主板需要打开)
RebaseRegions
NO
尝试试探性地重新定位ACPI内存区域,使用自定义DSDT则必须开启(换硬件、升级BIOS等对硬件的操作会对ACPI表产生影响)
ResetHwSig
NO
将FACS表中HardwareSignature的值重置为0,休眠相关(重启后因无法维持硬件签名而导致从休眠中唤醒的硬件需要开启,台式机不需要)
ResetLogoStatus
NO
将BGRT表中Displayed状态字段重置为 false,适用于提供BGRT表、但随后无法处理屏幕更新的固件,无法在有BGRT表的系统上显示OEM Windows标志的硬件需要开启
Booter MmioWhitelist 描述在启用DevirtualiseMmio这个Quirk时特定固件能够运作的关键地址。
默认的第一项是为Haswell芯片提供的内存寻址修复,第二项是ACPI、PCI device同时释放到内存时发生0x1000内存地址被占用而卡在PCI Configration的问题修复。一般无需修改,如果开机卡在PCI…可以尝试开启Item 1下的Patch。
选项
说明
Address
排除在外的MMIO地址,其内存描述符应被DevirtualiseMmio虚拟化(保持不变),该值所在的区域会被分配一个虚拟地址,在操作系统运行期间固件能够直接与该内存区域进行通信。这里写入的地址必须是内存映射的一部分,具有EfiMemoryMappedIO类型和EFI_MEMORY_RUNTIME属性(最高 bit),可使用调试日志找到可能的地址
Comment
注释(可不填)
Enabled
启用/禁用
Patch 在启动器中执行二进制补丁。
选项
说明
Arch
启动器补丁架构,可为Any/i386/x86_64
Comment
注释(可不填)
Count
执行次数(0代表不限制)
Enabled
启用/禁用
Find
要查找的数据,必须与Replace的大小相等
Identifier
Apple代表macOS启动器(通常是boot.efi),带有后缀的名称(如 bootmgfw.efi)代表特定的启动器,Any或空字符串(默认)代表任何启动器
Limit
搜索的最大字节数,设置为0来查找整个启动器
Mask
在查找比较的过程中使用数据位掩码。允许通过忽略未被屏蔽的bit(设置为0)进行模糊搜索。若留空则代表忽略,否则其大小必须等于Find
Replace
一个或多个字节的替换数据
ReplaceMask
替换时使用的数据位掩码。允许通过更新掩码(设置为非0)来进行模糊替换。若留空则代表忽略,否则其大小必须等于Replace
Skip
在替换前要跳过的发现事件数
Quirks
选项
内容
说明
AllowRelocationBlock
NO
允许通过重定位块来启动macOS,需要同时启用ProvideCustomSlide(必需)和AvoidRuntimeDefrag(通常情况下)。不兼容某些硬件及macOS 11,可能需要用EnableSafeModeSlide来替代
AvoidRuntimeDefrag
YES
修复UEFI Runtime服务,提供对可变存储的支持(日期/时间/NVRAM/电源控制等)。除Apple和VMware固件外,都需要启用此选项
DevirtualiseMmio
NO
从选定的MMIO区域中删除Runtime属性,通过删除已知内存区域的Runtime bit减少Stolen内存占用空间,扩大Slide=N值的范围,通常释放64-256MB的内存,具体数值会显示在调试日志中。若要添加slide=1以使用连续性的内存注入方式则关闭,不一定与目标主板兼容,通常对所有固件都有用(除了一些非常古老的固件,如Sandy Bridge)
DisableSingleUser
NO
禁用单用户模式,更接近基于T2的计算机
DisableVariableWrite
YES
禁止NVRAM写入,需要OpenRuntime.efi提供的OC_FIRMWARE_RUNTIME协议的实现,在Z390/HM370等没有原生macOS支持NVRAM的主板上需要开启
DiscardHibernateMap
NO
开启后会重用原始休眠内存映射,强制XNU内核忽略新提供的内存映射、认定设备从休眠状态唤醒后无需对其更改。仅某些旧硬件需要(Insyde固件的Ivy Bridge笔记本电脑,如Acer V3-571G),引导Windows时必须启用(因为Windows要求S4唤醒后保留运行内存的大小和位置)
EnableSafeModeSlide
NO
修补引导加载程序以在安全模式下启用KASLR,允许在安全模式下使用Slide值(默认情况下安全模式会使用slide=0),只有当ProvideCustomSlide启用后才可以启用本Quirks。启动到安全模式失败时启用
EnableWriteUnprotector
YES
在执行期间删除CR0寄存器中的写入保护(WP bit),绕过其代码页的RX权限,保证NVRAM能正常写入而不受到UEFI内的一些服务的影响。需要配合OpenRuntime.efi里的OC_FIRMWARE_RUNTIME协议来实现,可能会破坏固件安全性,若固件支持内存属性表MAT,应优先使用RebuildAppleMemoryMap
ForceExitBootServices
NO
在失败时用新的内存映射(Memory Map)重试ExitBootServices,确保ExitBootServices即使在MemoryMap发生更改时也能调用成功,让非常老旧的主板也能使用内存寻址(是否启用这个Quirk取决于是否遇到了Early Boot故障,非必要勿使用)
ProtectMemoryRegions
NO
与AvoidRuntimeDefrag类似,保护内存区域免于不正确的读写(是否启用这一Quirk取决于是否遇到了休眠、睡眠无法唤醒、启动失败或其他问题,一般只有非常旧的固件才需要启用)
ProtectSecureBoot
YES
保护UEFI安全启动被写入,尝试从操作系统写入db、dbx、PK和KEK时生成报告。避免碎片整理导致的NVRAM相关问题,如Insyde或MacPro5,1
ProtectUefiServices
YES
保护UEFI服务不被固件覆盖。某些现代固件(包括硬件和 VMware 之类的虚拟机)可能会在加载驱动及相关操作的过程中,更新UEFI服务的指针,这一行为会直接破坏其他影响内存管理的Quirk,如DevirtualiseMmio、ProtectMemoryRegions、RebuildAppleMemoryMap。该Quirk解决Z390系列主板卡开机卡++++的问题(在VMware上是否需要开启这个Quirk取决于是否有Your Mac OS guest might run unreliably with more than one virtual core.这样的消息)
ProtectCsmRegion
NO
开启后会用于修复人为制造和睡眠唤醒的问题(AvoidRuntimeDefrag已经修复了这个问题,故避免使用)
ProvideCustomSlide
YES
为低内存设备提供自定义KASLR slide 值,如果Slide值存在冲突,此选项将强制macOS使用一个伪随机值,同时确保slide参数不会被传递给操作系统(遇到Only N/256 slide values are usable!时需要)
ProvideMaxSlide
YES
当更大的KASLR slide值不可用时,手动提供最大KASLR slide值。当ProvideCustomSlide启用、并且随机化的slide落入不可用的范围时,如果出现随机的启动失败,则有必要开启这个Quirk
RebuildAppleMemoryMap
NO
重新生成内存地图来匹配苹果系统,遇到内存问题导致无法开机时可尝试使用。与EnableWriteUnprotector存在冲突关系,若开启此项则需关闭另一项,同时此项需要与SyncRuntimePermissions搭配使用。根据是否遇到第一阶段启动失败决定是否启用这一Quirk,在支持内存属性表MAT的平台上使用,在使用OpenDuetPkg时一般不需要启用这个Quirk,但如果要启动macOS 10.6或更早的版本则可能需要启用
SetupVirtualMap
YES
建立虚拟内存并对物理内存进行映射,将SetVirtualAddresses调用修复为虚拟地址(是否启用这个Quirk 取决于是否遇到了Early Boot故障,具有内存保护支持的新固件不支持该Quirk)
ShrinkMemoryMap
NO
有巨大且不兼容内存映射的主板需要开启(非必要勿使用)
SignalAppleOS
NO
通过OS Info将macOS加载的信息报告给其它操作系统。总是向OS Info报告启动的是macOS,适用于Mac设备,用于在Windows中启用iGPU
SyncRuntimePermissions
NO
更新运行时环境的内存权限。通过更新内存映射和内存属性表修正硬件在注入内存时无法注入权限的问题。是否开启这一Quirk取决于是否遇到Early Boot故障,一般此类问题存在2018年后的主板
注意,当AvoidRuntimeDefrag不起作用时,可使用以下内核补丁。
键
类型
值
Comment
String
AvoidRuntimeDefrag workaround
Base
String
_acpi_count_enabled_logical_processors
Count
Integer
1
Enabled
Boolean
True
Find
Data
Identifier
String
Kernel
Limit
Integer
0
Mask
Data
MaxKernel
String
MinKernel
String
20.0.0
Replace
Data
B804000000C3
ReplaceMask
Data
Skip
Integer
0
DeviceProperties Add 添加的属性只有在不存在且未被屏蔽的情况下才会被设置。
此处内容可以用Hackintool生成后直接复制,注意设备路径的修改。主要路径如下。
路径
用途
PciRoot(0x0)/Pci(0x1f,0x3)
注入音频Layout ID
PciRoot(0x0)/Pci(0x2,0x0)
注入缓冲帧补丁
主要属性列表如下。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 # 硬盘 built-in # USB device-id device_type device_type # IMEI device-id vendor-id # WIFI name compatible # LAN device-id compatible vendor-id # XHCI device-id device_type: UHCI device_type: OHCI device_type: EHCI ## 以下适用于device_type: EHCI device-id AAPL,current-available AAPL,current-extra AAPL,current-available AAPL,current-extra AAPL,current-in-sleep built-in ## 以下适用于device_type: XHCI device-id AAPL,current-available AAPL,current-extra AAPL,current-available AAPL,current-in-sleep built-in
可通过设置外置硬盘的build-in属性为00以设置为内建。其中外置硬盘的设备路径可以通过gfxutil找到,具体为在系统PCI列表中找到类似AHCI Controller或NVM Express Controller的PCI名称,然后输入以下命令。
1 2 # pci0000,0000为上面找到的PCI名称 gfxutil -f pci0000,0000
添加该条目,并设置以下键即可。
键
类型
值
built-in
Data
AA==
Delete 删除/屏蔽设备属性,等同于Clover里的ACPI重命名_DSM→XDSM=>TgtBridge。一般无需修改。
常见属性
属性
说明
device-id
设备标识符
vendor-id
供应商标识符
AAPL,ig-platform-id
Intel GPU缓冲帧标识符,用于在Ivy Bridge上选择缓冲帧区域
AAPL,snb-platform-id
Intel GPU缓冲帧标识符,用于在Sandy Bridge上选择缓冲帧区域
layout-id
AppleHDA的音频布局
Kernel Add 此处需要填写kexts的具体内容,OpenCore会按照顺序执行,故需确保Lilu.Kext始终在第一位。其他优先级高的为Lilu的插件,如VirtualSMC、AppleALC、WhateverGreen等。
若不知道kexts的加载顺序或加载内容,可在Clover Configuration中选择boot.log选项卡,并点击Generate log生成启动日志,在日志中搜索对应kext即可。
也可以通过检查Kext驱动中Info.plist的OSBundleLibraries值的方法来确定其依赖驱动的加载顺序,OSBundleLibraries中的任何依赖驱动都必须在此Kext之前加载。
选项
内容
说明
Arch
Any
kext架构(Any/i386/x86_64)
BundlePath
Lilu.kext
kext的名称,对于直接位于EFI/OC/Kexts下的kext直接填写名字,对于某一个内核拓展的子拓展则填写具体路径
Comment
注释(可不填)
Enabled
YES
启用/禁用
ExecutablePath
Contents/MacOS/Lilu
隐藏在kext中的实际可执行文件的路径,可通过右键单击并选择显示包内容
查看,通常为 Contents/MacOS/[kext]
),没有可执行文件的空壳kexts则留空(如USBPorts.kext)
MaxKernel
支持的最大系统版本(19
为10.15,18
为10.14),一般留空
MinKernel
支持的最小系统版本
PlistPath
Contents/Info.plist
隐藏在kext中的Info.plist路径
当Plugins内有kexts时,需一并加载,格式如下。
选项
内容
BundlePath
A.kext/Contents/PlugIns/B.kext
ExecutablePath
Contents/MacOS/B
PlistPath
Contents/Info.plist
此处需注意VoodooPS2Controller与VoodooI2C的注入。注入顺序如下,注意需放到kexts加载的最后。
1 2 3 4 5 6 7 8 9 10 VoodooPS2Controller.kext VoodooPS2Controller.kext/Contents/PlugIns/VoodooInput.kext VoodooPS2Controller.kext/Contents/PlugIns/VoodooPS2Keyboard.kext VoodooPS2Controller.kext/Contents/PlugIns/VoodooPS2Mouse.kext VoodooPS2Controller.kext/Contents/PlugIns/VoodooPS2Trackpad.kext VoodooI2C.kext/Contents/PlugIns/VoodooGPIO.kext VoodooI2C.kext/Contents/PlugIns/VoodooI2CServices.kext VoodooI2C.kext/Contents/PlugIns/VoodooInput.kext // 需禁用该项,防止与VoodooPS2Controller中的VoodooInput冲突 VoodooI2C.kext VoodooI2CHID.kext
Block 屏蔽系统里的kext。
选项
内容
说明
Arch
Any
kext架构(Any/i386/x86_64)
Comment
注释(可不填)
Enabled
YES
启用/禁用
Identifier
Kext Bundle标识符
MaxKernel
支持的最大系统版本(19
为10.15,18
为10.14),一般留空
MinKernel
支持的最小系统版本
在Identifier中输入kext的捆绑包标识符即可,一般为com.apple.driver.[kext]
,可在关于本机-系统报告…-功能扩展中查到。部分kext的捆绑包标识符如下。
名称
捆绑包标识符
备注
AppleIntelLpssI2C
com.apple.driver.AppleIntelLpssI2C
AppleIntelLpssI2CController
com.apple.driver.AppleIntelLpssI2CController
AppleRTC
com.apple.driver.AppleRTC
禁用RTC关机校验(Base为__ZN8AppleRTC14updateChecksumEv)
Emulate 一般无需使用。
EAX、EBX、ECX、EDX值的序列,用来取代XNU内核中的CPUID(1)调用。通常来讲只需要处理EAX的值,因为它代表完整的CPUID,剩余的字节要留为0。
用于对不支持的CPU型号启用支持(如奔腾、赛扬),或对不支持的CPU Variant启用XCPM支持,或对电源管理不支持(比如虚拟机)的CPU型号启用支持。
选项
内容
说明
CpuidMask
FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00
化为二进制,某位为1代表该位数值需用CpuidData的对应数值替换,否则不需要
CpuidData
C3 06 03 00 00 00 00 00 00 00 00 00 00 00 00 00
CPU的被仿冒位(填写时需要使用小端规则,即该示例对应的CPUID为0x0306C3)
DummyPowerManagement
NO
禁用AppleIntelCpuPowerManagement原生电源管理,用于更好的替代NullCpuPowerManagement.kext,AMD CPU一般需要使用
MaxKernel
模拟CPUID,并在指定的或更低的macOS版本上使用DummyPowerManagement
MinKernel
模拟CPUID,并在指定的或更高的macOS版本上使用DummyPowerManagement
仿冒示例如下。
选项
内容
Haswell-E(0x0306F2) to Haswell(0x0306C3)
CpuidMask
FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00
CpuidData
C3 06 03 00 00 00 00 00 00 00 00 00 00 00 00 00
Broadwell-E (0x0406F1) to Broadwell (0x0306D4)
CpuidMask
FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00
CpuidData
D4 06 03 00 00 00 00 00 00 00 00 00 00 00 00 00
Force 如果内核驱动没有被缓存,则从磁盘强制加载内核驱动。
依赖其他驱动的驱动程序不能被缓存,该部分着重解决了这种驱动程序注入的难点。这个问题会映像到旧的操作系统,在旧的操作系统中存在各种依赖性的Kext,比如IOAudioFamily和IONetworkingFamily,可能默认不存在于内核缓存中。内核驱动的加载是有顺序的,因此依赖驱动应该排在前面。
Force的驱动不会被检查,因此,使用安全启动时不应使用此功能。此功能可能无法在较新的操作系统的加密分区上工作。
选项
内容
说明
Arch
Any
kext架构(Any/i386/x86_64)
BundlePath
System/Library/Extensions/IONetworkingFamily.kext
kext路径
Comment
注释(可不填)
Enabled
YES
启用/禁用
ExecutablePath
Contents/MacOS/IONetworkingFamily
隐藏在kext中的实际可执行文件的路径
Identifier
com.apple.iokit.IONetworkingFamily
kext 标识符
MaxKernel
支持的最大系统版本(19
为10.15,18
为10.14),一般留空
MinKernel
支持的最小系统版本
PlistPath
Contents/Info.plist
隐藏在kext中的Info.plist路径
Patch 用于添加系统内核补丁、Kext补丁、AMD CPU补丁等,等同于Clover的KextToPatch和KernelToPatch。默认的第一、二项用于修复Apple RTC,若华硕主板出现RTC错误而无法开机,可以尝试打开这两个中的其中一个(一次只用一个)以修复华硕主板重启丢失BIOS设置以及需要按F1跳过安全模式的问题。
选项
内容
说明
Arch
Any
kext架构(Any/i386/x86_64)
Base
/
通过获取所提供的Symbol名称的地址来选择Symbol匹配的Base进行补丁查找(或直接替换),可设置为空字符串以忽略
Comment
Comment
Count
0
执行次数(0代表不限制)
Enabled
True
启用/禁用
Find
寻找的十六进制内容。可留空,在Base处直接替换。若不留空,其大小必须等于Replace
Identifier
Kext Bundle标识符
Limit
要搜索的最大字节数(0代表遍历整个ACPI表)
Mask
/
查找比较期间使用的数据按位掩码,通过忽略未屏蔽(设置为零)位来进行模糊搜索。可以设置为空数据以忽略,否则此值的长度必须和Replace的长度相等
MaxKernel
支持的最大系统版本(19
为10.15,18
为10.14),一般留空
MinKernel
支持的最小系统版本
Replace
替换为的十六进制内容
ReplaceMask
/
替换数据期间使用的数据按位掩码,通过忽略未屏蔽(设置为零)位来进行模糊搜索。可以设置为空数据以忽略,否则此值的长度必须和Replace的长度相等
Skip
0
跳过前N个,0表示不跳过
Quirks
选项
内容
说明
AppleCpuPmCfgLock
NO
禁用AppleIntelCPUPowerManagement.kext中的PKG_CST_CONFIG_CONTROL (0xE2)修改,从而避免早期Kernel Panic。若设备的CFG-Lock开启则设置为YES(尽可能用Grub关闭BIOS的CFG-Lock以避免开启,与Clover的AppleIntelCPUPM对应)
AppleXcpmCfgLock
NO
禁用XNU内核对PKG_CST_CONFIG_CONTROL (0xE2)修改,从而避免早期Kernel Panic。若设备的CFG-Lock开启则设置为YES,10.7及更旧系统无需使用(与Clover的KernelPM对应)
AppleXcpmExtraMsrs
NO
对于没有XCMP支持的设备,禁用对选定CPU的多MSR访问。通常将其与Haswell-E/Broadwell-E/Skylake-SP和类似CPU的Emulate结合使用,10.7及更旧系统无需使用(与Clover的KernelXCPM对应)
AppleXcpmForceBoost
NO
强制拉高睿频,建议在长期高负载的专业设备上使用,Xeon系列的处理器开启这个选项会受益,10.7及更旧系统无需使用
CustomSMBIOSGuid
NO
对UpdateSMBIOSMode自定义模式执行GUID修补,用于戴尔笔记本电脑(等同于Clover的DellSMBIOSPatch)
DisbaleIOMapper
NO
禁用XNU(VT-d)中的IOMapper支持,需要绕过VT-d且BIOS中无法禁用时使用,10.7及更旧系统无需使用(相比直接在ACPI表中删除DMAR的做法,本Quirk更好)
DisableLinkeditJettison
NO
禁止丢弃__LINKEDIT,让Lilu.kext和其他一些功能以最佳性能运行,而不需要keepsyms=1启动参数,适用于11及更高系统
DisableRtcChecksum
NO
越过两条RTC检查0x58及0x59(一般卡RTC应当先使用RTCMemoryFixup.kext而非开启该项,https://github.com/acidanthera/RTCMemoryFixup)
ExtendBTFeatureFlags
NO
将FeatureFlags设置为0x0F,以实现蓝牙的全部功能(包括连续互通功能),用于替代BT4LEContinuityFixup.kext,适用于10.8及更高系统
ExternalDiskIcons
NO
硬盘图标补丁,修补AppleAHCIPort.kext图标,使macOS将所有AHCI存储设备显示为内部硬盘(macOS将内部硬盘视为外接硬盘时使用,对于Z87及以下版本的NVMe,只需通过DeviceProperties添加内置属性)
ForceSecureBootScheme
NO
强制采用x86方案进行IMG4核查,在虚拟机上使用x86legacy以外的SecureBootModel时需要开启此选项,适用于11及更高系统
IncreasePciBarSize
NO
将IOPCIFamily中32位PCI Bar的大小从1GB增加到4GB,适用于10.10及更高系统(在BIOS中启用Above4GDecoding是一种更加干净和安全的方法,某些X99板可能需要开启,这些主板通常会在IOPCIFamily上遇到内核崩溃)
LapicKernelPanic
NO
禁用由AP核心lapic中断造成的内核崩溃,通常用于惠普电脑,适用于10.6(64-bit)及更高系统(等同于Clover的KernelLapic)
LegacyCommpage
NO
默认的64位commpage bcopy的实现需要SSSE3,这个选项把它替换为不需要SSSE3的实现,防止因不存在不需要SSSE3的64位bcopy 函数而导致的commpage no match for last Panic,适用于10.4-10.6
PanicNoKextDump
YES
在发生内核崩溃时阻止输出Kext列表,适用于10.13及更高系统(与Clover的PanicNoKextDump对应)
PowerTimeoutKernelPanic
YES
修复macOS Catalina中由于设备电源状态变化超时而导致的内核崩溃,适用于10.15及更高系统(相当于启动参数setpowerstate_panic=0)
SetApfsTrimTimeout
-1
为SSD上的APFS文件系统设置微秒级的trim超时时间,可通过设置为一个非常高的值如4294967295以确保所有区块均被trim处理,或设置一个非常低的值如999以禁止trim操作,适用于10.14及更高系统
ThirdPartyDrives
NO
修补IOAHCIDeleteStorage.kext,以在第三方驱动器启用TRIM、硬盘休眠等功能,适用于10.6及更高系统(NVMe SSD通常无需这一修改,AHCI SSD,如SATA SSD可使用trimforce)
XhciPortLimit
NO
修补AppleUSBXHCI.kext、AppleUSBXHCIPCI.kext、IOUSBHostFamily.kext以移除15端口限制,适用于10.11及更高系统(不建议依赖,建议定制USB)
Scheme 通过参数来定义内核空间的操作模式,对于旧版macOS操作系统尤为重要。
FuzzyMatch 使用校验值不同的kernelcache。
在10.6和更早的版本中,kernelcache文件名有一个校验值,由于ACPI或硬件的特殊性,UEFI和macOS的EfiBoot设备路径不同,使得kernelcache的校验和总是不同。这一设置可以在无后缀的kernelcache不可用时,将最新的kernelcache与合适的架构进行匹配,从而提高10.6在多个平台上的启动性能。
KernelArch 优先选择指定的内核架构,选项如下。按x86_64、i386、i386-user32顺序选择参数可以获得最佳的架构支持。
不支持用热键3+2和6+4来选择偏好架构,因为这个热键由EfiBoot处理,很难正确地检测到。
选项
含义
Auto
自动选择
i386
32位内核
i386-user32
32位内核,并在64位处理器上强制使用32位用户空间,对应-legacy内核启动参数(对于64位固件上运行的10.4和10.5系统不可用,一般用于不支持SSSE3指令集的64位处理器如奔腾,因为macOS默认64位处理器支持SSSE3)
x86_64
64位内核
KernelCache 优先选择指定的内核缓存(Kernel Cache)类型,可为Auto、Cacheless、Mkext、Prelinked。
可用内核缓存类型及其当前在OpenCore中的支持情况列表如下。
系统版本
i386 NC (NoCache)
i386 MK (Mkext)
i386 PK (Prelinked)
x86_64 NC (NoCache)
x86_64 MK (Mkext)
x86_64 PK (Prelinked)
x86_64 KC
10.4-10.5
YES
YES (V1)
NO (V1)
-
-
-
-
10.6
YES
YES (V2)
YES (V2)
YES
YES (V2)
YES (V2)
-
10.7
YES
-
YES (V3)
YES
-
YES (V3)
-
10.8-10.9
-
-
-
YES
YES (V3)
-
10.10-10.15
-
-
-
-
-
YES (V3)
-
11+
-
-
-
-
-
YES (V3)
YES
Misc BlessOverride
选项
内容
说明
Item 0(String)
\EFI\Microsoft\Boot\bootmgfw.efi
用于覆盖Windows的bootmgfw.efi的位置,以便识别Windows引导项,OpenCore和Windows的引导文件在同一硬盘的同一ESP分区下时使用
Item 1(String)
\EFI\debian\grubx64.efi
用于Debian引导
Boot 总述
选项
内容
说明
ConsoleAttributes
0
给引导选择界面添加特效,填入字体颜色和背景颜色的值的16进制之和
HibernateMode
None
与系统内的休眠模式配合,引导进系统会还原休眠前的状态,会影响SSD寿命(None-关闭休眠支持,Auto-自动检测RTC和NVRAM模式,RTC-从RTC检测,NVRAM—从NVRAM检测)
HideAuxiliary
YES
隐藏辅助条目,包括macOS恢复分区、在自定义引导项时定义为Auxiliary的引导项、在 Tools中添加的工具(如Clean NVRAM)、macOS时间机器分区
LauncherOption
Disabled
在固件偏好设置中注册启动器选项(Disabled-禁用,Full-在UEFI变量存储中创建或更新最高优先级的启动项,必须同时开启RequestBootVarRouting,Short-创建一个短的、非完整的启动项,对于某些无法处理完整设备路径的固件如Insyde很有用)
LauncherPath
Default
LauncherOption的启动引导路径(Default-引导OpenCore.efi,其它路径如\EFI\Launcher.efi可用来提供自定义加载器)
PickerAttributes
0
设置开机引导菜单的属性(0x0004-简化主题图标下的文字,0x0008-使用老式的图标)
PickerAudioAssist
NO
朗读屏幕上选择项的内容
PollAppleHotKeys
NO
允许在引导过程中使用苹果原生快捷键Modifier Hotkey(需要与Quirk中KeySupport=Yes或UsbKbDxe.efi结合使用,具体体验取决于主板固件,可能会导致选择分区时卡住)
ShowPicker
YES
显示OpenCore的UI,用于查看可用引导项(可以在启动时按住OPT键或连续点按Escape来实现)
TakeoffDelay
0
在启动前延迟n毫秒,提升键盘快捷键识别的正确率,比如启动到恢复模式(n的有效范围为5000-10000,32bit以内的正整数)
Timeout
0
设置引导项等待时间(0为关闭倒计时,相当于Clover的-1),设置为NO可以跳过倒计时
PickerMode
Builtin
使用OpenCore的默认GUI(External-使用其它GUI,Apple-使用原生GUI,黑苹果不支持)
PickerVariant
Auto
选择启动管理器所使用的图标集(Auto—基于DefaultBackground的设置自动选择相应的图标集,Default—常规图标集,无前缀,Old—复古图标集,文件名有Old前缀,Modern—新颖图标集,文件名有Modern前缀,其他值—自定义图标集,需要在Resources中添加相应图标集)
ConsoleMode
Max
设置控制台模式为最大允许分辨
ConsoleBehaviourOs
ForceGraphics
修复OC引导界面
ConsoleBehaviourUi
ForceText
修复OC引导界面
HideSelf
NO
在OpenCore的启动选择中隐藏自身EFI分区的启动项
Resolution
1920x1080
屏幕的最大分辨率
ConsoleAttributes ConsoleAttributes的颜色代码含义如下。
颜色代码
宏定义
指代颜色
字体颜色
0x00
EFI_BLACK
黑
0x01
EFI_BLUE
蓝
0x02
EFI_GREEN
绿
0x03
EFI_CYAN
青
0x04
EFI_RED
红
0x05
EFI_MAGENTA
品红
0x06
EFI_BROWN
棕
0x07
EFI_LIGHTGRAY
浅灰
0x08
EFI_DARKGRAY
深灰
0x09
EFI_LIGHTBLUE
浅蓝
0x0A
EFI_LIGHTGREEN
浅绿
0x0B
EFI_LIGHTCYAN
浅青
0x0C
EFI_LIGHTRED
浅红
0x0D
EFI_LIGHTMAGENTA
浅品红
0x0E
EFI_YELLOW
黄
0x0F
EFI_WHITE
白
背景颜色
0x00
EFI_BACKGROUND_BLACK
黑
0x10
EFI_BACKGROUND_BLUE
蓝
0x20
EFI_BACKGROUND_GREEN
绿
0x30
EFI_BACKGROUND_CYAN
青
0x40
EFI_BACKGROUND_RED
红
0x50
EFI_BACKGROUND_MAGENTA
品红
0x60
EFI_BACKGROUND_BROWN
棕
0x70
EFI_BACKGROUND_LIGHTGRAY
浅灰
PickerAttributes PickerAttributes可以用属性掩码来设置引导菜单的不同属性,其中掩码包含OpenCore 的预留值(BIT0-BIT15)和OEM特定值(BIT16-BIT31)。
预留值0x0001为OC_ATTR_USE_VOLUME_ICON,表示为启动项提供自定义图标。OpenCore会优先加载以下自定义图标,不存在时回退到默认图标。启用此功能后可能会难以区分外部可移除硬盘和内部不可移除硬盘的图标。
选项
自定义图标路径
Tools
ResetNVRAM
Resources\Image\ResetNVRAM.icns
其它工具
Tools<TOOL_RELATIVE_PATH>.icns
Entries
启动项
.icns
其它
APFS卷宗
.VolumeIcon.icns(置于Preboot卷宗目录下-置于Preboot根目录下)
其他文件系统
.VolumeIcon.icns(置于其卷宗根目录下)
预留值0x0002为OC_ATTR_USE_DISK_LABEL_FILE,表示为启动项的标题提供自定义渲染。预渲染标签可用disklabel实用工具或bless命令来生成。当预渲染标签被禁用或者缺失时,将以文本标签.contentDetails/.disk_label.contentDetails代为渲染。
预渲染标签
说明
.disk_label(.disk_label_2x)
与bootloader文件放在同一目录,适用于所有文件系统
.lbl(.l2x)
与工具文件放在同一目录,适用于Tools
预留值0x0004为OC_ATTR_USE_GENERIC_LABEL_IMAGE,表示为没有自定义条目的启动项提供预定义的标签图像。
预留值0x0008为OC_ATTR_HIDE_THEMED_ICONS,表示优先选择特定图标集的图标,以配合主题风格,比如可以强制显示特定图标集内置的Time Machine图标。需要同时启用OC_ATTR_USE_VOLUME_ICON。
预留值0x0010为OC_ATTR_USE_POINTER_CONTROL,表示在启动选择器中启用指针控制,如可利用鼠标或触摸板来控制UI元素。
PollAppleHotKeys 已知的Modifier Hotkey如下。
按键
说明
CMD+C+MINUS
禁用主板兼容性检查
CMD+K
从RELEASE版本的内核启动,类似于kcsuffix=release参数
CMD+R
从恢复分区启动
CMD+S
启动至单用户模式
CMD+S+MINUS
禁用KASLR slide,需要事先禁用SIP
CMD+V
启用-v
X
启动到第一个找到的Apple操作系统
Shift
启用安全模式
Debug 一般无需修改。若需开启Debug功能,建议使用DEBUG或NOOPT版本。
选项
内容
说明
AppleDebug
NO
将boot.efi调试日志保存到OpenCore日志,适用于10.15.4及更高系统
ApplePanic
NO
将Kernel Panic保存到OpenCore根分区
DisableWatchDog
NO
某些固件启动操作系统的速度可能不够快(尤其是调试模式下),看门狗定时器会因此中止引导过程。此选项用来关闭看门狗定时器。若macOS在启动时卡在某些地方,可设置为YES以排除错误干扰
DisplayDelay
0
屏幕上打印每行输出之间的延迟
DisplayLevel
2147483714
与屏幕显示相关的EDK II调试级别的位掩码(总和),除非Target启用了控制台在屏幕上输出日志,否则屏幕上的调试输出将不可见。0为隐藏所有Debug信息,2147483714为在屏幕上显示所有Debug信息
SerialInit
NO
执行串行端口初始化
SysReport
NO
需要OpenCore DEBUG版,在EFI分区中保存系统报告(ACPI、SMBIOS和音频编解码器的调试信息,其中保存音频编解码器信息需要加载音频后端驱动)
Target
19
启用日志记录目标的位掩码(总和)。0为关闭日志记录,3为允许屏幕输出日志,19为允许屏幕输出UEFI变量日志,65为在ESP分区根目录生成日志文件但屏幕上不显示日志
DisplayLevel的内容含义如下。
内容
说明
0x00000001
DEBUG_INIT
0x00000002
DEBUG,NOOPT和RELEASE中的DEBUG_WARN
0x00000004
DEBUG_LOAD
0x00000008
DEBUG_FS
0x00000010
DEBUG_POOL
0x00000020
DEBUG_PAGE
0x00000040
DEBUG,NOOPT中的DEBUG_INFO
0x00000080
DEBUG_DISPATCH
0x00000100
DEBUG_VARIABLE
0x00000400
DEBUG_BM
0x00001000
DEBUG_BLKIO
0x00004000
DEBUG_NET
0x00010000
DEBUG_UNDI
0x00020000
DEBUG_LOADFILE
0x00080000
DEBUG_EVENT
0x00100000
DEBUG_GCD
0x00200000
DEBUG_CACHE
0x00400000
在自定义版本中的DEBUG_VERBOSE
0x80000000
DEBUG,NOOPT和RELEASE中的DEBUG_ERROR
一般开启0x00000002、0x00000040和0x80000000。0x00000002+0x00000040+0x80000000=0x80000042,转换为十进制为2147483714,填入此值即可。
Target的内容含义如下。
内容
说明
0x01
启用日志记录
0x02
启用屏幕调试
0x04
启用日志记录到Data Hub
0x08
启用串行端口日志记录
0x10
启用UEFI变量日志记录
0x20
启用非易失性UEFI变量日志记录
0x40
启用在ESP分区生成日志文件
一般开启0x01、0x02、0x10和0x40。0x01+0x02+0x10+0x40=0x53,转换为十进制为83,填入此值即可。
Entires 指定OpenCore无法自动找到的无规律引导路径。
选项
内容
说明
Arguments
/
对该引导条目使用的引导参数
Auxiliary
NO
隐藏引导项
Name
CustomOS
OpenCore启动项中显示的名称
Comment
Not signed for security reasons
注释(可不填)
Enabled
YES
启用/禁用
Path
PciRoot(0x0)/Pci(0x1,0x1)/Pci(0x0,0x0)/NVMe(0x1,11-22-33-44-55-66-77-88)/HD(1,GPT,00000000-0000-0000-0000-000000000000,0x800,0x64000)/EFI/BOOT/BOOTX64.EFI
引导磁盘的PCI路径,可以通过OpenCoreShell 的map命令或在Clover引导项找到。也可添加Tools,直接输入在OC/Tools目录的文件名即可,如OpenShell.efi
RealPath
NO
启动时将完整的路径传递给工具传递目录可能会使工具在没有检查文件完整性的情况下就意外地访问了文件,降低了安全性,因此通常应该禁用。需要启用该项的情况有:工具需要外部文件来正常工作;工具需要外部文件来更好地实现某些功能(如 memtest86 的记录和配置功能,Shell 自动执行脚本的功能)。此属性的开关仅对工具有效,对于引导项该属性始终为true)
TextMode
NO
以文本模式而非图形模式运行条目。某些需要文本输出的旧工具需要用到此项。默认情况下所有工具都以图形模式启动
Security 总述
选项
内容
说明
AllowNvramReset
YES
允许在引导选择界面和快捷键Cmd+Opt+P+R按下时重置NVRAM,重置NVRAM后未经过bless工具备份过的开机项(如Linux)会被全部删除,BootCamp Windows因为符合bless模型而不受影响。注意极少数笔记本(如Thinkpad X1 Extreme Gen2)重置NVRAM后可能会无法开机
AllowSetDefault
YES
允许使用Ctrl+Enter和Ctrl+数字锁定默认启动项
ApECID
0
Apple Enclave标识符,设为非零值将允许使用个性化的Apple安全启动标识符,可取SystemUUID的前8个字节(该方法即为没有T2芯片的Mac的macOS 11的操作)。如果这个值设置妥当,并且SecureBootModel值有效且不是Disabled,那么就可以实现Apple安全启动的完整安全性
AuthRestart
NO
启用与VirtualSMC兼容的authenticated restart,允许重启FileVault2分区时无需再次输密码(可在终端输入sudo fdesetup authrestart手动执行authenticated restart)
BlacklistAppleUpdate
NO
忽略某些用于更新Apple外设固件的启动项(如MultiUpdater.efi)以禁用固件更新
DmgLoading
Signed
定义用于macOS Recovery的DMG加载策略(Disabled-除Recovery分区外,不允许加载存储在com.apple.recovery.boot目录中的DMG磁盘映像,Signed-仅加载Apple签名的DMG磁盘映像,Any-任何DMG磁盘映像都会作为普通文件系统挂载,当激活了Apple安全启动时会导致启动失败)
EnablePassword
NO
为敏感操作启用密码保护
ExposeSensitiveData
3
用于向操作系统暴露敏感数据的位掩码(总和),用NVRAM.plist则必须填3来为boot-path变量提供OpenCore EFI分区的UUID(2-原生NVRAM,11-在3的基础上添加主板OEM信息,HWMonitorSMC2和NVMeFix需要主板OEM信息才能正常工作)
HaltLevel
2147483648
EDK II调试级别的位掩码(总和),使CPU在获得HaltLevel消息后中止(停止执行)。可能的值与DisplayLevel值相匹配
PasswordHash
all zero
密码使用的哈希值
PasswordSalt
empty
密码使用的盐值(Salt)
Vault
Optional
OpenCore自身的加密和安全保护(Optional-不强制要求vault.plist和 vault.sig文件存在,不设置Vault,不安全,Basic-强制要求vault.plist存在,提供了基本的文件系统完整性验证,Secure-强制要求vault.sig签名文件和vault.plist存在)
ScanPolicy
0
定义操作系统检测策略,0表示允许扫描所有可用的硬盘,983299表示显示当前系统分区
SecureBootModel
Default
Apple安全启动的机型
BootProtect
Bootstrap
保证opencore.efi的永久性,以免遭到其他操作系统对开机顺位的破坏(需保证RequestBootVarRouting开启),可设置为Bootstrap(新主板)、BootstrapShort(Haswell及更早主板)、None。升级OpenCore前建议设为None,升级完成后再设置为Bootstrap。每次启动都会在BIOS出现新的OpenCore引导项时,可使用BootstrapShort
RequireSignature
NO
黑苹果的Vault加密方式
RequireVault
NO
是否开启黑苹果加密
ExposeSensitiveData 位掩码如下。根据加载顺序,暴露的启动器路径指向OpenCore.efi或其引导器。
位掩码
含义
0x01
将可打印的引导器路径作为UEFI变量暴露出来
0x02
将OpenCore版本作为UEFI变量暴露出来
0x04
将OpenCore版本暴露在启动选择菜单的标题位置
0x08
将OEM信息作为一组UEFI变量暴露出来
ScanPolicy 对于ScanPolicy值,设为0可允许所有存在的源都启动,但通过简单的计算,可得到更大范围的灵活性与安全性。
计算ScanPolicy值时只需将所有十六进制值相加即可,全部累加后需要将此十六进制值添加到ScanPolicy(首先需要将其转换为十进制值,粘贴时Xcode会自动将其转换)。
位置
宏定义
含义
0x00000001 (bit 0)
OC_SCAN_FILE_SYSTEM_LOCK
将扫描限制于仅扫描此策略定义的已知文件系统,已知文件系统的前缀为OC_SCAN_ALLOW_FS_
0x00000002 (bit 1)
OC_SCAN_DEVICE_LOCK
将扫描限制于仅扫描此策略定义的已知设备类型,已知设备类型的前缀为OC_SCAN_ALLOW_DEVICE_
0x00000100 (bit 8)
OC_SCAN_ALLOW_FS_APFS
允许扫描APFS文件系统
0x00000200 (bit 9)
OC_SCAN_ALLOW_FS_HFS
允许扫描HFS文件系统
0x00000400 (bit 10)
OC_SCAN_ALLOW_FS_ESP
允许扫描EFI系统分区文件系统
0x00000800 (bit 11)
OC_SCAN_ALLOW_FS_NTFS
允许扫描NTFS文件系统
0x00001000 (bit 12)
OC_SCAN_ALLOW_FS_EXT
允许扫描EXT文件系统
0x00010000 (bit 16)
OC_SCAN_ALLOW_DEVICE_SATA
允许扫描SATA设备
0x00020000 (bit 17)
OC_SCAN_ALLOW_DEVICE_SASEX
允许扫描SAS和Mac NVMe设备
0x00040000 (bit 18)
OC_SCAN_ALLOW_DEVICE_SCSI
允许扫描SCSI设备
0x00080000 (bit 19)
OC_SCAN_ALLOW_DEVICE_NVME
允许扫描NVMe设备
0x00100000 (bit 20)
OC_SCAN_ALLOW_DEVICE_ATAPI
允许扫描CD/DVD和旧的SATA设备
0x00200000 (bit 21)
OC_SCAN_ALLOW_DEVICE_USB
允许扫描USB设备
0x00400000 (bit 22)
OC_SCAN_ALLOW_DEVICE_FIREWIRE
允许扫描FireWire设备
0x00800000 (bit 23)
OC_SCAN_ALLOW_DEVICE_SDCARD
允许扫描读卡器设备
默认值为0xF0103,十进制为983299,是以下各项的组合。
1 2 3 4 5 6 7 OC_SCAN_FILE_SYSTEM_LOCK OC_SCAN_DEVICE_LOCK OC_SCAN_ALLOW_FS_APFS OC_SCAN_ALLOW_DEVICE_SATA OC_SCAN_ALLOW_DEVICE_SASEX OC_SCAN_ALLOW_DEVICE_SCSI OC_SCAN_ALLOW_DEVICE_NVME
建议添加OC_SCAN_ALLOW_DEVICE_USB,变为0x00200000,转换为十进制为3080451。
SecureBootModel 选项如下。PlatformInfo和SecureBootModel是相互独立的,因此可以在任何SMBIOS上启用Apple安全启动。将SecureBootModel设置为除Disabled以外的任意有效值,相当于实现了Apple安全启动的中等安全性。如要实现完整安全性,还需要指定ApECID值。不建议同时使用ApECID和Default值。
选项
含义
Default
最近的可用型号,目前设置为j137
Disabled
无机型,禁用Apple安全启动
j137
iMacPro1,1 (December 2017). Minimum macOS 10.13.2 (17C2111)
j680
MacBookPro15,1 (July 2018). Minimum macOS 10.13.6 (17G2112)
j132
MacBookPro15,2 (July 2018). Minimum macOS 10.13.6 (17G2112)
j174
Macmini8,1 (October 2018). Minimum macOS 10.14 (18A2063)
j140k
MacBookAir8,1 (October 2018). Minimum macOS 10.14.1 (18B2084)
j780
MacBookPro15,3 (May 2019). Minimum macOS 10.14.5 (18F132)
j213
MacBookPro15,4 (July 2019). Minimum macOS 10.14.5 (18F2058)
j140a
MacBookAir8,2 (July 2019). Minimum macOS 10.14.5 (18F2058)
j152f
MacBookPro16,1 (November 2019). Minimum macOS 10.15.1 (19B2093)
j160
MacPro7,1 (December 2019). Minimum macOS 10.15.1 (19B88)
j230k
MacBookAir9,1 (March 2020). Minimum macOS 10.15.3 (19D2064)
j214k
MacBookPro16,2 (May 2020). Minimum macOS 10.15.4 (19E2269)
j223
MacBookPro16,3 (May 2020). Minimum macOS 10.15.4 (19E2265)
j215
MacBookPro16,4 (June 2020). Minimum macOS 10.15.5 (19F96)
j185
iMac20,1 (August 2020). Minimum macOS 10.15.6 (19G2005)
j185f
iMac20,2 (August 2020). Minimum macOS 10.15.6 (19G2005)
x86legacy
Macs and VMs without T2 chip. Minimum macOS 11.0.1 (20B29)
用于运行OC调试工具,例如验证CFG锁(VerifyMsrE2.efi)。
选项
内容
说明
Arguments
/
Name
VerifyMsrE2
OpenCore启动项中显示的名称
Comment
Verify CFG Lock
注释(可不填)
Enabled
YES
启用/禁用
Path
VerifyMsrE2.efi
Tools文件夹下的文件名
可在此处添加bootx64.efi以引导UEFI Shell(刷BIOS)、添加shellx64.efi以引导Grub Shell(改BIOS条目)等。
NVRAM 某些NVRAM变量可通过PlatformNVRAM或PlatformInfo节的Generic子节添加,注意不要与现有变量发生冲突。
Add 创建的变量会设置EFI_VARIABLE_BOOTSERVICE_ACCESS和EFI_VARIABLE_RUNTIME_ACCESS的属性。变量只有在不存在且未被屏蔽的情况下才会被设置,也就是说,如果想要覆盖一个现有的变量值,请将该变量的名称添加到Delete部分,这种方法能够提供一个默认的值,直到操作系统接手为止。
4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14 表示Booter Path。
选项
内容
说明
UIScale
01
OpenCore UI和引导第一阶段缩放(01为正常大小,等效于Clover中BooterConfig的0x28,02为HIDPI,等效于Clover中BooterConfig的0x2A)
DefaultBackgroundColor
00000000
控制第一阶段苹果标志后面的背景颜色,格式为16进制颜色RGBA(黑色为00000000,灰色为BFBFBF00)
EFILoginHiDPI
/
flagstate
/
UIScale
/
7C436110-AB2A-4BBB-A880-FE41995C9F82 表示SIP。
选项
内容
说明
boot-args
-v debug=0x100 nv_disable=1 slide=1 vsmcgen=1
引导参数(vsmcgen=1为MacOS 11专用,用于暴露SMC部件)
bootercfg
log=0
Booter参数,类似于boot-args,但用于boot.efi。在不同阶段,boot.efi会请求不同的调试(日志)模式(例如,在ExitBootServices之后它只会打印到串行调试接口)。有些Booter参数会控制这些请求是否成功,如log=这一参数接受一组十六进制的64位值,带或不带0x
nvda_drv
删除
设为31时启用NVIDIA WebDrivers(仅限10.13.6以下系统),无N卡应删除此项
prev-lang:kbd
7A682D48616E733A323532
将默认语言设置为简体中文(留空为英文)。也可为lang-COUNTRY:keyboard的格式,如ru-RU:252代表俄语和ABC键盘。也接受简短形式,如ru:252或ru:0(美国键盘,兼容10.9)。在10.14上使用非拉丁语键盘将无法启用ABC键盘,因此使用10.14版本则不建议使用这一变量
SystemAudioVolume
0x46
0x80为静音
bootercfg的log参数列表如下。
参数
含义
说明
0x00
INIT
0x01
VERBOSE
强制控制台记录日志,AppleLoggingConOutOrErrSet/AppleLoggingConOutOrErrPrint (classical ConOut/StdErr)
0x02
EXIT
AppleLoggingStdErrSet/AppleLoggingStdErrPrint (StdErr or serial?)
0x03
RESET:OK
0x04
RESET:FAIL
如未知的board-id/休眠错配/Panic循环等,AppleLoggingFileSet/AppleLoggingFilePrint (BOOTER.LOG/BOOTER.OLD file on EFI partition)
0x05
RESET:RECOVERY
0x06
RECOVERY
0x07
REAN:START
0x08
REAN:END
0x09
DT
不再将日志记录到设备树
0x0A
EXITBS:START
仅强制的串行调试接口
0x0B
EXITBS:END
仅强制的串行调试接口
0x0C
UNKNOWN
bootercfg的其它参数列表如下。可能不适用于10.15.4之前的版本。
参数
取值
取值说明
参数含义
boot-save-log=VALUE
正常启动时的调试日志保存模式
0
1
2
默认
3
4
保存到文件
wake-save-log=VALUE
休眠唤醒时的调试日志保存模式
0
禁用
1
2
默认
3
不可用
4
保存到文件,不可用
breakpoint=VALUE
错误时的调试中断
0
禁用(默认)
1
启用
console=VALUE
控制台日志记录
0
禁用
1
当缺少调试协议时启用(默认)
2
无条件启用(不可用)
embed-log-dt=VALUE
设备树日志记录
0
禁用
1
启用
kc-read-size=VALUE
网络或磁盘缓冲I/O的数据块大小,用于预链接内核读取和相关用途
0x100000
1MB(默认)
log-level=VALUE
日志等级位掩码
0x01
启用跟踪记录(默认)
serial=VALUE
串行控制台日志记录
0
禁用(默认)
1
从EXITBS:END开始启用
2
从EXITBS:START开始启用
3
当缺少调试协议时启用
4
无条件启用
timestamps=VALUE
时间戳日志记录
0
禁用
1
启用(默认)
debug=VALUE
10.15开始弃用
1
启用输出到BOOTER.LOG,如果出现了被精简过的代码,则可能发生过崩溃
2
启用性能日志(Perf Log),记录到 /efi/debug-log
4
为调用printf启用时间戳输出
level=VALUE
10.15开始弃用。DEBUG输出的详细程度,默认除0x80000000以外,其他内容都会被精简掉
prev-lang:kbd中的键盘布局数字代码如下。
数字
键盘布局
30778
cs - Czech-QWERTY
30776
cs - Czech
30764
et - Estonian
30767
hu - Hungarian-QWERTY
30763
hu - Hungarian
30765
lv - Latvian
30761
lt - Lithuanian
30788
pl - Polish Pro
30762
pl - Polish
30777
sk - Slovak
30779
sk - Slovak-QWERTY
19529
bg - Bulgarian - Phonetic
19528
bg - Bulgarian
19517
be - Byelorussian
19523
mk - Macedonian
19457
ru - Russian - Phonetic
19456
ru - Russian
19458
ru - RussianWin
19521
sr-Cyrl - Serbian
195138
uk - Ukrainian-PC
19518
uk - Ukrainian
12825
en - Colemak
16302
en - Dvorak - Left
16303
en - Dvorak - Right
16300
en - Dvorak
16301
en - DVORAK - QWERTY CMD
16384
ja - KANA
251
fr - ABC-AZERTY
253
de - ABC-QWERTZ
252
en - ABC
15
en_AU - Australian
92
de_AT - Austrian
6
nl_BE - Belgian
128
pt_BR - Brazilian-ABNT2
72
pt_BR - Brazilian - Pro
71
pt_BR - Brazilian
250
en_GB - British-PC
2
en_GB - British
80
fr_CA - Canadian - CSA
29
en_CA - Canadian
9
da - Danish
26
nl - Dutch
17
fi - Finnish
60
fr - French-PC
1111
fr - French - numerical
1
fr - French
3
de - German
50
en - Irish
223
it - Italian - Pro
4
it - Italian
12
nb - Norwegian
10
pt_PT - Portuguese
87
es - Spanish - ISO
8
es - Spanish
7
sv - Swedish - Pro
224
sv - Swedish
18
fr_CH - Swiss French
19
de_CH - Swiss German
88
to - Tongan
0
en_US - U.S
15000
en_US - USInternational-PC
-17409
ko - 2SetHangul
-2902
fa - Afghan Dari
-2904
ps - Afghan Pashto
-2903
uz-Arab - Afghan Uzbek
-20000
ta - Anjal
-17940
ar - Arabic-AZERTY
-17923
ar - Arabic-North_Africa
-18000
ar - Arabic-QWERTY
-17920
ar - Arabic
-17921
ar - Arabic PC
-28161
hy - Armenian-HM QWERTY
-28164
hy - Armenian-Western QWERTY
-49
az-Latn - Azeri
-22529
bn - Bangla-QWERTY
-22528
bn - Bangla
-16899
zh-Hant - CangjieKeyboard
-26112
chr - Cherokee-Nation
-26113
chr - Cherokee-QWERTY
-68
hr - Croatian
-69
hr - Croatian-PC
-20481
hi - Devanagari-QWERTY
-20480
hi - Devanagari
-47
fo - Faroese
-17
fi - Finnish Extended
-18
fi - FinnishSami-PC
-27650
ka - Georgian-QWERTY
-18944
el - Greek
-18945
el - Greek Polytonic
-21505
gu - Gujarati-QWERTY
-21504
gu - Gujarati
-20993
pa - Gurmukhi-QWERTY
-20992
pa - Gurmukhi
-50
haw - Hawaiian
-18500
he - Hebrew-QWERTY
-18432
he - Hebrew
-18433
he - Hebrew-PC
-21
is - Icelandic
-30604
iu - Inuktitut-Nunavut
-30602
iu - Inuktitut-Nutaaq
-30600
iu - Inuktitut-QWERTY
-30603
iu - Inuttitut Nunavik
-500
ga - Irish Extended
-19000
ms-Arab - Jawi-QWERTY
-24065
kn - Kannada-QWERTY
-24064
kn - Kannada
-19501
kk - Kazakh
-26114
km - Khmer
-17926
ckb - Kurdish-Sorani
-24577
ml - Malayalam-QWERTY
-24576
ml - Malayalam
-501
mt - Maltese
-51
mi - Maori
-25601
my - Myanmar-QWERTY
-20484
ne - Nepali
-1200
se - Northern Sami
-12
nb - Norwegian Extended
-13
nb - NorwegianSami-PC
-22017
or - Oriya-QWERTY
-22016
or - Oriya
-1959
fa - Persian-QWERTY
-17960
fa - Persian
-2901
fa - Persian-ISIRI 2901
-38
ro - Romanian-Standard
-39
ro - Romanian
-1201
se - Sami-PC
-19521
sr-Latn - Serbian-Latin
-25089
si - Sinhala-QWERTY
-25088
si - Sinhala
-66
sl - Slovenian
-15
sv - SwedishSami-PC
-20001
ta - Tamil99
-23553
te - Telugu-QWERTY
-23552
te - Telugu
-26626
th - Thai-PattaChote
-26624
th - Thai
-26628
bo - TibetanOtaniUS
-26625
bo - Tibetan-QWERTY
-2398
bo - Tibetan-Wylie
-36
tr - Turkish-QWERTY-PC
-35
tr - Turkish-QWERTY
-23
tr - Turkish-Standard
-24
tr - Turkish
-2
en - US Extended
-1
- Unicode Hex Input
-17925
ur - Urdu
-27000
ug - Uyghur
-31232
vi - Vietnamese
-790
cy - Welsh
-16900
zh-Hant - Zhuyin Bopomofo
Delete 强制重写NVRAM变量,由于Add不会覆盖NVRAM中已经存在的值,boot-args需要利用此项来刷新。
LegacyEnable 允许从ESP分区的根目录中的NVRAM.plist中读取NVRAM变量。没有原生NVRAM的设备或macOS下硬件NVRAM工作不正常的设备设置为YES,工作正常的设备设置为NO。
NVRAM.plist应包含以下字段。
字段
类型
说明
Version
plist integer
文件版本,必须设定为1
Add
plist dictionary
等同于config.plist中的Add
LegecyOverwrite 允许nvram.plist中的变量覆盖现有NVRAM的变量,只有操作系统访问的到的变量会被覆盖。一般选择NO。
LegacySchema 用于分配NVRAM变量,与LegacyEnable配合使用。允许设置的变量必须指定于LegacySchema中。可用*
值来接受所有用来选择GUID的变量。
打开7C436110-AB2A-4BBB-A880-FE41995C9F82这一栏,添加以下两个item。
名称
类型
内容
item 11
String
efi-boot-device
item 12
String
efi-boot-device-data
WriteFlash 允许将所有添加的变量写入闪存,在某些系统运行时不能将易失性变量转换为非易失性变量的UEFI固件上可开启此项。一般选择NO。
总述
选项
内容
说明
Auto
YES
自动注入机型信息(基于Generic属性而非DataHub/NVRAM/SMBIOS)
CustomMemory
使用在Memory部分所填写的自定义内存配置。该选项将完全取代SMBIOS中任何现有的内存配置,只有当UpdateSMBIOS设置为true时才生效
Generic
在Automatic模式下更新所有字段。当Automatic为false时将自动忽略此部分,但不可将此部分整段删除
DataHub
在非Automatic模式下更新Data Hub字段。当Automatic为true时将自动忽略此部分,但不可将此部分整段删除
Memory
设置自定义的内存配置。当CustomMemory为false时将自动忽略此部分,但不可将此部分整段删除
PlatformNVRAM
在非Automatic模式下更新platform NVRAM字段。当Automatic为true时将自动忽略此部分,但不可将此部分整段删除
SMBIOS
在非Automatic模式下更新SMBIOS字段。当Automatic为true时将自动忽略此部分,但不可将此部分整段删除
UpdateDataHub
YES
更新DataHub(根据Automatic的值,这些字段会从Generic或DataHub中读取)
UpdateNVRAM
YES
更新NVRAM中关于机型信息的相关字段(根据Automatic的值,这些字段会从Generic或PlatformNVRAM中读取,所有其他字段都将在NVRAM部分中指定。设置为false则可以使用nvram部分更新上述变量,设置为true而同时nvram部分存在任何字段则会产生未定义行为)
UpdateSMBIOS
YES
更新SMBIOS(根据Automatic的值,这些字段会从Generic或SMBIOS中读取。Dell笔记本可能需要改为Custom,相当于Clover的DellSMBIOSPatch的一部分)
UpdateSMBIOSMode
Create
用新分配的EfiReservedMemoryType替换原有的表,戴尔笔记本需要使用Custom并开启CustomSMBIOSGuid
UseRawUuidEncoding
对SMBIOS的UUID使用Apple原始编码(Big Endian),关闭时使用Little Endian
UpdateSMBIOSMode选项含义如下。注意,使用Custom时SMBIOS设置只对macOS生效。
选项
说明
TryOverwrite
如果新的数据大小小于等于按页对齐的原始数据,且对解锁legacy region没有影响,则选择Overwrite方式,否则选择Create方式
Create
在AllocateMaxAddress将表替换为新分配的EfiReservedMemoryType,没有回退机制
Overwrite
如果数据大小合适则覆盖现有的gEfiSmbiosTableGuid和gEfiSmbiosTable3Guid,否则将以不明状态中止
Custom
把第一个SMBIOS表即gEfiSmbios(3)TableGuid写入gOcCustomSmbios(3)TableGuid,以此来解决固件在ExitBootServices覆盖SMBIOS内容的问题,否则等同于Create。需要AppleSmbios.kext和AppleACPIPlatform.kext打补丁来读取另一个GUID”EB9D2D31”-“EB9D2D35”in ASCII,这一步由CustomSMBIOSGuid这一Quirk自动完成。设置为Custom可避免OEM激活失效
Generic
选项
内容
说明
SpoofVendor
YES
仿冒制造商为Acidanthera以避免冲突(在SMBIOS的Vendor字段中使用Apple是危险的)
AdviseWindows
在FirmwareFeatures中强制提供Windows支持,允许重启到ESP分区不是磁盘中第一个分区的磁盘中的Windows
MaxBIOSVersion
将BIOSVersion设置为9999.999.999.999.999,建议使用Automatic选项的旧款Mac设置,在运行非官方支持的macOS版本时可避免BIOS升级
SystemMemoryStatus
用来表示内存是否可以更换和升级,控制关于本机-内存
选项卡的可见性
ProcessorType
SystemProductName
MacBookPro15,3
系统型号(从Clover复制)
SystemSerialNumber
C02Z5TZ6LVCG
系统序列号(从Clover复制)
SystemUUID
0CC4E03F-2998-4685-A433-B5ACAB56E9C3
硬件UUID(从Clover复制)
MLB
C029314044N0000CB
MLB(从Clover复制)
ROM
3631A456E9C3
ROM(从Clover复制)
AdviseWindows向FirmwareFeatures中添加两个bit,FW_FEATURE_SUPPORTS_CSM_LEGACY_MODE (0x1)和FW_FEATURE_SUPPORTS_UEFI_WINDOWS_BOOT (0x20000000)。
如果没有FW_FEATURE_SUPPORTS_CSM_LEGACY_MODE,且EFI分区不是硬盘中的第一个分区,或如果没有FW_FEATURE_SUPPORTS_UEFI_WINDOWS_BOOT,且EFI分区是硬盘中的第一个分区,则无法重新启动到硬盘里的Windows系统。
SystemMemoryStatus选项含义如下。注意在某些型号的Mac上,SPMemoryReporter.spreporter会自动忽略PT_FEATURE_HAS_SOLDERED_SYSTEM_MEMORY,并认为其内存是不可升级的,如MacBookPro10,x和所有的MacBookAir
选项
说明
Auto
使用原始的PlatformFeature值
Upgradable
显式取消设置PlatformFeature中PT_FEATURE_HAS_SOLDERED_SYSTEM_MEMORY (0x2)
Soldered
显式设置PlatformFeature中PT_FEATURE_HAS_SOLDERED_SYSTEM_MEMORY (0x2)
对于SystemUUID,一般应使用主板UUID,以免破坏Windows的激活环境。
主板的UUID可以在BIOS中查看,如果BIOS中看不到,可以通过传统方式启动Windows(不能是OC引导),在命令行中查看。打开cmd,输入以下命令即可。
1 2 wmic csproduct list full
DataHub
选项
内容
说明
PlatformName
在gEfiMiscSubClassGuid中设置name。在Mac上找到的值为ASCII码形式的platform
SystemProductName
在gEfiMiscSubClassGuid中设置Model。在Mac上找到的值等于Unicode形式的SMBIOS SystemProductName
SystemSerialNumber
在gEfiMiscSubClassGuid中设置SystemSerialNumber。在Mac上找到的值等于Unicode形式的SMBIOS SystemSerialNumber
SystemUUID
在gEfiMiscSubClassGuid中设置system-id。在Mac上找到的值等于SMBIOS SystemUUID(字节顺序调换)
BoardProduct
在gEfiMiscSubClassGuid中设置board-id。在Mac上找到的值等于ASCII码形式的SMBIOS BoardProduct
BoardRevision
在gEfiMiscSubClassGuid中设置board-rev。在Mac上找到的值似乎与Internal Board Revision相对应(如01)
StartupPowerEvents
在gEfiMiscSubClassGuid Sets中设置StartupPowerEvents。在Mac上找到的值是Power Management State位掩码,通常为0
InitialTSC
在gEfiProcessorSubClassGuid中设置InitialTSC。设置初始TSC值,通常为0
FSBFrequency
在gEfiProcessorSubClassGuid中设置FSBFrequency。此值等于CPU主频除以最高总线比率,以Hz为单位(不用于Skylake或更新平台)
ARTFrequency
在gEfiProcessorSubClassGuid中设置ARTFrequency。晶体时钟频率,为Skylake或更新的平台独有,以Hz为单位,Client Intel segment通常为24MHz,Server Intel segment通常为25MHz,Intel Atom CPUs通常为19.2MHz。10.15及以下均默认为24MHz
DevicePathsSupported
在gEfiMiscSubClassGuid中设置DevicePathsSupported。必须设置为1才能确保 AppleACPIPlatform.kext将SATA设备路径添加到Boot####和efi-boot-device-data变量。所有新款Mac都设置为1
SmcRevision
在gEfiMiscSubClassGuid中设置REV。自定义属性由VirtualSMC/FakeSMC读取,用于生成SMC REV key
SmcBranch
在 gEfiMiscSubClassGuid中设置RBr。自定义属性由VirtualSMC/FakeSMC读取,用于生成SMC RBr key
SmcPlatform
在gEfiMiscSubClassGuid中设置RPlt。自定义属性由VirtualSMC/FakeSMC读取,用于生成SMC RPlt key
Memory
选项
内容
说明
DataWidth
指定内存的数据宽度,以位为单位。DataWidth为0且TotalWidth为8时,表示改设备仅用于提供8个纠错位
Devices
指定要添加的自定义内存设备,用plist dictionary来描述每个内存设备。应该填写所有的内存插槽,包括没有插内存的插槽
ErrorCorrection
指定内存支持的主要硬件纠错或检测方法
FormFactor
指定内存的规格。在Mac上通常是DIMM或SODIMM。当CustomMemory设置为 false 时,该值会根据所设置的 Mac 机型自动设置
MaxCapacity
指定系统支持的最大内存量,以字节为单位
TotalWidth
指定内存的总宽度,以位为单位,包括任何检查或纠错位。如果没有纠错位,则这个值应该等于DataWidth
Type
指定内存类型
TypeDetail
指定附加的内存类型信息
ErrorCorrection的选项如下。
选项
说明
0x01
Other
0x02
Unknown
0x03
None
0x04
Parity
0x05
Single-bit ECC
0x06
Multi-bit ECC
0x07
CRC
FormFactor的选项如下。
选项
说明
0x01
Other
0x02
Unknown
0x09
DIMM
0x0D
SODIMM
0x0F
FB-DIMM
Type的选项如下。
选项
说明
0x01
Other
0x02
Unknown
0x0F
SDRAM
0x12
DDR
0x13
DDR2
0x14
DDR2 FB-DIMM
0x18
DDR3
0x1A
DDR4
0x1B
LPDDR
0x1C
LPDDR2
0x1D
LPDDR3
0x1E
LPDDR4
TypeDetail的选项如下。
选项
说明
Bit 0
Reserved, set to 0
Bit 1
Other
Bit 2
Unknown
Bit 7
Synchronous
Bit 13
Registered (buffered)
Bit 14
Unbuffered (unregistered)
Memory Device
选项
内容
说明
AssetTag
指定该内存的资产标签
BankLocator
指定内存设备所在的物理标签库
DeviceLocator
指定内存设备所在的物理标签插槽或主板上的位置
Manufacturer
指定该内存设备的制造商
PartNumber
指定该内存设备的部件号
SerialNumber
指定该内存设备的序列号
Size
指定内存设备的大小,以兆字节为单位。0表示该插槽未插入内存
Speed
指定设备的最大速度,单位为每秒百万传输量(MT/s)。0表示未知速度
选项
内容
说明
BID
指定NVRAM变量4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:HW_BID
ROM
指定NVRAM变量4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:HW_ROM和4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:ROM
MLB
指定NVRAM变量4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:HW_MLB和4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:MLB
FirmwareFeatures
与FirmwareFeaturesMask配对使用,指定NVRAM变量4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:FirmwareFeatures、4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:ExtendedFirmwareFeatures
FirmwareFeaturesMask
与FirmwareFeatures配对使用,指定NVRAM变量4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:FirmwareFeaturesMask、4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:ExtendedFirmwareFeaturesMask
SystemUUID
指定NVRAM变量4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:system-id的值,仅用于启动服务。在Mac上找到的值等于SMBIOS SystemUUID
SMBIOS
选项
内容
说明
BIOSVendor
BIOS供应商。SystemManufacturer的所有规则都适用
BIOSVersion
固件版本。在较旧的固件中看起来类似于 MM71.88Z.0234.B00.1809171422,在较新的固件中看起来类似于 236.0.0.0.0 或 220.230.16.0.0 (iBridge: 16.16.2542.0.0,0)。iBridge版本从BridgeOSVersion变量读取,并且只在具有T2芯片的Mac上显示
BIOSReleaseDate
固件发布日期。格式类似12/08/2017
SystemManufacturer
特定主板的OEM制造商。非必要不设定,不要包含Apple Inc.字样,否则会混淆操作系统中的大量服务(固件更新、eficheck、Lilu及其插件),还可能导致某些操作系统(如Linux)无法引导
SystemProductName
选择偏好的Mac机型来把设备标记为系统支持的机型。如果SystemProductName与目标操作系统不兼容,可用引导参数-no_compat_check来覆盖。若未指定,则默认值会被设定为MacPro6,1
SystemVersion
产品迭代版本号。类似于1.1
SystemSerialNumber
按照格式定义的产品序列号
SystemUUID
唯一标识符
SystemSKUNumber
Mac主板ID,在旧型号的机器类似于Mac-7BA5B2D9E42DDD94或Mac-F221BEC8。有时可以直接留空
SystemFamily
机型名称。类似于iMac Pro
BoardManufacturer
主板制造商。SystemManufacturer的所有规则都适用
BoardProduct
Mac主板ID,在旧型号的机器类似于Mac-7BA5B2D9E42DDD94或Mac-F221BEC8
BoardVersion
主板版本号
BoardSerialNumber
主板序列号
BoardAssetTag
资产标签号。可留空或填Type2 - Board Asset Tag
BoardType
板类型。0xA表示主板(包括处理器/内存/IO等),0xB表示处理器/内存模块
BoardLocationInChassis
可留空或填Part Component
ChassisManufacturer
主板制造商。SystemManufacturer的所有规则都适用
ChassisType
机箱类型
ChassisVersion
和BoardProduct符合
ChassisSerialNumber
和SystemSerialNumber符合
ChassisAssetTag
机箱类型名称。可留空或填MacBook-Aluminum
PlatformFeature
平台功能位掩码。填写0xFFFFFFFF值时不提供此表
SmcVersion
ASCII字符串,包含SMC版本号(大写)。配备Apple T2安全芯片的Mac没有这一字段。当此值设置为零时,这一选项会被忽略
FirmwareFeatures
64位固件功能位掩码。低32位与FirmwareFeatures匹配,高64位与ExtendedFirmwareFeatures匹配
FirmwareFeaturesMask
扩展固件功能位掩码。低32位与FirmwareFeatures匹配,高64位与ExtendedFirmwareFeatures匹配
ProcessorType
Automatic
自动生成的值(Automatic)是根据当前的CPU规格提供的最准确的值
UEFI ConnectDrivers 强制加载.efi驱动程序,更改为NO将自动连接UEFI驱动程序以获得更快的启动速度。但并非所有驱动程序都可以自行连接,某些文件系统驱动程序可能无法加载,因此此处填YES。
Drivers 添加efi驱动的名称。
Audio 这里的声卡设置只与UEFI环境相关,不影响系统内音频。如果要让Duang和VoiceOver等其它音频功能工作,需要将OCBinaryData中的语音资源包放置于EFI分区的EFI/OC/Resources/Audio下,同时AudioDxe需要安装在Driver文件夹中。
选项
内容
说明
AudioSupport
YES
启用音频支持(不支持DP类的数字音频)
AudioDevice
PciRoot(0x0)/Pci…
声卡设备的PCI地址
AudioCodec
0
声卡的Codec地址,可以在IORegistryExplorer的HDEF-IOHDACodecDevice-IOHDACodecAddress中获得(一般是0x0)
AudioOut
指定的输出设备,从0到声卡总输出数每个都试一遍,声卡的总输出数可以在Debug 版本的OpenCore日志中获得(n Outputs)
MinimumVolume
输出最小音量,有效值为0-100(如果VolumeAmplifier公式计算出的最小音量小于这里给出的值,Duang就不会被播放)
PlayChime
YES
播放Duang(Auto表示当StartupMute NVRAM变量不存在或设置为00时启用开机声音,Enabled为无条件启用,Disabled为无条件禁用)
SetupDelay
音频编解码器重新配置的延迟,单位为微秒。必要的延迟时间可能长达0.5秒
VolumeAmplifier
1000
音量在原有基础上放的百分比,有效范围0-1000
为输入(键盘和鼠标)而设计的个性化设置。
选项
内容
说明
KeyFiltering
启用键盘输入的合理性检查。这个选项会舍弃那些既不是ASCII码,也不是UEFI规范中定义的键
KeyForgetThreshold
5
按住按键后每个键之间的时间间隔(单位毫秒)。在大多数平台上有效的推荐值为5毫秒,当OpenCanopy检测到按键丢失时尝试稍高的值,当检测到按键停滞时尝试稍低的值
KeyMergeTheshold
2
按住按键被重置的时间间隔(单位毫秒)。此选项的建议值为2毫秒,对于较快的平台可以选取较小的值
KeySupport
YES
开启OC的内置键盘支持(若引导界面无法选择分区,或使用了单独的驱动程序,则禁用)
KeySupportMode
Auto
键值转换协议模式(Auto-自动,V1-UEFI旧版输入协议EFI_SIMPLE_TEXT_INPUT_PROTOCOL,V2-UEFI新输入协议EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL,AMI-APTIO输入协议AMI_EFIKEYCODE_PROTOCOL)
KeySwap
NO
交换Command和Option键
PointerSupport
NO
修复UEFI选择器协议,实现标准UEFI指针协议EFI_SIMPLE_POINTER_PROTOCOL(华硕z87/z97需要开启)
PointerSupportMode
/
指定OEM协议,当前仅支持Z87和Z97 ASUS板(如果启用了PointerSupport,此处值不能为空)
TimerResolution
60000
固件时钟刷新的频率(单位100纳秒),普通电脑填50000,华硕主板填60000,苹果主板填100000,0表示自动计算
Output 为输出(文本和图形)而设计的个性化设置。
选项
内容
说明
TextRenderer
BuiltinGraphics
文字渲染模式(BuiltinGraphics-使用OpenCore内置文字渲染的图形模式,并同时启用OpenCore自带的控制台管理,支持HIDPI和全屏范围显示,SystemGraphics-使用主板固件自带文字渲染的图形模式,并同时启用OpenCore自带的控制台管理,SystemText-使用主板固件自带文字渲染的文字模式,并同时启用OpenCore自带的控制台管理,SystemGeneric-使用主板固件自带文字渲染的文字模式和自带的控制台管理)
ConsoleMode
/
TextRenderer使用Builtin时此项设置不生效。设置为空字符串则不会改变控制台模式,设置为Max则会尝试最大的可用控制台模式。在大多数固件上,这个字段最好留空
Resolution
Max
Max将会尝试开启最大分辨率,也可填写宽x高@Bpp
(如3840x2160@32),其中Bpp为显示位深,留空将不会改变UEFIe的默认分辨率(在固件没有GOP时该选项失效,当固件不再提供时可以将ProvideConsoleGop设置为true并添加)
ForceResolution
当默认情况下无法获得所需分辨率时,强制设置Resolution中所填写的分辨率,多用于老的Intel GMA和第一代Intel HD Graphics(Ironlake/Arrandale)。将Resolution设置为Max时,将尝试从所连接的显示器的EDID中提取最大的可用分辨率。该选项依赖OC_FORCE_RESOLUTION_PROTOCOL协议,目前只有 OpenDuetPkg支持该协议,而OpenDuetPkg的实现目前仅支持Intel iGPU
ClearScreenOnModeSwitch
NO
切换到文本模式之前用黑色填充整个屏幕,只在System渲染器上生效(从图形模式切换到文本模式时,某些固件仅清除屏幕的一部分,导致屏幕上残留之前绘制的图片,此情况可打开该选项)
DirectGopRendering
NO
直接使用OpenCore内置的GOP渲染控制台,主要用于提升或修复MacPro5,1的渲染问题(除非开启后能明显感觉到有改进,否则不要开启,开启可能会导致滚动速度变慢)
IgnoreTextInGraphics
NO
在控制台处于与Text不同的模式时舍弃所有文本输出,只在System渲染器上生效。修复不用-v开机时日志覆盖苹果标志输出的问题
ReplaceTabWithSpace
NO
使控制台输出空格来替代tab,在某些设备在UEFIShell中编辑文件使用Tab键出问题时启用(只在System渲染器上生效)
ProvideConsoleGop
YES
选择启动项之后不出现啰嗦模式跑码时启用,开启此选项能确保GOP和UGA(如果存在)在控制台句柄上可用,最大可能保证OpenCore UI和苹果标志以正确分辨率显示(macOS引导加载程序需要GOP,即图形输出协议,存在于控制台句柄上,大部分的笔记本都不提供GOP,台式机的独立显卡可以单独刷入GOP)
ReconnectOnResChange
NO
改变屏幕分辨率后重新连接控制台控制器。有些固件在GOP分辨率改变后要求重新连接控制器才能输出文本,开启这个选项会导致UEFI Shell中启动OpenCore时直接黑屏,尽量避免开启
SanitiseClearScreen
YES
修复OpenCore在高分屏中以1024x768显示的问题,可能会有反效果,只在System渲染器上生效(要将ConsoleMode的内容留空)
DirectGopRendering
NO
使用内置显卡直接渲染开机画面
UgaPassThrough
NO
通过UGA代替无法使用GOP的主板,一般带UEFI的主板以及显卡请选择NO。有些固件不会去实现老旧的UGA协议,但是有些更老的EFI应用程序(如10.4的EfiBoot)可能需要用它来进行屏幕输出
对于控制台输出,可选择Builtin或System渲染器。System渲染器使用固件服务进行文本渲染,Builtin渲染器则绕过固件服务,自行渲染文本。建议使用Builtin渲染器,因为它支持HiDPI模式,并能够使用全屏分辨率。
对于UEFI固件,用于支持ConsoleControl的渲染模式有Graphics和Text。OpenCore和macOS希望文本只在Graphics模式下显示,而图形可以在任何模式下绘制。
TextRenderer的选项分别为BuiltinGraphics、BuiltinText、SystemGraphics、SystemText,分别对应不同的渲染器和渲染模式。SystemGeneric选项则表示使用System渲染器和系统ConsoleControl。
将TextRenderer设置为BuiltinGraphics/SystemGraphics/SystemText时,需启用ProvideConsoleGop,并将Resolution设置为Max。
ProtocolOverrides 强制执行从下面的ProtocolOverrides属性部分所选协议的内置版本。注意所有协议实例的安装都优先于驱动程序的加载。
选项
内容
说明
AppleAudio
YES
重新安装内置版本的Apple Audio协议,以在OpenCore中使用 VoiceOver,目前该协议支持在macOS 10.13及以上播放音频,老系统使用的AppleHDA协议暂未支持
AppleBootPolicy
NO
重新安装内置的Apple Boot Policy协议,确保虚拟机/旧白苹果上兼容APFS
AppleDebugLog
NO
重新安装苹果调试日志输出协议
AppleEvent
NO
重新安装内置的Apple Event协议,虚拟机并具有Vault(文件保险箱)的Mac需要开启
AppleFramebufferInfo
NO
虚拟机专用。重新安装内置的Apple Framebuffer Info协议,可覆盖虚拟机或者旧款Mac上的缓冲帧信息,从而提高与旧版EfiBoot(如macOS 10.4中的EfiBoot)的兼容性
AppleImageConversion
NO
重建Apple图标(重新安装Apple Image Conservation协议)
AppleImg4Verification
重新安装内置的Apple IMG4验证协议。该协议用于验证Apple安全启动所使用的im4m清单文件
AppleKeyMap
NO
重建苹果功能键(重新安装Apple Key Map协议)
AppleRtcRam
NO
重装Apple RTC RAM协议(可能会过滤掉RTC内存地址的潜在I/O,地址列表可以在4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:rtc-blacklist中以数组的方式指定)
AppleSecureBoot
重新安装内置的Apple安全启动协议
AppleSmcIO
YES
重新安装Apple SMC I/O协议(VirtualSmc.efi已经被替代为此选项)
AppleUserInterfaceTheme
NO
重新安装Apple User Interface Theme协议
ConsoleControl
YES
用内置版本替换控制台控制协议
DataHub
NO
重新安装Data Hub协议。如果已经安装了协议,这将删除所有先前的属性
DeviceProperties
NO
重新安装内置版本的Device Property协议。 如果已经安装,它将删除所有以前的属性。这一选项可用于确保确保在VM/旧白苹果上完全兼容
FirmwareVolume
NO
强制包装固件卷协议或安装新版本以支持FileVault 2的自定义光标图像。该选项可修复Filevault的UI问题,提高FileVault的兼容性(包括VMWare在内的多个虚拟机在HiDPI模式下光标会损坏,因此建议为所有虚拟机启用这一选项)
HashServices
NO
强制重新安装内置版本的Hash Services协议,在SHA-1哈希协议不完整的固件上确保FileVault 2的兼容性,修复运行FileVault时鼠标光标大小不正确的问题。对于大多数固件,可通过将UIScale设置为02查看是否会出现禁行图标,来诊断固件是否需要这一Quirk。一般来说APTIO V(Haswell和更早)之前的平台都会受到影响
OSInfo
NO
强制使用内置版本重新安装OS Info协议,为主板或者其它程序接收来自macOS引导工具的消息
UnicodeCollation
NO
制重新安装内置版本的Unicode Collation 服务,修复主板UEFI Shell的兼容性(通常用于IvyBridge或更旧的设备)
Quirks
选项
内容
说明
DeduplicateBootOrder
NO
当RequestBootVarRouting选项开启时,一些其他的操作系统可能在某些主板(如华硕)中会找不到自己的引导而重新创建,最终导致黑果在没有清理NVRAM的情况下无法进入系统时,出现该情况则可开启
DisableSecurityPolicy
禁用平台安全策略,会同时破坏安全启动策略,使用UEFI安全启动时需要禁用
ExitBootServicesDelay
0
主板退出时间(单位微秒),在EXIT_BOOT_SERVICES事件后添加延迟。新主板填0,旧主板(如Z87pro)填3000000-5000000 ,用于修复Still waiting for root device提示信息
IgnoreInvalidFlexRatio
YES
BIOS中无法禁用MSR_FLEX_RATIO(0x194)时开启,在不需要的情况下不建议启用
ReleaseUsbOwnership
NO
从固件驱动程序中释放USB控制器所属权,相当于Clover的FixOwnership(大部分主板都有自动释放USB所有权的功能)
RequestBootVarFallback
NO
一些固件会主动扫描系统启动盘的位置而阻止OC扫描,遇到此问题时可开启
RequestBootVarRouting
YES
请求将所有带有Boot前缀的变量从EFI_GLOBAL_VARIABLE_GUID重定向到OC_VENDOR_VARIABLE_GUID,启用此项以便能够在与macOS引导项设计上不兼容的固件中可靠地使用启动磁盘设置,并使操作系统只受OpenCore引导环境的控制,而不会被其它操作系统搞乱优先级
TscSyncTimeout
0
帮助X99/X299主板开启全核同步功能(应优先使用TSCAdjustReset/VoodooTSCSync/CpuTscSync来做全核同步,因为这个Quirk不能在ACPI S3 模式即睡眠唤醒下运行,会导致睡眠唤醒后失效,而且UEFI固件提供的多核心支持非常有限,无法精确地更新MSR寄存器)
UnblockFsConnect
YES
惠普笔记本在OpenCore引导界面没有引导项时设置为YES(某些固件通过按驱动程序模式下来阻止引导项加载,导致文件系统协议无法安装)
APFS
选项
内容
说明
EnableJumpstart
YES
从APFS容器中加载内置APFS驱动(APFS的EFI驱动内置在所有可以作为系统启动盘的APFS容器之中,确保在Scanpolicy中放开APFS格式)
GlobalConnect
NO
在APFS加载期间执行完整的设备连接,一些主板需要选择YES才能完全加载APFS(如HP笔记本)
HideVerbose
YES
隐藏啰嗦模式
JumpstartHotPlug
YES
允许从进入OpenCore引导菜单后插入的可移除硬盘上的APFS容器中加载APFS驱动
MinDate
0
允许加载的最老APFS驱动的发布日期(0表示使用默认数值,-1表示允许使用任何版本的APFS驱动,其它为时间如20200401)
MinVersion
0
允许加载的最老APFS驱动的版本号(0代表默认数值,当前为从high sierra开始加载,-1代表所有版本,其它为APFS驱动版本号如1412101001000000)
ReservedMemory 用于保留内存。一些硬件会在把硬件EFI写进内存过程中占用必要的UEFI运行空间,所以可以通过此项预留内存保证UEFI的运行。一般情况下无需处理。
选项
内容
说明
Address
保留内存区域的起始地址,该区域应被分配为保留区,有效地将此类型的内存标记标记为操作系统不可访问。这里写的地址必须是内存映射的一部分,具有EfiConventionalMemory类型,并且按页对齐(4KB)。禁用CSM后,某些固件可能不会为S3(睡眠)和S4(休眠)分配内存区域,因此导致唤醒失败,可以分别比较禁用和启用CSM的内存映射,从低层内存中找到这些区域,并保留该区域来修复这个问题
Comment
注释
Size
保留的内存区域的大小,必须按页对齐(4KB)
Type
内存区域类型
Enabled
启用/禁用
Type的选项如下。
选项
与UEFI规范的内存描述符类型的匹配映射
Reserved
EfiReservedMemoryType
LoaderCode
EfiLoaderCode
LoaderData
EfiLoaderData
BootServiceCode
EfiBootServicesCode
BootServiceData
EfiBootServicesData
RuntimeCode
EfiRuntimeServicesCode
RuntimeData
EfiRuntimeServicesData
Available
EfiConventionalMemory
Persistent
EfiPersistentMemory
UnusableMemory
EfiUnusableMemory
ACPIReclaimMemory
EfiACPIReclaimMemory
ACPIMemoryNVS
EfiACPIMemoryNVS
MemoryMappedIO
EfiMemoryMappedIO
MemoryMappedIOPortSpace
EfiMemoryMappedIOPortSpace
PalCode
EfiPalCode
配置文件检查 可在终端输入以下命令进行基本检查。
1 plutil -convert xml1 config.plist && plutil config.plist
也可通过以下网站。
1 https://opencore.slowgeek.com/
也可通过以下脚本。
1 https://github.com/corpnewt/OCConfigCompare
组件 内核 在添加引导项时,OpenCore必须从EFI/BOOT/BOOTx64.efi启动而不是从EFI/OC/OpenCore.efi启动。
基本配置 内存分配 有以下两种关于内存的设置。
KASLR内存注入 KASLR是更加高效的内存注入方式。
DevirtualiseMmio选择yes,ProtectUefiServices选择yes,删除boot-args里面的slide=1,删除Drivers文件夹下的Memoryallocations.efi。
连续性内存注入 DevirtualiseMmio选择yes,ProtectUefiServices选择no,保留boot-args里面的slide=1,保留Drivers文件夹下的Memoryallocations.efi。
修复引导界面显示 在config.plist中修改以下配置。
路径
选项
设置
UEFI->Protocols
ConsoleControl
YES
UEFI->Quirks
ProvideConsoleGop
YES
IgnoreTextInGraphics
YES
SanitiseClearScreen
YES
Misc->Boot
ConsoleMode
留空(有时可设置为Max)
Resolution
显示器的正常分辨率(如4k为3840x2160)
4代及以下
ConsoleBehaviourOs
Graphics
ConsoleBehaviourUi
ForceText
5代+
ConsoleBehaviourOs
ForceGraphics
ConsoleBehaviourUi
ForceText(有时可设置为Graphics/Text)
安全启动 将Misc-Security-SecureBootModel设置为Default或其他有效值即可。若不能开启,则可强制加载IO80211Family,在Kernel-Force下添加以下项即可。
键
类型
值
Arch
String
Any
BundlePath
String
System/Library/Extensions/IO80211Family.kext
Comment
String
Enabled
Boolean
True
Identifier
String
com.apple.iokit.IO80211Family
ExecutablePath
String
Contents/MacOS/IO80211Family
MaxKernel
String
MinKernel
String
PlistPath
String
Contents/Info.plist
外置主题 首先需要保证有OpenCanopy.efi,且PickerMode设置为External。然后将资源放置在Resources目录即可,资源如下。
1 2 3 4 5 6 # 官方资源包 https://github.com/acidanthera/OcBinaryData # 第三方资源包 https://github.com/blackosx/OpenCanopyIcons https://applelife.ru/threads/kastomizacija-opencanopy.2945020/
默认选择的图标由DefaultBackgroundColor变量决定,当该变量的值定义为浅灰时,则使用Old前缀的图标,定义为其他颜色时则使用没有前缀名的图标。
调试模式 普通设置 需要将OpenCore、Lilu及其插件更换为DEBUG版本。对于OpenCore,需要更换以下文件。
1 2 3 4 5 EFI/BOOT/BOOTx64.efi EFI/OC/Bootstrap/Bootstrap.efi EFI/OC/Drivers/OpenRuntime.efi EFI/OC/Drivers/OpenCanopy.efi # 最好不要用该驱动 EFI/OC/OpenCore.efi
可使用以下工具增强调试能力。
1 2 3 4 5 6 7 # DebugEnhancer.kext # 允许更大的内核日志 https://github.com/acidanthera/DebugEnhancer # SSDT-DBG.aml # 启用ACPI表中的调试语句,帮助进行操作系统内ACPI事件调试 https://gist.github.com/al3xtjames/39ebea4d615c8aed829109a9ea2cd0b5
在OpenCore的配置文件中设置以下内容。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 # 提供更多调试信息,特别是与boot.efi相关的信息,并将日志存储到磁盘 Misc-AppleDebug = YES # 将内核panic存储到磁盘 Misc-ApplePanic = YES # 禁用UEFI Watchdog Misc-DisableWatchdog = YES # 启用调试输出 Misc-Target = 67 # 设置记录的内容 Misc-DisplayLevel = 2147483714 # keepsyms=1确保在内核崩溃期间保留符号 # debug=0x12a是DB_KPRT(0x8), DB_KDP_BP_DIS(0x32), DB_KDP_GETC_ENA(0x200)的组合 # msgbuf=1048576是内核的消息缓冲区大小,1048576为1MB(1024^2) # -liludbgall在Lilu和任何其他插件上启用调试 # io=0xff启用IOKit调试(日志记录量很大) # igdebug=0xff启用iGPU相关调试 # acpi_layer=0x8启用ACPI_TABLES调试(或使用0xFFFFFFFF启用全部位) # acpi_level=0x2设置ACPI_LV_DEBUG_OBJECT调试(或使用0xFFFF5F启用ACPI_ALL_COMPONENTS) NVRAM-boot-args = -v keepsyms=1 debug=0x12a msgbuf=1048576 -liludbgall io=0xff igdebug=0xff acpi_layer=0x8 acpi_level=0x2
【进阶】AppleDebug与log=1
AppleDebug选项适用于较新的Mac版本,会把boot.efi的verbose输出日志保存到通用 OpenCore日志中。
对于10.15.4之前的版本,将bootercfg设置为log=1,可以将verbose输出打印在屏幕上。
串行设置 若需要启用串行输出,需要在以上设置的基础上,在配置文件中设置以下内容。
1 2 3 4 5 6 7 8 # 执行串口初始化 Misc-SerialInt = YES # 启用串行输出 Misc-Target = 75 # 将输出重定向到串行 NVRAM-boot-args = serial=5 msgbuf=1048576 debug=0x108
插入串口后使用CoolTerm进行调试,链接如下。
1 https://freeware.the-meiers.org/
打开CoolTerm并点击Options,确保Port为串口控制器,Baudrate选择115200,Data Bits选择8,Parity选择none,Stop Bit选择1。然后点击Connect即可开始监听串口。
设置默认启动盘 在配置文件中开启Misc-Security-AllowSetDefault,然后在引导界面按Ctrl+Enter设置。
获取错误信息 若系统无法启动,可通过OpenCore获取错误信息。需确保OpenCore为DEBUG或NOOPT版本。在配置文件中按照以下内容设置。
1 2 3 4 5 Misc-Debug-Target=3 Misc-Debug-DisplayLevel=0x80000042 Misc-Security-HaltLevel=0x80000000 Misc-Debug-DisableWatchDog=true Misc-Boot-ShowPicker=true
对于Early Boot出现的问题(如OpenCore启动菜单无法显示),通过UEFI Shell可以查看相关调试信息。
自定义启动项 OpenCore遵循Apple Bless标准模型,从引导目录中的.contentDetails
和.disk_label.contentDetails
文件中提取条目名称。这些文件包含带有输入标题的ASCII字符串,可以修改它们以自定义启动项名称。
Windows安装与配置 在OpenCore上应用的所有更改(ACPI、NVRAM、SMBIOS)都应该与操作系统本身无关。OpenCore 会将这些改动生效于所有操作系统,包括Windows。
安装 应当使用Boot Camp安装Windows,以保证其可被OpenCore引导。也可使用Brigadier对现有Windows进行配置,链接如下。
1 https://github.com/timsutton/brigadier
注意使用Brigadier时,需要传递最新型号的Mac,如./brigadier.exe -m iMac19,1
,以防止Boot Camp版本过低导致无法运行。
在不受支持的Mac型号上安装Boot Camp,可以管理员身份运行PowerShell,输入msiexec /i BootCamp.msi
即可。如果之前不小心已经安装了旧版本的Boot Camp,则必须先通过运行msiexec /x BootCamp.msi
将其卸载。BootCamp.msi文件位于BootCamp/Drivers/Apple目录。
配置 反转鼠标滚轮滚动方向 打开PowerShell并输入以下命令即可。
1 2 3 4 5 6 # 获取当前设置 Get-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Enum\HID\*\*\Device` Parameters FlipFlopWheel -EA 0 # 修改设置 # 鼠标滚动方向 相反 FlipFlopWheel 1 # 鼠标滚动方向 自然滚动 FlipFlopWheel 0 Get-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Enum\HID\*\*\Device` Parameters FlipFlopWheel -EA 0 | ForEach-Object { Set-ItemProperty $_.PSPath FlipFlopWheel 1 }
若需要撤销更改,可通过以下命令。
1 Get-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Enum\HID\*\*\Device` Parameters FlipFlopWheel -EA 1 | ForEach-Object { Set-ItemProperty $_.PSPath FlipFlopWheel 0 }
修复Boot Camp启动硬盘控制面板的Basic data partition 需要手动重新标记分区,可通过gdisk,方法如下。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 PS C:\gdisk> .\gdisk64.exe \\.\physicaldrive0 GPT fdisk (gdisk) version 1.0.4 Command (? for help): p Disk \\.\physicaldrive0: 419430400 sectors, 200.0 GiB Sector size (logical): 512 bytes Disk identifier (GUID): DEC57EB1-B3B5-49B2-95F5-3B8C4D3E4E12 Partition table holds up to 128 entries Main partition table begins at sector 2 and ends at sector 33 First usable sector is 34, last usable sector is 419430366 Partitions will be aligned on 2048-sector boundaries Total free space is 4029 sectors (2.0 MiB) Number Start (sector) End (sector) Size Code Name 1 2048 1023999 499.0 MiB 2700 Basic data partition 2 1024000 1226751 99.0 MiB EF00 EFI system partition 3 1226752 1259519 16.0 MiB 0C01 Microsoft reserved ... 4 1259520 419428351 199.4 GiB 0700 Basic data partition Command (? for help): c Partition number (1-4): 4 Enter name: BOOTCAMP Command (? for help): w Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N): Y OK; writing new GUID partition table (GPT) to \\.\physicaldrive0. Disk synchronization succeeded! The computer should now use the new partition table. The operation has completed successfully.
安装到实体Mac上 以Mac Pro 5,1为例。在实体Mac上使用OpenCore,可以让旧版Mac拥有启动选择器屏幕、软件更新、硬件加速、DRM支持等。示例机器配置如下。
内容
Mac Pro型号
MacPro5,1 (Early 2009/Mid 2010/Mid 2012)
处理器架构
Westmere (E56xx/L56xx/X56xx), Gulftown (W36xx)
ROM版本
144.0.0.0.0
显卡
在Catalina/Big Sur受支持的型号
无线网卡
在Catalina/Big Sur受支持的型号 (BCM943224/BCM9435x/BCM9436x)
【特殊】Big Sur 11.3/11.4对Mac Pro的兼容性
Big Sur 11.3/11.4可能已不再支持Mac Pro(Early 2009-Mid 2012)。可使用Big Sur 11.2.3。
修改启动器 操作时建议使用第二块硬盘,在配置失败时仍可以使用原来的硬盘启动。
开启OpenCore 将第二块硬盘设置为GUID分区表,挂载EFI分区,放置OpenCore并使用以下配置文件。
1 https://forums.macrumors.com/attachments/config-zip.1789995/
在终端输入以下命令以进入恢复模式。
1 sudo nvram "recovery-boot-mode=unused" && sudo reboot recovery
进入恢复模式后,打开终端并输入以下命令。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 # 列出分区及其标志符 # 在结果中寻找刚才的EFI分区,此处为diskAs1 diskutil list # 挂载EFI分区 diskutil mount /dev/diskAs1 # 从该EFI分区启动 bless --mount /Volumes/EFI --setBoot # 若失败则使用以下命令 bless --mount /Volumes/EFI --setBoot --file /Volumes/EFI/EFI/BOOT/BOOTx64.efi --verbose # 重启以进入OpenCore reboot
重启后即跳出OpenCore界面,选择要引导的系统即可。启动成功后打开终端并输入以下命令,查看当前引导器是否为OpenCore,若有输出则证明OpenCore已引导系统。
1 nvram 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:opencore-version
关闭OpenCore 将配置文件中RequestBootVarRouting设置为false,重启后在系统偏好设置-启动磁盘中选择当前系统盘并重新启动即可。
修复启动 若开启OpenCore后无法启动,则移除第二块硬盘,启动时按住Option+Command+P+R,在20秒或听到第二声启动提示音后松手,Mac将重置NVRAM并按照正常方式启动。
修改配置文件 开启虚拟化 在SMBIOS下,修改BIOSVersion为9999.0.0.0.0,BoardProduct为Mac-7BA5B2D9E42DDD94,并将UpdateSMBIOS设置为true。
VMM标志 将VMM标志添加到CPUID有助于启用安装和软件更新。因为VMM标志会导致大约 5%的性能损失并禁用电源管理,所以建议仅在安装或检查更新时打开该标志。注意,若使用了虚拟化,则安装和更新Big Sur并不需要开启VMM标志。
修改CPUID为如下即可。
1 2 3 4 5 # 打开VMM标志 AAAAAAAAAAAAAACAAAAAAA== # 关闭VMM标志 AAAAAAAAAAAAAAAAAAAAAA==
GOP渲染器 对于Radeon VII和某些版本的5700 XT,需要启用GOP渲染器以显示启动选择器菜单。但对于RX 580,不需要启用GOP渲染器。建议非必要时禁用GOP渲染器。
将DirectGopRendering设置为true即开启,设置为false即关闭。
启动选择器屏幕 若有HiDPI显示屏,可将UIScale从AQ==改为Ag==。
若需要显示灰色启动屏幕,可将ConsoleAttributes从15改为112,将DefaultBackgroundColor从AAAAAA==改为v7+/AA==。
若需要隐藏启动屏幕,可将ShowPicker改为false。若在隐藏后需要在启动时重新显示,可长按Esc。
启用硬件加速 放置Lilu和WhateverGreen,若为双处理器则还需要放置AppleMCEReporterDisabler。在配置文件中加载以上kext,并在DeviceProperties添加显卡路径,该路径可通过gfxutil查询到。然后在显卡路径下添加以下键。
键
类型
值
agdpmod
Data
70696B65 726100
rebuild-device-tree
Data
00
shikigva
Data
50
unfairgva
Data
01000000
设置启动标志 将NVRAM-7C436110-AB2A-4BBB-A880-FE41995C9F82
-boot-args
下的内容清空即可。
开启Night Shift 放置Lilu和NightShiftEnabler,在配置文件中加载以上kext即可。
安装Windows 确保配置文件中ProtectSecureBoot设置为true,VMM标志关闭,并添加ExFatDxeLegacy.efi驱动。准备一个USB作为安装介质,使用MBR分区表并格式化为exFAT格式。下载Windows安装镜像,双击挂载ISO后将出现CCCOMA_X64映像。
打开终端并输入以下命令,注意需要将USB替换为安装介质的名称。
1 rsync -r /Volumes/CCCOMA_X64/ /Volumes/USB
重启后在启动选择器选择Windows (External)以启动安装环境。启动完成后按Shift+F10打开命令提示符,然后输入以下命令。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 # 进入磁盘工具 diskpart # 列出所有的磁盘 list volume # 根据上述结果选择需要安装Windows的磁盘 select volume 1 # 格式化分区 format quick fs=ntfs label=Windows # 退出磁盘工具 exit # 根据上述磁盘结果,进入USB安装盘分区 D: # 备份EFI文件夹 ren efi efi.bak # 查看需要安装的Windows版本 cd sources dism /get-wiminfo /wimfile:install.wim # 应用镜像 # index的数字根据上述结果选择 # applydir应为刚才格式化好的分区盘符 dism /apply-image /imagefile:install.wim /index:1 /applydir:C:\ /compact /EA # 生成启动文件 bcdboot C:\Windows /s D: /f uefi # 退出 exit
完成后关闭命令提示符并重启,进入Mac系统。挂载EFI分区后,将安装盘中生成的EFI/Microsoft文件夹复制到EFI分区的EFI文件夹中。然后删除安装盘中的EFI文件夹,将efi.bak重命名为efi,弹出USB。完成后重启并进入Windows即可。
安装Ubuntu 常见问题 出现kextd stall (60s) ‘IOUSBHostInterface’或kextd stall (60s) ‘IOHIDInterface’ 使用Catalina Beta 1-3时会出现此问题。在Beta 2中无解决方案,在Beta 3中未测试。
在Beta 1中,可添加以下内核补丁。
键
类型
值
Base
String
_isSingleUser
Count
Integer
1
Enabled
Boolean
True
Find
Data
Identifier
String
com.apple.iokit.IOHIDFamily
Limit
Integer
0
Mask
Data
MaxKernel
String
MinKernel
String
20.0.0
Replace
Data
B801000000C3
ReplaceMask
Data
Skip
Integer
0
出现OCB: boot LoadImage failed 可尝试将ScanPolicy设为983299(0xF0103)。
出现OC:configuration requires vault but no vault procide 更新OpenCore即可。
出现OCS: No schema for xxxxx at xx index! 在config.plist中删除对应项即可。
出现OCB:OcScanForBootEntries failure - Not Found Halting on critical error 修改config.plist中的Misc-Security-ScanPolicy为0即可。
Recovery无法进入 勾选UEFI-APFS-JumpstartHotPlug即可。
卡在[EB|#LOG:EXITBS:START] 未关闭BIOS的CFG锁导致。
在OpenCore配置文件中设置Kernel-Quirks-AppleCpuPmCfgLock,Kernel-Quirks-AppleXcpmCfgLock和UEFI-Quirks-IgnoreInvalidFlexRatio为Yes。
BIOS重设或重启/关机后发送到安全模式 AppleRTC的问题。
在OpenCore配置文件中设置Kernel-Quirks-DisableRtcChecksum为Yes。如果仍然有问题,则需要使用RTCMemoryFixup.kext并排除范围。
使用OpenCore引导启动Windows出现蓝屏 在OpenCore配置文件中设置Booter-Quirks-SyncRuntimePermissions。
Z390关机重启 打开RequestBootVarRouting。
引导时卡在[EB|`B:WFDW] Err(0xE), 0 @ LocHB 71B4903C-14EC-42C4-BDC6-CE1449930E49 在config.plist中勾选UEFI-Quirks-IgnoreInvalidFlexRatio即可。若无效,则勾选Kernel-Quirks-AppleCpuPmCfgLock/AppleXcpmCfgLock。若仍无效,则尝试在BIOS关闭CFG Lock,也可尝试勾选Booter-Quirks-SetupVirtualMap。
出现OC: Driver xxxxxxxx.efi at 3 cannot be started Already started! Halting on critical error 删除对应的驱动即可。
引导OpenCore后回到BIOS/引导选择界面 确定ESP分区内分区结构正确。然后确保引导的是EFI/BOOT/bootx64.efi而不是EFI/OC/OpenCore.efi。
引导时提示no vault provided! 关闭Misc-Security中的RequireSignature和RequireVault,关闭FileVault。
卡在EndRandomSeed 对于AMD CPU,可能是缺少内核补丁。
对于Broadwell和更老的机型,需要勾选IgnoreInvalidFlexRatio。对于奔腾、HEDT,可能需要勾选AppleXcpmExtraMsrs。
也有可能需要勾选UEFI-Output-ProvideConsoleGop,或关闭CFG锁,或使用SSDTTime的FixHPET选项并放置生成的SSDT。
看不到Mac分区 ScanPolicy设置为0,显示所有驱动器。需要放置分区格式驱动,如ApfsDriverLoader和HfsPlus(或VBoxHfs)。若进行网络恢复安装,则应当启用AvoidHighAlloc。
选择OpenCore引导后黑屏 启用UEFI-Output-ProvideConsoleGOP。
关闭CFG锁。对于AMD CPU,应检查是否已添加内核补丁。
引导系统时卡在PCI Configuration Begins, Previous Shutdown…, HID: Legacy… apfs_module_start…等 确保EC控制器名称为EC,以及使用了SSDT-AWAC.aml补丁。若无效,则可添加npci=0x2000参数。若仍无效,则关闭UEFI-Quirks-ReleaseUsbOwnership选项。
kext的加载顺序错误。
因为AppleIntel***Framebuffer导致的Kernel Panic DVMT Pre-allocated的问题。也可能是没有加载SSDT-PLUG.aml,即没有注入plugin-type=1。
I2C触摸板不可用,但驱动已经加载 强制IOGraphicsFamily.kext加载即可。由于OC没有ForceKextsToLoad的功能,需从System/Library/Extension下提取这个kext放到EFI/OC/Kexts,并在config.plist的Kernel-Add 中添加此Kext。
出现OCB: Apple Secure Boot prohibits this boot entry, enforcing! 已安装的系统Preboot分区上的Apple安全启动清单是过时的,从而导致启动失败。可重新安装操作系统,或将/usr/standalone/i386中扩展名为im4m的文件复制到/Volumes/Preboot//System/Library/CoreServices,其中为系统卷的标识符。HFS+文件系统则须复制到系统卷上的/System/Library/CoreServices目录。
出现OCABC: Memory pool allocation failure - Not Found 保证BIOS已启用4G以上解码,且已禁用CSM。
出现** In Memory Panic Stackshot Succeeded ** Bytes Traced xxxxx ** Attenmpting system restart. . . MACH Reboot 可能使用的kext存在问题,或引导器需要更新。若无效,可在config.plist中勾选Kernel-Quirks-AppleCpuPmCfgLock/AppleXcpmCfgLock,或添加阻止补丁DeviceProperties-Block-PciRoot(0x0)/Pci(0x1b,0x0)-MaximumBootBeepVolume。
出现SMCSuper IO ssio: @ failed to detect supported Super IO chip或RTC…, PCI Configuration Begins, Previous Shutdown…, HPET, HID: Legacy…或AppleNVMe Assert failed:( 0 != data )Release file:/AppleInternal/BuildRoot/Library/Caches/ 可能为IRQ冲突,使用SSDTTime的FixHPET选项并放置生成的SSDT即可。
若无效,则可能是PCI分配问题,可尝试更新BIOS,且启用Above4GDecoding,禁用CSM,启用Windows 8.1 / 10 UEFI模式。
对于Catalina及以上版本,可能是缺少EC设备。对于有电池的设备,需将EC设备进行改名。对于无电池的设备,直接使用SSDT-EC即可。
预链接内核问题。需验证kext顺序是否正确。
出现Buffer Too Small 开启UEFI-Quirks-AvoidHighAlloc,并在BIOS启用Above4GDecoding。
出现Plist only kext has CFBundleExecutable key 当一个值不应该是实数时,它被设置为实数,通常是Xcode意外地转换了HaltLevel,如下。
1 2 <key>HaltLevel</key> <real>2147483648</real>
修复为如下即可。
1 2 <key>HaltLevel</key> <integer>2147483648</integer>
选择macOS分区后卡住 关闭CFG锁,或启用AppleXcpmCfgLock和AppleCpuPmCfgLock。
无法在引导界面选择器中选择任何内容 键盘驱动程序不兼容。
禁用PollAppleHotKeys并启用KeySupport,然后在删除OpenUsbKbDxe驱动。若不起作用,则进行相反操作。
出现[EB|’WL:DT] Err(0xE) @ WL:PWLFRTC错误 关闭CFG锁,并将Misc-Debug-DisplayLevel改为0。
系统进入后,关于本机处无法显示序列号或者序列号不可用 关闭Kernel-Quirks-CustomSMBISOGuid。
出现OCB:LoadImage failed - Unsupported 添加HFSPlus.efi或VBoxHfs.efi驱动。
Misc-Security-ScanPolicy设为0。
出现OCB: Start Image failed - Aborted 将ACPI-Delete的补丁全部删除。
出现OCTY:failed to locate apple event protocol - not found 将UEFI-Applelnput-AppleEvent设为Auto。
Chameleon Chameleon只支持传统BIOS,不支持UEFI。Enoch和Chimera都属于Chameleon的分支。
下载 1 2 3 4 5 6 7 8 9 10 11 12 13 # r2908 https://cloud.189.cn/t/jymqYvaeYryi # 2.0 http://www.mediafire.com/file/o5jmzzg1k33/Chameleon_2.0_%252B_EFI10.zip/file # 1.0 http://www.mediafire.com/file/zjzxqojvziu/Chameleon_1.0_%252B_EFI10.zip/file # 其它 http://chameleon.osx86.hu/ http://chameleon.osx86.hu/static/some-words-about-donation?ref=file_download/39/Chameleon-2.0-RC4-r684-bin.tar.gz https://github.com/aserebln/Chameleon
手动安装 Chameleon关于启动的文件如下。
名称
作用
fdisk440
帮助写入boot0、boot0hfs的工具,只会写入440bytes,不破坏MBR中的关于Windows的任何资料
boot0
写入到MBR,boot0会搜索boot1h所在的第一个活动分区
boot0hfs
写入到MBR中,boot0hfs会搜索boot1h所在的第一个分区,无论是否设为活动分区
boot1h
写入到分区引导区块中,借此引导Boot文件
boot
放置于开机分区以完成开机引导程序
将文件复制到EFI分区后,Mac下终端执行以下命令即可将Chameleon安装到EFI分区。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 # 以下dev/rdisk1表示磁盘号 # dev/rdisk1s1表示EFI分区号 # /表示Mac安装分区 cd /Volumes/EFI/usr/standalone/i386 # boot0安装模式 fdisk –f boot0 –u –y /dev/rdisk1 dd if=boot1h of=/dev/rdisk1s1 sudo cp boot / sudo chown 0:0 /boot # boot0hfs安装模式 fdisk –f boot0hfs –u –y /dev/rdisk1 dd if=boot1h of=/dev/rdisk1s1 sudo cp boot / sudo chown 0:0 /boot
目录层级 相当于Clover的kexts/Other目录。
配置文件详解 开启32位 变色龙RC5 r75x版起,开启32位的方法修改为在/Extra/com.apple.Boot.plist内容加入下面设置。
变色龙RC5 r1105版起,开启32位的方法修改为在/Extra/org.chameleon.Boot.plist内容加入下面设置。
1 2 3 4 <key>arch</key> <string>i386</string> <key>Kernel Flags</key> <string></string>
启动参数 com.apple.Boot.plist的参数如下。
参数
含义
备注
-F
忽略org.Chameleon.boot.plist中额外的启动标志
UseKernelCache=Yes
使用内核缓存安装kexts,使用RAID安装Lion则必须开启
GraphicsEnabler=Yes
打开Graphics Enabler功能
等同于Clover中的InjectAMD/Nvidia,注意运行WhateverGreen即可实现该效果
IGPEnabler=Yes
打开IGP启动器,帮助Mac在集显下更好的使用
等同于Clover中的InjectIntel,注意运行WhateverGreen并使用帧补丁即可实现该效果
Theme=Default
设置图形化界面,Default是布景主题名称,可改为任意第三方布景主题名称
Wait=Yes(No)
点击按键后才开始启动内核
Quiet Boot=Yes(No)
开机时不显示文字或图形选单,直接进入系统
Timeout=8
设定开机选择启动分区的秒数
Instant Menu=Yes
强制显示分区选择菜单
Default Partition=hd(x,y)/(=UUID)/(=”Label”)
设定预设开机分区,可使用代码、UUID、标签表示。x代表硬盘代号,y代表分区代号
Hide Partition=hd(x,y)/(=UUID)/(=”Label”)
设定隐藏分区,可使用代码、UUID、标签表示,也可以添加多个参数以隐藏多个分区,使用空白键作分隔。x代表硬盘代号,y代表分区代号
Rename Partition=hd(x,y)/(=UUID)/(="Label") <alias>
设置分区名字,可使用代码、UUID、标签表示,也可以添加多个参数以命名多个分区,使用空白键作分隔。x代表硬盘代号,y代表分区代号,<alias>
代表修改名称(因为使用空白键作分隔,所以命名不可包含空白键)
GUI=Yes(No)
设定启用单图形化界面的开机选单,默认为YES
Boot Banner=Yes(No)
启用在图形化介面显示变色龙版本等讯息文字横幅,默认为YES
Legacy Logo=Yes(No)
启用在进入系统化面显示原苹果Logo,默认为NO
SystemID=
设定开机UUID
RestartFix=Yes
启用重新启动修正功能,建议开启
System-Type=(1),2,3
1=PC,2=笔记本,3=服务器,默认为1
DropSSDT=Yes(No)
忽略BIOS中的SSDT,读取Extra资料中的SSDT资料,默认为NO
GenerateCStates=Yes
启用生成CPU C-State功能(C-State管理CPU电源状态,可以让CPU在闲置状态下处于不同低功耗状态)
GeneratePStates=Yes
启用生成CPU P-State功能(P-State管理CPU性能状态,可以让CPU在不同负载下改变功耗)
EnableC2State=Yes
启用C2 State功能(C2 State管理CPU电源状态,可以让CPU在闲置状态下处于低功耗状态)
EnableC3State=Yes
启用C3 State功能(C3 State管理CPU电源状态,可以让CPU在闲置状态下处于低功耗状态)
EnableC4State=Yes
启用C4 State功能(C4 State管理CPU电源状态,可以让CPU在闲置状态下处于低功耗状态。C2/C3/C4中,数字越大节能效果越明显)
GraphicsEnabler=Yes(No)
启用侦测显卡功能,可取代在DSDT添加的显卡参数,默认为NO
UseNvidiaROM=Yes(No)
启用Nvidia EEPRom功能,可以在不刷显卡BIOS的情况下使用修改的Rom,需要将ROM文件命名为VenderID_DeviceID.rom
并放置Extra资料夹,如10de_0614.rom,默认为NO
UseAtiROM=Yes(No)
启用ATI EEPRom功能,可以在不刷显卡BIOS的情况下使用修改的Rom,需要将ROM文件命名为VenderID_DeviceID.rom
并放置Extra资料夹,如10de_0614.rom,默认为NO
VBIOS=Yes(No)
仅针对NVIDIA显卡,启用读取显卡参数,可在显示卡资讯中显示ROM修正版资讯(如果在Extra资料夹放置显卡Rom文件,版本号会变成显卡Rom文件路径)
EthernetBuiltIn=Yes(No)
启用网卡内建设定侦测功能,默认为NO
EHCIacquire=Yes(No)
启用EHCI功能修正,非必要不开启,默认为NO
UHCIreset=Yes(No)
启用UHCI功能修正,非必要不开启,默认为NO
USBLegacyOff=Yes(No)
启用USB原生功能修正,非必要不开启,默认为NO
USBBusFix=Yes(No)
启用EHCI功能修正、UHCI功能修正、USB原生功能修正,非必要不开启,默认为NO
Wake=Yes(No)
启用睡眠唤醒功能,默认为YES
ForceHPET=Yes(No)
启用强制HPET功能,默认为NO
ForceWake=Yes(No)
启用强制使用睡眠资料映像功能,默认为NO
SMBIOSdefaults=Yes(No)
启用SMBIOS的预设值,默认为NO
Scan Single Drive=Yes(No)
启用扫描单一光驱模式,默认为NO
Rescan=Yes
启用光驱重新扫描模式
config=/Extra/com.apple.Boot.plist
设定com.apple.Boot.plist的位置
SMBIOS=/Extra/SMBIOS.plist
设定SMBIOS.plist的位置
DSDT=/Extra/DSDT.aml
设定DSDT.aml的位置
md0=/Extra/Postboot.img
设定Postboot.img的位置
WakeImage=/private/var/vm/sleepimage
设定睡眠资料映像文件位置
kext=/Extra/Extensions
设定kext/mkext所在位置
ShowInfo=No
取消硬盘分卷与解析度细节显示
CSTUsingSystemIO=Yes
启用新式生成CPU C-State功能
AtiConfig=<cardcfg>
设定ATI显卡Framebuffer,更有效驱动显示卡,如AtiConfig=Uakari
AtiPorts=<value>
设定ATI显卡接口数目
display_0=<value>
写入Nvidia显卡NVDA,Display-A@0的display-cfg参数
display_1=<value>
写入Nvidia显卡NVDA,Display-B@1的display-cfg参数
InjectIntel-ig=x
注入ig-platform-id,适用于HD 4000/4400/4600/5000/Iris,x为Intel iGPU的ID
IntelAzulFB=x
注入可用的ig-platform-id,适用于HD4400/4600/5000/Iris,x范围为0-15
IntelCapriFB=x
注入可用的ig-platform-id,适用于HD4000,x范围为0-11
EnableDualLink=Yes/No
注入Intel iGPU双Dual信息,对于1366x768分辨率使用No,对于1600x900或更高分辨率使用Yes
PCIRootUID=0
内核将在内部主板或CPU GFX寻找视频硬件
PCIRootUID=1
内核将在外部/PCIe插槽寻找视频硬件
对于PCIRootUID应当使用的参数,可通过查看DSDT确定。在DSDT中查找PCI0设备,示例如下。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 # 应当使用PCIRootUID=1 Device (PCI0) { Name (_HID, EisaId ("PNP0A03")) Name (_ADR, 0x00) Name (_UID, 0x01) Name (_BBN, 0x00) ... } # 应当使用PCIRootUID=0 Device (PCI0) { Name (_HID, EisaId ("PNP0A08")) Name (_CID, EisaId ("PNP0A03")) Name (_ADR, Zero) Name (_UID, Zero) Name (_BBN, Zero) ... }
SMBIOS.plist参数如下。
参数
含义
SMfamily=MacPro (Mac) (MacBookPro)
设定产品类型(iMac设定会影响声卡使用时产生电流声,改用MacPro即可)
SMproductname=MacPro3,1 (iMac11,1) (MacBookPro6,1)
设定产品型号(非Nehalem系列处理器不要设定为MacPro4,1,需设定为MacPro3,1或其它)
SMmanufacturer=Apple Inc.
设定制造者
SMbiosvendor=Apple Inc.
设定BIOS供应商
SMboardmanufacturer=Apple Inc.
设定主板制造者
SMboardproduct=Mac-F221BEC8
设定主板型号
SMbiosversion=MP41.88Z.0081.B04.0903051113
设定BIOS版本
SMserial=CK916000000
设定序号
SMsystemversion=1.0
SMcputype=1793(1537)
设定处理器的类型(Core 2 Solo=257,Core 2 Duo=769,Core 2 Quad=1281,Core i5=1537,Core i7=1793)
SMmaximalclock=2926
设定处理器内频(主频)=外频X倍频(内频/主频=CPU Frequency,外频=Base Clock Frequency,倍频=CPU Clock Ratio)
SMexternalclock=133
设定处理器外频
SMbusspeed=4800
设定总线速度
SMmemtype=24
设定内存规格(DDR2=19,DDR3=24)
SMmemspeed=1333
设定内存时脉(DDR2 667=667,DDR2 800=800,DDR3 1066=1066,DDR3 1333=1333,DDR3 1600=1600)
SMmemmanufacturer_1=Kingston
设定内存制造商
SMmemmanufacturer_2=Kingston
设定内存制造商
SMmemmanufacturer_3=Kingston
设定内存制造商
SMmemmanufacturer_4=Kingston
设定内存制造商
SMmemmanufacturer_5=Kingston
设定内存制造商
SMmemmanufacturer_6=Kingston
设定内存制造商
SMmempart_1=9905458-009.A00LF
设定内存零件编号
SMmempart_2=9905458-009.A00LF
设定内存零件编号
SMmempart_3=9905458-009.A00LF
设定内存零件编号
SMmempart_4=9905458-009.A00LF
设定内存零件编号
SMmempart_5=9905458-009.A00LF
设定内存零件编号
SMmempart_6=9905458-009.A00LF
设定内存零件编号
SMmemserial_1=76344B29
设定内存序号
SMmemserial_2=76344B29
设定内存序号
SMmemserial_3=76344B29
设定内存序号
SMmemserial_4=76344B29
设定内存序号
SMmemserial_5=76344B29
设定内存序号
SMmemserial_6=76344B29
设定内存序号
NVRAM支持 Chameleon本身不保存EFI中的内容,因此NVRAM不起作用,需要FileNVRAM模块把nvram文件从磁盘提前加载到内存中。同时该模块向系统插入一个kext,在更改NVRAM时写入内容到/Extra/nvramxxxxxxxx.plist。
常见问题 引导器启动 Boot0: error 一般出现在引导Advanced Format 4格式的HDD上。下载以下文件并复制boot1h到USB安装盘根目录。
1 https://www.dropbox.com/s/owacbzyriibee5o/boot1h.zip
引导到安装程序后,打开磁盘工具,取消挂载系统盘后打开终端,输入以下命令即可。
1 2 3 # identifier为系统盘的索引号,如disk0s2 cd / dd if=boot1h of=/dev/identifier
引导启动 找不到mach_kernel 打开org.chameleon.Boot.plist,修改以下内容。
1 2 <key>Kernel</key> <string>mach_kernel</string>
若无效,则修改为以下内容。
1 2 <key>Kernel</key> <string>/System/Library/Kernels/kernel</string>
BootThink 支持GUID/MBR分区表,2.5.2版可引导Lion。启动时按F8可键入启动参数。
运行Darwin/MBR/SetupMBR.bat,可将BootThink设为第一引导。
安装 在苹果系统下运行安装包。BootThink提供以下安装方式。
安装方式
说明
勾选Boot1h
将boot1h文件写入到所选择安装分区的某个扇区(即dd if=boot1h of=/dev/rdiskXsY)
勾选Boot1h和boot0
除以上操作外,还将boot0文件写入整个磁盘的MBR扇区(即fdisk -f boot0 -u -y /dev/rdiskX)
勾选EFI
安装到EFI分区
卸载 执行Darwin文件夹下的Uninstall。重启计算机后手动删除系统目录下的Darwin文件夹、boot、nbldr和nbldr.mbr即可。
目录层级 以Snow Leopard为例,引导时将加载Darwin/rc/mkext、Darwin/System/LibrarySL/Extensions.mkext和Darwin/System/LibrarySL/Extensions文件夹下的所有kexts。
若需要安装kexts,放置到Darwin/System/LibrarySL/Extensions即可。
为防止kexts冲突,建议删除以下kexts。
1 2 3 Darwin/System/LibrarySL/Extensions/Extensions.mkext Darwin/System/LibrarySL/x32/Extensions/Extensions.mkext Darwin/System/LibrarySL/x64/Extensions/Extensions.mkext
若为Lion,则加载Darwin/System/LibraryLion/Extensions。
引导启动 BootThink会优先使用系统/Library/Preferences/SystemConfiguration下的com.apple.Boot.plist启动配置文件。若不存在则会使用Darwin下的 com.apple.Boot.plist文件。
若需要加载DSDT.aml/SMBIOS.plist,可以直接将此文件放到Darwin下,BootThink会自动加载。
启动参数
参数
含义
b=x
设置当前选中分区为默认启动分区,延时x秒钟启动(0<=x<=32767)
b=~
取消默认启动分区设置
p=-
只显示可引导分区
p=+
显示恢复分区
g=1024x768x32
设置默认启动分辨率为1024x768,深度为32
g=~
取消分辨率设置
-x32
强制使用32位模式启动
Refind 1 https://www.rodsbooks.com/refind/installing.html
其它 包括XPC Bootloader等。
本机文件内容 Clover结构 Mojave/Catalina 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 ├── ACPI │ └── patched │ ├── SSDT-ALS0.aml │ ├── SSDT-ARTC.aml │ ├── SSDT-ASUS.aml │ ├── SSDT-BAT0.aml │ ├── SSDT-Config.aml │ ├── SSDT-DGPU.aml │ ├── SSDT-DMAC.aml │ ├── SSDT-GPRW.aml │ ├── SSDT-MCHC.aml │ ├── SSDT-MEM2.aml │ ├── SSDT-PNLF.aml │ ├── SSDT-UIAC.aml │ └── SSDT-XCPM.aml ├── CLOVERX64.efi ├── config.plist ├── drivers │ └── UEFI │ ├── ApfsDriverLoader.efi │ ├── AudioDxe.efi │ ├── DataHubDxe.efi │ ├── FSInject.efi │ ├── HFSPlus.efi │ ├── OpenRuntime.efi │ └── VirtualSmc.efi └── kexts └── Other ├── AppleALC.kext ├── AsusSMC.kext ├── CPUFriend.kext ├── CPUFriendDataProvider.kext ├── CodecCommander.kext ├── Lilu.kext ├── LiluFriend.kext ├── NoTouchID.kext ├── RealtekRTL8111.kext ├── SMCBatteryManager.kext ├── SMCLightSensor.kext ├── SMCProcessor.kext ├── SMCSuperIO.kext ├── USBInjectAll.kext ├── VirtualSMC.kext ├── VoodooI2C.kext ├── VoodooI2CHID.kext ├── VoodooPS2Controller.kext └── WhateverGreen.kext
Big Sur 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ├── ACPI │ └── patched │ ├── SSDT-GPRW.aml │ └── SSDT-PLUG.aml ├── CLOVERX64.efi ├── config.plist ├── drivers │ └── UEFI │ ├── ApfsDriverLoader.efi │ ├── AudioDxe.efi │ ├── DataHubDxe.efi │ ├── FSInject.efi │ ├── HFSPlus.efi │ ├── OpenRuntime.efi │ └── VirtualSmc.efi └── kexts └── Other ├── Lilu.kext ├── SMCBatteryManager.kext ├── SMCLightSensor.kext ├── SMCProcessor.kext ├── SMCSuperIO.kext ├── USBInjectAll.kext ├── VirtualSMC.kext ├── VoodooI2C.kext ├── VoodooI2CHID.kext ├── VoodooPS2Controller.kext └── WhateverGreen.kext
OpenCore结构 Catalina 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 ├── ACPI │ ├── SSDT-ALSD.aml │ ├── SSDT-ARTC.aml │ ├── SSDT-ASUS.aml │ ├── SSDT-BAT0.aml │ ├── SSDT-Config.aml │ ├── SSDT-DGPU.aml │ ├── SSDT-DMAC.aml │ ├── SSDT-EC.aml │ ├── SSDT-GPRW.aml │ ├── SSDT-MCHC.aml │ ├── SSDT-MEM2.aml │ ├── SSDT-PLUG.aml │ ├── SSDT-PMCR.aml │ ├── SSDT-PNLF.aml │ ├── SSDT-SBUS.aml │ ├── SSDT-UIAC.aml │ └── SSDT-XCPM.aml ├── Drivers │ ├── ApfsDriverLoader.efi │ ├── AudioDxe.efi │ ├── HfsPlus.efi │ ├── OpenCanopy.efi │ ├── OpenRuntime.efi │ └── OpenUsbKbDxe.efi ├── Kexts │ ├── AppleALC.kext │ ├── AsusSMC.kext │ ├── CodecCommander.kext │ ├── Lilu.kext │ ├── LiluFriend.kext │ ├── NoTouchID.kext │ ├── RealtekRTL8111.kext │ ├── SMCBatteryManager.kext │ ├── SMCLightSensor.kext │ ├── SMCProcessor.kext │ ├── SMCSuperIO.kext │ ├── USBInjectAll.kext │ ├── VirtualSMC.kext │ ├── VoodooPS2Controller.kext │ └── WhateverGreen.kext ├── OpenCore.efi └── config.plist
Big Sur 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ├── ACPI │ ├── SSDT-GPRW.aml │ └── SSDT-PLUG.aml ├── Drivers │ ├── ApfsDriverLoader.efi │ ├── AudioDxe.efi │ ├── HfsPlus.efi │ ├── OpenCanopy.efi │ ├── OpenRuntime.efi │ └── OpenUsbKbDxe.efi ├── Kexts │ ├── Lilu.kext │ ├── SMCBatteryManager.kext │ ├── SMCLightSensor.kext │ ├── SMCProcessor.kext │ ├── SMCSuperIO.kext │ ├── USBMap.kext │ ├── CtlnaAHCIPort.kext │ ├── VirtualSMC.kext │ ├── VoodooI2C.kext │ ├── VoodooI2CHID.kext │ ├── VoodooPS2Controller.kext │ └── WhateverGreen.kext ├── OpenCore.efi └── config.plist
附录 旧版资源 1 2 3 4 5 6 7 8 9 https://github.com/OSXLatitude/EDP https://support.apple.com/downloads http://www.powerpcsoftware.com/ http://www.macos9lives.com/ http://macintoshgarden.org/ http://www.umich.edu/~archive/ https://www.macintoshrepository.org/ http://vintagemacmuseum.com/resources/mac-software/ https://pikeralpha.wordpress.com/2017/06/06/catalogurl-for-macos-10-13-high-sierra/
工具 ProperTree 1 2 https://github.com/corpnewt/ProperTree https://codeload.github.com/corpnewt/ProperTree/zip/master
OpenCore Configurator 1 https://mackie100projects.altervista.org/download-opencore-configurator/
参考教程 黑苹果制作虚拟机CDR镜像 1 https://blog.csdn.net/qq_41855420/article/details/102750055
OpenCore引导教程 1 2 3 4 5 6 7 https://blog.daliansky.net/OpenCore-BootLoader.html https://blog.daliansky.net/From-Clover-To-OpenCore.html https://blog.skk.moe/post/from-clover-to-opencore/ https://blog.xjn819.com/?p=543 https://khronokernel-2.gitbook.io/opencore-vanilla-desktop-guide/ https://dortania.github.io/OpenCore-Desktop-Guide/ https://kirainmoe.com/blog/post/opencore-migration-experience/#13-%e4%bf%ae%e6%94%b9-configplist
【持续更新】OpenCore引导-v各种卡及OC引导常见问题解决方案速查表合集 1 https://imacos.top/2020/03/28/0154/
macOS 10.13安装中常见的问题及解决方法 1 https://blog.daliansky.net/macOS-10.13-installation-of-common-problems-and-solutions.html
OpenCore 引导迁移折腾记录 1 https://kirainmoe.com/blog/post/opencore-migration-experience/
热补丁制作教程 1 2 3 https://www.penghubingzhou.cn/2019/05/02/Battery%20Hotpatch%20Make/ https://xstar-dev.github.io/hackintosh_advanced/Guide_For_Battery_Hotpatch.html http://yqp7js.coding-pages.com/2020/05/16/%E8%BF%9B%E9%98%B6%EF%BC%9A%E7%94%B5%E6%B1%A0%E7%83%AD%E8%A1%A5%E4%B8%81%EF%BC%88Battery-Hotpatch%EF%BC%89%E4%B9%8B%E8%B7%AF/
Acidanthera故障排除 1 https://github.com/acidanthera/bugtracker
AsusSMC使用教程 1 https://github.com/hieplpvip/AsusSMC/wiki/Installation-Instruction
macOS Catalina 10.15安装中常见的问题及解决方法 1 https://blog.daliansky.net/Common-problems-and-solutions-in-macOS-Catalina-10.15-installation.html
FIREWOLF OS X PE 9 使用手册 1 https://pe.firewolf.app/manual/chapter3/launcherfirstview.html
Clover的用法 1 https://www.misonsky.cn/28.html
Booting the OS X installer on LAPTOPS with Clover 1 https://www.tonymacx86.com/threads/guide-booting-the-os-x-installer-on-laptops-with-clover.148093/
MaciASL / Wiki / Patching Syntax Grammar 1 https://sourceforge.net/p/maciasl/wiki/Patching%20Syntax%20Grammar/
Using Clover to hotpatch ACPI 1 https://www.tonymacx86.com/threads/guide-using-clover-to-hotpatch-acpi.200137/
Clover EFI Bootloader v5.1 r5127 四叶草黑苹果引导程序 1 https://heipg.cn/clover/clover-efi-bootloader-v5-1-r5127.html
-V进mac不滚代码直接卡++加号或者加号下几行代码Error allocating 0x11c8d pages at……卡住解决方案 1 https://imacos.top/2019/08/12/1033/
CatalinaAutoMountWritable.plist 1 https://forums.macrumors.com/attachments/catalinaautomountwritable-plist-zip.847064/
用热补丁修理你的触摸板 1 2 https://blog.gzxiaobai.cn/2020/05/17/%E7%94%A8%E7%83%AD%E8%A1%A5%E4%B8%81%E4%BF%AE%E7%90%86%E4%BD%A0%E7%9A%84%E8%A7%A6%E6%91%B8%E6%9D%BF%EF%BC%88TouchPad-Hotpatch%EF%BC%89/ http://yqp7js.coding-pages.com/2020/05/17/%E7%94%A8%E7%83%AD%E8%A1%A5%E4%B8%81%E4%BF%AE%E7%90%86%E4%BD%A0%E7%9A%84%E8%A7%A6%E6%91%B8%E6%9D%BF%EF%BC%88TouchPad-Hotpatch%EF%BC%89/
Hotpatch热补丁之路2:常见的种类与外部引用 1 http://bbs.pcbeta.com/viewthread-1866928-1-1.html
Fix for El Capitan stuck at login 1 https://discussions.apple.com/thread/7376445?tstart=0
Macbook Pro stuck after I enter my password 1 https://apple.stackexchange.com/questions/305097/macbook-pro-stuck-after-i-enter-my-password
AptioMemoryFix 1 https://www.insanelymac.com/forum/topic/331381-aptiomemoryfix/?tab=comments#comment-2564269
1 https://support.apple.com/en-gb/HT202528
macOS启动参数列表 1 https://blog.skk.moe/post/macos-boot-args/
Dortania’s OpenCore Install Guide 1 2 https://dortania.github.io/OpenCore-Install-Guide/ https://thrrip.github.io/OpenCore-Install-Guide/
Clover Kexts and Firmware driver conversion(.kext, .efi) 1 https://github.com/dortania/OpenCore-Install-Guide/blob/master/clover-conversion/clover-efi.md
macOS BigSur 11.0安装中常见的问题及解决方法 1 https://blog.daliansky.net/Common-problems-and-solutions-in-macOS-BigSur-11.0-installation.html
Release Date – Gixxer PC 1 https://www.dualbootpc.com/guide/release-date/
TSplicedFont failed creating descriptor for El Capitan 1 https://apple.stackexchange.com/questions/304552/tsplicedfont-failed-creating-descriptor-for-el-capitan
Acer V5-572G On Yosemite 1 https://www.jianshu.com/p/30ff92784076
How to make a bootable Mountain Lion install drive 1 https://www.macworld.com/article/1167857/how-to-make-a-bootable-mountain-lion-install-drive.html
Who can help me compile the DSDT, Thanks! 1 https://www.tonymacx86.com/threads/solved-who-can-help-me-compile-the-dsdt-thanks.189972/
HACKINTOSH BOOT FLAGS 1 https://www.fitzweekly.com/2016/04/hackintosh-boot-flags.html
macOS系统下载 1 https://www.applex.net/pages/macos/
1 http://bbs.pcbeta.com/forum.php?mod=viewthread&tid=1876638
acidanthera/bugtracker 1 2 3 4 5 6 https://github.com/acidanthera/bugtracker/issues/1235 https://github.com/acidanthera/bugtracker/issues/901 https://github.com/acidanthera/bugtracker/issues/1193 https://github.com/acidanthera/bugtracker/issues/1222 https://github.com/acidanthera/bugtracker/issues/424 https://github.com/acidanthera/bugtracker/issues/995
macOS 11.0 Big Sur Public Beta 10 - boot, kernel panic 1 https://www.tonymacx86.com/threads/solved-macos-11-0-big-sur-public-beta-10-boot-kernel-panic.305007/
Slide值获取及计算 1 https://blog.daliansky.net/Slide-value-acquisition-and-calculation.html
macOS 11 Big Sur on Unsupported Macs Thread 1 2 https://forums.macrumors.com/threads/macos-11-big-sur-on-unsupported-macs-thread.2242172/page-28?post=28603788#post-28603788 https://forums.macrumors.com/threads/macos-11-big-sur-on-unsupported-macs-thread.2242172/page-29?post=28604333#post-28604333
Install macOS Big Sur on a Newly Unsupported Mac With WI-FI Working: My iMac Late-2012 1 https://blog.juliensatti.com/install-macos-big-sur-mac-obsolete/
Making WiFi work on Big Sur unsupported Macs with “failed with 66” error 1 https://andv.medium.com/making-wifi-on-big-sur-unsupported-macs-with-failed-with-66-error-36c98e3f7965
[教程] Win版变色龙安装到EFI方法 1 http://bbs.pcbeta.com/forum.php?mod=viewthread&tid=1072629
Previous Shutdown Causes Explained 1 https://georgegarside.com/blog/macos/shutdown-causes/
Stuck on [ PCI CONFIGURATION BEGIN ] npci=0x2000 not working 1 https://www.tonymacx86.com/threads/stuck-on-pci-configuration-begin-npci-0x2000-not-working.49320/
macOS版本歷史 - 維基百科,自由的百科全書 1 https://zh.wikipedia.org/wiki/MacOS%E7%89%88%E6%9C%AC%E6%AD%B7%E5%8F%B2
[Hack] Hackintosh - Install Mac OS X 10.6.8 (Snow Leopard) on ThinkPad X61T (Tablet) 1 https://xuelianghan.tumblr.com/post/52456030005/hack-hackintosh-install-mac-os-x-1068-snow
成功安装MAC OS 10.4.6 for X86 1 http://www.playcase.com/blog/article.asp?id=55
VMware再战MAC 10.5.2 1 http://www.playcase.com/blog/article.asp?id=103
Mac OSx86: 10.4.8 Tiger VMware Installation Guide 1 https://blog.naver.com/sysyphus/70025314227
识别 MacBook Pro 机型 1 https://support.apple.com/zh-cn/HT201300
识别 MacBook 机型 1 https://support.apple.com/zh-cn/HT201608
识别 MacBook Air 机型 1 https://support.apple.com/zh-cn/HT201862
识别 Mac mini 机型 1 https://support.apple.com/zh-cn/HT201894
识别 Mac Pro 机型 1 https://support.apple.com/zh-cn/HT202888
识别您的 iMac 机型 1 https://support.apple.com/zh-cn/HT201634
MacBook Pro机型列表/型号详解(识别MacBook Pro机型) 1 https://www.xiaoyuanjiu.com/10465.html
如何识别 MacBook Pro 机型 1 https://www.jianshu.com/p/45151c1444fd
MacBook - 維基百科,自由的百科全書 1 https://zh.wikipedia.org/wiki/MacBook
iMac (Intel-based) - Wikipedia 1 https://en.wikipedia.org/wiki/IMac_(Intel-based)
iMac Pro - Wikipedia 1 https://en.wikipedia.org/wiki/IMac_Pro
Mac mini - 维基百科,自由的百科全书 1 https://zh.wikipedia.org/wiki/Mac_mini
Mac Pro - 維基百科,自由的百科全書 1 https://zh.wikipedia.org/wiki/Mac_Pro
MacBook Pro - 維基百科,自由的百科全書 1 https://zh.wikipedia.org/wiki/MacBook_Pro
MacBook Air - 維基百科,自由的百科全書 1 https://zh.wikipedia.org/wiki/MacBook_Air
APPLE 电脑型号大全 1 https://blog.csdn.net/zhugq_1988/article/details/42705659
如何获取旧版 macOS 1 https://support.apple.com/zh-cn/HT211683
如何升级至 macOS Big Sur 1 https://support.apple.com/zh-cn/HT201475
iMac - iMac11,1 | Itemcycle 1 https://www.itemcycle.com/imac/id/iMac11,1
iMac - Macmini5,3 | Itemcycle 1 https://www.itemcycle.com/imac/id/Macmini5,3
Apple 15” MacBook Pro (2.53Ghz, Mid 2009); MacBookPro5,4 Installation Guides & Specifications - Macfixit Australia 1 https://support.macfixit.com.au/article/119-apple-15-macbook-pro-253ghz-mid-2009-macbookpro54-installation-guides-specifications
记录一些Opencore黑苹果问题解决方案 1 https://www.cmlnt.com/?p=239
21.5” iMac (Edu, Slim Alum., Early 2013) / 3.3 GHz Core i3 / ME699LL/A 1 https://www.sellyourmac.com/mac-product-guides/imac/me699ll-a-21-5-imac-edu-slim-alum-early-2013-3-3-ghz-core-i3.html
21.5-inch Apple iMac - Late 2013* 1 https://eshop.macsales.com/tech_center/system-specs/iMac2013.09_21.5_143/
Mac & Apple Devices - EveryMac.com’s Ultimate Mac Lookup 1 https://everymac.com/ultimate-mac-lookup/?search_keywords=iMac14,3
黑苹果必备驱动:VirtualSMC 系统管理控制器内核仿冒驱动 1.1.4 1 https://heipg.cn/drivers/virtualsmc-1-1-4.html
[OpenCore] 关于AppleIntelMCEReporter的报错 1 http://bbs.pcbeta.com/forum.php?mod=viewthread&tid=1843338
苹果macOS 10.9~10.15系列原版系统镜像下载 1 https://mac.osystem.club/47.html
X61 安装完黑苹果10.6.4 无法驱动无线网卡 1 http://mac.8miu.com/thread-791955-1-1.html
异常处理 1 https://tinylab-1.gitbook.io/lad-book/zh-cn/kernel/core/exception
Mac OS X for PPC (Mac OS 10) 1 http://macintoshgarden.org/apps/mac-osx-mac-os-10-ppc
Mac OS X Public Beta 1 http://macintoshgarden.org/apps/mac-os-x-public-beta
An Unpatched Kernel Bug 1 https://objective-see.com/blog/blog_0x27.html
[Guide] Gigabyte Z77X UD5H Clover UEFI Install/Tweak guide 1 https://www.insanelymac.com/forum/topic/288829-guide-gigabyte-z77x-ud5h-clover-uefi-installtweak-guide/?_fromLogin=1
‘[IOBluetoothHCIController]…– Missing Bluetooth Controller Transport!’ 1 https://www.insanelymac.com/forum/topic/320388-iobluetoothhcicontroller-missing-bluetooth-controller-transport/
使用 Mini vMac 搭建一个 System 7.0 虚拟机 1 https://zhuanlan.zhihu.com/p/57342369?from_voters_page=true
How to Install Mac OS System 1.0 - 7.5 in Mini vMac and Run Classic 68k Applications 1 https://www.youtube.com/watch?v=FhdGxH8lzGA
1 https://www.reddit.com/r/hackintosh/comments/hdlb6i/open_core_boot_menu_keyboard_not_working/
DRM Compatibility Chart for 10.15 1 https://github.com/acidanthera/WhateverGreen/blob/master/Manual/FAQ.Chart.md
Howto create nVidia EFI string for Geforce the simple way 1 http://forum.netkas.org/index.php?topic=222.0
GPU Buyers Guide 1 https://dortania.github.io/GPU-Buyers-Guide/
使用 QEMU 模拟 PowerPC 版本的 Mac OS X / Classic Mac OS 1 https://blog.qwq.ren/posts/simulation-of-ppc-macos-via-qemu/
Can you virtualize PowerPC versions of Mac OS X on Intel Macs? 1 https://apple.stackexchange.com/questions/22262/can-you-virtualize-powerpc-versions-of-mac-os-x-on-intel-macs
FakeSMC, VirtualSMC, LAN, Sound, Graphics - где взять кексты? 1 https://applelife.ru/threads/fakesmc-virtualsmc-lan-sound-graphics-gde-vzjat-keksty.2942933/page-2#post-744431
[交流] 新手常见(五国)(-v图)错误解决(原版,破解kernel,补丁kext下载) 1 2 https://blog.csdn.net/ashuai81/article/details/8032952 https://blog.csdn.net/JoeBlackzqq/article/details/29359827
[分享] 终于安装上雪豹了,把自己的经验与大家分享,解决了IOATAFamily.kext引起的问题 1 http://bbs.pcbeta.com/viewthread.php?tid=595342
[下载] 最新发布:bootthink 2.5.2 for lion包括WIN版和MAC版~附带Mac OS安装教程 1 http://bbs.pcbeta.com/viewthread-937914-1-1.html
使用 QEMU 模拟 PowerPC 版本的 Mac OS X / Classic Mac OS 1 https://blog.qwq.ren/posts/simulation-of-ppc-macos-via-qemu/
在macos使用qemu安裝windows 1 https://slanla.com/2020-12-17-529
Alternate Guide #1 – OS X Snow Leopard Install using Retail DVD 1 https://tonymacx86.blogspot.com/2009/11/alternate-guide-1-os-x-snow-leopard.html
[分享] 从技术角度谈谈10.11的USB驱动机制,兼论10.11 USB安装盘的花屏禁行问题 1 http://bbs.pcbeta.com/viewthread-1646768-1-1.html
[教程] 新手安装指南:一步一步在Windows安装苹果雪豹系统 1 2 http://bbs.pcbeta.com/viewthread-592288-1-1.html https://blog.csdn.net/Mamong/article/details/6791740
OCB: boot LoadImage failed - Not Found 1 https://www.tonymacx86.com/threads/ocb-boot-loadimage-failed-not-found.297803/
mac 安装qemu的方法 1 https://blog.csdn.net/qianss520/article/details/90294748
Redundant Robot 1 https://www.redundantrobot.com/sheepshaver
How To Install Mac OS 9 In OS X Using SheepShaver 1 https://www.youtube.com/watch?v=XQAf7GII9NY
Setting up System 7.5.3 with BasiliskII for OSX/macOS 1 https://www.emaculation.com/doku.php/basiliskii_osx_setup#setting_up_system_753_with_basiliskii_for_osx_macos
/r/Hackintosh Multiboot 1 2 https://hackintosh-multiboot.gitbook.io/hackintosh-multiboot/ https://github.com/midi1996/JBOG/blob/master/Multiboot.md
OpenCore 引导迁移折腾记录 1 https://kirainmoe.com/blog/post/opencore-migration-experience/
XStar-Dev’s Blog 1 https://xstar-dev.github.io/
NVRAM Variables 1 https://docs.google.com/spreadsheets/d/1HTCBwfOBkXsHiK7os3b2CUc6k68axdJYdGl-TyXqLu0/
Boot argument options in OS X 1 https://osxeon.wordpress.com/2015/08/10/boot-argument-options-in-os-x/
[教程] Darwin boot loader參數一覽(中文版) 1 http://bbs.pcbeta.com/viewthread-638119-1-3.html
[教程] 【变色龙系列一】Chameleon手动安装说明+ Chameleon 2 RC5 Rev580【11/03更新】 1 http://bbs.pcbeta.com/viewthread.php?tid=797534
1 http://bbs.pcbeta.com/viewthread-798366-1-1.html
黑苹果常见kext驱动解读 1 https://macx.top/1972.html
Is there a list of available boot-args for darwin / OS X 1 https://superuser.com/questions/255176/is-there-a-list-of-available-boot-args-for-darwin-os-x
/r/Hackintosh macOS Internet Install 1 https://internet-install.gitbook.io/macos-internet-install/
[交流] DSDT 修改討論 (技嘉) 02/04 更新 1 http://bbs.pcbeta.com/viewthread-633082-1-1.html
[GUIDE] Snow Leopard with 100% vanilla /S/L/E - Comprehensive DSDT patching guide 1 https://www.insanelymac.com/forum/topic/211705-guide-snow-leopard-with-100-vanilla-sle-comprehensive-dsdt-patching-guide/
Mother-FKR/RazerBlade15-Base-Model-Hackintosh_macOS_Big_Sur 1 https://github.com/Mother-FKR/RazerBlade15-Base-Model-Hackintosh_macOS_Big_Sur
[教程] 「教程」简单扯扯用 VMWare 在实体机上装 Big Sur 1 http://bbs.pcbeta.com/forum.php?mod=viewthread&tid=1862049&highlight=big%2Bsur
[Guide] Installing Mountain Lion. 1 https://www.insanelymac.com/forum/topic/277015-guide-installing-mountain-lion/
[Guide] The all-in-one guide to Vanilla OS X (including Chameleon + DSDT) for beginners (updated for Yosemite!) 1 https://www.insanelymac.com/forum/topic/280756-guide-the-all-in-one-guide-to-vanilla-os-x-including-chameleon-dsdt-for-beginners-updated-for-yosemite/
ALL IN ONE GUIDES FOR HACKINTOSH 1 https://www.insanelymac.com/forum/topic/298027-guide-aio-guides-for-hackintosh/
黑苹果常见驱动以及作用介绍 1 http://blog.sina.com.cn/s/blog_4ddc30040102yzho.html
黑果驱动介绍和选择 1 https://zhuanlan.zhihu.com/p/94680998
(GUIDE) Calculating your Bus Ratio 1 https://www.insanelymac.com/forum/topic/240542-guide-getting-your-busratio/
Existing Lilu plugins 1 https://github.com/acidanthera/Lilu/blob/master/KnownPlugins.md
Chameleon 2.4svn Official PKG Installer 1 https://www.insanelymac.com/forum/topic/231075-chameleon-24svn-official-pkg-installer/
[Guide] USB power property injection for Sierra (and later) 1 https://www.tonymacx86.com/threads/guide-usb-power-property-injection-for-sierra-and-later.222266/
Οδηγός Εγκατάστασης MacOSX Lion 10.7 στο project PC (GA-EP35-DS3P). v1.1 1 https://howtomacospc.wordpress.com/2011/12/02/%CE%BF%CE%B4%CE%B7%CE%B3%CF%8C%CF%82-%CE%B5%CE%B3%CE%BA%CE%B1%CF%84%CE%AC%CF%83%CF%84%CE%B1%CF%83%CE%B7%CF%82-macosx-lion-10-7-2-%CF%83%CF%84%CE%BF-project-pc-ga-ep35-ds3p-v1-1/
The Always Up-to-Date Guide to Building a Hackintosh (macOS Sierra) 1 https://lifehacker.com/the-always-up-to-date-guide-to-building-a-hackintosh-o-5841604
How to easily install Mac OS X Lion on your PC / Laptop Osx86 Hackintosh Walkthrough / Tutorial 1 https://www.youtube.com/watch?v=f6gnFSwRVpI
Δημιουργία DVD Mac OS X Lion installation για PC (video) 1 https://howtomacospc.wordpress.com/2011/10/30/%ce%b4%ce%b7%ce%bc%ce%b9%ce%bf%cf%85%cf%81%ce%b3%ce%af%ce%b1-dvd-lion-installation-%ce%b3%ce%b9%ce%b1-pc/
Installation Guides 1 https://wiki.osx86project.org/wiki/index.php/Installation_Guides
Cómo activar Intel HD 2500 ga-z77-d3h en OS X 10.8.5 Mountain Lion 1 https://www.osx86spain.com/52/47197/como-activar-intel-hd-2500-ga-z77-d3h-en-os-x-10-8-5-mountain-lion.html
Install OS X Lion 10.7.2, 10.7.3 on PC Hackintosh [USB] 1 https://geeknizer.com/install-osx-lion-10-7-2-on-pc-hackintosh-usb/
Install Snow Leopard on PC 1 https://geeknizer.com/install-snow-leopard-on-pc/
Retail OS X Install (10.5.7) on Gigabyte GA-EX58-UD5 (Core i7) Mobo, Scripted 1 https://wiki.osx86project.org/wiki/index.php/Retail_OS_X_Install_%2810.5.7%29_on_Gigabyte_GA-EX58-UD5_%28Core_i7%29_Mobo%2C_Scripted
Dual Boot Windows 7 and OS X Snow Leopard Using Chameleon 1 https://tonymacx86.blogspot.com/2009/11/dual-boot-windows-7-and-os-x-snow.html
Build a Hackintosh Mac for Under $800 1 https://lifehacker.com/build-a-hackintosh-mac-for-under-800-321913
Инсталация на mac os x 10.5.x на ПЦ с дуалбуут 1 https://www.kaldata.com/forums/topic/157610-%D0%B8%D0%BD%D1%81%D1%82%D0%B0%D0%BB%D0%B0%D1%86%D0%B8%D1%8F-%D0%BD%D0%B0-mac-os-x-105x-%D0%BD%D0%B0-%D0%BF%D1%86-%D1%81-%D0%B4%D1%83%D0%B0%D0%BB%D0%B1%D1%83%D1%83%D1%82/
creating a kext disabler 1 https://www.tonymacx86.com/threads/creating-a-kext-disabler.48254/
【持续更新】OpenCore引导-v各种卡及OC引导常见问题解决方案速查表合集 1 http://imacos.top/2021/01/19/0154/
How to update to 10.5.2./10.5.3
Triple Boot Windows 7, Mac OS X Snow Leopard & Ubuntu 10.04 1 https://bigfloppydonkeydisk.blogspot.com/2010/07/triple-boot-windows-7-mac-os-x-snow.html
Vista bootloader 1 https://wiki.osx86project.org/wiki/index.php/Vista_bootloader
Understanding MAC OSx86 for Dummies 1 https://geeknizer.com/understanding-mac-osx86-for-dummies/
Download, Install Chameleon RC4 Bootloader 1 https://geeknizer.com/download-install-chameleon-bootloader/
Dual Booting Windows 7 and Snow Leopard on a HP dv5 Laptop - The Definitive Guide! 1 https://kylesinterestingstuff.blogspot.com/2010/06/dual-booting-windows-7-and-snow-leopard.html
Install Mac OS X – HP DV1000 1 https://cisco21c.wordpress.com/2011/01/21/install-mac-os-x-hp-dv1000/
Instalación OS X 10.9 Mavericks con MyHack 1 https://www.osx86spain.com/148/47060/instalacion-os-x-10-9-mavericks-con-myhack.html#
How to Build a Hackintosh with Snow Leopard, Start to Finish 1 https://lifehacker.com/how-to-build-a-hackintosh-with-snow-leopard-start-to-f-5351485
Installation Guides/Kalyway DualBoot 10.5.2 1 https://wiki.osx86project.org/wiki/index.php/Installation_Guides/Kalyway_DualBoot_10.5.2
Install Snow Leopard on Your Hackintosh PC, No Hacking Required 1 https://lifehacker.com/install-snow-leopard-on-your-hackintosh-pc-no-hacking-5360150
How to Install SnowOSX Universal 1 https://geeknizer.com/how-to-install-snowosx-universal/
Install OS X 10.8 Mountain Lion on PC Hackintosh [Bootable USB] 1 https://geeknizer.com/install-osx-mountain-lion-on-pc-hackintosh-usb/
Make Bootable USB Mountain Lion Install Disk drive [Easy] 1 https://geeknizer.com/make-bootable-usb-mountain-lion-install-disk-drive/
Install Mac OS X Lion 10.7 on PC Hackintosh 1 https://geeknizer.com/install-mac-os-lion-10-7-on-pc-hackintosh/
Installation Guides/Existing Leopard Method 1 https://wiki.osx86project.org/wiki/index.php/Installation_Guides/Existing_Leopard_Method
Snow Leopard on Samsung R519 1 https://www.unix-master.com/2013/06/snow-leopard-on-samsung-r519.html
Using “myHack installer” with additional custom kext files 1 https://wiki.osx86project.org/wiki/index.php/Using_%22myHack_installer%22_with_additional_custom_kext_files
How to Build a Hackintosh Mac and Install OS X in Eight Easy Steps 1 https://lifehacker.com/how-to-build-a-hackintosh-mac-and-install-os-x-in-eight-5672051
Hackintosh Upgrades Without Problems to 10.6.1 1 https://lifehacker.com/hackintosh-upgrades-without-problems-to-10-6-1-5356864
Make Bootable USB [OSx86, Snow Leopard] 1 https://geeknizer.com/make-bootable-usb-mac-osx86-snow-leopard/
Install Mac OS X Leopard OSx86 on PC Dual Boot Windows 7, Vista in 9 Easy Steps 1 https://geeknizer.com/install-mac-os-x-leopard-osx86-on-pc-dual-boot-windows-7-vista-in-9-easy-steps/
OSX 10.6.8 running on Toshiba M305 1 https://thetalesnet.wordpress.com/2011/06/28/osx-10-6-8-running-on-toshiba-m305/
How to install 10.4.4 on Dell Inspiron 8500 1 https://wiki.osx86project.org/wiki/index.php/How_to_install_10.4.4_on_Dell_Inspiron_8500
The Dual boot Tutorial With installing (Snow) Leopard and Windows 7 on a PC OSX86 Tutorial 1 https://www.youtube.com/watch?v=ZRHbmsVZ3ww
Install Mac OSX Snow Leopard 10.6.6 VMware on Windows PC 1 https://geeknizer.com/install-mac-osx-snow-leopard-10-6-6-vmware-on-windows-pc/
How to install OS X 10.9 Mavericks on your PC with myHack 1 http://www.macbreaker.com/2013/06/how-to-install-os-x-109-mavericks-dp1.html
Quad booting 1 https://wiki.osx86project.org/wiki/index.php/Quad_booting
Make Bootable USB, DVD drive for OS X Lion Installation 1 https://geeknizer.com/make-bootable-usb-dvd-drive-os-x-lion-installation/
Wingrub instead of Grub 1 https://wiki.osx86project.org/wiki/index.php/Wingrub_instead_of_Grub
Multibooting 1 https://wiki.osx86project.org/wiki/index.php/Multibooting
Stock XP and OS X Dual Boot 1 https://wiki.osx86project.org/wiki/index.php/Stock_XP_and_OS_X_Dual_Boot
MacOSx86 10.4.5 via VMWare on WinXP Pro Sp2 1 https://buddhistnerd.blogspot.com/2006/06/namaste-friends.html
Install Snow Leopard on PC [USB] 1 https://geeknizer.com/install-snow-leopard-on-pc-easy/
How to Troubleshoot a Hackintosh 1 https://lifehacker.com/how-to-troubleshoot-a-hackintosh-5845186
Install Mac OS X Leopard OSx86 on PC Dual Boot Windows 7, Vista in 9 Easy Steps 1 https://geeknizer.com/install-mac-os-x-leopard-osx86-on-pc-dual-boot-windows-7-vista-in-9-easy-steps/
10.5.5 on the Dell Inspiron/mini 9 1 https://wiki.osx86project.org/wiki/index.php/10.5.5_on_the_Dell_Inspiron/mini_9
Install to a USB Hard Drive 1 https://wiki.osx86project.org/wiki/index.php/Install_to_a_USB_Hard_Drive
Intel 3945 Wireless Driver for Snow Leopard [Hackintosh] 1 https://geeknizer.com/intel-3945abg-wireless-snow-leopard-hackintosh/
ZDNet.de - Praxis: Installation von Mac OS X 10.6 auf einem PC 1 https://www.youtube.com/watch?v=lfzXhzMrruI
The Dual boot Tutorial With installing (Snow) Leopard and Windows 7 on a PC OSX86 Tutorial 1 https://www.youtube.com/watch?v=ZRHbmsVZ3ww
Mac OS X86!!! Run Mac natively on windows 1 https://drchoc.blogspot.com/2006/04/mac-os-x86-run-mac-natively-on-windows.html
Το OS X x86 στο windows-PC σας! 1 https://makosxgr.blogspot.com/
Simple Dual Boot 1 https://wiki.osx86project.org/wiki/index.php/Simple_Dual_Boot
Triple Booting Windows, Linux, and OSX86. 1 https://cy8erpunkthunk.blogspot.com/2006/03/triple-booting-windows-linux-and-osx86.html
Installatie van Kalyway/OSX en bootloader Vista/XP 1 https://docs.google.com/document/d/1RO_-oS4h3_i3iA-buWXoHQM3Q9ocg87ACKz-zvtkWl8/edit
Mac osx86 iDeneb 10.5.6 1 https://pools.wordpress.com/2009/02/26/mac-osx86-ideneb-1056/
Atualizando o iDeneb da versão 10.5.6 para a 10.5.7 1 https://pools.wordpress.com/2009/06/29/atualizando-o-ideneb-da-versao-10-5-6-para-a-10-5-7/
Atualizando o iDeneb para a versão 10.5.8 1 https://pools.wordpress.com/2009/08/12/atualizando-o-ideneb-para-a-versao-10-5-8/
Installation Guides/Pentium4D-G31M-GS-R2.html 1 https://wiki.osx86project.org/wiki/index.php/Installation_Guides/Pentium4D-G31M-GS-R2.html
Using a British/UK Windows keyboard with an Apple Mac in OS X (3) 1 https://www.gyford.com/phil/writing/2005/11/20/using-a-british/
Install Mac OS X Leopard OSx86 on PC Dual Boot Windows 7, Vista in 9 Easy Steps 1 https://geeknizer.com/install-mac-os-x-leopard-osx86-on-pc-dual-boot-windows-7-vista-in-9-easy-steps/
Praxis: Installation von Mac OS X 10.6 auf einem PC 1 https://www.zdnet.de/41502928/praxis-installation-von-mac-os-x-10-6-auf-einem-pc/
Installation Guide in Turkish 1 https://wiki.osx86project.org/wiki/index.php/Installation_Guide_in_Turkish
Programas Essenciais no MacOSX 1 https://pools.wordpress.com/2009/03/29/60/
1 https://pools.wordpress.com/2009/06/29/como-instalar-windows-xp-mac-osx86-ubuntu-904-triple-boot/
Mac OS X Leopard Retail Installation Simple Guide 1 https://web.archive.org/web/20120510121540/http://3rr0rists.net/macintosh/mac-os-x-leopard-retail-installation-simple-guide.html
How To Install Mac OS X Lion on PC 1 https://web.archive.org/web/20120324081231/http://3rr0rists.net/macintosh/how-to-install-mac-os-x-lion-on-pc.html
How To Install Snow Leopard Retail on a PC 1 https://web.archive.org/web/20120324031242/http://3rr0rists.net/macintosh/how-to-install-snow-leopard-retail-in-a-pc.html
Installing OS X Snow Leopard 1 2 3 http://lnx2mac.blogspot.com/2010/07/installing-os-x-snow-leopard-part-one.html http://lnx2mac.blogspot.com/2010/07/installing-os-x-snow-leopard-part-two.html http://lnx2mac.blogspot.com/2010/07/installing-os-x-snow-leopard-part-three.html
1 https://superuser.com/questions/310681/inverting-direction-of-mouse-scroll-wheel/364353#364353
OpenCore 简体中文参考手册
Optimal BIOS Configuration 1 http://lnx2mac.blogspot.com/2010/07/optimal-bios-configuration.html
[GUIDE] HP ProBook 4530s with Lion 10.7.5 1 https://www.insanelymac.com/forum/topic/282994-guide-hp-probook-4530s-with-lion-1075
10.9 Mavericks Simple Vanilla Hackintosh Install Guide 1 https://www.insanelymac.com/forum/topic/289062-109-mavericks-simple-vanilla-hackintosh-install-guide/
[Guide] El Capitan, Sierra / High Sierra / Mojave / Catalina on Intel 5, 6, 7, 8, 9 Chipset Series / Nehalem, SandyBridge, IvyBridge, Haswell, Broadwell 1 https://www.insanelymac.com/forum/topic/323052-guide-el-capitan-sierra-high-sierra-mojave-catalina-on-intel-5-6-7-8-9-chipset-series-nehalem-sandybridge-ivybridge-haswell-broadwell/
10.11.0-10.11.3 Skylake Starter Guide 1 https://www.tonymacx86.com/threads/10-11-0-10-11-3-skylake-starter-guide.179221/
[Guide] 10.11+ USB changes and solutions 1 https://www.tonymacx86.com/threads/guide-10-11-usb-changes-and-solutions.173616/
[Guide] Alternative to the minStolenSize patch with 32mb DVMT-prealloc 1 https://www.tonymacx86.com/threads/guide-alternative-to-the-minstolensize-patch-with-32mb-dvmt-prealloc.221506/
iBoot + MultiBeast: Install Mac OS X on any Intel-based PC 1 https://tonymacx86.blogspot.com/2010/04/iboot-multibeast-install-mac-os-x-on.html
1 https://tonymacx86.blogspot.com/2010/01/tweaking-your-system-install-chameleon.html
How to Install Snow Leopard on PC [Hackintosh] 1 https://geeknizer.com/how-to-install-mac-os-x-snow-leopard-on-pc-dual-boot/
Cómo Instalar Mac OS X desde wmware para iniciar en nativo 1 https://www.osx86spain.com/107/4229/c-mo-instalar-mac-os-x-desde-wmware-para-iniciar-en-nativo.html
How to Install Snow Leopard on VirtualBox 1 https://geeknizer.com/install-snow-leopard-virtualbox/
How to Install Snow Leopard [VMWare] 1 https://geeknizer.com/how-to-install-snow-leopard-vmware-workstation-windows/
Install Mac OS X in VirtualBox [Snow Leopard] 1 https://geeknizer.com/install-mac-os-in-virtualbox/
[教程] 通过加载AppleLPC.kext来使用MAC原生的CPU电源管理 1 http://bbs.pcbeta.com/viewthread.php?tid=594984
3rdPartyDrivers 1 https://wiki.osx86project.org/wiki/index.php/3rdPartyDrivers
First generation Intel HD Graphics on macOS 1 https://github.com/Goldfish64/ArrandaleGraphicsHackintosh
Завод Intel® Quick Sync Video 1 https://www.applelife.ru/threads/zavod-intel-quick-sync-video.817923/
Установка macOS High Sierra 10.13 на intel PC 1 https://www.applelife.ru/threads/ustanovka-macos-high-sierra-10-13-na-intel-pc.2210706/page-742#post-730496
Intel® HD Graphics FAQs 1 https://github.com/acidanthera/WhateverGreen/blob/master/Manual/FAQ.IntelHD.en.md
Intel® HD Graphics 1 https://www.applelife.ru/threads/intel-hd-graphics.1289648/page-170#post-750369
WhateverGreen/Manual/AzulPatcher4600_equivalent.plist 1 https://github.com/acidanthera/WhateverGreen/blob/master/Manual/AzulPatcher4600_equivalent.plist
GUIDE: Using a EFI Graphics string 1 http://forum.netkas.org/index.php/topic,66.0.html
GFX Strings Walkthrough 1 https://aquamac.proboards.com/thread/509
Intel Gma950 32bit only 1 https://www.applelife.ru/threads/intel-gma950-32bit-only.22726/
Install Snow Leopard on a PC / Laptop (OSX86) Tutorial/guide 1 https://www.youtube.com/watch?v=RVan49_Vm_I
Anti-Hackintosh Buyers Guide 1 https://dortania.github.io/Anti-Hackintosh-Buyers-Guide/
Выбор комплектующих для Mac OS X (Hackintosh) 1 https://4pda.to/forum/index.php?showtopic=72333
CPU Compatibility 1 https://hackintoshenglish.fandom.com/wiki/CPU_Compatibility
Установка macOS Catalina 10.15 на intel PC 1 2 https://applelife.ru/threads/ustanovka-macos-catalina-10-15-na-intel-pc.2944136/page-43#post-810430 https://applelife.ru/threads/ustanovka-macos-catalina-10-15-na-intel-pc.2944136/page-39#post-810111
Установка macOS Big Sur 11.0 beta на intel PC (old) 1 https://applelife.ru/threads/ustanovka-macos-big-sur-11-0-beta-na-intel-pc-old.2944999/page-81#post-884400
One box, every x86 install! HP DC 7900 1 https://www.reddit.com/r/hackintosh/comments/j0d6t0/one_box_every_x86_install_hp_dc_7900/
Getting started with ACPI 1 https://dortania.github.io/Getting-Started-With-ACPI/
HP Compaq DC7900 SFF 1 2 https://github.com/khronokernel/trashOS https://github.com/khronokernel/trashOS/tree/master/HP-Compaq-DC7900
Multiboot with OpenCore 1 https://dortania.github.io/OpenCore-Multiboot/
OpenCore-Install-Guide/clover-conversion 1 https://github.com/dortania/OpenCore-Install-Guide/tree/master/clover-conversion
faq - hackintosh 1 https://www.reddit.com/r/hackintosh/wiki/faq#wiki_hackintoshing_reddit_faq
使用 OpenCL 和 OpenGL 图形处理程序的 Mac 电脑 1 https://support.apple.com/zh-cn/HT202823
Introduction - USB Map 1 https://usb-map.gitbook.io/project/
[Guide] Intel Framebuffer patching using WhateverGreen 1 https://www.tonymacx86.com/threads/guide-intel-framebuffer-patching-using-whatevergreen.256490/
Установка macOS Big Sur 11.0 beta на intel PC (old) 1 https://applelife.ru/threads/ustanovka-macos-big-sur-11-0-beta-na-intel-pc-old.2944999/page-81#post-884400
APFS Snapshots: Rolling Back to a Previous Known State 1 https://www.lifewire.com/roll-back-apfs-snapshots-4154969
Making a bootable High Sierra USB Installer Entirely From Scratch in Windows or Linux Mint (without access to Mac or App Store Installer.app) 1 https://www.insanelymac.com/forum/topic/329828-making-a-bootable-high-sierra-usb-installer-entirely-from-scratch-in-windows-or-linux-mint-without-access-to-mac-or-app-store-installerapp/
Clover v.2 Instructions 1 https://www.insanelymac.com/forum/topic/282787-clover-v2-instructions/
Big Sur on unsupported Macs TL;DR 1 https://lynx.pink/big-sur-unsupported-macs-tldr/#/
BasiliskII for Linux 1 https://emaculation.com/doku.php/basiliskii_linux_setup
1 https://emaculation.com/doku.php/sheepshaver_roms
SheepShaver Brings the Classic Mac OS to Intel Macs and Leopard 1 https://lowendmac.com/2008/sheepshaver-brings-the-classic-mac-os-to-intel-macs-and-leopard/
Mac OS 11.3 has broken support for older Mac Pros 1 https://forums.macrumors.com/threads/mac-os-11-3-has-broken-support-for-older-mac-pros.2289056/
QEMU/Mac OS 9 1 https://en.wikibooks.org/wiki/QEMU/Mac_OS_9
Qemu [E-Maculation wiki] 1 https://www.emaculation.com/doku.php/qemu
Mini vMac for iOS 1 https://namedfork.net/minivmac/
SheepShaver for Linux 1 https://www.emaculation.com/doku.php/ubuntu
Pattern of MLB (Main Logic Board) serial 1 https://www.insanelymac.com/forum/topic/303073-pattern-of-mlb-main-logic-board/s
Olarila 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 https://www.olarila.com/topic/9679-olarila-big-sur-beta-5-vanilla-image-restore-mode-easy-way-opencore/ https://www.olarila.com/topic/5794-hackintosh-guide-install-macos-with-vanilla-olarila-image-step-by-step-install-and-post-install-windows-linux-or-mac/ https://www.olarila.com/topic/13072-dual-boot-guide-clover-and-open-core/ https://www.olarila.com/topic/6185-guide-how-to-create-a-personal-vanilla-macos-highsierra-mojave-catalina-big-sur-image-or-usb-installer/ https://www.olarila.com/topic/12857-how-to-mount-efi-partition-on-macos-or-windows/ https://www.olarila.com/topic/9530-install-macos-catalina-big-sur-on-mobos-serie-300-400-500-with-intel-8th-9th-10th-11th-gen-desktop-processors-using-opencore-or-clover-bootloader/ https://www.olarila.com/topic/6074-guide-easy-audio-solution-with-applealc-clover-and-opencore/ https://www.olarila.com/topic/923-dsdt-patch-requests/ https://www.olarila.com/topic/9089-olarila-big-sur-beta-6-vanilla-image-usb-installation/ https://www.olarila.com/topic/13019-guide-dual-boot-with-opencore-with-full-acpi-and-real-vanilla-solution/ https://www.olarila.com/topic/14220-video-guide-usb-port-mapping-guide-2021-bigsur-113-with-no-xhci-port-limit/ https://www.olarila.com/topic/8918-opencore-vanilla-guide-step-by-step-full-dsdt-patched-or-ssdt/ https://www.olarila.com/topic/6181-guide-native-usb-fix-for-desktops-no-injectorkext-required-skylake/ https://www.olarila.com/topic/6878-guide-native-usb-fix-for-notebooks-no-injectorkext-required/ https://www.olarila.com/topic/9390-video-guide-usb-port-mapping-with-hackintool/ https://www.olarila.com/topic/5676-folders-for-all-chipsets-clover-and-opencore/ https://www.olarila.com/topic/5295-guide-hardware-encoder-hardware-decoder-video-processing-hevc-support-intel-quick-sync/ https://www.olarila.com/topic/8930-guide-easy-brightness-hotkey-remapping/ https://www.olarila.com/topic/12709-guide-all-supported-amd-cards-clover-and-opencore-fake-id-method/ https://www.olarila.com/topic/6420-guide-mobile-intel-hd-graphics-clover-or-opencore/