Jump to content

New AppleHDA Patcher


Mirone
 Share

306 posts in this topic

Recommended Posts

I'm using this injector on all three of the hacks in my sig now and it seems to be working well. However, injecting the zml files into AppleHDA will break the kext signature.

 

Considering that the alternative is to use a unsigned dummy kext I don't think it matters all that much but I figured I'd mention this as the Clover patches alone won't invalidate the kext signature.

Can I see your injector?

Link to comment
Share on other sites

Can I see your injector?

 

Sure. Here's the one from my laptop.

 

I re-checked Toleda's cloverALC script and the kext it builds is basically the same thing. I guess what put me off using that originally was having files injected into AppleHDA. But for now there doesn't seem to be any way to keep everything in EFI.

HDAInjector.kext.zip

Link to comment
Share on other sites

Sure. Here's the one from my laptop.

 

I re-checked Toleda's cloverALC script and the kext it builds is basically the same thing. I guess what put me off using that originally was having files injected into AppleHDA. But for now there doesn't seem to be any way to keep everything in EFI.

Thanks

Link to comment
Share on other sites

Sure. Here's the one from my laptop.

 

I re-checked Toleda's cloverALC script and the kext it builds is basically the same thing. I guess what put me off using that originally was having files injected into AppleHDA. But for now there doesn't seem to be any way to keep everything in EFI.

@Riley Freeman your injector works well injecting the pincofiguration, but... as you already said using .zml replacement the code signature is broken:

basically you have to edit anyway /S/L/E, so the Dummy kext appear to be a better choice leaving AppleHDA.kext untouched.

 

Today I tried a new patch:

 

Find:      49 4F 41 75 64 69 6F 44 65 76 69 63 65 4C 6F 63 61 6C 69 7A 65 64 42 75 6E 64 6C 65 00 41 70 70 6C 65 48 44 41

Replace: 49 4F 41 75 64 69 6F 44 65 76 69 63 65 4C 6F 63 61 6C 69 7A 65 64 42 75 6E 64 6C 65 00 61 46 61 6B 65 48 44 41

 

This was an attempt to replace an argument passed to a function that search the path for Resources for the given kext:

 

from: 

IOAudioDeviceLocalizedBundle AppleHDA

 

to

 

IOAudioDeviceLocalizedBundle aFakeHDA 

 

How IOAudioDeviceLocalizedBundle works is described here: https://developer.apple.com/library/mac/documentation/Kernel/Reference/IOAudioDevice_reference/

 

the test was to make an injector like yours named  "aFakeHDA.kext" adding the Resources folder containing the .zlib files. This should have instruct AppleHDA to use Resources folder of another kext (the injector) instead of the one from AppleHDA bundle, but this has failed.

 

if you want to do further tests you are welcome.

Link to comment
Share on other sites

 

Is this a normal thing to see in the system log? Seems to appear a fair bit.

22/11/2015 00:34:36.000 kernel[0]: Sound assertion in AppleHDAWidget at line 2215

Yes, is normal if sound comes out from your speaker. Consider that AppleHDA is a big executable with a lot of checks. What I mean is that Apple does not support really your codec, so is normal.

You can try to clean the console following this guide:http://www.insanelymac.com/forum/topic/292377-how-to-get-rid-of-any-sound-assertions-on-applehda/

But IMHO silent assertions from AppleHDA is cosmetic only (they are anyway there).

  • Like 1
Link to comment
Share on other sites

The way I have been doing it for a while is as follows:

 

1. Use Toleda's cloverALC script.  This places .zml files inside AppleHDA.kext.  It places patches into Clover config.plist.  It installs realtekALC.kext into Clover kexts.

2. I grab an unmodified DummyHDA.kext.  I take the .zml files out of AppleHDA.kext and put them into DummyHDA.kext.  I take realtekALC.kext out of Clover kexts.  I take some info from the Info.plist from realtekALC.kext and add it to DummyHDA.kext.  I leave the Clover edits as it.

