Jump to content

headkaze

Developers
  • Content Count

    487
  • Joined

  • Last visited

  • Days Won

    26

Everything posted by headkaze

  1. headkaze

    Hackintool v2.7.6

    HACKINTOOL The Swiss army knife of vanilla Hackintoshing WARNING! Hackintool is not an automated patching tool that does all the work for you. Knowledge is required on how to patch before using it. Please read the Intel Framebuffer patching using WhateverGreen guide before you download this tool! I also recommend you read Daliansky's Hackintool tutorial (a proper English translation would be welcome). Mojave, Lilu + WhateverGreen You cannot use the Clover's KextsToPatch for framebuffer patching in Mojave for Skylake and above Framebuffer Dumps There are a few ways to dump your framebuffer data (the second two require WhateverGreen + Lilu debug versions) to read in Hackintool: 1. Use the Framebuffer->macOS 10.13.6 / Framebuffer->macOS 10.14 menu to create patches without a framebuffer dump 2. Use the -igfxdump boot flag to dump IGPU framebuffer kext to /AppleIntelFramebuffer_X_Y (root of your boot drive) and then File->Open menu 3. Use the -igfxfbdump boot flag to dump native and patched framebuffer table to ioreg and then File->Import->IOReg Dump menu Features - Supports Sandy Bridge, Ivy Bridge, Haswell, Broadwell, Skylake, Kaby Lake, Coffee Lake, Cannon Lake and Ice Lake generations - Create All, Connectors or VRAM patches - Detect Changes for auto patch creation - Create Clover patches in hex, base64 or Devices/Properties formats - Displays native GPU and Model identifiers - Display and edit Memory Info such as Stolen, Framebuffer, VRAM, Cursor etc. - Roll over some items for additional info (Tooltips) - Reads "live" data directly from Framebuffer kexts (if available; see Mojave note below) - File->Open framebuffer file generated by WhateverGreen's -igfxdump boot flag - File->Export->Clover config.plist / File->Export->Framebuffer.txt file - Patch audio layout id - Add USB port limit patch - Plug and unplug USB2 / USB3 devices and set port connector types then generate a USBPorts.kext - Advanced patching options (DVMT pre-alloc 32 MB, VRAM 2048 MB, Disable eGPU, Enable HDMI20 (4K), DP -> HDMI, GfxYTile Fix, Reboot Fix, USB port Limit, Spoof Audio Device Id, FB Port Limit, Spoof Gfx Device Id) Release Notes 2.7.6 - Custom Device Path generation code (big thanks to @jaymonkey for helping test). Updated Chinese translation 2.7.5 - PCI DevicePath fix 2.7.4 - Added EveryMac.com Serial Check 2.7.3 - Added Serial Number Generator (thanks to vit9696 / MacInfoPkg team) 2.7.2 - Added EDID injection to IGPU. Added DPCD Max Link Rate patching. Added tooltips for Advanced / LSPCON patch options. Updated pci.ids / AppleALC audio data 2.7.1 - Bug fixes. Updated pci.ids / AppleALC audio data 2.7.0 - Launch process output fix (big thanks to @jaymonkey for the help testing this). Prepends "Intel" for IGPU name for Intel Power Gadget (thanks again to @jaymonkey for discovering this). System Info now includes all graphics cards. iMessage Keys are now clearly labeled. Added new OpenCore logo. Updated pci.ids / AppleALC audio data 2.6.9 - Disable Gatekeeper tool fix 2.6.8 - Catalina fixes 2.6.7 - Added "HDMI Infinite Loop Fix". Added LSPCON patching. Fixes 2.6.6 - Added "Disable Gatekeeper and mount the disk in read/write mode" tool. Change GFX0 to IGPU selection no longer shows for dGPU 2.6.5 - Improved BT hardware detection (when installed) and will show if FW Loaded (if using BrcmPatchRAM) 2.6.4 - Fixes 2.6.3 - Added Atheros BT device detection 2.6.2 - Added Bluetooth to Info->Misc 2.6.1 - Fixed USB device speeds 2.6.0 - USB fixes for macOS Catalina. USB now shows device speeds. Much improved Log viewer. Installing kexts on macOS Catalina will prompt to disable Gatekeeper and mount the disk in read/write mode. Fixed Atheros install for macOS Catalina. Added NativeDisplayBrightness to kext install list. Updated translations for Korean / Chinese 2.5.9 - ACPI names must be 4 characters (thanks P1LGRIM) 2.5.8 - Now using pci.ids for Audio Controllers 2.5.7 - Removed kextcache -u / call for rebuild cache. Added more command output for tools 2.5.6 - Added column sorting to PCI table 2.5.5 - Added ASRock DeskMini 310 system config 2.5.4 - Will now output mounting errors 2.5.3 - Fixed EveryMac.com Visit link 2.5.2 - Added Host, OS, Kernel and RAM System Info 2.5.1 - Add support for 0x3EA50005 0x3EA60005 0x3E980003 frame id for CFL refresh 2.5.0 - Fixed stdout/stderr output capture for admin privilege shell commands (thanks jaymonkey) 2.4.9 - Fixes 2.4.8 - Fixes 2.4.7 - Fixes 2.4.6 - "Rebuild KextCache and Repair Permissions" moved to tools section now has progress bar 2.4.5 - Output added for "Rebuild KextCache and Repair Permissions" 2.4.4 - Chinese language updates. Compiler improvements 2.4.3 - Chinese language´╗┐ updates. USB configurator fixes´╗┐ 2.4.2 - Changed Framebuffer Info to Selected / Current Framebuffer Info for easier comparison 2.4.1 - Chinese language update 2.4.0 - Now includes iMessageDebug data (ElNono / mdmwii / flux84 / sugarface / pokenguyen). Export system info data. View model info (everymac.com). Check serial feature. Preliminary OpenCore support (thanks vit9696) 2.3.9 - ComboBox fix (thanks telepati) 2.3.8 - Bug fixes (thanks ReddestDream) 2.3.7 - Improved Clover EFI Mounting. Clover PCI export now uses SubClass for device_type 2.3.6 - Bug fixes. "Use Intel HDMI" option added (hda-gfx=onboard-x). Added "Non Scaled" resolution type 2.3.5 - Fixed bug in Device Path generator (gfxutil). Added "Generate Windows UTC Registry Files" tool 2.3.4 - Updated audio codecs, Export PCI list in Clover and dsl format, Now dumps all ACPI tables and decompiles to dsl 2.3.3 - Extract DSDT (phpdev32), Auto update PCIIDs (MuntashirAkon), Export PCI list in JSON format 2.3.2 - Monitor PCI hotplug 2.3.1 - UI Updates 2.3.1 - Right-click on a PCI device and select "Copy IOReg Path". Launch IORegistryExplorer and select Go->Go to Path... menu, paste in the path and click the "Go to Path" button. 2.2.8 - Added warning for HWP state logging (previous state can only be restored after a reboot) 2.2.7 - Added VDA Decoder status. Added DevicePath for PCI devices. Export PCI Devices list to desktop 2.2.6 - Improved Boot EFI detection. Set Boot EFI manually. AppleIntelInfo shows 30 second timer to log CStates. Restores HWP state after logging. Added Intel Regs warning. Calculator now shows reverse bytes 2.2.4 - Added AppleIntelInfo options (Enable HWP, Log: CStates, IGPU, IPG Style, Intel Regs, MSRs). Added AppleIntelInfo 20 second delay for CState capture. 2.2.2 - Added Info tab (Network Interfaces, Graphic Devices, Audio Devices and Storage Devices). Will highlight power settings green or red to indicate issues 2.2.1 - Fixes 2.2.0 - New PCI Devices, Network, Power and Tools tab 2.1.9 - Added Github kext downloading. The download version may be older than the source version. Also due to Github API rate limits it will store the latest download urls. Added Install kext(s) function. Added Rebuild KextCache and Repair Permissions function 2.1.8 - Uses kextstat to get the versions 2.1.7 - Now detects more kexts 2.1.6 - Can now download the current version numbers of Lilu + Plugins 2.0.8 - Patch->System Configs menu with various configurations you can try if your Coffee Lake system is being troublesome (CaseySJ) 2.0.4 - Apply Clover patches (KernelToPatch, KextToPatch, DSDT Renames). View, create and edit NVRAM variables (be careful!). View installed Lilu + Plugins, download and automatically compile the latest versions 1.9.6 - Disk display enhancements (icons / mount / unmount buttons) 1.9.2 - Fixes 1.9.1 - Added SSDT-UIAC.aml / SSDT-USBX.aml export support 1.9.0 - Fixed launch bug (thanks @Pavo) 1.8.7 - Added USB Power DSDT Renames 1.8.6 - Added DSDT Renames 1.8.5 - Fixes 1.8.4 - Auto update capability using Sparkle framework 1.8.3 - Improved Audio Device detection / selection, window can now be resized 1.8.2 - Added translations; French (Matgen84), German (al6042), Korean (zisqo), Russian / Ukrainian (ctich) 1.8.1 - Clover downloader (Kozlek / JrCs / slice), NVRAM boot-args edit, improved authorization, UI update 1.8.0 - Improved USB power export (corpnewt), other fixes, new icon 1.7.9 - Added USB power export, EFI partition mounting, calculator and log viewer 1.7.8 - Added resolution injection from one-key-hidpi script (xzhih) 1.7.7 - Added EDID patching support for AMD & nVidia 1.7.6 - EDID overrides can now export custom icons 1.7.5 - Improved USB guide, added print button 1.7.4 - Fixed defaults 1.7.3 - Updates 1.7.2 - Renamed app to Hackintool, added EDID injection support (Andy Vandijck) 1.7.1 - Dark mode fixes 1.7.0 - USB & Audio info added, shows possible spoof / kext requirements 1.6.9 - Updates 1.6.8 - Added framebuffer-camellia and framebuffer-flags patching support 1.6.7 - Added Macmini8,1 and MacBookAir8,1 definitions 1.6.6 - Data file updates 1.6.5 - Fixed USBInjectAll detection 1.6.4 - Audio layout id detection improvement 1.6.3 - Now shows Audio Controller 1.6.2 - USB fixes 1.6.1 - Improved Spoof Audio Device Id option 1.6.0 - Fixes 1.5.9 - Now shows USB Controllers 1.5.8 - Will store and restore USB ports between app sessions for use with new USBInjectAll.kext (0.7.0) to include boot flags for excluding groups of ports 1.5.7 - Now detects EHC and hub ports (thanks to RehabMan & SavageAUS). Multi-select USB Ports. Now detects if USBInjectAll is installed 1.5.4 - Fixed audio codec detection when user has multiple audio devices. Added "Reboot Fix" advanced patch (sets connector pipe values to 18) 1.5.3 - Improved Export->Clover config.plist and now makes a backup (config-backup.plist) 1.5.2 - Added Patch->AzulPatcher4600 1.5.1 - USBPorts port-count fix 1.5.0 - Fixes 1.4.9 - Added tab to show if Lilu, WhateverGreen and AppleALC are installed and version info 1.4.8 - Fixed framebuffer-cursormem output for iASL DSL Source patching 1.4.7 - Added support for new WEG -igfxfbdump boot flag using File->Import->IOReg Dump menu 1.4.6 - Fixes. Added Framebuffer->macOS 10.14 menu item. Added QE/CI and Metal support detection 1.4.5 - Added support for framebuffer-cursormem (Haswell) 1.4.4 - Added ability to inject valid device-id's 1.4.3 - Fixes 1.4.2 - Added Patch->Import KextsToPatch / Apply Current Patches menu. Renamed USBPower.kext -> USBPorts.kext 1.4.1 - Added TypeC USB ports 1.4.0 - Improved Intel Generation detection 1.3.9 - Now using AppleIntelFramebuffer@X index for connector association 1.3.8 - Fixed bug AppleIntelFramebuffer port-number should be connecter index + 4 or 0 for internal (RehabMan) 1.3.7 - Shows Display Info for connected displays on connector ports (with display hot plug support), fixed iASL DSL Source hex output, connector drag-drop to change order 1.3.6 - Fixes 1.3.5 - Will try HDAS if HDEF is not found 1.3.4 - Added AllData connector patch method (RehabMan). Will try GFX0 if IGPU is not found 1.3.3 - Fixes. Added more audio layout-id's (vandroiy2013) 1.3.2 - Fixes 1.3.1 - Fixes. Added new menu Framebuffer->Current Version / macOS 10.13.6 1.3.0 - Added audio patching, Clover config.plist exporting, USB patching, advanced auto patching 1.2.8 - Added iASL DSL Source patch output, display detected Intel gen and platform-id 1.2.7 - File->Export framebuffer text file 1.2.6 - Fix preallocated memory calculation formula (vit9696) 1.2.5 - Still outputs a config.plist/Devices/Properties patch when "Auto Detect Changes" is selected 1.2.4 - Fixes 1.2.3 - config.plist/Devices/Properties patch now outputs data format 1.2.2 - Fixes 1.2.1 - Updates and fixes 1.2.0 - Added support for Cannon Lake and Ice Lake 1.1.0 - Added MacBookPro15,1 and MacBookPro15,2 models 1.0.9 - Support for Mojave, Coffee Lake, WhateverGreen's -igfxdump boot flag and Clover's config.plist/Devices/Properties patch output 1.0.8 - Updates 1.0.7 - Fixed support for dark mode 1.0.6 - Better backwards compatibility 1.0.5 - Detects Chipset / Address on Startup, Edit Memory Values Easier 1.0.4 - Added GPU / Model Info 1.0.3 - Added Tooltips 1.0.2 - Added Memory tab 1.0.1 - Minor Fixes 1.0.0 - Initial Release Credits - vit9696 for WhateverGreen (full credits), Lilu (full credits), AppleALC (full credits), USBPorts.kext and additional help - vit9696 for IntelFramebuffer.bt with additional work by bcc9, Piker-Alpha and joevt - DalianSky for Intel Core Platform ID and SMBIOS Quick Reference - vandroiy2013 for audio id data from AppleALC - RehabMan for all data patching method, ioreg framebuffer dump and other contributions Download Download Hackintool
  2. 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 (My Github Fork)
  3. headkaze

    Hackintool v2.7.6

    It looks like it's due to project name being different to the bundle id (VoodooPS2Controller != PS2Controller). I'll fix this in the next release.
  4. headkaze

    Hackintool v2.7.6

    I search IORegistry for devices matching IOHDACodecDevice. Why doesn't AZAL have this entry? Also why don't you rename AZAL to HDEF? Are you using AppleALC?
  5. headkaze

    Hackintool v2.7.6

  6. headkaze

    Hackintool v2.7.6

    Hackintool v2.7.4 Released - Added EveryMac.com Serial Check
  7. headkaze

    Hackintool v2.7.6

    Hackintool v2.7.3 Released - Added Serial Number Generator (thanks to vit9696 / MacInfoPkg team)
  8. headkaze

    Hackintool v2.7.6

    Hackintool v2.7.2 Released - Added EDID injection to IGPU - Added DPCD Max Link Rate patching - Added tooltips for Advanced / LSPCON patch options - Updated pci.ids / AppleALC audio data Can you confirm this is fixed in v2.7.2?
  9. You have BrcmFirmwareData.kext installed in EFI/Clover/kexts/Other?
  10. Framebuffer patching in Mojave Binary patching framebuffers using KextsToPatch in Clover is no longer a viable method in Mojave for Skylake and above. Now you need to use Lilu + WhateverGreen. Not just for Mojave This method of framebuffer patching is not only required for Mojave we recommend it for all previous and future releases of macOS. Coffee Lake Users Please note that the new WhateverGreen will not work with fake Kaby Lake platform-id's. You will need to have either macOS 10.14 Beta 4 (18A336e) or macOS High Sierra 10.13.6 (17G2112). The latter is a special build only available to MacBookPro15,1 or MacBookPro15,2 board id's. You can create a macOS High Sierra 10.13.6 (17G2112) installer by running installinstallmacos.py. (Update: vit9696 added back ability to fake Kaby Lake platform-id's) Lilu + WhateverGreen WhateverGreen is going to replace all the other video patching plugins for Lilu (it currently has merged WhateverGreen, IntelGraphicsFixup, NvidiaGraphicsFixup, Shiki and CoreDisplayFixup). Others will likely follow (such as AppleALC, HibernationFixup and IntelGraphicsDVMTFixup). This is aiming to be the all-in-one solution for video. Preliminary 1. Remove: - FakePCIID_Intel_HD_Graphics - IntelGraphicsFixup - NvidiaGraphicsFixup - CoreDisplayFixup - Shiki 2. Turn off all graphics injections in Clover: - config.plist/Graphics/Inject/ATI=NO - config.plist/Graphics/Inject/Intel=NO - config.plist/Graphics/Inject/NVidia=NO - config.plist/Graphics/ig-platform-id= - config.plist/Devices/FakeID/IntelGFX= 3. Disable DSDT Clover fixes: - AddHDMI - FixDisplay - FixIntelGfx - AddIMEI 4. Disable UseIntelHDMI 5. Remove boot argument: -disablegfxfirmware 6. Remove any IGPU and HDMI entries from: - config.plist/Devices/Arbitrary - config.plist/Devices/Properties - config.plist/Devices/AddProperties 7. Remove any IGPU and HDMI related SSDT and DSDT from: - CLOVER/ACPI/patched 8. Renaming GFX0 -> IGPU - WhateverGreen will do this automatically (see caveat below) - Be aware that WhateverGreen does not rename all instances of GFX0 -> IGPU but should be okay in most cases - You may need to include Clover GFX0 -> IGPU rename for other kexts or ACPI patching that require it Compile Lilu + WhateverGreen Download WhateverGreen. Make sure you place the debug version of Lilu into the root of WhateverGreen before you compile. Install Lilu and WhateverGreen kext's into the usual place. Compile WhateverGreen as debug if you want to view debug output. Having trouble compiling? If you're having trouble compiling you can download the official release binaries or download my (unsupported) build_lilu.sh shell script and run it in a folder to download and build Lilu + WhateverGreen using Xcode automatically. I recommend you try the debug versions first (place them into Clover's EFI/Clover/kexts/Other folder). Get the device path of your IGPU: Download and use the devicepath tool like so: $ ./devicepath IGPU = PciRoot(0x0)/Pci(0x2,0x0) ig-platform-id For the AAPL,ig-platform-id (AAPL,snb-platform-id for Sandy Bridge) entry Clover requires this value to be in Data format so you need to reverse the bytes. So if you want your platform-id to be 0x3EA50009 first reverse the bytes (0900A53E) then use Xcode's plist editor to add the values to Clover's config.plist. What ig-platform-id should I use for my system? You should choose one that is the closest match to your system. I recommend you do some research on this before choosing one. See post #2 for available options. More info can be found here. You can determine the generation of your CPU by the first digit after the hyphen. Examples: - Intel(R) Core(TM) i5-2760QM (Gen 2) - Intel(R) Core(TM) i7-5257U CPU @ 2.70GHz (Gen 5) - Intel(R) Core(TM) m3-6Y30 (Gen 6) - Intel(R) Core(TM) i5-8350U (Gen 8) Spoofing Intel CPU Gen If you need to spoof a different Intel CPU generation you can use the lilucpu=N boot flag. The N refers to the following Intel generations: 4 SandyBridge 5 IvyBridge 6 Haswell 7 Broadwell 8 Skylake 9 KabyLake 10 CoffeeLake To spoof a CPU you will need to set a valid device-id in your GPU entry in Devices/Properties for the appropriate Intel generation. Eg. Spoofing Skylake (lilucpu=8 boot flag with device-id=0x16190000), Kaby Lake (lilucpu=9 boot flag with device-id=0x12590000). Here are some recommended frames: Gen 2: Sandy Bridge (Intel HD Graphics 2000/3000) - S/L/E/AppleIntelSNBGraphicsFB.kext - Support started with OS X 10.7.x and ended with macOS 10.13.6 - Metal support is not available - device-id: 0x0102 0x0106 0x010A 0x0112 0x0116 0x0122 0x0126 - AAPL,snb-platform-id (desktop): 0x00030010 (default) - AAPL,snb-platform-id (laptop): 0x00010000 (default) Gen 3: Ivy Bridge (Intel HD Graphics 2500/4000) - S/L/E/AppleIntelFramebufferCapri.kext - Support started with OS X 10.8.x - device-id: 0x0152 0x0156 0x0162 0x0166 - AAPL,ig-platform-id (desktop): 0x0166000A (default), 0x01620005 - AAPL,ig-platform-id (laptop): 0x01660003 (default), 0x01660009, 0x01660004 Gen 4: Haswell (Intel HD Graphics 4200-5200) - S/L/E/AppleIntelFramebufferAzul.kext - Support started with OS X 10.9.x - device-id: 0x0D26 0x0A26 0x0A2E 0x0D22 0x0412 - AAPL,ig-platform-id (desktop): 0x0D220003 (default) - AAPL,ig-platform-id (laptop): 0x0A160000 (default), 0x0A260005 (recommended) Gen 5: Broadwell (Intel HD Graphics 5300-6300) - S/L/E/AppleIntelBDWGraphicsFramebuffer.kext - Support started with OS X 10.10.2 - device-id: 0x0BD1 0x0BD2 0x0BD3 0x1606 0x160E 0x1616 0x161E 0x1626 0x1622 0x1612 0x162B - AAPL,ig-platform-id (desktop): 0x16220007 (default) - AAPL,ig-platform-id (laptop): 0x16260006 (default) Gen 6: Skylake (Intel HD Graphics 510-580) - S/L/E/AppleIntelSKLGraphicsFramebuffer.kext - Support started with OS X 10.11.4 - device-id: 0x1916 0x191E 0x1926 0x1927 0x1912 0x1932 0x1902 0x1917 0x193B 0x191B - AAPL,ig-platform-id (desktop): 0x19120000 (default) - AAPL,ig-platform-id (laptop): 0x19160000 (default) Gen 7: Kaby Lake (Intel HD Graphics 610-650) - S/L/E/AppleIntelKBLGraphicsFramebuffer.kext - Support started with macOS 10.12.6 - device-id: 0x5912 0x5916 0x591B 0x591C 0x591E 0x5926 0x5927 0x5923 0x87C0 - AAPL,ig-platform-id (desktop): 0x59160000 (default) - AAPL,ig-platform-id (laptop): 0x591B0000 (default) Gen 8: Coffee Lake (Intel UHD Graphics 630) - S/L/E/AppleIntelCFLGraphicsFramebuffer.kext - Support started with macOS 10.13.6 (17G2112) / 10.14 beta 4 (18A336e) - device-id: 0x3E9B 0x3EA5 0x3EA6 0x3E92 0x3E91 0x3E98 - AAPL,ig-platform-id (desktop): 0x3EA50000 (default), 0x3E9B0007 (recommended) - AAPL,ig-platform-id (laptop): 0x3EA50009 (default) Framebuffer Patching WhateverGreen does most of the work automatically for you and in most cases you do not need any extra Framebuffer Patching. At the minimum though you should choose an ig-platform-id suitable for your system and place it in config.plist/Devices/Properties like this: Here are some reasons why you might need extra Framebuffer Patching: - Setting DVMT for those who can't set it above 32 MB in BIOS (framebuffer-stolenmem / framebuffer-fbmem) - Setting higher VRAM for 4K users who experience graphical glitches (framebuffer-unifiedmem) - Disabling eGPU (disable-external-gpu) - Enable pixel clock patch for 4K support (enable-hdmi20) - Disabling connectors to enable sleep (framebuffer-pipecount / framebuffer-portcount / framebuffer-conX-type=-1) - Removing CNConnectorAlwaysConnected flag for eDP laptop screens on < 10.13.6 (framebuffer-con0-flags=0x00000090) - Changing connector types to match your systems ports (framebuffer-conX-type) Framebuffer Patching Types We have three different types of patches: 1. Arbitrary (Recommended) framebuffer-patch-enable (required to enable below) framebuffer-framebufferid (optional; defaults to current platform-id) (all below are optional) framebuffer-mobile framebuffer-pipecount framebuffer-portcount framebuffer-memorycount framebuffer-stolenmem framebuffer-fbmem framebuffer-unifiedmem framebuffer-cursormem (Haswell only) framebuffer-camellia framebuffer-flags framebuffer-conX-enable (required to enable below) framebuffer-conX-index framebuffer-conX-busid framebuffer-conX-pipe framebuffer-conX-type framebuffer-conX-flags 2. All Data framebuffer-conX-enable (required to enable below) framebuffer-conX-alldata 3. Find / Replace framebuffer-patchX-enable (required to enable below) framebuffer-patchX-framebufferid (optional; defaults to current platform-id) framebuffer-patchX-find framebuffer-patchX-replace framebuffer-patchX-count (optional; defaults to 1) You should place your patches in config.plist/Devices/Properties in Clover config.plist. Here are some example patches: - 32MB BIOS, 19MB stolen (framebuffer) 9MB fbmem (cursor) 2048MB unifiedmem (vram) - Pipe / Port Count 3 to 2 - Connector 1 DP to HDMI - Connector 2 Disable Here is an example of the All Data method: Here is an example of the Find / Replace method: Framebuffer Dumps There are two ways to dump your framebuffer data (both require WhateverGreen + Lilu debug versions): 1. Using -igfxdump boot flag to dump IGPU framebuffer kext to /AppleIntelFramebuffer_X_Y (root of your boot drive) There are several ways of reading this dump: - Using 010 Editor along with the IntelFramebuffer.bt template - Using Hackintool File->Open menu 2. Using -igfxfbdump boot flag to dump native and patched framebuffer table to ioreg at IOService:/IOResources/WhateverGreen There are several ways of reading this dump: - Using dump_platformlist.sh shell script - Using Hackintool File->Import->IOReg Dump menu 3. Using Hackintool Framebuffer->macOS 10.14 menu Adjusting the brightness on a laptop 1. Method 1 Enable Clover DSDT fix AddPNLF. Enable SetIntelBacklight and SetIntelMaxBacklight. A specific value is not necessary - it will be automatically injected according to the processor installed. 2. Method 2 Use this ACPI table: SSDT-PNLF.dsl SSDT-PNLF.aml Do not use both methods at the same time! Digital Audio (HDMI / DVI / DP) To enable digital audio it is necessary to set the necessary properties and, usually, patch the connectors. To enable audio in general and HDMI in particular use WEG along with AppleALC.kext. On 10.10.5 and above, WEG automatically changes the connector-type of DP (00040000) to HDMI (00080000) if no custom patches are used. The actual connection may be of any type (HDMI / DVI / DP), but for the digital audio to function the connector-type must explicitly be HDMI. VGA support In most cases with Intel Skylake and newer it works by default. For Ivy Bridge and possibly other generations there are the options to patch your connectors with the following: 06020000 02000000 30000000 // Option 1 06020000 01000000 30000000 // Option 2 On OS X 10.8.2 and newer it is impossible to have VGA on Ivy Bridge systems. Hot-plugging VGA usually does not work. In case this doesn't help - there are no other known solutions at this time. EDID EDID is usually correctly identified, so no actions are required. In rare cases, EDID needs to be injected manually. An EDID dump can be obtained, for example, with Linux. The correct EDID must be put into *AAPL00,override-no-connect* property for IGPU, where the second 0 stands for the display number. In some cases the EDID dump may be incompatible with macOS and leads to distortions. For some EDID in such cases you can use this script, which corrects a provided EDID and saves it to your desktop. HDMI in UHD resolution with 60 fps Add the enable-hdmi20 property to IGPU, otherwise you will get a black screen. Or instead of this property use the boot-arg -cdfon Disablng a discrete graphics card Add the disable-external-gpu property to IGPU. Or instead of this property, use the boot-arg -wegnoegpu Fix the invalid maximum link rate issue on some laptops (Dell XPS 15 9570, etc.) Add the enable-dpcd-max-link-rate-fix property to IGPU, otherwise a kernel panic would happen due to a division-by-zero. Or instead of this property, use the boot-arg -igfxmlr. You could also manually specify a maximum link rate value via the dpcd-max-link-rate for the builtin display. Typically use 0x14 for 4K display and 0x0A for 1080p display. All possible values are 0x06 (RBR), 0x0A (HBR), 0x14 (HBR2) and 0x1E (HBR3). If an invalid value is specified, the default value 0x14 will be used instead. If this property is not specified, same as above. Fix the infinite loop on establishing Intel HDMI connections with a higher pixel clock rate on Skylake, Kaby Lake and Coffee Lake platforms Add the enable-hdmi-dividers-fix property to IGPU or use the -igfxhdmidivs boot argument instead to fix the infinite loop when the graphics driver tries to establish a HDMI connection with a higher pixel clock rate, for example connecting to a 2K/4K display with HDMI 1.4, otherwise the system just hangs (and your builtin laptop display remains black) when you plug in the HDMI cable. 1. General Notes For those who want to have "limited" 2K/4K experience (i.e. 2K@59Hz or 4K@30Hz) with their HDMI 1.4 port, you might find this fix helpful. For those who have a laptop or PC with HDMI 2.0 routed to IGPU and have HDMI output issues, please note that this fix is now succeeded by the LSPCON driver solution, and it is still recommended to enable the LSPCON driver support to have full HDMI 2.0 experience. (You might still need this fix temporarily to figure out the connector index of your HDMI port. See the LSPCON section below.) LSPCON driver support to enable DisplayPort to HDMI 2.0 output on IGPU 1. Brief Introduction Recent laptops (Kaby Lake/Coffee Lake-based) are typically equipped with a HDMI 2.0 port. This port could be either routed to IGPU or DGPU, and you can have a confirmation on Windows 10. Intel (U)HD Graphics, however, does not provide native HDMI 2.0 output, so in order to solve this issue OEMs add an additional hardware named LSPCON on the motherboard to convert DisplayPort into HDMI 2.0. LSPCON works in either Level Shifter (LS) or Protocol Converter (PCON) mode. When the adapter works in LS mode, it is capable of producing HDMI 1.4 signals from DisplayPort, while in PCON mode, it could provide HDMI 2.0 output. Some onboard LSPCON adapters (e.g. the one on Dell XPS 15 9570) have been configured in the firmware to work in LS mode by default, resulting a black screen on handling HDMI 2.0 connections. Starting from version 1.3.0, WhateverGreen now provides driver support for the onboard LSPCON by automatically configuring the adapter to run in PCON mode on new HDMI connections, and hence solves the black screen issue on some platforms. 2. Before you start LSPCON driver is only applicable for laptops and PCs with HDMI 2.0 routed to IGPU. LSPCON driver is necessary for all newer platforms unless the new IGPU starts to provide native HDMI 2.0 output. Supported Intel Platform: Skylake, Kaby Lake, Coffee Lake and later. Skylake Case: Intel NUC Skull Canyon; Iris Pro 580 + HDMI 2.0 with Parade PS175 LSPCON. Coffee Lake Case: Some laptops, e.g. Dell XPS 15 9570, are equipped with HDMI 2.0 and Parade PS175 LSPCON. If you have confirmed that your HDMI 2.0 is routed to IGPU and is working properly right now, you don't need to enable this driver, because your onboard LSPCON might already be configured in the firmware to work in PCON mode. 3. Instructions Dump your kernel log and you should also be able to see something simillar to lines below. // When you insert the HDMI 2.0 cable igfx @ (DBG) SC: GetDPCDInfo() DInfo: [FB0] called with controller at 0xffffff81a8680000 and framebuffer at 0xffffff81a868c000. igfx @ (DBG) SC: GetDPCDInfo() DInfo: [FB0] No LSPCON chip associated with this framebuffer. igfx @ (DBG) SC: GetDPCDInfo() DInfo: [FB0] Will call the original method. igfx @ (DBG) SC: GetDPCDInfo() DInfo: [FB0] Returns 0x0. igfx @ (DBG) SC: GetDPCDInfo() DInfo: [FB2] called with controller at 0xffffff81a8680000 and framebuffer at 0xffffff81a869a000. igfx @ (DBG) SC: LSPCON::probe() DInfo: [FB2] Found the LSPCON adapter: Parade PS1750. igfx @ (DBG) SC: LSPCON::probe() DInfo: [FB2] The current adapter mode is Level Shifter (DP++ to HDMI 1.4). igfx @ (DBG) SC: GetDPCDInfo() DInfo: [FB2] LSPCON driver has detected the onboard chip successfully. igfx @ (DBG) SC: GetDPCDInfo() DInfo: [FB2] LSPCON driver has been initialized successfully. igfx @ (DBG) SC: LSPCON::getMode() DInfo: [FB2] The current mode value is 0x00. igfx @ (DBG) SC: LSPCON::getMode() DInfo: [FB2] The current mode value is 0x00. igfx @ (DBG) SC: LSPCON::getMode() DInfo: [FB2] The current mode value is 0x00. igfx @ (DBG) SC: LSPCON::getMode() DInfo: [FB2] The current mode value is 0x01. igfx @ (DBG) SC: LSPCON::setMode() DInfo: [FB2] The new mode is now effective. igfx @ (DBG) SC: GetDPCDInfo() DInfo: [FB2] The adapter is running in preferred mode [Protocol Converter (DP++ to HDMI 2.0)]. igfx @ (DBG) SC: GetDPCDInfo() DInfo: [FB2] Will call the original method. igfx @ (DBG) SC: GetDPCDInfo() DInfo: [FB2] Returns 0x0. // When you remove the HDMI 2.0 cable igfx @ (DBG) SC: GetDPCDInfo() DInfo: [FB0] called with controller at 0xffffff81a8680000 and framebuffer at 0xffffff81a868c000. igfx @ (DBG) SC: GetDPCDInfo() DInfo: [FB0] No LSPCON chip associated with this framebuffer. igfx @ (DBG) SC: GetDPCDInfo() DInfo: [FB0] Will call the original method. igfx @ (DBG) SC: GetDPCDInfo() DInfo: [FB0] Returns 0x0. igfx @ (DBG) SC: GetDPCDInfo() DInfo: [FB2] called with controller at 0xffffff81a8680000 and framebuffer at 0xffffff81a869a000. igfx @ (DBG) SC: GetDPCDInfo() DInfo: [FB2] LSPCON driver (at 0xffffff802ba3afe0) has already been initialized for this framebuffer. igfx @ (DBG) SC: LSPCON::setModeIfNecessary() DInfo: [FB2] The adapter is already running in Protocol Converter (DP++ to HDMI 2.0) mode. No need to update. igfx @ (DBG) SC: LSPCON::wakeUpNativeAUX() DInfo: [FB2] The native AUX channel is up. DPCD Rev = 0x12. igfx @ (DBG) SC: GetDPCDInfo() DInfo: [FB2] Will call the original method. igfx @ (DBG) SC: GetDPCDInfo() DInfo: [FB2] Returns 0x0. Additionally, you can find these properties injected by the driver under the corresponding framebuffer. (Only available in DEBUG version) fw-framebuffer-has-lspcon indicates whether the onboard LSPCON adapter exists or not. fw-framebuffer-preferred-lspcon-mode indicates the preferred adapter mode. 1 is PCON, and 0 is LS. Debug Output To get debug output from Lilu use the -liludbgall liludump=60 boot flags. You will need to compile Lilu and WhateverGreen as debug for both of these flags to work. Log files should be located at /var/log/Lilu_*. To view debug paste the following into Terminal (weglog.txt will output to your home directory): log show --predicate 'process == "kernel" AND (eventMessage CONTAINS "WhateverGreen" OR eventMessage CONTAINS "Lilu")' --style syslog --source --last boot >weglog.txt Getting Help To help the users of this forum diagnose issues with your configuration please generate a Lilu debug log and then run gen_debug.sh to generate a folder of debug files you can attach to a forum post requesting help. Credits - vit9696 and lvs1974 for WhateverGreen (Full Credits) and Lilu (Full Credits) - Andrey1970 for his guide on applelife.ru - RehabMan for all data patching method, ioreg framebuffer dump and other contributions
  11. headkaze

    Hackintool v2.7.6

    Please try the one attached. Hackintool.zip
  12. headkaze

    Hackintool v2.7.6

    Can you post the log output for the one attached.
  13. headkaze

    Intel Framebuffer patching using WhateverGreen

    Yes, most likely.
  14. headkaze

    Intel Framebuffer patching using WhateverGreen

    It's the enable-hdmi20 property. You can read more about it here. It's the same as the old pixel clock patch. ie.
  15. headkaze

    Hackintool v2.7.6

    Okay thanks for letting me know I will make the change for next release.
  16. headkaze

    Hackintool v2.7.6

    The project itself is misspelled
  17. headkaze

    Hackintool v2.7.6

    Hackintool v2.7.0 Release - Launch process output fix (big thanks to @jaymonkey for the help testing this) - Prepends "Intel" for IGPU name for Intel Power Gadget (thanks again to @jaymonkey for discovering this) - System Info now includes all graphics cards - iMessage Keys are now clearly labeled - Added OpenCore new logo - Updated pci.ids / AppleALC audio data
  18. No worries Sometimes I just expand the full path so others know what we're talking about. If you're using Hackintool to output the log then it should have "Last Boot" option on by default. So what I'm seeing is that your system is loading the same kext twice in one boot. You can see it here: 2019-07-23 09:42:29.919877+0200 localhost kernel[0]: (kernel) BrcmPatchRAM2: Version 2.2.12 starting on OS X Darwin 18.7. ... 2019-07-23 09:42:42.630806+0200 localhost kernel[0]: (kernel) BrcmPatchRAM2: Version 2.2.12 starting on OS X Darwin 18.7. I've never seen this before. The BrcmPatchRAM2 firmware uploader kext unloads after probe exits and has uploaded (or attempted to upload) the firmware but I don't think it's normal for it to do it twice. In fact after BrcmPatchRAM2 has done its job BrcmBluetoothInjector is supposed to attach to your BT device (this order should be determined by IOProbeScore) which subsequently should load BroadcomBluetoothHostControllerUSBTransport. If you search the log for BroadcomBluetoothHostControllerUSBTransport do you get something like this? Timestamp (process)[PID] 2019-07-22 21:57:58.910325-0700 localhost kernel[0]: (BroadcomBluetoothHostControllerUSBTransport) <BroadcomBluetoothHostControllerUSBTransport`BroadcomBluetoothHostControllerUSBTransport::start(IOService*)> **** [BroadcomBluetoothHostControllerUSBTransport][start] -- calling retain() on mBluetoothUSBHostDevice -- Matched on device **** 2019-07-22 21:57:58.910336-0700 localhost kernel[0]: (BroadcomBluetoothHostControllerUSBTransport) <BroadcomBluetoothHostControllerUSBTransport`BroadcomBluetoothHostControllerUSBTransport::start(IOService*)> **** [BroadcomBluetoothHostControllerUSBTransport][start] -- Completed (matched on Device) -- 0xd000 **** Yeah it does seem to point to an upload issue with BrcmPatchRAM2 doesn't it? Perhaps you should try messing with some of the kernel delay flags? The only other issue I can think of right now is the parsing of the firmware is not quite right for your device. ie. BrcmFirmwareStore::parseFirmware needs to be modified to add some additional record_type's or something. Maybe researching BT update for DW1820A on Linux will point us in the right direction? I'm happy to make any changes necessary if that's the case. EDIT: I just tried parsing BCM4350C5_003.006.007.0222.4689.hex with BrcmFirmwareStore::parseFirmware and I get a correct checksum and no unknown record_type's. So it appears the parsing is not the issue in this case. EDIT2: Also tried unpacking and parsing the BCM4350C5_003.006.007.0222.4689_v8785.zhx just to make sure it's not the zlib compression causing a corrupt firmware and again no issues there. Indeed it would be useful to get @RehabMan's take on this.
  19. I know what C/K/O means. The instructions for this release say to use this location but you were using S/E. I'm not entirely sure if you're using the "--last boot" log parameter but judging by the timestamp it looks as if you have multiple kexts installed. When you removed the ones from S/E did you rebuild kext cache? Also as I mentioned earlier if you're not having any luck with RehabMan's release on Mojave I really doubt these will work for you either. All my release does is a few Catalina specific tweaks as well as use BrcmBluetoothInjector to load the native driver. You never clearly answered my question on whether or not you had this device working on a prior version of macOS; "firmware has loaded correctly on several instances" I assume means it has never worked consistently. In any case it may just be incompatible hardware and so I would suggest you try something else.
  20. Notice it says "Update not needed". That means the firmware is already uploaded. The instructions in the first post tell you to copy the files to EFI/CLOVER/kexts/Other. If you want to try Library/Extensions then you should be using BrcmFirmwareRepo.kext instead of BrcmFirmwareData.kext. But I have not done any testing with BrcmFirmwareRepo.kext or copying to L/E. That is the log of a successful firmware upload. What do you mean by "it doesn't work any more"? Do you have a BT device listed in About This Mac->System Report... Bluetooth? After BrcmFirmwareData.kext/BrcmPatchRAM2.kext successfully uploads the firmware (or detects that it's already been uploaded) it's the job of BrcmBluetoothInjector.kext to load Apple's BT drivers.
  21. headkaze

    Hackintool v2.7.6

    But that's how you have SS01/SS02 set in your aml file. You need to set the ports to the correct one's in Hackintool and then export. "SS01", Package (0x04) { "UsbConnector", 0x0A, "port", Buffer (0x04) { 0x11, 0x00, 0x00, 0x00 // .... } }, "SS02", Package (0x04) { "UsbConnector", 0x0A, "port", Buffer (0x04) { 0x12, 0x00, 0x00, 0x00 // .... } }, See how the "UsbConnector" value is 0x0A? That means when you exported the SSDT-UIAC.aml file from Hackintool the ports were set to "TypeC". You need to set them to "USB3" then export and they will be set to 0x03. You can download MaciASL to open the SSDT-UIAC.aml file and check the values. For reference they are the following: USB2 = 0x00 USB3 = 0x03 TypeC+Sw = 0x09 TypeC = 0x0A Internal = 0xFF
  22. headkaze

    Hackintool v2.7.6

    So is it correct or not?
  23. I still recommend trying the latest release. Also is your USB set up correctly? Is your Bluetooth adapter set to "Internal"? EDIT: I misread what you wrote. If you're on Mojave and RehabMan's release doesn't work then my release is unlikely to work also. I would still check your USB config though.
  24. You can use Hackintool to disable Gatekeeper and mount your disk as RW.
  25. Yes but you still need custom kexts to upload new firmware right? So are you using Mojave kexts along with these ones? BTW I just did a cold boot with my 10.15 Beta (19A512f) machine and it uploaded just fine: 2019-07-18 11:33:07.087305-0700 localhost kernel[0]: (kernel) BrcmPatchRAM2: [0a5c:216f]: USB [184F32F341D4 v274] "BCM20702A0" by "Broadcom Corp" 2019-07-18 11:33:07.620854-0700 localhost kernel[0]: (kernel) BrcmPatchRAM2: [0a5c:216f]: Firmware upgrade completed successfully.
×