castlabs / electron-releases

castLabs Electron for Content Security
https://castlabs.com/resources/downstream/
MIT License
222 stars 42 forks source link

Widevine issues and other wierd behaviours on Windows 10 for my compliled applications #120

Closed coreybruce closed 2 years ago

coreybruce commented 2 years ago

Hi I just wanted to ask for assistance in case I am doing anything wrong but I have made and compiled a couple desktop applications for Netflix, Binge and FoxtelGo for Windows and Linux uisng electron-builder. It works on Linux fine using widevine but the Windows compiled application from the setup file for example will not work at all meaning the Windows applications cannot use Widevine. Another issue on the Windows version is when I go to login on the Windows version of Foxtel Go is I get a error when I got to login, not sure if that is to due with Widevine or not but on the Linux version it's fine and Widevien works.

I am using the latest release v13.6.6-wvvmp for Foxtel Go for example and here is a link to the code on my repo.

https://gitlab.com/foxtelgo/application

if this is actual bugs than I am happy to be reporting them so they are fixed. :smile:

khwaaj commented 2 years ago

First of, are you using EVS to re-sign your application builds? If not, then that would explain why commercial services are not working on Windows (or MacOS) since VMP is enforced there, which requires that you have a production VMP signature for your application. Linux does not have this requirement since VMP is not supported there.

Since you are using electron-builder you would need to craft afterPack/afterSign hooks that executes EVS signing, depending on the platform. You should be able to find examples of this if you search through the previous issues here.

When it comes to the Foxtel Go issue I'd say this is probably not related to ECS. We do not change any functionality in Electron besides adding support for Widevine. If you find that this works in stock Electron and not ECS, please report it as a separate issue and we can look into what could be causing it.

khwaaj commented 2 years ago

Also, I took a quick look at your main.js. One thing you are doing that may conflict with ECS is that you are using the old command line switches widevine-cdm-version/widevine-cdm-path. This is not necessary with ECS since it installs/updates the CDM automatically, and may interfere with the CDM loading correctly.

coreybruce commented 2 years ago

Ahh I see would you mind assisting me a little to make sure I understand how to do it so I am doing it correctly as it's my first time doing it with Electron-builder and Electron-castlabs together. I haven't used EVS to sign it but now I know it is enforced on Windows and Mac, I read the instructions about EVS but how do I hook it into it?

Also with compiling with Mac it looks like it requires a npm package dms I think it was called but looks like it requires a actual Mac to build it, is that correct or is there a way to build the Mac version on Linux?

khwaaj commented 2 years ago

For some hints on how to do this you can check out this comment. It uses the old signing script instead of EVS (which requires that you have your own VMP certificate), but should be fairly easy to adapt to use the examples of EVS use.

It should be possible to build for macOS on another platform using electron-builder, or at least it used to be possible. I'm guessing the package you mention is for packaging a dmg (a mountable disk image). If you can't get this to work you could opt to use some other form of packaging target, e.g. a zip file.

khwaaj commented 2 years ago

Closing due to inactivity. Feel free to reopen if the issue persists.