Jump to content

[pre-release] macOS Catalina


1,679 posts in this topic

Recommended Posts

22 minutes ago, PMheart said:

Thanks a lot!

 

Looks like the logic has slightly been changed, please try this kernel patch (temporarily) with Clover KernelToPatch:

 

find

00 85 C0 0F 84 87 00 00 00 49

 

repl

00 85 C0 90 90 90 90 90 90 49

 

Hopefully Clover kext injection works after patching, if it does, I will update the source.

 

Seems to be working. Thank you very much for this. :)

 

However, on my RX 580 (and most likely other AMD cards, as well), it's booting to black screen... Including with WEG (maybe that needs an update, as well)?

The old kext to patch method (disable AGDP) doesn't work anymore either.

 

But...it's not getting stuck anymore. So...my guess is that your patch worked. But now we need a new patch for graphics.

Edited by arsradu
  • Like 1
Link to comment
Share on other sites

@CMMChris @Moviemakergr I think your Graphics or something alike is the actual thing that should be to blame. My patch should be fine I guess.

 

@arsradu Of course, Lilu and its plugins haven't got updated, which will be unloaded by default on this unsupported Darwin version, try `-lilubetaall`.

 

Ah, Vit has just committed: https://github.com/acidanthera/Lilu/commit/2da161ee9959320f25607cf20767f690ac720caf

  • Like 5
  • Thanks 1
Link to comment
Share on other sites

16 minutes ago, PMheart said:

 

@arsradu Of course, Lilu and its plugins haven't got updated, which will be unloaded by default on this unsupported Darwin version, try `-lilubetaall`.

 

Ah, Vit has just committed: https://github.com/acidanthera/Lilu/commit/2da161ee9959320f25607cf20767f690ac720caf

 

Yep, that's what I thought. :) 

 

-lilubetaall flag still works apparently. With the current version.

 

Catalina is currently installing.

 

THANK YOU!

Edited by arsradu
  • Like 3
Link to comment
Share on other sites

Does the kernel seem to run on the same CPUs as the Mojave one?

This information that Catalina shell run into read-only partition seems the most puzzling to me. An OS needs to use swap, temporary files and so on to run properly, on a read only volume that is impossible. Perhaps the OS will be splitted in two: the kernel and the basic functions on a read only partition, and the rest on another, where temporary files and swap will be possible. If so, Clover shall need to be modified pretty big. Does the OS still support OpenGl or it is Metal only?

Can anyone who managed to install it properly confirm or disprove thoose ?

Perhaps for those with graphics issues a patch for unsupported Macs like the ones developed into the Macrumors board shall save the day, like the dosdude1 patch that allowed me to run Mojave on an older, non-Metal GPU. 

Edited by Vyzantion
Link to comment
Share on other sites

EDIT: Merged in Clover r4938.

 

OK, and this is the binary to test (for kext injection under 10.15):

Clover-4937-1015-kext-injection.zip (Please DO NOT use this now!)

 

 

@Slice This is the basic diff, please review it, I am too lazy to post it again on Clover thread ;):

