Skip to content

Commit

Permalink
Merge branch 'acidanthera:master' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
CrisHotpatch authored Aug 17, 2023
2 parents dbacce0 + 7df036e commit 9824d7e
Show file tree
Hide file tree
Showing 8 changed files with 104 additions and 60 deletions.
2 changes: 1 addition & 1 deletion Docs/Configuration.md5
Original file line number Diff line number Diff line change
@@ -1 +1 @@
67ec53cd72d25c7837661816ebad3cf1
f76478ccad236e36b407501d184f7754
Binary file modified Docs/Configuration.pdf
Binary file not shown.
2 changes: 1 addition & 1 deletion Docs/Configuration.tex
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@

\vspace{0.2in}

Reference Manual (0.9.4)
Reference Manual (0.9.5)

\vspace{0.2in}

Expand Down
Binary file modified Docs/Differences/Differences.pdf
Binary file not shown.
92 changes: 42 additions & 50 deletions Docs/Differences/Differences.tex
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
\documentclass[]{article}
%DIF LATEXDIFF DIFFERENCE FILE
%DIF DEL PreviousConfiguration.tex Mon Jun 12 21:24:42 2023
%DIF ADD ../Configuration.tex Sun Jul 23 20:58:07 2023
%DIF DEL PreviousConfiguration.tex Sun Aug 13 12:38:11 2023
%DIF ADD ../Configuration.tex Sun Aug 13 12:38:11 2023

\usepackage{lmodern}
\usepackage{amssymb,amsmath}
Expand Down Expand Up @@ -154,7 +154,7 @@

\vspace{0.2in}

Reference Manual (0.9\DIFdelbegin \DIFdel{.3}\DIFdelend \DIFaddbegin \DIFadd{.4}\DIFaddend )
Reference Manual (0.9\DIFdelbegin \DIFdel{.4}\DIFdelend \DIFaddbegin \DIFadd{.5}\DIFaddend )

\vspace{0.2in}

Expand Down Expand Up @@ -3185,9 +3185,9 @@ \subsection{Introduction}\label{miscintro}
\end{itemize} \medskip
\end{itemize}

\DIFaddbegin \subsubsection{\DIFadd{Boot Algorithm}}\label{bootalgorithm}
\subsubsection{Boot Algorithm}\label{bootalgorithm}

\DIFaddend The algorithm to determine boot options behaves as follows:
The algorithm to determine boot options behaves as follows:

\begin{enumerate}
\tightlist
Expand All @@ -3207,16 +3207,15 @@ \subsection{Introduction}\label{miscintro}
\item For disk device paths (not specifying a bootloader), execute ``bless'' (may return > 1 entry).
\item For file device paths, check for presence on the file system directly.
% Just kill all \EFI\APPLE\ paths.
\item Exclude entries if there is a \texttt{.contentVisibility} file \DIFdelbegin \DIFdel{near the bootloader or
inside the boot directory }\DIFdelend \DIFaddbegin \DIFadd{at a relevant location (see below)
}\DIFaddend with \texttt{Disabled} contents (ASCII) \DIFaddbegin \DIFadd{(and if the current }\texttt{\DIFadd{InstanceIentifier}} \DIFadd{matches an }\texttt{\DIFadd{Instance-List}}
\DIFadd{if present, see below)}\DIFaddend .
\item Exclude entries if there is a \texttt{.contentVisibility} file at a relevant location (see below)
with \texttt{Disabled} contents (ASCII) (and if the current \texttt{InstanceIentifier} matches an \texttt{Instance-List}
if present, see below).
\item Mark device handle as \textit{used} in the list of partition handles if any.
% Each partition handle will basically have a list of boot option entries for later quick lookup.
\item Register the resulting entries as primary options and determine their types. \\
The option will become auxiliary for some types (e.g. Apple HFS recovery)
or if its \texttt{.contentVisibility} file contains \texttt{Auxiliary} \DIFaddbegin \DIFadd{(and if the current
}\texttt{\DIFadd{InstanceIentifier}} \DIFadd{matches an }\texttt{\DIFadd{Instance-List}} \DIFadd{if present, see below)}\DIFaddend .
or if its \texttt{.contentVisibility} file contains \texttt{Auxiliary} (and if the current
\texttt{InstanceIentifier} matches an \texttt{Instance-List} if present, see below).
\end{itemize}
\item For each partition handle:
\begin{itemize}
Expand All @@ -3235,51 +3234,46 @@ \subsection{Introduction}\label{miscintro}
\item System entries, such as \texttt{Reset NVRAM}, are added as primary auxiliary options.
\end{enumerate}

