Jump to content
Mirone

New AppleHDA Patcher

306 posts in this topic

Recommended Posts

Advertisement

Sensational nothing short of Masterfully done.  Thanks very much for all your hard work.  If we had folks like you in R&D to come up with an entirely new and different PC operating system it would be you guys!!

Share this post


Link to post
Share on other sites

Mirone,

 

I have used your AppleHDA kexts patched for ALC269VC installed in S/L/E since Mavericks.  They just work :thumbsup_anim:   After the latest Apple security update wiped out AppleHDA again (Yosemite 10.10.5, AppleHDA 272.18.3) I used Toleda's ALC CLover script to get the basic Clover method installed.  Of course my sound didn't worlk afterward as he doesn't support ALC269VC.  But after some investigation in to your modifications that always work, I discovered that using your pin configurations, LayoutID, and removing the Clover XML patch applied to AppleHDA in config.plist resulted in working sound again.  Does this new method result in a Clover "patch native AppleHDA on-the-fly" installation?  Or do I end up with a patched AppleHDA installed in S/L/E?  Just looking for your advice for if/when I try updating to El Capitan again.

 

Thanks for giving me sound :whistle:

Share this post


Link to post
Share on other sites

Mirone,

 

I have used your AppleHDA kexts patched for ALC269VC installed in S/L/E since Mavericks.  They just work :thumbsup_anim:   After the latest Apple security update wiped out AppleHDA again (Yosemite 10.10.5, AppleHDA 272.18.3) I used Toleda's ALC CLover script to get the basic Clover method installed.  Of course my sound didn't worlk afterward as he doesn't support ALC269VC.  But after some investigation in to your modifications that always work, I discovered that using your pin configurations, LayoutID, and removing the Clover XML patch applied to AppleHDA in config.plist resulted in working sound again.  Does this new method result in a Clover "patch native AppleHDA on-the-fly" installation?  Or do I end up with a patched AppleHDA installed in S/L/E?  Just looking for your advice for if/when I try updating to El Capitan again.

 

Thanks for giving me sound :whistle:

One of the new features is that,
you can drag your .xml files + NativeAppleHDA
the version of OS X you want to get, take a look on
downloads section it better explains all the functions of the application.

Share this post


Link to post
Share on other sites

This works also for Ozmosis? Thanks! 

It's such a great app, I'm looking forward to test it.

Ozmosis? you mean Quo Motherboard??

If yes I think is really ease to extract Platform.xlm, layoutX.xml and the pinconfiguration from the Info.plist already patched by THeKing, and you can reuse that after each update

..or

 

@Mirone what about implement that permanently? Need only to know what layout id to use.

Share this post


Link to post
Share on other sites

Mirone,

 

I have used your AppleHDA kexts patched for ALC269VC installed in S/L/E since Mavericks.  They just work :thumbsup_anim:   After the latest Apple security update wiped out AppleHDA again (Yosemite 10.10.5, AppleHDA 272.18.3) I used Toleda's ALC CLover script to get the basic Clover method installed.  Of course my sound didn't worlk afterward as he doesn't support ALC269VC.  But after some investigation in to your modifications that always work, I discovered that using your pin configurations, LayoutID, and removing the Clover XML patch applied to AppleHDA in config.plist resulted in working sound again.  Does this new method result in a Clover "patch native AppleHDA on-the-fly" installation?  Or do I end up with a patched AppleHDA installed in S/L/E?  Just looking for your advice for if/when I try updating to El Capitan again.

 

Thanks for giving me sound :whistle:

AppleHDA Patcher.app provide you:

  • a full patched AppleHDA.kext (if you want replace the one in SLE), using this you only need to activate tha layoutid (using DSDT patch or HDAEnabler.kext, or, using Clover config under Audio->inject->"number"). The binary is patched and don't need Clover KextsToPatch, so remove them if you use the full patched AppleHDA.kext.
  • an aDummyHDA.Kext that you can install in SLE permanetly or in /CLOVER/kext/. With that you also have to use Clover config Audio->inject->"number" to activate the kext, but you have to patch the binary using Clover config "KernelAndKextPatch"-->"KextsToPatch" (AppleHDA Patcher.app provide you the array to add, ie KextsToPatch.plist). With this method the AppleHDA.kext in SLE must be vanilla (so no more edits until Apple will change AppleHDA radically).

