STLVNUB Posted January 24, 2019 Share Posted January 24, 2019 (edited) I have sound when in GUI F7, but when booting Mojave, computer resets, need to delete AudioDxe.efi in order to boot, is there a missed bug somewhere? Edited January 24, 2019 by STLVNUB 1 Link to comment https://www.insanelymac.com/forum/topic/284656-clover-general-discussion/page/741/#findComment-2661139 Share on other sites More sharing options...
SavageAUS Posted January 24, 2019 Share Posted January 24, 2019 Kext injection appears to be broken in macOS Mojave 10.14.4 beta. Sent from my iPhone using Tapatalk Link to comment https://www.insanelymac.com/forum/topic/284656-clover-general-discussion/page/741/#findComment-2661151 Share on other sites More sharing options...
PMheart Posted January 24, 2019 Share Posted January 24, 2019 (edited) 4 hours ago, SavageAUS said: Kext injection appears to be broken in macOS Mojave 10.14.4 beta. Sent from my iPhone using Tapatalk No worries, I have fixed it up! EDIT: Please see https://www.insanelymac.com/forum/topic/284656-clover-general-discussion/?do=findComment&comment=2661179 for the final fix! Edited January 25, 2019 by PMheart 4 2 Link to comment https://www.insanelymac.com/forum/topic/284656-clover-general-discussion/page/741/#findComment-2661155 Share on other sites More sharing options...
STLVNUB Posted January 24, 2019 Share Posted January 24, 2019 16 minutes ago, PMheart said: No worries, I have fixed it up! See https://www.insanelymac.com/forum/topic/337357-pre-release-macos-mojave-10144/?do=findComment&comment=2661150 for more detail. Your all heart PM 1 Link to comment https://www.insanelymac.com/forum/topic/284656-clover-general-discussion/page/741/#findComment-2661158 Share on other sites More sharing options...
Tobiko Posted January 25, 2019 Share Posted January 25, 2019 3 hours ago, meaganmargaret said: So, that worked. I wish the sound it made was better. Comparing it to being played outside Clover and when Clover plays it at boot, well, there's a world of difference. The other thing that concerns me is no AMD on HDMI support........oh well, baby steps, I guess..... My laptop had issues playing the startup sound from a theme. It played but it was buzzy - nasally. I converted the sound.wav from 8000 to 48000 and now it sounds fine. You may want to try it. I used audacity. Link to comment https://www.insanelymac.com/forum/topic/284656-clover-general-discussion/page/741/#findComment-2661172 Share on other sites More sharing options...
Andres ZeroCross Posted January 25, 2019 Share Posted January 25, 2019 In Mojave 10.14.4 Dev Beta 1. Clover fail to inject kext. PMHeart make modification of clover injection and can do that, please make a fix Sent from my Mi Note 2 using Tapatalk Link to comment https://www.insanelymac.com/forum/topic/284656-clover-general-discussion/page/741/#findComment-2661176 Share on other sites More sharing options...
PMheart Posted January 25, 2019 Share Posted January 25, 2019 Hi again, I have cleaned up kext_inject.c once more. (See here) Now that a friend has confirmed that it did work, let me post the diff here. --- kext_inject_org.c 2019-01-25 10:20:46.000000000 +0800 +++ kext_inject_mod.c 2019-01-25 10:42:03.000000000 +0800 @@ -665,16 +665,30 @@ UINT8 KBEMojaSearchEXT[] = { 0xE8, 0xAF, 0x00, 0x00, 0x00, 0xEB, 0x05, 0xE8 }; UINT8 KBEMojaReplaceEXT[] = { 0xE8, 0xAF, 0x00, 0x00, 0x00, 0x90, 0x90, 0xE8 }; -// High Sierra/Mojave (SIP) -// PMheart: checked KBEHighSie*SIP +// High Sierra / Mojave 10.14 - 10.14.3 (SIP) +// PMheart: for 10.14.4+, see KBEMoja4SearchSIP and KBEMoja4ReplaceSIP below +// PMheart: checked KBEHighSieMoja3*SIP // Need to pair with KBEMoja*EXT -UINT8 KBEHighSieMojaSearchSIP[] = { 0xC3, 0x48, 0x85, 0xDB, 0x74, 0x69, 0x48, 0x8B, 0x03, 0x48, 0x89, 0xDF, 0xFF, 0x50, 0x28, 0x48 }; -UINT8 KBEHighSieMojaReplaceSIP[] = { 0xC3, 0x48, 0x85, 0xDB, 0xEB, 0x12, 0x48, 0x8B, 0x03, 0x48, 0x89, 0xDF, 0xFF, 0x50, 0x28, 0x48 }; +UINT8 KBEHighSieMoja3SearchSIP[] = { 0xC3, 0x48, 0x85, 0xDB, 0x74, 0x69, 0x48, 0x8B, 0x03, 0x48, 0x89, 0xDF, 0xFF, 0x50, 0x28, 0x48 }; +UINT8 KBEHighSieMoja3ReplaceSIP[] = { 0xC3, 0x48, 0x85, 0xDB, 0xEB, 0x12, 0x48, 0x8B, 0x03, 0x48, 0x89, 0xDF, 0xFF, 0x50, 0x28, 0x48 }; +// Mojave 10.14.4+ (SIP) +// PMheart: checked KBEMoja4*SIP +// Need to pair with KBEMoja*EXT +UINT8 KBEMoja4SearchSIP[] = { 0x48, 0x85, 0xC0, 0x74, 0x6C, 0x48, 0x89, 0xC3, 0x48, 0x8B, 0x00, 0x48, 0x89, 0xDF, 0xFF, 0x50, 0x28, 0x48 }; +UINT8 KBEMoja4ReplaceSIP[] = { 0x48, 0x85, 0xC0, 0xEB, 0x15, 0x48, 0x89, 0xC3, 0x48, 0x8B, 0x00, 0x48, 0x89, 0xDF, 0xFF, 0x50, 0x28, 0x48 }; + +// Mojave 10.14 - 10.14.3 // Avoid race condition in OSKext::removeKextBootstrap when using booter kexts without keepsyms=1. -UINT8 KBEMojaSearchKxldUnmap[] = { 0x00, 0x0F, 0x85, 0xB2, 0x01, 0x00, 0x00, 0x48 }; -UINT8 KBEMojaReplaceKxldUnmap[] = { 0x00, 0x90, 0xE9, 0xB2, 0x01, 0x00, 0x00, 0x48 }; +// by vit9696 +UINT8 KBEMoja3SearchKxldUnmap[] = { 0x00, 0x0F, 0x85, 0xB2, 0x01, 0x00, 0x00, 0x48 }; +UINT8 KBEMoja3ReplaceKxldUnmap[] = { 0x00, 0x90, 0xE9, 0xB2, 0x01, 0x00, 0x00, 0x48 }; +// Mojave 10.14.4+ +// Avoid race condition in OSKext::removeKextBootstrap when using booter kexts without keepsyms=1. +// by PMheart, based on vit9696's work +UINT8 KBEMoja4SearchKxldUnmap[] = { 0x00, 0x0F, 0x85, 0xB1, 0x01, 0x00, 0x00, 0x48 }; +UINT8 KBEMoja4ReplaceKxldUnmap[] = { 0x00, 0x90, 0xE9, 0xB1, 0x01, 0x00, 0x00, 0x48 }; // // We can not rely on OSVersion global variable for OS version detection, @@ -689,100 +703,114 @@ VOID EFIAPI KernelBooterExtensionsPatch(IN UINT8 *Kernel, LOADER_ENTRY *Entry) { UINTN Num = 0; - UINTN NumSnow_i386 = 0; - UINTN NumSnow_X64 = 0; - UINTN NumLion_i386 = 0; - UINTN NumLion_X64 = 0; - UINTN NumMLMav = 0; - UINTN NumMLDebug = 0; - UINTN NumYos = 0; - UINTN NumMavYosDebug = 0; - UINTN NumEC = 0; - UINTN NumECDebug = 0; - UINTN NumSie = 0; - UINTN NumSieDebug = 0; - UINTN NumHighSieMoja = 0; - UINTN NumMoja = 0; + UINTN NumSnow_i386_EXT = 0; + UINTN NumSnow_X64_EXT = 0; + UINTN NumLion_i386_EXT = 0; + UINTN NumLion_X64_EXT = 0; + UINTN NumMLMavEXT = 0; + UINTN NumMLDebugEXT = 0; + UINTN NumYosEXT = 0; + UINTN NumMavYosDebugEXT = 0; + UINTN NumECSIP = 0; + UINTN NumECDebugSIP = 0; + UINTN NumSieSIP = 0; + UINTN NumSieDebugSIP = 0; + UINTN NumHighSieMoja3SIP = 0; // 10.13.X - 10.14.3 + UINTN NumMojaEXT = 0; // 10.14.X + UINTN NumMoja4SIP = 0; // 10.14.4+ DBG_RT(Entry, "\nPatching kernel for injected kexts...\n"); if (is64BitKernel) { - NumSnow_X64 = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBESnowSearchEXT_X64, sizeof(KBESnowSearchEXT_X64)); - NumLion_X64 = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBELionSearchEXT_X64, sizeof(KBELionSearchEXT_X64)); - NumMLMav = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBEMLMavSearchEXT, sizeof(KBEMLMavSearchEXT)); - //NumMLDebug = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBEMLDebugSearchEXT, sizeof(KBEMLDebugSearchEXT)); - NumYos = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBEYosECSieHighSearchEXT, sizeof(KBEYosECSieHighSearchEXT)); - //NumMavYosDebug = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBEMavYosDebugSearchEXT, sizeof(KBEMavYosDebugSearchEXT)); - NumEC = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBEECSearchSIP, sizeof(KBEECSearchSIP)); - //NumECDebug = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBEECDebugSearchSIP, sizeof(KBEECDebugSearchSIP)); - NumSie = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBESieSearchSIP, sizeof(KBESieSearchSIP)); - NumSieDebug = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBESieDebugSearchSIP, sizeof(KBESieDebugSearchSIP)); - NumHighSieMoja = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBEHighSieMojaSearchSIP, sizeof(KBEHighSieMojaSearchSIP)); - NumMoja = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBEMojaSearchEXT, sizeof(KBEMojaSearchEXT)); - } - else { - NumSnow_i386 = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBESnowSearchEXT_i386, sizeof(KBESnowSearchEXT_i386)); - NumLion_i386 = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBELionSearchEXT_i386, sizeof(KBELionSearchEXT_i386)); + NumSnow_X64_EXT = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBESnowSearchEXT_X64, sizeof(KBESnowSearchEXT_X64)); + NumLion_X64_EXT = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBELionSearchEXT_X64, sizeof(KBELionSearchEXT_X64)); + NumMLMavEXT = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBEMLMavSearchEXT, sizeof(KBEMLMavSearchEXT)); + //NumMLDebugEXT = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBEMLDebugSearchEXT, sizeof(KBEMLDebugSearchEXT)); + NumYosEXT = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBEYosECSieHighSearchEXT, sizeof(KBEYosECSieHighSearchEXT)); + //NumMavYosDebugEXT = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBEMavYosDebugSearchEXT, sizeof(KBEMavYosDebugSearchEXT)); + NumECSIP = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBEECSearchSIP, sizeof(KBEECSearchSIP)); + //NumECDebugSIP = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBEECDebugSearchSIP, sizeof(KBEECDebugSearchSIP)); + NumSieSIP = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBESieSearchSIP, sizeof(KBESieSearchSIP)); + NumSieDebugSIP = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBESieDebugSearchSIP, sizeof(KBESieDebugSearchSIP)); + NumHighSieMoja3SIP = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBEHighSieMoja3SearchSIP, sizeof(KBEHighSieMoja3SearchSIP)); + NumMojaEXT = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBEMojaSearchEXT, sizeof(KBEMojaSearchEXT)); // general EXT patch, for all 10.14.x + NumMoja4SIP = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBEMoja4SearchSIP, sizeof(KBEMoja4SearchSIP)); // SIP patch, ONLY for 10.14.4+ + } else { + NumSnow_i386_EXT = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBESnowSearchEXT_i386, sizeof(KBESnowSearchEXT_i386)); + NumLion_i386_EXT = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBELionSearchEXT_i386, sizeof(KBELionSearchEXT_i386)); } - if (NumSnow_i386 + NumSnow_X64 + NumLion_i386 + NumLion_X64 + NumMLMav > 1) { + if (NumSnow_i386_EXT + NumSnow_X64_EXT + NumLion_i386_EXT + NumLion_X64_EXT + NumMLMavEXT > 1) { // more then one pattern found - we do not know what to do with it // and we'll skipp it - AsciiPrint("\nERROR patching kernel for injected kexts:\nmultiple patterns found (Snowi386: %d, SnowX64: %d, Lioni386: %d, LionX64: %d, MLMav: %d) - skipping patching!\n", NumSnow_i386, NumSnow_X64, NumLion_i386, NumLion_X64, NumMLMav); + AsciiPrint("\nERROR patching kernel for injected kexts:\nmultiple patterns found (Snowi386: %d, SnowX64: %d, Lioni386: %d, LionX64: %d, MLMav: %d) - skipping patching!\n", NumSnow_i386_EXT, NumSnow_X64_EXT, NumLion_i386_EXT, NumLion_X64_EXT, NumMLMavEXT); gBS->Stall(10000000); return; } // X64 - if (NumMoja == 1) { - Num = SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEMojaSearchEXT, sizeof(KBEMojaSearchEXT), KBEMojaReplaceEXT, 1) + - SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEHighSieMojaSearchSIP, sizeof(KBEHighSieMojaSearchSIP), KBEHighSieMojaReplaceSIP, 1) + - SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEMojaSearchKxldUnmap, sizeof(KBEMojaSearchKxldUnmap), KBEMojaReplaceKxldUnmap, 1); - DBG_RT(Entry, "==> kernel Mojave: %d replaces done.\n", Num); - } else if (NumHighSieMoja == 1) { + if (NumMojaEXT == 1) { + // apply EXT patch first + Num = SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEMojaSearchEXT, sizeof(KBEMojaSearchEXT), KBEMojaReplaceEXT, 1); + // then apply corresponding patches based on what we found + if (NumMoja4SIP == 1) { + // firstly, try to patch 10.14.4+ + Num += SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEMoja4SearchSIP, sizeof(KBEMoja4SearchSIP), KBEMoja4ReplaceSIP, 1) + + SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEMoja4SearchKxldUnmap, sizeof(KBEMoja4SearchKxldUnmap), KBEMoja4ReplaceKxldUnmap, 1); + DBG_RT(Entry, "==> kernel Mojave (10.14.4+): %d replaces done.\n", Num); + } else if (NumHighSieMoja3SIP == 1) { + // then 10.14 - 10.14.3 + Num += SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEHighSieMoja3SearchSIP, sizeof(KBEHighSieMoja3SearchSIP), KBEHighSieMoja3ReplaceSIP, 1) + + SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEMoja3SearchKxldUnmap, sizeof(KBEMoja3SearchKxldUnmap), KBEMoja3ReplaceKxldUnmap, 1); + DBG_RT(Entry, "==> kernel Mojave (10.14 - 10.14.3): %d replaces done.\n", Num); + } else { + // no SIP and KxldUnmap pattern found! + DBG_RT(Entry, "==> kernel Mojave WARNING: pattern NOT found - only %d replaces done.\nKext Injection will NOT work!\n", Num); + } + } else if (NumHighSieMoja3SIP == 1) { Num = SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEYosECSieHighSearchEXT, sizeof(KBEYosECSieHighSearchEXT), KBEYosECSieHighReplaceEXT, 1) + - SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEHighSieMojaSearchSIP, sizeof(KBEHighSieMojaSearchSIP), KBEHighSieMojaReplaceSIP, 1); + SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEHighSieMoja3SearchSIP, sizeof(KBEHighSieMoja3SearchSIP), KBEHighSieMoja3ReplaceSIP, 1); DBG_RT(Entry, "==> kernel High Sierra: %d replaces done.\n", Num); - } else if (NumSieDebug == 1) { + } else if (NumSieDebugSIP == 1) { Num = SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBESieDebugSearchEXT, sizeof(KBESieDebugSearchEXT), KBESieDebugReplaceEXT, 1) + SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBESieDebugSearchSIP, sizeof(KBESieDebugSearchSIP), KBESieDebugReplaceSIP, 1); DBG_RT(Entry, "==> kernel Sierra Debug: %d replaces done.\n", Num); - } else if (NumSie == 1) { + } else if (NumSieSIP == 1) { Num = SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEYosECSieHighSearchEXT, sizeof(KBEYosECSieHighSearchEXT), KBEYosECSieHighReplaceEXT, 1) + SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBESieSearchSIP, sizeof(KBESieSearchSIP), KBESieReplaceSIP, 1); DBG_RT(Entry, "==> kernel Sierra: %d replaces done.\n", Num); - } else if (NumECDebug == 1) { + } else if (NumECDebugSIP == 1) { Num = SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEECDebugSearchEXT, sizeof(KBEECDebugSearchEXT), KBEECDebugReplaceEXT, 1) + SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEECDebugSearchSIP, sizeof(KBEECDebugSearchSIP), KBEECDebugReplaceSIP, 1); DBG_RT(Entry, "==> kernel El Capitan Debug: %d replaces done.\n", Num); - } else if (NumEC == 1) { + } else if (NumECSIP == 1) { Num = SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEYosECSieHighSearchEXT, sizeof(KBEYosECSieHighSearchEXT), KBEYosECSieHighReplaceEXT, 1) + SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEECSearchSIP, sizeof(KBEECSearchSIP), KBEECReplaceSIP, 1); DBG_RT(Entry, "==> kernel El Capitan: %d replaces done.\n", Num); - } else if (NumMavYosDebug == 1) { + } else if (NumMavYosDebugEXT == 1) { Num = SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEMavYosDebugSearchEXT, sizeof(KBEMavYosDebugReplaceEXT), KBEMavYosDebugReplaceEXT, 1); DBG_RT(Entry, "==> kernel Yosemite Debug: %d replaces done.\n", Num); - } else if (NumYos == 1) { + } else if (NumYosEXT == 1) { Num = SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEYosECSieHighSearchEXT, sizeof(KBEYosECSieHighSearchEXT), KBEYosECSieHighReplaceEXT, 1); DBG_RT(Entry, "==> kernel Yosemite: %d replaces done.\n", Num); - } else if (NumMLDebug == 1) { + } else if (NumMLDebugEXT == 1) { Num = SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEMLDebugSearchEXT, sizeof(KBEMLDebugSearchEXT), KBEMLDebugReplaceEXT, 1); DBG_RT(Entry, "==> kernel Mountain Lion Debug: %d replaces done.\n", Num) - } else if (NumMLMav == 1) { + } else if (NumMLMavEXT == 1) { Num = SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEMLMavSearchEXT, sizeof(KBEMLMavSearchEXT), KBEMLMavReplaceEXT, 1); DBG_RT(Entry, "==> kernel Mountain Lion/Mavericks: %d replaces done.\n", Num); - } else if (NumLion_X64 == 1) { + } else if (NumLion_X64_EXT == 1) { Num = SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBELionSearchEXT_X64, sizeof(KBELionSearchEXT_X64), KBELionReplaceEXT_X64, 1); DBG_RT(Entry, "==> kernel Lion X64: %d replaces done.\n", Num); - } else if (NumSnow_X64 == 1) { + } else if (NumSnow_X64_EXT == 1) { Num = SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBESnowSearchEXT_X64, sizeof(KBESnowSearchEXT_X64), KBESnowReplaceEXT_X64, 1); DBG_RT(Entry, "==> kernel Snow Leopard X64: %d replaces done.\n", Num); // i386 - } else if (NumLion_i386 == 1) { + } else if (NumLion_i386_EXT == 1) { Num = SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBELionSearchEXT_i386, sizeof(KBELionSearchEXT_i386), KBELionReplaceEXT_i386, 1); DBG_RT(Entry, "==> kernel Lion i386: %d replaces done.\n", Num); - } else if (NumSnow_i386 == 1) { + } else if (NumSnow_i386_EXT == 1) { Num = SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBESnowSearchEXT_i386, sizeof(KBESnowSearchEXT_i386), KBESnowReplaceEXT_i386, 1); DBG_RT(Entry, "==> kernel Snow Leopard i386: %d replaces done.\n", Num); } else { Here is the full kext_inject.c, if needed. cleanup_kext_inject.zip Thanks! 2 2 Link to comment https://www.insanelymac.com/forum/topic/284656-clover-general-discussion/page/741/#findComment-2661179 Share on other sites More sharing options...
Badruzeus Posted January 25, 2019 Share Posted January 25, 2019 (edited) 44 minutes ago, PMheart said: Hi again, I have cleaned up kext_inject.c once more. (See here) Now that a friend has confirmed that it did work, let me post the diff here. ... Here is the full kext_inject.c, if needed. cleanup_kext_inject.zip Thanks once again, also tested on 10.11.6 (Normal) 10.13.6 (Recovery) and 10.14.4 for sure; KextInject is working fine on my case yeiy..!!! Edited January 25, 2019 by Badruzeus 2 Link to comment https://www.insanelymac.com/forum/topic/284656-clover-general-discussion/page/741/#findComment-2661189 Share on other sites More sharing options...
Slice Posted January 25, 2019 Share Posted January 25, 2019 1 hour ago, PMheart said: Hi again, I have cleaned up kext_inject.c once more. (See here) Now that a friend has confirmed that it did work, let me post the diff here. --- kext_inject_org.c 2019-01-25 10:20:46.000000000 +0800 +++ kext_inject_mod.c 2019-01-25 10:42:03.000000000 +0800 @@ -665,16 +665,30 @@ UINT8 KBEMojaSearchEXT[] = { 0xE8, 0xAF, 0x00, 0x00, 0x00, 0xEB, 0x05, 0xE8 }; UINT8 KBEMojaReplaceEXT[] = { 0xE8, 0xAF, 0x00, 0x00, 0x00, 0x90, 0x90, 0xE8 }; -// High Sierra/Mojave (SIP) -// PMheart: checked KBEHighSie*SIP +// High Sierra / Mojave 10.14 - 10.14.3 (SIP) +// PMheart: for 10.14.4+, see KBEMoja4SearchSIP and KBEMoja4ReplaceSIP below +// PMheart: checked KBEHighSieMoja3*SIP // Need to pair with KBEMoja*EXT -UINT8 KBEHighSieMojaSearchSIP[] = { 0xC3, 0x48, 0x85, 0xDB, 0x74, 0x69, 0x48, 0x8B, 0x03, 0x48, 0x89, 0xDF, 0xFF, 0x50, 0x28, 0x48 }; -UINT8 KBEHighSieMojaReplaceSIP[] = { 0xC3, 0x48, 0x85, 0xDB, 0xEB, 0x12, 0x48, 0x8B, 0x03, 0x48, 0x89, 0xDF, 0xFF, 0x50, 0x28, 0x48 }; +UINT8 KBEHighSieMoja3SearchSIP[] = { 0xC3, 0x48, 0x85, 0xDB, 0x74, 0x69, 0x48, 0x8B, 0x03, 0x48, 0x89, 0xDF, 0xFF, 0x50, 0x28, 0x48 }; +UINT8 KBEHighSieMoja3ReplaceSIP[] = { 0xC3, 0x48, 0x85, 0xDB, 0xEB, 0x12, 0x48, 0x8B, 0x03, 0x48, 0x89, 0xDF, 0xFF, 0x50, 0x28, 0x48 }; +// Mojave 10.14.4+ (SIP) +// PMheart: checked KBEMoja4*SIP +// Need to pair with KBEMoja*EXT +UINT8 KBEMoja4SearchSIP[] = { 0x48, 0x85, 0xC0, 0x74, 0x6C, 0x48, 0x89, 0xC3, 0x48, 0x8B, 0x00, 0x48, 0x89, 0xDF, 0xFF, 0x50, 0x28, 0x48 }; +UINT8 KBEMoja4ReplaceSIP[] = { 0x48, 0x85, 0xC0, 0xEB, 0x15, 0x48, 0x89, 0xC3, 0x48, 0x8B, 0x00, 0x48, 0x89, 0xDF, 0xFF, 0x50, 0x28, 0x48 }; + +// Mojave 10.14 - 10.14.3 // Avoid race condition in OSKext::removeKextBootstrap when using booter kexts without keepsyms=1. -UINT8 KBEMojaSearchKxldUnmap[] = { 0x00, 0x0F, 0x85, 0xB2, 0x01, 0x00, 0x00, 0x48 }; -UINT8 KBEMojaReplaceKxldUnmap[] = { 0x00, 0x90, 0xE9, 0xB2, 0x01, 0x00, 0x00, 0x48 }; +// by vit9696 +UINT8 KBEMoja3SearchKxldUnmap[] = { 0x00, 0x0F, 0x85, 0xB2, 0x01, 0x00, 0x00, 0x48 }; +UINT8 KBEMoja3ReplaceKxldUnmap[] = { 0x00, 0x90, 0xE9, 0xB2, 0x01, 0x00, 0x00, 0x48 }; +// Mojave 10.14.4+ +// Avoid race condition in OSKext::removeKextBootstrap when using booter kexts without keepsyms=1. +// by PMheart, based on vit9696's work +UINT8 KBEMoja4SearchKxldUnmap[] = { 0x00, 0x0F, 0x85, 0xB1, 0x01, 0x00, 0x00, 0x48 }; +UINT8 KBEMoja4ReplaceKxldUnmap[] = { 0x00, 0x90, 0xE9, 0xB1, 0x01, 0x00, 0x00, 0x48 }; // // We can not rely on OSVersion global variable for OS version detection, @@ -689,100 +703,114 @@ VOID EFIAPI KernelBooterExtensionsPatch(IN UINT8 *Kernel, LOADER_ENTRY *Entry) { UINTN Num = 0; - UINTN NumSnow_i386 = 0; - UINTN NumSnow_X64 = 0; - UINTN NumLion_i386 = 0; - UINTN NumLion_X64 = 0; - UINTN NumMLMav = 0; - UINTN NumMLDebug = 0; - UINTN NumYos = 0; - UINTN NumMavYosDebug = 0; - UINTN NumEC = 0; - UINTN NumECDebug = 0; - UINTN NumSie = 0; - UINTN NumSieDebug = 0; - UINTN NumHighSieMoja = 0; - UINTN NumMoja = 0; + UINTN NumSnow_i386_EXT = 0; + UINTN NumSnow_X64_EXT = 0; + UINTN NumLion_i386_EXT = 0; + UINTN NumLion_X64_EXT = 0; + UINTN NumMLMavEXT = 0; + UINTN NumMLDebugEXT = 0; + UINTN NumYosEXT = 0; + UINTN NumMavYosDebugEXT = 0; + UINTN NumECSIP = 0; + UINTN NumECDebugSIP = 0; + UINTN NumSieSIP = 0; + UINTN NumSieDebugSIP = 0; + UINTN NumHighSieMoja3SIP = 0; // 10.13.X - 10.14.3 + UINTN NumMojaEXT = 0; // 10.14.X + UINTN NumMoja4SIP = 0; // 10.14.4+ DBG_RT(Entry, "\nPatching kernel for injected kexts...\n"); if (is64BitKernel) { - NumSnow_X64 = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBESnowSearchEXT_X64, sizeof(KBESnowSearchEXT_X64)); - NumLion_X64 = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBELionSearchEXT_X64, sizeof(KBELionSearchEXT_X64)); - NumMLMav = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBEMLMavSearchEXT, sizeof(KBEMLMavSearchEXT)); - //NumMLDebug = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBEMLDebugSearchEXT, sizeof(KBEMLDebugSearchEXT)); - NumYos = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBEYosECSieHighSearchEXT, sizeof(KBEYosECSieHighSearchEXT)); - //NumMavYosDebug = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBEMavYosDebugSearchEXT, sizeof(KBEMavYosDebugSearchEXT)); - NumEC = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBEECSearchSIP, sizeof(KBEECSearchSIP)); - //NumECDebug = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBEECDebugSearchSIP, sizeof(KBEECDebugSearchSIP)); - NumSie = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBESieSearchSIP, sizeof(KBESieSearchSIP)); - NumSieDebug = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBESieDebugSearchSIP, sizeof(KBESieDebugSearchSIP)); - NumHighSieMoja = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBEHighSieMojaSearchSIP, sizeof(KBEHighSieMojaSearchSIP)); - NumMoja = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBEMojaSearchEXT, sizeof(KBEMojaSearchEXT)); - } - else { - NumSnow_i386 = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBESnowSearchEXT_i386, sizeof(KBESnowSearchEXT_i386)); - NumLion_i386 = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBELionSearchEXT_i386, sizeof(KBELionSearchEXT_i386)); + NumSnow_X64_EXT = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBESnowSearchEXT_X64, sizeof(KBESnowSearchEXT_X64)); + NumLion_X64_EXT = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBELionSearchEXT_X64, sizeof(KBELionSearchEXT_X64)); + NumMLMavEXT = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBEMLMavSearchEXT, sizeof(KBEMLMavSearchEXT)); + //NumMLDebugEXT = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBEMLDebugSearchEXT, sizeof(KBEMLDebugSearchEXT)); + NumYosEXT = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBEYosECSieHighSearchEXT, sizeof(KBEYosECSieHighSearchEXT)); + //NumMavYosDebugEXT = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBEMavYosDebugSearchEXT, sizeof(KBEMavYosDebugSearchEXT)); + NumECSIP = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBEECSearchSIP, sizeof(KBEECSearchSIP)); + //NumECDebugSIP = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBEECDebugSearchSIP, sizeof(KBEECDebugSearchSIP)); + NumSieSIP = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBESieSearchSIP, sizeof(KBESieSearchSIP)); + NumSieDebugSIP = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBESieDebugSearchSIP, sizeof(KBESieDebugSearchSIP)); + NumHighSieMoja3SIP = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBEHighSieMoja3SearchSIP, sizeof(KBEHighSieMoja3SearchSIP)); + NumMojaEXT = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBEMojaSearchEXT, sizeof(KBEMojaSearchEXT)); // general EXT patch, for all 10.14.x + NumMoja4SIP = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBEMoja4SearchSIP, sizeof(KBEMoja4SearchSIP)); // SIP patch, ONLY for 10.14.4+ + } else { + NumSnow_i386_EXT = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBESnowSearchEXT_i386, sizeof(KBESnowSearchEXT_i386)); + NumLion_i386_EXT = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBELionSearchEXT_i386, sizeof(KBELionSearchEXT_i386)); } - if (NumSnow_i386 + NumSnow_X64 + NumLion_i386 + NumLion_X64 + NumMLMav > 1) { + if (NumSnow_i386_EXT + NumSnow_X64_EXT + NumLion_i386_EXT + NumLion_X64_EXT + NumMLMavEXT > 1) { // more then one pattern found - we do not know what to do with it // and we'll skipp it - AsciiPrint("\nERROR patching kernel for injected kexts:\nmultiple patterns found (Snowi386: %d, SnowX64: %d, Lioni386: %d, LionX64: %d, MLMav: %d) - skipping patching!\n", NumSnow_i386, NumSnow_X64, NumLion_i386, NumLion_X64, NumMLMav); + AsciiPrint("\nERROR patching kernel for injected kexts:\nmultiple patterns found (Snowi386: %d, SnowX64: %d, Lioni386: %d, LionX64: %d, MLMav: %d) - skipping patching!\n", NumSnow_i386_EXT, NumSnow_X64_EXT, NumLion_i386_EXT, NumLion_X64_EXT, NumMLMavEXT); gBS->Stall(10000000); return; } // X64 - if (NumMoja == 1) { - Num = SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEMojaSearchEXT, sizeof(KBEMojaSearchEXT), KBEMojaReplaceEXT, 1) + - SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEHighSieMojaSearchSIP, sizeof(KBEHighSieMojaSearchSIP), KBEHighSieMojaReplaceSIP, 1) + - SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEMojaSearchKxldUnmap, sizeof(KBEMojaSearchKxldUnmap), KBEMojaReplaceKxldUnmap, 1); - DBG_RT(Entry, "==> kernel Mojave: %d replaces done.\n", Num); - } else if (NumHighSieMoja == 1) { + if (NumMojaEXT == 1) { + // apply EXT patch first + Num = SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEMojaSearchEXT, sizeof(KBEMojaSearchEXT), KBEMojaReplaceEXT, 1); + // then apply corresponding patches based on what we found + if (NumMoja4SIP == 1) { + // firstly, try to patch 10.14.4+ + Num += SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEMoja4SearchSIP, sizeof(KBEMoja4SearchSIP), KBEMoja4ReplaceSIP, 1) + + SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEMoja4SearchKxldUnmap, sizeof(KBEMoja4SearchKxldUnmap), KBEMoja4ReplaceKxldUnmap, 1); + DBG_RT(Entry, "==> kernel Mojave (10.14.4+): %d replaces done.\n", Num); + } else if (NumHighSieMoja3SIP == 1) { + // then 10.14 - 10.14.3 + Num += SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEHighSieMoja3SearchSIP, sizeof(KBEHighSieMoja3SearchSIP), KBEHighSieMoja3ReplaceSIP, 1) + + SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEMoja3SearchKxldUnmap, sizeof(KBEMoja3SearchKxldUnmap), KBEMoja3ReplaceKxldUnmap, 1); + DBG_RT(Entry, "==> kernel Mojave (10.14 - 10.14.3): %d replaces done.\n", Num); + } else { + // no SIP and KxldUnmap pattern found! + DBG_RT(Entry, "==> kernel Mojave WARNING: pattern NOT found - only %d replaces done.\nKext Injection will NOT work!\n", Num); + } + } else if (NumHighSieMoja3SIP == 1) { Num = SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEYosECSieHighSearchEXT, sizeof(KBEYosECSieHighSearchEXT), KBEYosECSieHighReplaceEXT, 1) + - SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEHighSieMojaSearchSIP, sizeof(KBEHighSieMojaSearchSIP), KBEHighSieMojaReplaceSIP, 1); + SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEHighSieMoja3SearchSIP, sizeof(KBEHighSieMoja3SearchSIP), KBEHighSieMoja3ReplaceSIP, 1); DBG_RT(Entry, "==> kernel High Sierra: %d replaces done.\n", Num); - } else if (NumSieDebug == 1) { + } else if (NumSieDebugSIP == 1) { Num = SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBESieDebugSearchEXT, sizeof(KBESieDebugSearchEXT), KBESieDebugReplaceEXT, 1) + SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBESieDebugSearchSIP, sizeof(KBESieDebugSearchSIP), KBESieDebugReplaceSIP, 1); DBG_RT(Entry, "==> kernel Sierra Debug: %d replaces done.\n", Num); - } else if (NumSie == 1) { + } else if (NumSieSIP == 1) { Num = SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEYosECSieHighSearchEXT, sizeof(KBEYosECSieHighSearchEXT), KBEYosECSieHighReplaceEXT, 1) + SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBESieSearchSIP, sizeof(KBESieSearchSIP), KBESieReplaceSIP, 1); DBG_RT(Entry, "==> kernel Sierra: %d replaces done.\n", Num); - } else if (NumECDebug == 1) { + } else if (NumECDebugSIP == 1) { Num = SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEECDebugSearchEXT, sizeof(KBEECDebugSearchEXT), KBEECDebugReplaceEXT, 1) + SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEECDebugSearchSIP, sizeof(KBEECDebugSearchSIP), KBEECDebugReplaceSIP, 1); DBG_RT(Entry, "==> kernel El Capitan Debug: %d replaces done.\n", Num); - } else if (NumEC == 1) { + } else if (NumECSIP == 1) { Num = SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEYosECSieHighSearchEXT, sizeof(KBEYosECSieHighSearchEXT), KBEYosECSieHighReplaceEXT, 1) + SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEECSearchSIP, sizeof(KBEECSearchSIP), KBEECReplaceSIP, 1); DBG_RT(Entry, "==> kernel El Capitan: %d replaces done.\n", Num); - } else if (NumMavYosDebug == 1) { + } else if (NumMavYosDebugEXT == 1) { Num = SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEMavYosDebugSearchEXT, sizeof(KBEMavYosDebugReplaceEXT), KBEMavYosDebugReplaceEXT, 1); DBG_RT(Entry, "==> kernel Yosemite Debug: %d replaces done.\n", Num); - } else if (NumYos == 1) { + } else if (NumYosEXT == 1) { Num = SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEYosECSieHighSearchEXT, sizeof(KBEYosECSieHighSearchEXT), KBEYosECSieHighReplaceEXT, 1); DBG_RT(Entry, "==> kernel Yosemite: %d replaces done.\n", Num); - } else if (NumMLDebug == 1) { + } else if (NumMLDebugEXT == 1) { Num = SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEMLDebugSearchEXT, sizeof(KBEMLDebugSearchEXT), KBEMLDebugReplaceEXT, 1); DBG_RT(Entry, "==> kernel Mountain Lion Debug: %d replaces done.\n", Num) - } else if (NumMLMav == 1) { + } else if (NumMLMavEXT == 1) { Num = SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEMLMavSearchEXT, sizeof(KBEMLMavSearchEXT), KBEMLMavReplaceEXT, 1); DBG_RT(Entry, "==> kernel Mountain Lion/Mavericks: %d replaces done.\n", Num); - } else if (NumLion_X64 == 1) { + } else if (NumLion_X64_EXT == 1) { Num = SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBELionSearchEXT_X64, sizeof(KBELionSearchEXT_X64), KBELionReplaceEXT_X64, 1); DBG_RT(Entry, "==> kernel Lion X64: %d replaces done.\n", Num); - } else if (NumSnow_X64 == 1) { + } else if (NumSnow_X64_EXT == 1) { Num = SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBESnowSearchEXT_X64, sizeof(KBESnowSearchEXT_X64), KBESnowReplaceEXT_X64, 1); DBG_RT(Entry, "==> kernel Snow Leopard X64: %d replaces done.\n", Num); // i386 - } else if (NumLion_i386 == 1) { + } else if (NumLion_i386_EXT == 1) { Num = SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBELionSearchEXT_i386, sizeof(KBELionSearchEXT_i386), KBELionReplaceEXT_i386, 1); DBG_RT(Entry, "==> kernel Lion i386: %d replaces done.\n", Num); - } else if (NumSnow_i386 == 1) { + } else if (NumSnow_i386_EXT == 1) { Num = SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBESnowSearchEXT_i386, sizeof(KBESnowSearchEXT_i386), KBESnowReplaceEXT_i386, 1); DBG_RT(Entry, "==> kernel Snow Leopard i386: %d replaces done.\n", Num); } else { Here is the full kext_inject.c, if needed. cleanup_kext_inject.zip Thanks! Thanks, committed to 4862 4 1 Link to comment https://www.insanelymac.com/forum/topic/284656-clover-general-discussion/page/741/#findComment-2661195 Share on other sites More sharing options...
Slice Posted January 25, 2019 Share Posted January 25, 2019 Is there anybody can propose a small C library to decode ogg sound files? Link to comment https://www.insanelymac.com/forum/topic/284656-clover-general-discussion/page/741/#findComment-2661199 Share on other sites More sharing options...
LAbyOne Posted January 25, 2019 Share Posted January 25, 2019 8 hours ago, Slice said: Is there anybody can propose a small C library to decode ogg sound files? I think you can get some useful infos here and eventually the files here hope it helps. 1 Link to comment https://www.insanelymac.com/forum/topic/284656-clover-general-discussion/page/741/#findComment-2661266 Share on other sites More sharing options...
CMMChris Posted January 25, 2019 Share Posted January 25, 2019 Having freeze on wake issues since latest clover release. One more person on the German hackintosh-forum confirmed the issue so far. Anyone in here having the same problem? 1 Link to comment https://www.insanelymac.com/forum/topic/284656-clover-general-discussion/page/741/#findComment-2661322 Share on other sites More sharing options...
LockDown Posted January 26, 2019 Share Posted January 26, 2019 Hello What to select, Osxfatbinarydrv or AppleImageLoader? Link to comment https://www.insanelymac.com/forum/topic/284656-clover-general-discussion/page/741/#findComment-2661344 Share on other sites More sharing options...
Sherlocks Posted January 26, 2019 Share Posted January 26, 2019 Hello What to select, Osxfatbinarydrv or AppleImageLoader?still need osxfatbinary for old mac os x나의 LG-F800S 의 Tapatalk에서 보냄 Link to comment https://www.insanelymac.com/forum/topic/284656-clover-general-discussion/page/741/#findComment-2661349 Share on other sites More sharing options...
LockDown Posted January 26, 2019 Share Posted January 26, 2019 39 minutes ago, Sherlocks said: still need osxfatbinary for old mac os x 나의 LG-F800S 의 Tapatalk에서 보냄 On which OS AppleImageLoader started to support? Link to comment https://www.insanelymac.com/forum/topic/284656-clover-general-discussion/page/741/#findComment-2661351 Share on other sites More sharing options...
Sherlocks Posted January 26, 2019 Share Posted January 26, 2019 On which OS AppleImageLoader started to support?idk. i'm just checked it that works or not.나의 LG-F800S 의 Tapatalk에서 보냄 1 Link to comment https://www.insanelymac.com/forum/topic/284656-clover-general-discussion/page/741/#findComment-2661352 Share on other sites More sharing options...
LockDown Posted January 26, 2019 Share Posted January 26, 2019 (edited) 17 minutes ago, Sherlocks said: idk. i'm just checked it that works or not. 나의 LG-F800S 의 Tapatalk에서 보냄 But how would i know if one does not work? I mean, tried both from 10.8-10.14 and both booted. (One at a time of course) Edited January 26, 2019 by ellaosx Link to comment https://www.insanelymac.com/forum/topic/284656-clover-general-discussion/page/741/#findComment-2661353 Share on other sites More sharing options...
Sherlocks Posted January 26, 2019 Share Posted January 26, 2019 But how would i know if one does not work? I mean, tried both from 10.9-10.14 and both booted. (One at a time of course)we need osxfatbinary to boot snow leopard. i don't know file so that boot 10.7 upto 10.8. if your system can boot only modern macos, actually you don't need it.나의 LG-F800S 의 Tapatalk에서 보냄 1 1 Link to comment https://www.insanelymac.com/forum/topic/284656-clover-general-discussion/page/741/#findComment-2661354 Share on other sites More sharing options...
Slice Posted January 26, 2019 Share Posted January 26, 2019 7 hours ago, ellaosx said: Hello What to select, Osxfatbinarydrv or AppleImageLoader? For 10.9+ there are both not needed. 1 1 Link to comment https://www.insanelymac.com/forum/topic/284656-clover-general-discussion/page/741/#findComment-2661365 Share on other sites More sharing options...
macq Posted January 26, 2019 Share Posted January 26, 2019 @slice, PMheart, Does clover 4862 account for kernel patching for lapic error in 10.14.4b1, it throws a lapic error kernel panic for me. Regards Link to comment https://www.insanelymac.com/forum/topic/284656-clover-general-discussion/page/741/#findComment-2661380 Share on other sites More sharing options...
vector sigma Posted January 26, 2019 Share Posted January 26, 2019 13 minutes ago, macq said: Does clover 4862 account for kernel patching for lapic error in 10.14.4b1, it throws a lapic error kernel panic for me. can you post the kernel please? 1 Link to comment https://www.insanelymac.com/forum/topic/284656-clover-general-discussion/page/741/#findComment-2661383 Share on other sites More sharing options...
Badruzeus Posted January 26, 2019 Share Posted January 26, 2019 4 minutes ago, vector sigma said: can you post the kernel please? Here you go.. (from macOS 10.14.4 Beta 1) kernel_10.14.4.b1_darwin_18.5.0.zip 2 Link to comment https://www.insanelymac.com/forum/topic/284656-clover-general-discussion/page/741/#findComment-2661384 Share on other sites More sharing options...
PMheart Posted January 26, 2019 Share Posted January 26, 2019 (edited) Hello, The patch for KernelLapic should be updated too, here is the diff: --- kernel_patcher_org.c 2019-01-26 21:56:09.000000000 +0800 +++ kernel_patcher_mod.c 2019-01-26 21:59:55.000000000 +0800 @@ -672,13 +672,21 @@ patchLocation = i+1396; DBG("Found High Sierra Lapic panic at 0x%08x\n", patchLocation); break; - // PMheart: 10.14.DP1 + // PMheart: 10.14 - 10.14.3 } else if (bytes[i+0] == 0x65 && bytes[i+1] == 0x8B && bytes[i+2] == 0x0C && bytes[i+3] == 0x25 && bytes[i+4] == 0x1C && bytes[i+5] == 0x00 && bytes[i+6] == 0x00 && bytes[i+7] == 0x00 && bytes[i+1396] == 0x65 && bytes[i+1397] == 0x8B && bytes[i+1398] == 0x0C && bytes[i+1399] == 0x25 && bytes[i+1400] == 0x1C && bytes[i+1401] == 0x00 && bytes[i+1402] == 0x00 && bytes[i+1403] == 0x00) { patchLocation = i+1385; - DBG("Found Mojave Lapic panic at 0x%08x\n", patchLocation); + DBG("Found Mojave (10.14 - 10.14.3) Lapic panic at 0x%08x\n", patchLocation); + break; + // PMheart: 10.14.4+ + } else if (bytes[i+0] == 0x65 && bytes[i+1] == 0x8B && bytes[i+2] == 0x0C && bytes[i+3] == 0x25 && + bytes[i+4] == 0x1C && bytes[i+5] == 0x00 && bytes[i+6] == 0x00 && bytes[i+7] == 0x00 && + bytes[i+1405] == 0x65 && bytes[i+1406] == 0x8B && bytes[i+1407] == 0x0C && bytes[i+1408] == 0x25 && + bytes[i+1409] == 0x1C && bytes[i+1410] == 0x00 && bytes[i+1411] == 0x00 && bytes[i+1412] == 0x00) { + patchLocation = i+1394; + DBG("Found Mojave (10.14.4+) Lapic panic at 0x%08x\n", patchLocation); break; } } EDIT: Here is the full kernel_patcher.c: lapic_fix_kernel_patcher.c.zip Thanks! Edited January 26, 2019 by PMheart 2 Link to comment https://www.insanelymac.com/forum/topic/284656-clover-general-discussion/page/741/#findComment-2661389 Share on other sites More sharing options...
Sherlocks Posted January 26, 2019 Share Posted January 26, 2019 1 hour ago, PMheart said: Hello, The patch for KernelLapic should be updated too, here is the diff: --- kernel_patcher_org.c 2019-01-26 21:56:09.000000000 +0800 +++ kernel_patcher_mod.c 2019-01-26 21:59:55.000000000 +0800 @@ -672,13 +672,21 @@ patchLocation = i+1396; DBG("Found High Sierra Lapic panic at 0x%08x\n", patchLocation); break; - // PMheart: 10.14.DP1 + // PMheart: 10.14 - 10.14.3 } else if (bytes[i+0] == 0x65 && bytes[i+1] == 0x8B && bytes[i+2] == 0x0C && bytes[i+3] == 0x25 && bytes[i+4] == 0x1C && bytes[i+5] == 0x00 && bytes[i+6] == 0x00 && bytes[i+7] == 0x00 && bytes[i+1396] == 0x65 && bytes[i+1397] == 0x8B && bytes[i+1398] == 0x0C && bytes[i+1399] == 0x25 && bytes[i+1400] == 0x1C && bytes[i+1401] == 0x00 && bytes[i+1402] == 0x00 && bytes[i+1403] == 0x00) { patchLocation = i+1385; - DBG("Found Mojave Lapic panic at 0x%08x\n", patchLocation); + DBG("Found Mojave (10.14 - 10.14.3) Lapic panic at 0x%08x\n", patchLocation); + break; + // PMheart: 10.14.4+ + } else if (bytes[i+0] == 0x65 && bytes[i+1] == 0x8B && bytes[i+2] == 0x0C && bytes[i+3] == 0x25 && + bytes[i+4] == 0x1C && bytes[i+5] == 0x00 && bytes[i+6] == 0x00 && bytes[i+7] == 0x00 && + bytes[i+1405] == 0x65 && bytes[i+1406] == 0x8B && bytes[i+1407] == 0x0C && bytes[i+1408] == 0x25 && + bytes[i+1409] == 0x1C && bytes[i+1410] == 0x00 && bytes[i+1411] == 0x00 && bytes[i+1412] == 0x00) { + patchLocation = i+1394; + DBG("Found Mojave (10.14.4+) Lapic panic at 0x%08x\n", patchLocation); break; } } EDIT: Here is the full kernel_patcher.c: lapic_fix_kernel_patcher.c.zip Thanks! thanks i will commit 5 Link to comment https://www.insanelymac.com/forum/topic/284656-clover-general-discussion/page/741/#findComment-2661402 Share on other sites More sharing options...
Badruzeus Posted January 26, 2019 Share Posted January 26, 2019 (edited) Hi @Slice I just tested Goldfish64's latest AudioPkg changes, I could confirm that "PlayAsync=Yes" is working fine on my case (r4863). Not having stuck on GUI and simultanous sound*.wav are also well played after GUI loaded. (But, I'm using AudioDxe.efi from him #btw). AudioPkg-R1-RELEASE.zip preboot_alc269vb_r4863_PlayAsync.zip sound.wav_Ubuntu10.10_StartUp.zip Edited January 26, 2019 by Badruzeus Link to comment https://www.insanelymac.com/forum/topic/284656-clover-general-discussion/page/741/#findComment-2661476 Share on other sites More sharing options...
Recommended Posts