\DIFaddbegin \DIFadd{A }\texttt{\DIFadd{.contentVisibility}} \DIFadd{file may be placed next to the bootloader (such as }\texttt{\DIFadd{boot.efi}}\DIFadd{),
A \texttt{.contentVisibility} file may be placed next to the bootloader (such as \texttt{boot.efi}),
or in the boot folder (for DMG folder based boot items). Example locations, as seen from within macOS, are:
}\begin{itemize}
\begin{itemize}
\tightlist
\item \texttt{\DIFadd{/System/Volumes/Preboot/\{GUID\}/System/Library/CoreServices/.contentVisibility}}
\item \texttt{\DIFadd{/Volumes/\{ESP\}/EFI/BOOT/.contentVisibility}}
\item \texttt{/System/Volumes/Preboot/\{GUID\}/System/Library/CoreServices/.contentVisibility}
\item \texttt{/Volumes/\{ESP\}/EFI/BOOT/.contentVisibility}
\end{itemize}
\DIFadd{In addition a }\texttt{\DIFadd{.contentVisibility}} \DIFadd{file may be placed in the instance-specific (for macOS) or absolute
In addition a \texttt{.contentVisibility} file may be placed in the instance-specific (for macOS) or absolute
root folders related to a boot entry, for example:
}\begin{itemize}
\begin{itemize}
\tightlist
\item \texttt{\DIFadd{/System/Volumes/Preboot/\{GUID\}/.contentVisibility}}
\item \texttt{\DIFadd{/System/Volumes/Preboot/.contentVisibility}}
\item \texttt{\DIFadd{/Volumes/\{ESP\}/.contentVisibility}} \DIFadd{(}\emph{\DIFadd{not recommended}}\DIFadd{)
}\end{itemize}
\DIFadd{These root folder locations are supported specifically for macOS, because non-Apple files next to the Apple bootloader
are removed by macOS updates. It is supported but not recommended to place a }\texttt{\DIFadd{.contentVisibility}} \DIFadd{file in a
\item \texttt{/System/Volumes/Preboot/\{GUID\}/.contentVisibility}
\item \texttt{/System/Volumes/Preboot/.contentVisibility}
\item \texttt{/Volumes/\{ESP\}/.contentVisibility} (\emph{not recommended})
\end{itemize}
These root folder locations are supported specifically for macOS, because non-Apple files next to the Apple bootloader
are removed by macOS updates. It is supported but not recommended to place a \texttt{.contentVisibility} file in a
non-macOS root location (such as the last location shown above), because it will hide all entries on the drive.
}

\DIFadd{The }\texttt{\DIFadd{.contentVisibility}} \DIFadd{file, when present, may optionally target only specific instances
of OpenCore. Its contents are }\texttt{[\DIFadd{\{Instance-List\}:}]\DIFadd{(Disabled|Auxiliary)}}\DIFadd{.
If a colon (}\texttt{\DIFadd{:}}\DIFadd{) is present, the preceding }\texttt{\DIFadd{Instance-List}} \DIFadd{it is a comma separated
list of }\texttt{\DIFadd{InstanceIdentifier}} \DIFadd{values (example: }\texttt{\DIFadd{OCA,OCB:Disabled}}\DIFadd{).
The \texttt{.contentVisibility} file, when present, may optionally target only specific instances
of OpenCore. Its contents are \texttt{[\{Instance-List\}:](Disabled|Auxiliary)}.
If a colon (\texttt{:}) is present, the preceding \texttt{Instance-List} it is a comma separated
list of \texttt{InstanceIdentifier} values (example: \texttt{OCA,OCB:Disabled}).
When this list is present, the specified visibility is only applied if the
}\texttt{\DIFadd{InstanceIdentifier}} \DIFadd{of the current instance of OpenCore is present in the list.
\texttt{InstanceIdentifier} of the current instance of OpenCore is present in the list.
When the list is not present, the specified visibility is applied for all instances of OpenCore.
}

