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
の場合、アプリのBuilds builds fursite stibe spise spiseをすぐにコード化しない場合は、 resetAdHocDarwinSignature: true
to the flipFuses
メソッドに合格する必要があります。それ以外の場合、アプリはコード署名検証エラーで起動を拒否します。これは、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 ,
} ,
) ;