Index: trunk/i386/libsaio/fake_efi.c =================================================================== --- trunk/i386/libsaio/fake_efi.c (revision 2917) +++ trunk/i386/libsaio/fake_efi.c (revision 2918) @@ -466,6 +466,7 @@ static const char SYSTEM_TYPE_PROP[] = "system-type"; static const char MODEL_PROP[] = "Model"; static const char BOARDID_PROP[] = "board-id"; +static const char DEV_COLORS[] = "device-colors"; static const char DEV_PATH_SUP[] = "DevicePathsSupported"; static const char START_POWER_EV[] = "StartupPowerEvents"; static const char MACHINE_SIG_PROP[] = "machine-signature"; @@ -629,6 +630,8 @@ DT__AddProperty(efiPlatformNode, START_POWER_EV, sizeof(STARTUP_POWER_EVENTS), (EFI_UINT8 *) &STARTUP_POWER_EVENTS); + DT__AddProperty(efiPlatformNode, DEV_COLORS, sizeof(DEV_COLORS), (EFI_UINT8 *) &DEV_COLORS); + DT__AddProperty(efiPlatformNode, DEV_PATH_SUP, sizeof(DEVICE_PATHS_SUPPORTED), (EFI_UINT8 *) &DEVICE_PATHS_SUPPORTED); DT__AddProperty(efiPlatformNode, SYSTEM_ID_PROP, UUID_LEN, (EFI_UINT32 *)Platform.UUID); Index: trunk/i386/boot2/drivers.c =================================================================== --- trunk/i386/boot2/drivers.c (revision 2917) +++ trunk/i386/boot2/drivers.c (revision 2918) @@ -836,6 +836,7 @@ long pos = 0; TagPtr moduleDict; TagPtr required; + TagPtr identifier; ModulePtr tmpModule; while (1) @@ -868,8 +869,17 @@ if ( (required == 0) || (required->type != kTagTypeString) || !strncmp(required->string, "Safe Boot", sizeof("Safe Boot"))) { - XMLFreeTag(moduleDict); - return -2; + identifier = XMLGetProperty(moduleDict, "CFBundleIdentifier"); + + if (strcmp(identifier->string, "com.apple.driver.AppleSMC") == 0) + { +// verbose("\tForced load of: AppleSMC.kext"); + } + else + { + XMLFreeTag(moduleDict); + return -2; + } } tmpModule = malloc(sizeof(Module)); @@ -1243,6 +1253,7 @@ // High Sierra case 0xA0D0000: gDarwinMajor = 17; gDarwinMinor = 0; gDarwinRev = 0; break; // 10.13 case 0xA0D0100: gDarwinMajor = 17; gDarwinMinor = 1; gDarwinRev = 0; break; // 10.13.1 + // Mojave // default = last known kernel default: gDarwinMajor = 17; gDarwinMinor = 1; gDarwinRev = 0; break; // 10.13.1; Index: trunk/i386/boot2/boot.c =================================================================== --- trunk/i386/boot2/boot.c (revision 2917) +++ trunk/i386/boot2/boot.c (revision 2918) @@ -1192,8 +1192,10 @@ // =============================================================================== - bootArgs->csrCapabilities = CSR_VALID_FLAGS; + bootArgs->csrCapabilities = CSR_VALID_CAPABILITIES; // CSR_VALID_FLAGS bootArgs->boot_SMC_plimit = 0; + bootArgs->bootProgressMeterStart = 0; + bootArgs->bootProgressMeterEnd = 0; } } Index: branches/ErmaC/Enoch/i386/libsaio/fake_efi.c =================================================================== --- branches/ErmaC/Enoch/i386/libsaio/fake_efi.c (revision 2917) +++ branches/ErmaC/Enoch/i386/libsaio/fake_efi.c (revision 2918) @@ -472,6 +472,7 @@ static const char SYSTEM_TYPE_PROP[] = "system-type"; static const char MODEL_PROP[] = "Model"; static const char BOARDID_PROP[] = "board-id"; +static const char DEV_COLORS[] = "device-colors"; static const char DEV_PATH_SUP[] = "DevicePathsSupported"; static const char START_POWER_EV[] = "StartupPowerEvents"; static const char MACHINE_SIG_PROP[] = "machine-signature"; @@ -635,6 +636,8 @@ DT__AddProperty(efiPlatformNode, START_POWER_EV, sizeof(STARTUP_POWER_EVENTS), (EFI_UINT8 *) &STARTUP_POWER_EVENTS); + DT__AddProperty(efiPlatformNode, DEV_COLORS, sizeof(DEV_COLORS), (EFI_UINT8 *) &DEV_COLORS); + DT__AddProperty(efiPlatformNode, DEV_PATH_SUP, sizeof(DEVICE_PATHS_SUPPORTED), (EFI_UINT8 *) &DEVICE_PATHS_SUPPORTED); DT__AddProperty(efiPlatformNode, SYSTEM_ID_PROP, UUID_LEN, (EFI_UINT32 *)Platform.UUID); @@ -834,6 +837,11 @@ verbose("Adding booter spec to the Platform Expert \n"); // booter-build-time (Fri Apr 14 16:21:16 PDT 2017) 10.12.5 + //static EFI_UINT8 const booterBuildTime[] = + //{ + // 0x46, 0x72, 0x69, 0x20, 0x41, 0x70, 0x72, 0x20, 0x31, 0x34, 0x20, 0x31, 0x36, 0x3A, 0x32, 0x31, 0x3A, 0x31, 0x36, 0x20, 0x50, 0x44, 0x54, 0x20, 0x32, 0x30, 0x31, 0x37, 0x00 + //}; + //DT__AddProperty(chosenNode, "booter-build-time", sizeof(booterBuildTime), (EFI_UINT8*) &booterBuildTime); DT__AddProperty(chosenNode, "booter-build-time", sizeof(I386BOOT_BUILDDATE), I386BOOT_BUILDDATE); // booter-name @@ -844,6 +852,11 @@ DT__AddProperty(chosenNode, "booter-name", sizeof(booterName), (EFI_UINT8*) &booterName); // booter-version (version:324.50.13) 10.12.5 + //static EFI_UINT8 const booterVersion[] = + //{ + // 0x76, 0x65, 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x3A, 0x33, 0x32, 0x34, 0x2E, 0x35, 0x30, 0x2E, 0x31, 0x33, 0x00 + //}; + //DT__AddProperty(chosenNode, "booter-version", sizeof(booterVersion), (EFI_UINT8*) &booterVersion); DT__AddProperty(chosenNode, "booter-version", sizeof(I386BOOT_CHAMELEONREVISION), I386BOOT_CHAMELEONREVISION); } } Index: branches/ErmaC/Enoch/i386/boot2/drivers.c =================================================================== --- branches/ErmaC/Enoch/i386/boot2/drivers.c (revision 2917) +++ branches/ErmaC/Enoch/i386/boot2/drivers.c (revision 2918) @@ -1216,6 +1216,7 @@ long pos = 0; TagPtr moduleDict; TagPtr required; + TagPtr identifier; ModulePtr tmpModule; while (1) @@ -1251,8 +1252,17 @@ { if ( (required == 0) || (required->type != kTagTypeString) || !strncmp(required->string, "Safe Boot", sizeof("Safe Boot"))) { - XMLFreeTag(moduleDict); - return -2; + identifier = XMLGetProperty(moduleDict, "CFBundleIdentifier"); + + if (strcmp(identifier->string, "com.apple.driver.AppleSMC") == 0) + { +// verbose("\tForced load of: AppleSMC.kext"); + } + else + { + XMLFreeTag(moduleDict); + return -2; + } } } @@ -1627,6 +1637,7 @@ // High Sierra case 0xA0D0000: gDarwinMajor = 17; gDarwinMinor = 0; gDarwinRev = 0; break; // 10.13 case 0xA0D0100: gDarwinMajor = 17; gDarwinMinor = 1; gDarwinRev = 0; break; // 10.13.1 + // Mojave // default = last known kernel default: gDarwinMajor = 17; gDarwinMinor = 1; gDarwinRev = 0; break; // 10.13.1; Index: branches/ErmaC/Enoch/i386/boot2/boot.c =================================================================== --- branches/ErmaC/Enoch/i386/boot2/boot.c (revision 2917) +++ branches/ErmaC/Enoch/i386/boot2/boot.c (revision 2918) @@ -1364,8 +1364,10 @@ // =============================================================================== - bootArgs->csrCapabilities = CSR_VALID_FLAGS; + bootArgs->csrCapabilities = CSR_VALID_CAPABILITIES; // CSR_VALID_FLAGS bootArgs->boot_SMC_plimit = 0; + bootArgs->bootProgressMeterStart = 0; + bootArgs->bootProgressMeterEnd = 0; } }