1. For legacy loading, the EmuVariableDxe functions are used. This, of course, is not real non-
volatile memory, due to the fact that Legacy-Clover is intended for those computers where there is
no such memory at all, as well as there is no own EFI with the necessary services. This driver
writes variables simply to memory, but this memory is available for use by MacOSX in its native
interface. When the system shuts down, the rc.shutdown.local script is called, which saves all this
memory to the nvram.plist file at the root of the system drive. Clover, at startup, searches for this
file, and writes all the variables from there back to the RAM that emulates NVRAM. The method is
incomplete, because only variables with AppleBootGuid are saved in this way, however, this is
enough to select the Start Disk.
2. For UEFI downloads, we rely on our own VariableDxe service, which is provided by the OEM
UEFI. In revision 2837, Dmazar corrected the work with this service, so that now it works for most
users in a native way. For those for whom this still does not work, the EmuVariableUEFI emulation
driver is provided, which works similarly to the Legacy driver, and also requires scripts and the
nvram.plist file. New times have come! Again, vit9696 corrected the OsxAptioFix driver so that the
hardware NVRAM would work, but on the new 360, 390 chipsets this does not work. The change
is represented by the OsxAptioFix3Dxe driver, and vit9696 itself offers a more advanced version of
AptioMemoryFix, now included in the Clover repository.
EmuVariable in both cases is not a full-fledged emulation. For example, panic.log is not
saved, simply because the script does not have time to run. The variable boot0082, which is
required for hibernation, is not saved either, but we got around this problem in other ways. But
having panic.log, a longtime dream of hackintoshars, remains Clover's prerogative with real
NVRAM. And again, hibernation in mod 25 requires saving the encryption key online, that is,
only with a real NVRAM.
iMessage is an instant messaging system from Apple itself. Since December 2012, the rules
for registration and use have changed, and all hackintoshares are out of work. She would have
worked with Clover if in September, having dealt with the iCloud service, we had not made a
mistake in the number of digits, we had to leave 17, and we left 12. The mistake was understood
only in January, and thus the Chameleonites understood what was the matter. only they did not
have NVRAM, without which all this was impossible. Namely, for successful registration of
iMessage, it is necessary to write in NVRAM the ROM and MLB variables that are unique for each
computer, and the computer is identified by its HardwareUUID, which, accordingly, must also be
unique. For absolutely newbies, I made the generation of these properties based on DMI data, but
also a recommendation to enter the appropriate values in config.plist, for those who thinks a little
more. At the same time, it turned out that the iMessage service is paid, and the user needs to
register his account in the app store, from which Apple can write off $ 1 to verify that the bank
account is valid. This also implies the need for a unique account. You do not need to use someone
else's ROM, MLB and UUID, and even more so, someone else's bank card. When everything is
different, ROM has 12 digits, MLB has 17 digits, UUID is nonzero, and all this is unique, the
account is tied to a valid account with money, iMessage will work. And don't listen to any
speculation about en0, partition formatting and the like. I have listed all the conditions. that the
bank account is valid. This also implies the need for a unique account. You do not need to use
someone else's ROM, MLB and UUID, and even more so, someone else's bank card. When
everything is different, ROM has 12 digits, MLB has 17 digits, UUID is nonzero, and all this is
unique, the account is tied to a valid account with money, iMessage will work. And don't listen to
any speculation about en0, partition formatting and the like. I have listed all the conditions. that the
bank account is valid. This also implies the need for a unique account. You do not need to use
someone else's ROM, MLB and UUID, and even more so, someone else's bank card. When
everything is different, ROM has 12 digits, MLB has 17 digits, UUID is nonzero, and all this is
unique, the account is tied to a valid account with money, iMessage will work. And don't listen to
any speculation about en0, partition formatting and the like. I have listed all the conditions.