OcAppleSecureBootLib: Changed Default Apple SB model to match SMBIOS

This resolves the general set of compatibility issues with macOS 12
software updater, which requires T2 mac models to have T2 SB models.
This commit is contained in:
vit9696 2021-10-03 09:36:03 +03:00
parent 7cd3db3119
commit 7583455f11
16 changed files with 306 additions and 156 deletions

View File

@ -138,11 +138,11 @@ def export_db_macinfolib(db, path, year=0):
if max(info['AppleModelYear']) < year:
continue
br_model = info.get('AppleModelId')
if br_model:
br_model = '"{}AP"'.format(br_model.upper())
sb_model = info.get('AppleModelId')
if sb_model:
sb_model = '"{}"'.format(sb_model)
else:
br_model = 'NULL'
sb_model = 'NULL'
print(' {\n'
' .SystemProductName = "%s",\n'
@ -167,7 +167,7 @@ def export_db_macinfolib(db, path, year=0):
' .ChassisAssetTag = "%s",\n'
' .FirmwareFeatures = 0x%XULL,\n'
' .FirmwareFeaturesMask = 0x%XULL,\n'
' .BridgeModel = %s,\n'
' .SecureBootModel = %s,\n'
' },' % (
info['SystemProductName'],
info['BoardProduct'][0] if isinstance(info['BoardProduct'], list) else info['BoardProduct'],
@ -191,7 +191,7 @@ def export_db_macinfolib(db, path, year=0):
info['ChassisAssetTag'],
info.get('ExtendedFirmwareFeatures', info.get('FirmwareFeatures', 0)),
info.get('ExtendedFirmwareFeaturesMask', info.get('FirmwareFeaturesMask', 0)),
br_model
sb_model
), file=fh)
print('};', file=fh)

View File

@ -9,6 +9,7 @@ OpenCore Changelog
- Updated builtin firmware versions for SMBIOS and the rest
- Added tool to extract vendor secure boot certificate from GRUB shim file
- Added `BridgeOSHardwareModel` NVRAM variable to fix T2 SB AP models on macOS 12
- Changed `Default` Apple Secure Boot model to match SMBIOS for macOS 12
#### v0.7.3
- Improved SSDT-PNLF compatibility with CFL+ graphics

Binary file not shown.

View File