Index: rEFIt_UEFI/Platform/Settings.c
===================================================================
--- rEFIt_UEFI/Platform/Settings.c	(revision 4937)
+++ rEFIt_UEFI/Platform/Settings.c	(working copy)
@@ -6373,6 +6373,8 @@
           if (Prop != NULL && Prop->string != NULL && Prop->string[0] != '\0') {
             if (AsciiStrStr (Prop->string, "Install%20OS%20X%20Mavericks.app")) {
               OSVersion = AllocateCopyPool (5, "10.9");
+            } else if (AsciiStrStr (Prop->string, "Install%20macOS%20Catalina") || AsciiStrStr (Prop->string, "Install%20macOS%2010.15%20Beta")) { // FIXME: Remove Beta after final release
+              OSVersion = AllocateCopyPool (5, "10.15");
             } else if (AsciiStrStr (Prop->string, "Install%20macOS%20Mojave") || AsciiStrStr (Prop->string, "Install%20macOS%2010.14")) {
               OSVersion = AllocateCopyPool (6, "10.14");
             } else if (AsciiStrStr (Prop->string, "Install%20macOS%20High%20Sierra") || AsciiStrStr (Prop->string, "Install%20macOS%2010.13")) {
Index: rEFIt_UEFI/Platform/kext_inject.c
===================================================================
--- rEFIt_UEFI/Platform/kext_inject.c	(revision 4937)
+++ rEFIt_UEFI/Platform/kext_inject.c	(working copy)
@@ -623,8 +623,8 @@
 UINT8   KBEMLDebugSearchEXT[]    = { 0xE8, 0x3E, 0x00, 0x00, 0x00, 0xE9, 0x09, 0x00, 0x00, 0x00, 0x48, 0x8B, 0x7D, 0xE0, 0xE8 };
 UINT8   KBEMLDebugReplaceEXT[]   = { 0xE8, 0x3E, 0x00, 0x00, 0x00, 0x90, 0x90, 0x90, 0x90, 0x90, 0x48, 0x8B, 0x7D, 0xE0, 0xE8 };
 
-// Yosemite
-// PMheart: Universal for 10.10 - 10.13, maybe still ok for furture ver
+// Yosemite - High Sierra
+// PMheart: Universal for 10.10 - 10.13
 UINT8   KBEYosECSieHighSearchEXT[]  = { 0xE8, 0x25, 0x00, 0x00, 0x00, 0xEB, 0x05, 0xE8 };
 UINT8   KBEYosECSieHighReplaceEXT[] = { 0xE8, 0x25, 0x00, 0x00, 0x00, 0x90, 0x90, 0xE8 };
 
@@ -659,28 +659,35 @@
 UINT8   KBESieDebugSearchSIP[]   = { 0x31, 0xC9, 0x39, 0xC1, 0x0F, 0x85, 0x3C, 0x00, 0x00, 0x00, 0x48, 0x8B, 0x85 };
 UINT8   KBESieDebugReplaceSIP[]  = { 0x31, 0xC9, 0x39, 0xC1, 0xEB, 0x80, 0x90, 0x90, 0x90, 0x90, 0x48, 0x8B, 0x85 };
 
-// Mojave (EXT)
-// PMheart: checked  KBEMoja*EXT
-// Need to pair with KBEHighSieMoja*SIP
-UINT8   KBEMojaSearchEXT[]       = { 0xE8, 0xAF, 0x00, 0x00, 0x00, 0xEB, 0x05, 0xE8 };
-UINT8   KBEMojaReplaceEXT[]      = { 0xE8, 0xAF, 0x00, 0x00, 0x00, 0x90, 0x90, 0xE8 };
+// Mojave / Catalina (EXT)
+// PMheart: checked  KBEMojaCata*EXT
+// Need to pair with KBEHighSieMoja*SIP (10.13 / 10.14) / KBECata*SIP (10.15)
+UINT8   KBEMojaCataSearchEXT[]       = { 0xE8, 0xAF, 0x00, 0x00, 0x00, 0xEB, 0x05, 0xE8 };
+UINT8   KBEMojaCataReplaceEXT[]      = { 0xE8, 0xAF, 0x00, 0x00, 0x00, 0x90, 0x90, 0xE8 };
 
 // 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
+// Need to pair with KBEMojaCata*EXT
 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
+// Need to pair with KBEMojaCata*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 };
 
+// Catalina (SIP)
+// PMheart: checked
+// Need to pair with KBEMojaCata*EXT
+UINT8   KBECataSearchSIP[]            = { 0x00, 0x85, 0xC0, 0x0F, 0x84, 0x87, 0x00, 0x00, 0x00, 0x49 };
+UINT8   KBECataReplaceSIP[]           = { 0x00, 0x85, 0xC0, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x49 };
+
 // Mojave 10.14 - 10.14.3
 // Avoid race condition in OSKext::removeKextBootstrap when using booter kexts without keepsyms=1.
 // by vit9696
+// Need to pair with KBEMojaCata*EXT and KBEHighSieMoja3*SIP
 UINT8   KBEMoja3SearchKxldUnmap[]     = { 0x00, 0x0F, 0x85, 0xB2, 0x01, 0x00, 0x00, 0x48 };
 UINT8   KBEMoja3ReplaceKxldUnmap[]    = { 0x00, 0x90, 0xE9, 0xB2, 0x01, 0x00, 0x00, 0x48 };
 
@@ -687,9 +694,18 @@
 // Mojave 10.14.4+
 // Avoid race condition in OSKext::removeKextBootstrap when using booter kexts without keepsyms=1.
 // by PMheart, based on vit9696's work
+// Need to pair with KBEMojaCata*EXT and KBEMoja4*SIP
 UINT8   KBEMoja4SearchKxldUnmap[]     = { 0x00, 0x0F, 0x85, 0xB1, 0x01, 0x00, 0x00, 0x48 };
 UINT8   KBEMoja4ReplaceKxldUnmap[]    = { 0x00, 0x90, 0xE9, 0xB1, 0x01, 0x00, 0x00, 0x48 };
 
+// Catalina
+// Avoid race condition in OSKext::removeKextBootstrap when using booter kexts without keepsyms=1.
+// by PMheart, based on vit9696's work
+// Need to pair with KBEMojaCata*EXT and KBECata*SIP
+UINT8   KBECataSearchKxldUnmap[]      = { 0x00, 0x0F, 0x85, 0x7E, 0x01, 0x00, 0x00, 0x48 };
+UINT8   KBECataReplaceKxldUnmap[]     = { 0x00, 0x90, 0xE9, 0x7E, 0x01, 0x00, 0x00, 0x48 };
+
+
 //
 // We can not rely on OSVersion global variable for OS version detection,
 // since in some cases it is not correct (install of ML from Lion, for example).
@@ -718,6 +734,7 @@
   UINTN   NumHighSieMoja3SIP = 0; // 10.13.X - 10.14.3
   UINTN   NumMojaEXT         = 0; // 10.14.X
   UINTN   NumMoja4SIP        = 0; // 10.14.4+
+  UINTN   NumCataSIP         = 0; // 10.15
 
 
   DBG_RT(Entry, "\nPatching kernel for injected kexts...\n");
@@ -734,8 +751,9 @@
     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+
+    NumMojaEXT          = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBEMojaCataSearchEXT, sizeof(KBEMojaCataSearchEXT));   // general EXT patch, for all 10.14.x
+    NumMoja4SIP         = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBEMoja4SearchSIP, sizeof(KBEMoja4SearchSIP));         // SIP patch, ONLY for 10.14.4+
+    NumCataSIP          = SearchAndCount(Kernel, KERNEL_MAX_SIZE, KBECataSearchSIP, sizeof(KBECataSearchSIP));
   } 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));
