首先,过去的 PC 只有旧版 BIOS,没有 EFI,但苹果从未使用过旧版 BIOS,只有 EFI。
但这已经改变,因为现在大多数现代 PC 都内置了 UEFI,因此无需模拟 EFI。
有两种方法可以在带有旧版 BIOS 的 hackintosh 上启动 OS X。第一个是变色龙,第二个是三叶草。
Clover 和 Chameleon 加载 OS X 的方式不同。
Clover 使用 DUET EFI 的修改版本(旧版 bios 之上的开源 EFI 实现),或者如果计算机有它自己的 UEFI 内置在 clover 中使用它。Clover 还使用位于 /System/Library/CoreServices/boot.efi 的 OS X 分区上的默认引导加载程序来引导 OS X。 boot.efi 加载 kexts 并将控制权传递给内核,就像在真正的 mac 上一样。
Chameleon 有自己内置的假 EFI 实现,使内核认为它在 EFI Mac 上运行。但是那个假的 EFI 不足以加载 boot.efi 所以 Chameleon 有它自己的加载器。Chameleon 自己加载 kext,然后将控制权交给内核。
两个引导加载程序都内置了 ACPI 表注入、SMBIOS 欺骗、设备 ID 注入等。
FakeSMC 是一个模拟器,它模拟真实 Mac 中的系统管理控制器,其中包含解密 Apple 保护二进制文件的密钥。
Chameleon 将 FakeSMC 和其他 kexts 作为独立或内核缓存的一部分单独加载,如果您使用 Clover,则 boot.efi 可以完成同样的事情。
注意:Clover 有一个您可能正在谈论的功能,即动态注入 kext,使其看起来像是由 Clover 加载的,但实际上它们成为内核缓存的一部分。