How to debug auval?

My plugin failures the validation with auval (when side-chained added)
Now I trying to debug auval.
I had to copy auval outside /usr/bin to make it accessible from Xcode.
Then i setup auval as executable in Xcode in the Scheme configuration
But when i try to start debugging i get
either
–> doesn’t contain the architecture i386
or
–>doesn’t contain the architecture x86_64
as error from Xcode (wheter i choose the 32bit or 64bit environment)
Any help appreciated :slight_smile:

You need to use auvaltool instead of auval (the latter is only a script that call auvaltool). If you create an alias for /usr/bin on / you can also select auvaltool directly from xcode.

3 Likes

Oh Thanks! Still not knowing what breaks validation, but one step further :wink:

Great, that helped me.

One thing to add, since 10.11 the debugger will not be able to debug auvaltool:

Message from debugger: cannot attach to process due to System Integrity Protection
Program ended with exit code: -1

The solution is to copy auvaltool over to the /Applications folder (and possibly rename it, to avoid confusion).

5 Likes

Hi, I’ve tried copying this to several locations and the debugger still cannot attach (although don’t get the SIP error) - is this working for you on 14.4? thx

1 Like

Just linking to another thread in case anyone needs the latest solution:

3 Likes

Just a quick note that Apple added com.apple.security.get-task-allow and com.apple.security.cs.allow-dyld-environment-variables to auval in macOS 13 Ventua. So debugging auval issues should become much simpler in macOS 13.

3 Likes

Has anyone had any luck debugging auval on MacOS 13, if it is indeed possible? I’ve just updated my M1 Mac and attempted to debug it, with no success. Are there any additional steps to be taken? (Assuming that these new security properties mean that disabling SIP is no longer needed)

1 Like

It looks like this may no longer be the case on Sonoma for Arm. Neither of those entitlements appear to be present on /usr/bin/auvaltool when running

codesign -d --entitlements - /usr/bin/auvaltool

I’ve just run the same command on Ventura 13.5.2 and I also don’t see them.

codesign -d --entitlements - /usr/bin/auvaltool 
Executable=/usr/bin/auvaltool
[Dict]
	[Key] com.apple.security.cs.allow-unsigned-executable-memory
	[Value]
		[Bool] true
	[Key] com.apple.security.cs.disable-library-validation
	[Value]
		[Bool] true
	[Key] com.apple.security.temporary-exception.audio-unit-host
	[Value]
		[Bool] true