fuses
v1.8.0
فليب الصمامات الإلكترون وتخصيص بنيتك المعبأة للإلكترون
import { flipFuses , FuseVersion , FuseV1Options } from '@electron/fuses' ;
// During your build / package process
await flipFuses (
require ( 'electron' ) , // Returns the path to the electron binary
{
version : FuseVersion . V1 ,
[ FuseV1Options . RunAsNode ] : false , // Disables ELECTRON_RUN_AS_NODE
[ FuseV1Options . EnableCookieEncryption ] : true , // Enables cookie encryption
[ FuseV1Options . EnableNodeOptionsEnvironmentVariable ] : false , // Disables the NODE_OPTIONS environment variable
[ FuseV1Options . EnableNodeCliInspectArguments ] : false , // Disables the --inspect and --inspect-brk family of CLI options
[ FuseV1Options . EnableEmbeddedAsarIntegrityValidation ] : true , // Enables validation of the app.asar archive on macOS
[ FuseV1Options . OnlyLoadAppFromAsar ] : true , // Enforces that Electron will only load your app from "app.asar" instead of its normal search paths
[ FuseV1Options . LoadBrowserProcessSpecificV8Snapshot ] : true , // Loads V8 Snapshot from `browser_v8_context_snapshot.bin` for the browser process
[ FuseV1Options . GrantFileProtocolExtraPrivileges ] : true , // Grants the file protocol extra privileges
} ,
) ;
$ npx @electron/fuses read --app /Applications/Foo.app
$ npx @electron/fuses write --app /Applications/Foo.app < ...key=on/off >
بالنسبة لـ arm64
MACOS ، تقوم MACOS بإنشاء تطبيقك إذا لم تقم بتصميم تطبيقك على الفور بعد تقليب الصمامات ، فستحتاج إلى تمرير resetAdHocDarwinSignature: true
لطريقة flipFuses
. وإلا فإن التطبيق سيرفض التشغيل باستخدام أخطاء التحقق من توقيع الكود. هذا مقياس أمان جديد على أجهزة Silicon Apple.
import { flipFuses , FuseVersion , FuseV1Options } from '@electron/fuses' ;
await flipFuses (
require ( 'electron' ) ,
{
version : FuseVersion . V1 ,
resetAdHocDarwinSignature : targetPlatform === 'darwin' && targetArch === 'arm64' ,
[ FuseV1Options . RunAsNode ] : false ,
} ,
) ;
إذا كنت ترغب في التأكد من قيامك بتقديم تكوين لكل فتيل ، حتى الصمامات المضافة حديثًا أثناء ترقيات الإلكترون ، يمكنك تعيين خيار strictlyRequireAllFuses
إلى true
. سيفشل هذا في البناء بشدة إذا كنت على إصدار من @electron/fuses
التي لا تحتوي على خيارات تكوين لكل فتيل في الإلكترون الثنائي الذي تستهدف الإلكترون ثنائي أنت تستهدف.
import { flipFuses , FuseVersion , FuseV1Options } from '@electron/fuses' ;
await flipFuses (
require ( 'electron' ) ,
{
version : FuseVersion . V1 ,
strictlyRequireAllFuses : true ,
[ FuseV1Options . RunAsNode ] : false ,
} ,
) ;