\emph{\DIFadd{Note 1}}\DIFadd{: For any instance of OpenCore with no }\texttt{\DIFadd{InstanceIdentifier}} \DIFadd{value, the specified visibility
from a }\texttt{\DIFadd{.contentVisibility}} \DIFadd{file with an }\texttt{\DIFadd{Instance-List}} \DIFadd{will never be applied.
}
\emph{Note 1}: For any instance of OpenCore with no \texttt{InstanceIdentifier} value, the specified visibility
from a \texttt{.contentVisibility} file with an \texttt{Instance-List} will never be applied.

\emph{\DIFadd{Note 2}}\DIFadd{: Visibilities with a visibility list will be treated as invalid, and so ignored, in earlier
\emph{Note 2}: Visibilities with a visibility list will be treated as invalid, and so ignored, in earlier
versions of OpenCore - which may be useful when comparing behaviour of older and newer versions.
}

\emph{\DIFadd{Note 3}}\DIFadd{: Avoid extraneous spaces in the }\texttt{\DIFadd{.contentVisibility}} \DIFadd{file: these will not be treated as
\emph{Note 3}: Avoid extraneous spaces in the \texttt{.contentVisibility} file: these will not be treated as
whitespace, but as part of the adjacent token.
}

\DIFaddend The display order of the boot options in the OpenCore picker and the boot process
The display order of the boot options in the OpenCore picker and the boot process
are determined separately from the scanning algorithm.

The display order \DIFaddbegin \DIFadd{is }\DIFaddend as follows:
The display order is as follows:

\begin{itemize}
\tightlist
Expand Down Expand Up @@ -3500,19 +3494,17 @@ \subsection{Boot Properties}\label{miscbootprops}


\item
\DIFaddbegin \texttt{\DIFadd{InstanceIdentifier}}\\
\textbf{\DIFadd{Type}}\DIFadd{: }\texttt{\DIFadd{plist\ string}}\\
\textbf{\DIFadd{Failsafe}}\DIFadd{: Empty}\\
\textbf{\DIFadd{Description}}\DIFadd{: An optional identifier for the current instance of OpenCore.
}
\texttt{InstanceIdentifier}\\
\textbf{Type}: \texttt{plist\ string}\\
\textbf{Failsafe}: Empty\\
\textbf{Description}: An optional identifier for the current instance of OpenCore.

\DIFadd{This should typically be a short alphanumeric string. The current use of this value is
to optionally target }\texttt{\DIFadd{.contentVisibility}} \DIFadd{files to specific instances of OpenCore,
as explained in the }\hyperref[bootalgorithm]{Boot Algorithm} \DIFadd{section.
}
This should typically be a short alphanumeric string. The current use of this value is
to optionally target \texttt{.contentVisibility} files to specific instances of OpenCore,
as explained in the \hyperref[bootalgorithm]{Boot Algorithm} section.

\item
\DIFaddend \texttt{LauncherOption}\\
\texttt{LauncherOption}\\
\textbf{Type}: \texttt{plist\ string}\\
\textbf{Failsafe}: \texttt{Disabled}\\
\textbf{Description}: Register the launcher option in the firmware preferences for persistence.
Expand Down Expand Up @@ -8428,7 +8420,7 @@ \subsection{Output Properties}\label{uefioutputprops}

