Contribute
Register

[Guide] Intel Framebuffer patching using WhateverGreen

FYI Alternatively you could have used the Patch->Advanced->Spoof Audio Device Id in FB-Patcher for the same effect as FakePCIID.kext + FakePCIID_Intel_HDMI_Audio.kext.
@headkaze thank you for reply - I did not see that option or did not realise what it was. Like @RehabMan I would like to understand what it applies in config.plist and any pre-requisites for using it.
 
What does that option actually do?
(eg. what settings is it making in config.plist)

And I suppose this depends on the user to pick an ID to spoof?

I would like to understand whether it actually does what FakePCIID does.

It just sets the device-id based on the user's audio device id.

ie.
Code:
8086:0C0C -> 8086:0A0C
8086:A170 -> 8086:9D70
8086:9D70 8086:9D71 8086:9D74 8086:A171 -> 8086:A170
8086:A2F0 -> 8086:A170
8086:A348 8086:9DC8 -> 8086:A170

For example my laptop requires this option set so it will write the following to config.plist:
Code:
    <key>Devices</key>
    <dict>
        <key>Properties</key>
        <dict>
            <key>PciRoot(0x0)/Pci(0x1f,0x3)</key>
            <dict>
                <key>device-id</key>
                <data>cKEAAA==</data>
                <key>layout-id</key>
                <data>AwAAAA==</data>
            </dict>
        </dict>
    </dict>
 
Last edited:
It just sets the device-id based on the user's audio device id.

ie.
Code:
8086:0C0C -> 8086:0A0C
8086:A170 -> 8086:9D70
8086:9D70 8086:9D71 8086:9D74 8086:A171 -> 8086:A170
8086:A2F0 -> 8086:A170
8086:A348 8086:9DC8 -> 8086:A170

For example my laptop requires this option set so it will write the following to config.plist:
Code:
    <key>Devices</key>
    <dict>
        <key>Properties</key>
        <dict>
            <key>PciRoot(0x0)/Pci(0x1f,0x3)</key>
            <dict>
                <key>device-id</key>
                <data>cKEAAA==</data>
                <key>layout-id</key>
                <data>AwAAAA==</data>
            </dict>
        </dict>
    </dict>

Not sure that will help. As there is no code in AppleALC for faking the response to PCI config space queries for PCI device-id, the AppleHDAController will still find the original PCI device-id.

It all depends on the depth of the problem, and whether affecting only IOKit matching is enough.

It may be enough, or it may not.

For example, the 0c0c->0a0c fix needs the queried PCI device-id faked, not just the IOKit match (the kext matches on class anyway). Which means either patching (AppleALC has this bin patch), or faking FakePCIID style.

@the_gael can test and find out...
 
I did not see that option or did not realise what it was.

The option was previously called "Spoof SKL Audio" but in the latest version it's called "Spoof Audio Device Id".

Your audio controller is 8086:9D71 so it should spoof device-id 0xA170.

It may be enough, or it may not.

Thanks for taking the time to explain how it works. I've not had extensive testing done but from what I can tell it works. I'd be curious to see if it works for @the_gael also.
 
Not sure that will help. As there is no code in AppleALC for faking the response to PCI config space queries for PCI device-id, the AppleHDAController will still find the original PCI device-id.

It all depends on the depth of the problem, and whether affecting only IOKit matching is enough.

It may be enough, or it may not.

For example, the 0c0c->0a0c fix needs the queried PCI device-id faked, not just the IOKit match (the kext matches on class anyway). Which means either patching (AppleALC has this bin patch), or faking FakePCIID style.

@the_gael can test and find out...
@RehabMan and @headkaze I am going to install another SSD in my machine and test the install process again anyway so this time I will incorporate using the Spoof Audio Device ID method - will report back when I get time to do it - a bit busy in the next few days
 
hi guys. hi @headkaze
I'm not sure If I understood well the guide.
i am on latest 10.13.6 security update 2 (which contains the coffe lake kext)
my issue is that I can't enable the IGPU along my 1080ti.
the only way to achieve this is to set the device properties 5912000 or to put the fake platform id 5912000.
I'm putting here my clover folder and my vdadecoderchecker output


vdadecoder.png
dirty workaround.png
 

Attachments

  • CLOVER.zip
    2.8 MB · Views: 64
@RehabMan and @headkaze I am going to install another SSD in my machine and test the install process again anyway so this time I will incorporate using the Spoof Audio Device ID method - will report back when I get time to do it - a bit busy in the next few days
@headkaze @RehabMan I tested this morning and the Audio spoofing did not work for me. I ended up with Built-in, Internal Speakers but no HDMI Audio see screenshot and PR files in debug_12808.zip
 

Attachments

  • debug_12808.zip
    2.4 MB · Views: 64
  • Screenshot 2018-11-09 at 11.18.36.png
    Screenshot 2018-11-09 at 11.18.36.png
    29.1 KB · Views: 92
@headkaze @RehabMan I tested this morning and the Audio spoofing did not work for me. I ended up with Built-in, Internal Speakers but no HDMI Audio see screenshot and PR files in debug_12808.zip

That's what I expected.

But it also appears you have a kext installation problem. Look at your kextcache output:
Kext with invalid signatured (-67062) allowed: <OSKext 0x7fb58a606a00 [0x7fff886b18f0]> { URL = "AppleALC.kext/ -- file:///Library/Extensions/", ID = "as.vit9696.AppleALC" }
AppleALC.kext - dependency 'as.vit9696.Lilu' not found.
AppleALC.kext is missing dependencies (including anyway; dependencies may be available from elsewhere)
 
Audio spoofing did not work for me.
You're injecting audio layout 14. Not what you were injecting before. Check General->Audio section in FB-Patcher. Also check Installed section to make sure AppleALC is installed.
 
Back
Top