3.  Put DummyHDA.kext into /S/L/E which leaves AppleHDA.kext vanilla.

4.  Often I have to rebuild the kextcache to get DummyHDA.kext recognized.

 

If I have a new installation, I can just put DummyHDA.kext into /S/L/E and copy my patched config.plist to Clover.

 

An advantage is this:  on some computers, mostly laptops, sound gets unloaded during sleep.  In order to reload the kext after sleep, it needs the enabler.  With realtekALC.kext in Clover, it only gets injected at boot.  It is not available if AppleHDA.kext needs to be reloaded.  The DummyHDA.kext has an alias to the AppleHDA.kext binary.

Link to comment
Share on other sites

The way I have been doing it for a while is as follows:

 

1. Use Toleda's cloverALC script.  This places .zml files inside AppleHDA.kext.  It places patches into Clover config.plist.  It installs realtekALC.kext into Clover kexts.

2. I grab an unmodified DummyHDA.kext.  I take the .zml files out of AppleHDA.kext and put them into DummyHDA.kext.  I take realtekALC.kext out of Clover kexts.  I take some info from the Info.plist from realtekALC.kext and add it to DummyHDA.kext.  I leave the Clover edits as it.

3.  Put DummyHDA.kext into /S/L/E which leaves AppleHDA.kext vanilla.

4.  Often I have to rebuild the kextcache to get DummyHDA.kext recognized.

 

If I have a new installation, I can just put DummyHDA.kext into /S/L/E and copy my patched config.plist to Clover.

 

An advantage is this:  on some computers, mostly laptops, sound gets unloaded during sleep.  In order to reload the kext after sleep, it needs the enabler.  With realtekALC.kext in Clover, it only gets injected at boot.  It is not available if AppleHDA.kext needs to be reloaded.  The DummyHDA.kext has an alias to the AppleHDA.kext binary.

Bro, the dummy kext is already generated by AppleHDA Patcher.app automatically w/o using any script, and plus he can generate all the HDAEnabler.kext you need by only entering the number you need, plus generate the KextsToPatch sample for you, and offcourse a full patched AppleHDA.kext too   ;)

What we are trying to do was to load it w/o add nothing to S/L/E ...

  • Like 1
Link to comment
Share on other sites

I made sure the kext matched the os version its using 10.11.1. 

 

The volume slider on the menu bar at the top is reflected in the system preference but the volume slider in the system preference is not reflected in the menu bar slider.

 

I saw the same question asked in 2 forums but no one knew or answered.

 

One in emilydinesh talk applehda patching and one rehabman thought its something in an xml file.

Link to comment
Share on other sites

I made sure the kext matched the os version its using 10.11.1. 

 

The volume slider on the menu bar at the top is reflected in the system preference but the volume slider in the system preference is not reflected in the menu bar slider.

 

I saw the same question asked in 2 forums but no one knew or answered.

 

One in emilydinesh talk applehda patching and one rehabman thought its something in an xml file.

Sorry @chummdogging but what did you expect we do, some sort of telepathy with your PC? :sorcerer:

This require you to do additional work if you are not satisfied with what your files do, follow this post here:             #2            

You are not using one of the Mirone's patched codecs included in our app, but someone else work as described here, remembar?  :whistle: that is fine, but we don't know how your files are made.

Consider to make your own codec dump in Linux and post it to Mirone in the "AppleHDA patch request topic" (click on the Mirone Avatar on AppleHDA Patcher.app to open the link in your default broswer).

..otherwise no one can solve your problem if you do not really want to solve it, I'm right?  ;)

  • Like 1
Link to comment
Share on other sites

I'm also a bit confused the instructions at the bottom (see attached file). Can someone please enlighten me?

