Jump to content


Popular Content

Showing content with the highest reputation since 12/04/2011 in all areas

  1. 32 points

    OpenCore Development

    OpenCorePkg / Documentation / Configuration Template / Bugtracker Discussion and installation should be done in a separate thread! This thread is for development only! Current status as of April 2019: Support for UEFI and DuetPkg (legacy) booting APFS and HFS+ compatibility ACPI patcher (adding, dropping, binary patching, relocation) Apple-compatible bless implementation DeviceProperties injection DataHub and SMBIOS generation Symbolic kext and kernel patcher Direct kext injection/patching/blocking within prelinkedkernel Installation/Recovery/FileVault 2 support Configuration in config.plist with open documentation Simple boot picker for quick launch Direct boot from dmg images Known defects live here. For those, who are not familiar with the history, OpenCore is a project initially born in HermitCrabs Lab that unfortunately almost died before its birth. This release is both a rebirth and a complete rewrite of OpenCore, which brings a number of new ideas, and tries to preserve the smart moves incorporated by iNDi and his team. Other than that, I wish to express my deepest words of gratitude to Acidanthera and WWHC members: your participation was and remains the key for project success, and you are simply the best.
  2. 25 points
    I'm just going to run through some of the changes I made to RehabMan's BrcmPatchRAM project for it to function in macOS Catalina. I don't really have time to go any further with it but hopefully my research and testing can help get an official working version out. I'm using BrcmFirmwareData.kext, BrcmPatchRAM2.kext and BrcmBluetoothInjector.kext and place them inside EFI/CLOVER/kexts/Other BrcmBluetoothInjector.kext was not required on previous macOS releases but is on Catalina because of the following missing IOCatalogue methods: kxld[com.no-one.BrcmPatchRAM2]: The following symbols are unresolved for this kext: kxld[com.no-one.BrcmPatchRAM2]: IOCatalogue::addDrivers(OSArray*, bool) kxld[com.no-one.BrcmPatchRAM2]: IOCatalogue::removeDrivers(OSDictionary*, bool) kxld[com.no-one.BrcmPatchRAM2]: IOCatalogue::startMatching(OSDictionary*) Since these methods are no longer available they must be removed from the project. The easiest way to do this is to comment out publishPersonality() and publishResourcePersonality() methods from BrcmPatchRAM.cpp / BrcmPatchRAM.h. Also remove all calls to these methods in BrcmPatchRAM.cpp. The next issue is dealing with the 0xe00002c2 error when reading and writing to the BRCM hardware. Starting with BrcmPatchRAM::continuousRead() and BrcmPatchRAM::readCompletion() we need to add an kIODirectionIn option. ie. mReadBuffer = IOBufferMemoryDescriptor::inTaskWithOptions(kernel_task, kIODirectionIn, 0x200); IOReturn result = mReadBuffer->prepare(kIODirectionIn); IOReturn result = me->mReadBuffer->complete(kIODirectionIn); Next in BrcmPatchRAM::bulkWrite we need to add kIODirectionOut options. if (IOMemoryDescriptor* buffer = IOMemoryDescriptor::withAddress((void*)data, length, kIODirectionOut)) if ((result = buffer->prepare(kIODirectionOut)) == kIOReturnSuccess) if ((result = buffer->complete(kIODirectionOut)) != kIOReturnSuccess) Now that we don't have IOCatalogue::addDrivers, IOCatalogue::removeDrivers and IOCatalogue::startMatching methods to switch from using the uploader driver to native macOS driver we have to use BrcmBluetoothInjector.kext instead. So my Bluetooth device is a BCM20702A0 with VendorID 0x0A5C and ProductID 0x216F (Dell DW1560 4352+20702 M.2) located in internal USB port HS14. So I'll use it as an example for the following modifications. In BrcmPatchRAM2-Info.plist we need the following entry. Note the addition of the IOProbeScore. When the kext is loaded it will call BrcmPatchRAM::probe which will update the firmware and return NULL and then the BrcmBluetoothInjector.kext should load instead. <key>0a5c_216f</key> <dict> <key>CFBundleIdentifier</key> <string>com.no-one.$(PRODUCT_NAME:rfc1034identifier)</string> <key>DisplayName</key> <string>DW1560 Bluetooth 4.0 LE</string> <key>FirmwareKey</key> <string>BCM20702A1_001.002.014.1443.1572_v5668</string> <key>IOClass</key> <string>BrcmPatchRAM2</string> <key>IOMatchCategory</key> <string>BrcmPatchRAM2</string> <key>IOProviderClass</key> <string>IOUSBHostDevice</string> <key>IOProbeScore</key> <integer>4000</integer> <key>idProduct</key> <integer>8559</integer> <key>idVendor</key> <integer>2652</integer> </dict> In BrcmBluetoothInjector-Info.plist we need the following entry. Note again the addition of the IOProbeScore. We want the BrcmBluetoothInjector.kext to load the macOS kext after the firmware has been uploaded to the hardware. Since BrcmBluetoothInjector.kext has not been updated in a long time you may need to add your hardware manually to the plist. Note that your Bluetooth device VendorID / ProductID is not the same as your WiFi hardware and will not show up in your PCI list. You will need to look at the USB ports to get this info. <key>0a5c_216f</key> <dict> <key>CFBundleIdentifier</key> <string>com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport</string> <key>IOClass</key> <string>BroadcomBluetoothHostControllerUSBTransport</string> <key>IOProviderClass</key> <string>IOUSBHostDevice</string> <key>IOProbeScore</key> <integer>3000</integer> <key>idProduct</key> <integer>8559</integer> <key>idVendor</key> <integer>2652</integer> </dict> You will know the firmware is uploaded when its version in About This Mac->System Report...->Bluetooth shows something like: Firmware Version: v14 c5668 If it shows 4096 then the upload has failed. I will attach my compiled versions for people to help test. I'm not 100% sure if this is method is going to work so I'd appreciate feedback on it. Downloads (acidanthera)
  3. 25 points

    AMD Vanilla Kernel

    AMD OS X is proud to announce that native macOS is available on Ryzen CPUs thanks to AlGrey. No need to use a patched kernel/prelinkedkernel. This is currently being classed as beta support and other CPUs are being worked on. https://github.com/AMD-OSX/AMD_Vanilla
  4. 20 points

    [pre-release] macOS Mojave

    First beta... macOS 10.14 Mojave beta (18A293u) Useful information: macOSDeveloperBetaAccessUtility (thanks to gengik84) or direct link from Apple's server nonSupportedModels (thanks to mitch_de) Original apfs Patched apfs (patch is the same credits PMheart and ErmaC) Clover r4515 (thanks to gengik84) USB port limit patch (thanks to PMHeart) Beta 2 New Find (thanks to FredWst) "MinStolenPatch" for KabyLake Platform Notebook (thanks to Austere.J) macOS Mojave on Core 2 Duo (thanks to Badruzeus) macOS Mojave "MinStolenSize" / DVMT-prealloc Patches ("Sniki") nVidia non-Metal GPU's on Mojave (crazybirdy)
  5. 18 points

    AGPM Injector kext generator app!!

    I would like to introduce you to a new app I just go done creating. AGPM Injector, its an app to generate an injector kext for Apple Graphics Power Management for discrete GPUs. AGPMInjector
  6. 16 points

    Clover Change Explanations

    Rev 4540 New driver developed by savvas https://github.com/acidanthera/ApfsSupportPkg/ You may exclude private apfs.efi from drivers64UEFI folder and place here the driver ApfsDriverLoader.efi. It performs loading the driver from APFS container by DiskIO protocol. The driver is open source but located not in Clover repository and at link above. It contains macbuild.tool for those who want to compile by himself.
  7. 15 points

    Clover Change Explanations

    Rev 4847-4852 There is interface in Clover GUI to tune startup sound parameters Computer will play a sound before enter Clover GUI. To do this you have to 1. Use CloverX64.efi revision 4852 or up. 2. Place AudioDxe-64.efi into drivers64 and drivers64UEFI. Playing is possible in both legacy and UEFI modes. AudioDxe.efi is included into Clover project and will be differ from original by Goldfish64 but almost compatible. 3. Place sound.wav and may be sound_night.wav into your theme folder, for example /EFI/CLOVER/theme/Clovy/. The sound must be 16bit, and 44100 or 48000Hz. But I also made conversion on the fly so 8000Hz is also supported. 4. Tune sound output in Clover GUI as on screen above. The settings will be stored in NVRAM and used next restart. With legacy Clover or systems without nvram you have to use EmuVariableUefi.efi and rc.scripts to save nvram.plist. For very new systems like Z370 where nvram is not working in macOS there is a chance that the nvram is working on Clover level and so all will works. SIC! Legacy Clover saved Variables only with Apple guid so why it will not work. After some discussing I may rebuild the system to use AppleBootGuid. In this case the system will not be compatible with the original driver but will work with legacy systems. No more needs in BootChimeCfg and BootChimeDxe while the compatibility still remains.
  8. 14 points

    Clover General discussion

    Yep you can remove apfs.efi. This loader loads apfs.efi from JSDR section inside APFS Container which located on blockio device
  9. 13 points
  10. 12 points

    Clover Change Explanations

    Rev 5052 Implemented a possibility to change injected kext. For example you want to test new version of VoodooPS2.kext while you have another one. Place new kext in folder /EFI/CLOVER/kexts/Off and your old kext in /EFI/CLOVER/kexts/Other as usual. Then go to menu and click disable one and enable another. Screenshots i.e. kexts in the folder Off are disabled by default.


  • Newsletter

    Want to keep up to date with all our latest news and information?

    Sign Up