ソースを参照

Revert "feat: disable running with admin permission and check service mode"

This reverts commit a0f9fb90ee7034043f1d8279db9e31f753efe74d.
MystiPanda 11 ヶ月 前
コミット
a9ef32c32f

+ 9 - 46
src-tauri/src/feat.rs

@@ -88,37 +88,16 @@ pub fn toggle_system_proxy() {
 pub fn toggle_tun_mode() {
     let enable = Config::verge().data().enable_tun_mode;
     let enable = enable.unwrap_or(false);
+
     tauri::async_runtime::spawn(async move {
-        if !enable {
-            if let Ok(res) = service::check_service().await {
-                if res.code == 0 {
-                    match patch_verge(IVerge {
-                        enable_tun_mode: Some(!enable),
-                        ..IVerge::default()
-                    })
-                    .await
-                    {
-                        Ok(_) => handle::Handle::refresh_verge(),
-                        Err(err) => log::error!(target: "app", "{err}"),
-                    }
-                    return;
-                }
-            }
-            tauri::api::dialog::message(
-                None::<&tauri::Window>,
-                "Please install and enable service mode",
-                "Service mode is required for Tun mode",
-            );
-        } else {
-            match patch_verge(IVerge {
-                enable_tun_mode: Some(!enable),
-                ..IVerge::default()
-            })
-            .await
-            {
-                Ok(_) => handle::Handle::refresh_verge(),
-                Err(err) => log::error!(target: "app", "{err}"),
-            }
+        match patch_verge(IVerge {
+            enable_tun_mode: Some(!enable),
+            ..IVerge::default()
+        })
+        .await
+        {
+            Ok(_) => handle::Handle::refresh_verge(),
+            Err(err) => log::error!(target: "app", "{err}"),
         }
     });
 }
@@ -424,19 +403,3 @@ pub async fn test_delay(url: String) -> Result<u32> {
         }
     }
 }
-
-pub fn check_permission() -> Result<()> {
-    #[cfg(target_os = "windows")]
-    {
-        let hklm = winreg::RegKey::predef(winreg::enums::HKEY_LOCAL_MACHINE);
-
-        if let Ok(reg) = hklm.open_subkey_with_flags(
-            "SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Run",
-            winreg::enums::KEY_SET_VALUE,
-        ) {
-            reg.delete_value("Clash Verge").unwrap_or_default();
-            return Ok(());
-        }
-    }
-    Err(anyhow::anyhow!("permission denied"))
-}

+ 0 - 10
src-tauri/src/main.rs

@@ -19,16 +19,6 @@ fn main() -> std::io::Result<()> {
         println!("app exists");
         return Ok(());
     }
-    // 权限检测
-    if feat::check_permission().is_ok() {
-        println!("please do not run with admin permission");
-        tauri::api::dialog::blocking::message(
-            None::<&tauri::Window>,
-            "Please do not run with admin permission",
-            "If you want to use Tun mode, please enable service mode instead",
-        );
-        return Ok(());
-    }
 
     #[cfg(target_os = "linux")]
     std::env::set_var("WEBKIT_DISABLE_DMABUF_RENDERER", "1");

+ 0 - 1
src/components/setting/mods/stack-mode-switch.tsx

@@ -24,7 +24,6 @@ export const StackModeSwitch = (props: Props) => {
       >
         gVisor
       </Button>
-
       <Button
         variant={value?.toLowerCase() === "mixed" ? "contained" : "outlined"}
         onClick={() => onChange?.("mixed")}

+ 7 - 14
src/components/setting/setting-system.tsx

@@ -22,15 +22,11 @@ const SettingSystem = ({ onError }: Props) => {
   const { verge, mutateVerge, patchVerge } = useVerge();
 
   // service mode
-  const { data: serviceStatus, mutate: mutateCheck } = useSWR(
-    "checkService",
-    checkService,
-    {
-      revalidateIfStale: false,
-      shouldRetryOnError: false,
-      focusThrottleInterval: 36e5, // 1 hour
-    }
-  );
+  const { data: serviceStatus } = useSWR("checkService", checkService, {
+    revalidateIfStale: false,
+    shouldRetryOnError: false,
+    focusThrottleInterval: 36e5, // 1 hour
+  });
 
   const serviceRef = useRef<DialogRef>(null);
   const sysproxyRef = useRef<DialogRef>(null);
@@ -88,7 +84,7 @@ const SettingSystem = ({ onError }: Props) => {
           onChange={(e) => onChangeData({ enable_tun_mode: e })}
           onGuard={(e) => patchVerge({ enable_tun_mode: e })}
         >
-          <Switch disabled={serviceStatus !== "active"} edge="end" />
+          <Switch edge="end" />
         </GuardState>
       </SettingItem>
 
@@ -113,10 +109,7 @@ const SettingSystem = ({ onError }: Props) => {
           onCatch={onError}
           onFormat={onSwitchFormat}
           onChange={(e) => onChangeData({ enable_service_mode: e })}
-          onGuard={(e) => {
-            setTimeout(() => mutateCheck(), 1000);
-            return patchVerge({ enable_service_mode: e });
-          }}
+          onGuard={(e) => patchVerge({ enable_service_mode: e })}
         >
           <Switch
             edge="end"