Flip Electron Fuses dan sesuaikan build elektron Anda yang dikemas
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 >
Untuk MacOS arm64
Builds dari aplikasi Anda jika Anda tidak segera menandatangani aplikasi Anda setelah membalik sekering, Anda perlu meneruskan resetAdHocDarwinSignature: true
dengan metode flipFuses
. Kalau tidak, aplikasi akan menolak untuk meluncurkan dengan kesalahan validasi tanda tangan kode. Ini adalah ukuran keamanan baru pada perangkat silikon Apple.
import { flipFuses , FuseVersion , FuseV1Options } from '@electron/fuses' ;
await flipFuses (
require ( 'electron' ) ,
{
version : FuseVersion . V1 ,
resetAdHocDarwinSignature : targetPlatform === 'darwin' && targetArch === 'arm64' ,
[ FuseV1Options . RunAsNode ] : false ,
} ,
) ;
Jika Anda ingin memastikan Anda memberikan konfigurasi untuk setiap sekering, bahkan sekering yang baru ditambahkan selama peningkatan elektron, Anda dapat mengatur opsi strictlyRequireAllFuses
menjadi true
. Ini akan sulit gagal build jika Anda menggunakan versi @electron/fuses
yang tidak memiliki opsi konfigurasi untuk setiap sekering dalam biner elektron yang Anda target atau jika Anda tidak memberikan konfigurasi untuk sekering tertentu yang ada di dalam Biner elektron yang Anda target.
import { flipFuses , FuseVersion , FuseV1Options } from '@electron/fuses' ;
await flipFuses (
require ( 'electron' ) ,
{
version : FuseVersion . V1 ,
strictlyRequireAllFuses : true ,
[ FuseV1Options . RunAsNode ] : false ,
} ,
) ;