From 85f5e097aec4a1b121974721fa85866fe34508f8 Mon Sep 17 00:00:00 2001 From: Melorise <0d00@0721.hk> Date: Fri, 24 Jul 2026 23:18:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=BD=91=E5=8D=A1=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- patches/nix-tun-wrapper.patch | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 762ce0e..246e9e8 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ Nix store 只读,运行中的程序不能可靠替换自身或随包运行组 ### NixOS 权限包装 -上游会检查 setuid 所有权,并尝试通过 `pkexec` 对程序文件执行 `chown` 和 `chmod`;这些操作不适用于只读 Nix store。NixOS 模块改为在 `/run/wrappers` 创建 capability 包装器。补丁在需要额外权限时选择该包装器,并把它的存在视为权限已经配置;未启用模块时则给出明确错误,而不尝试修改 store。 +上游会检查 setuid 所有权,并尝试通过 `pkexec` 对程序文件执行 `chown` 和 `chmod`;这些操作不适用于只读 Nix store。NixOS 模块改为在 `/run/wrappers` 创建 capability 包装器。Linux 上只要包装器存在,运行组件便始终通过它启动,因为界面可能在进程启动后才动态切换需要额外权限的配置;仅在启动时按当前配置选择路径会留下一个无 capability 的常驻进程。包装器不存在时,补丁给出明确错误,而不尝试修改 store。 ### 共享 Electron 兼容 diff --git a/patches/nix-tun-wrapper.patch b/patches/nix-tun-wrapper.patch index fc7f080..1f4ee53 100644 --- a/patches/nix-tun-wrapper.patch +++ b/patches/nix-tun-wrapper.patch @@ -10,7 +10,7 @@ diff --git a/src/main/core/manager.ts b/src/main/core/manager.ts return { - corePath: mihomoCorePath(core), + corePath: -+ process.platform === 'linux' && tun?.enable && existsSync(nixMihomoWrapper) ++ process.platform === 'linux' && existsSync(nixMihomoWrapper) + ? nixMihomoWrapper + : mihomoCorePath(core), workDir: diffWorkDir ? mihomoProfileWorkDir(current) : mihomoWorkDir(),