@@ -750,9 +768,14 @@
   }
 
   // X64
-  if (NumMojaEXT == 1) {
+  if (NumCataSIP == 1) {
+    Num = SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEMojaCataSearchEXT, sizeof(KBEMojaCataSearchEXT), KBEMojaCataReplaceEXT, 1) +
+          SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBECataSearchSIP, sizeof(KBECataSearchSIP), KBECataReplaceSIP, 1) +
+          SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBECataSearchKxldUnmap, sizeof(KBECataSearchKxldUnmap), KBECataReplaceKxldUnmap, 1);
+    DBG_RT(Entry, "==> kernel Catalina: %d replaces done.\n", Num);
+  } else if (NumMojaEXT == 1) {
     // apply EXT patch first
-    Num = SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEMojaSearchEXT, sizeof(KBEMojaSearchEXT), KBEMojaReplaceEXT, 1);
+    Num = SearchAndReplace(Kernel, KERNEL_MAX_SIZE, KBEMojaCataSearchEXT, sizeof(KBEMojaCataSearchEXT), KBEMojaCataReplaceEXT, 1);
     // then apply corresponding patches based on what we found
     if (NumMoja4SIP == 1) {
       // firstly, try to patch 10.14.4+
Index: rEFIt_UEFI/refit/main.c
===================================================================
--- rEFIt_UEFI/refit/main.c	(revision 4937)
+++ rEFIt_UEFI/refit/main.c	(working copy)
@@ -635,7 +635,8 @@
               AsciiStrnCmp(InstallerVersion, "10.11", 5) &&
               AsciiStrnCmp(InstallerVersion, "10.12", 5) &&
               AsciiStrnCmp(InstallerVersion, "10.13", 5) &&
-              AsciiStrnCmp(InstallerVersion, "10.14", 5)) {   
+              AsciiStrnCmp(InstallerVersion, "10.14", 5) &&
+              AsciiStrnCmp(InstallerVersion, "10.15", 5)) {   
             InstallerVersion = NULL; // flag known version was not found
           }
           if (InstallerVersion != NULL) { // known version was found in image

 

Thanks!

Edited by PMheart
  • Like 7
  • Thanks 3
Link to comment
Share on other sites

13 minutes ago, CMMChris said:

Yup, Vega and Radeon VII don't seem to work yet for some reason.

 

Hi Chris! :) Try to use Lilu & WhateverGreen kexts and add -lilubetaall boot flag. It should help. :)

 

