minbrowser / min

A fast, minimal browser that protects your privacy
https://minbrowser.org/
Apache License 2.0
7.86k stars 695 forks source link

Can't grant access to camera and microphone (Google Meet example) #1907

Open pvlvukovic opened 2 years ago

pvlvukovic commented 2 years ago

Expected Behavior

  1. Go to meet.google.com
  2. Grant camera and microphone permissions
  3. Camera and microphone turn on

Actual Behavior

  1. Site asks to grant permissions.
  2. I grant them (camera and microphone icons in tab become white).
  3. Site says "Something is wrong with your camera or your microphone" (as in picture)
Screenshot 2022-02-07 at 11 19 38
  1. If I start Min from /Applications/Min.app/Contents/MacOS/Min (as script for Terminal) it works as it should - camera and microphone are working

To Reproduce

Described in section above

Additional Note

Google Meet is taken as example. Same behaviour repeats on other sites that need camera and microphone permissions. Min doesn't show up in System Preferences -> Security and Privacy -> Privacy -> Camera/Microphone (probably electron?).

This is the only thing that keeps me from using it as daily driver, so please help! If it's a problem on my end, please let me know how to fix it!


Thank you for the awesome piece of software!

nguterresn commented 2 years ago

I have the same issue and the same reason holding be back from using it as a daily driver. Following this ticket to see how it goes.

pvlvukovic commented 2 years ago

My current workaround is to create shortcut that runs shell script which opens mentioned file directly. I also put that shortcut in a Menu bar. I just feel that it's not an elegant solution, it seems out of place.

PalmerAL commented 2 years ago

This is pretty annoying. Looking at the macOS logs, this is happening because the binary doesn't have the right entitlements:

Prompting policy for hardened runtime; service: kTCCServiceCamera requires entitlement com.apple.security.device.camera but it is missing for responsible={<TCCDProcess: identifier=, pid=89558, auid=501, euid=501, responsible_path=/private/var/folders/l4/q7gr5nt154lbfrsyngfx9bcc0000gn/T/AppTranslocation/51EDC0BC-0C68-4B38-BAA8-639A7CA144B4/d/Min.app/Contents/MacOS/Min, binary_path=/private/var/folders/l4/q7gr5nt154lbfrsyngfx9bcc0000gn/T/AppTranslocation/51EDC0BC-0C68-4B38-BAA8-639A7CA144B4/d/Min.app/Contents/MacOS/Min>}, requesting={<TCCDProcess: identifier=, pid=89568, auid=501, euid=501, binary_path=/private/var/folders/l4/q7gr5nt154lbfrsyngfx9bcc0000gn/T/AppTranslocation/51EDC0BC-0C68-4B38-BAA8-639A7CA144B4/d/Min.app/Contents/Frameworks/Min Helper (Plugin).app/Contents/MacOS/Min Helper (Plugin)>},

AFAICT, hardened runtime because mandatory sometime around Catalina, which would possibly explain why this doesn't work. Although, I remember this working previously, so perhaps something changed in Monterey.

Electron-packager has an option to sign the app and add entitlements, but from what I can tell, that option requires a valid developer ID. I tried signing it with a self-signed certificate (code: 8e2a2fe1069207e32b60cf5c65efb14fb367e426), but the resulting app crashes on launch.

Electron requires some entitlements to run at all: https://github.com/electron/electron/blob/399032252f6a86211dd0f5062d8e7b4e92cff286/docs/tutorial/code-signing.md#electron-forge, and since the binary is running correctly, I'm assuming it has those. In theory, that means we should be able to add additional entitlements without a developer ID. But I don't actually see a way to do that, which means we would be stuck unless I want to start paying for a developer account.

amzon-ex commented 2 years ago

I can confirm this to be an issue on Windows 11, Min v1.24.0

aiyagari commented 2 years ago

Another workaround is to create an automator workflow to "Open Finder Items" on "Min". This workflow could even be packaged with Min itself, as the launcher for Mac. Basically this makes the launching application "Automator" which (should) already have permission.

mohammadhasanii commented 9 months ago

Hey, Is this problem still not fixed? I dont have microphone and camera permissions in Google Meet. 🥲

aiyagari commented 9 months ago

You can use the hack I mentioned above. To be specific, this is how I cause min to start with a specific URL shortcut that I have on the desktop. Min turns out to be particularly good at getting Citrix Virtual Desktop to work on a Mac. Screenshot 2023-12-13 at 4 42 38 PM However, this hack is annoying, and as Schwab is (finally) moving to a native Mac app, I will probably stop using Min soon.

anhood commented 7 months ago

See ticket 1874 https://github.com/minbrowser/min/issues/1874