70

GitHub - acidanthera/AppleSupportPkg: AppleSupportPkg - contains UEFI drivers fo...

 4 years ago
source link: https://github.com/acidanthera/AppleSupportPkg
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

README.md

AppleSupportPkg

Build Status Scan Status


ApfsDriverLoader

Open source apfs.efi loader based on reverse-engineered Apple's ApfsJumpStart driver. It chain loads the apfs.efi driver that is already embedded in the APFS container from this container.

  • Loads apfs.efi from APFS container located on the block device.
  • Apfs driver verbose logging suppressed.
  • Version system: connects each apfs.efi to the device from which it was retrieved.
  • Embedded signature verification of chainloaded apfs.efi driver, what prevents possible implant injection.

AppleGenericInput

Reference driver to shim AMI APTIO proprietary mouse & keyboard protocols or Generic UEFI input protocols for File Vault 2 GUI input support. Generally modified UsbKbDxe works no worse on APTIO V, but for Z77, Z87, and similar AppleGenericInput may be the only solution.

AppleUiSupport

Driver which implements set of protocol for support EfiLoginUi which used for FileVault as login window. In short, it implements FileVault support and replaces AppleKeyMapAggregator.efi, AppleEvent.efi, AppleUiTheme.efi, FirmwareVolume.efi, AppleImageCodec.efi. Also, it contains hash service fixes and unicode collation for some boards. These fixes removed from AptioMemoryFix in R23.

AppleEfiSignTool

Open source tool for verifying Apple EFI binaries. It supports ApplePE and AppleFat binaries.

FwRuntimeServices

This driver provides the necessary compatibility improvements required for normal functioning of UEFI Runtime Services such as date, time, NVRAM variable storage, and others in macOS.

VBoxHfs

This driver, based on VBoxHfs from VirtualBox OSE project driver, implements HFS+ support with bless extensions. Commit history can be found in VBoxFsDxe repository. Note, that unlike other drivers, its source code is licensed under GPLv2.

CleanNvram

Erases several NVRAM variables that may affect your boot.

VerifyMsrE2

Certain firmwares fail to properly initialize 0xE2 MSR register (MSR_BROADWELL_PKG_CST_CONFIG_CONTROL) across all the cores. This application prints 0xE2 values of all the cores and reports 0xE2 status. The notable example of desyncrhonised 0xE2 MSR registers are several GIGABYTE UEFI firmwares for Intel 100 Series and Intel 200 Series chipsets.

CFG Lock option is available on most APTIO V firmwares, although it may be hidden from the GUI. If VerifyMsrE2 reports that your 0xE2 register is consistently locked, you may try to unlock this option directly.

  1. Download UEFITool and IFR-Extractor.
  2. Open your firmware image in UEFITool and find CFG Lock unicode string. If it is not present, your firmware does not support this and you should stop.
  3. Extract the Setup.bin PE32 Image Section that UEFITool found via Extract Body.
  4. Run IFR-Extractor on the extracted file (e.g. ./ifrextract Setup.bin Setup.txt).
  5. Find CFG Lock, VarStoreInfo (VarOffset/VarName): in Setup.txt and remember the offset right after it (e.g. 0x123).
  6. Download and run a modified GRUB Shell, thx to brainsucker for the binary. A more up to date version may be found in grub-mod-setup_var repo.
  7. Enter setup_var 0x123 0x00 command, where 0x123 should be replaced by your actual offset and reboot.

WARNING: variable offsets are unique not only to each motherboard but even to its firmware version. Never ever try to use an offset without checking.

Credits


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK