Contribute
Register

Problem with Native Access

I already do, I leave you a screenshot. I'm desperate. Thanks
Captura de pantalla 2021-09-01 a las 18.09.56.png
 
I already do, I leave you a screenshot. I'm desperate. Thanks

What version of IORegistryExplorer do you use?
I see in your Find Options "Bundle Identifier" while I have "Bundle ID"

I'm using version 2.1, looks like the search in your version is broken as plenty of devices should match "IOName", as they have properties like "IONameMatch" or "IONameMatched" (I actually wish it could perform a search on exact words)

You can get it from https://github.com/vulgo/IORegistryExplorer/releases/tag/v2.1

Edit: Indeed, I just tried with v3.0.2 and searching for Property Keys or Values doesn't work.

I also noticed you can use the "Show" field to directly display the value of a specific property (and at the same time, only inspect the ones that actually have an exact "IOName" property and not a partial one, like this:

1630588791734.png


As you can see on the right, only a few matching devices have the exact "IOName" property and you can preview the value as well. Not sure it will tell you if it's a string or Data (Data might show up as <"Test"> as opposed to Test, for a string, and it's probably safer to inspect each device and look at the "Type" Column for the corresponding IOName property.
 
Last edited:
Finally found the issue.
Native Access goes through all your IODevices and looks for the "IOName" property. Then it uses CFStringCompare to check if the property value is "display".

I had a DeviceProperty patch for AppleLPC that set IOName to a Data type, instead of a String. That made Native Crash as CFStringCompare didn't expect anything else than a string for IOName.

To find such a problematic property, open IORegistryExplorer and expand the search options panel:

View attachment 527454

Check "Property Keys"

Then search for "IOName"
(it will also match "IONameMatch" properties so it's a bit tedious as there's a massive number of matching devices)

Go through all of them.
Every time you have an "IOName" property, check the "Type" column. If it's not "String", you have your culprit.

Find what sets that wrong type and change it to the correct type, or disable that patch.

HTH.
You are a star!!!

I have been trying for almost 9 months to find a solution and this was it!!

Same issue on AppleLPC
I had a patch in my DSDT for LPC which defined the IOName property data type as an array (data) instead of string.
Changed that and boom! I'm downloading my content from Native Access as I type!

Thank you very very much!
 
You are a star!!!

I have been trying for almost 9 months to find a solution and this was it!!

Same issue on AppleLPC
I had a patch in my DSDT for LPC which defined the IOName property data type as an array (data) instead of string.
Changed that and boom! I'm downloading my content from Native Access as I type!

Thank you very very much!
I’m glad that helped you solve it :)

tbh I’m not sure you need to patch the IOName of the LPC device, as long as you have a “compatible” property.

I was patching it using the OpenCore DeviceProperties section in config.plist and noticed IOName was correctly declared as a string, but gets converted to Data when injected… So I removed it altogether and kept “compatible” (with the same value) and AppleLPC loads fine.
 
Last edited:
I’m glad that helped you solve it :)

tbh I’m not sure you need to patch the IOName of the LPC device, as long as you have a “compatible” property.

I was patching it using the OpenCore DeviceProperties section in config.plist and noticed IOName was correctly declared as a string, but gets converted to Data when injected… So I removed it altogether and kept “compatible” (with the same value) and AppleLPC loads fine.

Hi nekapsule,

respect for finding things like that!
My Apple ACPIPCO -> iGPU@2 has an IOName Type "Data" too. Could you tell me how i can find the reason why it is like that... or how exactly i can change it to String? I am not into stuff like that at all. And i should say i am using a late iMac 2012 updated to Big Sur via OpenCore Legacy Patcher. Would be awesome if you could help me! :)

btw: the iMac late 2012 has a discrete Nvidia GT 640 and no iGPU.
 
Last edited:
Hi nekapsule,

respect for finding things like that!
My Apple ACPIPCO -> iGPU@2 has an IOName Type "Data" too. Could you tell me how i can find the reason why it is like that... or how exactly i can change it to String? I am not into stuff like that at all. And i should say i am using a late iMac 2012 updated to Big Sur via OpenCore Legacy Patcher. Would be awesome if you could help me! :)

btw: the iMac late 2012 has a discrete Nvidia GT 640 and no iGPU.

I haven't used OLP on a real Mac so I'm not sure how it achieves the GPU patching (either via DSDT or via DeviceProperties in config.plist).

If you still have the USB stick you installed it to, get https://github.com/corpnewt/MountEFI
Mount the EFI partition on the USB stick, and send the EFI folder that is in there so I can see how it's done.

If it's done via DeviceProperties tho, you'll have to contact the Opencore authors as, like I previously said, even setting the item as String doesn't solve the issue as it's injected as Data.
 
I haven't used OLP on a real Mac so I'm not sure how it achieves the GPU patching (either via DSDT or via DeviceProperties in config.plist).

If you still have the USB stick you installed it to, get https://github.com/corpnewt/MountEFI
Mount the EFI partition on the USB stick, and send the EFI folder that is in there so I can see how it's done.

If it's done via DeviceProperties tho, you'll have to contact the Opencore authors as, like I previously said, even setting the item as String doesn't solve the issue as it's injected as Data.

Thanks for your answer nekapsule! Unfortunately i have deleted the USB Drive already. However i will contact OCLP and/or Native Instruments with your findings, hope that is ok :)
 
Thanks for your answer nekapsule! Unfortunately i have deleted the USB Drive already. However i will contact OCLP and/or Native Instruments with your findings, hope that is ok :)

You can still run MountEFI on the drive it was installed to, you should get the same folder in there. It's just easier to locate the USB drive.

I don't think Native Instruments will care as you're pretty much running their software on an unsupported hardware/software combination. They probably won't patch the way it detects the GPU just because some lunatics like us decide to run it on Hackintoshes/Patched Macs ;-) Even though you could argue we're still paying customers.
 
Finally found the issue.
Native Access goes through all your IODevices and looks for the "IOName" property. Then it uses CFStringCompare to check if the property value is "display".

I had a DeviceProperty patch for AppleLPC that set IOName to a Data type, instead of a String. That made Native Crash as CFStringCompare didn't expect anything else than a string for IOName.

To find such a problematic property, open IORegistryExplorer and expand the search options panel:

View attachment 527454

Check "Property Keys"

Then search for "IOName"
(it will also match "IONameMatch" properties so it's a bit tedious as there's a massive number of matching devices)

Go through all of them.
Every time you have an "IOName" property, check the "Type" column. If it's not "String", you have your culprit.

Find what sets that wrong type and change it to the correct type, or disable that patch.

HTH.
You are a true genius, I have been trying to solve the problem of native instruments for about 5 years and now thanks to you the native access finally works for me. Thanks!!!
 
You can still run MountEFI on the drive it was installed to, you should get the same folder in there. It's just easier to locate the USB drive.

I don't think Native Instruments will care as you're pretty much running their software on an unsupported hardware/software combination. They probably won't patch the way it detects the GPU just because some lunatics like us decide to run it on Hackintoshes/Patched Macs ;-) Even though you could argue we're still paying customers.

I have thought the same about NI ;) However i messaged them, maybe its a easy fix for them to ignore none string ionames.
Ive got the EFI folder now, do u need the config.plist or everything? Is sensitive information in the EFI partition? Btw. i dont want to steal any of your time, if it is complicated to look into this please just say so!
 
Back
Top