Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add audio entitlements supporting live-share #103509

Closed
mengesb opened this issue Jul 28, 2020 · 10 comments
Closed

Add audio entitlements supporting live-share #103509

mengesb opened this issue Jul 28, 2020 · 10 comments
Assignees

Comments

@mengesb
Copy link

mengesb commented Jul 28, 2020

  • VSCode Version: 1.47.3 (91899dc)
  • OS Version: 10.15.6

#95832 was previously rejected, however it seems required now that live-share audio requires these entitlements in order to allow live-share audio the ability to request these permissions. Not sure if there's a way that the extension can add these itself, but nonetheless vscode now needs the audio entitlement at minimum. There are several issues in the MicrosoftDocs/live-share issues related to Audio not working on newer MacOS versions (Mojave / Catalina); High Sierra seems to be OK. This issue shows the tccd log around audio events

If there are plans to include or add a feature to support video via live-share sessions... then the camera permission would be required - perhaps this can be a different feature request

Steps to Reproduce:

  1. Install live-share extension pack or live-share + live-share audio on MacOS Catalina
  2. Join audio call in live-share session
  3. If guest is on Catalina or earlier, you can likely hear them, however they cannot hear you
  4. Never prompted or allowed Microphone access

Does this issue occur when all extensions are disabled?: Yes

@jramsay
Copy link
Member

jramsay commented Aug 11, 2020

@mengesb: thanks for your help on this! I'm actively looking at it from the Live Share side but am having a bit of trouble with MacOS notarization at the moment. The Live Share Audio extension currently uses its own copy of Electron to provide audio support. On first activation of the extension there is a dependency downloader that retrieves & unzips Electron to Live Share's global storage location. When someone attempts to connect to a call the Live Share Audio extension spawns a child process that starts the calling app using our copy of Electron.

What I'm attempting to do at the moment is to add the necessary entitlements to Live Share's copy of Electron. I've pasted the error I'm seeing below and I've highlighted the binary path that points to Live Share's assets. What is unclear to me is whether adding the entitlements to this will be sufficient or is it VS Code's copy of Electron (responsible path below), that spawns our child process, that will require the audio entitlements?

Prompting policy for hardened runtime; service: kTCCServiceMicrophone requires entitlement com.apple.security.device.audio-input but it is missing for RESP:{ID: com.microsoft.VSCode, PID[23936], auid: 501, euid: 501, responsible path: '/Applications/Visual Studio Code.app/Contents/MacOS/Electron', binary path: '/Applications/Visual Studio Code.app/Contents/MacOS/Electron'}, ACC:{ID: com.github.Electron.helper, PID[24070], auid: 501, euid: 501, binary path: '/Users/XXX/Library/Application Support/Code/User/globalStorage/ms-vsliveshare.vsliveshare-audio/electron-4.2.7/dist/Electron.app/Contents/Frameworks/Electron Helper.app/Contents/MacOS/Electron Helper'}, REQ:{ID: com.apple.tccd, PID[22383], auid: 0, euid: 0, binary path: '/System/Library/PrivateFrameworks/TCC.framework/Versions/A/Resources/tccd'}

@jramsay
Copy link
Member

jramsay commented Aug 11, 2020

@mengesb , @deepak1556 : I was able to add entitlements, sign & notarize Live Share's copy of Electron as well as the calling libraries. Unfortunately I'm still getting the same error above. I think these entitlements will need to added to VS Code for audio to work as expected.

@mengesb
Copy link
Author

mengesb commented Aug 11, 2020

Potentially both

@mengesb
Copy link
Author

mengesb commented Aug 12, 2020

It might be that it requires both electron binaries to be entitled, and the helper... and/or additional entitlements that I might not know of. I'm grateful for some progress being made but for all my love if this IDE and it's wonderful plugins - I would love to see it resolved because it drives me mad that my one Mac can't do audio and it slows me (and undoubtedly many others) down massively.

I'm hopeful more progress will be made! Please remain in pursuit of a resolution

@mengesb
Copy link
Author

mengesb commented Aug 14, 2020

Any additional progress?

@deepak1556
Copy link
Contributor

Discussed with @jramsay and there is now a solution being implemented in live-share. Tl:dr; we are changing how the call app is invoked for the live share extension.

@jramsay can we close this out ?

@mengesb
Copy link
Author

mengesb commented Aug 14, 2020

Is there a place this can be tracked so we know when it's included in a release? There are lots of related issues in the docs repo about this problem that can be closed out with it

@gwd0715
Copy link

gwd0715 commented Aug 23, 2020

Same issue here! Quite annoying, pls fix this asap!

@BrunoGuardia
Copy link

BrunoGuardia commented Aug 25, 2020

The LiveShare audio issue is tracked here:

microsoft/live-share#3768

@mengesb
Copy link
Author

mengesb commented Sep 8, 2020

@jramsay I'm closing this issue ; can we get an update on one of the consolidated issues aruond MacOS and Audio and the newer MacOS permissions structure with recent OS updates?

@mengesb mengesb closed this as completed Sep 8, 2020
@github-actions github-actions bot locked and limited conversation to collaborators Oct 23, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants