2

A similar question to olzpaul's but in this case, I have some, not all, SIP features disabled (see below), though I don't believe this has anything to do with the problem at hand. (WRT SIP, I understand the risks and this question is not an invitation to debate its merits.)

Some time ago, I installed a chat app (Telegram) on which I didn't expect to use voice comms, so I did not allow it permissions to access my microphone at the time. Yesterday, though, I needed to use the microphone with it, but Telegram was not listed in the Privacy & Security -> Microphone list, so I was not able to flip the slider switch to enable it.

After trying some things to make Telegram ask for permissions, including restarting it, I decided to see how others dealt with this issue by searching the web. Amongst the advice I saw was a reference to a utility called tccutil where it was suggested to use the command: tccutil reset Microphone. It was explained that the command would reset all the permissions for the microphone and therefore force apps to ask for permissions again. So I executed this command in my terminal and saw that the entire Microphone permissions list was scrubbed. I didn't think much of this as it's essentially what I was expecting to happen.

However, when I relaunched Telegram, I was not prompted with a permission request. I found this a bit strange and tried some of my other chat apps with which I use the microphone regularly; namely Discord and MS Teams. To my dismay, they did not ask me for permission to access my microphone, thus, as things stand right now, I am unable to use my microphone on my computer.

How can this problem be solved? Is there some command(s) or places in System Settings which allow the owner/administrator to manage these settings? Alternatively, is there some documentation that explains how to manually manage the privacy database that tccutil reset?

I have seen some advice on this issue, to do with League of Legends (which I don't play), but in that case the problem was that that user's client wasn't coded to ask for permissions in the first place, so the permission needed to be manually given. I don't mind doing this, but it appeared to me that some detail information was needed to enable this which I am unsure of how to find/determine.

Any help with this problem would be greatly appreciated.

csrutil status
System Integrity Protection status: unknown (Custom Configuration).

Configuration:
    Apple Internal: disabled
    Kext Signing: disabled
    Filesystem Protections: disabled
    Debugging Restrictions: enabled
    DTrace Restrictions: enabled
    NVRAM Protections: enabled
    BaseSystem Verification: enabled

This is an unsupported configuration, likely to break in the future and leave your machine in an unknown state.
1

2 Answers 2

0

The solution to this problem is to use (carefully, as per the author's own comments) the tool tccplus that can be found at https://github.com/jslegendre/tccplus

The app needs to be built before you can use it, so you will need Xcode, LLVM, etc. After that, it's a two-step process:

grep 'BundleIdent' -A 1 /Applications/<APPLICATION>/Contents/Info.plist
tccplus add Microphone <bundle_ID>

Use grep to find the CFBundleIdentifier for the app. And then use the reverse domain name with tccplus. There are various other things you can do with tccplus so, run it without parameters and it will tell you.

You might need to find the location where Xcode puts the compiled binary, ~/Library/Developer/Xcode/DerivedData/tccplus-...../Build/Products/Debug/ is a good place to start looking for it.

I was able to resolve my problem without having to make any SIP changes. (One of the reasons for the caveat in my OP. SIP is often a judgemental magnet to Mac users like root is in the linux community.)

Acknowledgement: I found out about tccplus in one of the answers (don't know how to link to it directly) to a similar question at the Super User stack: https://superuser.com/questions/1779925/macos-ventura-cant-give-permissions-opencore . @Tetsujin's sidebar comment to my OP mentions a couple other places where information about tccplus has been discussed.

-1

Since TCC permissions are inherited, in one-off situations, you could try granting the permission you need to Terminal and open your desired app from Terminal instead. Or you could write a one-liner apple script to open that app and hope that it'd ask for the permission you're looking for.

1
  • 2
    Your answer could be improved with additional supporting information. Please edit to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers in the help center.
    – Community Bot
    Dec 21, 2023 at 13:59

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .