Jump to content
ErmaC

Clover General discussion

18,604 posts in this topic

Recommended Posts

Is really need to do this eachtime after clover svn update?

cd "${dEdk2}" && source ./edksetup.sh "BaseTools" &>/dev/null

This is what i did to let clover auto select bootable device & hide others:

<key>GUI</key>
<dict>
  ...
  <key>Scan</key>
  <dict>
    <key>Entries</key>
    <true/>
    <key>Legacy</key>
    <false/>
    <key>Tool</key>
    <false/>
  </dict>
  ...
</dict>

Share this post


Link to post
Share on other sites
Advertisement

that's why I said it's the same issue. That was the issue. :P

I dont have big problems with CloverGrowerPro inside El Capitan

The only thing I find is Clover Updater as  not create

I do this manually and everything is ok

 

One thing is certain is that El Capo contains several bug

 

 

I am return to Yosemite to create all Package and stuff, I not using El Capo for now

I am not satisfy 

Share this post


Link to post
Share on other sites

I can't get it to work at all using the method you provided Chris, arsradu has the same problem as me.

 

It doesn't seem to like the spaces in the SVN target path.

Share this post


Link to post
Share on other sites

I can't get it to work at all using the method you provided Chris, arsradu has the same problem as me.

 

It doesn't seem to like the spaces in the SVN target path.

This is wath I have

 

129.png

Share this post


Link to post
Share on other sites

Try installing NTFS.efi into /EFI/CLOVER/drivers64 or /EFI/CLOVER/drivers64UEFI.

 

This will enable Clover to read the actual NTFS volume name eg "Windows10" instead of ""Legacy HD1".  You can then hide entries as explained in the Clover wiki:

 

Eg you can use the following in GUI/config.plist to hide all legacy entries except the custom Windows 10 legacy menu entry for the volume "WIN10"...

 

 

	<key>GUI</key>
	<dict>
		<key>Scan</key>
		<dict>
			<key>Entries</key>
			<true/>
			<key>Legacy</key>
			<false/>
			<key>Tool</key>
			<false/>
		</dict>
		<key>Custom</key>
		<dict>
			<key>Entries</key>
			<array>
				<dict>
					<key>Disabled</key>
					<false/>
					<key>FullTitle</key>
					<string>UEFI Internal</string>
					<key>Hidden</key>
					<true/>
					<key>Ignore</key>
					<false/>
					<key>InjectKexts</key>
					<false/>
					<key>NoCaches</key>
					<false/>
					<key>Type</key>
					<string>Other</string>
				</dict>
			</array>
			<key>Legacy</key>
			<array>
				<dict>
					<key>Disabled</key>
					<false/>
					<key>Hidden</key>
					<false/>
					<key>Ignore</key>
					<false/>
					<key>Title</key>
					<string>Windows 10</string>
					<key>Type</key>
					<string>Windows</string>
					<key>Volume</key>
					<string>WIN10</string>
				</dict>
			</array>
		</dict>
	<dict>

 

 

 

You are the man. I put NTFS.efi into /EFI/CLOVER/drivers64.  Now, it shows Mac OSx, Win10, and Win7.

Share this post


Link to post
Share on other sites

I think I've gotten kext injection to work the way I want it to. With some (very hacky and rushed) edits, Clover now loads kexts from the Other folder first (in OEM if present) and then afterwards, the OS-specific version (e.g. 10.11, also in OEM if present). Again, this is very hacky and probably buggy, check before using it. It seems to work from the (very limited) tests I've done.

 

Oops, there were some errors in the diff, here's the fixed one:

diff --git a/rEFIt_UEFI/Platform/Platform.h b/rEFIt_UEFI/Platform/Platform.h
index a031f93..a03fb8a 100644
--- a/rEFIt_UEFI/Platform/Platform.h
+++ b/rEFIt_UEFI/Platform/Platform.h
@@ -1646,11 +1646,20 @@ SetFSInjection (
   );
 
 CHAR16*
-GetExtraKextsDir (
+GetOtherKextsDir ();
+
+CHAR16*
+GetOSVersionKextsDir (
   CHAR8 *OSVersion
   );
 
 EFI_STATUS
+InjectKextsFromDir (
+  EFI_STATUS Status,
+  CHAR16 *SrcDir
+  );
+
+EFI_STATUS
 LoadKexts (
   IN  LOADER_ENTRY *Entry
   );
diff --git a/rEFIt_UEFI/Platform/Settings.c b/rEFIt_UEFI/Platform/Settings.c
index c95f472..c56bdda 100644
--- a/rEFIt_UEFI/Platform/Settings.c
+++ b/rEFIt_UEFI/Platform/Settings.c
@@ -5486,14 +5486,32 @@ SaveSettings ()
   return EFI_SUCCESS;
 }
 
+CHAR16
+*GetOtherKextsDir ()
+{
+  CHAR16 *SrcDir         = NULL;
+
+  SrcDir     = PoolPrint (L"%s\\kexts\\Other", OEMPath);
+  if (!FileExists (SelfVolume->RootDir, SrcDir)) {
+    FreePool (SrcDir);
+    SrcDir = PoolPrint (L"\\EFI\\CLOVER\\kexts\\Other");
+    if (!FileExists (SelfVolume->RootDir, SrcDir)) {
+      FreePool (SrcDir);
+      SrcDir = NULL;
+    }
+  }
+
+  return SrcDir;
+}
+
 //dmazar
 CHAR16