Also, of course, add the kernel patch mentioned by PMHeart above.

  • Like 1
Link to comment
Share on other sites

2 minutes ago, Riley Freeman said:

Here's Lilu 1.3.7. Built on Sierra.

 

Untested as I'm still downloading Catalina.

 

1.3.7 (RELEASE).zip

Thanks !

Theres also a new commit for WhateverGreen.kext, can you please upload a build kext from that as well.

Edited by "Sniki"
Link to comment
Share on other sites

EDIT: Sorry! I am extremely stupid! Please see 

for corrections!

 

Alright, so this would be the fix for FakeCPUID under 10.15 (But sorry, I cannot test!):

--- orig-kernel_patcher.c	2019-06-04 05:26:39.000000000 +0800
+++ patched.c	2019-06-04 05:24:43.000000000 +0800
@@ -483,6 +483,18 @@
 STATIC UINT8 HSieMojSearchModel[]   = {0x89, 0xc1, 0xc0, 0xe9, 0x04};
 // Need to use YosECSieSearchExt, LionReplaceModel
 
+// Catalina
+/*
+ This patch searches
+  mov eax, r12   ||   mov eax, r12
+  shr al, 0x4    ||   shr eax, 0x10
+ and replaces to
+  mov eax, FakeModel || mov eax, FakeExt
+  nop                || nop
+*/
+STATIC UINT8 CataSearchModel[]      = {0x44, 0x89, 0xE0, 0xC0, 0xE8, 0x04};
+STATIC UINT8 CataSearchExt[]        = {0x44, 0x89, 0xE0, 0xC1, 0xE8, 0x10};
+STATIC UINT8 CataReplaceMovEax[]    = {0xB8, 0x00, 0x00, 0x00, 0x00, 0x90}; // mov eax, val || nop
 
 BOOLEAN PatchCPUID(UINT8* bytes, UINT8* Location, INT32 LenLoc,
                    UINT8* Search4, UINT8* Search10, UINT8* ReplaceModel,
@@ -552,14 +564,22 @@
     return;
   }
 // High Sierra/Mojave patterns
-// Sherlocks: 10.13/10.14.DP1
+// Sherlocks: 10.13/10.14
   DBG_RT(Entry, "CPUID: try High Sierra/Mojave patch...\n");
