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.
This commit is contained in:
手瓜一十雪
2026-02-13 15:46:30 +08:00
parent f17abccfdc
commit c43a05fc86
2 changed files with 15 additions and 7 deletions

View File

@@ -43,9 +43,13 @@ export async function NCoreInitFramework (
const nativePacketHandler = new NativePacketHandler({ logger }); // 初始化 NativePacketHandler 用于后续使用 const nativePacketHandler = new NativePacketHandler({ logger }); // 初始化 NativePacketHandler 用于后续使用
const napi2nativeLoader = new Napi2NativeLoader({ logger }); // 初始化 Napi2NativeLoader 用于后续使用 const napi2nativeLoader = new Napi2NativeLoader({ logger }); // 初始化 Napi2NativeLoader 用于后续使用
//console.log('[NapCat] [Napi2NativeLoader]', napi2nativeLoader.nativeExports.enableAllBypasses?.()); //console.log('[NapCat] [Napi2NativeLoader]', napi2nativeLoader.nativeExports.enableAllBypasses?.());
const bypassEnabled = napi2nativeLoader.nativeExports.enableAllBypasses?.(); if (process.env['NAPCAT_DISABLE_BYPASS'] !== '1') {
if (bypassEnabled) { const bypassEnabled = napi2nativeLoader.nativeExports.enableAllBypasses?.();
logger.log('[NapCat] Napi2NativeLoader: 已启用Bypass'); if (bypassEnabled) {
logger.log('[NapCat] Napi2NativeLoader: 已启用Bypass');
}
} else {
logger.log('[NapCat] Napi2NativeLoader: Bypass已通过环境变量禁用');
} }
// nativePacketHandler.onAll((packet) => { // nativePacketHandler.onAll((packet) => {
// console.log('[Packet]', packet.uin, packet.cmd, packet.hex_data); // console.log('[Packet]', packet.uin, packet.cmd, packet.hex_data);

View File

@@ -402,10 +402,14 @@ export async function NCoreInitShell () {
} }
const wrapper = loadQQWrapper(basicInfoWrapper.QQMainPath, basicInfoWrapper.getFullQQVersion()); const wrapper = loadQQWrapper(basicInfoWrapper.QQMainPath, basicInfoWrapper.getFullQQVersion());
// wrapper.node 加载后立刻启用 Bypass // wrapper.node 加载后立刻启用 Bypass(可通过环境变量禁用)
const bypassEnabled = napi2nativeLoader.nativeExports.enableAllBypasses?.(); if (process.env['NAPCAT_DISABLE_BYPASS'] !== '1') {
if (bypassEnabled) { const bypassEnabled = napi2nativeLoader.nativeExports.enableAllBypasses?.();
logger.log('[NapCat] Napi2NativeLoader: 已启用Bypass'); if (bypassEnabled) {
logger.log('[NapCat] Napi2NativeLoader: 已启用Bypass');
}
} else {
logger.log('[NapCat] Napi2NativeLoader: Bypass已通过环境变量禁用');
} }
const o3Service = wrapper.NodeIO3MiscService.get(); const o3Service = wrapper.NodeIO3MiscService.get();