认识功能强大的Clover引导(2)–《手把手教你玩黑苹果》

认识功能强大的Clover引导(2)–《手把手教你玩黑苹果》

目录

Config.plist 结构

  • ACPI
    • ResetAddress and ResetValue
    • smartUPS
    • PatchAPIC
    • HaltEnabler
    • UseSystemIO
    • DSDT
      • Name
      • FixMask
      • Fixes
      • Patches
      • DropOEM_DSM
      • SlpSmiAtWake
      • SuspendOverride
      • ReuseFFFF
    • SSDT
      • DropOem
      • Generate
        • CStates
        • PStates
      • EnableC2
      • EnableC4
      • EnableC6
      • EnableC7
      • PLimitDict
      • UnderVoltStep
      • MinMultiplier
      • MaxMultiplier
    • DropTables
  • Boot
    • Arguments
    • Legacy
    • Timeout
    • DefaultVolume
    • DefaultLoader
    • Log
    • Fast
    • XMPDetection
    • NeverHibernate
  • CPU
    • FrequencyMHz
    • BusSpeedkHz
    • QPI
    • Type
    • Latency
    • C2
    • C4
    • C6
  • Devices
    • Inject
    • Properties
    • FakeID
    • Audio
      • Inject
    • USB
      • Inject
      • FixOwnership
      • AddClockID
      • HighCurrent
    • UseIntelHDMI
  • DisableDrivers
  • Graphics
    • Inject
      • Intel
      • ATI
      • NVidia
    • VRAM
    • LoadVBios
    • DualLink
    • PatchVBios
    • PatchVBiosBytes
    • InjectEDID
    • CustomEDID
    • VideoPorts
    • FBName
    • NVCAP
    • display-cfg
    • ig-platform-id
  • KernelAndKextPatches
    • Debug
    • KernelCpu
    • AsusAICPUPM
    • KernelPm
    • AppleRTC
    • KernelLapic
    • KextsToPatch
    • ATIConnectorsController
  • RtVariables
    • MLB
    • ROM
    • MountEFI
    • LogEveryBoot
    • LogLineCount
  • SMBIOS
    • ProductName
    • Family
    • SmUUID
    • FirmwareFeatures
    • SerialNumber
    • BoardSerialNumber
    • BiosVersion
    • BiosReleaseDate
    • BoardType
    • Mobile
    • ChassisType
    • ChassisAssetTag
    • Trust
    • Memory
  • SystemParameters
    • CustomUUID
    • InjectSystemID
    • BacklightLevel
    • InjectKexts
    • NoCaches

ACPI

Configuration / ACPI

<key>ACPI</key>
<dict>
...
</dict>

影响ACPI表的各种更正的参数组。这是一个相当复杂的话题。有几个版本的ACPI规范,另外Mac有自己的要求。供应商通常懒于编写正确的表,并且可能未列出内部设备或完全缺少CPU定义。

  • ACPI
  • ResetAddress and ResetValue
  • smartUPS
  • PatchAPIC
  • HaltEnabler
  • UseSystemIO
  • DSDT
  • DSDT / Name
  • DSDT / FixMask
  • DSDT / Fixes
  • DSDT / Patches
  • DSDT / DropOEM_DSM
  • DSDT / SlpSmiAtWake
  • DSDT / SuspendOverride
  • DSDT / ReuseFFFF
  • DSDT / Rtc8Allowed
  • SSDT
  • SSDT / DropOem
  • SSDT / Generate
  • SSDT / Generate / CStates
  • SSDT / Generate / PStates
  • SSDT / EnableC2
  • SSDT / EnableC4
  • SSDT / EnableC6
  • SSDT / EnableC7
  • SSDT / PLimitDict
  • SSDT / UnderVoltStep
  • SSDT / MinMultiplier
  • SSDT / MaxMultiplier
  • DropTables

ResetAddress和ResetValue

<key>ResetAddress</key>
<string>0x64</string>
<key>ResetValue</key>
<string>0xFE</string>

这两个参数有一个非常重要的目的:修复重启。这些值理论上应该在FADT表中,但情况并非总是如此。此外,FADT可能比所需的短,并且根本不包含它们。默认值为0x640xFE,表示通过PS2控制器重启。
但是,这不适用于每个系统,您也可以使用0x0CF90x06,表示通过PCI轨重启。这是真正的Mac的默认值,但并不总是适用于hackintosh。区别很明显:hackintosh还有一个PS2控制器,如果没有禁用,可能会阻止重启。
最后但并非最不重要的,你可以将其设置为0x0/0x0允许使用默认的FACP值。如果不存在,则将使用上面的默认值。

smartUPS

<key>smartUPS</key>
<string>No</string>

此参数会影响功率配置文件,该功能配置文件将写入表FADT。

值|类型|电源类型:— |:— |:— 1 |桌面| AC 2 |手机|电池3 |服务器| SmartUPS

根据移动位和MobileSMBIOS中的参数,Clover将在1和2之间进行选择。例如,可以假装移动MacMini。如果启用此参数,将选择值3。

PatchAPIC

<key>PatchAPIC</key>
<string>No</string>

某些系统可以使用内核参数启动cpus=1,也可以使用修补内核(Lapic NMI)启动。事实证明,在这些情况下,表MADT是不完整的并且缺少NMI部分。启用此参数将导致Clover自动更正此表。如果表已经完成,那么什么都不会改变。

HaltEnabler

<key>HaltEnabler</key>
<true>

它作为OpenHaltRestart工作,在OSX系统启动时清除SLP_SMI_EN。

UseSystemIO

<key>UseSystemIO</key>
<true>

SSDT部分的密钥UseSystemIO将用于在生成的_CST表中选择:

Register (FFixedHW,
Register (SystemIO,

DSDT

<key>DSDT</key>
<dict>
...
</dict>

影响DSDT的参数组。

DSDT /Name
<key>Name</key>
<string>DSDT.aml</string>

要加载和注入的二进制DSDT文件的文件名。

DSDT / FixMask

不推荐使用!由Fixes替换。

<key>FixMask</key>
<string>0xFFFF</string>

此参数表示在数字0xFFFF中屏蔽的整组DSDT补丁。以下选项可用:

//0x00FF
#define FIX_DTGP      bit(0)
#define FIX_WARNING   bit(1)
#define FIX_SHUTDOWN  bit(2)
#define FIX_MCHC      bit(3)
#define FIX_HPET      bit(4)
#define FIX_LPC       bit(5)
#define FIX_IPIC      bit(6)
#define FIX_SBUS      bit(7)
//0xFF00
#define FIX_DISPLAY   bit(8)
#define FIX_IDE       bit(9)
#define FIX_SATA      bit(10)
#define FIX_FIREWIRE  bit(11)
#define FIX_USB       bit(12)
#define FIX_LAN       bit(13)
#define FIX_WIFI      bit(14)
#define FIX_HDA       bit(15)

要计算掩码,您可以使用Calculator应用程序,切换到Programmer视图并打开十六进制编号系统。将位0到15切换以生成所需的掩码。启用FIX_DTGPFIX_MCHC的示例

clover_dsdt_mask

或者,您可以使用cVaD 的掩码计算器

有关这些选项的详细说明,请参阅修复DSDT

DSDT / Fixes
<key>Fixes</key>
<dict>
...
</dict>

此参数表示可以单独激活的整组DSDT修补程序。以下选项可用:

<key>AddDTGP_0001</key>
<true/>
<key>FixDarwin_0002</key>
<true/>
<key>FixShutdown_0004</key>
<true/>
<key>AddMCHC_0008</key>
<true/>
<key>FixHPET_0010</key>
<true/>
<key>FakeLPC_0020</key>
<true/>
<key>FixIPIC_0040</key>
<true/>
<key>FixSBUS_0080</key>
<true/>
<key>FixDisplay_0100</key>
<true/>
<key>FixIDE_0200</key>
<true/>
<key>FixSATA_0400</key>
<true/>
<key>FixFirewire_0800</key>
<true/>
<key>FixUSB_1000</key>
<true/>
<key>FixLAN_2000</key>
<true/>
<key>FixAirport_4000</key>
<true/>
<key>FixHDA_8000</key>
<true/>
  • AddDTGP_0001
    方法(DTGP)插入DSDT。它是_DSM方法所必需的,因此如果您使用其他DSDT修补程序来注入设备属性,则必须启用此方法。没有其他修复就没有意义使用这种方法。
  • FixDarwin_0002
    提供一组DSDT更正,使您的系统“Darwin”被识别为“Windows 2001”,就像大多数ACPI系统一样。更多ACPI设备将在此模式下工作。旧方法此位还提供修复FIX_WAK_200000,DeleteUnused_400000,FIX_ACST_4000000,FIX_S3D_2000000,AddPNLF_1000000,FIX_ADP1_800000。
  • FixShutdown_0004
    If(arg = 5){}添加到方法_PTS。这个技巧可能会修复某些系统(ASUS)的关机问题。
  • AddMCHC_0008
    将设备MCHC添加到DSDT。对于我的董事会H61M,这是强制性的,否则KP。旧方法还包括AddIMEI_80000。
  • FixHPET_0010
    IRQ(0,8,11 )添加到设备HPET。对于OSX <= 10.8的强制性,10.9可以在没有它的情况下工作。旧方式还包括FIX_RTC_20000,FIX_TMR_40000。
  • FakeLPC_0020
    更改LPC芯片组设备的device-id 。非常罕见的情况下需要非标准(Apple)芯片组,如ICH9。
  • FixIPIC_0040
    从设备IPIC中 删除IRQ(2)。有助于使用不工作的电源按钮。
  • FixSBUS_0080
    SMBUS设备添加到DSDT中,带有一些子设备。我不知道修补程序的原因,但在许多论坛中都建议这样做。从未见过这一点有任何问题。
  • FixDisplay_0100
    这是一个非常实用的视频设备补丁。即使您不想将属性注入设备,也建议使用。设置此位时,也会应用其他设置,如FakeID。旧方式:此补丁将影响所有显卡,包括嵌入式英特尔GFX。
    新方式:英特尔将单独修补。
  • FixIDE_0200
    为IDE控制器(而不是SATA)添加初始化以防止出现混乱。更多信息
  • FixSATA_0400
    从ICH6 注入DeviceID以防止橙色图标问题。现在这个补丁看起来已经过时了。最好是改为使用kext二进制补丁。
  • FixFirewire_0800
    如果没有设备Firewire并将设备真正存在,则将其 添加到DSDT中。安全。
  • FixUSB_1000
    为USB-1,USB-2和USB-3注入USB设备及其属性。没理由不使用这个位。
  • FixLAN_2000
    注入LAN控制器的设备和属性。还为一些已知的替换制作了FakeID。
  • FixAirport_4000
    注入WiFi控制器的设备和属性。还为一些已知的替换制作了FakeID。
  • FixHDA_8000
    AZAL重命名为HDEFHDAU。如果不存在,则添加HMDI设备。否则AppleHDA将无效。添加属性“layout-id”,“MaximumBootBeepVolume”和“PinConfigurations”。

从rev2392开始,DSDT修复掩码已扩展到32位。所以现在完整的掩码是0xFFFFFFFF。

为了向后兼容,Clover将检查该位NewWay_80000000 。如果未设置此位,则旧掩码将像以前一样工作。

“NewWay”补丁的设置:

<key>NewWay_80000000</key>
<true/>
<key>FIX_DARWIN_10000</key>
<true/>
<key>FIX_RTC_20000</key>
<true/>
<key>FIX_TMR_40000</key>
<true/>
<key>AddIMEI_80000</key>
<true/>
<key>FIX_INTELGFX_100000</key>
<true/>
<key>FIX_WAK_200000</key>
<true/>
<key>DeleteUnused_400000</key>
<true/>
<key>FIX_ADP1_800000</key>
<true/>
<key>AddPNLF_1000000</key>
<true/>
<key>FIX_S3D_2000000</key>
<true/>
<key>FIX_ACST_4000000</key>
<true/>
<key>AddHDMI_8000000</key>
<true/>
<key>FixRegions_10000000</key>
<true/>
  • NewWay_80000000
    如果你设置这个位,那么你的旧位将限制性地用于一个目的。
    没有这个位,其余的这些位将是无用的
  • FIX_DARWIN_10000
    仅修补“Darwin OS”标识。
  • FIX_RTC_20000
    RTC设备中 排除IRQ(0)
  • FIX_TMR_40000
    TMR设备中 排除IRQ(8)。这是一种古老的DOS设备,在现代计算机中不需要。
  • AddIMEI_80000
    此设备用于IntelHDxxxx图形。使用FakeID-> IMEI位时需要这样做。它在Core 2系统上没有任何作用。
  • FIX_INTELGFX_100000
    修补IntelGFX设备的新方法。
  • FIX_WAK_200000
    增加了返回(包(0))到方法_WAK如果不存在。此补丁消除了警告,但我们不知道它是否会影响工作系统上的任何其他内容。
  • DeleteUnused_400000
    从DSDT中删除软盘驱动器,LPT端口等设备。
  • FIX_ADP1_800000
    将设备AC0重命名为ADP1
  • AddPNLF_1000000
    设备PNLF是亮度控制所必需的。这个补丁对正确的睡眠/唤醒也有很好的影响。
  • FIX_S3D_2000000
    还可以通过更正_S3D方法解决一些睡眠/唤醒问题。
  • FIX_ACST_4000000
    名称ACST的使用方式与Apple和ASUS不同。对于华硕而言,它是AC适配器状态,但对于Apple来说,它是_CST,c-states表的替代品。为避免冲突,有必要将此类功能重命名为其他功能。
  • AddHDMI_8000000 添加HDAU设备(如果不存在),具有一些默认属性。
  • FixRegions_10000000
    Bios DSDT中的 某些OperationRegions是浮动的,由于BIOS的更改,值可能会随时间发生变化。浮动区域的存在使得不可能使用自定义DSDT,因为该区域可能被移位并且将不对应于当前状态。此修补程序旨在查找BIOS中的所有此类区域,并在自定义DSDT中进行更正。
DSDT / Patches

二进制DSDT修补

<key>Patches</key>
  <array>
    <dict>
      <key>Find</key>
      <data>W4IeQkFUMQhfSElEDEHQDAoIX1VJRAEUCF9TVEEApAA=</data>
      <key>Replace</key>
      <data></data>
    </dict>
    <dict>
      <key>Find</key>
      <data>UFhTWAhfQURSAAhfUFJXEgYC</data>
      <key>Replace</key>
      <data>UFhTWAhfQURSAAhfU1VOCgQIX1BSVxIGAg==</data>
    </dict>
  </array>
DSDT / DropOEM_DSM
<key>DropOEM_DSM</key>
<true/>

某些OEM DSDT已经包含某些设备的Method(_DSM …)。它有另一个结构,另一个逻辑,然后我们需要另一个结果。但我们无法修改此方法,也无法创建具有相同名称的自有方法,因此DropOEM_DSM创建了删除这些OEM _DSM的方法。

如果使用自定义DSDT,则默认值为false;如果使用BIOS.aml,则默认值为true。

或者,如果您只需要删除某些设备的_DSM,您可以单独选择以下任何设备:

<key>DropOEM_DSM</key>
<dict>
	<key>ATI</key>
	<true/>
	<key>Firewire</key>
	<true/>
	<key>HDA</key>
	<true/>
	<key>HDMI</key>
	<true/>
	<key>IDE</key>
	<true/>
	<key>IntelGFX</key>
	<true/>
	<key>LAN</key>
	<true/>
	<key>LPC</key>
	<true/>
	<key>NVidia</key>
	<true/>
	<key>SATA</key>
	<true/>
	<key>SmBUS</key>
	<true/>
	<key>USB</key>
	<true/>
	<key>WIFI</key>
	<true/>
</dict>
DSDT / SlpSmiAtWake
<key>SlpSmiAtWake</key>
<true>

它会在每次唤醒时添加SLP_SMI_EN = 0。它可能有助于解决UEFI启动时的睡眠和关机问题。

DSDT / SuspendOverride
<key>SuspendOverride</key>
<true>

影响DSDT补丁FixShutdown_0004并将修复从状态5扩展到3,4和5(睡眠和暂停)。

DSDT / ReuseFFFF
<key>ReuseFFFF</key>
<true>

某些OEM DSDT包含一些设备Name (_ADR, 0xFFFF)。这是一个很大的问题,因为我可以将其转换为ADR = 0并注入属性,但这是一个危险的补丁,它可能会导致IOPCIFamily.kext出现恐慌。因此提出了这个密钥,它将该设备转换为(ADR,0)并重新用于注入。(例如FakeID)

DSDT / Rtc8Allowed
<key>Rtc8Allowed</key>
<false>

一些用户声称RTC长度可能是8字节而没有CMOS复位,但其他用户声称复位仍在发生。对于那些想要len = 8的人,应该设置为true。默认值为false。

SSDT

<key>SSDT</key>
<dict>
...
</dict>

影响SSDT的参数组。

SSDT / DropOem
<key>DropOem</key>
<true/>

删除所有内部SSDT表以避免在为包含P和C状态的处理器生成SSDT时发生冲突。Clover可以自动执行此操作,也可以指定外部文件,该文件将从EFI / OEM / [model] / ACPI / patched加载。

SSDT / Generate
<key>Generate</key>
<false/>

生成具有p状态和c状态的SSDT。

SSDT / Generate / CStates
<key>Generate</key>
<dict>
  <key>CStates</key>
  <true/>
</dict>

自动SSDT表生成,使用_CST方法为每个核扩展处理器部分。_CST生成是通过参数的影响EnableC2EnableC4, EnableC6EnableISSC3Latency。没有必要对它们进行评论,因为一切都会起作用。自己做实验。
此外,Clover已经获得了处理器类型和核心数量。
不使用此参数将导致以下错误消息:ACPI_SMC_PlatformPlugin::pushCPU_CSTData - _CST evaluation failed.

SSDT / Generate / PStates
<key>Generate</key>
<dict>
  <key>PStates</key>
  <true/>
</dict>

自动SSDT表生成,延伸与所述处理器部_PPC_PPC_PSS方法。

  • _PCT– 绩效控制。控制SpeedStep功能
  • _PPC– 绩效现有能力。SpeedStep功能。此方法返回限制频率的值。进一步寻找PLimitDict
  • _PSS– 绩效支持状态。包含可能的CPU状态的数组 – P状态。
    PLimitDictUnderVoltStepTurbo在生成此数组时将被考虑在内。
SSDT / EnableC2
<key>EnableC2</key>
<true/>

此键允许您启用C2状态生成器。默认情况下禁用。

SSDT / EnableC4
<key>EnableC4</key>
<true/>

此键允许您启用C4状态生成器。默认情况下禁用。

SSDT / EnableC7
<key>EnableC7</key>
<true/>

此键允许您启用C7状态生成器。默认情况下禁用。

SSDT / PLimitDict
<key>PLimitDict</key>
<string>1</string>

限制最大CPU频率。

  • 0 – 没有限制。
  • 1 – 将频率降低一步
  • 2 – 将频率降低两级

示例:当受限于两个步骤时,具有2400 MHz的Core2Duo T8300在最大频率2000 MHz下运行。此参数可用于减少移动系统中的热量。

平台plists中存在相同的参数,例如: System / Library / Extensions / IOPlaEormPluginFamily.kext / Contents / PlugIns / ACPI_SMC_PlaEormPlugin.kext / Conte nts / Resources / MacBook5_1.plist
他们将在稍后讨论。

其他CPU可能需要其他值。例如,该值对Core2Quad具有相反的效果。1在这种情况下,最佳值。但它可能是DSDT错误。

SSDT / UnderVoltStep
<key>UnderVoltStep</key>
<string>1</string>

此参数会降低CPU电压并间接影响温度。可能的值012等四叶草只会让理智的值,这意味着它是安全的,增加该值,直到CPU停止工作正常。

SSDT / MinMultiplier
<key>MinMultiplier</key>
<integer>7</integer>

最小的CPU倍频。通常移植16的值,导致频率为1600 MHz,但在使用SpeedStep时应使用较低的值,如8或甚至7

SSDT / MaxMultiplier
<key>MaxMultiplier</key>
<integer>30</integer>

作为最小乘数的类比,但并非真正必要。不建议设置它。

DropTables

<key>DropTables</key>
<array>
  <dict>
    <key>Signature</key>
    <string>SSDT</string>
    <key>TableId</key>
    <string>SataTabl</string>
  </dict>
  <dict>
    <key>Signature</key>
    <string>SSDT</string>
    <key>TableId</key>
    <string>SataAddr</string>
  </dict>
  <dict>
    <key>Signature</key>
    <string>BGRT</string>
  </dict>
  <dict>
    <key>TableId</key>
    <string>A M I</string> (WARNING: DO NOT DO THIS!!!!!!!)
  </dict>
  ...
</array>

按签名和/或表标识符删除OEM ACPI表。

此外,现在您可以按表的长度删除表。为什么?因为我们发现Acer笔记本电脑所有SSDT都具有相同的TableID。

<key>DropTables</key>
<array>
  <dict>
    <key>Signature</key>
    <string>SSDT</string>
    <key>Length</key>
    <integer>720</integer>
  </dict>
</array>

Boot

Configuration / Boot

  • Boot
  • Arguments
  • Legacy
  • Timeout
  • DefaultVolume
  • DefaultLoader
  • IgnoreNVRAMBoot
  • Debug
  • Fast
  • XMPDetection
  • Secure
  • NeverHibernate
  • CustomLogo
Arguments
<key>Arguments</key>
<string>ARGUMENTS</string>

在本节中,您可以添加系统使用的“Boot Flags”和“Kernel Flags”…这里我们将仅列出Clover专有的“Boot Flags”,不同的标志,例如,npci = 0x2000,npci = 0x3000 ,darkwake = 0等……应该按预期工作……

  • -v – 详细启动。
  • -s – 将OS X引导至单用户模式。
  • -x – 将OS X引导至SafeBoot(安全模式)。
  • MountEFI=yes/diskX – 每次启动时安装EFI分区或从磁盘X安装(X =磁盘编号)。
  • LogLineCount=0 – 设置日志文件的最大行数,默认为0(无限制)。
  • LogLocation=PATH – 设置要保存的日志文件的路径。
  • LogEveryBoot=Yes/No– 每次启动时保存日志文件。
Legacy
<key>Legacy</key>
<string>PBR</string>

必须加载旧版本的Windows和Linux。很大程度上取决于硬件和BIOS。开发了几种算法以允许定制:

  • LegacyBiosDefault– 适用于包含LegacyBios协议的UEFI BIOS变体
  • PBRtest – PBR启动算法
  • PBR – 另一种PBR启动算法

此外,对于UEFI引导,您可以指定要引导的HDD(不仅是第一个)。

<key>Legacy</key>
<string>LegacyBiosDefault</string>
<key>LegacyBiosDefaultEntry</key>
<integer>2</integer>
Timeout
<key>Timeout</key>
<integer>5</integer>

启动后启动加载程序将暂停5秒钟,然后自动加载操作系统。如果在这段时间内按下某个键,则倒计时停止。选项:

  • 0 – 不调用GUI,即时加载操作系统
  • -1 – 调用GUI,关闭自动OS加载

Clover必须能够找到一个默认条目才能自动启动到操作系统,请参阅下面的DefaultVolume。

注意:如果Timeout整数设置为0,则在打开电源时按住任何键以调用引导加载程序GUI。

DefaultVolume
<key>DefaultVolume</key>
<string>MacHDD</string>

DefaultVolume用于指定哪个条目是Clover GUI中的默认引导条目。另请参见DefaultLoader。它可以设置为:

  • 卷名称 – 卷的名称。例如Macintosh
  • GUID – Clover的引导,预引导或调试日志中显示的卷的全局唯一ID。例如57272A5A-7EFE-4404-9CDA-C33761D0DB3C
  • 设备路径的一部分 – 也显示在Clover的日志中。例如HD(1,GPT,57272A5A-7EFE-4404-9CDA-C33761D0DB3C,0x800,0xFF000)
  • LastBootedVolume – 最后一个引导的卷将在Clover GUI中设置为默认卷。

OS X启动盘可用于重新启动到另一个卷,但是对于以下重新启动DefaultVolume将再次使用。

DefaultLoader
<key>DefaultLoader</key>
<string>BOOTX64.efi</string>

除了上面的DefaultVolume之外,还可以将加载器的路径指定为DefaultLoader。这为具有多个Loaders的卷提供了更精确的默认条目选择。值可以是完整路径或类似文件名的唯一部分。

IgnoreNVRAMBoot
<key>IgnoreNVRAMBoot</key>
<true/>

忽略“启动磁盘”面板的设置,并允许始终启动到同一操作系统。

Debug

以前在修订版3064之前称为“Log”

<key>Debug</key>
<false/>

如果您无法启动Clover,则可以使用此设置生成调试输出/EFI/CLOVER/misc/debug.log。然后可以评估该日志以找出问题所在。 !警告打开此日志会大大增加加载时间,因为它必须将日志写入磁盘。因此,请在重置计算机之前保持耐心并留出足够的时间。

Fast
<key>Fast</key>
<true/>

类似于设置Timeout0,但是:* nvram.plist将搜索只有等到第一次出现*不搜索最佳的视频模式*不加载的主题和图形*没有机会进入GUI

启用此参数可能不会产生任何重大影响。
相反,您可以尝试自定义编译:*在CloverEFI中禁用GUI(3秒差异)*仅搜索Sata0驱动程序(9秒差异)

XMPDetection
<key>XMPDetection</key>
<true/> OR <false/> OR <string>Yes/No</string>

检测到内存或禁用XMP检测时,检测最佳eXtreme Memory Profile。

<key>XMPDetection</key>
<integer>1/2</integer>
Secure
<key>Secure</key>
<true/>

安全引导协议是一个受控主体,它仅将引导过程限制为已签名的二进制文件。通过在BIOS中启用此选项,除了Windows 8,2013和某些Linux发行版之外,将无法再启动许多操作系统。

目的是在启用安全启动时使用Clover。需要签署Clover的二进制文件并加载证书。

这里的发展还没有完成。

NeverHibernate
<key>NeverHibernate</key>
<true/>

禁用休眠状态检测。

<key>CustomLogo</key>
<true/> OR <false/> OR <string>Apple/Alternate/Theme/None/Path</string> OR <data>PNG/BMP/ICNS base64 data</data>

启用自定义引导徽标的绘制。

  • true – 使用默认启动样式Apple。
  • false – 禁用自定义启动徽标。
  • Apple – 使用灰色苹果徽标上的默认灰色。
  • Alternate – 在黑色苹果标志上使用备用白色。
  • Theme – 使用主题启动屏幕输入类型 – NOT IMPLEMENTED。
  • None – 不使用仅徽标背景颜色,如果未通过自定义条目指定,则为灰色。
  • Path – 从中​​加载自定义图像的文件路径
  • <data> – base64编码的PNG,BMP或ICNS数据。

如果未指定任何选项,则仅为> = 10.10 Yosemite绘制引导屏幕,因此它与先前的行为保持兼容。

CustomLogo键也可以在GUI / Custom / Entries下与BootBgColor一起使用,用于每个操作系统的不同屏幕。但是,图形输出协议不会被修改,所以如果操作系统在启动后绘制,那么它是在绘制引导屏幕之后并且将覆盖自定义徽标,至少目前是这样。

CPU

Configuration / CPU

<key>CPU</key>
<dict>
...
</dict>

如果内部算法失败,这组参数有助于CPU定义。

  • CPU
  • FrequencyMHz
  • BusSpeedkHz
  • QPI
  • Type
  • Latency
  • C2
  • C4
  • C6
FrequencyMHz
<key>FrequencyMHz</key>
<string>3200</string>

CPU基频,单位为MHz。通常Clover会从DMI获得它,但是如果它不准确,你可以覆盖它。错误的值可能导致系统不稳定 – 同步问题,速度缓慢等。建议不要使用此参数。

由于其危险和有害的性质,很可能在即将到来的修订中将该参数排除在外。

BusSpeedkHz
<key>BusSpeedkHz</key>
<string>133330</string>

总线速度,单位为kHz。对稳定系统非常重要的价值。它从引导加载程序传递到内核。如果此值不正确,则内核根本不会启动。如果稍微不正确,可能会出现时钟问题,系统将以奇怪的方式运行。

修订版1060引入了自动检测,它依赖于ACPI计时器产生比存储在DMI中的值更准确的值。

DMI以MHz为单位存储该值,与从CPU频率计算的值相比,这不准确。如果需要,您可以选择更准确的值。例如,我的DMI值为100 MHz,但是手动将其覆盖为99790 kHz的值会产生更好的时钟。
有些供应商对BusSpeed和FSBSpeed使用不同的含义,并在BIOS中使用四倍大的值。您可以根据比例区分它们:它是100 MHz到400 MHz还是匹配公式CPUFrequency = RailFrequency * CPUMultiplier。
如果华硕使用1600 MHz的轨道频率和8的乘数,则该公式不起作用 – 不存在具有12,8 GHz的CPU; 需要划分为4。

注意:UEFI引导将产生不准确的值。建议手动指定值,在使用Clover EFI进行引导期间可以更准确地计算该值。

QPI
<key>QPI</key>
<string>4800</string>

System Profiler将其称为处理器总线速度总线速度。Chameleon有一个算法来计算Nehalem CPU的这个值(然而这是不正确的)。根据英特尔数据表,Clover有一个校正算法。AppleSmbios源描述了两种变体:SMBIOS已经包含供应商指定的此值,或者它由公式BusSpeed * 4计算。经过长时间的争论后,这个值被输入配置文件 – 写下你想要的(以MHz为单位)。这纯粹是化妆品价值。显然这个值只对Nehalems有意义,其余的应该使用上面提到的公式 – 或者根本没有。

注意:Real Mac的报告是hw.busfrequency = 100000000

为了实现这一点,Clover在这里做了什么:
1 – 为Sandy Bridge和更新的CPU删除SMBIOS表类型132。如果将QPI设置为字符串值0,Clover会执行此操作
.2 – 将SMBIOS表类型4-> ExternalClock设置为0(或25Mhz作为真正的Mac)。这当前必须在源代码中完成并重新编译Clover。

如果你没有为Sandy Bridge和更新的CPU做第2步,AppleSMBIOS.kext会将SMBIOS表类型4 – >外部时钟报告的任何非零值乘以4. 请参阅DHP的帖子以获取参考号。

Type
<key>Type</key>
<string>0x0201</string>

此值的结果只能在Apple的规范中找到,它将在关于此Mac的窗口中使用,该窗口显示相应的处理器名称。否则将显示“未知CPU”。由于PowerPC而无法调用CPUID,并且由于Apple对世界的不同看法,因此也未使用SMBIOS表4。Clover知道大多数值,但由于硬件开发不会停滞不前,您可以指定此值。同样,这纯粹是装饰性的。

Latency
<key>Latency</key>
<string>0x03E9</string>

此参数值表示进入C3状态时发出的C3进入延迟。临界值为0x3E8(1000)。较低的值将允许SpeedStep,较高的值将不允许它。真正的Mac总是使用0x3E9,意味着SpeedStep没有打开。自己决定你需要什么。
笔记本用户应该使用它0x00FA来启用电源管理。

C2
<key>C2</key>
<true/>

启用C2状态。

C4
<key>C4</key>
<true/>

启用C4状态。

C6
<key>C6</key>
<true/>

启用C6状态。

Devices

<key>Devices</key>
<dict>
...
</dict>

用于调整影响PCI设备的设置的参数组。

  • Devices
  • Inject
  • Properties
  • FakeID
  • Audio
  • Audio / Inject
  • Audio / ResetHDA
  • Audio / AFGLowPowerState
  • USB
  • USB / Inject
  • USB / FixOwnership
  • USB / AddClockID
  • USB / HighCurrent
  • UseIntelHDMI
  • AddProperties
  • NoDefaultProperties
Inject
<key>Inject</key>
<false/>

启用它将导致自动注入关闭并允许从中注入自定义字符串Properties

Properties
<key>Properties</key>
<string>0207364862FA54HG345</string>

要创建自己的字符串,您需要使用工具gfxutil,例如,它与DarwinDumper捆绑在一起。您需要使用标准表示法中的设备路径创建一个xml文件作为标题和列表属性,这些属性将被注入。该示例显示了用于启用视频卡的文件:

<?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>PciRoot(0x0)/Pci(0x2,0x0)</key>
    <dict>
        <key>AAPL,HasPanel</key>
        <data>AQAAAA== </data>
        <key>built-in</key>
        <data>AA==</data>
        <key>class-code</key>
        <data>AAADAA==</data>
        <key>device_type</key>
        <data>ZGlzcGxheQA=</data>
        <key>model</key>
        <data>R01BIDk1MAA=</data>
    </dict>
</dict>
</plist>

可以使用DarwinDumper获取当前使用的plist ,修改它并使用以下命令将其转换为字符串形式:

./gfxutil –i xml –o hex devprop.plist devprop.hex

.. 结果:

d30000000100000001000000c70000000500000002010c00d041030a000000000101060000027fff0400100000006d006f00640065006c0000000c000000474d4120393530001c0000006400650076006900630065005f00740079007000650000000c000000646973706c617900200000004100410050004c002c00480061007300500061006e0065006c0000000800000001000000160000006200750069006c0074002d0069006e00000005000000001a00000063006c006100730073002d0063006f006400650000000800000000000300

结果需要用作值DeviceProperties。通过在DSDT的相应部分中添加_DMS方法可以实现相同的效果。当没有DSDT可用时,使用字符串方法可能是实际的。

FakeID
  <key>FakeID</key>
  <dict>
    <key>ATI</key>
    <string>0x68181002</string>
    <key>IntelGFX</key>
    <string>0x01268086</string>
    <key>NVidia</key>
    <string>0x0</string>
    <key>LAN</key>
    <string>0x436311ab</string>
    <key>SATA</key>
    <string>0x25628086</string>
    <key>WIFI</key>
    <string>0x431214E4</string>
    <key>XHCI</key>
    <string>0x0</string>
    <key>IMEI</key>
    <string>0x1E3A8086</string>
  </dict>

这是一种更改PCI属性的方法设备的DeviceID和VendorID将与本机驱动程序一起使用。在上面的示例中: – AMDRadeonHD7850具有不受支持的DeviceID = 0x6819。更改为0x6818 – 不支持Dell Wireless 1595,DeviceID = 0x4315。更改为0x4312 – Marvell Yukon 8056,DeviceID = 0x4353。改为0x4363。

对于不支持的设备还有其他已知的替换。

如果设置了InjectATI(Nvidia,Intel),则此替换将起作用。或者,如果为设备设置了FixDsdtMask。

同样,IMEI修复程序仅在AddMCHC_0008启用DSDT修补程序时才有效。

Audio

<key>Audio</key>
<dict>
...
</dict>

用于调整影响音频设备的设置的参数组。

Audio / Inject
<key>Inject</key>
<string>Detect</string>

声音芯片的属性注入。仅在DSDT定义时有效Device (HDEF)。如果重命名它,您还可以以不同方式注入其他属性。不要将此参数与VoodooHDA一起使用。可能的选择是:

  • No – 关闭注射
  • Detect – 自动检测声音芯片并将其ID作为布局ID注入。实际上这是胡说八道,但仍然非常受欢迎。不会造成任何伤害并影响System Profiler中声音属性的显示。
  • 883 – 代表的十进制数。在这种情况下指的是Realtek ALC883。
  • 0x373 – 与十六进制相同。

这些数字不正确,您需要找到正确的值,并可能替换AppleHDA捆绑的布局文件以使芯片正常工作。

Audio / ResetHDA
<key>ResetHDA</key>
<true/>

音频控制器初始化 有些用户在冷启动后会发出非工作声音,但在重启或唤醒后仍然可以工作(即使在Windows上!)。这是一种适用于早期启动的解决方法,因此它也会影响Windows。

Audio / AFGLowPowerState
<key>AFGLowPowerState</key>
<false/>

这有助于在空闲模式后消除音频输出时的破裂声音,因此声卡始终处于打开状态。

USB

<key>USB</key>
<dict>
...
</dict>

用于调整影响PCI设备的设置的参数组。

USB / Inject
<key>Inject</key>
<true/>

注入USB属性。如果需要,您可以出于任何原因将其关闭。如果DSDT补丁掩码匹配0x1000以防止数据重复,它也会被禁用。

USB / FixOwnership
<key>FixOwnership</key>
<true/>

可以启用USB注入并仅关闭所有权修复。

此修复与UEFI引导无关。

USB / AddClockID
<key>AddClockID</key>
<true/>
  • <true/> – 实现良好,深度睡眠,键盘或鼠标输入无法退出。
  • <false/> – PC可能会睡眠,可以通过键盘或鼠标唤醒; 或者它会被某些连接的设备自动唤醒

为每个设备注入具有唯一标识符的属性“AAPL,clock-id”。根据自己的喜好设置它。

需要启用USBInjection。

默认值设置为禁用。

USB / HighCurrent
<key>HighCurrent</key>
<true/>

从USB端口为iPad充电需要更多电量。

UseIntelHDMI

<key>UseIntelHDMI</key>
<false/>

如果为TRUE,则将hda-gfx = onboard-1注入GFX0和HDEF设备。此外,如果存在ATI或Nvidia HDMI设备,它们将被分配到板载-2。如果为FALSE,那么ATI或Nvidia设备将获得板载-1以及HDAU设备(如果存在)。

AddProperties
<key>AddProperties</key>
<array>
  <dict>
    <key>Device</key>
    <string>NVidia</string>
    <key>Key</key>
    <string>AAPL,HasPanel</string>
    <key>Value</key>
    <data>AQAAAA==</data>
  </dict>
  <dict>
    <key>Device</key>
    <string>NVidia</string>
    <key>Key</key>
    <string>AAPL,Haslid</string>
    <key>Value</key>
    <data>AQAAAA==</data>
    </dict>
</array>

对于某些情况(新设备,新标准,新操作系统),使用设备属性注入可能不够,因此此功能允许您自定义这些注入的属性。

您可以为这些设备编写任意数量的属性:* ATI * NVidia * IntelGFX * LAN * WIFI * Firewire * SATA * IDE * HDA * HDMI * LPC * SmBUS * USB

NoDefaultProperties
<key>NoDefaultProperties</key>
<false/>

此密钥将影响DSDT修复并强制它们生成空的_DSM。例如,如果启用FIX_DISPLAYClover,则会为显卡创建一个设备,但设置为空_DSM。AddPropertiesFakeID价值仍然会被注入。

这仅适用于显示器,声音,LAN和WiFi。

DisableDrivers

Configuration / DisableDrivers

<key>DisableDrivers</key>
<array>
    <string>CsmVideoDxe</string>
    <string>VBoxExt4</string>
</array>

此参数的目的是在OEM文件夹中具有多个配置。但是,只存在一个驱动程序文件夹,可能需要为不同的配置禁用特定的驱动程序。可能需要OsxAptioFixDxe,另一个需要EmuVariableDxe

GUI

Configuration / GUI

我可以通过更改主配置文件config.plistGUI部分中的参数来修改GUI设置。

旧版Clover修订版<1659从refit.conf读取GUI设置

<key>GUI</key>
<dict>
...
</dict>
  • GUI
  • 纯文本
  • 主题
  • 屏幕分辨率
  • ConsoleMode
  • 语言
  • CustomIcons
  • 老鼠
  • 扫描
  • 扫描/条目
  • 扫描/工具
  • 扫描/遗产
  • 扫描/内核
  • 隐藏
  • 习惯
  • 自定义/条目
  • 定制/遗产
  • 自定义/工具
TextOnly
<key>TextOnly</key>
<false/>

纯文本菜单模式,用于最小的GUI和更快的加载时间。

Theme

GUI的设计取决于所选主题,使用以下方法设置:

<key>Theme</key>
<string>metal</string>

此外,您可以在首选项面板中设置主题。此设置将覆盖配置文件中的设置。如果此处使用了无效的主题名称(给定路径中不存在theme.plist),则再次使用配置文件设置。如果即使在这里主题名称无效,那么你将会遇到一个仍然可以运作的丑陋后备主题。

ScreenResolution
<key>ScreenResolution</key>
<string>1024x768</string>

如果视频卡和显示器支持,您可以设置所需的屏幕分辨率。Clover将尝试设置最高可用分辨率,但可能会失败。您可以在启动日志中查看支持的解决方案列表。如果PatchVBios=Yes图形部分中使用,您将获得显示器支持的最高分辨率。在这种情况下,此参数可能已过时。默认值为1024x768

ConsoleMode
<key>ConsoleMode</key>
<string>[Number]/Max/Min</string>

将控制台驱动程序切换到请求的控制台模式(由shell,boot.efi,dumpueficalls等使用)。通常没有必要使用它,只应在需要时使用。

  • 0(默认) – 已禁用。由于可能的不兼容原因,不会进行任何切换。
  • Min – 选择可用的最低模式。对于缓慢的控制台很有用,比如CloverEFI,有很多调试输出。
  • Max – 选择可用的最高模式。适用于快速控制台,它的工作原理。
  • [Number] – 选择特定模式。有关可用模式的列表,请参阅revison > = 2496中的boot.log。
Language
<key>Language</key>
<string>en:0</string>

设置Clover帮助菜单的语言,可以使用快捷键F1访问。此外,此设置将传递给操作系统,并可能对语言产生影响。

可用的语言代码是:
enrufritesptbrdenlpluaczhridko

CustomIcons
<key>CustomIcons</key>
<true/>

启用此密钥将从分区本身加载图标。您可以为每个卷分配自己的图标,即使具有相同的操作系统,也可以为不同的卷使用不同的图标。

Mouse
<key>Mouse</key>
<dict>
    <key>Enabled</key>
    <true/>
    <key>Speed</key>
    <integer>2</integer>
    <key>Mirror</key>
    <false/>
    <key>DoubleClick</key>
    <integer>500</integer>
</dict>
  • Enabled – 鼠标可能无法工作甚至导致整个GUI锁定。如果是这种情况,请将其关闭。
  • Speed – 鼠标移动速度。合理的值范围从2– 8。有些老鼠可能需要负速度来逆转运动。0关掉鼠标。
  • Mirror – 单轴负移动速度
  • DoubleClick – 暂停双击检测,以毫秒为单位。到现在为止500每个人都有很好的价值。
Scan
<key>Scan</key>
<true/>

启用或禁用所有自动扫描。

Scan / Entries
<key>Scan</key>
<dict>
  <key>Entries</key>
  <true/>
</dict>

启用或禁用自动UEFI条目扫描。

Scan / Tool
<key>Scan</key>
<dict>
  <key>Tool</key>
  <true/>
</dict>

启用或禁用自动UEFI工具扫描。

Scan / Legacy
<key>Scan</key>
<dict>
  <key>Legacy</key>
  <string>Last</string>
</dict>

启用或禁用自动旧版扫描。也可以选择从头First开始Last列出,最后列出它。

Scan / Kernel
<key>Scan</key>
<dict>
  <key>Kernel</key>
  <string>All/Newest/Oldest/First/Last/MostRecent/Earliest/None</string>
</dict>

启用或禁用自动Linux内核扫描。此外,您可以选择以下几个选项:

  • All – 所有找到的内核(默认)
  • Newest – 最新的文件修改日期
  • Oldest – 最早的文件修改日期
  • First – 第一次匹配
  • Last – 最后匹配
  • MostRecent – 最新版本
  • Earliest – 最早的版本
  • None – 没有内核扫描
Hide
<key>Hide</key>
<array>
  <string>WindowsHDD</string>
  <string>HD(1,GPT,E223FF7F-F2DA-4DBB-B765- 756F2D95B0FE)</string>
</array>

隐藏具有给定名称或GUID的分区。

Custom
<key>Custom</key>
<dict>
  ...
</dict>

如果自动扫描条目不够,您可以添加自己的自定义引导条目。

Custom / Entries
<key>Entries</key>
<array>
  <dict>
    <key>Disabled</key>
    <false/>
    <key>Volume</key>
    <string>Volume name or GUID</string>
    <key>VolumeType</key>
    <string>Volume type</string>
    <key>Path</key>
    <string>Loader path</string>
    <key>Arguments</key>
    <string>Load options</string>
    <key>AddArguments</key>
    <string>Load options</string>
    <key>Title</key>
    <string>Display title</string>
    <key>FullTitle</key>
    <string>Full display title</string>
    <key>Image</key>
    <string>ImagePath</string>
    <key>ImageData</key>
    <string>Image hex</string> OR <data>Image base64</data>
    <key>DriveImage</key>
    <string>ImagePath</string>
    <key>DriveImageData</key>
    <string>Image hex</string> OR <data>Image base64</data>
    <key>Hidden</key>
    <true/> or <false/> or <string>Yes/No/Always</string>
    <key>InjectKexts</key>
    <true/> or <false/> or <string>Yes/No/Detect</string>
    <key>NoCaches</key>
    <false/>
    <key>Kernel</string>
    <string>All/Newest/Oldest/First/Last/MostRecent/Earliest</string>
    <key>Type</key>
    <string>OSX/OSXInstaller/OSXRecovery/Windows/Linux</string>
    <key>BootBgColor</key>
    <string>RRGGBBAA</string>
    <key>CustomLogo</key>
    <false/>
    <key>KernelAndKextPatches</key>
    <dict>
          <key>AppleRTC</key>
          <false/>
          <key>KextsToPatch</key>
          <array>
          ... 
    </dict>
    <array>...</array> Or <true/> / <false/>
  </dict>
  ...
</array>
  • Disabled – 禁用该条目,以便不考虑它。
  • Volume – 扫描加载程序时要使用的卷名或GUID。
  • VolumeType – 您希望自定义条目匹配的卷类型。可以是具有一种类型的字符串,也可以是具有多种类型的数组。有效容积类型是InternalExternalOpticalFireWire
  • Path – 扫描efi加载程序的位置。
  • Arguments – 要传递给加载程序的参数。覆盖Boot / Arguments中的默认引导参数
  • AddArguments– 添加到默认引导参数。对于SubEntry,它会添加到主条目的参数中。
  • Title – 更改显示标题。使用<VolumeName>中的“Boot <Title>”格式
  • FullTitle – 将显示标题设置为“<FullTitle>”,不带任何格式。
  • Image – 自定义图像文件的路径。搜索路径是条目卷的根目录,主题目录,三叶草目录,三叶草卷根目录,最后是os图标名称。
  • ImageData – 嵌入式自定义图像。可以是PNG或BMP格式。
  • DriveImage – 自定义驱动器映像文件的路径。搜索路径是条目卷的根目录,主题目录,三叶草目录,三叶草卷根目录,最后是os图标名称。
  • DriveImageData – 嵌入式自定义驱动器映像 可以是PNG或BMP格式。
  • Hidden – 隐藏条目。如果值是true,则可以通过按F3显示该条目。如果值是Always条目永远不会显示。
  • InjectKexts – 注入kexts。有效选项是YesNoDetect。使用Detect以注入kext文件仅当FakeSMC不存在于内核缓存或/ S / L / E。对于OSXOSXInstallerOSXRecovery类型条目。
  • NoCaches – 跳过缓存。对于OSXOSXInstallerOSXRecovery类型条目。
  • Kernel – 设置linux内核扫描优先级。如果未提供此选项,Clover将显示找到的所有内核。有效的选项为NewestOldestFirstLastMostRecentEarliest。对于LinuxKernel类型条目。
  • Type – 正在扫描的操作系统类型。有效的类型有OSXOSXInstallerOSXRecoveryWindowsLinuxLinuxKernel。如果Type不是其中之一,则将其视为所有类型。
  • BootBgColor – 指定引导屏幕的背景颜色。对于OSXOSXInstallerOSXRecovery类型条目。
  • CustomLogo – 定义引导屏幕徽标样式。有关详细信息,请参阅Boot / CustomLogo
  • SubEntries – (默认值:true)如果设置为false,则禁用默认子条目。也可以使用与主条目相同的结构创建自定义子条目,子条目中未设置的任何设置都将从主条目继承。
  • KernelAndKextPatches– 使用相同的层次结构并提供与KernelAndKextPatches相同的功能,因此您可以有选择地为每个条目应用修补程序。仅适用于修订版2797或更高版本。
Custom / Legacy
<key>Legacy</key>
<array>
  <dict>
    <key>Volume</key>
    <string>Volume name or GUID</string>
    <key>Title</key>
    <string>Display title</string>
    <key>Hidden</key>
    <false/>
    <key>Disabled</key>
    <false/>
    <key>Ignore</key>
    <true/>
    <key>Type</key>
    <string>Windows/Linux</string>
  </dict>
  ...
</array>
  • Volume – 扫描加载程序时要使用的卷名或GUID。
  • Title – 更改显示标题。使用<VolumeName>中的“Boot <Title>”格式
  • Hidden – 隐藏条目,但可以按F3显示。
  • Disabled – 禁用该条目,以便永远不会显示。
  • Ignore – 输入将被忽略或不使用,因此不会影响任何内容。
  • Type – 正在扫描的操作系统类型。有效的类型有OSXOSXInstallerOSXRecoveryWindowsLinuxLinuxKernel。如果Type不是其中之一,则将其视为所有类型。
Custom / Tool
<key>Tool</key>
<array>
  <dict>
    <key>Volume</key>
    <string>Volume name or GUID</string>
    <key>Path</key>
    <string>Loader path</string>
    <key>Arguments</key>
    <string>Load options</string>
    <key>Hotkey</key>
    <string>G</string>
    <key>Title</key>
    <string>Display title</string>
    <key>FullTitle</key>
    <string>Full Display title</string>
    <key>Hidden</key>
    <false/>
    <key>Disabled</key>
    <false/>
    <key>Ignore</key>
    <true/>
  </dict>
  ...
</array>

将会有更多解释。

Graphics

Configuration / Graphics

<key>Graphics</key>
<dict>
...
</dict>

该参数组用于注入视频卡属性,例如,由Natit.kext完成。注入了许多不同的参数,主要是常量,其中一些被计算,其中一些在内部表中定义,只有少数参数可以使用配置文件进行调整。

  • Graphics
  • Inject
  • Inject / Intel
  • Inject / ATI
  • Inject / NVidia
  • VRAM
  • LoadVBios
  • DualLink
  • PatchVBios
  • PatchVBiosBytes
  • EDID
  • VideoPorts
  • FBName
  • NVCAP
  • display-cfg
  • ig-platform-id
Inject
<key>Inject</key>
<true/>

启用图形注入,这是工作系统所必需的。如果你不知道更好的方法,只建议禁用它。某些视频卡,例如Nvidia GTX 6xx或AMD Radeon HD 6xxx不需要注入,它将在没有用户交互的情况下自动禁用。至少它足以到达桌面。

默认情况下启用。

Inject / Intel
<key>Inject</key>
<dict>
  <key>Intel</key>
  <true/>
</dict>
Inject / ATI
<key>Inject</key>
<dict>
  <key>ATI</key>
  <true/>
</dict>
Inject / NVidia
<key>Inject</key>
<dict>
  <key>NVidia</key>
  <true/>
</dict>
VRAM
<key>VRAM</key>
<integer>1024</integer>

以MB为单位的视频内存量。它会自动确定,但如果您写出正确的值,则不会有人受到伤害。然而,改变它还没有帮助任何人。

LoadVBios
<key>LoadVBios</key>
<true/>

从文件加载视频BIOS,该文件需要存储在EFI / CLOVER / OEM / [model] / ROMEFI / CLOVER / ROM目录中,名称为[vendor] _ [device] .rom,例如1002_68d8。只读存储器。有时,手动加载视频BIOS是有意义的,例如当您需要修补版本或视频卡未向系统显示时 – 例如移动Radeon卡。在这种情况下,将此参数设置为Yes不提供任何文件就足够了。Clover将从0xC0000处读取传统内存中的视频BIOS,其中大多数时间都存在,并启用功能。
显然,写入卡ROM的视频BIOS与存储在地址0xC0000(视频ROM)的视频BIOS不匹配。简而言之:

  • <true/> – 用于移动Radeon卡,无需任何外部文件。
    也可用于向卡片提供传统视频BIOS,其中仅包含UEFI视频BIOS。
  • <false/> – 对于所有其他变种
DualLink
<key>DualLink</key>
<integer>0</integer>

默认是1

一些系统显示四分之一屏幕。使用0来解决这个问题,如显示在上面的例子。

PatchVBios
<key>PatchVBios</key>
<true/>

Clover对地址0xC0000处的影子ROM应用校正,以支持最高的监视器分辨率。例如,监视器的EDID包含模式1920×1080,但视频BIOS不包含。Clover将其作为第一种使用模式。如果显示器不产生EDID,可以手动注入。

如果设置ScreenResolution了部分GUI,它将用于此补丁。

如果自动修补程序失败,则可以指定手动修补程序。

PatchVBiosBytes
<key>PatchVBiosBytes</key>
<array>
    <dict>
        <key>Find</key>
        <data>gAeoAqAF</data>
        <key>Replace</key>
        <data>gAeoAjgE</data>
    </dict>
</array>

此示例适用于AMD Radeon HD 6670视频BIOS,从而以1920×1080模式替换模式1920×1440。建议选择具有相同水平分辨率的模式。

可以应用多个补丁。例如,Nvidia视频BIOS已成功修改了四个补丁。

EDID
<key>EDID</key>
<dict>
    <key>Inject</key>
    <true/>
    <key>Custom</key>
    <data>AP///////wAyDADfAAAAAAASAQOAIRV4CunVmVlTjigmUFQAAAABAQEBAQEBAQEBAQEBAQEB3iGgcFCEHzAgIFYAS88QAAAY3iGgcFCEHzAgIFYAS88QAAAAAAAA/gBXNjU3RwAxNTRXUDEKAAAA/gAjMz1IZYSq/wIBCiAgAJo=</data>
    <key>VendorID</key>
    <string>0x1006</string>
    <key>ProductID</key>
    <string>0x9221</string>
</dict>

旧密钥InjectEDID和CustomEDID已移至此处。

Inject当EDID存在但Apple的驱动程序看不到时,参数很有用。在这种情况下,将此选项设置为就足够了<true/>。Clover将自动提取EDID并将其提供给驱动程序。有关详细信息,请参阅Mobile Radeons。对于没有DDC的监视器和仅适用于UEFI的计算机,需要自定义EDID。

Custom参数用于在缺少自定义EDID时提供。主要要求是具有正确的最大分辨率。

另一种可能性是使用ViewSonic EDID Editor v3.1.5,如果需要,可以轻松移植到Mac。

Dell Inspiron的EDID将在样本配置文件中使用,矩阵为1440×900。

自定义EDID也将用于自动视频BIOS修补。看看上面。

您可以在EDID中覆盖VendorID和ProductID。

VideoPorts
<key>VideoPorts</key>
<integer>2</integer>

视频卡上的端口数量,包括TVO和/或HDMI。选择的Apple帧缓冲区可能与我们的真实视频卡不对应。

FBName
<key>FBName</key>
<string>Macaque</string>

此参数特定于AMD Radeon卡,它具有一堆不同的帧缓冲器,没有任何特定模式。对于各种常见的显卡,Clover会自动选择适合的帧缓冲名称。如果您愿意,可以随意设置。如果您不知道在此处写什么,请完全删除此参数。

不要使用Macaque!它仅用于荒谬。但是没有 – 人们仍然在他们的配置中使用它!

小指导表:

系列v /类型> |手机|桌面:— |:— |:— HD 5000 | Alouatta |狒狒HD 6000 | Cttail | Ipomoea HD 7000 | Pondweed | Futomaki

NVCAP
<key>NVCAP</key>
<string>04000000000003000C0000000000000A00000000</string>

此参数仅对Nvidia视频卡有用,并配置视频端口的类型和用法。示例行包含40个大写十六进制数字。在这种情况下理论缺失,实践表明有争议的结果。

下表存在(在insanelymac的某个地方找到),但其正确性值得商榷:

clover_nvcap

您还可以找到有关计算此行的正确值的其他方法。

Clover将尝试根据视频BIOS生成一个。

display-cfg
<key>display-cfg</key>
<string>03010300FFFF0001</string>

此参数也适用于Nvidia卡。有关详细信息,请参阅有关projectosx主题。然而,列出的例子是有争议的。您可以在此主题中查看实际配置。显然最好让Clover处理这个值。完全不让它,让Clover做计算。

ig-platform-id
<key>ig-platform-id</key>
<string>0x01620005</string>

此参数用于启用内部Intel HD 4000视频卡。到目前为止,还没有找到选择值的常用规则,因此要么让Clover处理此参数,要么使用另一个参数,如果它不起作用。

这是一个包含可能值的表:

Value|Type|Ports :—|:—|:— 0x01660000|Mobile|4 ports: 1 LVDS, 3 DP 0x01660001|Mobile|4 ports: 1 LVDS, 1 HDMI, 2 DP 0x01660002|Mobile|1 port: LVDS 0x01660003|Mobile|4 ports: 1 LVDS, 1 HDMI e 2 DP 0x01660004|Mobile|1 port: LVDS 0x01620005|Desktop|3 ports: DP 0x01620006|Desktop|0 ports 0x01620007|Desktop|0 ports 0x01660008|Mobile|3 ports: 1 LVDS, 2 DP 0x01660009|Mobile|3 ports: 1 LVDS, 2 DP 0x0166000a|Mobile|3 ports: 2 DP, 1 HDMI 0x0166000b|Mobile|3 ports: 2 DP, 1 HDMI

KernelAndKextPatches

Configuration / KernelAndKextPatches

<key>KernelAndKextPatches</key>
<dict>
...
</dict>

此参数组可以即时进行修补。

要求:使用内核缓存或密钥NoCache启动
如果由于其他原因导致缓存丢失,则不会启用修补。


  • KernelAndKextPatches
  • Debug
  • KernelCpu
  • FakeCPUID
  • AppleIntelCPUPM
  • KernelPm
  • AppleRTC
  • KernelLapic
  • KernelHaswellE
  • KextsToPatch
  • ForceKextsToLoad
  • ATIConnectorsController
Debug
<key>Debug</key>
<true/>

启用描述修补过程的详细输出。这会将内核补丁和kext注入调试消息打印到屏幕上,因为标准启动日志已经关闭。用于调试目的。

KernelCpu
<key>KernelCpu</key>
<true/>

消除与旧系统中不支持的CPU(如Yonah,Atom或Haswell)相关的内核恐慌。但是,内核有其他算法在使用不受支持的CPU时无法正常工作,并且此补丁无法解决所有问题。这种情况极不可能与奔腾M,奔腾4或AMD配合使用。在这种情况下,建议使用特殊的替换内核。

FakeCPUID
<key>FakeCPUID</key>
<string>0x010676</string>

假CPUID旨在替代内核CPU补丁。它也影响内核和AppleCPUPowerManagement。

如果要使用不受支持的CPU安装OSX,则需要伪造其ID以避免内核崩溃。如果您尝试使用Atom CPU安装OSX,或使用IvyBridge CPU安装10.7.2,则非常有用。

对于这些情况,Clover允许您在config.plist中或甚至通过GUI在Binaries修补菜单中设置FakeCPUID。

下表显示了不同OS X版本支持的所有CPUID:

CPUID_table
AppleIntelCPUPM
<key>AppleIntelCPUPM</key>
<true/>

AsusAICPUPM密钥已重命名为AppleIntelCPUPM。

一些供应商,如ASUS,将其电源管理模块中MSR寄存器0xE2的使用限制为ReadOnly。在Sandy / Ivy Bridge系统上,kext AppleIntelCpuPowerManagement将尝试写入此寄存器并导致内核崩溃。该补丁将消除kext的写操作。

KernelPm
<key>KernelAndKextPatches</key>
<dict>
   <key>KernelPm</key>
   <true/>
</dict>

Haswell的内核电源管理补丁,具有锁定的msrs。适用于10.8.5和10.9内核。

AppleRTC
<key>AppleRTC</key>
<true/>

OS X与BIOS CMOS存在兼容性问题,导致在睡眠和重启后每次唤醒时都会重置,这在BIOS设置丢失时会很明显。技嘉主板大多受到影响。通常可以通过在DSDT中修补设备(RTC)来解决。
如果这没有帮助,可以修补kext本身,这是在这里完成的。

KernelLapic
<key>KernelLapic</key>
<false/>

惠普笔记本电脑存在严重问题,可以通过使用启动参数cpus=1或使用此选项来解决。

KernelHaswellE
<key>KernelHaswellE</key>
<false/>

OS X内核目前不支持Haswell-E设置(从OS X 10.10.2开始)。此修补程序摆脱了阻塞兼容性检查。请注意,这不会启用电源管理或类似功能。

KextsToPatch
<key>KextsToPatch</key>
<array>

除了内置补丁之外,您还可以创建自己的补丁,提供以下数据:二进制文件名,要查找的数据和要替换的数据 – 均以十六进制表示。数据长度必须相等。较小的替换数据线可以用零填充。

  • 以下示例显示了VoodooHDA的补丁,用于替换带有电话的字符串耳机
<key>KextsToPatch</key>
<array>
<dict>
    <key>Name</key>
    <string>VoodooHDA</string>
    <key>Find</key>
    <data>SGVhZHBob25lcwA=</data>
    <key>Replace</key>
    <data>VGVsZXBob25lcwA=</data>
</dict>
</array>

注意:由于字段的数据类型,补丁数据在base64中编码。

常见的补丁是:

适用于非Apple SSD的TRIM功能:

将外部驱动程序定义为内部以修复黄色驱动器图标

<dict>
    <key>Name</key>
    <string>AppleAHCIPort</string>
    <key>Find</key>
    <data>RXh0ZXJuYWw=</data>
    <key>Replace</key>
    <data>SW50ZXJuYWw=</data>
</dict>

允许使用没有ECC内存的MacPro4,1或MacPro5,1 SMBIOS定义启动:

<dict>
    <key>Name</key>
    <string>AppleTyMCEDriver</string>
    <key>Find</key>
    <data>cgoATWFjUHJvNCwxAE1hY1BybzUsMQBY</data>
    <key>Replace</key>
    <data>cgoAAAAAAAAAAAAAAAAAAAAAAAAAAABY</data>
</dict>

有时需要另外修改kext的Info.plist。在这种情况下,使用以下语法:

<dict>
    <key>Name</key>
    <string>AppleHDAController</string>
    <key>Comment</key>
    <string>Patch_to_not_load_this_driver</string>
    <key>InfoPlistPatch</key>
    <true/>
    <key>Find</key>
    <string>0x04020000</string>
    <key>Replace</key>
    <string>0x44220000</string>
</dict>

附注:补丁应该在缓存中完成。如果修补Info.plist以允许加载kext,则它尚未出现在缓存中。您需要重启两次。首先使用密钥NoCaches允许FSInject加载kext,第二次使缓存成功修补。

ForceKextsToLoad
<key>ForceKextsToLoad</key>
<array>
  <string>\System\Library\Extensions\AppleHDA.kext</string>
  <string>\Extra\Extensions</string>
</array>

从引导卷强制加载kexts(和插件),以便可以修补它。它还接受目录强制加载/注入文件夹中的每个kext。

ATIConnectorsController
<key>ATIConnectorsController</key>
<string>6000</string>

对于完全工作的AMD视频卡,注册属性到注册表是不够的。另外,需要修改相应控制器二进制文件中的连接器。该示例指向6000系列控制器文件:

<key>ATIConnectorsData</key>
<string>000400000403000000010000210302040400000014020000000100000000 040310000000100000000001000000000001</string>
<key>ATIConnectorsPatch</key>
<string>040000001402000000010000000004040004000004030000000100001102 010500000000000000000000000000000000</string>

此方法适用于使用Mac OS X 10.7或更高版本的系统。

关于insanelymac的bcc9帖子中的更多信息。

RtVariables

Configuration / RtVariables

<key>RtVariables</key>
<dict>
...
</dict>

用于定义影响Apple服务或Clover本身的运行时变量的参数组。

  • RtVariables
  • MLB
  • 只读存储器
  • CsrActiveConfig
  • BooterConfig
  • MountEFI
  • LogEveryBoot
  • LogLineCount
MLB
<key>MLB</key>
<string>XXXXXXXXXX</string>

数字和字母,长度为17,描述主板的序列号。这里没有特殊规则。最好的选择是选择一个真实的序列号并替换中间的数字。例如,写…SLICE…或其他任何想法。

ROM
<key>ROM</key>
<data>AAAAAAAA</data> OR <string>UseMacAddrX</string>

十二个十六进制数字,通常对应于以太网卡的MAC地址。根据几个报告,这个值可以是随机的。

由于修订版3051 Clover可以检测以太网设备的LAN MAC地址并将其用作ROM。
对于UEFI,它将首先检查UEFI协议的LAN信息,但是对于传统,它将尝试从硬件获取它,并且因为此过程是危险的,所以您需要通过以下方式指定LAN设备来启用该功能:UseMacAddr0或者UseMacAddr1(最多可计算4台设备,但仅使用2台设备)。
如果UseMacAddrX未设置,则不会测试MAC地址的遗留情况; UEFI方法是安全的,并且将始终进行测试。

CsrActiveConfig
  • 自修订版r3259
<key>CsrActiveConfig</key>
<string>0x3</string>

控制系统完整性保护(SIP),请参阅Wikipedia

SIP的相关用户选项:

  • csr-active-config 0x0 =启用SIP(默认)
  • csr-active-config 0x3 = SIP部分禁用(加载未签名的kexts)
  • csr-active-config 0x67 =完全禁用SIP
BooterConfig
  • 自修订版r3259
<key>BooterConfig</key>
<string>0x28</string>
MountEFI

不推荐!自r2889起未使用。

<key>MountEFI</key>
<false/>

此参数连接到启动脚本,并传递选项以在每次启动时自动安装ESP(EFI系统分区)。对大多数人来说,这将毫无用处。因此,建议禁用它,并在需要时启用CloverGUI中的相应选项。

或者,您可以指定磁盘ID,例如disk1在多磁盘系统上安装特定的ESP。

LogEveryBoot

不推荐!自r2889起未使用。

<key>LogEveryBoot</key>
<string>Yes</string>

通常只需要启动日志用于调试目的。建议关闭此选项。此外,您可以指定最大存储日志量10

LogLineCount

不推荐!自r2889起未使用。

<key>LogLineCount</key>
<string>3000</string>

指定日志文件中的最大行数以防止文件大小不断增长。

SMBIOS

Configuration / SMBIOS

<key>SMBIOS</key>
<dict>
...
</dict>

这组参数用于将您的PC屏蔽为Mac。Clover将根据给定的处理器,视频卡和移动性迹象自动执行此任务。但是,您可以选择不同的方式。获取MacTracker应用程序,选择您喜欢的模型并查找匹配的值。变色龙向导可以帮助您完成此任务。这里没有太多评论,这些值不适合初学者。如果你了解它们 – 改变它们; 否则就离开吧。计算它们几乎是不可能的。

  • SMBIOS
  • ProductName
  • Family
  • SmUUID
  • FirmwareFeatures
  • SerialNumber
  • BoardSerialNumber
  • BiosVersion
  • BiosReleaseDate
  • BoardType
  • Mobile
  • ChassisType
  • ChassisAssetTag
  • Trust
  • Memory
  • Slots
ProductName
<key>ProductName</key>
<string>MacBook1,1</string>

SMBIOS.table1->产品名称

您只能设置此值,Clover将根据模型自动调整其余参数,因此您可以将其保留。否则,您的自定义值将是首选。

Clover具有以下模型的内置定义:

  • MacBook1,1
  • MacBook2,1
  • MacBook4,1
  • MacBook5,2
  • MacBookPro5,1
  • MacBookPro8,1
  • MacBookPro8,3
  • MacBookPro9,2
  • MacBookAir3,1
  • MacBookAir5,2
  • Macmini2,1
  • Macmini5,1
  • Macmini6,2
  • iMac8,1
  • iMac10,1
  • iMac11,1
  • iMac11,2
  • iMac11,3
  • iMac12,1
  • iMac12,2
  • iMac13,1
  • iMac13,2
  • MacPro3,1
  • MacPro4,1
  • MacPro5,1

所有其他模型都需要手动设置所有字段。

如果未设置模型,Clover将自动为您选择一个。

BoardSerialNumber应该生成一些参数,并手动指定它们是唯一的。

Family
<key>Family</key>
<string>MacBookAir</string>

它等于没有模型编号的模型。

SmUUID
<key>SmUUID</key>
<string>00000000-0000-1000-8000-010203040506</string>

这是UUID,写入SMBIOS表。显然,用最后一对数字填充以太网卡的MAC地址是有意义的。如果缺少CustomUUID,也将使用此UUID。如果ROM丢失,它还可用于初始化ROM RtVariable(由iMessage使用)。

FirmwareFeatures
<key>FirmwareFeatures</key>
<string>0xC0001403</string>

SMBIOS.table128-> FirmwareFeatures

这些数字超过了标准SMBIOS,是Apple规范的一部分。不同的真实Mac显示不同的值,并且不存在对含义的描述。唯一的线索是由bless命令的来源提供的:

&& (featureFlags & 0x00000001)) {
  contextprintf(context, kBLLogLevelVerbose,  "Legacy mode suppported\n");

因此,我们这里也需要一个奇数。

SerialNumber
<key>SerialNumber</key>
<string>W8000AAAAA</string>

Clover将在每个型号中使用一个特定值,需要用您自己的序列号替换。序列号有两种格式,使用哪种格式取决于型号。根据http://prasys.info/2009/11/understanding-mac-serial-number/或更新的内容,可以使用工具为给定模型生成序列号,也可以手动创建。Clover使用的序列号很可能已被禁止。

BoardSerialNumber
<key>BoardSerialNumber</key>
<string>C02032101R5DC771H</string>

SMBIOS.table2->的SerialNumber

请勿将其与系统序列号混用。Clover将在此处使用一个特定值,需要使用您自己的序列号替换。它是处理iCloud和iMessage服务所必需的(如果缺少则初始化MLB RtVariable)。长度必须为17位,由拉丁字母和数字组成。Clover使用的序列号很可能已被禁止。

BiosVersion
<key>BiosVersion</key>
<string>MB11.YACC.0061.53PH.B03</string>

我们只看到System Profiler中的第一,第三和第五组,但实际上我们应该在config中指定完整的Boot ROM版本。

BiosReleaseDate
<key>BiosReleaseDate</key>
<string></string>

它是BiosVersion密钥中指定的Boot ROM的发布日期。

BoardType
<key>BoardType</key>
<integer>10</integer>

SMBIOS.table2-> BoardType

此参数是为MacPro引入的,它使用11(ProcessorBoard)代替10(主板),显然是出于历史原因。效果尚不清楚,但可以在Profiler中看到。

Mobile
<key>Mobile</key>
<true/>

通常Clover会自动检测系统的移动性,例如,如果是由电池供电,则需要节能。改变它以欺骗系统认为电池不可用或其他方式。

ChassisType
<key>ChassisType</key>
<string>0x10</string>

SMBIOS.table3->类型

用作平台移动性的间接指示。这是根据SMBIOS标准的表格:

Type|Value :—|—: MiscChassisTypeOther|0x01 MiscChassisTypeUnknown|0x02 MiscChassisTypeDeskTop|0x03 MiscChassisTypeLowProfileDesktop|0x04 MiscChassisTypePizzaBox|0x05 MiscChassisTypeMiniTower|0x06 MiscChassisTypeTower|0x07 MiscChassisTypePortable|0x08 MiscChassisTypeLapTop|0x09 MiscChassisTypeNotebook|0x0A MiscChassisTypeHandHeld|0x0B MiscChassisTypeDockingStation|0x0C MiscChassisTypeAllInOne|0x0D MiscChassisTypeSubNotebook|0x0E MiscChassisTypeSpaceSaving|0x0F MiscChassisTypeLunchBox|0x10

Clover将根据设置的Mac模型使用一个值,就像它在真正的Mac中使用一样。除移动设置外,其他效果尚不清楚。

ChassisAssetTag
<key>ChassisAssetTag</key>
<string>LatitudeD420</string>

SMBIOS.table3-> ASSETTAG

该字段从未与真正的Mac一起使用。我们可以将它用于我们自己的目的,例如在HWSensors项目中。

Trust
<key>Trust</key>
<true/>

用于优先考虑SMBIOS或SPD中的内存描述符值。如果Mac中的内存描述不正确,请更改。默认是<true/>

Memory
<key>Memory</key>
<dict>
  <key>Channels</key>
  <integer>2</integer> OR <string>1</string>
  <key>SlotCount</key>
  <integer>24</integer> OR <string>4</string>
  <key>Modules</key>
  <array>
    <dict>
      <key>Slot</key>
      <integer>0</integer> OR <string>5</string>
      <key>Size</key>
      <integer>2048</integer> OR <string>4096</string>
      <key>Frequency</key>
      <integer>1600</integer> OR <string>1333</string>
      <key>Vendor</key>
      <string>Some Company</string>
      <key>Part</key>
      <string>123456ABCDEF</string>
      <key>Serial</key>
      <string>ABCDEF123456</string>
      <key>Type</key>
      <string>DDR/DDR2/DDR3</string>
   </dict>
  </array>
</dict>

如果原始SPD和SMBIOS提供不正确或不完整的信息,则将自定义内存模块表注入SMBIOS。

  • Channels – 内存芯片组支持的硬件通道数量,通常为两个。
  • SlotCount – 系统中的内存插槽总数。最多24(现在)。
  • Modules – 一组INSTALLED模块,如果您的插槽为空,则不包含条目。对于每个模块:
  • Slot – 安装模块的物理插槽位置。
  • Size – 模块的大小(以兆字节为单位)。
  • Frequency – 以兆赫兹为单位的模块速度。
  • Vendor – 内存制造商名称
  • Part – 部件号标识符。
  • Serial – 模块的序列号。
  • Type – 内存模块的类型。
Slots
<key>Slots</key>
<array>
  <dict>
     <key>Device</key>
     <string>ATI/NVidia/LAN/WIFI/Firewire</string>
     <key>ID</key>
     <integer>2</integer>
     <key>Name</key>
     <string>Device name</string>
    <key>Type</key>
    <integer>0</integer>
  </dict>
</array>

AAPL,slot-name注射器。它允许您将设备添加到System Profiler的PCI卡部分。这是一个通常由DSDT或属性字符串注入的属性,但这是一种错误的方法。

注入此属性需要Name (_SUN, 0x02)存在于设备的DSDT部分中。由于编译器优化,您可以将其设置为任何一个字节数,但是0和1。如果您不使用自定义DSDT,则可以为这些设备设置DSDT Mask Fix位。样品:

Device (GIGE)
{
    Name (_ADR, 0x00050000)  // _ADR: Address
    Name (_SUN, 0x02)  // _SUN: Slot User Number
  • Device – 目前它只能是其中之一:ATI,NVidia,LAN,WIFI或Firewire。
  • ID– 必须与DSDT中定义的数字相同_SUN
  • Name– 要分配给的字符串AAPL,slot-name
  • Type – PCI设置为0,PCIe 1x设置为1,PCIe 2x设置为2,等等。

SystemParameters

Configuration / SystemParameters

<key>SystemParameters</key>
<dict>
...
</dict>
  • SystemParameters
  • CustomUUID
  • InjectSystemID
  • BacklightLevel
  • InjectKexts
  • NoCaches
  • NvidiaWeb
CustomUUID
<key>CustomUUID</key>
<string>511CE200-1000-4000-9999-010203040506</string>

您计算机的唯一标识号。如果未设置,将使用自动生成的UUID。使用十六进制数字自定义它以完全控制您的hackintosh。

不要使用此示例值。它到目前为止并不是唯一的,因为已经有足够的傻瓜复制它了。

InjectSystemID
<key>InjectSystemID</key>
<false/>

上述数字可以不同方式注入,并由OS转换为另一个ID。目的是为Chameleon用户提供复制其UUID的选项。设置为<true/>和更改CustomUUID以匹配在注册表中找到的Chameleon使用的UUID IODeviceTree:/efi/platformsystem-id。Profiler将显示与Chameleon生成的UUID不同的UUID。

BacklightLevel
<key>BacklightLevel</key>
<string>0x0101</string>

监控亮度级别。但是,此参数只会影响很少的系统。它也可以从NVRAM中读取。默认情况下,使用系统给出的值。在配置文件中指定它将覆盖它。

InjectKexts
<key>InjectKexts</key>
<string>Detect/Yes/No</string> or <true/> or <false/>

该键定义了关于kext注入的全局策略。

  • Yes<true/>– 始终从/ EFI / CLOVER / kexts /注入kexts
  • No<false/>– 永远不要注入kexts
  • Detect– 仅当内核缓存中不存在FakeSMC时,才会注入来自/ EFI / CLOVER / kexts /的 Kexts

如果定义了自定义条目,则其自己的InjectKexts密钥将覆盖此全局密钥。

NoCaches
<key>NoCaches</key>
<string>Yes/No</string> or <true/> or <false/>

如果启用,则每次启动时都会跳过缓存。就像InjectKexts,此键定义了全局规则,因此自定义条目定义的值将覆盖此值。

NvidiaWeb
<key>NvidiaWeb</key>
<true/>

如果键值为true,则允许访问加载并在新的MacOS系统(10.12.x)下使用Nvidia WebDriver kexts。

至此,config.plist配置文件的结构参数介绍完毕,后续内容请查看“认识功能强大的Clover引导(3)–《手把手教你玩黑苹果》”

Written by

Mison

发表评论

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