Don't use both methods!

Share this post


Link to post
Share on other sites

Thanks for this!

 

I've ran into the same problem I had with Toleda's one though. If I put the dummy kext into Clover's OEM kexts folder it fails to load (bdmesg reports "thinning failed"). If I put it into /S/L/E it works.

 

I've been using Pike's dummy HDA so far but I also have to put that into /S/L/E so I'm looking for a solution I can run from EFI.

Share this post


Link to post
Share on other sites

Thanks for this!

 

I've ran into the same problem I had with Toleda's one though. If I put the dummy kext into Clover's OEM kexts folder it fails to load (bdmesg reports "thinning failed"). If I put it into /S/L/E it works.

 

I've been using Pike's dummy HDA so far but I also have to put that into /S/L/E so I'm looking for a solution I can run from EFI.

 

You are right, only binaries executables can be thinned (nothing to be swapped and nothing to be loaded to the memory map), dummy kext has a symlink that replace the binary: kextcache and kextd can solve the symlink path, so that's why works in SLE.

To solve we should ask Slice to do a trick:

 

- resolve symlink, but this will increase boot time if done for all kexts

 

or

 

- add a specific function for AppleHDA...like, if the kext is called "aDummyHDA.kext" and loaded from EFI folder, Clover should load /System/Library/Extensions/AppleHDA.kext/Contents/MacOS/AppleHDA among with this kext. At least when running an OSX partition (not for Installer or Recovery... we can't).

 

Why is called aDummyHDA.kext? Because he comes before AppleHDA.kext in alphabetical order.. this should help the bootloader to load it.

 

mmhm, maybe I can do that also for Enoch..

 

EDIT

anyway aDummyHDA.kext should always works in SLE, the problem if you want to not add any kext(s) in SLE for some reasons

Share this post


Link to post
Share on other sites

Our guys make own .xml file but rename it to .zml. It can be put in the same place as native .xml.

Then instruct Clover to patch AppleHDA binary to use .zml instead of .xml.

That's all. All updates will never replace your zml file.

 

Clover's driver VBoxHFS.efi understands symlinks if you want. I just didn't catch the idea.

As well the problem with AppleHDA has 6 years history beside me. I am using VoodooHDA.

Share this post


Link to post
Share on other sites

Well, intresting, I can provide additional patch like that:

 

Comment: layout%ld.xml.zlib to layout%ld.zml.zlib:

Name:    AppleHDA

Find:      6C 61 79 6F 75 74 25 6C 64 2E 78 6D 6C 2E 7A 6C 69 62

Replace: 6C 61 79 6F 75 74 25 6C 64 2E 7A 6D 6C 2E 7A 6C 69 62

 

Comment: Platforms.xml.zlib to Platforms.zml.zlib

Name:    AppleHDA

Find:      50 6C 61 74 66 6F 72 6D 73 2E 78 6D 6C 2E 7A 6C 69 62

Replace: 50 6C 61 74 66 6F 72 6D 73 2E 7A 6D 6C 2E 7A 6C 69 62

 

Just looked at the binary and I think I have found what I need, Is correct? EDIT should be :D

 

This also should not break the code signature...

Share this post


Link to post
Share on other sites

The method that Toleda uses is a little cleaner. He uses the following Clover patch to rename zml to xml:

			<dict>
				<key>Name</key>
				<string>AppleHDA</string>
				<key>Find</key>
				<data>eG1sLnps</data>
				<key>Replace</key>
				<data>em1sLnps</data>
				<key>Comment</key>
				<string>AppleHDA/Resources/xml>zml</string>
			</dict>

So with this patch, the binary patches and the zml files copied into AppleHDA/Resources, all that's left to do is inject the pinconfig. I made a injector kext for this (so no binary needed) and it seems to work. No more need for a dummy kext in /S/L/E.

 

If I copy the zml files into the injector kext with a script that when double-clicked will copy them into AppleHDA then I have a way to set up AppleHDA in a new install.

Share this post


Link to post
Share on other sites

The method that Toleda uses is a little cleaner. He uses the following Clover patch to rename zml to xml:

			<dict>
				<key>Name</key>
				<string>AppleHDA</string>
				<key>Find</key>
				<data>eG1sLnps</data>
				<key>Replace</key>
				<data>em1sLnps</data>
				<key>Comment</key>
				<string>AppleHDA/Resources/xml>zml</string>
			</dict>

So with this patch, the binary patches and the zml files copied into AppleHDA/Resources, all that's left to do is inject the pinconfig. I made a injector kext for this (so no binary needed) and it seems to work. No more need for a dummy kext in /S/L/E.

 

If I copy the zml files into the injector kext with a script that when double-clicked will copy them into AppleHDA then I have a way to set up AppleHDA in a new install.

 

base64 ​eG1sLnps is equal to hex "786d6c2e7a6c" that is equal to "xml.zl"

 

AppleHDAPatcher should not use that because he support 10.7.x too, where the ".zlib" does not exist (so need adjustment). Meklort methods to patch binaries used by Clover scan each bytes of the executable, so no less time to patch it(at least not really misurable). But also exist in the binary an occurences like "H∏s.xml.zl" that appear to me have nothing to do with z compressed files.... and since I discover that only 3 hours ago by Slice, also I can't say for sure because not tried yet, but I will!

 

EDIT

 

You can give it a try if work? ..sorry here is 1.49 AM and I'm in bed

Share this post


Link to post
Share on other sites

Just tried it here. I left out the .zlib bit at the end seeing as it shouldn't matter. However the sound didn't work. I guess it needs to match all three results.

 

So I searched for just .xml and it returned the same 3 hits as xml.zl.

 

Patching just .xml to .zml works :)

 

