diff --git a/Changelog.md b/Changelog.md index f0129693..97062881 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,5 +1,8 @@ Lilu Changelog ============== +#### v1.6.5 +- Fixed macOS 13+ recovery and installer detection + #### v1.6.4 - Added AMD IGPU detection diff --git a/Lilu/Sources/kern_start.cpp b/Lilu/Sources/kern_start.cpp index 9225be69..80709910 100644 --- a/Lilu/Sources/kern_start.cpp +++ b/Lilu/Sources/kern_start.cpp @@ -20,6 +20,8 @@ #include #include +#include + #include OSDefineMetaClassAndStructors(PRODUCT_NAME, IOService) @@ -274,11 +276,19 @@ bool Configuration::getBootArguments() { allowDecompress = !checkKernelArgument(bootargLowMem); - installOrRecovery |= checkKernelArgument("rp0"); - installOrRecovery |= checkKernelArgument("rp"); - installOrRecovery |= checkKernelArgument("container-dmg"); - installOrRecovery |= checkKernelArgument("root-dmg"); - installOrRecovery |= checkKernelArgument("auth-root-dmg"); + auto entry = IORegistryEntry::fromPath("/chosen", gIODTPlane); + if (entry) { + installOrRecovery = entry->getProperty("boot-ramdmg-extents") != nullptr; + entry->release(); + } + + if (!installOrRecovery && getKernelVersion() < KernelVersion::Ventura) { + installOrRecovery |= checkKernelArgument("rp0"); + installOrRecovery |= checkKernelArgument("rp"); + installOrRecovery |= checkKernelArgument("container-dmg"); + installOrRecovery |= checkKernelArgument("root-dmg"); + installOrRecovery |= checkKernelArgument("auth-root-dmg"); + } safeMode = checkKernelArgument("-x");