Docs: Update README

This commit is contained in:
vit9696 2020-05-17 15:09:22 +03:00
parent b50464359b
commit cbd60d9662
6 changed files with 91 additions and 69 deletions

View File

@ -33,13 +33,3 @@ To use them do as follows:
file from `BridgeOSUpdateCustomer.pkg` and unpack it.
5. After unpacking `UpdateBundle.zip` go to `boot/Firmware/MacEFI` directory and unpack im4p files.
You can use [img4](https://github.com/xerub/img4lib), [img4tool](https://github.com/tihmstar/img4tool), or our dedicated [MacEfiUnpack](https://github.com/acidanthera/OpenCorePkg/blob/master/Utilities/MacEfiUnpack/MacEfiUnpack.py). For example, `for i in *.im4p ; do ./MacEfiUnpack.py "$i" ; done`
## Credits
* All database maintainers, who continue to actualise data
* [AppleLife](https://applelife.ru/threads/dampy-originalnyx-makov.2943712) and [VirtualSMC](https://github.com/acidanthera/VirtualSMC/tree/master/Docs) hardware dump databases
* Chameleon and Clover teams for legacy Apple SMBIOS database
* [al3xjames](https://github.com/al3xtjames) for several hints and another [database](https://github.com/al3xtjames/MacGen)
* CCC and ...numberinfo.com for hiding their work and inspiring others to reverse it
* Several guys from AppleLife for conducting relevant parts of the research, thanks a lot!
* [vit9696](https://github.com/vit9696)

Binary file not shown.

Binary file not shown.

View File

@ -1,7 +1,7 @@
\documentclass[]{article}
%DIF LATEXDIFF DIFFERENCE FILE
%DIF DEL PreviousConfiguration.tex Mon May 11 17:11:58 2020
%DIF ADD ../Configuration.tex Sun May 17 03:32:30 2020
%DIF ADD ../Configuration.tex Sun May 17 14:42:56 2020
\usepackage{lmodern}
\usepackage{amssymb,amsmath}
@ -724,9 +724,9 @@ cross-platform and open-source alternative
utilised.
For BIOS booting a third-party UEFI environment provider will have to
be used. \texttt{DuetPkg} is one of the known UEFI environment providers
be used. \texttt{\DIFdelbegin \DIFdel{DuetPkg}\DIFdelend \DIFaddbegin \DIFadd{OpenDuetPkg}\DIFaddend } is one of the known UEFI environment providers
for legacy systems. To run OpenCore on such a legacy system you can install
\texttt{DuetPkg} with a dedicated tool BootInstall (bundled with OpenCore).
\texttt{\DIFdelbegin \DIFdel{DuetPkg}\DIFdelend \DIFaddbegin \DIFadd{OpenDuetPkg}\DIFaddend } with a dedicated tool BootInstall (bundled with OpenCore).
For upgrade purposes refer to \texttt{Differences.pdf} document, providing
the information about the changes affecting the configuration compared
@ -751,11 +751,15 @@ might work, but are neither supported, nor recommended. Contribution of clean
patches is welcome. Please do follow
\href{https://github.com/tianocore/tianocore.github.io/wiki/Code-Style-C}{EDK II C Codestyle}.
Required external package dependencies include
\href{https://github.com/acidanthera/EfiPkg}{EfiPkg} and
\href{https://github.com/acidanthera/MacInfoPkg}{MacInfoPkg}.
\DIFdelbegin \DIFdel{Required external package dependencies include
}%DIFDELCMD < \href{https://github.com/acidanthera/EfiPkg}{EfiPkg} %%%
\DIFdel{and
}%DIFDELCMD < \href{https://github.com/acidanthera/MacInfoPkg}{MacInfoPkg}%%%
\DIFdel{.
}%DIFDELCMD <
To compile with \texttt{XCODE5}, besides \href{https://developer.apple.com/xcode}{Xcode},
%DIFDELCMD < %%%
\DIFdelend To compile with \texttt{XCODE5}, besides \href{https://developer.apple.com/xcode}{Xcode},
one should also install \href{https://www.nasm.us}{NASM} and
\href{https://github.com/acidanthera/ocbuild/tree/master/external}{MTOC}.
The latest Xcode version is recommended for use despite the toolchain name. Example
@ -765,9 +769,8 @@ command sequence may look as follows:
\begin{lstlisting}[caption=Compilation Commands, label=compile, style=ocbash,alsolanguage=DIFcode]
git clone https://github.com/acidanthera/audk UDK
cd UDK
%DIF > git clone https://github.com/acidanthera/DuetPkg
git clone https://github.com/acidanthera/EfiPkg
git clone https://github.com/acidanthera/MacInfoPkg
%DIF < git clone https://github.com/acidanthera/EfiPkg
%DIF < git clone https://github.com/acidanthera/MacInfoPkg
git clone https://github.com/acidanthera/OpenCorePkg
source edksetup.sh
make -C BaseTools
@ -788,14 +791,22 @@ Add \texttt{.clang\_complete} file with similar content to your UDK root:
-I/UefiPackages/MdeModulePkg
-I/UefiPackages/MdeModulePkg/Include
-I/UefiPackages/MdeModulePkg/Include/X64
%DIF > -I/UefiPackages/DuetPkg/Include
-I/UefiPackages/EfiPkg
-I/UefiPackages/EfiPkg/Include
-I/UefiPackages/EfiPkg/Include/X64
-I/UefiPackages/AppleSupportPkg/Include
-I/UefiPackages/OpenCorePkg/Include
%DIF < -I/UefiPackages/EfiPkg
%DIF < -I/UefiPackages/EfiPkg/Include
%DIF < -I/UefiPackages/EfiPkg/Include/X64
%DIF < -I/UefiPackages/AppleSupportPkg/Include
%DIF < -I/UefiPackages/OpenCorePkg/Include
%DIF < -I/UefiPackages/MacInfoPkg/Include
%DIF > -I/UefiPackages/OpenCorePkg/Include/AMI
%DIF > -I/UefiPackages/OpenCorePkg/Include/Acidanthera
%DIF > -I/UefiPackages/OpenCorePkg/Include/Apple
%DIF > -I/UefiPackages/OpenCorePkg/Include/Apple/X64
%DIF > -I/UefiPackages/OpenCorePkg/Include/Duet
%DIF > -I/UefiPackages/OpenCorePkg/Include/Generic
%DIF > -I/UefiPackages/OpenCorePkg/Include/Intel
%DIF > -I/UefiPackages/OpenCorePkg/Include/Microsoft
%DIF > -I/UefiPackages/OpenCorePkg/Include/VMware
%DIF > -I/UefiPackages/OvmfPkg/Include
-I/UefiPackages/MacInfoPkg/Include
-I/UefiPackages/UefiCpuPkg/Include
-IInclude
-include
@ -831,11 +842,16 @@ listed below before submitting their patches. In general it is also recommended
discuss the issue in \href{https://github.com/acidanthera/bugtracker}{Acidanthera Bugtracker}
before sending the patch to ensure no double work and to avoid your patch being rejected.
\textbf{Organisation}. The codebase is structured in multiple repositories
which contain separate EDK II packages. \texttt{AppleSupportPkg} and \texttt{OpenCorePkg}
are primary packages, and \texttt{EfiPkg}, \texttt{MacInfoPkg.dsc})
\textbf{Organisation}. The codebase is \DIFdelbegin \DIFdel{structured in multiple repositories
which contain separate EDK II packages.
}\texttt{\DIFdel{AppleSupportPkg}} %DIFAUXCMD
\DIFdel{and }\DIFdelend \DIFaddbegin \DIFadd{contained in }\DIFaddend \texttt{OpenCorePkg} \DIFdelbegin \DIFdel{are primary packages, and }\texttt{\DIFdel{EfiPkg}}%DIFAUXCMD
\DIFdel{, }\texttt{\DIFdel{MacInfoPkg.dsc}}%DIFAUXCMD
\DIFdel{)
are dependent packages.
\begin{itemize}
}\DIFdelend \DIFaddbegin \DIFadd{repository,
which is the primary EDK II package.
}\DIFaddend \begin{itemize}
\tightlist
\item Whenever changes are required in multiple repositories, separate pull requests should
be sent to each.
@ -2413,7 +2429,7 @@ algorithm. The display order as follows:
}\end{itemize}
\emph{\DIFadd{Note 1}}\DIFadd{: This process is meant to work reliably only when }\texttt{\DIFadd{RequestBootVarRouting}}
\DIFadd{option is enabled or the firmware does not control UEFI boot options (}\texttt{\DIFadd{DuetPkg}} \DIFadd{or
\DIFadd{option is enabled or the firmware does not control UEFI boot options (}\texttt{\DIFadd{OpenDuetPkg}} \DIFadd{or
custom BDS). Without }\texttt{\DIFadd{BootProtect}} \DIFadd{it also is possible that other operating systems
overwrite OpenCore, make sure to enable it if you plan to use them.
}
@ -3552,7 +3568,8 @@ troubleshooting:
In 10.15 debugging support was mostly broken before 10.15.4 due to some
kind of refactoring and introduction of a
\href{https://github.com/acidanthera/EfiPkg/blob/master/Include/Protocol/AppleDebugLog.h}{new debug protocol}.
\DIFdelbegin %DIFDELCMD < \href{https://github.com/acidanthera/EfiPkg/blob/master/Include/Protocol/AppleDebugLog.h}{new debug protocol}%%%
\DIFdelend \DIFaddbegin \href{https://github.com/acidanthera/OpenCorePkg/blob/master/Include/Apple/Protocol/AppleDebugLog.h}{new debug protocol}\DIFaddend .
Some of the arguments and their values below may not be valid for versions prior
to 10.15.4. The list of known arguments is covered below:
@ -3673,8 +3690,10 @@ troubleshooting:
Platform information is comprised of several identification fields
generated or filled manually to be compatible with macOS services. The
base part of the configuration may be obtained from
\href{https://github.com/acidanthera/MacInfoPkg}{\texttt{MacInfoPkg}}
package, which itself generates a set of interfaces based on a database
\DIFdelbegin %DIFDELCMD < \href{https://github.com/acidanthera/MacInfoPkg}{\texttt{MacInfoPkg}}
%DIFDELCMD < %%%
\DIFdel{package}\DIFdelend \DIFaddbegin \href{https://github.com/acidanthera/OpenCorePkg/blob/master/AppleModels}{\texttt{AppleModels}}\DIFaddend ,
which itself generates a set of interfaces based on a database
in \href{https://yaml.org/spec/1.2/spec.html}{YAML} format. These fields
are written to three select destinations:
@ -3683,9 +3702,12 @@ are written to three select destinations:
\item
\href{https://www.dmtf.org/standards/smbios}{SMBIOS}
\item
\href{https://github.com/acidanthera/EfiPkg/blob/master/Include/Protocol/DataHub.h}{Data
\DIFdelbegin %DIFDELCMD < \href{https://github.com/acidanthera/EfiPkg/blob/master/Include/Protocol/DataHub.h}{Data
%DIFDELCMD < Hub}
%DIFDELCMD < %%%
\DIFdelend \DIFaddbegin \href{https://github.com/acidanthera/OpenCorePkg/blob/master/Include/Intel/Protocol/DataHub.h}{Data
Hub}
\item
\DIFaddend \item
NVRAM
\end{itemize}
@ -4106,7 +4128,8 @@ be used. Version with macOS specific enhancements can be downloaded from
compatibility. This value could look like
\texttt{MM71.88Z.0234.B00.1809171422} in older firmwares, and is
described in
\href{https://github.com/acidanthera/EfiPkg/blob/master/Include/Guid/BiosId.h}{BiosId.h}.
\DIFdelbegin %DIFDELCMD < \href{https://github.com/acidanthera/EfiPkg/blob/master/Include/Guid/BiosId.h}{BiosId.h}%%%
\DIFdelend \DIFaddbegin \href{https://github.com/acidanthera/OpenCorePkg/blob/master/Include/Apple/Guid/BiosId.h}{BiosId.h}\DIFaddend .
In newer firmwares it should look like \texttt{236.0.0.0.0} or
\texttt{220.230.16.0.0\ (iBridge:\ 16.16.2542.0.0,0)}. iBridge version
is read from \texttt{BridgeOSVersion} variable, and is only present on
@ -4161,7 +4184,7 @@ Apple ROM Version
\emph{Note}: If \texttt{SystemProductName} is unknown, and related
fields are unspecified, default values should be assumed as being set
to \texttt{MacPro6,1} data. The list of known products can be found in
\texttt{MacInfoPkg}.
\texttt{\DIFdelbegin \DIFdel{MacInfoPkg}\DIFdelend \DIFaddbegin \DIFadd{AppleModels}\DIFaddend }.
\item
\texttt{SystemVersion}\\
\textbf{Type}: \texttt{plist\ string}\\
@ -4176,7 +4199,8 @@ Apple ROM Version
\textbf{SMBIOS}: System Information (Type 1) --- Serial Number\\
\textbf{Description}: Product serial number in defined format. Known
formats are described in
\href{https://github.com/acidanthera/MacInfoPkg/blob/master/macserial/FORMAT.md}{macserial}.
\DIFdelbegin %DIFDELCMD < \href{https://github.com/acidanthera/MacInfoPkg/blob/master/macserial/FORMAT.md}{macserial}%%%
\DIFdelend \DIFaddbegin \href{https://github.com/acidanthera/OpenCorePkg/blob/master/Utilities/macserial/FORMAT.md}{macserial}\DIFaddend .
\item
\texttt{SystemUUID}\\
\textbf{Type}: \texttt{plist\ string}, GUID\\
@ -4299,8 +4323,10 @@ Apple ROM Version
\textbf{SMBIOS}: \texttt{APPLE\_SMBIOS\_TABLE\_TYPE133} -
\texttt{PlatformFeature}\\
\textbf{Description}: Platform features bitmask. Refer to
\href{https://github.com/acidanthera/EfiPkg/blob/master/Include/IndustryStandard/AppleFeatures.h}{AppleFeatures.h}
for more details. Use \texttt{0xFFFFFFFF} value to not provide this table.
\DIFdelbegin %DIFDELCMD < \href{https://github.com/acidanthera/EfiPkg/blob/master/Include/IndustryStandard/AppleFeatures.h}{AppleFeatures.h}
%DIFDELCMD < %%%
\DIFdelend \DIFaddbegin \href{https://github.com/acidanthera/OpenCorePkg/blob/master/Include/Apple/IndustryStandard/AppleFeatures.h}{AppleFeatures.h}
\DIFaddend for more details. Use \texttt{0xFFFFFFFF} value to not provide this table.
\item
\texttt{SmcVersion}\\
\textbf{Type}: \texttt{plist\ data}, 16 bytes\\
@ -4315,8 +4341,10 @@ Apple ROM Version
\textbf{SMBIOS}: \texttt{APPLE\_SMBIOS\_TABLE\_TYPE128} -
\texttt{FirmwareFeatures} and \texttt{ExtendedFirmwareFeatures}\\
\textbf{Description}: 64-bit firmware features bitmask. Refer to
\href{https://github.com/acidanthera/EfiPkg/blob/master/Include/IndustryStandard/AppleFeatures.h}{AppleFeatures.h}
for more details. Lower 32 bits match \texttt{FirmwareFeatures}. Upper
\DIFdelbegin %DIFDELCMD < \href{https://github.com/acidanthera/EfiPkg/blob/master/Include/IndustryStandard/AppleFeatures.h}{AppleFeatures.h}
%DIFDELCMD < %%%
\DIFdelend \DIFaddbegin \href{https://github.com/acidanthera/OpenCorePkg/blob/master/Include/Apple/IndustryStandard/AppleFeatures.h}{AppleFeatures.h}
\DIFaddend for more details. Lower 32 bits match \texttt{FirmwareFeatures}. Upper
64 bits match \texttt{ExtendedFirmwareFeatures}.
\item
\texttt{FirmwareFeaturesMask}\\
@ -4327,8 +4355,10 @@ Apple ROM Version
\texttt{ExtendedFirmwareFeaturesMask}\\
\textbf{Description}: Supported bits of extended firmware features
bitmask. Refer to
\href{https://github.com/acidanthera/EfiPkg/blob/master/Include/IndustryStandard/AppleFeatures.h}{AppleFeatures.h}
for more details. Lower 32 bits match \texttt{FirmwareFeaturesMask}.
\DIFdelbegin %DIFDELCMD < \href{https://github.com/acidanthera/EfiPkg/blob/master/Include/IndustryStandard/AppleFeatures.h}{AppleFeatures.h}
%DIFDELCMD < %%%
\DIFdelend \DIFaddbegin \href{https://github.com/acidanthera/OpenCorePkg/blob/master/Include/Apple/IndustryStandard/AppleFeatures.h}{AppleFeatures.h}
\DIFaddend for more details. Lower 32 bits match \texttt{FirmwareFeaturesMask}.
Upper 64 bits match \texttt{ExtendedFirmwareFeaturesMask}.
\item
\texttt{ProcessorType}\\
@ -4364,9 +4394,11 @@ Loading an incompatible driver may lead your system to unbootable state or
even cause permanent firmware damage. Some of the known drivers are listed below:
\begin{tabular}{p{1.3in}p{5.55in}}
\href{https://github.com/acidanthera/AppleSupportPkg}{\texttt{AudioDxe}}
& HDA audio support driver in UEFI firmwares for most Intel and some other analog audio controllers.
Refer to \href{https://github.com/acidanthera/bugtracker/issues/740}{acidanthera/bugtracker\#740}
\DIFdelbegin %DIFDELCMD < \href{https://github.com/acidanthera/AppleSupportPkg}{\texttt{AudioDxe}}
%DIFDELCMD < %%%
\DIFdelend \DIFaddbegin \href{https://github.com/acidanthera/OpenCorePkg}{\texttt{AudioDxe}}
\DIFaddend & HDA audio support driver in UEFI firmwares for most Intel and some other analog audio controllers.
\DIFdelbegin \DIFdel{Refer }\DIFdelend \DIFaddbegin \DIFadd{Staging driver, refer }\DIFaddend to \href{https://github.com/acidanthera/bugtracker/issues/740}{acidanthera/bugtracker\#740}
for known issues in AudioDxe. \\
\href{https://github.com/acidanthera/OcBinaryData}{\texttt{ExFatDxe}}
& Proprietary ExFAT file system driver for Bootcamp support commonly found in Apple
@ -4399,7 +4431,7 @@ even cause permanent firmware damage. Some of the known drivers are listed below
on top of a custom USB keyboard driver implementation. This is an alternative to
builtin \texttt{KeySupport}, which may work better or worse depending on the firmware. \\
\href{https://github.com/acidanthera/audk}{\texttt{Ps2KeyboardDxe}}\textbf{*}
& PS/2 keyboard driver from \texttt{MdeModulePkg}. DuetPkg and some firmwares
& PS/2 keyboard driver from \texttt{MdeModulePkg}. \DIFdelbegin \DIFdel{DuetPkg }\DIFdelend \DIFaddbegin \texttt{\DIFadd{OpenDuetPkg}} \DIFaddend and some firmwares
may not include this driver, but it is necessary for PS/2 keyboard to work.
Note, unlike \texttt{OpenUsbKbDxe} this driver has no \texttt{AppleKeyMapAggregator}
support and thus requires \texttt{KeySupport} to be enabled. \\
@ -4411,8 +4443,10 @@ even cause permanent firmware damage. Some of the known drivers are listed below
& USB mouse driver from \texttt{MdeModulePkg}. Some virtual machine firmwares
like OVMF may not include this driver, but it is necessary for mouse to work
in UEFI graphical interfaces, such as \texttt{OpenCanopy}. \\
\href{https://github.com/acidanthera/AppleSupportPkg}{\texttt{VBoxHfs}}
& HFS file system driver with bless support. This driver is an alternative to
\DIFdelbegin %DIFDELCMD < \href{https://github.com/acidanthera/AppleSupportPkg}{\texttt{VBoxHfs}}
%DIFDELCMD < %%%
\DIFdelend \DIFaddbegin \href{https://github.com/acidanthera/OpenCorePkg}{\texttt{VBoxHfs}}
\DIFaddend & HFS file system driver with bless support. This driver is an alternative to
a closed source \texttt{HfsPlus} driver commonly found in Apple firmwares. While
it is feature complete, it is approximately 3~times slower and is yet to undergo
a security audit. \\
@ -4625,10 +4659,13 @@ functioning. Feature highlights:
\texttt{AXEFIAudio} for macOS bootloader audio files.
\item Audio localisation is a two letter language code (e.g. \texttt{en})
with an exception for Chinese, Spanish, and Portuguese. Refer to
\href{https://github.com/acidanthera/EfiPkg/blob/master/Include/Protocol/AppleVoiceOver.h}{\texttt{APPLE\_VOICE\_OVER\_LANGUAGE\_CODE} definition}
for the list of all supported localisations.
\DIFdelbegin %DIFDELCMD < \href{https://github.com/acidanthera/EfiPkg/blob/master/Include/Protocol/AppleVoiceOver.h}{\texttt{APPLE\_VOICE\_OVER\_LANGUAGE\_CODE} definition}
%DIFDELCMD < %%%
\DIFdelend \DIFaddbegin \href{https://github.com/acidanthera/OpenCorePkg/blob/master/Include/Apple/Protocol/AppleVoiceOver.h}{\texttt{APPLE\_VOICE\_OVER\_LANGUAGE\_CODE} definition}
\DIFaddend for the list of all supported localisations.
\item Audio path is the base filename corresponding to a file identifier. For macOS bootloader audio paths refer to
\href{https://github.com/acidanthera/EfiPkg/blob/master/Include/Protocol/AppleVoiceOver.h}{\texttt{APPLE\_VOICE\_OVER\_AUDIO\_FILE} definition}.
\DIFdelbegin %DIFDELCMD < \href{https://github.com/acidanthera/EfiPkg/blob/master/Include/Protocol/AppleVoiceOver.h}{\texttt{APPLE\_VOICE\_OVER\_AUDIO\_FILE} definition}%%%
\DIFdelend \DIFaddbegin \href{https://github.com/acidanthera/OpenCorePkg/blob/master/Include/Apple/Protocol/AppleVoiceOver.h}{\texttt{APPLE\_VOICE\_OVER\_AUDIO\_FILE} definition}\DIFaddend .
For OpenCore audio paths refer to
\href{https://github.com/acidanthera/OpenCorePkg/blob/master/Include/Protocol/OcAudio.h}{\texttt{OC\_VOICE\_OVER\_AUDIO\_FILE} definition}.
The only exception is OpenCore boot chime file, which is \texttt{OCEFIAudio\_VoiceOver\_Boot.wav}.
@ -5856,8 +5893,11 @@ you will need \texttt{debug=0x8} boot argument.
Custom name may be created by providing \texttt{.contentDetails} file.
To download recovery online you may use
\href{https://github.com/acidanthera/MacInfoPkg/blob/master/macrecovery/macrecovery.py}{macrecovery.py}
tool from \href{https://github.com/acidanthera/MacInfoPkg/releases}{MacInfoPkg}.
\DIFdelbegin %DIFDELCMD < \href{https://github.com/acidanthera/MacInfoPkg/blob/master/macrecovery/macrecovery.py}{macrecovery.py}
%DIFDELCMD < %%%
\DIFdel{toolfrom }%DIFDELCMD < \href{https://github.com/acidanthera/MacInfoPkg/releases}{MacInfoPkg}%%%
\DIFdelend \DIFaddbegin \href{https://github.com/acidanthera/OpenCorePkg/blob/master/Utilities/macrecovery/macrecovery.py}{macrecovery.py}\DIFadd{,
builtin tool}\DIFaddend .
For offline installation refer to
\href{https://support.apple.com/HT201372}{How to create a bootable installer for macOS}

View File

@ -49,14 +49,17 @@ The use of UBSan runtime requires the use of Clang compiler and `-fsanitize=unde
[Clang documentation](https://releases.llvm.org/7.0.0/tools/clang/docs/UndefinedBehaviorSanitizer.html) for more
details.
## Credits
#### Credits
- The HermitCrabs Lab
- All projects providing third-party code (refer to file headers)
- [AppleLife](https://applelife.ru) team and user-contributed resources
- Chameleon and Clover teams for hints and legacy
- [al3xtjames](https://github.com/al3xtjames)
- [Andrey1970AppleLife](https://github.com/Andrey1970AppleLife)
- [Download-Fritz](https://github.com/Download-Fritz)
- [Goldfish64](https://github.com/Goldfish64)
- [nms42](https://github.com/nms42)
- [PMHeart](https://github.com/PMHeart)
- [savvamitrofanov](https://github.com/savvamitrofanov)
- [vit9696](https://github.com/vit9696)

View File

@ -6,14 +6,3 @@ This driver, based on [VBoxHfs](https://www.virtualbox.org/browser/vbox/trunk/sr
## AudioDxe
Improved audio driver (currently only Intel HD audio).
HDMI or other digital outputs don't work.
## Credits
- [Brad Conte](https://github.com/B-Con) for Sha256 implementation
- [Chromium OS project](https://github.com/chromium) for Rsa2048Sha256 signature verification implementation
- [cugu](https://github.com/cugu) for awesome research according APFS structure
- [Download-Fritz](https://github.com/Download-Fritz) for Apple EFI reverse-engineering
- [nms42](https://github.com/nms42) for advancing VBoxHfs driver
- [savvas](https://github.com/savvamitrofanov)
- [VirtualBox OSE project](https://www.virtualbox.org) for original VBoxHfs driver
- [vit9696](https://github.com/vit9696) for codereview and support in the development
- [Goldfish64](https://github.com/Goldfish64) for AudioDxe