OpenCorePkg README

The project's README from github.com/acidanthera/OpenCorePkg. As one markdown file: README.md.

Build Status Scan Status

OpenCore bootloader with development SDK.

Libraries

This repository also contains additional UEFI support common libraries shared by other projects in Acidanthera. The primary purpose of the library set is to provide supplemental functionality for Apple-specific UEFI drivers. Key features:

Early history of the codebase could be found in AppleSupportPkg and PicoLib library set by The HermitCrabs Lab.

OcGuardLib

This library implements basic safety features recommended for the use within the project. It implements fast safe integral arithmetics mapping on compiler builtins, type alignment checking, and UBSan runtime, based on NetBSD implementation.

The use of UBSan runtime requires the use of Clang compiler and -fsanitize=undefined argument. Refer to Clang documentation for more details.

Credits

Discussion

Please refer to the following list of OpenCore discussion forums.

OpenCorePkg (acidanthera/OpenCorePkg)

Searching Database…

Что это такое?OpenCorePkg — это OpenCore, загрузчик UEFI вместе с комплектом для разработки (SDK). Он известен прежде всего тем, что позволяет загружать и патчить macOS на компьютерах не от Apple, а также содержит общие библиотеки UEFI, которые используют другие проекты Acidanthera.
Это только загрузчик или ещё и библиотека кода?И то, и другое: это сам загрузчик OpenCore и набор многократно используемых библиотек поддержки UEFI (загрузка образов дисков, инструменты ACPI/SMBIOS, криптографические примитивы, загрузка образов PE, вывод текста и графики), которые подключают другие проекты Acidanthera.
Нужен ли именно Clang, чтобы включить дополнительные проверки безопасности?Да, для необязательного рантайма UBSan в OcGuardLib: нужен компилятор Clang, собранный с флагом -fsanitize=undefined, так как санитайзер неопределённого поведения — это возможность Clang.
Это работает только на настоящих Mac или на любом ПК с UEFI?OpenCore чаще всего используют, чтобы заставить macOS загружаться на ПК не от Apple с прошивкой UEFI (хакинтош), а его библиотеки, специфичные для Apple (код безопасной загрузки, проверки подписей образов PE), также поддерживают другие инструменты Acidanthera, которые работают на настоящем оборудовании Mac.
Что такое OcGuardLib?Это библиотека в этом репозитории, которая реализует базовые рекомендации по безопасности для проекта: например, быстрые целочисленные вычисления с проверкой переполнения, проверку выравнивания типов и необязательный рантайм UBSan для Clang.
Откуда изначально взялась эта кодовая база?Её ранняя история восходит к AppleSupportPkg и набору библиотек PicoLib, созданных The HermitCrabs Lab, а в более поздних частях кода есть подсказки и отсылки к наследию команд загрузчиков Chameleon и Clover.
Какие низкоуровневые задачи за меня решает встроенный SDK?Общие библиотеки берут на себя такие задачи, как патчинг ACPI/SMBIOS, разбор конфигураций plist, рендеринг PNG, распаковка zlib/lzss/lzvn, внедрение и патчинг драйверов ядра XNU, а также загрузку образов PE так, чтобы не конфликтовать с безопасной загрузкой UEFI (Secure Boot).
Есть ли в комплекте какая-либо криптография?Да, в составе есть криптографические примитивы, такие как SHA-256 и RSA, которые используются, например, для проверки подписей образов PE от Apple и для дополнительного кода безопасной загрузки.
Size
241.7 MB
Stars
15.6K
Age
7y
Commits · 90 Days