OpenCorePkg/STATUS.md
2019-04-09 19:15:23 +03:00

156 lines
5.2 KiB
Markdown

#### Library status
All libraries have several documentation and codestyle issues. These are not
listed here.
- **Functional** state implies that the library is being used.
- **In progress** state implies that the library is incomplete for usage.
- **Legacy** state implies that the library is abandoned.
* OcAcpiLib
**Summary**: ACPI injector and patcher
**Status**: functional
**Issues**: none
* OcAppleBootPolicyLib
**Summary**: Apple bless protocol implementation
**Status**: functional
**Issues**: none
* OcAppleKernelLib
**Summary**: Apple kernelspace injector and patcher
**Status**: functional
**Issues**:
1. Booting without caches on 10.9 or earlier will bypass kext injection.
* OcCompressionLib
**Summary**: Misc compression and decompression (LZSS, LZVN, ZLIB)
**Status**: functional
**Issues**: none
* OcAppleChunklistLib
**Summary**: Apple chunklist (e.g. for dmg hashes) handling library
**Status**: in progress
**Issues**:
1. No signature verification.
* OcAppleImageVerificationLib
**Summary**: Apple EFI image signature verification lib
**Status**: in progress
**Issues**:
1. Has potential security flaws.
* OcBootManagementLib
**Summary**: Simple blessed-based boot management with UI
**Status**: functional
**Issues**:
1. No proper interface for OS detection.
1. No dmg boot detection.
1. No preferred entry detection from nvram BootOrder
* OcCpuLib
**Summary**: CPU feature scanning
**Status**: functional
**Issues**:
1. No package count detection.
1. No AMD CPU support.
1. Apple processor type detection is incomplete.
* OcCryptoLib
**Summary**: Misc cryptographic primitives (AES, RSA, MD5, SHA-1, SHA-256)
**Status**: functional
**Issues**: none
* OcDataHubLib
**Summary**: Apple-specific DataHub data configuration
**Status**: functional
**Issues**: none
* OcAppleDiskImageLib
**Summary**: Expose DMG as an UEFI RAM disk
**Status**: in progress
**Issues**:
* OcConfigurationLib
**Summary**: Deserialize OpenCore configuration
**Status**: functional
**Issues**:
* OcDebugLogLib
**Summary**: Debug output redirection through OC Log protocol
**Status**: functional
**Issues**:
1. No file logging.
* OcDevicePathLib
**Summary**: Device path management and transformation
**Status**: legacy
**Issues**:
1. Subject for removal if no use.
* OcDevicePropertyLib
**Summary**: Apple device property protocol implementation
**Status**: functional
**Issues**:
1. No research done on Apple Thunderbolt protocol.
1. NVRAM property loading is untested and needs auditing.
1. Device path conversion is not verified
* OcFileLib
**Summary**: Supplemental file I/O
**Status**: functional
**Issues**: none
* OcFirmwarePasswordLib
**Summary**: Apple firmware password protocol implementation
**Status**: functional
**Issues**:
1. No research done on Apple Firmware Password protocol.
* OcGuardLib
**Summary**: Basic sanity checking (static assertions, overflow maths)
**Status**: functional
**Issues**:
1. Stack canary has no runtime support (e.g. via rdrand)
1. Stack canary does not work with LTO
* OcMachoLib
**Summary**: Mach-O image handling and transformation
**Status**: functional
**Issues**: none
* OcMiscLib
**Summary**: Miscellaneous stuff not fitting elsewhere
**Status**: legacy
**Issues**:
1. Subject for refactoring except Base64Decode, DataPatcher, LegacyRegion, NullTextOutput.
* OcPngLib
**Summary**: PNG image decoding
**Status**: functional
**Issues**: none
* OcRtcLib
**Summary**: CMOS memory access
**Status**: functional
**Issues**: none
* OcSerializeLib
**Summary**: PLIST document deserialization
**Status**: functional
**Issues**: none
* OcSmbiosLib
**Summary**: Apple-specific SMBIOS data configuration
**Status**: functional
**Issues**: none
1. Potentially reports incorrect memory on some boards.
1. No SMC information table is provided.
* OcStorageLib
**Summary**: Resource storage abstraction (from e.g. FS I/O)
**Status**: in progress
**Issues**: none
1. Does not support signature verification.
1. Does not detect file removal from signed vault.
* OcStringLib
**Summary**: String handling and management
**Status**: functional
**Issues**:
1. Several functions are duplicates of UDK or are insecurely designed and are subject for removal.
* OcTemplateLib
**Summary**: Data description and resource management
**Status**: functional
**Issues**: none
* OcTimerLib
**Summary**: EDK II timer library based on TSC
**Status**: functional
**Issues**:
1. No AMD CPU support.
* OcVirtualFsLib
**Summary**: UEFI file system interception
**Status**: functional
**Issues**:
1. Does not support directory iteration with virtualised files.
* OcXmlLib
**Summary**: XML and PLIST reading and transformation
**Status**: functional
**Issues**: none