@ -4173,7 +4173,7 @@ rm vault.pub
\begin{itemize}
\tightlist
\item \texttt{Default} --- Recent available model, currently set to \texttt{x86legacy}.
\item \texttt{Default} --- Matching model for current SMBIOS.
\item \texttt{Disabled} --- No model, Secure Boot will be disabled.
\item \texttt{j137} --- \texttt{iMacPro1,1 (December 2017). Minimum macOS 10.13.2 (17C2111)}
\item \texttt{j680} --- \texttt{MacBookPro15,1 (July 2018). Minimum macOS 10.13.6 (17G2112)}
@ -4195,12 +4195,15 @@ rm vault.pub
\end{itemize}
\emph{Warning}: Not all Apple Secure Boot models are supported on all hardware configurations.
Starting with macOS 12 \texttt{x86legacy} is the only Apple Secure Boot model compatible
with software update on hardware without T2 chips.
Apple Secure Boot appeared in macOS 10.13 on models with T2 chips.
Since \texttt{PlatformInfo} and \texttt{SecureBootModel} are independent,
Apple Secure Boot can be used with any SMBIOS with and without T2.
Prior to macOS 12 \texttt{PlatformInfo} and \texttt{SecureBootModel} were independent,
allowing Apple Secure Boot can be used with any SMBIOS with and without T2.
Starting with macOS 12 \texttt{SecureBootModel} must match the SMBIOS Mac model.
\texttt{Default} model derives the model based on SMBIOS board identifier, either
set automatically via the \texttt{Generic} section or set manually via the \texttt{SMBIOS} section.
If there is no board identifier override the model will be derived heuristically from OEM SMBIOS.
Setting \texttt{SecureBootModel} to any valid value but \texttt{Disabled}
is equivalent to
\href{https://support.apple.com/en-us/HT208330}{\texttt{Medium Security}}

Binary file not shown.

View File

@ -1,7 +1,7 @@
\documentclass[]{article}
%DIF LATEXDIFF DIFFERENCE FILE
%DIF DEL PreviousConfiguration.tex Sun Sep 12 01:31:15 2021
%DIF ADD ../Configuration.tex Sun Oct 3 07:48:42 2021
%DIF ADD ../Configuration.tex Sun Oct 3 09:32:34 2021
\usepackage{lmodern}
\usepackage{amssymb,amsmath}
@ -4246,7 +4246,8 @@ rm vault.pub
\begin{itemize}
\tightlist
\item \texttt{Default} --- Recent available model, currently set to \texttt{x86legacy}.
\item \texttt{Default} --- \DIFdelbegin \DIFdel{Recent available model , currently set to }\texttt{\DIFdel{x86legacy}}%DIFAUXCMD
\DIFdelend \DIFaddbegin \DIFadd{Matching model for current SMBIOS}\DIFaddend .
\item \texttt{Disabled} --- No model, Secure Boot will be disabled.
\item \texttt{j137} --- \texttt{iMacPro1,1 (December 2017). Minimum macOS 10.13.2 (17C2111)}
\item \texttt{j680} --- \texttt{MacBookPro15,1 (July 2018). Minimum macOS 10.13.6 (17G2112)}
@ -4268,13 +4269,22 @@ rm vault.pub
\end{itemize}
\emph{Warning}: Not all Apple Secure Boot models are supported on all hardware configurations.
Starting with macOS 12 \texttt{x86legacy} is the only Apple Secure Boot model compatible
\DIFdelbegin \DIFdel{Starting with macOS 12 }\texttt{\DIFdel{x86legacy}} %DIFAUXCMD
\DIFdel{is the only Apple Secure Boot model compatible
with software update on hardware without T2 chips.
}\DIFdelend
Apple Secure Boot appeared in macOS 10.13 on models with T2 chips.
Since \texttt{PlatformInfo} and \texttt{SecureBootModel} are independent,
Apple Secure Boot can be used with any SMBIOS with and without T2.
Setting \texttt{SecureBootModel} to any valid value but \texttt{Disabled}
\DIFdelbegin \DIFdel{Since }\DIFdelend \DIFaddbegin \DIFadd{Prior to macOS 12 }\DIFaddend \texttt{PlatformInfo} and \texttt{SecureBootModel} \DIFdelbegin \DIFdel{are independent,
}\DIFdelend \DIFaddbegin \DIFadd{were independent,
allowing }\DIFaddend Apple Secure Boot can be used with any SMBIOS with and without T2.
\DIFaddbegin \DIFadd{Starting with macOS 12 }\texttt{\DIFadd{SecureBootModel}} \DIFadd{must match the SMBIOS Mac model.
}\texttt{\DIFadd{Default}} \DIFadd{model derives the model based on SMBIOS board identifier, either
set automatically via the }\texttt{\DIFadd{Generic}} \DIFadd{section or set manually via the }\texttt{\DIFadd{SMBIOS}} \DIFadd{section.
If there is no board identifier override the model will be derived heuristically from OEM SMBIOS.
}
\DIFaddend Setting \texttt{SecureBootModel} to any valid value but \texttt{Disabled}
is equivalent to
\href{https://support.apple.com/en-us/HT208330}{\texttt{Medium Security}}
of Apple Secure Boot. The \texttt{ApECID} value must also be specified to

Binary file not shown.

View File

@ -27,6 +27,11 @@
**/
#define OC_SB_MODEL_DISABLED "Disabled"
/**
Legacy secure boot model (for all non-gibraltar models).
**/
#define OC_SB_MODEL_LEGACY "x86legacy"
/**
Verify the signature of ImageBuffer against Type of its IMG4 Manifest.
@ -78,8 +83,7 @@ OcAppleImg4RegisterOverride (
/**
Obtain hardware model for secure booting from the model request.
@param[in] ModelRequest Raw model or configuration strings like
Latest or Disabled.
@param[in] ModelRequest Raw model.
@retval Model in lower case on success.
@retval NULL on failure

View File

@ -106,15 +106,11 @@ typedef struct MAC_INFO_DATA_ {
/// Serial data.
///
MAC_INFO_DATA_OEM Oem;
///
/// Bridge model data.
///
CONST CHAR8 *BridgeModel;
} MAC_INFO_DATA;
/**
Obtain Mac info based on product name.
When exact match is not possible, any sane data may be returned.
When exact match is not possible, sane fallback will be returned.
@param[in] ProductName Product to get information for.
@param[out] MacInfo Information data to fill.
@ -125,6 +121,34 @@ GetMacInfo (
OUT MAC_INFO_DATA *MacInfo
);
/**
Obtain Mac secure boot model based on product name.
When exact match is not possible, sane fallback will be returned.
@param[in] ProductName Product to get information for.
@retval "x86legacy" For models that do not support secure boot.
@return Secure boot model name.
**/
CONST CHAR8 *
GetSecureBootModel (
IN CONST CHAR8 *ProductName
);
/**
Obtain Mac secure boot model based on board id.
When exact match is not possible, sane fallback will be returned.
@param[in] BoardId Board identifer to get information for.
@retval "x86legacy" For models that do not support secure boot.
@return Secure boot model name.
**/
CONST CHAR8 *
GetSecureBootModelFromBoardId (
IN CONST CHAR8 *BoardId
);
/**
Determine if specified product name is a real Mac model.

View File

@ -189,6 +189,17 @@ OcGetLegacySecureBootECID (
OUT UINT64 *ApECID
);
/**
Obtain default Secure Boot hardware model.
@param[in] Config Configuration.
@return Apple Secure Boot model.
**/
CONST CHAR8 *
OcGetDefaultSecureBootModel (
IN OC_GLOBAL_CONFIG *Config
);
/**
Load platform compatibility support like DataHub or SMBIOS.

View File

@ -42,7 +42,6 @@ typedef struct OC_SB_MODEL_DESC_ {
STATIC CHAR8 mCryptoDigestMethod[16] = "sha2-384";
STATIC DERImg4Environment mEnvInfo;
STATIC CONST CHAR8 *mModelDefault = "x86legacy";
///
/// List of model mapping to board identifiers.
/// Alphabetically sorted (!), for release order refer to the documentation.
@ -64,7 +63,7 @@ STATIC OC_SB_MODEL_DESC mModelInformation[] = {
{ "j230k", 0x3F }, ///< MacBookAir9,1
{ "j680", 0x0B }, ///< MacBookPro15,1
{ "j780", 0x07 }, ///< MacBookPro15,3
{ "x86legacy", 0xF0 }, ///< Generic x86 from Big Sur
{ OC_SB_MODEL_LEGACY, 0xF0 }, ///< Generic x86 from Big Sur
};
STATIC BOOLEAN mHasDigestOverride;
@ -160,10 +159,6 @@ OcAppleImg4GetHardwareModel (
{
OC_SB_MODEL_DESC *ModelInfo;
if (AsciiStrCmp (ModelRequest, OC_SB_MODEL_DEFAULT) == 0 || ModelRequest[0] == '\0') {
ModelRequest = mModelDefault;
}
ModelInfo = InternalGetModelInfo (ModelRequest);
if (ModelInfo != NULL) {
return ModelInfo->HardwareModel;
@ -362,7 +357,7 @@ OcAppleImg4BootstrapValues (
mEnvInfo.securityMode = 1;
mEnvInfo.effectiveProductionStatus = TRUE;
mEnvInfo.effectiveSecurityMode = 1;
mEnvInfo.internalUseOnlyUnit = AsciiStrCmp (Model, "x86legacy") == 0;
mEnvInfo.internalUseOnlyUnit = AsciiStrCmp (Model, OC_SB_MODEL_LEGACY) == 0;
mEnvInfo.xugs = 1;
mEnvInfo.allowMixNMatch = FALSE;

View File

@ -24,7 +24,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Asset Tag",
.FirmwareFeatures = 0x0ULL,
.FirmwareFeaturesMask = 0x0ULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBook10,1",
@ -49,7 +49,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0x8FC0FE13FULL,
.FirmwareFeaturesMask = 0x8FF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBook2,1",
@ -74,7 +74,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Asset Tag",
.FirmwareFeatures = 0x0ULL,
.FirmwareFeaturesMask = 0x0ULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBook3,1",
@ -99,7 +99,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Asset Tag#",
.FirmwareFeatures = 0xC0001407ULL,
.FirmwareFeaturesMask = 0xC0001FFFULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBook4,1",
@ -124,7 +124,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Asset Tag#",
.FirmwareFeatures = 0xC0001403ULL,
.FirmwareFeaturesMask = 0xC0003FFFULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBook5,1",
@ -149,7 +149,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Asset Tag#",
.FirmwareFeatures = 0xC0001403ULL,
.FirmwareFeaturesMask = 0xC0007FFFULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBook5,2",
@ -174,7 +174,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Asset Tag#",
.FirmwareFeatures = 0xC0001403ULL,
.FirmwareFeaturesMask = 0xC0007FFFULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBook6,1",
@ -199,7 +199,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Asset Tag#",
.FirmwareFeatures = 0xFC0FE13FULL,
.FirmwareFeaturesMask = 0xFF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBook7,1",
@ -224,7 +224,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Asset Tag#",
.FirmwareFeatures = 0xFC0FE13FULL,
.FirmwareFeaturesMask = 0xFF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBook8,1",
@ -249,7 +249,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Chassis Board Asset Tag#",
.FirmwareFeatures = 0xFC0FE13FULL,
.FirmwareFeaturesMask = 0xFF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBook9,1",
@ -274,7 +274,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0x8FC0FE13FULL,
.FirmwareFeaturesMask = 0x8FF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookAir1,1",
@ -299,7 +299,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Asset Tag#",
.FirmwareFeatures = 0xC0001403ULL,
.FirmwareFeaturesMask = 0xC0003FFFULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookAir2,1",
@ -324,7 +324,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Asset Tag#",
.FirmwareFeatures = 0xC0001403ULL,
.FirmwareFeaturesMask = 0xC0007FFFULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookAir3,1",
@ -349,7 +349,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xD00DE137ULL,
.FirmwareFeaturesMask = 0xFF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookAir3,2",
@ -374,7 +374,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xD00DE137ULL,
.FirmwareFeaturesMask = 0xFF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookAir4,1",
@ -399,7 +399,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xD00DE137ULL,
.FirmwareFeaturesMask = 0xFF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookAir4,2",
@ -424,7 +424,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xD00DE137ULL,
.FirmwareFeaturesMask = 0xFF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookAir5,1",
@ -449,7 +449,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xE00DE137ULL,
.FirmwareFeaturesMask = 0xFF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookAir5,2",
@ -474,7 +474,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xE00DE137ULL,
.FirmwareFeaturesMask = 0xFF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookAir6,1",
@ -499,7 +499,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xE00FE137ULL,
.FirmwareFeaturesMask = 0xFF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookAir6,2",
@ -524,7 +524,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xE00FE137ULL,
.FirmwareFeaturesMask = 0xFF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookAir7,1",
@ -549,7 +549,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Chassis Board Asset Tag#",
.FirmwareFeatures = 0x8FF0FF576ULL,
.FirmwareFeaturesMask = 0x8FF1FFF7FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookAir7,2",
@ -574,7 +574,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Chassis Board Asset Tag#",
.FirmwareFeatures = 0x8FF0FF576ULL,
.FirmwareFeaturesMask = 0x8FF1FFF7FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookAir8,1",
@ -599,7 +599,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0x8FD8FF42EULL,
.FirmwareFeaturesMask = 0x8FF9FFF3FULL,
.BridgeModel = "J140KAP",
.SecureBootModel = "J140K",
},
{
.SystemProductName = "MacBookAir8,2",
@ -624,7 +624,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0x8FD8FF42EULL,
.FirmwareFeaturesMask = 0x8FF9FFF3FULL,
.BridgeModel = "J140AAP",
.SecureBootModel = "J140A",
},
{
.SystemProductName = "MacBookAir9,1",
@ -649,7 +649,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0x8FFAFF06EULL,
.FirmwareFeaturesMask = 0x8FFFFFF7FULL,
.BridgeModel = "J230KAP",
.SecureBootModel = "J230K",
},
{
.SystemProductName = "MacBookPro1,1",
@ -674,7 +674,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Asset Tag#",
.FirmwareFeatures = 0x0ULL,
.FirmwareFeaturesMask = 0x0ULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookPro1,2",
@ -699,7 +699,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Asset Tag#",
.FirmwareFeatures = 0x0ULL,
.FirmwareFeaturesMask = 0x0ULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookPro10,1",
@ -724,7 +724,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xE00DE137ULL,
.FirmwareFeaturesMask = 0xFF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookPro10,2",
@ -749,7 +749,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xE00DE137ULL,
.FirmwareFeaturesMask = 0xFF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookPro11,1",
@ -774,7 +774,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xEB0FF577ULL,
.FirmwareFeaturesMask = 0xFF1FFF7FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookPro11,2",
@ -799,7 +799,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xEB0FF577ULL,
.FirmwareFeaturesMask = 0xFF1FFF7FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookPro11,3",
@ -824,7 +824,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xEB0FF577ULL,
.FirmwareFeaturesMask = 0xFF1FFF7FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookPro11,4",
@ -849,7 +849,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xEB0FF577ULL,
.FirmwareFeaturesMask = 0xFF1FFF7FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookPro11,5",
@ -874,7 +874,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xEB0FF577ULL,
.FirmwareFeaturesMask = 0xFF1FFF7FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookPro12,1",
@ -899,7 +899,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0x8FD0FF576ULL,
.FirmwareFeaturesMask = 0x8FF1FFF7FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookPro13,1",
@ -924,7 +924,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0x8FC0FE137ULL,
.FirmwareFeaturesMask = 0x8FF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookPro13,2",
@ -949,7 +949,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0x8FC0FE137ULL,
.FirmwareFeaturesMask = 0x8FF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookPro13,3",
@ -974,7 +974,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0x8FC0FE137ULL,
.FirmwareFeaturesMask = 0x8FF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookPro14,1",
@ -999,7 +999,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0x8FF0FF57EULL,
.FirmwareFeaturesMask = 0x8FF1FFF7FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookPro14,2",
@ -1024,7 +1024,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0x8FF0FF57EULL,
.FirmwareFeaturesMask = 0x8FF1FFF7FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookPro14,3",
@ -1049,7 +1049,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0x8FF0FF57EULL,
.FirmwareFeaturesMask = 0x8FF1FFF7FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookPro15,1",
@ -1074,7 +1074,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0x8FD8FF426ULL,
.FirmwareFeaturesMask = 0x8FF9FFF3FULL,
.BridgeModel = "J680AP",
.SecureBootModel = "J680",
},
{
.SystemProductName = "MacBookPro15,2",
@ -1099,7 +1099,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0x8FD8FF426ULL,
.FirmwareFeaturesMask = 0x8FF9FFF3FULL,
.BridgeModel = "J132AP",
.SecureBootModel = "J132",
},
{
.SystemProductName = "MacBookPro15,3",
@ -1124,7 +1124,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0x8FD8FF426ULL,
.FirmwareFeaturesMask = 0x8FF9FFF3FULL,
.BridgeModel = "J780AP",
.SecureBootModel = "J780",
},
{
.SystemProductName = "MacBookPro15,4",
@ -1149,7 +1149,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0x8FD8FF426ULL,
.FirmwareFeaturesMask = 0x8FF9FFF3FULL,
.BridgeModel = "J213AP",
.SecureBootModel = "J213",
},
{
.SystemProductName = "MacBookPro16,1",
@ -1174,7 +1174,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0x8FDAFF066ULL,
.FirmwareFeaturesMask = 0x8FFFFFF7FULL,
.BridgeModel = "J152FAP",
.SecureBootModel = "J152F",
},
{
.SystemProductName = "MacBookPro16,2",
@ -1199,7 +1199,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0x8FFAFF06EULL,
.FirmwareFeaturesMask = 0x8FFFFFF7FULL,
.BridgeModel = "J214KAP",
.SecureBootModel = "J214K",
},
{
.SystemProductName = "MacBookPro16,3",
@ -1224,7 +1224,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0x8FDAFF066ULL,
.FirmwareFeaturesMask = 0x8FFFFFF7FULL,
.BridgeModel = "J223AP",
.SecureBootModel = "J223",
},
{
.SystemProductName = "MacBookPro16,4",
@ -1249,7 +1249,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0x8FDAFF066ULL,
.FirmwareFeaturesMask = 0x8FFFFFF7FULL,
.BridgeModel = "J215AP",
.SecureBootModel = "J215",
},
{
.SystemProductName = "MacBookPro2,1",
@ -1274,7 +1274,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Asset Tag#",
.FirmwareFeatures = 0x0ULL,
.FirmwareFeaturesMask = 0x0ULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookPro2,2",
@ -1299,7 +1299,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Asset Tag#",
.FirmwareFeatures = 0x0ULL,
.FirmwareFeaturesMask = 0x0ULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookPro3,1",
@ -1324,7 +1324,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Asset Tag#",
.FirmwareFeatures = 0xC0001407ULL,
.FirmwareFeaturesMask = 0xC0001FFFULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookPro4,1",
@ -1349,7 +1349,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Asset Tag#",
.FirmwareFeatures = 0xC0001403ULL,
.FirmwareFeaturesMask = 0xC0003FFFULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookPro5,1",
@ -1374,7 +1374,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Asset Tag#",
.FirmwareFeatures = 0xC0001403ULL,
.FirmwareFeaturesMask = 0xC0007FFFULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookPro5,2",
@ -1399,7 +1399,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Asset Tag#",
.FirmwareFeatures = 0xC0001403ULL,
.FirmwareFeaturesMask = 0xC0007FFFULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookPro5,3",
@ -1424,7 +1424,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Asset Tag#",
.FirmwareFeatures = 0xC0001403ULL,
.FirmwareFeaturesMask = 0xC0007FFFULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookPro5,4",
@ -1449,7 +1449,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Asset Tag#",
.FirmwareFeatures = 0xC0001403ULL,
.FirmwareFeaturesMask = 0xC0007FFFULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookPro5,5",
@ -1474,7 +1474,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Asset Tag#",
.FirmwareFeatures = 0xC0001403ULL,
.FirmwareFeaturesMask = 0xC0007FFFULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookPro6,1",
@ -1499,7 +1499,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xC00DE137ULL,
.FirmwareFeaturesMask = 0xFF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookPro6,2",
@ -1524,7 +1524,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xC00DE137ULL,
.FirmwareFeaturesMask = 0xFF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookPro7,1",
@ -1549,7 +1549,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xC00DE137ULL,
.FirmwareFeaturesMask = 0xFF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookPro8,1",
@ -1574,7 +1574,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xC00DE137ULL,
.FirmwareFeaturesMask = 0xFF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookPro8,2",
@ -1599,7 +1599,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xC00DE137ULL,
.FirmwareFeaturesMask = 0xFF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookPro8,3",
@ -1624,7 +1624,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xC00DE137ULL,
.FirmwareFeaturesMask = 0xFF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookPro9,1",
@ -1649,7 +1649,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xC00DE137ULL,
.FirmwareFeaturesMask = 0xFF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacBookPro9,2",
@ -1674,7 +1674,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xC10DF577ULL,
.FirmwareFeaturesMask = 0xFF1FFF7FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacPro1,1",
@ -1699,7 +1699,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Asset Tag#",
.FirmwareFeatures = 0x80000015ULL,
.FirmwareFeaturesMask = 0x800003FFULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacPro2,1",
@ -1724,7 +1724,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Asset Tag#",
.FirmwareFeatures = 0xC0000015ULL,
.FirmwareFeaturesMask = 0xC0000FFFULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacPro3,1",
@ -1749,7 +1749,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Pro-Enclosure",
.FirmwareFeatures = 0xC0001403ULL,
.FirmwareFeaturesMask = 0xC0003FFFULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacPro4,1",
@ -1774,7 +1774,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Pro-Enclosure",
.FirmwareFeatures = 0xE001F537ULL,
.FirmwareFeaturesMask = 0xC003FF37ULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacPro5,1",
@ -1799,7 +1799,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xE80FE137ULL,
.FirmwareFeaturesMask = 0xFF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacPro6,1",
@ -1824,7 +1824,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0x8E90FF576ULL,
.FirmwareFeaturesMask = 0x8FF1FFF7FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "MacPro7,1",
@ -1849,7 +1849,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0x8FDAFF066ULL,
.FirmwareFeaturesMask = 0x8FFFFFF7FULL,
.BridgeModel = "J160AP",
.SecureBootModel = "J160",
},
{
.SystemProductName = "Macmini1,1",
@ -1874,7 +1874,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Asset Tag",
.FirmwareFeatures = 0x0ULL,
.FirmwareFeaturesMask = 0x0ULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "Macmini2,1",
@ -1899,7 +1899,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Asset Tag",
.FirmwareFeatures = 0x0ULL,
.FirmwareFeaturesMask = 0x0ULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "Macmini3,1",
@ -1924,7 +1924,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Asset Tag#",
.FirmwareFeatures = 0xC0001403ULL,
.FirmwareFeaturesMask = 0xC0007FFFULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "Macmini4,1",
@ -1949,7 +1949,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xC00C9423ULL,
.FirmwareFeaturesMask = 0xFF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "Macmini5,1",
@ -1974,7 +1974,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xD00DE137ULL,
.FirmwareFeaturesMask = 0xFF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "Macmini5,2",
@ -1999,7 +1999,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xD00DE137ULL,
.FirmwareFeaturesMask = 0xFF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "Macmini5,3",
@ -2024,7 +2024,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xD00DE137ULL,
.FirmwareFeaturesMask = 0xFF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "Macmini6,1",
@ -2049,7 +2049,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xE00DE137ULL,
.FirmwareFeaturesMask = 0xFF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "Macmini6,2",
@ -2074,7 +2074,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xE00DE137ULL,
.FirmwareFeaturesMask = 0xFF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "Macmini7,1",
@ -2099,7 +2099,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0x8E00DE137ULL,
.FirmwareFeaturesMask = 0x8FF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "Macmini8,1",
@ -2124,7 +2124,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0x8FD8FF466ULL,
.FirmwareFeaturesMask = 0x8FFDFFF7FULL,
.BridgeModel = "J174AP",
.SecureBootModel = "J174",
},
{
.SystemProductName = "Xserve1,1",
@ -2149,7 +2149,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Asset Tag#",
.FirmwareFeatures = 0x0ULL,
.FirmwareFeaturesMask = 0x0ULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "Xserve2,1",
@ -2174,7 +2174,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Asset Tag#",
.FirmwareFeatures = 0x0ULL,
.FirmwareFeaturesMask = 0x0ULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "Xserve3,1",
@ -2199,7 +2199,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Xserve",
.FirmwareFeatures = 0x0ULL,
.FirmwareFeaturesMask = 0x0ULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "iMac10,1",
@ -2224,7 +2224,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Asset Tag#",
.FirmwareFeatures = 0xE00DE137ULL,
.FirmwareFeaturesMask = 0xFF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "iMac11,1",
@ -2249,7 +2249,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xE00DE137ULL,
.FirmwareFeaturesMask = 0xFF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "iMac11,2",
@ -2274,7 +2274,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xC00C9423ULL,
.FirmwareFeaturesMask = 0xFF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "iMac11,3",
@ -2299,7 +2299,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xE00DE137ULL,
.FirmwareFeaturesMask = 0xFF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "iMac12,1",
@ -2324,7 +2324,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xE00DE137ULL,
.FirmwareFeaturesMask = 0xFF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "iMac12,2",
@ -2349,7 +2349,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xE00DE137ULL,
.FirmwareFeaturesMask = 0xFF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "iMac13,1",
@ -2374,7 +2374,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xE00DE137ULL,
.FirmwareFeaturesMask = 0xFF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "iMac13,2",
@ -2399,7 +2399,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xE00DE137ULL,
.FirmwareFeaturesMask = 0xFF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "iMac13,3",
@ -2424,7 +2424,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xE00DE137ULL,
.FirmwareFeaturesMask = 0xFF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "iMac14,1",
@ -2449,7 +2449,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xFB0FF577ULL,
.FirmwareFeaturesMask = 0xFF1FFF7FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "iMac14,2",
@ -2474,7 +2474,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xE00FE137ULL,
.FirmwareFeaturesMask = 0xFF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "iMac14,3",
@ -2499,7 +2499,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xE00FE137ULL,
.FirmwareFeaturesMask = 0xFF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "iMac14,4",
@ -2524,7 +2524,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xF00FE137ULL,
.FirmwareFeaturesMask = 0xFF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "iMac15,1",
@ -2549,7 +2549,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0xF80FE137ULL,
.FirmwareFeaturesMask = 0xFF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "iMac16,1",
@ -2574,7 +2574,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0x8FC0FE137ULL,
.FirmwareFeaturesMask = 0x8FF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "iMac16,2",
@ -2599,7 +2599,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0x8FC0FE137ULL,
.FirmwareFeaturesMask = 0x8FF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "iMac17,1",
@ -2624,7 +2624,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0x8FC0FE137ULL,
.FirmwareFeaturesMask = 0x8FF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "iMac18,1",
@ -2649,7 +2649,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0x8FD0FF576ULL,
.FirmwareFeaturesMask = 0x8FF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "iMac18,2",
@ -2674,7 +2674,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0x8FD0FF576ULL,
.FirmwareFeaturesMask = 0x8FF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "iMac18,3",
@ -2699,7 +2699,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0x8FD0FF576ULL,
.FirmwareFeaturesMask = 0x8FF1FFF3FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "iMac19,1",
@ -2724,7 +2724,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0x8FD8FF576ULL,
.FirmwareFeaturesMask = 0x8FFDFFF7FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "iMac19,2",
@ -2749,7 +2749,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0x8FD8FF576ULL,
.FirmwareFeaturesMask = 0x8FFDFFF7FULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "iMac20,1",
@ -2774,7 +2774,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0x8FD8FF576ULL,
.FirmwareFeaturesMask = 0x8FFDFFF7FULL,
.BridgeModel = "J185AP",
.SecureBootModel = "J185",
},
{
.SystemProductName = "iMac20,2",
@ -2799,7 +2799,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0x8FD8FF576ULL,
.FirmwareFeaturesMask = 0x8FFDFFF7FULL,
.BridgeModel = "J185FAP",
.SecureBootModel = "J185F",
},
{
.SystemProductName = "iMac4,1",
@ -2824,7 +2824,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Asset Tag",
.FirmwareFeatures = 0x0ULL,
.FirmwareFeaturesMask = 0x0ULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "iMac4,2",
@ -2849,7 +2849,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Asset Tag",
.FirmwareFeatures = 0x0ULL,
.FirmwareFeaturesMask = 0x0ULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "iMac5,1",
@ -2874,7 +2874,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Asset Tag",
.FirmwareFeatures = 0x0ULL,
.FirmwareFeaturesMask = 0x0ULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "iMac5,2",
@ -2899,7 +2899,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Asset Tag",
.FirmwareFeatures = 0x0ULL,
.FirmwareFeaturesMask = 0x0ULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "iMac6,1",
@ -2924,7 +2924,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Asset Tag",
.FirmwareFeatures = 0x0ULL,
.FirmwareFeaturesMask = 0x0ULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "iMac7,1",
@ -2949,7 +2949,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Asset Tag#",
.FirmwareFeatures = 0xC0001407ULL,
.FirmwareFeaturesMask = 0xC0001FFFULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "iMac8,1",
@ -2974,7 +2974,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Asset Tag#",
.FirmwareFeatures = 0xC0001403ULL,
.FirmwareFeaturesMask = 0xC0003FFFULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "iMac9,1",
@ -2999,7 +2999,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "Asset Tag#",
.FirmwareFeatures = 0xC0001403ULL,
.FirmwareFeaturesMask = 0xC0003FFFULL,
.BridgeModel = NULL,
.SecureBootModel = NULL,
},
{
.SystemProductName = "iMacPro1,1",
@ -3024,7 +3024,7 @@ CONST MAC_INFO_INTERNAL_ENTRY gMacInfoModels[] = {
.ChassisAssetTag = "",
.FirmwareFeatures = 0x8FD8FF53EULL,
.FirmwareFeaturesMask = 0x8FF9FFF3FULL,
.BridgeModel = "J137AP",
.SecureBootModel = "J137",
},
};
CONST UINTN gMacInfoModelCount = ARRAY_SIZE (gMacInfoModels);

View File

@ -42,7 +42,7 @@ typedef struct {
CONST CHAR8 * CONST ChassisAssetTag;
CONST UINT64 FirmwareFeatures;
CONST UINT64 FirmwareFeaturesMask;
CONST CHAR8 * CONST BridgeModel;
CONST CHAR8 * CONST SecureBootModel;
} MAC_INFO_INTERNAL_ENTRY;
//

View File

@ -149,8 +149,52 @@ GetMacInfo (
if (InternalEntry->PlatformFeature != MAC_INFO_PLATFORM_FEATURE_MISSING) {
MacInfo->Smbios.PlatformFeature = &InternalEntry->PlatformFeature;
}
}
MacInfo->BridgeModel = InternalEntry->BridgeModel;
CONST CHAR8 *
GetSecureBootModel (
IN CONST CHAR8 *ProductName
)
{
CONST MAC_INFO_INTERNAL_ENTRY *InternalEntry;
InternalEntry = LookupInternalEntry (ProductName);
if (InternalEntry == NULL) {
//
// Fallback to default model if given ProductName is not found.
//
InternalEntry = &gMacInfoModels[gMacInfoDefaultModel];
}
if (InternalEntry->SecureBootModel == NULL) {
return "x86legacy";
}
return InternalEntry->SecureBootModel;
}
CONST CHAR8 *
GetSecureBootModelFromBoardId (
IN CONST CHAR8 *BoardId
)
{
UINTN Index;
for (Index = 0; Index < gMacInfoModelCount; ++Index) {
if (AsciiStrCmp (gMacInfoModels[Index].BoardProduct, BoardId) == 0) {
if (gMacInfoModels[Index].SecureBootModel != NULL) {
return gMacInfoModels[Index].SecureBootModel;
}
break;
}
}
//
// Note, this will not match some models with multiple board-id values,
// but from what we know these models do not support SB anyway.
//
return "x86legacy";
}
BOOLEAN

View File

@ -935,6 +935,60 @@ OcGetLegacySecureBootECID (
CopyMem (ApECID, &Uuid, sizeof (*ApECID));
}
CONST CHAR8 *
OcGetDefaultSecureBootModel (
IN OC_GLOBAL_CONFIG *Config
)
{
EFI_STATUS Status;
CONST CHAR8 *Model;
CONST CHAR8 *Board;
CONST CHAR8 *SbModel;
OC_SMBIOS_TABLE SmbiosTable;
//
// For automatic setups it is direct DB retrieval.
//
if (Config->PlatformInfo.Automatic) {
Model = OC_BLOB_GET (&Config->PlatformInfo.Generic.SystemProductName);
SbModel = GetSecureBootModel (Model);
DEBUG ((DEBUG_INFO, "OC: Automatic SB model %a from model %a\n", SbModel, Model));
return SbModel;
}
//
// For manual setups only use the SMBIOS board identifier.
//
Board = OC_BLOB_GET (&Config->PlatformInfo.Smbios.BoardProduct);
if (Config->PlatformInfo.UpdateSmbios && Board[0] != '\0') {
SbModel = GetSecureBootModelFromBoardId (Board);
DEBUG ((DEBUG_INFO, "OC: Manual SB model %a from board %a\n", SbModel, Board));
return SbModel;
}
//
// For Mac setups without spoofing use SMBIOS.
//
Status = OcSmbiosTablePrepare (&SmbiosTable);
if (!EFI_ERROR (Status)) {
OcSmbiosExtractOemInfo (
&SmbiosTable,
mCurrentSmbiosProductName,
NULL,
NULL,
NULL,
NULL,
Config->PlatformInfo.UseRawUuidEncoding,
FALSE
);
OcSmbiosTableFree (&SmbiosTable);
}
SbModel = GetSecureBootModel (mCurrentSmbiosProductName);
DEBUG ((DEBUG_INFO, "OC: OEM SB model %a from model %a\n", SbModel, mCurrentSmbiosProductName));
return SbModel;
}
BOOLEAN
OcPlatformIs64BitSupported (
IN UINT32 KernelVersion

View File

@ -450,13 +450,17 @@ OcLoadAppleSecureBoot (
UINT8 SecureBootPolicy;
SecureBootModel = OC_BLOB_GET (&Config->Misc.Security.SecureBootModel);
if (AsciiStrCmp (SecureBootModel, OC_SB_MODEL_DEFAULT) == 0 || SecureBootModel[0] == '\0') {
SecureBootModel = OcGetDefaultSecureBootModel (Config);
}
RealSecureBootModel = OcAppleImg4GetHardwareModel (SecureBootModel);
if (AsciiStrCmp (SecureBootModel, OC_SB_MODEL_DISABLED) == 0) {
SecureBootPolicy = AppleImg4SbModeDisabled;
} else if (Config->Misc.Security.ApECID != 0
&& (RealSecureBootModel == NULL
|| AsciiStrCmp (RealSecureBootModel, "x86legacy") != 0)) {
|| AsciiStrCmp (RealSecureBootModel, OC_SB_MODEL_LEGACY) != 0)) {
//
// Note, for x86legacy it is always medium policy.
//
@ -494,7 +498,7 @@ OcLoadAppleSecureBoot (
// This is what Apple does at least.
// I believe no ECID is invalid for macOS 12.
//
if (AsciiStrCmp (RealSecureBootModel, "x86legacy") == 0
if (AsciiStrCmp (RealSecureBootModel, OC_SB_MODEL_LEGACY) == 0
&& Config->Misc.Security.ApECID == 0) {
DEBUG ((DEBUG_INFO, "OC: Discovered x86legacy with zero ECID, using system-id\n"));
OcGetLegacySecureBootECID (Config, &Config->Misc.Security.ApECID);