-*GetExtraKextsDir (
+*GetOSVersionKextsDir (
   CHAR8 *OSVersion
   )
 {
   CHAR16 *SrcDir         = NULL;
-  CHAR8  FixedVersion[6] = "Other";
+  CHAR8  FixedVersion[6];
   CHAR8  *DotPtr;
 
   if (OSVersion != NULL) {
@@ -5516,25 +5534,10 @@ CHAR16
   SrcDir     = PoolPrint (L"%s\\kexts\\%a", OEMPath, FixedVersion);
   if (!FileExists (SelfVolume->RootDir, SrcDir)) {
     FreePool (SrcDir);
-    SrcDir   = PoolPrint (L"%s\\kexts\\Other", OEMPath);
-
-    if (!FileExists (SelfVolume->RootDir, SrcDir)) {
-      FreePool (SrcDir);
-      SrcDir = NULL;
-    }
-  }
-
-  if (SrcDir == NULL) {
-    // if not found, check EFI\CLOVER\kexts\...
     SrcDir = PoolPrint (L"\\EFI\\CLOVER\\kexts\\%a", FixedVersion);
     if (!FileExists (SelfVolume->RootDir, SrcDir)) {
       FreePool (SrcDir);
- //     SrcDir = PoolPrint (L"\\EFI\\CLOVER\\kexts\\Other", gSettings.OEMProduct);
-      SrcDir   = PoolPrint (L"\\EFI\\CLOVER\\kexts\\Other");
-      if (!FileExists (SelfVolume->RootDir, SrcDir)) {
-        FreePool (SrcDir);
-        SrcDir = NULL;
-      }
+      SrcDir = NULL;
     }
   }
   
@@ -5542,6 +5545,21 @@ CHAR16
 }
 
 EFI_STATUS
+InjectKextsFromDir (
+  EFI_STATUS Status,
+  CHAR16 *SrcDir
+  )
+{
+
+  if (EFI_ERROR (Status)) {
+    MsgLog (" - ERROR: Kext injection failed!\n");
+    return EFI_NOT_STARTED;
+  }
+
+  return Status;
+}
+
+EFI_STATUS
 SetFSInjection (
   IN LOADER_ENTRY *Entry
   )
@@ -5555,7 +5573,7 @@ SetFSInjection (
   FSI_STRING_LIST      *Blacklist      = 0;
   FSI_STRING_LIST      *ForceLoadKexts;
 
-  MsgLog ("FSInjection: ");
+  MsgLog ("Beginning FSInjection\n");
     
   Volume = Entry->Volume;
     
@@ -5574,18 +5592,18 @@ SetFSInjection (
   Status = gBS->LocateProtocol(&gFSInjectProtocolGuid, NULL, (void **)&FSInject);
   if (EFI_ERROR (Status)) {
     //Print (L"- No FSINJECTION_PROTOCOL, Status = %r\n", Status);
-    MsgLog ("not started - gFSInjectProtocolGuid not found\n");
+    MsgLog (" - ERROR: gFSInjectProtocolGuid not found!\n");
     return EFI_NOT_STARTED;
   }
 
   // check if blocking of caches is needed
   if (OSFLAG_ISSET(Entry->Flags, OSFLAG_NOCACHES)) {
-    MsgLog ("blocking caches");
+    MsgLog ("Blocking kext caches\n");
 //  BlockCaches = TRUE;
     // add caches to blacklist
     Blacklist = FSInject->CreateStringList ();
     if (Blacklist == NULL) {
-      MsgLog (": Error not enough memory!\n");
+      MsgLog (" - ERROR: Not enough memory!\n");
       return EFI_NOT_STARTED;
     }
 
@@ -5599,55 +5617,45 @@ SetFSInjection (
     if (gSettings.BlockKexts[0] != L'\0') {
       FSInject->AddStringToList(Blacklist, PoolPrint (L"\\System\\Library\\Extensions\\%s", gSettings.BlockKexts));
     }
-
-    MsgLog (", ");
   }
     
   // check if kext injection is needed
   // (will be done only if caches are blocked or if boot.efi refuses to load kernelcache)
   SrcDir = NULL;
   if (OSFLAG_ISSET(Entry->Flags, OSFLAG_WITHKEXTS)) {
-    SrcDir = GetExtraKextsDir(Entry->OSVersion);
-    if (SrcDir != NULL) {
-      // we have found it - injection will be done
-      MsgLog ("using kexts path: '%s'", SrcDir);
-//    InjectionNeeded = TRUE;
-    } else {
-      MsgLog ("skipping kext injection (kexts folder not found)");
-    }
-  } else {
-    MsgLog ("skipping kext injection (not requested)");
-  }
-    
-  // prepare list of kext that will be forced to load
-  ForceLoadKexts = FSInject->CreateStringList ();
-  if (ForceLoadKexts == NULL) {
-    MsgLog (" - Error: not enough memory!\n");
-    return EFI_NOT_STARTED;
-  }
-
-  KextPatcherRegisterKexts (FSInject, ForceLoadKexts, Entry);
+    Status = FSInject->Install (
+                       Volume->DeviceHandle,
+                       L"\\System\\Library\\Extensions",
+                       SelfVolume->DeviceHandle,
+                       GetOtherKextsDir (),
+                       Blacklist,
+                       ForceLoadKexts
+                       );
+    InjectKextsFromDir(Status, GetOtherKextsDir());
 
-  Status = FSInject->Install (
+    Status = FSInject->Install (
                        Volume->DeviceHandle,
                        L"\\System\\Library\\Extensions",
                        SelfVolume->DeviceHandle,
-                       SrcDir,
+                       GetOSVersionKextsDir (Entry->OSVersion),
                        Blacklist,
                        ForceLoadKexts
                        );
-    
-  if (SrcDir != NULL) {
-    FreePool (SrcDir);
+    InjectKextsFromDir(Status, GetOSVersionKextsDir(Entry->OSVersion));
+  } else {
+    MsgLog ("skipping kext injection (not requested)\n");
   }
     
-  if (EFI_ERROR (Status)) {
-    MsgLog (" - Error: could not install injection!\n");
+  // prepare list of kext that will be forced to load
+  ForceLoadKexts = FSInject->CreateStringList ();
+  if (ForceLoadKexts == NULL) {
+    MsgLog (" - Error: not enough memory!\n");
     return EFI_NOT_STARTED;
   }
-    
+
+  KextPatcherRegisterKexts (FSInject, ForceLoadKexts, Entry);
+   
   // reinit Volume->RootDir? it seems it's not needed.
     
-  MsgLog ("\n");
   return Status;
 }
diff --git a/rEFIt_UEFI/Platform/kext_inject.c b/rEFIt_UEFI/Platform/kext_inject.c
index 53b71b9..d73e73d 100644
--- a/rEFIt_UEFI/Platform/kext_inject.c
+++ b/rEFIt_UEFI/Platform/kext_inject.c
@@ -303,7 +303,26 @@ EFI_STATUS LoadKexts(IN LOADER_ENTRY *Entry)
    }
 
   //	Volume = Entry->Volume;
-	SrcDir = GetExtraKextsDir(Entry->OSVersion);
+	SrcDir = GetOtherKextsDir();
+	if (SrcDir != NULL) {
+		MsgLog("Preparing kexts injection for arch=%s from %s\n", (archCpuType==CPU_TYPE_X86_64)?L"x86_64":(archCpuType==CPU_TYPE_I386)?L"i386":L"", SrcDir);
+		// look through contents of the directory
+		DirIterOpen(SelfVolume->RootDir, SrcDir, &KextIter);
+		while (DirIterNext(&KextIter, 1, L"*.kext", &KextFile)) {
+			if (KextFile->FileName[0] == '.' || StrStr(KextFile->FileName, L".kext") == NULL)
+				continue;   // skip this
+			
+			UnicodeSPrint(FileName, 512, L"%s\\%s", SrcDir, KextFile->FileName);
+			MsgLog("  Extra kext: %s\n", FileName);
+			AddKext(Entry, SelfVolume->RootDir, FileName, archCpuType);
+      
+			UnicodeSPrint(PlugIns, 512, L"%s\\%s", FileName, L"Contents\\PlugIns");
+         LoadPlugInKexts(Entry, SelfVolume->RootDir, PlugIns, archCpuType, FALSE);
+		}
+		DirIterClose(&KextIter);
+	}
+
+	SrcDir = GetOSVersionKextsDir(Entry->OSVersion);
 	if (SrcDir != NULL) {
 		MsgLog("Preparing kexts injection for arch=%s from %s\n", (archCpuType==CPU_TYPE_X86_64)?L"x86_64":(archCpuType==CPU_TYPE_I386)?L"i386":L"", SrcDir);
 		// look through contents of the directory

Also, here's a new package of r3280 built with ./ebuild.sh --only-sata0 -x64 with this patch.

 

 

Share this post


Link to post
Share on other sites

I have problem with efi partiton, i don't have efi partition. I have folder efi in hdd, and i don't use toleda audio script, because i can't moun efi partition. What's wrong?

Share this post


Link to post
Share on other sites

I have problem with efi partiton, i don't have efi partition. I have folder efi in hdd, and i don't use toleda audio script, because i can't moun efi partition. What's wrong?

Did you try using Clover Configurator or EFI Mounter to mount your EFI partition? By default it's hidden. So yes, you won't be able to see it in Finder.

Share this post


Link to post
Share on other sites

Did you try using Clover Configurator or EFI Mounter to mount your EFI partition? By default it's hidden. So yes, you won't be able to see it in Finder.

I know that. I try configurator and efi mounter, but no efi partition, just folder on hdd. I don't know how? I try debug in disk utility, but no efi partition..

This is how i install clover bootloader:

108010d1413735007t-how-install-os-x-yose

Share this post


Link to post
Share on other sites

I know that. I try configurator and efi mounter, but no efi partition, just folder on hdd. I don't know how? I try debug in disk utility, but no efi partition..

This is how i install clover bootloader:

108010d1413735007t-how-install-os-x-yose

 

Legacy or UEFI booting? What are you trying to achieve?

 

Also, please, open up a terminal and post the output of this command:

diskutil list

Or take a screenshot of that.

Share this post


Link to post
Share on other sites

Legacy or UEFI booting? What are you trying to achieve?

 

Also, please, open up a terminal and post the output of this command:

diskutil list

Or take a screenshot of that.

When i put this command in terminal, no efi partition. Legacy booting. I try to work sound, toleda audio script, but i can't because efi partition, not mount.

Share this post


Link to post
Share on other sites

When i put this command in terminal, no efi partition. Legacy booting. I try to work sound, toleda audio script, but i can't because efi partition, not mount.

There is nothing to mount. You don't have an EFI partition to mount!

 

Is your drive formatted as GUID?

Share this post


Link to post
Share on other sites

There is nothing to mount. You don't have an EFI partition to mount!

 

Is your drive formatted as GUID?

Yeah, i don't have an EFI partition to mount.. Yes, formatted as GUID..

Share this post


Link to post
Share on other sites

Yeah, i don't have an EFI partition to mount.. Yes, formatted as GUID..

 

Also formatted partition as Mac OS Extended (journaled)? This is odd.

Share this post


Link to post
Share on other sites

Also formatted partition as Mac OS Extended (journaled)? This is odd.

Yes.. Of course.. I really don't know, what's wrong..

And everything works, kext for ethernet,fakesmc,null, except the sound, even thought i had realtekALC.kext for sound, that worked in yosemite.

Share this post


Link to post
Share on other sites

Yes.. Of course.. I really don't know, what's wrong..

And everything works, kext for ethernet,fakesmc,null, except the sound, even thought i had realtekALC.kext for sound, that worked in yosemite.

Could you please, post a screenshot or output of diskutil list command?

 

Also, a boot.log or preboot.log might help.

What's wrong is that it didn't create an EFI partition upon formatting your hard drive. Or....you removed it accidentally afterwards. Either way, with no EFI partition, there is nothing to mount, so you can't fix your sound (at least not using Clover patching).

Share this post


Link to post
Share on other sites

Could you please, post a screenshot or output of diskutil list command?

 

Also, a boot.log or preboot.log might help.

I can, but for some two hours , as I am currently at work .. Thanks for help..

Share this post


Link to post
Share on other sites

Could you please, post a screenshot or output of diskutil list command?

 

Also, a boot.log or preboot.log might help.

What's wrong is that it didn't create an EFI partition upon formatting your hard drive. Or....you removed it accidentally afterwards. Either way, with no EFI partition, there is nothing to mount, so you can't fix your sound (at least not using Clover patching).

Diskutil list:

/dev/disk0

   #:                       TYPE NAME                    SIZE       IDENTIFIER

   0:      GUID_partition_scheme                        *320.1 GB   disk0

   1:                  Apple_HFS OS X                    55.3 GB    disk0s1

   2:       Microsoft Basic Data WINDOWS                 84.0 GB    disk0s2

   3:                  Apple_HFS                         179.8 GB   disk0s3

 
I don't know how to use boot.log.. :/
Here is Darwindumper..
 

DarwinDumper_2.9.8_Clover_X64_3280_Mav_ivaniana.zip

Share this post


Link to post
Share on other sites

 

Diskutil list:

/dev/disk0

   #:                       TYPE NAME                    SIZE       IDENTIFIER

   0:      GUID_partition_scheme                        *320.1 GB   disk0

   1:                  Apple_HFS OS X                    55.3 GB    disk0s1

   2:       Microsoft Basic Data WINDOWS                 84.0 GB    disk0s2

   3:                  Apple_HFS                         179.8 GB   disk0s3

 
I don't know how to use boot.log.. :/
Here is Darwindumper..

 

 

To save preboot.log, you need to press F2 when you see Clover GUI (the one where you select your boot drive).

But I'm not sure where or if you're gonna generate a log, if you don't have an EFI partition...

 

You can try though. The log is (usually) saved in Clover/misc.

Share this post


Link to post
Share on other sites

 

Diskutil list:

/dev/disk0

   #:                       TYPE NAME                    SIZE       IDENTIFIER

   0:      GUID_partition_scheme                        *320.1 GB   disk0

   1:                  Apple_HFS OS X                    55.3 GB    disk0s1

   2:       Microsoft Basic Data WINDOWS                 84.0 GB    disk0s2

   3:                  Apple_HFS                         179.8 GB   disk0s3

 
I don't know how to use boot.log.. :/
Here is Darwindumper..

 

 

 

How did you created those partitions ? With OS X installer, Linux, Windows ?

 

Also, install gdisk and run this in  terminal :

 

 

sudo gdisk /dev/disk0

 

And report back here with copy/paste or screenshot.

Share this post


Link to post
Share on other sites

Disable USB support question.  So CGP compiled without any switches has USB support?  Would you be willing to share that copy of Clover.  I wanted to test it on my system to see if it helps with a USB panic I am getting on boot.  Thanks

My copy of Clover? You laugh? It is me who made Clover release for sf.net.

 

 

I think I've gotten kext injection to work the way I want it to. With some (very hacky and rushed) edits, Clover now loads kexts from the Other folder first (in OEM if present) and then afterwards, the OS-specific version (e.g. 10.11, also in OEM if present). Again, this is very hacky and probably buggy, check before using it. It seems to work from the (very limited) tests I've done.

 

Fixed Diff:

CHAR16*
-GetExtraKextsDir (
+GetOtherKextsDir ();
+
+CHAR16*
+GetOSVersionKextsDir (
   CHAR8 *OSVersion
   );


 EFI_STATUS
+InjectKextsFromDir (
+  EFI_STATUS Status,
+  CHAR16 *SrcDir
+  );
+
+EFI_STATUS
 LoadKexts (
   IN  LOADER_ENTRY *Entry
   );
diff --git a/rEFIt_UEFI/Platform/Settings.c b/rEFIt_UEFI/Platform/Settings.c
index c95f472..507a3ef 100644
--- a/rEFIt_UEFI/Platform/Settings.c
+++ b/rEFIt_UEFI/Platform/Settings.c
@@ -5486,14 +5486,32 @@ SaveSettings ()
   return EFI_SUCCESS;
 }


+CHAR16
+*GetOtherKextsDir ()
+{
+  CHAR16 *SrcDir         = NULL;
+
+  SrcDir     = PoolPrint (L"%s\\kexts\\Other", OEMPath);
+  if (!FileExists (SelfVolume->RootDir, SrcDir)) {
+    FreePool (SrcDir);
+    SrcDir = PoolPrint (L"\\EFI\\CLOVER\\kexts\\Other");
+    if (!FileExists (SelfVolume->RootDir, SrcDir)) {
+      FreePool (SrcDir);
+      SrcDir = NULL;
+    }
+  }
+
+  return SrcDir;
+}
+
 //dmazar
 CHAR16
-*GetExtraKextsDir (
+*GetOSVersionKextsDir (
   CHAR8 *OSVersion
   )
 {
   CHAR16 *SrcDir         = NULL;
-  CHAR8  FixedVersion[6] = "Other";
+  CHAR8  FixedVersion[6];
   CHAR8  *DotPtr;


   if (OSVersion != NULL) {
@@ -5516,25 +5534,10 @@ CHAR16
   SrcDir     = PoolPrint (L"%s\\kexts\\%a", OEMPath, FixedVersion);
   if (!FileExists (SelfVolume->RootDir, SrcDir)) {
     FreePool (SrcDir);
-    SrcDir   = PoolPrint (L"%s\\kexts\\Other", OEMPath);
-
-    if (!FileExists (SelfVolume->RootDir, SrcDir)) {
-      FreePool (SrcDir);
-      SrcDir = NULL;
-    }
-  }
-
-  if (SrcDir == NULL) {
-    // if not found, check EFI\CLOVER\kexts\...
     SrcDir = PoolPrint (L"\\EFI\\CLOVER\\kexts\\%a", FixedVersion);
     if (!FileExists (SelfVolume->RootDir, SrcDir)) {
       FreePool (SrcDir);
- //     SrcDir = PoolPrint (L"\\EFI\\CLOVER\\kexts\\Other", gSettings.OEMProduct);
-      SrcDir   = PoolPrint (L"\\EFI\\CLOVER\\kexts\\Other");
-      if (!FileExists (SelfVolume->RootDir, SrcDir)) {
-        FreePool (SrcDir);
-        SrcDir = NULL;
-      }
+      SrcDir = NULL;
     }
   }
   
@@ -5542,6 +5545,24 @@ CHAR16
 }


 EFI_STATUS
+InjectKextsFromDir (
+  EFI_STATUS Status,
+  CHAR16 *SrcDir
+  )
+{
+  if (SrcDir != NULL) {
+    MsgLog ("Injecting kexts from %s\n", SrcDir);
+  }
+
+  if (EFI_ERROR (Status)) {
+    MsgLog (" - ERROR: Kext injection failed!\n");
+    return EFI_NOT_STARTED;
+  }
+
+  return Status;
+}
+
+EFI_STATUS
 SetFSInjection (
   IN LOADER_ENTRY *Entry
   )
@@ -5555,7 +5576,7 @@ SetFSInjection (
   FSI_STRING_LIST      *Blacklist      = 0;
   FSI_STRING_LIST      *ForceLoadKexts;


-  MsgLog ("FSInjection: ");
+  MsgLog ("Beginning FSInjection\n");
     
   Volume = Entry->Volume;
     
@@ -5574,18 +5595,18 @@ SetFSInjection (
   Status = gBS->LocateProtocol(&gFSInjectProtocolGuid, NULL, (void **)&FSInject);
   if (EFI_ERROR (Status)) {
     //Print (L"- No FSINJECTION_PROTOCOL, Status = %r\n", Status);
-    MsgLog ("not started - gFSInjectProtocolGuid not found\n");
+    MsgLog (" - ERROR: gFSInjectProtocolGuid not found!\n");
     return EFI_NOT_STARTED;
   }


   // check if blocking of caches is needed
   if (OSFLAG_ISSET(Entry->Flags, OSFLAG_NOCACHES)) {
-    MsgLog ("blocking caches");
+    MsgLog ("Blocking kext caches\n");
 //  BlockCaches = TRUE;
     // add caches to blacklist
     Blacklist = FSInject->CreateStringList ();
     if (Blacklist == NULL) {
-      MsgLog (": Error not enough memory!\n");
+      MsgLog (" - ERROR: Not enough memory!\n");
       return EFI_NOT_STARTED;
     }


@@ -5599,55 +5620,45 @@ SetFSInjection (
     if (gSettings.BlockKexts[0] != L'\0') {
       FSInject->AddStringToList(Blacklist, PoolPrint (L"\\System\\Library\\Extensions\\%s", gSettings.BlockKexts));
     }
-
-    MsgLog (", ");
   }
     
   // check if kext injection is needed
   // (will be done only if caches are blocked or if boot.efi refuses to load kernelcache)
   SrcDir = NULL;
   if (OSFLAG_ISSET(Entry->Flags, OSFLAG_WITHKEXTS)) {
-    SrcDir = GetExtraKextsDir(Entry->OSVersion);
-    if (SrcDir != NULL) {
-      // we have found it - injection will be done
-      MsgLog ("using kexts path: '%s'", SrcDir);
-//    InjectionNeeded = TRUE;
-    } else {
-      MsgLog ("skipping kext injection (kexts folder not found)");
-    }
-  } else {
-    MsgLog ("skipping kext injection (not requested)");
-  }
-    
-  // prepare list of kext that will be forced to load
-  ForceLoadKexts = FSInject->CreateStringList ();
-  if (ForceLoadKexts == NULL) {
-    MsgLog (" - Error: not enough memory!\n");
-    return EFI_NOT_STARTED;
-  }
-
-  KextPatcherRegisterKexts (FSInject, ForceLoadKexts, Entry);
+    Status = FSInject->Install (
+                       Volume->DeviceHandle,
+                       L"\\System\\Library\\Extensions",
+                       SelfVolume->DeviceHandle,
+                       GetOtherKextsDir (),
+                       Blacklist,
+                       ForceLoadKexts
+                       );
+    InjectKextsFromDir(Status, GetOtherKextsDir());


-  Status = FSInject->Install (
+    Status = FSInject->Install (
                        Volume->DeviceHandle,
                        L"\\System\\Library\\Extensions",
                        SelfVolume->DeviceHandle,
-                       SrcDir,
+                       GetOSVersionKextsDir (Entry->OSVersion),
                        Blacklist,
                        ForceLoadKexts
                        );
-    
-  if (SrcDir != NULL) {
-    FreePool (SrcDir);
+    InjectKextsFromDir(Status, GetOSVersionKextsDir(Entry->OSVersion));
+  } else {
+    MsgLog ("skipping kext injection (not requested)\n");
   }
     
-  if (EFI_ERROR (Status)) {
-    MsgLog (" - Error: could not install injection!\n");
+  // prepare list of kext that will be forced to load
+  ForceLoadKexts = FSInject->CreateStringList ();
+  if (ForceLoadKexts == NULL) {
+    MsgLog (" - Error: not enough memory!\n");
     return EFI_NOT_STARTED;
   }
-    
+
+  KextPatcherRegisterKexts (FSInject, ForceLoadKexts, Entry);
+   
   // reinit Volume->RootDir? it seems it's not needed.
     
-  MsgLog ("\n");
   return Status;
 }
diff --git a/rEFIt_UEFI/Platform/kext_inject.c b/rEFIt_UEFI/Platform/kext_inject.c
index 53b71b9..d73e73d 100644
--- a/rEFIt_UEFI/Platform/kext_inject.c
+++ b/rEFIt_UEFI/Platform/kext_inject.c
@@ -303,7 +303,26 @@ EFI_STATUS LoadKexts(IN LOADER_ENTRY *Entry)
    }


   // Volume = Entry->Volume;
- SrcDir = GetExtraKextsDir(Entry->OSVersion);
+ SrcDir = GetOtherKextsDir();
+ if (SrcDir != NULL) {
+ MsgLog("Preparing kexts injection for arch=%s from %s\n", (archCpuType==CPU_TYPE_X86_64)?L"x86_64":(archCpuType==CPU_TYPE_I386)?L"i386":L"", SrcDir);
+ // look through contents of the directory
+ DirIterOpen(SelfVolume->RootDir, SrcDir, &KextIter);
+ while (DirIterNext(&KextIter, 1, L"*.kext", &KextFile)) {
+ if (KextFile->FileName[0] == '.' || StrStr(KextFile->FileName, L".kext") == NULL)
+ continue;   // skip this
+
+ UnicodeSPrint(FileName, 512, L"%s\\%s", SrcDir, KextFile->FileName);
+ MsgLog("  Extra kext: %s\n", FileName);
+ AddKext(Entry, SelfVolume->RootDir, FileName, archCpuType);
+      
+ UnicodeSPrint(PlugIns, 512, L"%s\\%s", FileName, L"Contents\\PlugIns");
+         LoadPlugInKexts(Entry, SelfVolume->RootDir, PlugIns, archCpuType, FALSE);
+ }
+ DirIterClose(&KextIter);
+ }
+
+ SrcDir = GetOSVersionKextsDir(Entry->OSVersion);
  if (SrcDir != NULL) {
  MsgLog("Preparing kexts injection for arch=%s from %s\n", (archCpuType==CPU_TYPE_X86_64)?L"x86_64":(archCpuType==CPU_TYPE_I386)?L"i386":L"", SrcDir);
  // look through contents of the directory

Thank you for the proposition! I need a time to understand what is it. Then I'll commit the modification.

Anyone test this?

Share this post


Link to post
Share on other sites

Thank you for the proposition! I need a time to understand what is it. Then I'll commit the modification.

Anyone test this?

 

Check the post again, there are some more (minor) edits to the patch. I also attached a package if anyone wants to test.

Share this post


Link to post
Share on other sites

How did you created those partitions ? With OS X installer, Linux, Windows ?

 

Also, install gdisk and run this in  terminal :

sudo gdisk /dev/disk0

And report back here with copy/paste or screenshot.

I created with os x installer..

Here is termialn with gdisk:

GPT fdisk (gdisk) version 1.0.0

 

Warning: Devices opened with shared lock will not have their

partition table automatically reloaded!

Partition table scan:

  MBR: protective

  BSD: not present

  APM: not present

  GPT: present

 

Found valid GPT with protective MBR; using GPT.

 

Command (? for help): 

Share this post


Link to post
Share on other sites

I created with os x installer..

Here is termialn with gdisk:

GPT fdisk (gdisk) version 1.0.0

 

Warning: Devices opened with shared lock will not have their

partition table automatically reloaded!

Partition table scan:

  MBR: protective

  BSD: not present

  APM: not present

  GPT: present

 

Found valid GPT with protective MBR; using GPT.

 

Command (? for help): 

Then type "?"  ;)

Share this post


Link to post
Share on other sites

Then type "?"  ;)

And than? :D

b back up GPT data to a file

c change a partition's name

d delete a partition

i show detailed information on a partition

l list known partition types

n add a new partition

o create a new empty GUID partition table (GPT)

p print the partition table

q quit without saving changes

r recovery and transformation options (experts only)

s sort partitions

t change a partition's type code

v verify disk

w write table to disk and exit

x extra functionality (experts only)

? print this menu

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By gengik84
      Ciro82==>>Thanks
      Uno dei tre Requisiti:
      Hack funzionante Mac vero Macchina virtuale Impostazioni Bios per il boot:
      Cercate una voce  del tipo “Sata Mode”e settatela  in AHCI
      Secure Boot: disabilitare o altri sistemi operativi
      CSM: UEFI o LEGACY, oppure a secondo del tipo di installazione
      VT-x / VT-d disable
      *Nota: Secure boot e csm valido solo per bios UEFI
      Materiale Occorrente 
      "OS X (Versione App.Store)”
      USB 8GB  *nota: nel caso di usb superiori dovrà essere partizionata, in modo da avere una partizione su cui "lavoreremo,di questa dimensione
      ShowAllfiles 
      kext Wizard 
      Bootloader Clover_2.3k_r xxx:                   http: //sourceforge.n.../cloverefiboot/
      Clover Configurator:                                    http: //mackie100proj...a.org/download/
      FakeSmc.kext:                                            https://github.com/kozlek/HWSensors/releases
      In allegato,a fondo pagina troverete un "pacchetto" contenente : ShowAllfiles, Kext Wizard, FakeSmc.kext: 
      App alternative:
      ESP Mounter Pro: per montare la partizione EFI
      Vi illustrerò tre metodi per creare la usb, ma sono ben distinti… quindi usatene soltanto uno
      Metodo 1: “Install Mac_OS_X.command” Metodo 2: “Create Install Media di Apple” Metodo 3:  Metodo Manuale Alla fine delle preparazione dell’installer, tutti i metodi necessitano l’installazione del Bootloader Clover sulla a vostra USB.
      “CONDIZIONI OBBLIGATORIE”
      PUNTO 1: che la vostra usb sia stata preventivamente nominata USB (caratteri maiuscoli) Tabella di partizione GUID e la formattazione in  Mac esteso Journaled.
      PUNTO 2: che l’installer di OSX si trovi in Applicazioni
      Utility Disco 
      Selezionate la pendrive, andate su “partizione”, selezionate “1 partizione”, impostate Mac OS esteso journaled e date il nome USB, poi in basso cliccate su opzioni e scegliete Tabella partizione (GUID), poi “applica”.
      Immagine 
      Riporto nuovamente l’operazione sopra citata adoperando dal nuovo Utility Disco introdotto su El Capitan.
      Rimane ovviamente invariato nome della usb in ==>> USB (maiuscolo), la formattazione in Mac esteso Journaled e sia la mappa partizione in GUID
      Da utility disco selezionate la usb, cliccate su inizializza.
      dal menù a tendina scegliete la relative impostazioni
      Immagine  
      Procedura effettua da High Sierra è la stessa della precedente, l'unica attenzione e operazione da aggiungere in primis  è cliccare nel menù a tendina in alto sulla sinistra di utility disco e selezionare "mostra tutti i dispositivi"
      Immagine 
       
      =====================
        METODO 1: "Install_Mac_OS_X.Command" Lo script che trovate allegato in fondo alla guida permette la creazione dell’installer in maniera automatica
      Include la possibilità di scelta di tre versioni di osx
      Yosemite El Capitan Sierra Il risultato finale è come quello del metodo "manuale" descritto nella guida, per cui l'installazione avverrà in un solo passaggio, non in due come con il metodo createinstallmedia. 
      Offre inoltre la possibilità di inserire un kernel patchato, utile, per esempio, per chi usa AMD.
      Rimane invariato il nome dato alla usb in USB, mappa partizione e tipo di formattazione
      Se la vostra usb non sarà rinominata nel modo corretto, verrete avvisati dal terminale, quindi non dovrete far altro che apportare la relativa modifica e rilanciare nuovamente lo script
      Esempio
      ===========================
      Metodo 2 
      L'intento è quello di usare la procedura fornitaci direttamente da Apple, "createinstallmedia", introdotta  con Mavericks. 
      Tale metodo prevede l’uso del terminale che via via se ne sta perdendo il “valore e l’uso”
      Inizialmente per i neofiti potrà sembrare problematico ma alla fine non è così.
      Durante il post installazione alcune operazioni ne richiedono l’ uso.
      Perciò mi sono chiesto perchè, qualora uno volesse, non far conoscere da subito un po’ questo “strumento”???
      Per favorirvi vi ho allegato i comandi già  “pronti”, i quali li potrete copiare ed incollare sul terminale.
      A questo punto aprite il terminale, copiate ed incollate il comando sottostante e premete invio, digitate la vostra password e premete nuovamente invio.
      Comando per creare USB con Yosemite:
      sudo /Applications/Install\ OS\ X\ Yosemite.app/Contents/Resources/createinstallmedia --volume /Volumes/USB --applicationpath /Applications/Install\ OS\ X\ Yosemite.app --nointeraction  
      Comando per creare USB con El Capitan
      sudo /Applications/Install\ OS\ X\ El\ Capitan.app/Contents/Resources/createinstallmedia --volume /Volumes/USB --applicationpath /Applications/Install\ OS\ X\ El\ Capitan.app --nointeraction Comando per creare USB con Sierra 
      sudo /Applications/Install\ macOS\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/USB --applicationpath /Applications/Install\ macOS\ Sierra.app/ --nointeraction Per creare USB con Hight Sierra o Mojave usate --> C_I_M (aggiornato per 10.14)
       
      Funziona con il drag & drop sul terminale, in questo caso non vi è necessità che la usb sia nominata in un determinato modo ed essendo basato su create install media ovviamente funziona da 10.9 a 10.14.... 
      BENE…IL PROCESSO DI CREAZIONE E’ INIZIATO…
      AVREMO CIRCA 20/30 MINUTI DI TEMPO LIBERO A CUI DEDICARSI A CIO’ CHE VOGLIAMO………………………………………..  
      COLGO L’OCCASIONE PER FARVI NOTARE LA VELOCITA’ E LA SICUREZZA DI QUESTO METODO
      CONFRONTATE QUESTO CON IL TERZO METODO E NOTERETE CHE CON UN SOLO PASSAGGIO, OSSIA IL COMANDO DATO AL TERMINALE, FACCIAMO IN UNA SINGOLA OPERAZIONE TUTTI I VARI STEP DESCRITTI SULL’ ALTRO METODO.
      DETTO QUESTO, MOLTO IMPORTANTE E’ SOTTOLINEARE CHE COSI’ FACENDO EVITEREMO ERRORI  DI DISTRAZIONE RIGUARDO AI PASSAGGI O FRAINTENDIMENTI.
      Immagine 
      Potete adesso passare ad installare il bootloader Clover sulla vostra usb.
      *NOTA*:
      Avendo usato questo metodo l'installazione si dividerà in due fasi, perciò dopo il primo riavvio e necessario far partire nuovamente l'installer, selezionare lo stesso disco senza formattarlo.
      Finita questa ulteriore fase , l'installazione sarà terminata
      =========================
      METODO "MANUALE"....  (lascio per futura memoria-Compatibile fino a 10.12)
      ==========================
      Bootloader
      **Nota:** Installazione in UEFI  dipenderà dalla scheda madre in vostro possesso, quindi se non supporta tale opzione , il bootloader dovrà essere installato in  modalità Legacy.
       Vi invito, qualora non sapeste questa informazione, a recarvi nel sito ufficiale del produttore e controllare le informazioni a riguardo
      Fatto questo dobbiamo installare  Clover sulla usb.
      A seconda del tipo di Bios o al tipo di installazione che vogliamo fare UEFI o Legacy avremo ovviamente configurazioni diverse in questa fase.
      Lanciate il pkg.
      Immagine 

       
      Cambiate la destinazione di installazione ad USB oppure Install Mac_OS_X (a secondo del tipo di creazione eseguita)
      Successivamente clicchiamo su "Ad Hoc"
      Per Installazione UEFI
      Mettete i flag   : Installazione solo per avvio UEFI
                               : installare Clover nella ESP
                               : Driver64UEFI  AptioMemory --> (consigliato) 
                               : Driver64UEFI  ApfsDriverLoader --> (consigliato) --> sostituisce l'uso del driver apfs.efi
                               : Selezionate l'altri driver come da successiva immagine,
       
      *Nota: Altri driver che si possono usare  al suo posto  sono:
       informazioni 
       
      Proseguite con l’installazione.
      Immagine 
      ** Ricordate che avrete accesso a questa cartella dopo aver montato la partizione EFI**
      ===========================
      Per installazione Legacy
      Immagine 
      ===========================
      Impostazione per config.plist:
      Con clover configurator “montate” la partizione EFI della usb.
      1) Per fare questo nel menù di sinistra, cliccate su “Mount EFI”
      2) individuate la partizione relativa alla vostra usb, a questo punto montiamo la relativa partizione EFI  selezionando l’apposito pulsante “Mount Partition”
      Immagine 
      3) Successivamente cliccate su “Open Partition”.. recatevi in EFI/Clover ed aprite il config.plist
      4) Sezione ACPI: Disabilitate tutti i fix sia del menù 1 che del menù 2
      Immagine 
      5) Sezione BOOT: Sole se si sta installando Yosemite mettete il flag su kext-dev-mode=1
      Immagine 
      6) Sezione RT Variables: Se si sta installando El Capitan oppure Sierra, aggiungere i valori: BooterConfig= 0x28, CsrActiveConfig= 0x67
      Immagine 
      7) Sezione System Parameters: Su inject kext mettete YES
      Immagine 
      ===========================
      Nota: Su El Capitan, è stato introdotto SIP (System Integrity Protection)
      Info:
      ===========================
      Recatevi in EFI/Clover/kext/10.x 
      X= alla versione di osx che state installando. Per esempio se installerete Yosemite dovrete recarvi nella cartella 10.10, con El Capitan in 10.11….ecc
      Se non ci fosse tale cartella, createla e nominatela voi a “modo”.
      Copiatevi all’interno FakeSmc.kext
      *Nota se venite già da altre vostre configurazioni, oltre kext sopra citato ,potete mettere gli altri necessari per il vostro hardware
      Stessa cosa se avete DSDT e/o SSDT potete copiarli in EFI/Clover/Acpi/Patched
      Immagine 
      
      Per High Sierra:
      Scaricare il driver apfs.efi a fine guida, collocarlo:
          --> EFI/clover/Driver64UEFI se stiamo usando UEFI
      --> EFI/Clover/Driver64 se stiamo usando Legacy
       
      Per chi volesse continuare ad usare HFS vi rimando a questo post:
        Come installare High Sierra in HFS direttamente dalla usb  
      Utenti Laptop:  Nel 99% è obbligatorio disattivare la grafica discreta Nvidia/Amd per installare questo nuovo osx
                                     Quindi aggiungete --> SSDT-Disable_DGPU.aml.zip
                                     in EFI/Clover/acpi/Patched della usb
      --------------------------------------------------------------------
      Per Mojave:
      Scaricare il driver apfs.efi per 10.14 a fine guida, collocarlo:
          --> EFI/clover/Driver64UEFI se stiamo usando UEFI
      --> EFI/Clover/Driver64 se stiamo usando Legacy
      Versione di clover non antecedente a V_4015
      Volete usare HFS?
      E' possibile fare un installazione diretta su altro disco o partizione, nel caso può essere usato anche per effettuare aggiornamenti...
      nel caso guardate...
       Mojave in HFS 
       Oppure direttamente da usb  
       
      Fatto questo avrete la vostra USB bootable per installare OSX.
      ………Non scordatevi Fakesmc.kext da mettere nella relativa cartella…. senza il quale non farete mai il Boot......
      *NOTA: se usato il terminale per la creazione della usb, l'installazione si dividerà in due fasi, perciò dopo il primo riavvio e necessario far partire nuovamente l'installer, selezionare lo stesso disco senza formattarlo.
      Finita questa ulteriore fase , l'installazione sarà terminata
      **NOTA** Se avete processori Broadwell,Skylake o Kabylake...usate FakeSmc.kext e relativi sensors che trovate all'interno del secondo pacchetto.. (potete usarlo anche sui precedenti senza problemi, essendo una versione più aggiornata ha ulteriore supporto per le cpu più recenti)
      Update: Fakesmc e sensors versione 6.26
      Post installazione... post #2           
       Buon Hack….. 
      Aggiornamento:Install_Mac_OS_X.command.zip (compatibile da 10.10 a 10.12)
      le info le trovate a questo post
      Ringrazio @Ciro82 che mi ha aiutato nel preparare questa guida.
      Pacchetto.zip
      Pacchetto-2.zip
      apfs.efi-10.13-NoLog.zip
      Pacchetto-Fake+Sensors 6.26.1440.zip
      apfs.efi-10.13.1-No_LOG.zip
      apfs.efi-10.13.2_No_Log.zip
      apfs.efi-10.13.3-No_Log.zip
      apfs.efi-10.13.4-No_Log.zip
      apfs.efi-10.13.5_No_Log.zip
      C_I_M.zip
       
      apfs.efi-10.14-beta1_No_Log.zip






    • By tbianco
      Ho comprato da poco un Acer Aspire 5750G e girando su internet ho trovato la cartella efi che garantiva quasi tutto funzionante perfino il wifi (https://github.com/zipippino/HighSierraAspire5750G).
      Allora felicissimo installo macOS e a parte incappare in errori stupidi, riesco a fare tutto, ma quando sono riuscito ad installare clover Legacy e sostituendo la roba con la 'mia' efi clover si avvia ma macOS no, semplicemente non carica (si nota anche pk la spia dell'hdd che dice se è in attivitá è spenta.
      Qualcuno può aiutarmi?
    • By RougeOne
      Budget Workstation MacOS 10.14.1 build: z370 AORUS Gaming 5 - i5-8600K - RX 580 - UHD 630
      flawless iGPU/dGPU integration, fast FCPX editing/rendering, great overall performance for ~$1200 / ~£1000
       
      I'm gonna come straight out and admit it - I used newb tools which are considered taboo on InsanelyMac, and so this isn't so much an installation guide as it is a green flag to anyone considering the same hardware. My first and previous Hackintosh project was just over ten years ago and this site was massively helpful, so this is my (very small) way of giving back.
       
      EFI DIRECTORY
      http://s000.tinyupload.com/index.php?file_id=97606131925137056003
       
      HARDWARE
      CPU: Intel i5-8600K 3.6GHz hexacore (contains UHD 630 iGPU)
      CPU Cooler: be quiet! Pure Rock Slim (no paste needed, and fan facing front)
      Mobo: GIGABYTE z370 AORUS Gaming 5 (WIFI)
      RAM: 1x 8GB CORSAIR Vengeance LPX C16 2666MHz (in first slot)
      GFX Card: Sapphire RX 580 NITRO+ SE
      SATA: used ports 0, 1, 3, 5 (HDD problems when connected to port 4)
      HDD: generic
      DVD Drive: generic
      PSU: EVGA 500W Semi Modular (but you should get 650W!)
      Case: CoolerMaster CM590 III
      Fans: 2x stock case fans (one sucky on front, one blowy on back), 3x be quiet! BL046 120mm fans (two blowy on top, one sucky on front). Airflow near-perfectly balanced.
       
      ADVICE
      With the Clover configuration, you want to pay close attention to all things relating to graphics. There are some specific settings for ACPI, Boot, Devices and Graphics which should be copied exactly in order to get the iGPU and dGPU to work in perfect harmony. For instance, make sure you use ig-platform-id 59120003 rather than 59120000 if you want FCPX to be usable. With the right settings, FCPX will not only run, but run flawlessly.
       
      I was not able to figure out how to make NVRAM/PRAM behave itself, and I got errors when I tried to issue relevant commands. As a result, I could not get iMessage to work properly. It worked precisely once, on my first installation attempt. This Clover configuration therefore has no consideration whatsoever toward iMessage reliability - if you can get NVRAM/PRAM working properly on this hardware, please do edit the config as you see fit.
       
      Onboard WiFi does not work. There is no driver for it. I'm using wired ethernet to a bridge router as it was cheaper than getting a compatible PCI card.
       
      Audio is working well after I installed the z370 audio patch, then the ALC1220 codecs, then AppleALC.
       
      With kexts for generic 3rd party SATA and generic 3rd party eSATA, my HDDs and DVD drive work perfectly well.
       
      Sleep/Wake functions run perfectly. iCloud functions run perfectly. Shutdown leaves the mobo LEDs on, annoyingly.
       
      Overall, this system appears to run about as well under MacOS 10.14 Mojave as it does under Windows 7. I would solidly recommend this build to anyone looking to build a computer for workstation purposes, on a budget.
    • By JLMOX
      I think, at this point converting to hfs+ is out of the question, Apple has been pushing the apfs file policy very aggressively, so does anybody solved the missing "Boot macOS from Mojave " (this last word may be different). I have installed the latest clover in HDD and USB, but I can only see 3 Mac Os related tabs but not the one for actually loading the Mojabe mac OS. I updated high sierra to Mojave and everything went fine. My laptop (Dell E6530) booted up normally, Mojave system loaded up, I finished the setup and spent sometime exploring. I updated clover to the latest version and turned of machine. When I restarted, I noticed Clover did not have an option for booting into the system like High sierra had it. I tried adding the apfs.efi or the ApfsDriverLoader-64.efi driver to the clover efi folder in the HDD and also tried with a USB clover installation and the result is the same: No boot option for the Mojave OS. I used the recovery option and I was able to explore the partion where the system is located but that´s as far as I could go. Does anybody has an idea of what happened?

    • By Allan
      That's unbelievable awesome

       
      Link: https://www.macupdate.com/app/mac/61068/clover-theme-manager
×