-
Notifications
You must be signed in to change notification settings - Fork 160
DAL plugins don't work in apps with hardened runtime (e.g. in Zoom, Teams, Skype, Safari, Quicktime, Photo Booth etc) #4
Comments
Yeah I've been running into sporadic code signing issues. Every now and then macOS will block the plugin from loading. I haven't been able to pin down why it only happens sometimes. Do you see anything in Console.app if you search for |
It shouldn’t be needed, but after a restart I got it (Google Meet on Chrome, but only shows sometimes on Photo Booth: this also happens with other virtual camera devices) |
Did you try a Google Meet meeting and the person on the other end was able to see you? I've been having trouble with this (see #2) -- I can see my own preview fine but the person on the other end reports my video as frozen. |
Yes I’ve seen your other issue. No, it was late and I just was confirming it seemed to work, this was only in the preview. The frame syncing you added didn’t fix the issue? |
Sure enough, I get the following in Console (even after a reboot):
FWIW - This is a corporate laptop and it's pretty locked down. (I dont think I could get away with disabling SIP to get some of the other solutions to work). |
I've gotten this sometimes as well and it's baffling to me. One thing I'm trying is changing my codesigning identity to my personal developer account diff --git a/src/dal-plugin/CMakeLists.txt b/src/dal-plugin/CMakeLists.txt
index c354f13c..a358bfc1 100644
--- a/src/dal-plugin/CMakeLists.txt
+++ b/src/dal-plugin/CMakeLists.txt
@@ -155,6 +155,6 @@ add_custom_command(TARGET dal-plugin
add_custom_command(TARGET dal-plugin
POST_BUILD
- COMMAND /usr/bin/codesign --force --deep --sign - --timestamp=none ${TARGET_DIR}/obs-mac-virtualcam.plugin
+ COMMAND /usr/bin/codesign --force --deep --sign [my 40 char codesign identity] --timestamp=none ${TARGET_DIR}/obs-mac-virtualcam.plugin
COMMENT "Codesign plugin"
) Then that assigns a Team ID during codesigning. But it doesn't explain why it sometimes works without a team id. @ChrisWeiss does your locked down corporate laptop have Carbon Black on it? Mine does and I always give that thing a suspicious look when spooky system things like this happen. |
On this issue: I was only able to get video in quicktime. While in other apps like photo booth and discord i can select the virtualcam, it won't give output. |
Thanks for the additional info @gxalpha! Every bit is helpful to try to understand what is happening! |
I am experiencing this issue as well. I was able to get this plugin working on my employer laptop (which I believe is Mojave) but not on my personal computer which is on Catalina.
Hope this helps narrow it down, when this is working it's great! |
I have intermittent functionality after reboots, recompiles, etc right now Im getting
|
No Carbon Black, we do have other security tools installed that I can't disclose :) I'll try doing the build on my personal Mac. Any other information I can provide to help? |
The inconsistency is super frustrating to me -- sometimes macOS allows it to run and sometimes it doesn't. I haven't been able to find a pattern. I think this will be solved once we make a distribution package of this with a real production code signature. If anyone wants to help get a release infrastructure up and running here that'd be great! For now, my hack above seems to be working ok when I get into this state where it won't run. To make/retrieve your codesigning identity
diff --git a/src/dal-plugin/CMakeLists.txt b/src/dal-plugin/CMakeLists.txt
index c354f13c..a358bfc1 100644
--- a/src/dal-plugin/CMakeLists.txt
+++ b/src/dal-plugin/CMakeLists.txt
@@ -155,6 +155,6 @@ add_custom_command(TARGET dal-plugin
add_custom_command(TARGET dal-plugin
POST_BUILD
- COMMAND /usr/bin/codesign --force --deep --sign - --timestamp=none ${TARGET_DIR}/obs-mac-virtualcam.plugin
+ COMMAND /usr/bin/codesign --force --deep --sign [my 40 char codesign identity] --timestamp=none ${TARGET_DIR}/obs-mac-virtualcam.plugin
COMMENT "Codesign plugin"
) |
Another data point here.
Rebooting and/or re-signing does not change this. No action/response needed, I'll keep following this issue on my own. Thanks for digging into this feature so quickly! |
@anoldguy Thanks for the data point! What software are you using to try to view the webcam stream? I think one part of this is that some software seems more sensitive than others |
Anything. PhotoBooth, Hangouts, Meet, Zoom, Whereby, Quicktime. |
Just one more piece of info, as of the latest update to zoom it is not working in either Mojave or Catalina. Still showing up in quicktime and hangouts for me though. |
Could it be unable to run even if signed due to Library Validation? Judging from https://nvd.nist.gov/vuln/detail/CVE-2020-11470, it appears that Zoom removed the entitlement in version 4.6.8, which could explain why it works for some people but not others.
Since installing the above requires disabling SIP, I just downgraded Zoom.us to 4.6.8. If any of you also want to do so for testing purposes, you can run Therefore, I'm pretty sure it was to do with Library Validation. Unfortunately, I can't think of a good solution that doesn't involve disabling SIP unless Zoom signs the plugin, which would only fix it for Zoom. |
For Zoom at least, it is possible to get this to work by resigning it with the Disable Library Validation Entitlement. I signed the latest zoom with Edit: Adding the Disable Library Validation Entitlement doesn't appear to be necessary, although if I had to guess that has to do with it not being signed with a certificate (although if zoom.us and the plugin were signed with the same certificate I believe it still wouldn't be necessary). This is definitely not optimal for security reasons but it works. |
@hkatzdev Thank you for all the info about library validation and the workarounds! The Snap Camera docs also talk about how Zoom 4.6.9+ are not supported. So here are the codesigning issues we know about:
|
@anoldguy can you double check that when using your own signing identity, and trying to open the source in QuickTime and Chrome you get the same I want to make sure you didn't copy/paste that log from a system application (like Facetime) and got a different error from other applications (QuickTime, Chrome) that are working for some of us on Catalina. |
Clean built the project. Current state: Quicktime: Works |
@anoldguy and do you get that same |
Thank you all for the effort!! This helps a lot. I confirm @hkatzdev's comment works for the latest zoom! For documentation sake, I wasn't familiar with PropertyLists, but I made it work having the below content for
|
Thanks @yasushisakai and @hkatzdev this works fine for me and Zoom 4.6.10 (20041.0408) |
Yeah thanks @hkatzdev and @yasushisakai, your solution fixed it for me too, Zoom 4.6.10 on Catalina 10.15.3. I can access my Blackmagic capture device again from within Zoom. Cheers! |
This also allowed AWS Chime to see the virtual camera... I have an open ticket with that team about that problem. Thanks!
…On Sat, Apr 11, 2020, at 8:50 AM, Jacob Dyer wrote:
Yeah thanks @hkatzdev <https://github.com/hkatzdev> and @yasushisakai <https://github.com/yasushisakai>, your solution fixed it for me too, Zoom 4.6.10 on Catalina 10.15.3. I can access my Blackmagic capture device again from within Zoom. Cheers!
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub <#4 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AATMTBANGQTMJELEVUCYPKLRMBRPVANCNFSM4L3C5TLA>.
|
Unfortunately, I made a mistake with the code I posted earlier. While resigning the code as I mentioned above works, it also completely removes the hardened runtime, which is not great for security. Instead, here is some very poorly written code that should do the following.
I tested the below command on Zoom.us, and now I have obs-mac-virtualcam working with Zoom.us's hardened mode enabled.
|
Tried it with OBS Studio 25.0.8 and OBS shows up as a source, but FaceTime only gives a test pattern (OBS logo inside a square inside a circle on a blue background). Has anyone else gotten this to work? |
If you see the logo, sounds like maybe you didn't start the camera. OBS|Tools|Start Virtual Camera. |
No, the camera was started. I use it all the time for Zoom. This wasn't the
test pattern (Mirrored one) that I get when I forget to start the camera,
it was a simple square.
…On Tue, Jul 14, 2020 at 4:20 PM Ken Lowrie ***@***.***> wrote:
@inickt <https://github.com/inickt>:
Tried it with OBS Studio 25.0.8 and OBS shows up as a source, but FaceTime
only gives a test pattern (OBS logo inside a square inside a circle on a
blue background).
Has anyone else gotten this to work?
If you see the logo, sounds like maybe you didn't start the camera.
OBS|Tools|Start Virtual Camera.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#4 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/APJE6Z2A5LFNMWK4CIPLTLDR3TR3RANCNFSM4L3C5TLA>
.
|
Could you please attach a screenshot? |
@jburbs: You're seeing the central part of the OBS virtual camera test card (before the virtual camera is started in the Tools menu as suggested by @kenlowrie). FaceTime uses a portrait rather than landscape format - here's the full card taken from the preview when connecting using an old version of Webex that can use virtual cameras: |
Yes. I get it, read my previous comments. The camera was started, I use it regularly for Zoom, so I am familiar with the process! Has anyone actually gotten this to work with FaceTime? @inickt only said it worked with EpocCam... |
Yeah I wonder if its something with the communication between the DAL plugin and OBS itself. Obviously EpocCam is different but I thought it would have the same application here. |
@jburbs - sorry for missing that. I've learned something! |
@richardbrockie NP, it happens to the best of us ;-) |
@budisangithub The buggers updated us to 40.7.6.10 today at work - they broke my virtual camera on the desktop app. I'll lodge a complaint with IT - maybe some feedback will get through to Cisco from a reasonably large customer? |
Guys, what I have read so far: even if plugin is properly signed and notarized it won't work with latest builds of zoom & teams? This will happen with all the plugins. Can some one please confirm? |
@Raj123456788 I just updated to the latest Zoom version and everything still works without any fancy workarounds. |
@NReilingh but I am seeing issues with Teams sorry did not test on zoom but saw a thread complaining about it. Can you confirm version number for zoom? |
@Raj123456788 @NReilingh see the documentation on compatibility here. |
i'm having kinda similar issues as have been explained above... in mac os catalina 10.15.6, when i start teams or discord or any other app that wants to load the DAL plugins i get from the application: from the other DAL plugins (SnapCamera & NDIVirtualInput) i get from kernel: allthou i have not found this particular error for virtualcam plugin... edit: the same error from all the programs (Discord, MS Teams) |
for discord, see here: https://github.com/johnboiles/obs-mac-virtualcam/wiki |
I ran through the compile and everything seems to be fine, am able to run OBS from the terminal, but I'm not seeing any new video sources in Photo Both or Google Hangouts.
The console output when launching indicates that it is loading the module (though there is some warning)
Is there some other step I need to complete?
The text was updated successfully, but these errors were encountered: