Skip to content

Commit

Permalink
RestrictEvents.cpp: Allow routing in recovery/installer
Browse files Browse the repository at this point in the history
  • Loading branch information
khronokernel committed Jun 10, 2023
1 parent 71f7c14 commit c873a45
Showing 1 changed file with 16 additions and 13 deletions.
29 changes: 16 additions & 13 deletions RestrictEvents/RestrictEvents.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -512,7 +512,7 @@ PluginConfiguration ADDPR(config) {
revassetIsSet = enableAssetPatching;
revsbvmmIsSet = enableSbvmmPatching;

if ((lilu.getRunMode() & LiluAPI::RunningNormal) != 0) {
if ((lilu.getRunMode() & LiluAPI::RunningNormal) != 0 || (lilu.getRunMode() & LiluAPI::AllowInstallerRecovery) != 0) {
if (enableMemoryUiPatching | enablePciUiPatching) {
// Rename existing values to invalid ones to avoid matching.
if (strcmp(di.modelIdentifier, "MacPro7,1") == 0) {
Expand Down Expand Up @@ -546,21 +546,24 @@ PluginConfiguration ADDPR(config) {
(getKernelVersion() >= KernelVersion::Monterey ||
(getKernelVersion() == KernelVersion::BigSur && getKernelMinorVersion() >= 4))) {
lilu.onPatcherLoadForce([](void *user, KernelPatcher &patcher) {
if (needsCpuNamePatch) RestrictEventsPolicy::calculatePatchedBrandString();
KernelPatcher::RouteRequest csRoute =
if ((lilu.getRunMode() & LiluAPI::RunningNormal) != 0) {
if (needsCpuNamePatch) RestrictEventsPolicy::calculatePatchedBrandString();
KernelPatcher::RouteRequest csRoute =
getKernelVersion() >= KernelVersion::BigSur ?
KernelPatcher::RouteRequest("_cs_validate_page", RestrictEventsPolicy::csValidatePageBigSur, orgCsValidateFunc) :
(getKernelVersion() >= KernelVersion::Sierra ?
KernelPatcher::RouteRequest("_cs_validate_range", RestrictEventsPolicy::csValidateRangeSierra, orgCsValidateFunc) :
KernelPatcher::RouteRequest("_cs_validate_page", RestrictEventsPolicy::csValidatePageMountainLion, orgCsValidateFunc));
if (getKernelVersion() < KernelVersion::Sierra) {
vnodePagerOpsKernel = reinterpret_cast<void *>(patcher.solveSymbol(KernelPatcher::KernelID, "_vnode_pager_ops"));
if (!vnodePagerOpsKernel)
SYSLOG("rev", "failed to solve _vnode_pager_ops");
(getKernelVersion() >= KernelVersion::Sierra ?
KernelPatcher::RouteRequest("_cs_validate_range", RestrictEventsPolicy::csValidateRangeSierra, orgCsValidateFunc) :
KernelPatcher::RouteRequest("_cs_validate_page", RestrictEventsPolicy::csValidatePageMountainLion, orgCsValidateFunc));
if (getKernelVersion() < KernelVersion::Sierra) {
vnodePagerOpsKernel = reinterpret_cast<void *>(patcher.solveSymbol(KernelPatcher::KernelID, "_vnode_pager_ops"));
if (!vnodePagerOpsKernel)
SYSLOG("rev", "failed to solve _vnode_pager_ops");
}

if (!patcher.routeMultipleLong(KernelPatcher::KernelID, &csRoute, 1))
SYSLOG("rev", "failed to route cs validation pages");
}

if (!patcher.routeMultipleLong(KernelPatcher::KernelID, &csRoute, 1))
SYSLOG("rev", "failed to route cs validation pages");
// Perform regardless of Normal vs Installer
if ((getKernelVersion() >= KernelVersion::Monterey ||
(getKernelVersion() == KernelVersion::BigSur && getKernelMinorVersion() >= 4)) &&
(revsbvmmIsSet || revassetIsSet))
Expand Down

0 comments on commit c873a45

Please sign in to comment.