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 จะสร้างแอพของคุณหากคุณไม่ได้กำหนดรหัสแอปของคุณทันทีหลังจากพลิกฟิวส์คุณจะต้องผ่าน resetAdHocDarwinSignature: true
กับวิธี flipFuses
มิฉะนั้นแอพจะปฏิเสธที่จะเปิดตัวพร้อมกับข้อผิดพลาดในการตรวจสอบลายเซ็นของรหัส นี่เป็นมาตรการรักษาความปลอดภัยใหม่บนอุปกรณ์ Apple Silicon
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 ,
} ,
) ;