\emph{Note}: This option depends on the \href{https://github.com/acidanthera/OpenCorePkg/blob/master/Include/Acidanthera/Protocol/OcForceResolution.h}{\texttt{OC\_FORCE\_RESOLUTION\_PROTOCOL}}
protocol being present. This protocol is currently only supported by \texttt{OpenDuetPkg}. The
\texttt{OpenDuetPkg} implementation currently only supports Intel iGPUs \DIFaddbegin \DIFadd{and certain ATI GPUs}\DIFaddend .
\texttt{OpenDuetPkg} implementation currently only supports Intel iGPUs and certain ATI GPUs.

\item
\texttt{ClearScreenOnModeSwitch}\\
Expand Down
66 changes: 59 additions & 7 deletions Docs/Differences/PreviousConfiguration.tex
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@

\vspace{0.2in}

Reference Manual (0.9.3)
Reference Manual (0.9.4)

\vspace{0.2in}

Expand Down Expand Up @@ -3125,6 +3125,8 @@ \subsection{Introduction}\label{miscintro}
\end{itemize} \medskip
\end{itemize}

\subsubsection{Boot Algorithm}\label{bootalgorithm}

The algorithm to determine boot options behaves as follows:

\begin{enumerate}
Expand All @@ -3145,13 +3147,15 @@ \subsection{Introduction}\label{miscintro}
\item For disk device paths (not specifying a bootloader), execute ``bless'' (may return > 1 entry).
\item For file device paths, check for presence on the file system directly.
% Just kill all \EFI\APPLE\ paths.
\item Exclude entries if there is a \texttt{.contentVisibility} file near the bootloader or
inside the boot directory with \texttt{Disabled} contents (ASCII).
\item Exclude entries if there is a \texttt{.contentVisibility} file at a relevant location (see below)
with \texttt{Disabled} contents (ASCII) (and if the current \texttt{InstanceIentifier} matches an \texttt{Instance-List}
if present, see below).
\item Mark device handle as \textit{used} in the list of partition handles if any.
% Each partition handle will basically have a list of boot option entries for later quick lookup.
\item Register the resulting entries as primary options and determine their types. \\
The option will become auxiliary for some types (e.g. Apple HFS recovery)
or if its \texttt{.contentVisibility} file contains \texttt{Auxiliary}.
or if its \texttt{.contentVisibility} file contains \texttt{Auxiliary} (and if the current
\texttt{InstanceIentifier} matches an \texttt{Instance-List} if present, see below).
\end{itemize}
\item For each partition handle:
\begin{itemize}
Expand All @@ -3165,14 +3169,51 @@ \subsection{Introduction}\label{miscintro}
\item Lookup alternate entries by ``bless'' recovery option list retrieval and predefined paths.
\item Register the resulting entries as alternate auxiliary options and determine their types if found.
\end{itemize}
\item Custom entries and tools, except such pre-constructed previously, are added as primary options without any checks with respect to \texttt{Auxiliary}.
\item Custom entries and tools, except such pre-constructed previously, are added as primary options
without any checks with respect to \texttt{Auxiliary}.
\item System entries, such as \texttt{Reset NVRAM}, are added as primary auxiliary options.
\end{enumerate}

A \texttt{.contentVisibility} file may be placed next to the bootloader (such as \texttt{boot.efi}),
or in the boot folder (for DMG folder based boot items). Example locations, as seen from within macOS, are:
\begin{itemize}
\tightlist
\item \texttt{/System/Volumes/Preboot/\{GUID\}/System/Library/CoreServices/.contentVisibility}
\item \texttt{/Volumes/\{ESP\}/EFI/BOOT/.contentVisibility}
\end{itemize}
In addition a \texttt{.contentVisibility} file may be placed in the instance-specific (for macOS) or absolute
root folders related to a boot entry, for example:
\begin{itemize}
\tightlist
\item \texttt{/System/Volumes/Preboot/\{GUID\}/.contentVisibility}
\item \texttt{/System/Volumes/Preboot/.contentVisibility}
\item \texttt{/Volumes/\{ESP\}/.contentVisibility} (\emph{not recommended})
\end{itemize}
These root folder locations are supported specifically for macOS, because non-Apple files next to the Apple bootloader
are removed by macOS updates. It is supported but not recommended to place a \texttt{.contentVisibility} file in a
non-macOS root location (such as the last location shown above), because it will hide all entries on the drive.

The \texttt{.contentVisibility} file, when present, may optionally target only specific instances
of OpenCore. Its contents are \texttt{[\{Instance-List\}:](Disabled|Auxiliary)}.
If a colon (\texttt{:}) is present, the preceding \texttt{Instance-List} it is a comma separated
list of \texttt{InstanceIdentifier} values (example: \texttt{OCA,OCB:Disabled}).
When this list is present, the specified visibility is only applied if the
\texttt{InstanceIdentifier} of the current instance of OpenCore is present in the list.
When the list is not present, the specified visibility is applied for all instances of OpenCore.

\emph{Note 1}: For any instance of OpenCore with no \texttt{InstanceIdentifier} value, the specified visibility
from a \texttt{.contentVisibility} file with an \texttt{Instance-List} will never be applied.

\emph{Note 2}: Visibilities with a visibility list will be treated as invalid, and so ignored, in earlier
versions of OpenCore - which may be useful when comparing behaviour of older and newer versions.

\emph{Note 3}: Avoid extraneous spaces in the \texttt{.contentVisibility} file: these will not be treated as
whitespace, but as part of the adjacent token.

The display order of the boot options in the OpenCore picker and the boot process
are determined separately from the scanning algorithm.

The display order as follows:
The display order is as follows:

\begin{itemize}
\tightlist
Expand Down Expand Up @@ -3391,6 +3432,17 @@ \subsection{Boot Properties}\label{miscbootprops}
To display all entries, the picker menu can be reloaded into ``Extended Mode'' by pressing the
\texttt{Spacebar} key. Hiding auxiliary entries may increase boot performance on multi-disk systems.


\item
\texttt{InstanceIdentifier}\\
\textbf{Type}: \texttt{plist\ string}\\
\textbf{Failsafe}: Empty\\
\textbf{Description}: An optional identifier for the current instance of OpenCore.

This should typically be a short alphanumeric string. The current use of this value is
to optionally target \texttt{.contentVisibility} files to specific instances of OpenCore,
as explained in the \hyperref[bootalgorithm]{Boot Algorithm} section.

\item
\texttt{LauncherOption}\\
\textbf{Type}: \texttt{plist\ string}\\
Expand Down Expand Up @@ -8308,7 +8360,7 @@ \subsection{Output Properties}\label{uefioutputprops}

\emph{Note}: This option depends on the \href{https://github.com/acidanthera/OpenCorePkg/blob/master/Include/Acidanthera/Protocol/OcForceResolution.h}{\texttt{OC\_FORCE\_RESOLUTION\_PROTOCOL}}
protocol being present. This protocol is currently only supported by \texttt{OpenDuetPkg}. The
\texttt{OpenDuetPkg} implementation currently only supports Intel iGPUs.
\texttt{OpenDuetPkg} implementation currently only supports Intel iGPUs and certain ATI GPUs.

\item
\texttt{ClearScreenOnModeSwitch}\\
Expand Down
Binary file modified Docs/Errata/Errata.pdf
Binary file not shown.
2 changes: 1 addition & 1 deletion Include/Acidanthera/Library/OcMainLib.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
OpenCore version reported to log and NVRAM.
OPEN_CORE_VERSION must follow X.Y.Z format, where X.Y.Z are single digits.
**/
#define OPEN_CORE_VERSION "0.9.4"
#define OPEN_CORE_VERSION "0.9.5"

/**
OpenCore build type reported to log and NVRAM.
Expand Down

0 comments on commit 9824d7e

Please sign in to comment.