mirror of
https://github.com/acidanthera/OpenCorePkg.git
synced 2025-12-08 19:25:01 +00:00
ocvalidate Checklist
This version of ocvalidate performs the following checks:
Global Rules
- For all strings (fields with plist
Stringformat) throughout the whole config, only ASCII printable characters are accepted at most. Stricter rules may apply. For instance, some fields only accept specified values, as indicated in Configuration.pdf. - For all patches, excluding section
Kernel->Patch(whereBaseis not empty), theirFind,Replace,Mask, andReplaceMaskmust have identical size in most cases. Also,FindrequiresMask(orReplacerequiresReplaceMask) to be active (set to non-zero) for corresponding bits. - For all
MinKernelandMaxKernelsettings, they should follow the conventions indicated in Configuration.pdf. (TODO: Bring decent checks for this) - For all entries taking file system path only
0-9, A-Z, a-z, '_', '-', '.', '/', and '\'are accepted. - For all Device Paths (e.g.
PciRoot(0x0)/Pci(0x1b,0x0)) only strings in canonic string format are accepted. - For all paths of UEFI Drivers, only
0-9, A-Z, a-z, '_', '-', '.', and '/'are accepted. - For all entries requiring bitwise operations (e.g.
ConsoleAttributes,PickerAttributes, orScanPolicy), only known bits can be set. - For all entries involving GUID (mainly at Section
NVRAM), correct format must be ensured.
ACPI
Add
- Entry[N]->Path: Only
.amland.binfilename suffix are accepted. - Entry[N]->Path: If a customised DSDT is added and enabled,
RebaseRegionsinQuirksshould be enabled.
Booter
MmioWhitelist
- Entry[N]->Enabled: When at least one entry is enabled,
DevirtualiseMmioinQuirksshould be enabled.
Patch
- Entry[N]->Arch: Only
Any,i386, orx86_64are accepted. - Entry[N]->Identifier: Only
Any,Apple, or a specified bootloader with.efisufffix, are accepted.
Quirks
- When
AllowRelocationBlockis enabled,ProvideCustomSlideshould be enabled altogether. - When
EnableSafeModeSlideis enabled,ProvideCustomSlideshould be enabled altogether. - If
ProvideMaxSlideis set to a number greater than zero (i.e. is enabled),ProvideCustomSlideshould be enabled altogether. - When
DisableVariableWrite,EnableWriteUnprotector, orProvideCustomSlideis enabled,OpenRuntime.efishould be loaded underUEFI->Drivers.
DeviceProperties
- Check requirements for Device Paths in Section Global Rules.
Kernel
Add
- Entry[N]->Arch: Only
Any,i386, orx86_64are accepted. - Entry[N]->BundlePath: Filename should have
.kextsuffix. - Entry[N]->PlistPath: Filename should have
.plistsuffix. - Entry[N]: If
Lilu.kextis used,DisableLinkeditJettisonshould be enabled atKernel->Quirks. - For some known kexts, their
BundlePath,ExecutablePath, andPlistPathmust match against each other. Current list of rules can be found here. - Known Lilu plugins must have proper
Addprecedence. That is to say, plugins must be placed afterLilu.kext.
Delete
- Entry[N]->Arch: Only
Any,i386, orx86_64are accepted. - Entry[N]->Identifier: At least one dot (
.) should exist, because any identifier looks like a domain sequence (vendor.product).
Quirks
CustomSMBIOSGuidrequiresUpdateSMBIOSModeatPlatformInfoset toCustom.
Scheme
- KernelArch: Only
Auto,i386,i386-user32, orx86_64are accepted. - KernelCache: Only
Auto,Cacheless,Mkext, orPrelinkedare accepted.
Misc
Boot
- HibernateMode: Only
None,Auto,RTC, orNVRAMare accepted. - PickerMode: Only
Builtin,External, orAppleare accepted.
Security
- BootProtect: Only
None,Bootstrap, orBootstrapShortare accepted. When set toBootstraporBootstrapShort,RequestBootVarRoutingshould be enabled atUEFI->Quirks. - DmgLoading: Only
Disabled,Signed, orAnyare accepted. - Vault: Only
Optional,Basic, orSecureare accepted. - SecureBootModel: Only
Default,Disabled,j137,j680,j132,j174,j140k,j780,j213,j140a,j152f,j160,j230k,j214k,j223,j215,j185,j185f, orx86legacyare accepted.
NVRAM
- Check requirements for GUID in Section Global Rules.
PlatformInfo
- UpdateSMBIOSMode: Only
TryOverwrite,Create,Overwrite, orCustomare accepted.
Generic
- SystemProductName: Only real Mac models are accepted.
- SystemMemoryStatus: Only
Auto,Upgradable, orSolderedare accepted.
UEFI
APFS
- When
EnableJumpstartis enabled,ScanPolicyatMisc->Securityshould haveOC_SCAN_ALLOW_FS_APFS(bit 8) set, orScanPolicyshould be0(failsafe value).
Quirks
- When
RequestBootVarRoutingis enabled,OpenRuntime.efishould be loaded underUEFI->Drivers.
Drivers
- No drivers should be loaded more than once (i.e. there should NOT be any duplicated entries in this section).
- When
OpenUsbKbDxe.efiis in use,KeySupportatUEFI->Inputshould NEVER be enabled altogether. - When
Ps2KeyboardDxe.efiis in use,KeySupportatUEFI->Inputshould be enabled altogether. OpenUsbKbDxe.efiandPs2KeyboardDxe.efishould never co-exist.
Input
- The value of
KeySupportModecan only beAuto,V1,V2, orAMI. - When
PointerSupportis enabled, the value ofPointerSupportModeshould only beASUS.
Output
ClearScreenOnModeSwitch,IgnoreTextInGraphics,ReplaceTabWithSpace, andSanitiseClearScreenonly apply toSystemTextRendererResolutionshould matchNUMBERxNUMBERorNUMBERxNUMBER@NUMBERsequences (unless it is anEmpty stringor is set toMax).