2e 78 6d 6c -> 2e 7a 6d 6c

 

I checked the AppleHDA binary from 10.7.5 and there are four instances of .xml (two each for layout%ld and Platforms as it also includes 32-bit code). So the patch should also work fine there.

Share this post


Link to post
Share on other sites

Great work on this app guys!!!  I actually just used it to generate a patched AppleHDA.kext using based on Realtek ALC269VC laptop profile.  I'm now able to get sound out of my Sony Vaio E Series SVE1712BCXB Laptop on both internal speakers and 1/8 output.   :thumbsup_anim: 

 

Question: My built-in mic is not working.  I had actually tried both the ALC269VC and ALC269VC2 profiles.  Neither of them activate the mic.  In fact the VC2 profile did not output sound or activate the mic.  Is there any way I can correct this? It was working under VoodooHDA. Codec dump from Linux is attached.  

 

Thanks guys!

codec_dump.txt

Share this post


Link to post
Share on other sites

Great work on this app guys!!!  I actually just used it to generate a patched AppleHDA.kext using based on Realtek ALC269VC laptop profile.  I'm now able to get sound out of my Sony Vaio E Series SVE1712BCXB Laptop on both internal speakers and 1/8 output.   :thumbsup_anim: 

 

Question: My built-in mic is not working.  I had actually tried both the ALC269VC and ALC269VC2 profiles.  Neither of them activate the mic.  In fact the VC2 profile did not output sound or activate the mic.  Is there any way I can correct this? It was working under VoodooHDA. Codec dump from Linux is attached.  

 

Thanks guys!

Open AppleHDA Patcher.app and click on Mirone avatar, the app will open the Mirone's "patch request topic", post there your files.

Share this post


Link to post
Share on other sites

Just tried it here. I left out the .zlib bit at the end seeing as it shouldn't matter. However the sound didn't work. I guess it needs to match all three results.

 

So I searched for just .xml and it returned the same 3 hits as xml.zl.

 

Patching just .xml to .zml works :)

 

2e 78 6d 6c -> 2e 7a 6d 6c

 

I checked the AppleHDA binary from 10.7.5 and there are four instances of .xml (two each for layout%ld and Platforms as it also includes 32-bit code). So the patch should also work fine there.

Thanks for testing, we will add that for AppleHA Patcher.app!

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

This works great. Used to patch vanilla AppleHDA on a fresh 10.10.5 install on my AMD machine with ALC662 codec. Using the generated AppleHDA and HDAEnabler with my layout :D

 

Thanks a lot, great work guys.

 

 

 