The screenshot posted by you indicate that you have running a session (you run the application creating a patched files). When this happen AppleHDA Patcher reset the path of the AppleHDA.kext that use as base for create your patched AppleHDA.kext to the one you have in /System/Library/Extensions. This because you can drag an AppleHDA.kext from where you like (also another partition, your backup folder and so on).

The app is telling you that next time you push on the "patch AppleHDA" button, the "/System/Library/Extensions/AppleHDA.kext" will be used to create your patched new AppleHDA.kext...

If you don't want this happen, then you have to drag to the app interface the AppleHDA.kext you want (to not use the one in /S/L/E) 

 

 

would this work for AMD chipsets? My gigabyte 990FX-UD3 board uses Realtek ALC889 which is in the list.

 

This is easy:

backup your original AppleHDA.kext (remove VoodooHDA.kext or AppleHDADisabler.kext if any), and install the patched one generated. 

Also be sure to activate the patched kext using the HDAEnabler.kext: for Desktop Systems you should try 5, 7 or 9 (try all).

Obviously repair the permissions of all the kexts you are installing.

Reboot and tell us if work.

  • Like 1
Link to comment
Share on other sites

 

backup your original AppleHDA.kext (remove VoodooHDA.kext or AppleHDADisabler.kext if any), and install the patched one generated. 

Also be sure to activate the patched kext using the HDAEnabler.kext: for Desktop Systems you should try 5, 7 or 9 (try all).

Obviously repair the permissions of all the kexts you are installing.

Reboot and tell us if work.

Hello. Can you please explain 5, 7 or 9? do you mean ALC885/7/9?

 

thanks very much. 

Link to comment
Share on other sites

Hello. Can you please explain 5, 7 or 9? do you mean ALC885/7/9?

 

thanks very much. 

. Determining The Number Layout_Id / Audio_Id By Ports Motherboard:
 
                          1 - Audio_ID's / LAYOUT-ID's:
    
                                1 - Layout_ID 3 =  For Laptop's.
                                2 - Layout_ID 5 =  3 ports supported (Pink, Green, Blue)
                                3 - Layout_ID 7 = 5/6 ports supported (Grey, Black, Orange, Pink, Green, Blue)
                                4 - Layout_ID 9 = 5/6 ports supported (Grey, Black, Orange, Pink, Green, Blue, CodecAddress: 2)
  • Like 2
Link to comment
Share on other sites

 

. Determining The Number Layout_Id / Audio_Id By Ports Motherboard:
 
                          1 - Audio_ID's / LAYOUT-ID's:
    
                                1 - Layout_ID 3 =  For Laptop's.
                                2 - Layout_ID 5 =  3 ports supported (Pink, Green, Blue)
                                3 - Layout_ID 7 = 5/6 ports supported (Grey, Black, Orange, Pink, Green, Blue)
                                4 - Layout_ID 9 = 5/6 ports supported (Grey, Black, Orange, Pink, Green, Blue, CodecAddress: 2)

 

how does one select which layout to use? From what I've seen with the patcher, there's no option for 5/7/9?

 

1. drop original AppleHDA.kext

2. I selected by audio chipset

3. It then ask me If I want to use ALC885 or ADI1984

4. create the patched KEXT by pressing "Patch"

 

thanks again

Link to comment
Share on other sites

how does one select which layout to use? From what I've seen with the patcher, there's no option for 5/7/9?

 

1. drop original AppleHDA.kext

2. I selected by audio chipset

3. It then ask me If I want to use ALC885 or ADI1984

4. create the patched KEXT by pressing "Patch"

 

thanks again

 

 

1. Ok, but ther's no need if you drag the one in /S/L/E on the current System.

2. ok (codec)

3. (all both are working, just as you like ..more)

4. Ok

 

I think that you need also the HDAEnabler.kext (you can generate one for layout 5, or another one for 7 ecc). As told you you have to install it repairing its permissions correctly.

Tell us if works

  • Like 1
Link to comment
Share on other sites

 Share

×
×
  • Create New...