-  if (PatchCPUID(kernelData, &StrMsr8b[0], sizeof(StrMsr8b), &HSieMojSearchModel[0],
+  if (PatchCPUID(kernelData, &StrMsr8b[0], sizeof(StrMsr8b), &CataSearchModel[0],
                  &YosECSieSearchExt[0], &LionReplaceModel[0], &LionReplaceModel[0],
                  sizeof(HSieMojSearchModel), Entry)) {
     DBG_RT(Entry, "...done!\n");
     return;
   }
+// Catalina patterns
+// PMheart: 10.15.DP1
+  DBG_RT(Entry, "CPUID: try Catalina patch...\n");
+  if (PatchCPUID(kernelData, &StrMsr8b[0], sizeof(StrMsr8b), &HSieMojSearchModel[0],
+                 &CataSearchExt[0], &CataReplaceMovEax[0], &CataReplaceMovEax[0],
+                 sizeof(CataSearchModel), Entry)) {
+    return;
+  }
 }
 
 // new way by RehabMan 2017-08-13

@Slice Please review this too, thanks!

Edited by PMheart
  • Like 3
  • Thanks 1
Link to comment
Share on other sites

36 minutes ago, arsradu said:

 

Hi Chris! :) Try to use Lilu & WhateverGreen kexts and add -lilubetaall boot flag. It should help. :)

 

Also, of course, add the kernel patch mentioned by PMHeart above.

Thanks but not working with the GT 710 

I will try with my laptop HP ProBook Intel HD 4000 :moil: :lol:

 

 EDIT *********

OK Work with the clover files here

 

Thanks to @PMheart

https://www.insanelymac.com/applications/core/interface/file/attachment.php?id=327531

 

I on Installing now :D

Edited by chris1111
  • Like 2
Link to comment
Share on other sites

1 minute ago, "Sniki" said:

Theres also a new commit for WhateverGreen.kext, can you please upload a build kext from that as well.

 

I can't build it. Keeps complaining about missing headers even though I've copied them across from Lilu. I'm doing something wrong but I don't know what. Lilu was straightforward.

 

 

Link to comment
Share on other sites

Hopefully this would be the changes for XCPM, I don't want to duplicate the usage again, please see my old posts for 10.13 and 10.14 as well:

https://www.insanelymac.com/forum/topic/334898-pre-release-macos-mojave/?page=2&tab=comments#comment-2616660 (10.14)

 

 

https://www.insanelymac.com/forum/topic/324194-pre-release-macos-high-sierra/?page=3#entry2435885 (10.13)

 

And these are the new patches:

XCPM patches 10.15

_cpuid_set_info
Find: 72 3c d0 77 50 0f b6 c0
Repl: xx 3c d0 77 50 0f b6 c0

_xcpm_bootstrap
Find: 8D 43 C4 3C 22 77 22
Repl: 8D 43 xx 3C 22 77 22

_xcpm_SMT_scope_msrs #1
Find: BE060000005DE908000000
Repl: BE060000005DC390909090

_xcpm_SMT_scope_msrs #2
Find: 31 D2 E8 3E FD FF FF
Repl: 31 D2 90 90 90 90 90

_xcpm_core_scope_msrs
Find: 31 D2 E8 51 FD FF FF
Repl: 31 D2 90 90 90 90 90

_xcpm_pkg_scope_msrs
Find: 31 D2 E8 74 FD FF FF
Repl: 31 D2 90 90 90 90 90

disable all msrs above
Find: BE 06 00 00 00 5D E9 08 00 00 00 0F 1F 84 00 00 00 00 00 55
Repl: BE 06 00 00 00 5D E9 08 00 00 00 0F 1F 84 00 00 00 00 00 C3

Performance patch (credit to @vit9696)
Find: C1E3084863D389D048C1EA20
Repl: C1E308B800FF000031D29090

 

  • Like 11
  • Thanks 2
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...