Screen Shot 2015-11-20 at 22.28.32.png

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By ltooz_audis
      Some people do have problem understanding AppleALC, how to use it for their own codecs. Here's how I used it for both Realtek ALC and IDT audio codecs.
      https://youtu.be/ZNUzQkb6p5g
      For more info on Catalina click here.
      Cheers,
      Louis
    • By grisno
      Hi people,
       
      Installer to activate the sound card REALTEK ALC282-v2 (10ec:0282) with LayoutID 1 or 3 in MacOS. This installer does not contain AppleHDA patched Kext. To work properly, it must be installed over vanilla AppleHDA.kext.
       
      I want to thank the whole community for their efforts and content provided, because without these it would not be possible to create this installer.
       
      I would appreciate comments and suggestions!!
       
      Status:
      Speakers : OK Headphones : OK HDMI Audio : OK (Intel HD4K Tested) LineIn : N/A (Model Without LineIn) MicInt : OK MicIntNoiseReduction : OK MicExt : N/A (Model Without MicExt) AutoDetectLineIn : N/A (Model Without LineIn) Sleep : OK WakeUp : OK AutoSleep : OK Hibernate : OK Siri : OK   Tested Laptops:
       
      - HP Pavillion 15-D002SS
       
      Coming Soon:
       
      - Unified installer for the different supported operating systems.
      - Support model with LineIn jack.
       
      Modified Verbs:
      01271C20 01271D00 01271EA0 01271F90 01471C10 01471D00 01471E17 01471F90 01871CF0 01871D00 01871E00 01871F40 01E71CF0 01E71D00 01E71E00 01E71F40 02171C30 02171D10 02171E21 02171F00 01470C02   DSDT:
       
      Patch to apply with MaciASL in your DSDT
      ######################################### HDEF v1.00######################################## into method label _DSM parent_label HDEF remove_entry;into device label HDEF insertbeginMethod (_DSM, 4, NotSerialized)\n{\n If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }\n Return (Package()\n {\n "layout-id", Buffer() { 0x01, 0x00, 0x00, 0x00 },\n //"layout-id", Buffer() { 0x03, 0x00, 0x00, 0x00 },\n "hda-gfx", Buffer() { "onboard-1" },\n "PinConfigurations", Buffer() { },\n })\n}\nend;  
    • By grisno
      Hi people,
       
      This is a preliminary installer to activate the sound card IDT 92HD87B2/4 (111D:76D9) in MacOS. This new version of the installer does not contain AppleHDA patched Kext. To work properly, it must be installed over vanilla AppleHDA Kext.
       
      I want to thank the whole community for their efforts and content provided, because without these it would not be possible to create this installer.
       
      I would appreciate comments and suggestions!!
       
      Status:
      Speakers : OK Headphones : OK HDMI Audio : OK (Intel HD3K/4K Tested) LineIn : OK MicInt : OK MicIntNoiseReduction : OK MicExt : OK AutoDetectLineIn : OK Sleep : OK WakeUp : OK AutoSleep : OK Hibernate : OK Siri : OK   Tested Laptops:
       
      - HP Pavillion G6-2209SS
      - HP Probook 4440S
       
      Coming Soon:
       
      - Unified installer for the different supported operating systems
       
      Original Verbs:
      00a71cf0 00a71d00 00a71ef0 00a71f40 00b71c1f 00b71d10 00b71e21 00b71f04 00c71c20 00c71d10 00c71ea1 00c71f04 00d71c10 00d71d01 00d71e17 00d71f90 00f71cf0 00f71d00 00f71ef0 00f71f40 01171c30 01171d01 01171ea3 01171fd5   Modified Verbs Layer ID 3 & 12:
      00A71CF0 00A71D00 00A71EF0 00A71F40 01371C40 01371D10 01371E21 01371F04 00C71C20 00C71D10 00C71E81 00C71F04 01471C10 01471D01 01471E17 01471F90 00F71C50 00F71D00 00F71EF0 00F71F40 01171C30 01171D01 01171EA0 01171F90  
      Modified Verbs Layer ID 2:
      00B71C10 00B71D10 00B71E21 00B71F04 00C71C20 00C71D10 00C71E81 00C71F04 00D71C30 00D71D00 00D71E17 00D71F90 01171C40 01171D00 01171EA0 01171F90  
        AppleHDAHardwareConfigDriver.kext > Info.plist (Layer ID 2, 3 & 12): <key>HDAConfigDefault</key> <array> <dict> <key>AFGLowPowerState</key> <data> AwAAAA== </data> <key>Codec</key> <string>IDT 92HD87B2/4</string> <key>CodecID</key> <integer>287143641</integer> <key>ConfigData</key> <data> AKcc8ACnHQAApx7wAKcfQAE3HEABNx0QATce IQE3HwQAxxwgAMcdEADHHoEAxx8EAUccEAFH HQEBRx4XAUcfkAD3HFAA9x0AAPce8AD3H0AB FxwwARcdAQEXHqABFx+Q </data> <key>FuncGroup</key> <integer>1</integer> <key>LayoutID</key> <integer>2</integer> </dict> <dict> <key>AFGLowPowerState</key> <data> AwAAAA== </data> <key>Codec</key> <string>IDT 92HD87B2/4</string> <key>CodecID</key> <integer>287143641</integer> <key>ConfigData</key> <data> ALccEAC3HRAAtx4hALcfBADHHCAAxx0QAMce gQDHHwQA1xwwANcdAADXHhcA1x+QARccQAEX HQABFx6gARcfkA== </data> <key>FuncGroup</key> <integer>1</integer> <key>LayoutID</key> <integer>3</integer> </dict> <dict> <key>AFGLowPowerState</key> <data> AwAAAA== </data> <key>Codec</key> <string>IDT 92HD87B2/4</string> <key>CodecID</key> <integer>287143641</integer> <key>ConfigData</key> <data> ALccEAC3HRAAtx4hALcfBADHHCAAxx0QAMce gQDHHwQA1xwwANcdAADXHhcA1x+QARccQAEX HQABFx6gARcfkA== </data> <key>FuncGroup</key> <integer>1</integer> <key>LayoutID</key> <integer>12</integer> </dict> </array>   DSDT:
       
      Patch to apply with MaciASL in your DSDT. You must change the value of the layout-id before applying the patch. In MacOS Mojave should always be 0x02
      ######################################### HDEF ######################################## into method label _DSM parent_label HDEF remove_entry; into device label HDEF insert begin Method (_DSM, 4, NotSerialized)\n {\n If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }\n Return (Package()\n {\n "built-in", Buffer () { 0x00 }, \n "hda-gfx", Buffer() { "onboard-1" }, \n "layout-id", Buffer () { 0x03, 0x00, 0x00, 0x00 }, \n "PinConfigurations", Buffer () {}, \n "MaximumBootBeepVolume", Buffer () { 0x4d } \n })\n }\n end;  
    • By warty
      On 8/20/2018 at 5:22PM, TessereKt said:
       
      On 8/21/2018 at 7:34AM, insanelyDeepak said:
       
      @insanelyDeepak, I would like to try cloverHDA, but I need help understanding how to use it.
       
      I have an Asus laptop that uses Realtek ALC295.
       
      My questions with regard to using cloverHDA:
      1.  I am running High Sierra (10.13.6). Is cloverHDA directly compatible? If not, can it easily be made compatible with adjustments I can apply?
       
      2.  What needs to be done with the original AppleHDA.kext that is already present in /S/L/E? Should it be left alone? Should it be removed? If it is removed, does the AppleHDA.kext that comes with cloverHDA, for example /Vanilla AppleHDA/Mac OS Sierra 10.12.6/AppleHDA.kext, need to be installed in its place?
       
      3.  In the 21 aug 18 reply to TessereKt, you mentioned "there is ALCPluxfix must install this." I noticed that there is a directory for alc_fix in one ALC295 directory (the ALC295_v2 Asus UX430UA directory) but not in the other ALC 295 directory that is provided (the ALC295/3254 directory). In which situation(s) is ALCPlugFix required?
       
      4.  My pathmaps are somewhat different from those in the cloverHDA.kext. Is there an easy way for me to customize the kext? For example, if I just switch the values in the xml files, will that be enough? Or does the whole thing then need to be recompiled?
       
      needed pathmaps:
      33-2
      23-3
      7-36-18
      9-34-19
       
      (My highest priority for the moment is getting headphone working, which is 33-2, and I might even be able to use the 33-3 that is already included. But I would like to eventually get all of them working.)
       
       
×