diff --git a/app/scripts/after-pack.mjs b/app/scripts/after-pack.mjs index 9944c3e..cd9095c 100644 --- a/app/scripts/after-pack.mjs +++ b/app/scripts/after-pack.mjs @@ -7,13 +7,18 @@ import { evsPlan, vmpCommand } from "./evs.mjs"; /** @param {import("electron-builder").AfterPackContext} context */ export default async function afterPack(context) { + // The free EVS signs only this exact fuse wire (castLabs FAQ, "Can I use @electron/fuses"); any other set, including + // a subset, is refused with "Binary signature denied". Fuses outside it stay at their defaults. await flipFuses(executablePath(context), { version: FuseVersion.V1, [FuseV1Options.RunAsNode]: false, + [FuseV1Options.EnableCookieEncryption]: true, [FuseV1Options.EnableNodeOptionsEnvironmentVariable]: false, [FuseV1Options.EnableNodeCliInspectArguments]: false, [FuseV1Options.EnableEmbeddedAsarIntegrityValidation]: true, [FuseV1Options.OnlyLoadAppFromAsar]: true, + [FuseV1Options.LoadBrowserProcessSpecificV8Snapshot]: false, + [FuseV1Options.GrantFileProtocolExtraPrivileges]: true, }); vmpSign(context); if (context.electronPlatformName !== "darwin") return; diff --git a/docs/DRM-EVS.md b/docs/DRM-EVS.md index c1c4063..9b95cfb 100644 --- a/docs/DRM-EVS.md +++ b/docs/DRM-EVS.md @@ -34,6 +34,8 @@ A partir daí, toda release de Windows e macOS assina a CDM no `afterPack`. A pr Regras de conduta do serviço, do próprio wiki da castLabs: uma conta basta (use redefinição de senha se perder o acesso), não force assinatura nova quando a existente vale, e a assinatura correta para este app é `streaming` — o `sign-pkg` usa esse tipo por padrão, e o suporte a licença persistente saiu da CDM do navegador a partir do ECS v42. +O EVS gratuito só assina um binário idêntico ao da castLabs, com uma exceção: o conjunto fixo de fuses da [FAQ](https://github.com/castlabs/electron-releases/wiki/FAQ#can-i-use-electronfuses-with-the-free-version-of-ecs-and-evs). O `after-pack.mjs` grava exatamente esse conjunto. Qualquer fuse a mais, a menos ou com outro valor faz o serviço responder `ValidityError: Binary signature denied`; foi o que derrubou a assinatura da 0.1.0-alpha. + ## Como conferir depois de assinar Na máquina, com o app instalado: