From 82c8de00d0bb2a73aacdde3ee84ba49cb1c76ed3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Fri, 13 Feb 2026 15:46:30 +0800 Subject: [PATCH] Add env var to disable Napi bypass Introduce NAPCAT_DISABLE_BYPASS to conditionally skip calling napi2nativeLoader.nativeExports.enableAllBypasses. Updates in napcat-framework/napcat.ts and napcat-shell/base.ts: bypass is enabled by default, but if NAPCAT_DISABLE_BYPASS is set to '1' the bypass call is skipped and a log message indicates it was disabled via environment variable. Keeps existing log when bypass is successfully enabled. --- packages/napcat-framework/napcat.ts | 10 +++++++--- packages/napcat-shell/base.ts | 12 ++++++++---- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/packages/napcat-framework/napcat.ts b/packages/napcat-framework/napcat.ts index d9a32b3f..175801f7 100644 --- a/packages/napcat-framework/napcat.ts +++ b/packages/napcat-framework/napcat.ts @@ -43,9 +43,13 @@ export async function NCoreInitFramework ( const nativePacketHandler = new NativePacketHandler({ logger }); // 初始化 NativePacketHandler 用于后续使用 const napi2nativeLoader = new Napi2NativeLoader({ logger }); // 初始化 Napi2NativeLoader 用于后续使用 //console.log('[NapCat] [Napi2NativeLoader]', napi2nativeLoader.nativeExports.enableAllBypasses?.()); - const bypassEnabled = napi2nativeLoader.nativeExports.enableAllBypasses?.(); - if (bypassEnabled) { - logger.log('[NapCat] Napi2NativeLoader: 已启用Bypass'); + if (process.env['NAPCAT_DISABLE_BYPASS'] !== '1') { + const bypassEnabled = napi2nativeLoader.nativeExports.enableAllBypasses?.(); + if (bypassEnabled) { + logger.log('[NapCat] Napi2NativeLoader: 已启用Bypass'); + } + } else { + logger.log('[NapCat] Napi2NativeLoader: Bypass已通过环境变量禁用'); } // nativePacketHandler.onAll((packet) => { // console.log('[Packet]', packet.uin, packet.cmd, packet.hex_data); diff --git a/packages/napcat-shell/base.ts b/packages/napcat-shell/base.ts index fed53500..3edc3eaa 100644 --- a/packages/napcat-shell/base.ts +++ b/packages/napcat-shell/base.ts @@ -402,10 +402,14 @@ export async function NCoreInitShell () { } const wrapper = loadQQWrapper(basicInfoWrapper.QQMainPath, basicInfoWrapper.getFullQQVersion()); - // wrapper.node 加载后立刻启用 Bypass - const bypassEnabled = napi2nativeLoader.nativeExports.enableAllBypasses?.(); - if (bypassEnabled) { - logger.log('[NapCat] Napi2NativeLoader: 已启用Bypass'); + // wrapper.node 加载后立刻启用 Bypass(可通过环境变量禁用) + if (process.env['NAPCAT_DISABLE_BYPASS'] !== '1') { + const bypassEnabled = napi2nativeLoader.nativeExports.enableAllBypasses?.(); + if (bypassEnabled) { + logger.log('[NapCat] Napi2NativeLoader: 已启用Bypass'); + } + } else { + logger.log('[NapCat] Napi2NativeLoader: Bypass已通过环境变量禁用'); } const o3Service = wrapper.NodeIO3MiscService.get();