Micky1979 Posted July 6, 2016 Share Posted July 6, 2016 Replace everything with this: // // main.m // MatchOS_test // // Created by Micky1979 on 06/07/16. // Copyright © 2016 InsanelyMac. All rights reserved. // #import <Foundation/Foundation.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #define kSystemPlist @"/System/Library/CoreServices/SystemVersion.plist" #define BOOLEAN unsigned char #define TRUE 1 #define FALSE 0 #define CHAR8 char #define INTN int #define FreePool free #define AsciiStrStr strstr #define AsciiStrLen strlen #define AsciiStrCmp strcmp #define AsciiStrnCpy strncpy #define AllocatePool malloc #define VOID void // Micky1979: Next five functions (+ needed struct) are to split a string like "10.10.5,10.7,10.11.6,10.8.x" // in their components separated by comma (in this case) struct MatchOSes { INTN count; CHAR8* array[100]; }; BOOLEAN IsPatchEnabled (CHAR8 *MatchOSEntry, CHAR8 *CurrOS); VOID deallocMatchOSes(struct MatchOSes *s); struct MatchOSes *GetStrArraySeparatedByChar(CHAR8 *str, CHAR8 sep); BOOLEAN IsOSValid(CHAR8 *MatchOS, CHAR8 *CurrOS); INTN countOccurrences(CHAR8 *s, CHAR8 c); BOOLEAN IsPatchEnabled (CHAR8 *MatchOSEntry, CHAR8 *CurrOS) { INTN i; BOOLEAN ret = FALSE; struct MatchOSes *mos = malloc(sizeof(struct MatchOSes)); mos = GetStrArraySeparatedByChar(MatchOSEntry, ','); for (i = 0; i < mos->count; ++i) { if (IsOSValid(mos->array[i], CurrOS)) { //printf ("\nthis patch will activated for OS %s!\n", mos.array[i]); ret = TRUE; break; } } deallocMatchOSes(mos); return ret; } struct MatchOSes *GetStrArraySeparatedByChar(CHAR8 *str, CHAR8 sep) { struct MatchOSes *mo = malloc(sizeof(struct MatchOSes)); INTN len = 0, i = 0, inc = 1; CHAR8 *comp = NULL; CHAR8 doubleSep[2]; INTN newLen = 0; mo->count = countOccurrences( str, sep ) + 1; //printf("found %d %c in %s\n", mo->count, sep, str); len = (INTN)AsciiStrLen(str); doubleSep[0] = sep; doubleSep[1] = sep; if(AsciiStrStr(str, doubleSep) || !len || str[0] == sep || str[len -1] == sep) { mo->count = 0; mo->array[0] = ""; return mo; } if (mo->count > 1) { INTN indexes[mo->count + 1]; for (i = 0; i < len; ++i) { CHAR8 c = str[i]; if (c == sep) { indexes[inc]=i; inc++; } } // manually add first index indexes[0] = 0; // manually add last index indexes[mo->count + 1] = len; for (i = 0; i < mo->count; ++i) { INTN startLocation, endLocation; mo->array[i] = 0; if (i == 0) { startLocation = indexes[0]; endLocation = indexes[i + 1] - 2; } else if (i == mo->count - 1) { // never reach the end of the array startLocation = indexes[i] + 1; endLocation = len; } else { startLocation = indexes[i] + 1; endLocation = indexes[i+1] - 2; } newLen = (endLocation - startLocation) + 2; comp = (CHAR8 *) AllocatePool(newLen); AsciiStrnCpy(comp, str + startLocation, newLen); comp[newLen] = '\0'; mo->array[i] = comp; } } else { // str contains only one component and it is our string! //comp = (CHAR8 *) AllocatePool(AsciiStrLen(str)); mo->array[0] = str; } return mo; } BOOLEAN IsOSValid(CHAR8 *MatchOS, CHAR8 *CurrOS) { /* example for valid matches are: 10.7, only 10.7 (10.7.1 will be skipped) 10.10.2 only 10.10.2 (10.10.1 or 10.10.5 will be skipped) 10.10.x (or 10.10.X), in this case is valid for all minor version of 10.10 (10.10.(0-9)) */ BOOLEAN ret = FALSE; if (!MatchOS || !CurrOS) { return TRUE; //undefined matched corresponds to old behavior } struct MatchOSes *osToc = GetStrArraySeparatedByChar(MatchOS, '.'); struct MatchOSes *currOStoc = GetStrArraySeparatedByChar(CurrOS, '.'); if (osToc->count == 2) { if (AsciiStrCmp(osToc->array[0], currOStoc->array[0]) == 0 && AsciiStrCmp(osToc->array[1], currOStoc->array[1]) == 0) { ret = TRUE; } } else if (osToc->count == 3) { if (AsciiStrCmp(osToc->array[0], currOStoc->array[0]) == 0 && AsciiStrCmp(osToc->array[1], currOStoc->array[1]) == 0 && AsciiStrCmp(osToc->array[2], currOStoc->array[2]) == 0) { ret = TRUE; } else if (AsciiStrCmp(osToc->array[0], currOStoc->array[0]) == 0 && AsciiStrCmp(osToc->array[1], currOStoc->array[1]) == 0 && (AsciiStrCmp(osToc->array[2], "x") == 0 || AsciiStrCmp(osToc->array[2], "X") == 0)) { ret = TRUE; } } deallocMatchOSes(osToc); deallocMatchOSes(currOStoc); return ret; } INTN countOccurrences( CHAR8 *s, CHAR8 c ) { return *s == '\0' ? 0 : countOccurrences( s + 1, c ) + (*s == c); } VOID deallocMatchOSes(struct MatchOSes *s) { INTN i; assert(s != NULL); if (s->count >1) { for (i = 0; i < s->count; i++) { FreePool(s->array[i]); } } FreePool(s); } // End of MatchOS // obj-c stuff NSArray * getKextsToPatch(NSString* plistPath) { NSDictionary *configPlist = [NSDictionary dictionaryWithContentsOfFile:plistPath]; if (configPlist && [configPlist objectForKey:@"KernelAndKextPatches"] && [[configPlist objectForKey:@"KernelAndKextPatches"] isKindOfClass:[NSDictionary class]]) { if ([[configPlist objectForKey:@"KernelAndKextPatches"] objectForKey:@"KextsToPatch"] && [[[configPlist objectForKey:@"KernelAndKextPatches"] objectForKey:@"KextsToPatch"] isKindOfClass:[NSArray class]]) { return [[configPlist objectForKey:@"KernelAndKextPatches"] objectForKey:@"KextsToPatch"]; } } return nil; } int main(int argc, char* const argv[]) { @autoreleasepool { CHAR8 *OSVersion = (CHAR8 *) [[[NSDictionary dictionaryWithContentsOfFile:kSystemPlist] objectForKey:@"ProductVersion"] cStringUsingEncoding:NSUTF8StringEncoding]; if (!argv[1]) { printf("give as argument your config.plist..\n"); return 1; } NSArray *KextsToPatch = getKextsToPatch([NSString stringWithUTF8String:argv[1]]); if (KextsToPatch) { int p=0; for (id dict in KextsToPatch) { printf("-------------------\n"); NSString * comment; if ([dict isKindOfClass:[NSDictionary class]]) { if ([dict objectForKey:@"Comment"] && [[dict objectForKey:@"Comment"] isKindOfClass:[NSString class]]) { comment = [dict objectForKey:@"Comment"]; } else { comment = @"No comment for this patch."; } if ([dict objectForKey:@"MatchOS"] && [[dict objectForKey:@"MatchOS"] isKindOfClass:[NSString class]]) { CHAR8 * MatchOS = (CHAR8 *) [[dict objectForKey:@"MatchOS"] cStringUsingEncoding:NSUTF8StringEncoding]; printf("MatchOS = %s\n", MatchOS); if (IsPatchEnabled(MatchOS, OSVersion)) { printf("Patch %d with comment (%s) is Enabled for %s\n", p, [comment UTF8String], OSVersion); } else { printf("Patch %d with comment (%s) is Disabled for %s\n", p, [comment UTF8String], OSVersion); } } else { printf("Patch %d with comment (%s) has no MatchOS entry..\n", p, [comment UTF8String]); } if ([dict objectForKey:@"Disabled"] && [[dict objectForKey:@"Disabled"] isKindOfClass:[NSNumber class]]) { if ([[dict objectForKey:@"Disabled"] boolValue] == YES) { printf("Patch %d is Disabled\n", p); } } } p++; } } } printf("-------------------\n"); return 0; } Link to comment Share on other sites More sharing options...
Riley Freeman Posted July 6, 2016 Share Posted July 6, 2016 Before I build that new one, I ran the commands again in El Capitan with two OSes in the strings and it matched OK for El Capitan. No segfault this time. Â New version also works fine in El Capitan. Shows 10.11.x patch enabled whether I have one or two OSes in the MatchOS string. Â In Sierra it segfaults for the 10.12 patch whether I have MatchOS set to one or two OSes. Correctly shows Disabled for the 10.11 patch. This is with deallocMatchOSes(mos); commented out (I have to boot into El Cap to build every time). 1 Link to comment Share on other sites More sharing options...
Micky1979 Posted July 6, 2016 Share Posted July 6, 2016 The command use obj-c stuff also, don't know if there are some deprecated/removed methods in 10.12 since I'm testing in El Capitan (no xcode in Sierra yet). This should not happen for the pure c code part used for Clover. With latest changes I need to know if now work as expected with one MatchOS or more. Here apparently now work, please tell me if is the same for you, no matter the running OS And thanks for testing EDIT  also I made a little change to the code I post here Link to comment Share on other sites More sharing options...
Riley Freeman Posted July 6, 2016 Share Posted July 6, 2016 I removed the comments on deallocMatchOSes(mos); and tried it again. Still segfaults in Sierra on the Sierra entry. Rebooting again into El Capitan to build the new code. Â New code works ok in El Capitan but still segfaults in Sierra on the Sierra entry. 1 Link to comment Share on other sites More sharing options...
Micky1979 Posted July 6, 2016 Share Posted July 6, 2016 Thanks, downloading Xcode 8, but in the mean time is there anyone with Xcode 8 in Sierra to build the project and show me the "breakpoint"? Although I do not think c code make much difference in different OSes (at least the difference is the length between 10.12 and 10.10.5) Â EDIT Â Editing the Sierra's SystemVersion.plist to 10.12.1 solve the segmentation fault. So I found the bug. See you later with a fixed code! 1 Link to comment Share on other sites More sharing options...
sebinouse Posted July 6, 2016 Share Posted July 6, 2016 Output with the Xcode 7.3.1 (7D1014) product on 10.12.DP2 : ------------------- MatchOS = 10.12 Patch 0 with comment (Boot Graphics) is Disabled for 10.12 ------------------- MatchOS = 10.12.x, Patch 1 with comment (port 0x05 DP to HDMI pipe 0x09) is Disabled for 10.12 ------------------- MatchOS = 10.11,10.12 Patch 2 with comment (Trim Enabler) is Enabled for 10.12 ------------------- MatchOS = 10.11.x,10.12 Patch 3 with comment (Binary ALC283) is Enabled for 10.12 ------------------- MatchOS = 10.11.x,10.12.x, Patch 4 with comment (Binary zero 1983) is Disabled for 10.12 ------------------- Output with line 65 un commented ------------------- MatchOS = 10.12 Patch 0 with comment (Boot Graphics) is Disabled for 10.12 ------------------- MatchOS = 10.12.x, Patch 1 with comment (port 0x05 DP to HDMI pipe 0x09) is Disabled for 10.12 ------------------- MatchOS = 10.11,10.12 Patch 2 with comment (Trim Enabler) is Enabled for 10.12 ------------------- MatchOS = 10.11.x,10.12 Patch 3 with comment (Binary ALC283) is Enabled for 10.12 ------------------- MatchOS = 10.11.x,10.12.x, Patch 4 with comment (Binary zero 1983) is Disabled for 10.12 ------------------- Output with content of post #10676 ------------------- MatchOS = 10.12 Patch 0 with comment (Boot Graphics) is Enabled for 10.12 ------------------- MatchOS = 10.12.x, Patch 1 with comment (port 0x05 DP to HDMI pipe 0x09) is Disabled for 10.12 ------------------- MatchOS = 10.11,10.12 Patch 2 with comment (Trim Enabler) is Enabled for 10.12 ------------------- MatchOS = 10.11.x,10.12 Patch 3 with comment (Binary ALC283) is Enabled for 10.12 ------------------- MatchOS = 10.11.x,10.12.x, Patch 4 with comment (Binary zero 1983) is Disabled for 10.12 ------------------- If the string ends with "x" I have a segmentation error : ------------------- MatchOS = 10.12.x Segmentation fault: 11 "x," is OK though 1 Link to comment Share on other sites More sharing options...
Micky1979 Posted July 6, 2016 Share Posted July 6, 2016 And is the same in Clover. The bug was big like an Home That should work now: // // main.m // MatchOS_test // // Created by Micky1979 on 06/07/16. // Copyright © 2016 InsanelyMac. All rights reserved. // #import <Foundation/Foundation.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #define kSystemPlist @"/System/Library/CoreServices/SystemVersion.plist" #define BOOLEAN unsigned char #define TRUE 1 #define FALSE 0 #define CHAR8 char #define INTN int #define FreePool free #define AsciiStrStr strstr #define AsciiStrLen strlen #define AsciiStrCmp strcmp #define AsciiStrnCpy strncpy #define AllocatePool malloc #define VOID void // Micky1979: Next five functions (+ needed struct) are to split a string like "10.10.5,10.7,10.11.6,10.8.x" // in their components separated by comma (in this case) struct MatchOSes { INTN count; CHAR8* array[100]; }; BOOLEAN IsPatchEnabled (CHAR8 *MatchOSEntry, CHAR8 *CurrOS); VOID deallocMatchOSes(struct MatchOSes *s); struct MatchOSes *GetStrArraySeparatedByChar(CHAR8 *str, CHAR8 sep); BOOLEAN IsOSValid(CHAR8 *MatchOS, CHAR8 *CurrOS); INTN countOccurrences(CHAR8 *s, CHAR8 c); BOOLEAN IsPatchEnabled (CHAR8 *MatchOSEntry, CHAR8 *CurrOS) { INTN i; BOOLEAN ret = FALSE; struct MatchOSes *mos = malloc(sizeof(struct MatchOSes)); mos = GetStrArraySeparatedByChar(MatchOSEntry, ','); for (i = 0; i < mos->count; ++i) { if (IsOSValid(mos->array[i], CurrOS)) { //printf ("\nthis patch will activated for OS %s!\n", mos.array[i]); ret = TRUE; break; } } deallocMatchOSes(mos); return ret; } struct MatchOSes *GetStrArraySeparatedByChar(CHAR8 *str, CHAR8 sep) { struct MatchOSes *mo = malloc(sizeof(struct MatchOSes)); INTN len = 0, i = 0, inc = 1; CHAR8 *comp = NULL; CHAR8 doubleSep[2]; INTN newLen = 0; mo->count = countOccurrences( str, sep ) + 1; // printf("found %d %c in %s\n", mo->count, sep, str); len = (INTN)AsciiStrLen(str); doubleSep[0] = sep; doubleSep[1] = sep; if(AsciiStrStr(str, doubleSep) || !len || str[0] == sep || str[len -1] == sep) { mo->count = 0; mo->array[0] = ""; return mo; } if (mo->count > 1) { INTN indexes[mo->count + 1]; for (i = 0; i < len; ++i) { CHAR8 c = str[i]; if (c == sep) { indexes[inc]=i; inc++; } } // manually add first index indexes[0] = 0; // manually add last index indexes[mo->count + 1] = len; for (i = 0; i < mo->count; ++i) { INTN startLocation, endLocation; mo->array[i] = 0; if (i == 0) { startLocation = indexes[0]; endLocation = indexes[i + 1] - 2; } else if (i == mo->count - 1) { // never reach the end of the array startLocation = indexes[i] + 1; endLocation = len; } else { startLocation = indexes[i] + 1; endLocation = indexes[i+1] - 2; } newLen = (endLocation - startLocation) + 2; comp = (CHAR8 *) AllocatePool(newLen); AsciiStrnCpy(comp, str + startLocation, newLen); comp[newLen] = '\0'; mo->array[i] = comp; } } else { // str contains only one component and it is our string! mo->array[0] = str; } return mo; } BOOLEAN IsOSValid(CHAR8 *MatchOS, CHAR8 *CurrOS) { /* example for valid matches are: 10.7, only 10.7 (10.7.1 will be skipped) 10.10.2 only 10.10.2 (10.10.1 or 10.10.5 will be skipped) 10.10.x (or 10.10.X), in this case is valid for all minor version of 10.10 (10.10.(0-9)) */ BOOLEAN ret = FALSE; if (!MatchOS || !CurrOS) { return TRUE; //undefined matched corresponds to old behavior } struct MatchOSes *osToc = GetStrArraySeparatedByChar(MatchOS, '.'); struct MatchOSes *currOStoc = GetStrArraySeparatedByChar(CurrOS, '.'); if (osToc->count == 2) { if (AsciiStrCmp(osToc->array[0], currOStoc->array[0]) == 0 && AsciiStrCmp(osToc->array[1], currOStoc->array[1]) == 0) { ret = TRUE; } } else if (osToc->count == 3) { if (currOStoc->count == 3) { if (AsciiStrCmp(osToc->array[0], currOStoc->array[0]) == 0 && AsciiStrCmp(osToc->array[1], currOStoc->array[1]) == 0 && AsciiStrCmp(osToc->array[2], currOStoc->array[2]) == 0) { ret = TRUE; } else if (AsciiStrCmp(osToc->array[0], currOStoc->array[0]) == 0 && AsciiStrCmp(osToc->array[1], currOStoc->array[1]) == 0 && (AsciiStrCmp(osToc->array[2], "x") == 0 || AsciiStrCmp(osToc->array[2], "X") == 0)) { ret = TRUE; } } else if (currOStoc->count == 2) { if (AsciiStrCmp(osToc->array[0], currOStoc->array[0]) == 0 && AsciiStrCmp(osToc->array[1], currOStoc->array[1]) == 0) { ret = TRUE; } else if (AsciiStrCmp(osToc->array[0], currOStoc->array[0]) == 0 && AsciiStrCmp(osToc->array[1], currOStoc->array[1]) == 0 && (AsciiStrCmp(osToc->array[2], "x") == 0 || AsciiStrCmp(osToc->array[2], "X") == 0)) { ret = TRUE; } } } deallocMatchOSes(osToc); deallocMatchOSes(currOStoc); return ret; } INTN countOccurrences( CHAR8 *s, CHAR8 c ) { return *s == '\0' ? 0 : countOccurrences( s + 1, c ) + (*s == c); } VOID deallocMatchOSes(struct MatchOSes *s) { INTN i; assert(s != NULL); if (s->count >1) { for (i = 0; i < s->count; i++) { FreePool(s->array[i]); } } FreePool(s); } // End of MatchOS // obj-c stuff NSArray * getKextsToPatch(NSString* plistPath) { NSDictionary *configPlist = [NSDictionary dictionaryWithContentsOfFile:plistPath]; if (configPlist && [configPlist objectForKey:@"KernelAndKextPatches"] && [[configPlist objectForKey:@"KernelAndKextPatches"] isKindOfClass:[NSDictionary class]]) { if ([[configPlist objectForKey:@"KernelAndKextPatches"] objectForKey:@"KextsToPatch"] && [[[configPlist objectForKey:@"KernelAndKextPatches"] objectForKey:@"KextsToPatch"] isKindOfClass:[NSArray class]]) { return [[configPlist objectForKey:@"KernelAndKextPatches"] objectForKey:@"KextsToPatch"]; } } return nil; } int main(int argc, char* const argv[]) { @autoreleasepool { CHAR8 *OSVersion = (CHAR8 *) [[[NSDictionary dictionaryWithContentsOfFile:kSystemPlist] objectForKey:@"ProductVersion"] cStringUsingEncoding:NSUTF8StringEncoding]; if (!argv[1]) { printf("give as argument your config.plist..\n"); return 1; } NSArray *KextsToPatch = getKextsToPatch([NSString stringWithUTF8String:argv[1]]); /* CHAR8 *OSVersion = "10.12"; NSArray *KextsToPatch = getKextsToPatch(@"/Users/Micky1979/Desktop/config.plist"); */ if (KextsToPatch) { int p=0; for (id dict in KextsToPatch) { printf("-------------------\n"); NSString * comment; if ([dict isKindOfClass:[NSDictionary class]]) { if ([dict objectForKey:@"Comment"] && [[dict objectForKey:@"Comment"] isKindOfClass:[NSString class]]) { comment = [dict objectForKey:@"Comment"]; } else { comment = @"No comment for this patch."; } if ([dict objectForKey:@"MatchOS"] && [[dict objectForKey:@"MatchOS"] isKindOfClass:[NSString class]]) { CHAR8 * MatchOS = (CHAR8 *) [[dict objectForKey:@"MatchOS"] cStringUsingEncoding:NSUTF8StringEncoding]; printf("MatchOS = %s\n", MatchOS); if (IsPatchEnabled(MatchOS, OSVersion)) { printf("Patch %d with comment (%s) is Enabled for %s\n", p, [comment UTF8String], OSVersion); } else { printf("Patch %d with comment (%s) is Disabled for %s\n", p, [comment UTF8String], OSVersion); } } else { printf("Patch %d with comment (%s) has no MatchOS entry..\n", p, [comment UTF8String]); } if ([dict objectForKey:@"Disabled"] && [[dict objectForKey:@"Disabled"] isKindOfClass:[NSNumber class]]) { if ([[dict objectForKey:@"Disabled"] boolValue] == YES) { printf("Patch %d is Disabled\n", p); } } } p++; } } } printf("-------------------\n"); return 0; } Link to comment Share on other sites More sharing options...
MattsCreative Posted July 6, 2016 Share Posted July 6, 2016 //// main.m// MatchOS_test//// Created by Poco on 06/07/16.// Copyright © 2016 InsanelyMac. All rights reserved.// Link to comment Share on other sites More sharing options...
Micky1979 Posted July 6, 2016 Share Posted July 6, 2016 BTW is what Xcode in my Hackintosh auto-fill 1 Link to comment Share on other sites More sharing options...
MattsCreative Posted July 6, 2016 Share Posted July 6, 2016 BTW is what Xcode in my Hackintosh auto-fill sorry had to as a joke but nice code 1 Link to comment Share on other sites More sharing options...
Riley Freeman Posted July 7, 2016 Share Posted July 7, 2016 And is the same in Clover. The bug was big like an Home That should work now:  Works good on Sierra now. No more segfault  Tested with one and two OSes in the MatchOS string. 1 Link to comment Share on other sites More sharing options...
MattsCreative Posted July 7, 2016 Share Posted July 7, 2016 https://drive.google.com/file/d/0B3y5hldpEFDYcUNXSmpSRmpmM28/view?usp=sharing Clover 3590 Link to comment Share on other sites More sharing options...
Slice Posted July 7, 2016 Share Posted July 7, 2016  And is the same in Clover. The bug was big like an Home That should work now: // // main.m // MatchOS_test // // Created by Micky1979 on 06/07/16. // Copyright © 2016 InsanelyMac. All rights reserved. // #import <Foundation/Foundation.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #define kSystemPlist @"/System/Library/CoreServices/SystemVersion.plist" #define BOOLEAN unsigned char #define TRUE 1 #define FALSE 0 #define CHAR8 char #define INTN int #define FreePool free #define AsciiStrStr strstr #define AsciiStrLen strlen #define AsciiStrCmp strcmp #define AsciiStrnCpy strncpy #define AllocatePool malloc #define VOID void // Micky1979: Next five functions (+ needed struct) are to split a string like "10.10.5,10.7,10.11.6,10.8.x" // in their components separated by comma (in this case) struct MatchOSes { INTN count; CHAR8* array[100]; }; BOOLEAN IsPatchEnabled (CHAR8 *MatchOSEntry, CHAR8 *CurrOS); VOID deallocMatchOSes(struct MatchOSes *s); struct MatchOSes *GetStrArraySeparatedByChar(CHAR8 *str, CHAR8 sep); BOOLEAN IsOSValid(CHAR8 *MatchOS, CHAR8 *CurrOS); INTN countOccurrences(CHAR8 *s, CHAR8 c); BOOLEAN IsPatchEnabled (CHAR8 *MatchOSEntry, CHAR8 *CurrOS) { INTN i; BOOLEAN ret = FALSE; struct MatchOSes *mos = malloc(sizeof(struct MatchOSes)); mos = GetStrArraySeparatedByChar(MatchOSEntry, ','); for (i = 0; i < mos->count; ++i) { if (IsOSValid(mos->array[i], CurrOS)) { //printf ("\nthis patch will activated for OS %s!\n", mos.array[i]); ret = TRUE; break; } } deallocMatchOSes(mos); return ret; } struct MatchOSes *GetStrArraySeparatedByChar(CHAR8 *str, CHAR8 sep) { struct MatchOSes *mo = malloc(sizeof(struct MatchOSes)); INTN len = 0, i = 0, inc = 1; CHAR8 *comp = NULL; CHAR8 doubleSep[2]; INTN newLen = 0; mo->count = countOccurrences( str, sep ) + 1; // printf("found %d %c in %s\n", mo->count, sep, str); len = (INTN)AsciiStrLen(str); doubleSep[0] = sep; doubleSep[1] = sep; if(AsciiStrStr(str, doubleSep) || !len || str[0] == sep || str[len -1] == sep) { mo->count = 0; mo->array[0] = ""; return mo; } if (mo->count > 1) { INTN indexes[mo->count + 1]; for (i = 0; i < len; ++i) { CHAR8 c = str[i]; if (c == sep) { indexes[inc]=i; inc++; } } // manually add first index indexes[0] = 0; // manually add last index indexes[mo->count + 1] = len; for (i = 0; i < mo->count; ++i) { INTN startLocation, endLocation; mo->array[i] = 0; if (i == 0) { startLocation = indexes[0]; endLocation = indexes[i + 1] - 2; } else if (i == mo->count - 1) { // never reach the end of the array startLocation = indexes[i] + 1; endLocation = len; } else { startLocation = indexes[i] + 1; endLocation = indexes[i+1] - 2; } newLen = (endLocation - startLocation) + 2; comp = (CHAR8 *) AllocatePool(newLen); AsciiStrnCpy(comp, str + startLocation, newLen); comp[newLen] = '\0'; mo->array[i] = comp; } } else { // str contains only one component and it is our string! mo->array[0] = str; } return mo; } BOOLEAN IsOSValid(CHAR8 *MatchOS, CHAR8 *CurrOS) { /* example for valid matches are: 10.7, only 10.7 (10.7.1 will be skipped) 10.10.2 only 10.10.2 (10.10.1 or 10.10.5 will be skipped) 10.10.x (or 10.10.X), in this case is valid for all minor version of 10.10 (10.10.(0-9)) */ BOOLEAN ret = FALSE; if (!MatchOS || !CurrOS) { return TRUE; //undefined matched corresponds to old behavior } struct MatchOSes *osToc = GetStrArraySeparatedByChar(MatchOS, '.'); struct MatchOSes *currOStoc = GetStrArraySeparatedByChar(CurrOS, '.'); if (osToc->count == 2) { if (AsciiStrCmp(osToc->array[0], currOStoc->array[0]) == 0 && AsciiStrCmp(osToc->array[1], currOStoc->array[1]) == 0) { ret = TRUE; } } else if (osToc->count == 3) { if (currOStoc->count == 3) { if (AsciiStrCmp(osToc->array[0], currOStoc->array[0]) == 0 && AsciiStrCmp(osToc->array[1], currOStoc->array[1]) == 0 && AsciiStrCmp(osToc->array[2], currOStoc->array[2]) == 0) { ret = TRUE; } else if (AsciiStrCmp(osToc->array[0], currOStoc->array[0]) == 0 && AsciiStrCmp(osToc->array[1], currOStoc->array[1]) == 0 && (AsciiStrCmp(osToc->array[2], "x") == 0 || AsciiStrCmp(osToc->array[2], "X") == 0)) { ret = TRUE; } } else if (currOStoc->count == 2) { if (AsciiStrCmp(osToc->array[0], currOStoc->array[0]) == 0 && AsciiStrCmp(osToc->array[1], currOStoc->array[1]) == 0) { ret = TRUE; } else if (AsciiStrCmp(osToc->array[0], currOStoc->array[0]) == 0 && AsciiStrCmp(osToc->array[1], currOStoc->array[1]) == 0 && (AsciiStrCmp(osToc->array[2], "x") == 0 || AsciiStrCmp(osToc->array[2], "X") == 0)) { ret = TRUE; } } } deallocMatchOSes(osToc); deallocMatchOSes(currOStoc); return ret; } INTN countOccurrences( CHAR8 *s, CHAR8 c ) { return *s == '\0' ? 0 : countOccurrences( s + 1, c ) + (*s == c); } VOID deallocMatchOSes(struct MatchOSes *s) { INTN i; assert(s != NULL); if (s->count >1) { for (i = 0; i < s->count; i++) { FreePool(s->array[i]); } } FreePool(s); } // End of MatchOS // obj-c stuff NSArray * getKextsToPatch(NSString* plistPath) { NSDictionary *configPlist = [NSDictionary dictionaryWithContentsOfFile:plistPath]; if (configPlist && [configPlist objectForKey:@"KernelAndKextPatches"] && [[configPlist objectForKey:@"KernelAndKextPatches"] isKindOfClass:[NSDictionary class]]) { if ([[configPlist objectForKey:@"KernelAndKextPatches"] objectForKey:@"KextsToPatch"] && [[[configPlist objectForKey:@"KernelAndKextPatches"] objectForKey:@"KextsToPatch"] isKindOfClass:[NSArray class]]) { return [[configPlist objectForKey:@"KernelAndKextPatches"] objectForKey:@"KextsToPatch"]; } } return nil; } int main(int argc, char* const argv[]) { @autoreleasepool { CHAR8 *OSVersion = (CHAR8 *) [[[NSDictionary dictionaryWithContentsOfFile:kSystemPlist] objectForKey:@"ProductVersion"] cStringUsingEncoding:NSUTF8StringEncoding]; if (!argv[1]) { printf("give as argument your config.plist..\n"); return 1; } NSArray *KextsToPatch = getKextsToPatch([NSString stringWithUTF8String:argv[1]]); /* CHAR8 *OSVersion = "10.12"; NSArray *KextsToPatch = getKextsToPatch(@"/Users/Micky1979/Desktop/config.plist"); */ if (KextsToPatch) { int p=0; for (id dict in KextsToPatch) { printf("-------------------\n"); NSString * comment; if ([dict isKindOfClass:[NSDictionary class]]) { if ([dict objectForKey:@"Comment"] && [[dict objectForKey:@"Comment"] isKindOfClass:[NSString class]]) { comment = [dict objectForKey:@"Comment"]; } else { comment = @"No comment for this patch."; } if ([dict objectForKey:@"MatchOS"] && [[dict objectForKey:@"MatchOS"] isKindOfClass:[NSString class]]) { CHAR8 * MatchOS = (CHAR8 *) [[dict objectForKey:@"MatchOS"] cStringUsingEncoding:NSUTF8StringEncoding]; printf("MatchOS = %s\n", MatchOS); if (IsPatchEnabled(MatchOS, OSVersion)) { printf("Patch %d with comment (%s) is Enabled for %s\n", p, [comment UTF8String], OSVersion); } else { printf("Patch %d with comment (%s) is Disabled for %s\n", p, [comment UTF8String], OSVersion); } } else { printf("Patch %d with comment (%s) has no MatchOS entry..\n", p, [comment UTF8String]); } if ([dict objectForKey:@"Disabled"] && [[dict objectForKey:@"Disabled"] isKindOfClass:[NSNumber class]]) { if ([[dict objectForKey:@"Disabled"] boolValue] == YES) { printf("Patch %d is Disabled\n", p); } } } p++; } } } printf("-------------------\n"); return 0; } Should I correct Clover according to this? Link to comment Share on other sites More sharing options...
Micky1979 Posted July 7, 2016 Share Posted July 7, 2016 Sorry last nigth  I fell asleep . This is what i tried last : Platform.h.zip Settings.c.zip  the code is different, but the real bug was in the "IsOSValid" function (sorry a bad statement). Here work, but before commit please try it, maybe post binaries to make users test with it.  @Riley Freeman, sebinouse and others: thanks for testing 1 Link to comment Share on other sites More sharing options...
sebinouse Posted July 7, 2016 Share Posted July 7, 2016  And is the same in Clover. The bug was big like an Home That should work now: // // main.m // MatchOS_test // // Created by Micky1979 on 06/07/16. // Copyright © 2016 InsanelyMac. All rights reserved. // #import <Foundation/Foundation.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #define kSystemPlist @"/System/Library/CoreServices/SystemVersion.plist" #define BOOLEAN unsigned char #define TRUE 1 #define FALSE 0 #define CHAR8 char #define INTN int #define FreePool free #define AsciiStrStr strstr #define AsciiStrLen strlen #define AsciiStrCmp strcmp #define AsciiStrnCpy strncpy #define AllocatePool malloc #define VOID void // Micky1979: Next five functions (+ needed struct) are to split a string like "10.10.5,10.7,10.11.6,10.8.x" // in their components separated by comma (in this case) struct MatchOSes { INTN count; CHAR8* array[100]; }; BOOLEAN IsPatchEnabled (CHAR8 *MatchOSEntry, CHAR8 *CurrOS); VOID deallocMatchOSes(struct MatchOSes *s); struct MatchOSes *GetStrArraySeparatedByChar(CHAR8 *str, CHAR8 sep); BOOLEAN IsOSValid(CHAR8 *MatchOS, CHAR8 *CurrOS); INTN countOccurrences(CHAR8 *s, CHAR8 c); BOOLEAN IsPatchEnabled (CHAR8 *MatchOSEntry, CHAR8 *CurrOS) { INTN i; BOOLEAN ret = FALSE; struct MatchOSes *mos = malloc(sizeof(struct MatchOSes)); mos = GetStrArraySeparatedByChar(MatchOSEntry, ','); for (i = 0; i < mos->count; ++i) { if (IsOSValid(mos->array[i], CurrOS)) { //printf ("\nthis patch will activated for OS %s!\n", mos.array[i]); ret = TRUE; break; } } deallocMatchOSes(mos); return ret; } struct MatchOSes *GetStrArraySeparatedByChar(CHAR8 *str, CHAR8 sep) { struct MatchOSes *mo = malloc(sizeof(struct MatchOSes)); INTN len = 0, i = 0, inc = 1; CHAR8 *comp = NULL; CHAR8 doubleSep[2]; INTN newLen = 0; mo->count = countOccurrences( str, sep ) + 1; // printf("found %d %c in %s\n", mo->count, sep, str); len = (INTN)AsciiStrLen(str); doubleSep[0] = sep; doubleSep[1] = sep; if(AsciiStrStr(str, doubleSep) || !len || str[0] == sep || str[len -1] == sep) { mo->count = 0; mo->array[0] = ""; return mo; } if (mo->count > 1) { INTN indexes[mo->count + 1]; for (i = 0; i < len; ++i) { CHAR8 c = str[i]; if (c == sep) { indexes[inc]=i; inc++; } } // manually add first index indexes[0] = 0; // manually add last index indexes[mo->count + 1] = len; for (i = 0; i < mo->count; ++i) { INTN startLocation, endLocation; mo->array[i] = 0; if (i == 0) { startLocation = indexes[0]; endLocation = indexes[i + 1] - 2; } else if (i == mo->count - 1) { // never reach the end of the array startLocation = indexes[i] + 1; endLocation = len; } else { startLocation = indexes[i] + 1; endLocation = indexes[i+1] - 2; } newLen = (endLocation - startLocation) + 2; comp = (CHAR8 *) AllocatePool(newLen); AsciiStrnCpy(comp, str + startLocation, newLen); comp[newLen] = '\0'; mo->array[i] = comp; } } else { // str contains only one component and it is our string! mo->array[0] = str; } return mo; } BOOLEAN IsOSValid(CHAR8 *MatchOS, CHAR8 *CurrOS) { /* example for valid matches are: 10.7, only 10.7 (10.7.1 will be skipped) 10.10.2 only 10.10.2 (10.10.1 or 10.10.5 will be skipped) 10.10.x (or 10.10.X), in this case is valid for all minor version of 10.10 (10.10.(0-9)) */ BOOLEAN ret = FALSE; if (!MatchOS || !CurrOS) { return TRUE; //undefined matched corresponds to old behavior } struct MatchOSes *osToc = GetStrArraySeparatedByChar(MatchOS, '.'); struct MatchOSes *currOStoc = GetStrArraySeparatedByChar(CurrOS, '.'); if (osToc->count == 2) { if (AsciiStrCmp(osToc->array[0], currOStoc->array[0]) == 0 && AsciiStrCmp(osToc->array[1], currOStoc->array[1]) == 0) { ret = TRUE; } } else if (osToc->count == 3) { if (currOStoc->count == 3) { if (AsciiStrCmp(osToc->array[0], currOStoc->array[0]) == 0 && AsciiStrCmp(osToc->array[1], currOStoc->array[1]) == 0 && AsciiStrCmp(osToc->array[2], currOStoc->array[2]) == 0) { ret = TRUE; } else if (AsciiStrCmp(osToc->array[0], currOStoc->array[0]) == 0 && AsciiStrCmp(osToc->array[1], currOStoc->array[1]) == 0 && (AsciiStrCmp(osToc->array[2], "x") == 0 || AsciiStrCmp(osToc->array[2], "X") == 0)) { ret = TRUE; } } else if (currOStoc->count == 2) { if (AsciiStrCmp(osToc->array[0], currOStoc->array[0]) == 0 && AsciiStrCmp(osToc->array[1], currOStoc->array[1]) == 0) { ret = TRUE; } else if (AsciiStrCmp(osToc->array[0], currOStoc->array[0]) == 0 && AsciiStrCmp(osToc->array[1], currOStoc->array[1]) == 0 && (AsciiStrCmp(osToc->array[2], "x") == 0 || AsciiStrCmp(osToc->array[2], "X") == 0)) { ret = TRUE; } } } deallocMatchOSes(osToc); deallocMatchOSes(currOStoc); return ret; } INTN countOccurrences( CHAR8 *s, CHAR8 c ) { return *s == '\0' ? 0 : countOccurrences( s + 1, c ) + (*s == c); } VOID deallocMatchOSes(struct MatchOSes *s) { INTN i; assert(s != NULL); if (s->count >1) { for (i = 0; i < s->count; i++) { FreePool(s->array[i]); } } FreePool(s); } // End of MatchOS // obj-c stuff NSArray * getKextsToPatch(NSString* plistPath) { NSDictionary *configPlist = [NSDictionary dictionaryWithContentsOfFile:plistPath]; if (configPlist && [configPlist objectForKey:@"KernelAndKextPatches"] && [[configPlist objectForKey:@"KernelAndKextPatches"] isKindOfClass:[NSDictionary class]]) { if ([[configPlist objectForKey:@"KernelAndKextPatches"] objectForKey:@"KextsToPatch"] && [[[configPlist objectForKey:@"KernelAndKextPatches"] objectForKey:@"KextsToPatch"] isKindOfClass:[NSArray class]]) { return [[configPlist objectForKey:@"KernelAndKextPatches"] objectForKey:@"KextsToPatch"]; } } return nil; } int main(int argc, char* const argv[]) { @autoreleasepool { CHAR8 *OSVersion = (CHAR8 *) [[[NSDictionary dictionaryWithContentsOfFile:kSystemPlist] objectForKey:@"ProductVersion"] cStringUsingEncoding:NSUTF8StringEncoding]; if (!argv[1]) { printf("give as argument your config.plist..\n"); return 1; } NSArray *KextsToPatch = getKextsToPatch([NSString stringWithUTF8String:argv[1]]); /* CHAR8 *OSVersion = "10.12"; NSArray *KextsToPatch = getKextsToPatch(@"/Users/Micky1979/Desktop/config.plist"); */ if (KextsToPatch) { int p=0; for (id dict in KextsToPatch) { printf("-------------------\n"); NSString * comment; if ([dict isKindOfClass:[NSDictionary class]]) { if ([dict objectForKey:@"Comment"] && [[dict objectForKey:@"Comment"] isKindOfClass:[NSString class]]) { comment = [dict objectForKey:@"Comment"]; } else { comment = @"No comment for this patch."; } if ([dict objectForKey:@"MatchOS"] && [[dict objectForKey:@"MatchOS"] isKindOfClass:[NSString class]]) { CHAR8 * MatchOS = (CHAR8 *) [[dict objectForKey:@"MatchOS"] cStringUsingEncoding:NSUTF8StringEncoding]; printf("MatchOS = %s\n", MatchOS); if (IsPatchEnabled(MatchOS, OSVersion)) { printf("Patch %d with comment (%s) is Enabled for %s\n", p, [comment UTF8String], OSVersion); } else { printf("Patch %d with comment (%s) is Disabled for %s\n", p, [comment UTF8String], OSVersion); } } else { printf("Patch %d with comment (%s) has no MatchOS entry..\n", p, [comment UTF8String]); } if ([dict objectForKey:@"Disabled"] && [[dict objectForKey:@"Disabled"] isKindOfClass:[NSNumber class]]) { if ([[dict objectForKey:@"Disabled"] boolValue] == YES) { printf("Patch %d is Disabled\n", p); } } } p++; } } } printf("-------------------\n"); return 0; } It seems OK ! ------------------- MatchOS = 10.12.x Patch 0 with comment (Boot Graphics) is Enabled for 10.12 ------------------- MatchOS = 10.12.x Patch 1 with comment (port 0x05 DP to HDMI pipe 0x09) is Enabled for 10.12 ------------------- MatchOS = 10.11.x Patch 2 with comment (port 0x05 DP to HDMI pipe 0x09 to 0x12) is Disabled for 10.12 ------------------- MatchOS = 10.11.x,10.12.x Patch 3 with comment (Trim Enabler) is Enabled for 10.12 ------------------- MatchOS = 10.11.x,10.12.x Patch 4 with comment (Binary ALC283) is Enabled for 10.12 ------------------- MatchOS = 10.11.x,10.12.x Patch 5 with comment (Binary zero 1983) is Enabled for 10.12 ------------------- I can't wait to test on Clover ! Is r3590 already up to date or should I wait ? Link to comment Share on other sites More sharing options...
Fljagd Posted July 7, 2016 Share Posted July 7, 2016  Replace everything with this: // // main.m // MatchOS_test // // Created by Micky1979 on 06/07/16. // Copyright © 2016 InsanelyMac. All rights reserved. // #import <Foundation/Foundation.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #define kSystemPlist @"/System/Library/CoreServices/SystemVersion.plist" #define BOOLEAN unsigned char #define TRUE 1 #define FALSE 0 #define CHAR8 char #define INTN int #define FreePool free #define AsciiStrStr strstr #define AsciiStrLen strlen #define AsciiStrCmp strcmp #define AsciiStrnCpy strncpy #define AllocatePool malloc #define VOID void // Micky1979: Next five functions (+ needed struct) are to split a string like "10.10.5,10.7,10.11.6,10.8.x" // in their components separated by comma (in this case) struct MatchOSes { INTN count; CHAR8* array[100]; }; BOOLEAN IsPatchEnabled (CHAR8 *MatchOSEntry, CHAR8 *CurrOS); VOID deallocMatchOSes(struct MatchOSes *s); struct MatchOSes *GetStrArraySeparatedByChar(CHAR8 *str, CHAR8 sep); BOOLEAN IsOSValid(CHAR8 *MatchOS, CHAR8 *CurrOS); INTN countOccurrences(CHAR8 *s, CHAR8 c); BOOLEAN IsPatchEnabled (CHAR8 *MatchOSEntry, CHAR8 *CurrOS) { INTN i; BOOLEAN ret = FALSE; struct MatchOSes *mos = malloc(sizeof(struct MatchOSes)); mos = GetStrArraySeparatedByChar(MatchOSEntry, ','); for (i = 0; i < mos->count; ++i) { if (IsOSValid(mos->array[i], CurrOS)) { //printf ("\nthis patch will activated for OS %s!\n", mos.array[i]); ret = TRUE; break; } } deallocMatchOSes(mos); return ret; } struct MatchOSes *GetStrArraySeparatedByChar(CHAR8 *str, CHAR8 sep) { struct MatchOSes *mo = malloc(sizeof(struct MatchOSes)); INTN len = 0, i = 0, inc = 1; CHAR8 *comp = NULL; CHAR8 doubleSep[2]; INTN newLen = 0; mo->count = countOccurrences( str, sep ) + 1; //printf("found %d %c in %s\n", mo->count, sep, str); len = (INTN)AsciiStrLen(str); doubleSep[0] = sep; doubleSep[1] = sep; if(AsciiStrStr(str, doubleSep) || !len || str[0] == sep || str[len -1] == sep) { mo->count = 0; mo->array[0] = ""; return mo; } if (mo->count > 1) { INTN indexes[mo->count + 1]; for (i = 0; i < len; ++i) { CHAR8 c = str[i]; if (c == sep) { indexes[inc]=i; inc++; } } // manually add first index indexes[0] = 0; // manually add last index indexes[mo->count + 1] = len; for (i = 0; i < mo->count; ++i) { INTN startLocation, endLocation; mo->array[i] = 0; if (i == 0) { startLocation = indexes[0]; endLocation = indexes[i + 1] - 2; } else if (i == mo->count - 1) { // never reach the end of the array startLocation = indexes[i] + 1; endLocation = len; } else { startLocation = indexes[i] + 1; endLocation = indexes[i+1] - 2; } newLen = (endLocation - startLocation) + 2; comp = (CHAR8 *) AllocatePool(newLen); AsciiStrnCpy(comp, str + startLocation, newLen); comp[newLen] = '\0'; mo->array[i] = comp; } } else { // str contains only one component and it is our string! //comp = (CHAR8 *) AllocatePool(AsciiStrLen(str)); mo->array[0] = str; } return mo; } BOOLEAN IsOSValid(CHAR8 *MatchOS, CHAR8 *CurrOS) { /* example for valid matches are: 10.7, only 10.7 (10.7.1 will be skipped) 10.10.2 only 10.10.2 (10.10.1 or 10.10.5 will be skipped) 10.10.x (or 10.10.X), in this case is valid for all minor version of 10.10 (10.10.(0-9)) */ BOOLEAN ret = FALSE; if (!MatchOS || !CurrOS) { return TRUE; //undefined matched corresponds to old behavior } struct MatchOSes *osToc = GetStrArraySeparatedByChar(MatchOS, '.'); struct MatchOSes *currOStoc = GetStrArraySeparatedByChar(CurrOS, '.'); if (osToc->count == 2) { if (AsciiStrCmp(osToc->array[0], currOStoc->array[0]) == 0 && AsciiStrCmp(osToc->array[1], currOStoc->array[1]) == 0) { ret = TRUE; } } else if (osToc->count == 3) { if (AsciiStrCmp(osToc->array[0], currOStoc->array[0]) == 0 && AsciiStrCmp(osToc->array[1], currOStoc->array[1]) == 0 && AsciiStrCmp(osToc->array[2], currOStoc->array[2]) == 0) { ret = TRUE; } else if (AsciiStrCmp(osToc->array[0], currOStoc->array[0]) == 0 && AsciiStrCmp(osToc->array[1], currOStoc->array[1]) == 0 && (AsciiStrCmp(osToc->array[2], "x") == 0 || AsciiStrCmp(osToc->array[2], "X") == 0)) { ret = TRUE; } } deallocMatchOSes(osToc); deallocMatchOSes(currOStoc); return ret; } INTN countOccurrences( CHAR8 *s, CHAR8 c ) { return *s == '\0' ? 0 : countOccurrences( s + 1, c ) + (*s == c); } VOID deallocMatchOSes(struct MatchOSes *s) { INTN i; assert(s != NULL); if (s->count >1) { for (i = 0; i < s->count; i++) { FreePool(s->array[i]); } } FreePool(s); } // End of MatchOS // obj-c stuff NSArray * getKextsToPatch(NSString* plistPath) { NSDictionary *configPlist = [NSDictionary dictionaryWithContentsOfFile:plistPath]; if (configPlist && [configPlist objectForKey:@"KernelAndKextPatches"] && [[configPlist objectForKey:@"KernelAndKextPatches"] isKindOfClass:[NSDictionary class]]) { if ([[configPlist objectForKey:@"KernelAndKextPatches"] objectForKey:@"KextsToPatch"] && [[[configPlist objectForKey:@"KernelAndKextPatches"] objectForKey:@"KextsToPatch"] isKindOfClass:[NSArray class]]) { return [[configPlist objectForKey:@"KernelAndKextPatches"] objectForKey:@"KextsToPatch"]; } } return nil; } int main(int argc, char* const argv[]) { @autoreleasepool { CHAR8 *OSVersion = (CHAR8 *) [[[NSDictionary dictionaryWithContentsOfFile:kSystemPlist] objectForKey:@"ProductVersion"] cStringUsingEncoding:NSUTF8StringEncoding]; if (!argv[1]) { printf("give as argument your config.plist..\n"); return 1; } NSArray *KextsToPatch = getKextsToPatch([NSString stringWithUTF8String:argv[1]]); if (KextsToPatch) { int p=0; for (id dict in KextsToPatch) { printf("-------------------\n"); NSString * comment; if ([dict isKindOfClass:[NSDictionary class]]) { if ([dict objectForKey:@"Comment"] && [[dict objectForKey:@"Comment"] isKindOfClass:[NSString class]]) { comment = [dict objectForKey:@"Comment"]; } else { comment = @"No comment for this patch."; } if ([dict objectForKey:@"MatchOS"] && [[dict objectForKey:@"MatchOS"] isKindOfClass:[NSString class]]) { CHAR8 * MatchOS = (CHAR8 *) [[dict objectForKey:@"MatchOS"] cStringUsingEncoding:NSUTF8StringEncoding]; printf("MatchOS = %s\n", MatchOS); if (IsPatchEnabled(MatchOS, OSVersion)) { printf("Patch %d with comment (%s) is Enabled for %s\n", p, [comment UTF8String], OSVersion); } else { printf("Patch %d with comment (%s) is Disabled for %s\n", p, [comment UTF8String], OSVersion); } } else { printf("Patch %d with comment (%s) has no MatchOS entry..\n", p, [comment UTF8String]); } if ([dict objectForKey:@"Disabled"] && [[dict objectForKey:@"Disabled"] isKindOfClass:[NSNumber class]]) { if ([[dict objectForKey:@"Disabled"] boolValue] == YES) { printf("Patch %d is Disabled\n", p); } } } p++; } } } printf("-------------------\n"); return 0; } config.plist <key>KernelAndKextPatches</key> <dict>  <key>AppleRTC</key>  <false/>  <key>AsusAICPUPM</key>  <true/>  <key>Debug</key>  <false/>  <key>KernelCpu</key>  <false/>  <key>KernelHaswellE</key>  <false/>  <key>KernelLapic</key>  <false/>  <key>KernelPm</key>  <false/>  <key>KextsToPatch</key>  <array>   <dict>    <key>MatchOs</key>    <string>10.11.x,10.12.x</string>    <key>Comment</key>    <string>No Comment provided for this patch</string>    <key>Disabled</key>    <false/>    <key>Find</key>    <data>AEFQUExFIFNTRAA=</data>    <key>Name</key>    <string>IOAHCIBlockStorage</string>    <key>Replace</key>    <data>AAAAAAAAAAAAAAA=</data>   </dict>   <dict>    <key>Comment</key>    <string>No Comment provided for this patch</string>    <key>Disabled</key>    <false/>    <key>Find</key>    <data>g72M/v//EA==</data>    <key>Name</key>    <string>AppleUSBXHCIPCI</string>    <key>Replace</key>    <data>g72M/v//HQ==</data>   </dict>  </array> result: Last login: Thu Jul 7 08:35:09 on ttys000 Mac-Pro:~ Fljagd$ /Users/Fljagd/Library/Developer/Xcode/DerivedData/MatchOS_test-aejofsqrdrnbdggjqfmlgksdhizu/Build/Products/Debug/MatchOS_test /Users/Fljagd/Desktop/config.plist ------------------- Patch 0 with comment (No Comment provided for this patch) has no MatchOS entry.. ------------------- Patch 1 with comment (No Comment provided for this patch) has no MatchOS entry.. ------------------- Link to comment Share on other sites More sharing options...
sebinouse Posted July 7, 2016 Share Posted July 7, 2016 MatchOs > MatchOS Â it is Case Sensitive ! 2 Link to comment Share on other sites More sharing options...
Fljagd Posted July 7, 2016 Share Posted July 7, 2016 MatchOs > MatchOS  it is Case Sensitive ! Thank a lot Mac-Pro:~ Fljagd$ /Users/Fljagd/Library/Developer/Xcode/DerivedData/MatchOS_test-aejofsqrdrnbdggjqfmlgksdhizu/Build/Products/Debug/MatchOS_test /Users/Fljagd/Desktop/config.plist ------------------- MatchOS = 10.11.x,10.12.x Patch 0 with comment (No Comment provided for this patch) is Enabled for 10.11.5 ------------------- Patch 1 with comment (No Comment provided for this patch) has no MatchOS entry.. Link to comment Share on other sites More sharing options...
sebinouse Posted July 7, 2016 Share Posted July 7, 2016  Thank a lot Mac-Pro:~ Fljagd$ /Users/Fljagd/Library/Developer/Xcode/DerivedData/MatchOS_test-aejofsqrdrnbdggjqfmlgksdhizu/Build/Products/Debug/MatchOS_test /Users/Fljagd/Desktop/config.plist ------------------- MatchOS = 10.11.x,10.12.x Patch 0 with comment (No Comment provided for this patch) is Enabled for 10.11.5 ------------------- Patch 1 with comment (No Comment provided for this patch) has no MatchOS entry.. I made the exact same mistake in fact Link to comment Share on other sites More sharing options...
Fljagd Posted July 7, 2016 Share Posted July 7, 2016 I made the exact same mistake in fact l it's sensitive these little beasts 1 Link to comment Share on other sites More sharing options...
Slice Posted July 7, 2016 Share Posted July 7, 2016 Sorry last nigth  I fell asleep . This is what i tried last : Platform.h.zip Settings.c.zip  the code is different, but the real bug was in the "IsOSValid" function (sorry a bad statement). Here work, but before commit please try it, maybe post binaries to make users test with it.  @Riley Freeman, sebinouse and others: thanks for testing @all Test, please, 3591 CLOVERX64.efi-3591.zip @Micky1979 Clover sources should be written in EDK2 code style. Look, please, https://github.com/tianocore/tianocore.github.io/wiki/Code-Style-C (this site has temporary problems now) 2 Link to comment Share on other sites More sharing options...
Fljagd Posted July 7, 2016 Share Posted July 7, 2016 (edited) @all Test, please, 3591 CLOVERX64.efi-3591.zip  Last login: Thu Jul 7 11:00:10 on console Fljagds-Mac-Pro:~ fljagd$ bdmesg 0:100 0:100 MemLog inited, TSC freq: 3300004470 0:100 0:000 0:100 0:000 Now is 7.7.2016, 8:58:26 (GMT) 0:100 0:000 Starting Clover rev 3591 on American Megatrends EFI 0:100 0:000 Build with: [Args: ./ebuild.sh | Command: build -D USE_LOW_EBDA -p Clover/Clover.dsc -a X64 -b RELEASE -t XCODE5 -n 3 | OS: 10.7.5 | XCODE: 4.4.1] 0:100 0:000 SelfDevicePath=PciRoot(0x0)\Pci(0x1F,0x2)\Sata(0x2,0xFFFF,0x0)\HD(1,GPT,D878D2C4-6602-4290-A8E7-676563FEBE2E,0x28,0x64000) @C88EF418 0:100 0:000 SelfDirPath = \EFI\BOOT 0:107 0:007 Total Memory Slots Count = 8 0:107 0:000 Type 17 Index = 0 0:107 0:000 SmbiosTable.Type17->Speed = 2133MHz 0:107 0:000 SmbiosTable.Type17->Size = 4096MB 0:107 0:000 SmbiosTable.Type17->Bank/Device = NODE 1 DIMM_A1 0:107 0:000 SmbiosTable.Type17->Vendor = 0:107 0:000 SmbiosTable.Type17->SerialNumber = 0:107 0:000 SmbiosTable.Type17->PartNumber = 0:107 0:000 Type 17 Index = 1 0:107 0:000 SmbiosTable.Type17->Speed = 2133MHz 0:107 0:000 SmbiosTable.Type17->Size = 4096MB 0:107 0:000 SmbiosTable.Type17->Bank/Device = NODE 1 DIMM_A2 0:107 0:000 SmbiosTable.Type17->Vendor = 0:107 0:000 SmbiosTable.Type17->SerialNumber = 0:107 0:000 SmbiosTable.Type17->PartNumber = 0:107 0:000 Type 17 Index = 2 0:107 0:000 SmbiosTable.Type17->Speed = 2133MHz 0:107 0:000 SmbiosTable.Type17->Size = 4096MB 0:107 0:000 SmbiosTable.Type17->Bank/Device = NODE 1 DIMM_B1 0:107 0:000 SmbiosTable.Type17->Vendor = 0:107 0:000 SmbiosTable.Type17->SerialNumber = 0:107 0:000 SmbiosTable.Type17->PartNumber = 0:107 0:000 Type 17 Index = 3 0:107 0:000 SmbiosTable.Type17->Speed = 2133MHz 0:107 0:000 SmbiosTable.Type17->Size = 4096MB 0:107 0:000 SmbiosTable.Type17->Bank/Device = NODE 1 DIMM_B2 0:107 0:000 SmbiosTable.Type17->Vendor = 0:107 0:000 SmbiosTable.Type17->SerialNumber = 0:107 0:000 SmbiosTable.Type17->PartNumber = 0:107 0:000 Type 17 Index = 4 0:107 0:000 Ignoring insane frequency value 0MHz 0:107 0:000 SmbiosTable.Type17->Speed = 0MHz 0:107 0:000 SmbiosTable.Type17->Size = 0MB 0:107 0:000 SmbiosTable.Type17->Bank/Device = NODE 1 DIMM_C1 0:107 0:000 SmbiosTable.Type17->Vendor = <null string> 0:107 0:000 SmbiosTable.Type17->SerialNumber = <null string> 0:107 0:000 SmbiosTable.Type17->PartNumber = <null string> 0:107 0:000 Type 17 Index = 5 0:107 0:000 Ignoring insane frequency value 0MHz 0:107 0:000 SmbiosTable.Type17->Speed = 0MHz 0:107 0:000 SmbiosTable.Type17->Size = 0MB 0:107 0:000 SmbiosTable.Type17->Bank/Device = NODE 1 DIMM_C2 0:107 0:000 SmbiosTable.Type17->Vendor = <null string> 0:107 0:000 SmbiosTable.Type17->SerialNumber = <null string> 0:107 0:000 SmbiosTable.Type17->PartNumber = <null string> 0:107 0:000 Type 17 Index = 6 0:107 0:000 Ignoring insane frequency value 0MHz 0:107 0:000 SmbiosTable.Type17->Speed = 0MHz 0:107 0:000 SmbiosTable.Type17->Size = 0MB 0:107 0:000 SmbiosTable.Type17->Bank/Device = NODE 1 DIMM_D1 0:107 0:000 SmbiosTable.Type17->Vendor = <null string> 0:107 0:000 SmbiosTable.Type17->SerialNumber = <null string> 0:107 0:000 SmbiosTable.Type17->PartNumber = <null string> 0:107 0:000 Type 17 Index = 7 0:107 0:000 Ignoring insane frequency value 0MHz 0:107 0:000 SmbiosTable.Type17->Speed = 0MHz 0:107 0:000 SmbiosTable.Type17->Size = 0MB 0:107 0:000 SmbiosTable.Type17->Bank/Device = NODE 1 DIMM_D2 0:107 0:000 SmbiosTable.Type17->Vendor = <null string> 0:107 0:000 SmbiosTable.Type17->SerialNumber = <null string> 0:107 0:000 SmbiosTable.Type17->PartNumber = <null string> 0:107 0:000 Boot status=0 0:107 0:000 Clover revision: 3591 running on All Series 0:107 0:000 ... with board X99-A 0:107 0:000 CPU Vendor = 756E6547 Model=306F2 0:107 0:000 got cores from CPUID_1 = 0 0:107 0:000 The CPU supported turbo 0:107 0:000 BrandString = Intel(R) Core(TM) i7-5820K CPU @ 3.30GHz 0:107 0:000 MSR 0xE2 before patch 00008401 0:107 0:000 MSR 0xE2 is locked, PM patches will be turned on 0:107 0:000 MSR 0xE4 00010414 0:107 0:000 MSR 0xCE 00080C3B_F3812100 0:107 0:000 MSR 0x1B0 00000000 0:107 0:000 FSBFrequency=100MHz DMIvalue=100000kHz 0:107 0:000 Corrected FSBFrequency=100MHz 0:107 0:000 Vendor/Model/Stepping: 0x756E6547/0x3F/0x2 0:107 0:000 Family/ExtFamily: 0x6/0x0 0:107 0:000 MaxDiv/MinDiv: 33.0/12 0:107 0:000 Turbo: 41/41/41/41 0:107 0:000 Features: 0xBFEBFBFF 0:107 0:000 Threads: 12 0:107 0:000 Cores: 6 0:107 0:000 FSB: 100 MHz 0:107 0:000 CPU: 3300 MHz 0:107 0:000 TSC: 3300 MHz 0:107 0:000 PIS: 400 MHz 0:107 0:000 PCI (00|00:03.00) : 8086 2F08 class=060400 0:107 0:000 PCI (00|01:00.00) : 1002 679A class=030000 0:107 0:000 Found Radeon model=AMD Radeon HD 7950/8950/R9 280 0:107 0:000 PCI (00|01:00.01) : 1002 AAA0 class=040300 0:107 0:000 PCI (00|00:01.00) : 8086 2F02 class=060400 0:107 0:000 PCI (00|00:01.01) : 8086 2F03 class=060400 0:107 0:000 PCI (00|00:00.00) : 8086 2F00 class=060000 0:107 0:000 PCI (00|00:05.00) : 8086 2F28 class=088000 0:107 0:000 PCI (00|00:05.01) : 8086 2F29 class=088000 0:107 0:000 PCI (00|00:05.02) : 8086 2F2A class=088000 0:107 0:000 PCI (00|00:05.04) : 8086 2F2C class=080020 0:107 0:000 PCI (00|00:05.06) : FFFF FFFF class=FFFFFF 0:107 0:000 PCI (00|00:1F.00) : 8086 8D47 class=060100 0:107 0:000 PCI (00|00:1F.02) : 8086 8D02 class=010601 0:107 0:000 PCI (00|00:1F.03) : 8086 8D22 class=0C0500 0:107 0:000 PCI (00|00:1F.06) : FFFF FFFF class=FFFFFF 0:107 0:000 PCI (00|00:11.00) : 8086 8D7C class=FF0000 0:107 0:000 PCI (00|00:11.04) : 8086 8D62 class=010601 0:107 0:000 PCI (00|00:14.00) : 8086 8D31 class=0C0330 0:107 0:000 PCI (00|00:16.00) : 8086 8D3A class=078000 0:107 0:000 PCI (00|00:16.01) : FFFF FFFF class=FFFFFF 0:107 0:000 PCI (00|00:16.02) : FFFF FFFF class=FFFFFF 0:107 0:000 PCI (00|00:16.03) : FFFF FFFF class=FFFFFF 0:107 0:000 PCI (00|00:19.00) : 8086 15A1 class=020000 0:107 0:000 LAN 0, Vendor=8086, MMIO=FBF00000 0:107 0:000 PCI (00|00:1A.00) : FFFF FFFF class=FFFFFF 0:107 0:000 PCI (00|00:1B.00) : 8086 8D20 class=040300 0:107 0:000 PCI (00|00:1C.00) : 8086 8D10 class=060400 0:107 0:000 PCI (00|00:1C.04) : 8086 8D18 class=060400 0:107 0:000 PCI (00|05:00.00) : 1B21 1142 class=0C0330 0:107 0:000 PCI (00|00:1D.00) : FFFF FFFF class=FFFFFF 0:107 0:000 Clover load options size = 0 bytes 0:139 0:031 Using OEM config.plist at path: EFI\CLOVER\config.plist 0:139 0:000 EFI\CLOVER\config.plist loaded: Success 0:154 0:015 Found theme directory: embedded 0:154 0:000 Found theme directory: random 0:158 0:003 Loading early settings 0:158 0:000 timeout set to 5 0:158 0:000 Custom boot CUSTOM_BOOT_DISABLED (0x0) 0:158 0:000 KextsToPatch: 2 requested 0:158 0:000 KextsToPatch 0: AppleUSBXHCIPCI (No Comment provided for this patch)Matched OSes: 10.11.x,10.12.x 0:158 0:000 Kext bin patch, data len: 8 0:158 0:000 KextsToPatch 1: IOAHCIBlockStorage (No Comment provided for this patch) Kext bin patch, data len: 11 0:158 0:000 Default theme: embedded 0:158 0:000 Hiding entries with string windows 0:158 0:000 Hiding entries with string BOOTX64.EFI 0:158 0:000 Hiding entries with string Recovery 0:158 0:000 LoadDrivers() start 0:168 0:010 Loading DataHubDxe-64.efi status=Success 0:174 0:005 Loading EmuVariableUefi-64.efi status=Success 0:184 0:010 EmuVariableUefi Initialize: VariableCommonInitialize = Success, orig services stored, install gEmuVariableControlProtocolGuid = Success 0:184 0:000 Loading FSInject-64.efi status=Success 0:184 0:000 Loading OsxAptioFixDrv-64.efi status=Success 0:192 0:008 Loading OsxFatBinaryDrv-64.efi status=Success 0:193 0:000 Loading PartitionDxe-64.efi status=Success 0:194 0:001 - driver needs connecting 0:194 0:000 Loading VBoxHfs-64.efi status=Success 0:194 0:000 - driver needs connecting 0:194 0:000 2 drivers needs connecting ... 0:194 0:000 PlatformDriverOverrideProtocol->GetDriver overriden 0:194 0:000 Partition driver loaded: CD disconnect Success 0:194 0:000 Searching for invalid DiskIo BY_DRIVER connects: not found, all ok 0:840 0:646 LoadDrivers() end 0:840 0:000 EmuVariable InstallEmulation: orig vars copied, emu.var.services installed, CreateEvent VirtualAddressChange = Success, CreateEvent ExitBootServices = Success, set Status=Success 0:846 0:005 SetScreenResolution: 1920x1080 - already set 0:846 0:000 Console modes reported: 4, available modes: 0:846 0:000 Mode 1: 80x25 (current mode) 0:846 0:000 Mode 2: 80x50 0:846 0:000 Mode 3: 100x31 0:846 0:000 Mode 4: 240x56 0:846 0:000 reinit: self device path=PciRoot(0x0)\Pci(0x1F,0x2)\Sata(0x2,0xFFFF,0x0)\HD(1,GPT,D878D2C4-6602-4290-A8E7-676563FEBE2E,0x28,0x64000) 0:885 0:039 ScanSPD() start 0:885 0:000 SMBus device : 8086 8D22 class=0C0500 status=Success 0:885 0:000 SMBus CmdReg: 0x1 0:885 0:000 Scanning SMBus [8086:8D22], mmio: 0xFBF3C004, ioport: 0x580, hostc: 0x1 0:885 0:000 Slots to scan [8]... 0:886 0:001 ScanSPD() end 0:887 0:000 Get Acpi Tables List from RSDT: 0:887 0:000 Found table: FACP A M I len=132 0:887 0:000 Found table: APIC A M I len=256 0:887 0:000 Found table: FPDT A M I len=68 0:887 0:000 Found table: FIDT A M I len=156 0:887 0:000 Found table: MCFG A M I len=60 0:887 0:000 Found table: ASF! HCG len=160 0:887 0:000 Found table: SSDT SataTabl len=877 0:887 0:000 Found table: UEFI A M I len=66 0:887 0:000 Found table: HPET A M I len=56 0:887 0:000 Found table: MSCT A M I len=144 0:887 0:000 Found table: SLIT A M I len=45 0:887 0:000 Found table: SRAT A M I len=4440 0:887 0:000 Found table: WDDT A M I len=64 0:887 0:000 Found table: SSDT PmMgt len=86589 0:887 0:000 Found table: BGRT A M I len=56 0:887 0:000 Calibrated TSC frequency =3300004470 =3300MHz 0:887 0:000 Loading main settings 0:887 0:000 USB FixOwnership: true 0:887 0:000 Dropping 3 tables 0:887 0:000 Drop table 0 signature="DMAR" (52414D44) 0:887 0:000 set table: 52414D44, 0 to drop: 0:887 0:000 Drop table 1 signature="SSDT" (54445353) table-id="Cpu0Ist" (0074734930757043) 0:887 0:000 set table: 54445353, 74734930757043 to drop: 0:887 0:000 Drop table 2 signature="SSDT" (54445353) table-id="CpuPm" (0000006D50757043) 0:887 0:000 set table: 54445353, 6D50757043 to drop: 0:887 0:000 Config set Fixes will override FixMask mask! 0:887 0:000 final mask=88408044 0:887 0:000 Config set EnableC6: + 0:887 0:000 Config set ChassisType=0x6 0:887 0:000 KextsToPatch: 2 requested 0:887 0:000 KextsToPatch 0: AppleUSBXHCIPCI (No Comment provided for this patch)Matched OSes: 10.11.x,10.12.x 0:887 0:000 Kext bin patch, data len: 8 0:887 0:000 KextsToPatch 1: IOAHCIBlockStorage (No Comment provided for this patch) Kext bin patch, data len: 11 0:893 0:006 found 20 volumes with blockIO 0:893 0:000 0. Volume: 0:893 0:000 PciRoot(0x0)\Pci(0x14,0x0)\USB(0x11,0x0) 0:894 0:000 USB volume 0:894 0:000 1. Volume: 0:894 0:000 PciRoot(0x0)\Pci(0x14,0x0)\USB(0x11,0x0)\HD(1,GPT,4D21D63F-9DD8-4A20-80EC-603BA274DE72,0x28,0x64000) 0:895 0:000 Result of bootcode detection: bootable unknown (legacy) 0:895 0:000 USB volume 0:895 0:000 2. Volume: 0:895 0:000 PciRoot(0x0)\Pci(0x14,0x0)\USB(0x11,0x0)\HD(2,GPT,A3B4ADB1-0C01-4697-B35F-47B893D76766,0x64028,0x3A1EC0C0) 0:895 0:000 USB volume 0:895 0:000 3. Volume: 0:895 0:000 PciRoot(0x0)\Pci(0x1F,0x2)\Sata(0x2,0xFFFF,0x0) 0:896 0:000 4. Volume: 0:896 0:000 PciRoot(0x0)\Pci(0x1F,0x2)\Sata(0x3,0xFFFF,0x0) 0:898 0:002 5. Volume: 0:898 0:000 PciRoot(0x0)\Pci(0x1F,0x2)\Sata(0x4,0xFFFF,0x0) 0:898 0:000 found optical drive 0:898 0:000 6. Volume: 0:898 0:000 PciRoot(0x0)\Pci(0x1F,0x2)\Sata(0x2,0xFFFF,0x0)\HD(1,GPT,D878D2C4-6602-4290-A8E7-676563FEBE2E,0x28,0x64000) 0:898 0:000 Result of bootcode detection: bootable unknown (legacy) 0:913 0:015 This is SelfVolume !! 0:913 0:000 7. Volume: 0:913 0:000 PciRoot(0x0)\Pci(0x1F,0x2)\Sata(0x2,0xFFFF,0x0)\HD(2,GPT,8EC443F3-A7E4-42FB-9BE7-0BF4E266F2A3,0x64028,0x9375940) 0:914 0:000 8. Volume: 0:914 0:000 PciRoot(0x0)\Pci(0x1F,0x2)\Sata(0x2,0xFFFF,0x0)\HD(3,GPT,80C9643B-59F2-428A-909B-8931125483BB,0x93D9968,0x135F20) 0:915 0:000 hiding this volume 0:915 0:000 9. Volume: 0:915 0:000 PciRoot(0x0)\Pci(0x1F,0x2)\Sata(0x3,0xFFFF,0x0)\HD(1,GPT,844E90D2-905C-4957-9BE3-34620A3B2133,0x28,0x64000) 0:915 0:000 Result of bootcode detection: bootable unknown (legacy) 0:915 0:000 10. Volume: 0:915 0:000 PciRoot(0x0)\Pci(0x1F,0x2)\Sata(0x3,0xFFFF,0x0)\HD(2,GPT,E2F4C234-8513-47C1-8B62-2A8ACBDDFBD4,0x64028,0xDDFAC40) 0:916 0:000 11. Volume: 0:916 0:000 PciRoot(0x0)\Pci(0x1F,0x2)\Sata(0x3,0xFFFF,0x0)\HD(3,GPT,E70433A2-8628-4F3D-A159-4031D3FA0A30,0xDE5EC68,0x135F20) 0:916 0:000 hiding this volume 0:916 0:000 12. Volume: 0:916 0:000 PciRoot(0x0)\Pci(0x11,0x4)\Sata(0x2,0xFFFF,0x0) 0:917 0:000 13. Volume: 0:917 0:000 PciRoot(0x0)\Pci(0x11,0x4)\Sata(0x3,0xFFFF,0x0) 0:919 0:002 14. Volume: 0:919 0:000 PciRoot(0x0)\Pci(0x11,0x4)\Sata(0x2,0xFFFF,0x0)\HD(1,GPT,B1650157-FE7D-492F-AC4C-7B333B79F801,0x28,0x64000) 0:920 0:000 Result of bootcode detection: bootable unknown (legacy) 0:920 0:000 15. Volume: 0:920 0:000 PciRoot(0x0)\Pci(0x11,0x4)\Sata(0x2,0xFFFF,0x0)\HD(2,GPT,9128246A-7393-40AC-BB96-75465F7DE11D,0x64028,0xA30723F8) 0:920 0:000 16. Volume: 0:920 0:000 PciRoot(0x0)\Pci(0x11,0x4)\Sata(0x2,0xFFFF,0x0)\HD(3,GPT,63C4321E-4CF1-4831-93BC-0B8AC34F5751,0xA3116420,0x45CB2468) 0:921 0:000 17. Volume: 0:921 0:000 PciRoot(0x0)\Pci(0x11,0x4)\Sata(0x3,0xFFFF,0x0)\HD(1,GPT,0A2A3BFE-C3AC-4090-A736-7453B3238CE2,0x28,0x64000) 0:922 0:000 Result of bootcode detection: bootable unknown (legacy) 0:922 0:000 18. Volume: 0:922 0:000 PciRoot(0x0)\Pci(0x11,0x4)\Sata(0x3,0xFFFF,0x0)\HD(2,GPT,F9EB2C88-4756-4B60-B231-6CDC92DABA9E,0x64028,0x1BD8A540) 0:922 0:000 19. Volume: 0:922 0:000 PciRoot(0x0)\Pci(0x11,0x4)\Sata(0x3,0xFFFF,0x0)\HD(3,GPT,69789CCA-F8B6-4C40-AE30-89A595B6863B,0x1BDEE568,0x135F20) 0:923 0:000 hiding this volume 0:994 0:071 Loading nvram.plist from Vol 'Sierra' - loaded, size=6071 1:010 0:015 PutNvramPlistToRtVars ... 1:010 0:000 Adding Key: Clover.BackupDirOnDestVol: Size = 3, Data: 59 65 73 1:010 0:000 Adding Key: Clover.KeepBackupLimit: Size = 2, Data: 31 30 1:010 0:000 Adding Key: Clover.LogEveryBoot: Size = 2, Data: 31 30 1:010 0:000 Adding Key: Clover.LogLineCount: Size = 3, Data: 31 30 30 1:010 0:000 Adding Key: Clover.MountEFI: Size = 3, Data: 59 65 73 1:010 0:000 Adding Key: Clover.Theme: Size = 9, Data: 43 72 69 73 70 79 4F 53 58 1:010 0:000 Skipping EmuVariableUefiPresent 1:010 0:000 Adding Key: LocationServicesEnabled: Size = 1, Data: 01 1:010 0:000 Skipping OsxAptioFixDrv-RelocBase 1:010 0:000 Adding Key: SystemAudioVolume: Size = 1, Data: 41 1:010 0:000 Adding Key: SystemAudioVolumeDB: Size = 1, Data: F0 1:010 0:000 Adding Key: bootercfg: Size = 2, Data: 28 00 1:010 0:000 Adding Key: csr-active-config: Size = 4, Data: 67 00 00 00 1:010 0:000 Adding Key: efi-apple-payload0: Size = 416, Data: 3C 61 72 72 61 79 3E 3C 64 69 63 74 3E 3C 6B 65 79 3E 49 4F 4D 61 74 63 68 3C 2F 6B 65 79 3E 3C 64 69 63 74 3E 3C 6B 65 79 3E 49 4F 50 72 6F 76 69 64 65 72 43 6C 61 73 73 3C 2F 6B 65 79 3E 3C 73 74 72 69 6E 67 3E 49 4F 4D 65 64 69 61 3C 2F 73 74 72 69 6E 67 3E 3C 6B 65 79 3E 49 4F 50 72 6F 70 65 72 74 79 4D 61 74 63 68 3C 2F 6B 65 79 3E 3C 64 69 63 74 3E 3C 6B 65 79 3E 55 55 49 44 3C 2F 6B 65 79 3E 3C 73 74 72 69 6E 67 3E 30 41 32 41 33 42 46 45 2D 43 33 41 43 2D 34 30 39 30 2D 41 37 33 36 2D 37 34 35 33 42 33 32 33 38 43 45 32 3C 2F 73 74 72 69 6E 67 3E 3C 2F 64 69 63 74 3E 3C 2F 64 69 63 74 3E 3C 6B 65 79 3E 42 4C 4C 61 73 74 42 53 44 4E 61 6D 65 3C 2F 6B 65 79 3E 3C 73 74 72 69 6E 67 3E 64 69 73 6B 30 73 31 3C 2F 73 74 72 69 6E 67 3E 3C 2F 64 69 63 74 3E 3C 64 69 63 74 3E 3C 6B 65 79 3E 49 4F 45 46 49 44 65 76 69 63 65 50 61 74 68 54 79 70 65 3C 2F 6B 65 79 3E 3C 73 74 72 69 6E 67 3E 4D 65 64 69 61 46 69 6C 65 50 61 74 68 3C 2F 73 74 72 69 6E 67 3E 3C 6B 65 79 3E 50 61 74 68 3C 2F 6B 65 79 3E 3C 73 74 72 69 6E 67 3E 5C 45 46 49 5C 41 50 50 4C 45 5C 55 50 44 41 54 45 52 53 5C 4D 55 4C 54 49 55 50 44 41 54 45 52 5C 53 6D 63 46 6C 61 73 68 65 72 2E 65 66 69 3C 2F 73 74 72 69 6E 67 3E 3C 2F 64 69 63 74 3E 3C 2F 61 72 72 61 79 3E 1:010 0:000 Adding Key: efi-apple-payload0-data: Size = 174, Data: 02 01 0C 00 D0 41 03 0A 00 00 00 00 01 01 06 00 04 11 03 12 0A 00 03 00 00 00 00 00 04 01 2A 00 01 00 00 00 28 00 00 00 00 00 00 00 00 40 06 00 00 00 00 00 FE 3B 2A 0A AC C3 90 40 A7 36 74 53 B3 23 8C E2 02 02 04 04 64 00 5C 00 45 00 46 00 49 00 5C 00 41 00 50 00 50 00 4C 00 45 00 5C 00 55 00 50 00 44 00 41 00 54 00 45 00 52 00 53 00 5C 00 4D 00 55 00 4C 00 54 00 49 00 55 00 50 00 44 00 41 00 54 00 45 00 52 00 5C 00 53 00 6D 00 63 00 46 00 6C 00 61 00 73 00 68 00 65 00 72 00 2E 00 65 00 66 00 69 00 00 00 7F FF 04 00 1:010 0:000 Adding Key: efi-apple-payload1: Size = 418, Data: 3C 61 72 72 61 79 3E 3C 64 69 63 74 3E 3C 6B 65 79 3E 49 4F 4D 61 74 63 68 3C 2F 6B 65 79 3E 3C 64 69 63 74 3E 3C 6B 65 79 3E 49 4F 50 72 6F 76 69 64 65 72 43 6C 61 73 73 3C 2F 6B 65 79 3E 3C 73 74 72 69 6E 67 3E 49 4F 4D 65 64 69 61 3C 2F 73 74 72 69 6E 67 3E 3C 6B 65 79 3E 49 4F 50 72 6F 70 65 72 74 79 4D 61 74 63 68 3C 2F 6B 65 79 3E 3C 64 69 63 74 3E 3C 6B 65 79 3E 55 55 49 44 3C 2F 6B 65 79 3E 3C 73 74 72 69 6E 67 3E 30 41 32 41 33 42 46 45 2D 43 33 41 43 2D 34 30 39 30 2D 41 37 33 36 2D 37 34 35 33 42 33 32 33 38 43 45 32 3C 2F 73 74 72 69 6E 67 3E 3C 2F 64 69 63 74 3E 3C 2F 64 69 63 74 3E 3C 6B 65 79 3E 42 4C 4C 61 73 74 42 53 44 4E 61 6D 65 3C 2F 6B 65 79 3E 3C 73 74 72 69 6E 67 3E 64 69 73 6B 30 73 31 3C 2F 73 74 72 69 6E 67 3E 3C 2F 64 69 63 74 3E 3C 64 69 63 74 3E 3C 6B 65 79 3E 49 4F 45 46 49 44 65 76 69 63 65 50 61 74 68 54 79 70 65 3C 2F 6B 65 79 3E 3C 73 74 72 69 6E 67 3E 4D 65 64 69 61 46 69 6C 65 50 61 74 68 3C 2F 73 74 72 69 6E 67 3E 3C 6B 65 79 3E 50 61 74 68 3C 2F 6B 65 79 3E 3C 73 74 72 69 6E 67 3E 5C 45 46 49 5C 41 50 50 4C 45 5C 55 50 44 41 54 45 52 53 5C 4D 55 4C 54 49 55 50 44 41 54 45 52 5C 66 6C 61 73 68 65 72 5F 62 61 73 65 2E 73 6D 63 3C 2F 73 74 72 69 6E 67 3E 3C 2F 64 69 63 74 3E 3C 2F 61 72 72 61 79 3E 1:010 0:000 Adding Key: efi-apple-payload1-data: Size = 178, Data: 02 01 0C 00 D0 41 03 0A 00 00 00 00 01 01 06 00 04 11 03 12 0A 00 03 00 00 00 00 00 04 01 2A 00 01 00 00 00 28 00 00 00 00 00 00 00 00 40 06 00 00 00 00 00 FE 3B 2A 0A AC C3 90 40 A7 36 74 53 B3 23 8C E2 02 02 04 04 68 00 5C 00 45 00 46 00 49 00 5C 00 41 00 50 00 50 00 4C 00 45 00 5C 00 55 00 50 00 44 00 41 00 54 00 45 00 52 00 53 00 5C 00 4D 00 55 00 4C 00 54 00 49 00 55 00 50 00 44 00 41 00 54 00 45 00 52 00 5C 00 66 00 6C 00 61 00 73 00 68 00 65 00 72 00 5F 00 62 00 61 00 73 00 65 00 2E 00 73 00 6D 00 63 00 00 00 7F FF 04 00 1:010 0:000 Adding Key: efi-apple-payload2: Size = 420, Data: 3C 61 72 72 61 79 3E 3C 64 69 63 74 3E 3C 6B 65 79 3E 49 4F 4D 61 74 63 68 3C 2F 6B 65 79 3E 3C 64 69 63 74 3E 3C 6B 65 79 3E 49 4F 50 72 6F 76 69 64 65 72 43 6C 61 73 73 3C 2F 6B 65 79 3E 3C 73 74 72 69 6E 67 3E 49 4F 4D 65 64 69 61 3C 2F 73 74 72 69 6E 67 3E 3C 6B 65 79 3E 49 4F 50 72 6F 70 65 72 74 79 4D 61 74 63 68 3C 2F 6B 65 79 3E 3C 64 69 63 74 3E 3C 6B 65 79 3E 55 55 49 44 3C 2F 6B 65 79 3E 3C 73 74 72 69 6E 67 3E 30 41 32 41 33 42 46 45 2D 43 33 41 43 2D 34 30 39 30 2D 41 37 33 36 2D 37 34 35 33 42 33 32 33 38 43 45 32 3C 2F 73 74 72 69 6E 67 3E 3C 2F 64 69 63 74 3E 3C 2F 64 69 63 74 3E 3C 6B 65 79 3E 42 4C 4C 61 73 74 42 53 44 4E 61 6D 65 3C 2F 6B 65 79 3E 3C 73 74 72 69 6E 67 3E 64 69 73 6B 30 73 31 3C 2F 73 74 72 69 6E 67 3E 3C 2F 64 69 63 74 3E 3C 64 69 63 74 3E 3C 6B 65 79 3E 49 4F 45 46 49 44 65 76 69 63 65 50 61 74 68 54 79 70 65 3C 2F 6B 65 79 3E 3C 73 74 72 69 6E 67 3E 4D 65 64 69 61 46 69 6C 65 50 61 74 68 3C 2F 73 74 72 69 6E 67 3E 3C 6B 65 79 3E 50 61 74 68 3C 2F 6B 65 79 3E 3C 73 74 72 69 6E 67 3E 5C 45 46 49 5C 41 50 50 4C 45 5C 55 50 44 41 54 45 52 53 5C 4D 55 4C 54 49 55 50 44 41 54 45 52 5C 66 6C 61 73 68 65 72 5F 75 70 64 61 74 65 2E 73 6D 63 3C 2F 73 74 72 69 6E 67 3E 3C 2F 64 69 63 74 3E 3C 2F 61 72 72 61 79 3E 1:010 0:000 Adding Key: efi-apple-payload2-data: Size = 182, Data: 02 01 0C 00 D0 41 03 0A 00 00 00 00 01 01 06 00 04 11 03 12 0A 00 03 00 00 00 00 00 04 01 2A 00 01 00 00 00 28 00 00 00 00 00 00 00 00 40 06 00 00 00 00 00 FE 3B 2A 0A AC C3 90 40 A7 36 74 53 B3 23 8C E2 02 02 04 04 6C 00 5C 00 45 00 46 00 49 00 5C 00 41 00 50 00 50 00 4C 00 45 00 5C 00 55 00 50 00 44 00 41 00 54 00 45 00 52 00 53 00 5C 00 4D 00 55 00 4C 00 54 00 49 00 55 00 50 00 44 00 41 00 54 00 45 00 52 00 5C 00 66 00 6C 00 61 00 73 00 68 00 65 00 72 00 5F 00 75 00 70 00 64 00 61 00 74 00 65 00 2E 00 73 00 6D 00 63 00 00 00 7F FF 04 00 1:010 0:000 Adding Key: efi-apple-payload3: Size = 426, Data: 3C 61 72 72 61 79 3E 3C 64 69 63 74 3E 3C 6B 65 79 3E 49 4F 4D 61 74 63 68 3C 2F 6B 65 79 3E 3C 64 69 63 74 3E 3C 6B 65 79 3E 49 4F 50 72 6F 76 69 64 65 72 43 6C 61 73 73 3C 2F 6B 65 79 3E 3C 73 74 72 69 6E 67 3E 49 4F 4D 65 64 69 61 3C 2F 73 74 72 69 6E 67 3E 3C 6B 65 79 3E 49 4F 50 72 6F 70 65 72 74 79 4D 61 74 63 68 3C 2F 6B 65 79 3E 3C 64 69 63 74 3E 3C 6B 65 79 3E 55 55 49 44 3C 2F 6B 65 79 3E 3C 73 74 72 69 6E 67 3E 30 41 32 41 33 42 46 45 2D 43 33 41 43 2D 34 30 39 30 2D 41 37 33 36 2D 37 34 35 33 42 33 32 33 38 43 45 32 3C 2F 73 74 72 69 6E 67 3E 3C 2F 64 69 63 74 3E 3C 2F 64 69 63 74 3E 3C 6B 65 79 3E 42 4C 4C 61 73 74 42 53 44 4E 61 6D 65 3C 2F 6B 65 79 3E 3C 73 74 72 69 6E 67 3E 64 69 73 6B 30 73 31 3C 2F 73 74 72 69 6E 67 3E 3C 2F 64 69 63 74 3E 3C 64 69 63 74 3E 3C 6B 65 79 3E 49 4F 45 46 49 44 65 76 69 63 65 50 61 74 68 54 79 70 65 3C 2F 6B 65 79 3E 3C 73 74 72 69 6E 67 3E 4D 65 64 69 61 46 69 6C 65 50 61 74 68 3C 2F 73 74 72 69 6E 67 3E 3C 6B 65 79 3E 50 61 74 68 3C 2F 6B 65 79 3E 3C 73 74 72 69 6E 67 3E 5C 45 46 49 5C 41 50 50 4C 45 5C 55 50 44 41 54 45 52 53 5C 4D 55 4C 54 49 55 50 44 41 54 45 52 5C 4D 61 63 2D 46 36 30 44 45 42 38 31 46 46 33 30 41 43 46 36 2E 65 70 6D 3C 2F 73 74 72 69 6E 67 3E 3C 2F 64 69 63 74 3E 3C 2F 61 72 72 61 79 3E 1:010 0:000 Adding Key: efi-apple-payload3-data: Size = 194, Data: 02 01 0C 00 D0 41 03 0A 00 00 00 00 01 01 06 00 04 11 03 12 0A 00 03 00 00 00 00 00 04 01 2A 00 01 00 00 00 28 00 00 00 00 00 00 00 00 40 06 00 00 00 00 00 FE 3B 2A 0A AC C3 90 40 A7 36 74 53 B3 23 8C E2 02 02 04 04 78 00 5C 00 45 00 46 00 49 00 5C 00 41 00 50 00 50 00 4C 00 45 00 5C 00 55 00 50 00 44 00 41 00 54 00 45 00 52 00 53 00 5C 00 4D 00 55 00 4C 00 54 00 49 00 55 00 50 00 44 00 41 00 54 00 45 00 52 00 5C 00 4D 00 61 00 63 00 2D 00 46 00 36 00 30 00 44 00 45 00 42 00 38 00 31 00 46 00 46 00 33 00 30 00 41 00 43 00 46 00 36 00 2E 00 65 00 70 00 6D 00 00 00 7F FF 04 00 1:010 0:000 Adding Key: fakesmc-key-CLKH-{clh: Size = 8, Data: 00 00 70 80 00 01 19 40 1:010 0:000 Adding Key: fakesmc-key-CLKT-ui32: Size = 4, Data: 00 00 B0 A9 1:010 0:000 Adding Key: fakesmc-key-MSDW-ui8: Size = 1, Data: 01 1:010 0:000 Adding Key: fakesmc-key-NATJ-ui8: Size = 1, Data: 00 1:010 0:000 Adding Key: fakesmc-key-NATi-ui16: Size = 2, Data: 00 00 1:010 0:000 Adding Key: fakesmc-key-NTOK-ui8: Size = 1, Data: 01 1:010 0:000 Adding Key: fmm-computer-name: Size = 18, Data: 46 6C 6A 61 67 64 E2 80 99 73 20 4D 61 63 20 50 72 6F 1:010 0:000 Adding Key: fmm-mobileme-token-FMM: Size = 615, Data: 62 70 6C 69 73 74 30 30 DA 01 02 03 04 05 06 07 08 09 0A 0B 0C 17 18 19 1A 1B 1C 1D 24 56 75 73 65 72 69 64 5F 10 13 64 61 74 61 63 6C 61 73 73 50 72 6F 70 65 72 74 69 65 73 59 61 75 74 68 54 6F 6B 65 6E 58 70 65 72 73 6F 6E 49 44 58 75 73 65 72 6E 61 6D 65 57 61 64 64 54 69 6D 65 5F 10 12 65 6E 61 62 6C 65 64 44 61 74 61 63 6C 61 73 73 65 73 54 67 75 69 64 58 75 73 65 72 49 6E 66 6F 5F 10 11 6F 73 55 73 65 72 44 69 73 61 70 70 65 61 72 65 64 11 01 F5 D1 0D 0E 5F 10 21 63 6F 6D 2E 61 70 70 6C 65 2E 44 61 74 61 63 6C 61 73 73 2E 44 65 76 69 63 65 4C 6F 63 61 74 6F 72 D4 0F 10 11 12 13 14 15 16 56 61 70 73 45 6E 76 58 68 6F 73 74 6E 61 6D 65 5D 61 75 74 68 4D 65 63 68 61 6E 69 73 6D 56 73 63 68 65 6D 65 5A 50 72 6F 64 75 63 74 69 6F 6E 5F 10 13 70 31 37 2D 66 6D 69 70 2E 69 63 6C 6F 75 64 2E 63 6F 6D 55 74 6F 6B 65 6E 55 68 74 74 70 73 5F 10 28 41 51 41 41 41 41 42 58 56 6E 48 7A 6A 32 37 4B 63 31 73 71 62 41 65 61 36 6B 50 37 73 47 6A 5A 76 64 57 58 76 66 51 7E 5A 31 30 30 30 38 38 36 37 36 30 5F 10 0F 68 6F 67 6E 6F 73 65 40 66 72 65 65 2E 66 72 23 41 D5 D5 9C 82 2B CC 8A A1 0D 5F 10 24 39 44 37 41 42 38 30 31 2D 45 43 45 39 2D 34 30 46 44 2D 41 38 39 42 2D 42 31 30 39 30 44 45 44 42 45 37 37 D3 1E 1F 20 21 22 23 5F 10 15 49 6E 55 73 65 4F 77 6E 65 72 44 69 73 70 6C 61 79 4E 61 6D 65 5F 10 13 49 6E 55 73 65 4F 77 6E 65 72 46 69 72 73 74 4E 61 6D 65 5F 10 12 49 6E 55 73 65 4F 77 6E 65 72 4C 61 73 74 4E 61 6D 65 5E 46 72 65 64 65 72 69 63 20 4C 6F 62 72 79 58 46 72 65 64 65 72 69 63 55 4C 6F 62 72 79 09 00 08 00 1D 00 24 00 3A 00 44 00 4D 00 56 00 5E 00 73 00 78 00 81 00 95 00 98 00 9B 00 BF 00 C8 00 CF 00 D8 00 E6 00 ED 00 F8 01 0E 01 14 01 1A 01 45 01 50 01 62 01 6B 01 6D 01 94 01 9B 01 B3 01 C9 01 DE 01 ED 01 F6 01 FC 00 00 00 00 00 00 02 01 00 00 00 00 00 00 00 25 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 FD 1:010 0:000 Adding Key: prev-lang:kbd: Size = 4, Data: 65 6E 3A 30 1:010 0:000 Adding Key: security-mode: String: Size = 4, Val = 'none' 1:010 0:000 using embedded theme 1:010 0:000 Choosing theme <null string> 1:010 0:000 Custom entries start 1:010 0:000 Custom entries finish 1:010 0:000 Scanning loaders... 1:010 0:000 0: 'Whole Disc Boot' no file system 1:010 0:000 1: 'EFI' 1:011 0:000 2: 'New ' 1:011 0:000 3: 'Whole Disc Boot' no file system 1:011 0:000 4: 'Whole Disc Boot' no file system 1:011 0:000 5: 'Whole Disc Boot' no file system 1:011 0:000 6: 'EFI' 1:012 0:000 7: 'Sierra' 1:046 0:034 AddLoaderEntry for Volume Name=Sierra 1:079 0:032 Check if volume Is Hibernated: 1:079 0:000 Check sleep image 'by signature': 1:122 0:042 read prefs \Library\Preferences\SystemConfiguration\com.apple.PowerManagement.plist status=Not Found 1:122 0:000 using default sleep image name = \private\var\vm\sleepimage 1:155 0:033 sleepimage not found -> Not Found 1:155 0:000 hibernated: no - sign 1:166 0:011 8: 'Recovery HD' hidden 1:166 0:000 9: 'EFI' 1:167 0:000 10: '10.11.6' 1:177 0:010 AddLoaderEntry for Volume Name=10.11.6 1:191 0:013 Check if volume Is Hibernated: 1:191 0:000 Check sleep image 'by signature': 1:198 0:007 read prefs \Library\Preferences\SystemConfiguration\com.apple.PowerManagement.plist status=Success 1:198 0:000 SleepImage name from pref: ImageVolume = '10.11.6', ImageName = '\private\var\vm\sleepimage' 1:206 0:007 sleepimage not found -> Not Found 1:206 0:000 hibernated: no - sign 1:213 0:007 11: 'Recovery HD' hidden 1:213 0:000 12: 'Whole Disc Boot' no file system 1:213 0:000 13: 'Whole Disc Boot' no file system 1:213 0:000 14: 'EFI' 1:213 0:000 15: 'Stockage' 1:215 0:001 16: 'Time Machine' 1:216 0:001 17: 'EFI' 1:217 0:000 18: 'El Capitan' 1:225 0:008 AddLoaderEntry for Volume Name=El Capitan 1:233 0:008 Check if volume Is Hibernated: 1:233 0:000 Check sleep image 'by signature': 1:242 0:008 read prefs \Library\Preferences\SystemConfiguration\com.apple.PowerManagement.plist status=Success 1:242 0:000 SleepImage name from pref: ImageVolume = 'El Capitan', ImageName = '\private\var\vm\sleepimage' 1:248 0:006 sleepimage not found -> Not Found 1:248 0:000 hibernated: no - sign 1:253 0:004 19: 'Recovery HD' hidden 1:253 0:000 Custom legacy start 1:253 0:000 Custom legacy end 1:253 0:000 Scanning legacy ... 1:253 0:000 0: 'Whole Disc Boot' (legacy) not legacy 1:253 0:000 1: 'EFI' (legacy) not legacy 1:253 0:000 2: 'New ' (legacy) not legacy 1:253 0:000 3: 'Whole Disc Boot' (legacy) not legacy 1:253 0:000 4: 'Whole Disc Boot' (legacy) not legacy 1:253 0:000 5: 'Whole Disc Boot' (legacy) not legacy 1:253 0:000 6: 'EFI' (legacy) not legacy 1:253 0:000 7: 'Sierra' (legacy) not legacy 1:253 0:000 8: 'Recovery HD' (legacy) not legacy 1:253 0:000 9: 'EFI' (legacy) not legacy 1:253 0:000 10: '10.11.6' (legacy) not legacy 1:253 0:000 11: 'Recovery HD' (legacy) not legacy 1:253 0:000 12: 'Whole Disc Boot' (legacy) not legacy 1:253 0:000 13: 'Whole Disc Boot' (legacy) not legacy 1:253 0:000 14: 'EFI' (legacy) not legacy 1:253 0:000 15: 'Stockage' (legacy) not legacy 1:253 0:000 16: 'Time Machine' (legacy) not legacy 1:253 0:000 17: 'EFI' (legacy) not legacy 1:253 0:000 18: 'El Capitan' (legacy) not legacy 1:253 0:000 19: 'Recovery HD' (legacy) not legacy 1:253 0:000 Custom tool start 1:253 0:000 Custom tool end 1:265 0:012 found tool \EFI\CLOVER\tools\Shell64U.efi 1:265 0:000 Checking EFI partition Volume 1 for Clover 1:265 0:000 Found Clover 1:265 0:000 EmuVariable UninstallEmulation: CloseEvent = Success, original var services restored 1:265 0:000 Checking EFI partition Volume 6 for Clover 1:265 0:000 Found Clover 1:265 0:000 EmuVariable UninstallEmulation: CloseEvent = Invalid Parameter, original var services restored 1:265 0:000 Checking EFI partition Volume 9 for Clover 1:265 0:000 Checking EFI partition Volume 14 for Clover 1:265 0:000 Checking EFI partition Volume 17 for Clover 1:266 0:000 Found Clover 1:266 0:000 EmuVariable UninstallEmulation: CloseEvent = Invalid Parameter, original var services restored 1:266 0:000 EmuVariable InstallEmulation: orig vars copied, emu.var.services installed, CreateEvent VirtualAddressChange = Success, CreateEvent ExitBootServices = Success, set Status=Success 1:272 0:005 GetEfiBootDeviceFromNvram: efi-boot-device-data not found 1:272 0:000 EfiBootVolume not found 1:272 0:000 found entry 2. 'Boot Mac OS X from El Capitan', Volume 'El Capitan', DevicePath 'PciRoot(0x0)\Pci(0x11,0x4)\Sata(0x3,0xFFFF,0x0)\HD(2,GPT,F9EB2C88-4756-4B60-B231-6CDC92DABA9E,0x64028,0x1BD8A540)\System\Library\CoreServices\boot.efi' 1:272 0:000 EmuVariable UninstallEmulation: CloseEvent = Success, original var services restored 1:272 0:000 DefaultIndex=2 and MainMenu.EntryCount=11 1:358 0:085 Found Mouse device: 1:360 0:001 GUI ready 5:268 3:908 Text <help> rendered 15:988 10:719 Boot option Boot0000 not found 15:988 0:000 StartLoader() start 15:988 0:000 Entry->Settings: <null string> 15:988 0:000 Finally: Bus=100000kHz CPU=3300MHz 15:988 0:000 Kernel and Kext Patches at AEF8377A: 15:988 0:000 Allowed: y 15:988 0:000 Debug: n 15:988 0:000 KernelCpu: n 15:988 0:000 Lapic: n 15:988 0:000 Haswell-E: n 15:988 0:000 AICPUPM: y 15:988 0:000 AppleRTC: n 15:988 0:000 KernelPm: n 15:988 0:000 FakeCPUID: 0x0 15:988 0:000 ATIController: null 15:988 0:000 ATIDataLength: 0 15:988 0:000 0 Kexts to load 15:988 0:000 2 Kexts to patch 15:988 0:000 KextPatch[0]: 8 bytes, AppleUSBXHCIPCI 15:988 0:000 KextPatch[1]: 11 bytes, IOAHCIBlockStorage 15:988 0:000 Loading boot.efi status=Success 16:180 0:191 GetOSVersion: : 10.12 16:180 0:000 EmuVariable InstallEmulation: orig vars copied, emu.var.services installed, CreateEvent VirtualAddressChange = Success, CreateEvent ExitBootServices = Success, set Status=Success 16:186 0:006 insert table 9 for dev 0:0 16:186 0:000 insert table 9 for dev 0:1 16:186 0:000 insert table 9 for dev 19:0 16:187 0:000 Trusting SMBIOS... 16:187 0:000 Detected alternating SMBIOS channel banks 16:187 0:000 Channels: 4 16:187 0:000 Interleave: 0 2 4 6 1 3 5 7 8 10 12 14 9 11 13 15 16 18 20 22 17 19 21 23 16:187 0:000 partNum unknown 16:187 0:000 SMBIOS Type 17 Index = 0 => 0 0: 16:187 0:000 DIMM1 2133MHz 4096MB 16:187 0:000 partNum unknown 16:187 0:000 SMBIOS Type 17 Index = 1 => 1 2: 16:187 0:000 DIMM2 2133MHz 4096MB 16:187 0:000 partNum unknown 16:187 0:000 SMBIOS Type 17 Index = 2 => 2 4: 16:187 0:000 DIMM3 2133MHz 4096MB 16:187 0:000 partNum unknown 16:187 0:000 SMBIOS Type 17 Index = 3 => 3 6: 16:187 0:000 DIMM4 2133MHz 4096MB 16:187 0:000 SMBIOS Type 17 Index = 4 => 4 1: 16:187 0:000 DIMM5 EMPTY 16:187 0:000 SMBIOS Type 17 Index = 5 => 5 3: 16:187 0:000 DIMM6 EMPTY 16:187 0:000 SMBIOS Type 17 Index = 6 => 6 5: 16:187 0:000 DIMM7 EMPTY 16:187 0:000 SMBIOS Type 17 Index = 7 => 7 7: 16:187 0:000 DIMM8 EMPTY 16:187 0:000 mTotalSystemMemory = 16384 16:187 0:000 NumberOfMemoryDevices = 8 16:187 0:000 Type20[0]->End = 0x3FFFFF, Type17[0] = 0x1000 16:187 0:000 Type20[1]->End = 0x7FFFFF, Type17[1] = 0x3000 16:187 0:000 Type20[2]->End = 0xBFFFFF, Type17[2] = 0x6000 16:187 0:000 Type20[3]->End = 0xFFFFFF, Type17[3] = 0xA000 16:187 0:000 Table 131 is present, CPUType=10 16:187 0:000 Change to: 507 16:187 0:000 RSDT 0xCB3BB028 16:187 0:000 FADT from RSDT: 0xCB3BB140 16:187 0:000 XSDT 0xCB3BB090 16:187 0:000 FADT from XSDT: 0xCB3F1140 16:187 0:000 Xsdt reallocation done 16:187 0:000 old FADT length=10C 16:187 0:000 Apply DsdtFixMask=0x88408044 new way 16:187 0:000 drop _DSM mask=0x0000 16:187 0:000 ========= Auto patch DSDT Starting ======== 16:187 0:000 VideoCard devID=0x679A1002 16:187 0:000 DisplayADR1[0] = 0x30000, DisplayADR2[0] = 0x0 16:187 0:000 USBADR[0] = 0x140000 and PCIe = 0xFFFE 16:237 0:050 USBADR[1] = 0x1C0004 and PCIe = 0x0 16:237 0:000 first CPU found at 2C0B offset 2C0F 16:237 0:000 device candidate at 2B72 16:237 0:000 device inserted in acpi_cpu_score SCK0 16:237 0:000 score candidate at 2986 16:237 0:000 score inserted in acpi_cpu_score _SB_SCK0 16:237 0:000 Found ACPI CPU: CP00 And CP01 And CP02 And CP03 And CP04 And CP05 And CP06 And CP07 And CP08 And CP09 And CP0A And CP0B And CP0C And CP0D And CP0E And CP0F And CP10 And CP11 And CP12 And CP13 And CP14 And CP15 And CP16 And CP17 And CP18 And CP19 And CP1A And CP1B And CP1C And CP1D And CP1E And CP1F within the score: _SB_SCK0 16:238 0:000 Found PCIROOTUID = 0 16:238 0:000 Start PIC Fix 16:238 0:000 PIC size=30 at CF1A 16:238 0:000 patch HDEF in DSDT 16:238 0:000 Start HDA Fix 16:238 0:000 found HDA device NAME(_ADR,0x001B0000) And Name is ALZA 16:238 0:000 Name ALZA present at 0x13198, renaming to HDEF 16:238 0:000 Start HDMI1111 Fix 16:239 0:000 found HDMI device [0x00030000:1] at 18384 and Name is H001 16:239 0:000 Name H001 present at 0x72A, renaming to HDAU 16:239 0:000 HDMIADR1=30000 HDMIADR2=1 16:239 0:000 with default properties 16:239 0:000 deleting device CRT_ 16:240 0:000 deleting device DVI_ 16:240 0:000 deleting device SPKR 16:241 0:000 deleting device ECP_ 16:241 0:000 deleting device LPT_ 16:242 0:000 deleting device FDC0 16:242 0:000 deleting device ECP1 16:243 0:000 deleting device LPT1 16:244 0:000 Start SHUTDOWN Fix len=35FFF 16:244 0:000 ========= Auto patch DSDT Finished ======== 16:244 0:000 Patch table: SSDT SataTabl 16:244 0:000 SSDT len = 0x36D 16:244 0:000 Patch table: SSDT PmMgt 16:244 0:000 SSDT len = 0x1523D 16:244 0:000 Drop tables from Xsdt, SIGN=XXXX TableID= Length=0 16:244 0:000 Xsdt has tables count=15 16:244 0:000 corrected XSDT length=156 16:244 0:000 CPUBase=0 and ApicCPUBase=0 ApicCPUNum=12 16:244 0:000 Maximum control=0x21 16:244 0:000 Turbo control=0x29 16:244 0:000 P-States: min 0xC, max 0x29 16:244 0:000 SSDT with CPU P-States generated successfully 16:244 0:000 SSDT with CPU C-States generated successfully 16:244 0:000 EdidDiscovered size=128 16:244 0:000 00 | 00 FF FF FF FF FF FF 00 26 CD 1D 56 01 01 01 01 16:244 0:000 16 | 06 17 01 03 81 33 1D 78 2A E2 95 A2 55 4F 9F 26 16:244 0:000 32 | 11 50 54 BF EF 80 B3 00 A9 40 95 00 81 80 95 0F 16:244 0:000 48 | 71 4F 01 01 01 01 02 3A 80 18 71 38 2D 40 58 2C 16:244 0:000 64 | 45 00 FE 1F 11 00 00 1E 00 00 00 FF 00 31 31 31 16:244 0:000 80 | 33 38 33 30 36 32 31 32 33 35 00 00 00 FD 00 37 16:244 0:000 96 | 4C 1E 51 11 00 0A 20 20 20 20 20 20 00 00 00 FC 16:244 0:000 112 | 00 50 4C 32 33 37 37 0A 20 20 20 20 20 20 01 77 16:244 0:000 ATI injection not set 16:244 0:000 RCBA access disabled; trying to enable 16:244 0:000 USB Controller [8086:8D31] :: PciRoot(0x0)\Pci(0x14,0x0) 16:245 0:000 LAN Controller [8086:15A1] :: PciRoot(0x0)\Pci(0x19,0x0) 16:245 0:000 HDA Controller [8086:8D20] :: PciRoot(0x0)\Pci(0x1B,0x0) => codec not detected 16:292 0:047 USB Controller [1B21:1142] :: PciRoot(0x0)\Pci(0x1C,0x4)\Pci(0x0,0x0) 16:292 0:000 stringlength = 1640 16:292 0:000 CurrentMode: Width=1920 Height=1080 16:292 0:000 Beginning FSInjection FSInjectionInstall ... - Our FSI_SIMPLE_FILE_SYSTEM_PROTOCOL installed on handle: C88EF198 FSInjectionInstall ... - Our FSI_SIMPLE_FILE_SYSTEM_PROTOCOL installed on handle: C88EF198 16:293 0:000 Preparing kexts injection for arch=x86_64 from EFI\CLOVER\kexts\Other 16:310 0:016 Extra kext: EFI\CLOVER\kexts\Other\FakeSMC.kext 16:350 0:040 Extra PlugIn kext: EFI\CLOVER\kexts\Other\FakeSMC.kext\Contents\PlugIns\FakeSMC_ACPISensors.kext 16:355 0:004 Extra PlugIn kext: EFI\CLOVER\kexts\Other\FakeSMC.kext\Contents\PlugIns\FakeSMC_CPUSensors.kext 16:356 0:001 Extra PlugIn kext: EFI\CLOVER\kexts\Other\FakeSMC.kext\Contents\PlugIns\FakeSMC_GPUSensors.kext 16:360 0:003 Extra PlugIn kext: EFI\CLOVER\kexts\Other\FakeSMC.kext\Contents\PlugIns\FakeSMC_LPCSensors.kext 16:367 0:006 Extra kext: EFI\CLOVER\kexts\Other\X99_Injector.kext 16:387 0:019 Removed efi-boot-device-data variable: Not Found 16:387 0:000 Custom boot screen not used because entry has unset use graphics 16:387 0:000 Closing log Fljagds-Mac-Pro:~ fljagd$ Edited July 7, 2016 by Fljagd Link to comment Share on other sites More sharing options...
Slice Posted July 7, 2016 Share Posted July 7, 2016 I don't think new Clover somehow differ from old one to make CPU PM. Did you see 0:107 Â 0:000 Â MSR 0xE2 is locked, PM patches will be turned on ? Link to comment Share on other sites More sharing options...
Fljagd Posted July 7, 2016 Share Posted July 7, 2016 I don't think new Clover somehow differ from old one to make CPU PM. Did you see 0:107 Â 0:000 Â MSR 0xE2 is locked, PM patches will be turned on ? I agree But it is surprising Link to comment Share on other sites More sharing options...
wern apfel Posted July 7, 2016 Share Posted July 7, 2016 @all Test, please, 3591 CLOVERX64.efi-3591.zip Kext injection is working @10.11, 10.12 KextsToPatch does not work. 0:100 0:100 MemLog inited, TSC freq: 3503452613 0:100 0:000 0:100 0:000 Now is 7.7.2016, 9:45:58 (GMT) 0:100 0:000 Starting Clover rev 3591 on American Megatrends EFI 0:100 0:000 Build with: [Args: ./ebuild.sh | Command: build -D USE_LOW_EBDA -p Clover/Clover.dsc -a X64 -b RELEASE -t XCODE5 -n 3 | OS: 10.7.5 | XCODE: 4.4.1] 0:100 0:000 SelfDevicePath=PciRoot(0x0)\Pci(0x1F,0x2)\Sata(0x0,0xFFFF,0x0)\HD(1,GPT,3A14C881-EAAC-49EE-9CDD-69C2F05B6E54,0x28,0x64000) @DB4C7198 0:100 0:000 SelfDirPath = \EFI\BOOT 0:100 0:000 Total Memory Slots Count = 4 0:100 0:000 Type 17 Index = 0 0:100 0:000 SmbiosTable.Type17->Speed = 1333MHz 0:100 0:000 SmbiosTable.Type17->Size = 4096MB 0:100 0:000 SmbiosTable.Type17->Bank/Device = BANK 3 ChannelB-DIMM1 0:100 0:000 SmbiosTable.Type17->Vendor = 029E 0:100 0:000 SmbiosTable.Type17->SerialNumber = 00000000 0:100 0:000 SmbiosTable.Type17->PartNumber = CMZ12GX3M3A1600C9 0:100 0:000 Type 17 Index = 1 0:100 0:000 SmbiosTable.Type17->Speed = 1333MHz 0:100 0:000 SmbiosTable.Type17->Size = 4096MB 0:100 0:000 SmbiosTable.Type17->Bank/Device = BANK 1 ChannelA-DIMM1 0:100 0:000 SmbiosTable.Type17->Vendor = 029E 0:100 0:000 SmbiosTable.Type17->SerialNumber = 00000000 0:100 0:000 SmbiosTable.Type17->PartNumber = CMZ12GX3M3A1600C9 0:100 0:000 Type 17 Index = 2 0:100 0:000 Ignoring insane frequency value 0MHz 0:100 0:000 SmbiosTable.Type17->Speed = 0MHz 0:100 0:000 SmbiosTable.Type17->Size = 0MB 0:100 0:000 SmbiosTable.Type17->Bank/Device = BANK 2 ChannelB-DIMM0 0:100 0:000 SmbiosTable.Type17->Vendor = <null string> 0:100 0:000 SmbiosTable.Type17->SerialNumber = <null string> 0:100 0:000 SmbiosTable.Type17->PartNumber = <null string> 0:100 0:000 Type 17 Index = 3 0:100 0:000 Ignoring insane frequency value 0MHz 0:100 0:000 SmbiosTable.Type17->Speed = 0MHz 0:100 0:000 SmbiosTable.Type17->Size = 0MB 0:100 0:000 SmbiosTable.Type17->Bank/Device = BANK 0 ChannelA-DIMM0 0:100 0:000 SmbiosTable.Type17->Vendor = <null string> 0:100 0:000 SmbiosTable.Type17->SerialNumber = <null string> 0:100 0:000 SmbiosTable.Type17->PartNumber = <null string> 0:100 0:000 Boot status=0 0:100 0:000 Clover revision: 3591 running on To be filled by O.E.M. 0:100 0:000 ... with board G1.Sniper M3-CF 0:100 0:000 CPU Vendor = 756E6547 Model=306A9 0:100 0:000 got cores from CPUID_1 = 0 0:100 0:000 The CPU supported turbo 0:100 0:000 BrandString = Intel(R) Core(TM) i7-3770K CPU @ 3.50GHz 0:100 0:000 MSR 0xE2 before patch 1E000403 0:100 0:000 MSR 0xE4 00010414 0:100 0:000 MSR 0xCE 00081010_F0012300 0:100 0:000 non-usable FLEX_RATIO = F0000 0:100 0:000 corrected FLEX_RATIO = E0000 0:100 0:000 MSR 0x1B0 00000000 0:100 0:000 FSBFrequency=105MHz DMIvalue=100000kHz 0:100 0:000 Corrected FSBFrequency=100MHz 0:100 0:000 Vendor/Model/Stepping: 0x756E6547/0x3A/0x9 0:100 0:000 Family/ExtFamily: 0x6/0x0 0:100 0:000 MaxDiv/MinDiv: 35.0/16 0:100 0:000 Turbo: 37/38/39/39 0:100 0:000 Features: 0xBFEBFBFF 0:100 0:000 Threads: 8 0:100 0:000 Cores: 4 0:100 0:000 FSB: 100 MHz 0:100 0:000 CPU: 3700 MHz 0:100 0:000 TSC: 3700 MHz 0:100 0:000 PIS: 400 MHz 0:100 0:000 PCI (00|00:1F.00) : 8086 1E44 class=060100 0:100 0:000 PCI (00|00:1F.02) : 8086 1E02 class=010601 0:100 0:000 PCI (00|00:1F.03) : 8086 1E22 class=0C0500 0:100 0:000 PCI (00|00:1F.06) : FFFF FFFF class=FFFFFF 0:100 0:000 PCI (00|00:1D.00) : 8086 1E26 class=0C0320 0:100 0:000 PCI (00|00:1C.00) : 8086 1E10 class=060400 0:100 0:000 PCI (00|01:00.00) : 14E4 43A0 class=028000 0:100 0:000 PCI (00|00:1B.00) : 8086 1E20 class=040300 0:100 0:000 PCI (00|00:1A.00) : 8086 1E2D class=0C0320 0:100 0:000 PCI (00|00:19.00) : 8086 1503 class=020000 0:100 0:000 LAN 0, Vendor=8086, MMIO=F7E00000 0:100 0:000 PCI (00|00:16.00) : 8086 1E3A class=078000 0:100 0:000 PCI (00|00:16.01) : FFFF FFFF class=FFFFFF 0:100 0:000 PCI (00|00:14.00) : 8086 1E31 class=0C0330 0:100 0:000 PCI (00|00:01.00) : 8086 0151 class=060400 0:100 0:000 PCI (00|02:00.00) : 1002 683D class=030000 0:100 0:000 Found Radeon model=AMD Radeon HD 7770 Series 0:100 0:000 PCI (00|02:00.01) : 1002 AAB0 class=040300 0:100 0:000 PCI (00|00:00.00) : 8086 0150 class=060000 0:100 0:000 Clover load options size = 4 bytes 0:100 0:000 Found Plist String = , parse XML in LoadOptions 0:100 0:000 Xml in load options is bad 0:106 0:006 Using OEM config.plist at path: EFI\CLOVER\OEM\G1.Sniper M3-CF\UEFI\config.plist 0:107 0:000 EFI\CLOVER\OEM\G1.Sniper M3-CF\UEFI\config.plist loaded: Success 0:109 0:002 Found theme directory: EMBEDDED 0:111 0:002 Found theme directory: RANDOM 0:112 0:001 Found theme directory: UHD 0:116 0:004 Found theme directory: bootcamp2.0 0:119 0:003 Found theme directory: BLACKBC 0:123 0:003 Loading early settings 0:123 0:000 timeout set to 2 0:123 0:000 Custom boot CUSTOM_BOOT_DISABLED (0x0) 0:123 0:000 KextsToPatch: 17 requested 0:123 0:000 KextsToPatch 0: AppleHDA Kext bin patch, data len: 4 0:123 0:000 :: patch disabled, skipped 0:123 0:000 KextsToPatch 2: AppleHDA Kext bin patch, data len: 4 0:123 0:000 KextsToPatch 3: AMDRadeonX4000 Info.plist patch, data len: 59 0:123 0:000 :: patch disabled, skipped 0:123 0:000 :: patch disabled, skipped 0:123 0:000 KextsToPatch 6: AppleTyMCEDriver Kext bin patch, data len: 24 0:123 0:000 KextsToPatch 7: AppleHDA Kext bin patch, data len: 4 0:123 0:000 KextsToPatch 8: AppleHDA (xml=zml) Kext bin patch, data len: 6 0:123 0:000 :: patch disabled, skipped 0:123 0:000 :: patch disabled, skipped 0:123 0:000 :: patch disabled, skipped 0:123 0:000 :: patch disabled, skipped 0:123 0:000 :: patch disabled, skipped 0:123 0:000 :: patch disabled, skipped 0:123 0:000 KextsToPatch 15: IOAHCIBlockStorage Kext bin patch, data len: 11 0:123 0:000 :: patch disabled, skipped 0:123 0:000 LoadDrivers() start 0:124 0:001 Loading FSInject-64.efi status=Success 0:126 0:001 Loading OsxAptioFixDrv-64.efi status=Success 0:128 0:001 Loading OsxFatBinaryDrv-64.efi status=Success 0:130 0:002 Loading VBoxHfs-64.efi status=Success 0:133 0:002 - driver needs connecting 0:133 0:000 1 drivers needs connecting ... 0:133 0:000 PlatformDriverOverrideProtocol not found. Installing ... Success 0:133 0:000 Searching for invalid DiskIo BY_DRIVER connects: not found, all ok 0:415 0:282 LoadDrivers() end 0:415 0:000 Dump SMC keys from NVRAM: 0:435 0:020 fakesmc-key-NATi-ui16:00 00 0:435 0:000 fakesmc-key-NATJ-ui8:00 0:436 0:000 fakesmc-key-NTOK-ui8:01 0:437 0:000 fakesmc-key-CLKT-ui32:00 00 A4 F3 0:438 0:000 fakesmc-key-CLKH-{clh:00 00 70 80 00 01 19 40 0:439 0:000 fakesmc-key-HE0N-ui8:10 0:440 0:000 fakesmc-key-MSDW-ui8:00 0:449 0:008 fakesmc-key-LsBA-ui8:90 0:450 0:000 fakesmc-key-HI0N-ui8:04 0:467 0:016 SetMaxResolution: found best mode 0: 3840x2160 0:467 0:000 - already set 0:467 0:000 Console modes reported: 4, available modes: 0:467 0:000 Mode 1: 80x25 (current mode) 0:467 0:000 Mode 2: 80x50 0:467 0:000 Mode 3: 100x31 0:467 0:000 Mode 4: 128x30 0:467 0:000 reinit: self device path=PciRoot(0x0)\Pci(0x1F,0x2)\Sata(0x0,0xFFFF,0x0)\HD(1,GPT,3A14C881-EAAC-49EE-9CDD-69C2F05B6E54,0x28,0x64000) 0:467 0:000 MAC address of LAN #0= 50:E5:49:EF:B4:43: 0:467 0:000 ScanSPD() start 0:467 0:000 SMBus device : 8086 1E22 class=0C0500 status=Success 0:467 0:000 SMBus CmdReg: 0x1 0:467 0:000 Scanning SMBus [8086:1E22], mmio: 0xF7E3A004, ioport: 0xF020, hostc: 0x1 0:467 0:000 Slots to scan [8]... 0:468 0:000 SPD[1]: Type 11 @0x51 0:486 0:018 XMP Profile1: 10*1/8ns 0:486 0:000 XMP Profile2: 10*1/8ns 0:486 0:000 Found module with XMP version 1.2 0:486 0:000 Using XMP Profile1 instead of standard frequency 1600MHz 0:486 0:000 DDR speed 1600MHz 0:486 0:000 Slot: 1 Type 24 4096MB 1600MHz Vendor=Corsair PartNo=CMZ12GX3M3A1600C9 SerialNo=0000000000000000 0:486 0:000 SPD[3]: Type 11 @0x53 0:505 0:018 XMP Profile1: 10*1/8ns 0:505 0:000 XMP Profile2: 10*1/8ns 0:505 0:000 Found module with XMP version 1.2 0:505 0:000 Using XMP Profile1 instead of standard frequency 1600MHz 0:505 0:000 DDR speed 1600MHz 0:505 0:000 Slot: 3 Type 24 4096MB 1600MHz Vendor=Corsair PartNo=CMZ12GX3M3A1600C9 SerialNo=0000000000000000 0:506 0:000 ScanSPD() end 0:524 0:018 Get Acpi Tables List from RSDT: 0:524 0:000 Found table: FACP A M I len=132 0:524 0:000 Found table: APIC A M I len=146 0:524 0:000 Found table: MCFG A M I len=60 0:524 0:000 Found table: HPET A M I len=56 0:524 0:000 Found table: SSDT SataTabl len=877 0:524 0:000 Found table: SSDT Cpu0Ist len=2474 0:524 0:000 Found table: SSDT CpuPm len=2706 0:524 0:000 Found table: VFCT A M I len=65668 0:524 0:000 Found table: BGRT A M I len=56 0:524 0:000 Found table: MATS A M I len=52 0:524 0:000 Calibrated TSC frequency =3503452613 =3503MHz 0:524 0:000 Loading main settings 0:524 0:000 Dropping 2 tables 0:524 0:000 Drop table 0 signature="SSDT" (54445353) table-id="CpuPm" (0000006D50757043) 0:524 0:000 set table: 54445353, 6D50757043 to drop: true 0:524 0:000 0:524 0:000 Drop table 1 signature="SSDT" (54445353) table-id="Cpu0Ist" (0074734930757043) 0:524 0:000 set table: 54445353, 74734930757043 to drop: true 0:524 0:000 0:524 0:000 Config set EnableC6: + 0:524 0:000 Config set EnableC2: + 0:524 0:000 Config set ChassisType=0x6 0:524 0:000 KextsToPatch: 17 requested 0:524 0:000 KextsToPatch 0: AppleHDA Kext bin patch, data len: 4 0:524 0:000 :: patch disabled, skipped 0:524 0:000 KextsToPatch 2: AppleHDA Kext bin patch, data len: 4 0:524 0:000 KextsToPatch 3: AMDRadeonX4000 Info.plist patch, data len: 59 0:524 0:000 :: patch disabled, skipped 0:524 0:000 :: patch disabled, skipped 0:524 0:000 KextsToPatch 6: AppleTyMCEDriver Kext bin patch, data len: 24 0:524 0:000 KextsToPatch 7: AppleHDA Kext bin patch, data len: 4 0:524 0:000 KextsToPatch 8: AppleHDA (xml=zml) Kext bin patch, data len: 6 0:524 0:000 :: patch disabled, skipped 0:524 0:000 :: patch disabled, skipped 0:524 0:000 :: patch disabled, skipped 0:524 0:000 :: patch disabled, skipped 0:524 0:000 :: patch disabled, skipped 0:524 0:000 :: patch disabled, skipped 0:524 0:000 KextsToPatch 15: IOAHCIBlockStorage Kext bin patch, data len: 11 0:524 0:000 :: patch disabled, skipped 0:528 0:003 found 15 volumes with blockIO 0:528 0:000 0. Volume: 0:528 0:000 PciRoot(0x0)\Pci(0x1F,0x2)\Sata(0x0,0xFFFF,0x0) 0:528 0:000 1. Volume: 0:528 0:000 PciRoot(0x0)\Pci(0x1F,0x2)\Sata(0x1,0xFFFF,0x0) 0:528 0:000 found optical drive 0:528 0:000 2. Volume: 0:528 0:000 PciRoot(0x0)\Pci(0x1F,0x2)\Sata(0x3,0xFFFF,0x0) 0:554 0:025 Result of bootcode detection: bootable unknown (legacy) 0:554 0:000 3. Volume: 0:554 0:000 PciRoot(0x0)\Pci(0x1F,0x2)\Sata(0x0,0xFFFF,0x0)\HD(1,GPT,3A14C881-EAAC-49EE-9CDD-69C2F05B6E54,0x28,0x64000) 0:554 0:000 Result of bootcode detection: bootable unknown (legacy) 0:561 0:007 This is SelfVolume !! 0:561 0:000 4. Volume: 0:561 0:000 PciRoot(0x0)\Pci(0x1F,0x2)\Sata(0x0,0xFFFF,0x0)\HD(2,GPT,FBF3A3BC-BF28-40BF-805F-77787D7A0D1E,0x64028,0x1D02BA00) 0:562 0:000 5. Volume: 0:562 0:000 PciRoot(0x0)\Pci(0x1F,0x2)\Sata(0x0,0xFFFF,0x0)\HD(3,GPT,D0DADD35-F02E-46C5-8715-5E65E14D47C4,0x1D08FA28,0x135F20) 0:563 0:000 6. Volume: 0:563 0:000 PciRoot(0x0)\Pci(0x1F,0x2)\Sata(0x3,0xFFFF,0x0)\HD(1,GPT,5C7C7078-0D8F-4750-80D9-E379D6BAF6F7,0x28,0x64000) 0:564 0:001 Result of bootcode detection: bootable Clover (clover) 0:617 0:053 7. Volume: 0:617 0:000 PciRoot(0x0)\Pci(0x1F,0x2)\Sata(0x3,0xFFFF,0x0)\HD(2,GPT,B506191A-9F4D-4621-B28B-83A770859168,0x64028,0xBAE6080) 0:622 0:005 8. Volume: 0:622 0:000 PciRoot(0x0)\Pci(0x1F,0x2)\Sata(0x3,0xFFFF,0x0)\HD(3,GPT,67D7115F-84A6-4E9E-AD65-08613D03E562,0xBB4A800,0x8000) 0:637 0:014 9. Volume: 0:637 0:000 PciRoot(0x0)\Pci(0x1F,0x2)\Sata(0x3,0xFFFF,0x0)\HD(4,GPT,51E5D82C-40DE-4751-8AB0-CD41512687C6,0xBB8A0A8,0x135F20) 0:644 0:006 10. Volume: 0:644 0:000 PciRoot(0x0)\Pci(0x1F,0x2)\Sata(0x3,0xFFFF,0x0)\HD(5,GPT,9B0D0991-4A5B-46A6-8DB9-CBACBB82E9D5,0xBCBFFC8,0xBAD0D48) 0:655 0:011 11. Volume: 0:655 0:000 PciRoot(0x0)\Pci(0x1F,0x2)\Sata(0x3,0xFFFF,0x0)\HD(6,GPT,1E737380-FC0E-45B9-86D2-C5D680815707,0x177D0D10,0xBA96B08) 0:655 0:000 12. Volume: 0:655 0:000 PciRoot(0x0)\Pci(0x1F,0x2)\Sata(0x3,0xFFFF,0x0)\HD(7,GPT,CFA16461-3143-4FA3-967E-21A960F3F243,0x232A7818,0x894CFE8) 0:656 0:000 Result of bootcode detection: bootable Windows (vista,win) 0:656 0:000 13. Volume: 0:656 0:000 PciRoot(0x0)\Pci(0x1F,0x2)\Sata(0x3,0xFFFF,0x0)\HD(8,GPT,4F596954-0914-47D3-B829-AFBDE0BACDA2,0x2BC34800,0xDF67800) 0:656 0:000 14. Volume: 0:656 0:000 PciRoot(0x0)\Pci(0x1F,0x2)\Sata(0x3,0xFFFF,0x0)\HD(9,GPT,92CE6194-0F47-4A54-817F-8AC596357709,0x39B9C000,0x7E9800) 0:660 0:003 Using theme 'UHD' (EFI\CLOVER\themes\UHD) 0:660 0:000 theme UHD defined in NVRAM found and theme.plist parsed 0:669 0:009 Choosing theme UHD 0:670 0:000 found boot-args in NVRAM:, size=1 0:670 0:000 Custom entries start 0:670 0:000 Custom entries finish 0:670 0:000 Scanning loaders... 0:670 0:000 0: 'Whole Disc Boot' no file system 0:670 0:000 1: 'Whole Disc Boot' no file system 0:670 0:000 2: 'Whole Disc Boot' no file system 0:670 0:000 3: 'EFI' 0:681 0:011 4: 'OS X El Capitan' 0:689 0:007 AddLoaderEntry for Volume Name=OS X El Capitan 0:692 0:002 Check if volume Is Hibernated: 0:692 0:000 Check sleep image 'by signature': 0:699 0:006 read prefs \Library\Preferences\SystemConfiguration\com.apple.PowerManagement.plist status=Success 0:699 0:000 SleepImage name from pref: ImageVolume = 'OS X El Capitan', ImageName = '\private\var\vm\sleepimage' 0:706 0:007 Reading first 512 bytes of sleepimage ... 0:707 0:000 OurBlockIoRead: Lba=5064028, Offset=A0C805000 (BlockSize=512) 0:707 0:000 sig lion: 0 0:707 0:000 sig snow: 0 0:707 0:000 no valid sleep image offset was found 0:707 0:000 Reading completed -> Success 0:707 0:000 sleepimage offset could not be acquired 0:707 0:000 hibernated: no - sign 0:712 0:005 5: 'Recovery HD' 0:714 0:001 AddLoaderEntry for Volume Name=Recovery HD 0:718 0:004 6: 'EFI' 0:765 0:047 AddLoaderEntry for Volume Name=EFI 0:776 0:011 AddLoaderEntry for Volume Name=EFI 1:715 0:938 7: 'Mac OSX' 1:771 0:056 AddLoaderEntry for Volume Name=Mac OSX 1:791 0:019 Check if volume Is Hibernated: 1:791 0:000 Check sleep image 'by signature': 1:837 0:046 read prefs \Library\Preferences\SystemConfiguration\com.apple.PowerManagement.plist status=Success 1:837 0:000 SleepImage name from pref: ImageVolume = 'Mac OSX', ImageName = '\private\var\vm\sleepimage' 1:864 0:027 Reading first 512 bytes of sleepimage ... 1:876 0:012 OurBlockIoRead: Lba=5E0A770, Offset=BC14EE000 (BlockSize=512) 1:876 0:000 sig lion: 5BF916BA 1:876 0:000 sig snow: DC7227E9 1:876 0:000 no valid sleep image offset was found 1:876 0:000 Reading completed -> Success 1:876 0:000 sleepimage offset could not be acquired 1:876 0:000 hibernated: no - sign 1:891 0:014 8: 'Legacy HD3' no file system 1:891 0:000 9: 'Recovery HD' 1:908 0:017 AddLoaderEntry for Volume Name=Recovery HD 1:917 0:008 10: 'macOS 10.12' 1:980 0:062 AddLoaderEntry for Volume Name=macOS 10.12 2:016 0:036 Check if volume Is Hibernated: 2:016 0:000 Check sleep image 'by signature': 2:043 0:027 read prefs \Library\Preferences\SystemConfiguration\com.apple.PowerManagement.plist status=Not Found 2:043 0:000 using default sleep image name = \private\var\vm\sleepimage 2:081 0:037 Reading first 512 bytes of sleepimage ... 2:090 0:009 OurBlockIoRead: Lba=D0BFF30, Offset=1A17FE6000 (BlockSize=512) 2:090 0:000 sig lion: 0 2:090 0:000 sig snow: 0 2:090 0:000 no valid sleep image offset was found 2:090 0:000 Reading completed -> Success 2:090 0:000 sleepimage offset could not be acquired 2:090 0:000 hibernated: no - sign 2:108 0:017 11: 'macOSSierraInstall' 2:159 0:051 AddLoaderEntry for Volume Name=macOSSierraInstall 2:173 0:014 Check if volume Is Hibernated: 2:173 0:000 Check sleep image 'by signature': 2:206 0:033 read prefs \Library\Preferences\SystemConfiguration\com.apple.PowerManagement.plist status=Not Found 2:206 0:000 using default sleep image name = \private\var\vm\sleepimage 2:230 0:023 sleepimage not found -> Not Found 2:230 0:000 hibernated: no - sign 2:233 0:003 12: 'Legacy HD7' no file system 2:233 0:000 13: 'Legacy HD8' no file system 2:233 0:000 14: 'Legacy HD9' no file system 2:233 0:000 Custom legacy start 2:233 0:000 Custom legacy end 2:233 0:000 Custom tool start 2:233 0:000 Custom tool end 2:236 0:002 GetEfiBootDeviceFromNvram: efi-boot-device-data not found 2:236 0:000 EfiBootVolume not found 2:236 0:000 found entry 0. 'Boot Mac OS X from OS X El Capitan', Volume 'OS X El Capitan', DevicePath 'PciRoot(0x0)\Pci(0x1F,0x2)\Sata(0x0,0xFFFF,0x0)\HD(2,GPT,FBF3A3BC-BF28-40BF-805F-77787D7A0D1E,0x64028,0x1D02BA00)\System\Library\CoreServices\boot.efi' 2:236 0:000 DefaultIndex=0 and MainMenu.EntryCount=12 2:978 0:742 GUI ready 27:502 24:523 Boot option Boot0000 not found 27:502 0:000 StartLoader() start 27:502 0:000 Entry->Settings: <null string> 27:502 0:000 Finally: Bus=100098kHz CPU=3503MHz 27:502 0:000 Kernel and Kext Patches at D97FE77A: 27:502 0:000 Allowed: y 27:502 0:000 Debug: n 27:502 0:000 KernelCpu: n 27:502 0:000 Lapic: n 27:502 0:000 Haswell-E: n 27:502 0:000 AICPUPM: y 27:502 0:000 AppleRTC: y 27:502 0:000 KernelPm: y 27:502 0:000 FakeCPUID: 0x0 27:502 0:000 ATIController: null 27:502 0:000 ATIDataLength: 0 27:502 0:000 0 Kexts to load 27:502 0:000 7 Kexts to patch 27:502 0:000 KextPatch[0]: 4 bytes, AppleHDA 27:502 0:000 KextPatch[1]: 4 bytes, AppleHDA 27:502 0:000 KextPatchPlist[2]: 59 bytes, AMDRadeonX4000 27:502 0:000 KextPatch[3]: 24 bytes, AppleTyMCEDriver 27:502 0:000 KextPatch[4]: 4 bytes, AppleHDA 27:502 0:000 KextPatch[5]: 6 bytes, AppleHDA 27:502 0:000 KextPatch[6]: 11 bytes, IOAHCIBlockStorage 27:502 0:000 Loading boot.efi status=Success 28:066 0:564 GetOSVersion: : 10.12 28:066 0:000 insert table 9 for dev 0:0 28:066 0:000 insert table 9 for dev 0:1 28:066 0:000 insert table 9 for dev 19:0 28:066 0:000 insert table 9 for dev 0:0 28:067 0:000 Channels: 2 28:067 0:000 Interleave: 0 2 1 3 4 6 5 7 8 10 9 11 12 14 13 15 16 18 17 19 20 22 21 23 28:067 0:000 SMBIOS Type 17 Index = 0 => 0 0: 28:067 0:000 DIMM1 EMPTY 28:067 0:000 SMBIOS Type 17 Index = 1 => 2 2: 28:067 0:000 DIMM2 EMPTY 28:067 0:000 SMBIOS Type 17 Index = 2 => 1 1: 28:067 0:000 DIMM3 1600MHz 4096MB 28:067 0:000 SMBIOS Type 17 Index = 3 => 3 3: 28:067 0:000 DIMM4 1600MHz 4096MB 28:067 0:000 mTotalSystemMemory = 8192 28:067 0:000 NumberOfMemoryDevices = 4 28:067 0:000 Type20[0]->End = 0x7FFFFF, Type17[3] = 0x2000 28:067 0:000 Type20[1]->End = 0x3FFFFF, Type17[2] = 0x3000 28:067 0:000 Table 131 is present, CPUType=10 28:067 0:000 Change to: 704 28:067 0:000 RSDT 0xDE1FD028 28:067 0:000 FADT from RSDT: 0xDE1FD100 28:067 0:000 XSDT 0xDE1FD078 28:067 0:000 FADT from XSDT: 0xDE206D00 28:067 0:000 Xsdt reallocation done 28:067 0:000 old FADT length=F4 28:067 0:000 DSDT found in Clover volume OEM folder: EFI\CLOVER\OEM\G1.Sniper M3-CF\UEFI\ACPI\patched\DSDT.aml 28:069 0:002 Apply DsdtFixMask=0x00000000 old way 28:069 0:000 drop _DSM mask=0x0000 28:069 0:000 ========= Auto patch DSDT Starting ======== 28:069 0:000 USBADR[0] = 0x1D0000 and PCIe = 0xFFFE 28:069 0:000 Found Airport BCM at 0x1C0000, 0x0 28:199 0:130 USBADR[1] = 0x1A0000 and PCIe = 0xFFFE 28:199 0:000 USBADR[2] = 0x140000 and PCIe = 0xFFFE 28:199 0:000 VideoCard devID=0x683D1002 28:199 0:000 DisplayADR1[0] = 0x10000, DisplayADR2[0] = 0x0 28:199 0:000 first CPU found at 7057 offset 705A 28:199 0:000 score candidate at 7053 28:199 0:000 score inserted in acpi_cpu_score _PR_ 28:199 0:000 Found ACPI CPU: CPU0 And CPU1 And CPU2 And CPU3 And CPU4 And CPU5 And CPU6 And CPU7 within the score: _PR_ 28:199 0:000 Found PCIROOTUID = 0 28:199 0:000 ========= Auto patch DSDT Finished ======== 28:199 0:000 Drop tables from Xsdt, SIGN=SSDT TableID=CpuPm Length=2706 28:199 0:000 Xsdt has tables count=10 28:199 0:000 Table: SSDT CpuPm 2706 dropped 28:199 0:000 corrected XSDT length=108 28:199 0:000 Drop tables from Xsdt, SIGN=SSDT TableID=Cpu0Ist Length=2474 28:199 0:000 Xsdt has tables count=9 28:199 0:000 Table: SSDT Cpu0Ist 2474 dropped 28:199 0:000 corrected XSDT length=100 28:199 0:000 Patch table: SSDT SataTabl 28:199 0:000 SSDT len = 0x36D 28:199 0:000 Drop tables from Xsdt, SIGN=XXXX TableID= Length=0 28:199 0:000 Xsdt has tables count=8 28:199 0:000 corrected XSDT length=100 28:199 0:000 Start: Processing Patched AML(s): Unsorted 28:199 0:000 Inserting SSDT.AML from EFI\CLOVER\OEM\G1.Sniper M3-CF\UEFI\ACPI\patched ... Success 28:202 0:002 Inserting SSDT-1.AML from EFI\CLOVER\OEM\G1.Sniper M3-CF\UEFI\ACPI\patched ... Success 28:203 0:001 End: Processing Patched AML(s) 28:203 0:000 CPUBase=0 and ApicCPUBase=1 ApicCPUNum=8 28:203 0:000 EdidDiscovered size=128 28:203 0:000 00 | 00 FF FF FF FF FF FF 00 10 AC BE A0 4C 4B 45 30 28:203 0:000 16 | 02 19 01 04 B5 35 1E 78 3A E2 45 A8 55 4D A3 26 28:203 0:000 32 | 0B 50 54 A5 4B 00 71 4F 81 80 A9 C0 A9 40 D1 C0 28:203 0:000 48 | E1 00 D1 00 01 01 4D D0 00 A0 F0 70 3E 80 3E 30 28:203 0:000 64 | 35 00 0F 28 21 00 00 1A 00 00 00 FF 00 50 32 50 28:203 0:000 80 | 43 32 35 31 35 30 45 4B 4C 0A 00 00 00 FC 00 44 28:203 0:000 96 | 45 4C 4C 20 50 32 34 31 35 51 0A 20 00 00 00 FD 28:203 0:000 112 | 00 1D 4C 1E 8C 36 00 0A 20 20 20 20 20 20 01 09 28:203 0:000 RCBA access disabled; trying to enable 28:203 0:000 HDA Controller [8086:1E20] :: PciRoot(0x0)\Pci(0x1B,0x0) => codec not detected 28:333 0:130 LAN Controller [8086:1503] :: PciRoot(0x0)\Pci(0x19,0x0) 28:334 0:000 ATI injection not set 28:334 0:000 stringlength = 476 28:334 0:000 CurrentMode: Width=3840 Height=2160 28:334 0:000 Beginning FSInjection FSInjectionInstall ... - Our FSI_SIMPLE_FILE_SYSTEM_PROTOCOL installed on handle: DB368C18 FSInjectionInstall ... - Our FSI_SIMPLE_FILE_SYSTEM_PROTOCOL installed on handle: DB368C18 28:337 0:003 ** Warning: Your MLB is not suitable for iMessage(must be 17 chars long) ! 28:349 0:012 Preparing kexts injection for arch=x86_64 from EFI\CLOVER\OEM\G1.Sniper M3-CF\UEFI\kexts\Other 28:350 0:001 Preparing kexts injection for arch=x86_64 from EFI\CLOVER\OEM\G1.Sniper M3-CF\UEFI\kexts\10.12 28:354 0:003 Extra kext: EFI\CLOVER\OEM\G1.Sniper M3-CF\UEFI\kexts\10.12\FakeSMC.kext 28:360 0:006 Extra kext: EFI\CLOVER\OEM\G1.Sniper M3-CF\UEFI\kexts\10.12\IntelCPUMonitor.kext 28:364 0:003 Extra kext: EFI\CLOVER\OEM\G1.Sniper M3-CF\UEFI\kexts\10.12\ITEIT87x.kext 28:369 0:005 Extra kext: EFI\CLOVER\OEM\G1.Sniper M3-CF\UEFI\kexts\10.12\RadeonMonitor.kext 28:374 0:005 Removed efi-boot-device-data variable: Not Found 28:374 0:000 Custom boot screen not used because entry has unset use graphics 28:374 0:000 Closing log Link to comment Share on other sites More sharing options...
Recommended Posts