From 8ad7d6aae2bea1c6b7aa5bb6f2c7061ffaf91e85 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Sun, 29 Dec 2024 12:25:36 +0800 Subject: [PATCH 1/4] :art: Support one-click addition of Microsoft Defender exclusions https://github.com/siyuan-note/siyuan/issues/13650 --- app/electron-builder-arm64.yml | 2 -- app/electron-builder.yml | 2 -- kernel/model/elevator.go | 5 +++-- kernel/model/elevator_windows.go | 2 +- scripts/win-build.bat | 4 ++++ 5 files changed, 8 insertions(+), 7 deletions(-) diff --git a/app/electron-builder-arm64.yml b/app/electron-builder-arm64.yml index daa827005..beb27b91f 100644 --- a/app/electron-builder-arm64.yml +++ b/app/electron-builder-arm64.yml @@ -70,5 +70,3 @@ extraResources: - from: "src/assets/fonts" to: "appearance/fonts" filter: "!**/{.DS_Store}" - - from: "elevator/elevator-arm64.exe" - to: "elevator.exe" \ No newline at end of file diff --git a/app/electron-builder.yml b/app/electron-builder.yml index 76e1e3779..7ba8628c2 100644 --- a/app/electron-builder.yml +++ b/app/electron-builder.yml @@ -71,5 +71,3 @@ extraResources: filter: "!**/{.DS_Store}" - from: "pandoc/pandoc-windows-amd64.zip" to: "pandoc.zip" - - from: "elevator/elevator-amd64.exe" - to: "elevator.exe" diff --git a/kernel/model/elevator.go b/kernel/model/elevator.go index 054cf8d5e..7160019b2 100644 --- a/kernel/model/elevator.go +++ b/kernel/model/elevator.go @@ -18,5 +18,6 @@ package model -func AutoProcessMicrosoftDefender() { -} +func AddMicrosoftDefenderExclusion() (err error) {} + +func AutoProcessMicrosoftDefender() {} diff --git a/kernel/model/elevator_windows.go b/kernel/model/elevator_windows.go index 22e28658b..a954b4674 100644 --- a/kernel/model/elevator_windows.go +++ b/kernel/model/elevator_windows.go @@ -63,7 +63,7 @@ func AddMicrosoftDefenderExclusion() (err error) { } } else { logging.LogInfof("current user is not admin, use elevator to add Windows Defender exclusion path [%s, %s]", installPath, util.WorkspaceDir) - elevator := filepath.Join(util.WorkingDir, "elevator.exe") + elevator := filepath.Join(util.WorkingDir, "kernel", "elevator.exe") if "dev" == util.Mode || !gulu.File.IsExist(elevator) { elevator = filepath.Join(util.WorkingDir, "elevator", "elevator-"+runtime.GOARCH+".exe") } diff --git a/scripts/win-build.bat b/scripts/win-build.bat index eabd79b7c..20bd02b17 100644 --- a/scripts/win-build.bat +++ b/scripts/win-build.bat @@ -47,6 +47,10 @@ cd .. echo 'Building Electron App amd64' cd app + +copy "elevator\elevator-amd64.exe" "kernel\elevator.exe" +copy "elevator\elevator-arm64.exe" "kernel-arm64\elevator.exe" + call pnpm run dist if errorlevel 1 ( exit /b %errorlevel% From 3ddeb651c3cfd1b79d457e0239389774d4ae1d04 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Sun, 29 Dec 2024 12:38:24 +0800 Subject: [PATCH 2/4] :art: Support one-click addition of Microsoft Defender exclusions https://github.com/siyuan-note/siyuan/issues/13650 --- kernel/model/elevator_windows.go | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/kernel/model/elevator_windows.go b/kernel/model/elevator_windows.go index a954b4674..f131d8ff2 100644 --- a/kernel/model/elevator_windows.go +++ b/kernel/model/elevator_windows.go @@ -62,11 +62,12 @@ func AddMicrosoftDefenderExclusion() (err error) { return } } else { - logging.LogInfof("current user is not admin, use elevator to add Windows Defender exclusion path [%s, %s]", installPath, util.WorkspaceDir) - elevator := filepath.Join(util.WorkingDir, "kernel", "elevator.exe") - if "dev" == util.Mode || !gulu.File.IsExist(elevator) { - elevator = filepath.Join(util.WorkingDir, "elevator", "elevator-"+runtime.GOARCH+".exe") + elevator := getElevatorBin() + if !gulu.File.IsExist(elevator) { + logging.LogWarnf("not found elevator [%s]", elevator) + return } + logging.LogInfof("current user is not admin, use elevator to add Windows Defender exclusion path [%s, %s]", installPath, util.WorkspaceDir) if !gulu.File.IsExist(elevator) { msg := fmt.Sprintf("not found elevator [%s]", elevator) @@ -106,11 +107,7 @@ func checkMicrosoftDefender() { return } - elevator := filepath.Join(util.WorkingDir, "elevator.exe") - if "dev" == util.Mode || !gulu.File.IsExist(elevator) { - elevator = filepath.Join(util.WorkingDir, "elevator", "elevator-"+runtime.GOARCH+".exe") - } - + elevator := getElevatorBin() if !gulu.File.IsExist(elevator) { logging.LogWarnf("not found elevator [%s]", elevator) return @@ -137,3 +134,11 @@ func isAdmin() bool { _, err := os.Open("\\\\.\\PHYSICALDRIVE0") return err == nil } + +func getElevatorBin() string { + elevator := filepath.Join(util.WorkingDir, "kernel", "elevator.exe") + if "dev" == util.Mode || !gulu.File.IsExist(elevator) { + elevator = filepath.Join(util.WorkingDir, "elevator", "elevator-"+runtime.GOARCH+".exe") + } + return elevator +} From a479dd6e3b318d2243c416c33c682d4ff724a803 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Sun, 29 Dec 2024 12:43:03 +0800 Subject: [PATCH 3/4] :art: Support one-click addition of Microsoft Defender exclusions https://github.com/siyuan-note/siyuan/issues/13650 --- kernel/model/elevator_windows.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/kernel/model/elevator_windows.go b/kernel/model/elevator_windows.go index f131d8ff2..ca3662ca5 100644 --- a/kernel/model/elevator_windows.go +++ b/kernel/model/elevator_windows.go @@ -90,6 +90,9 @@ func AddMicrosoftDefenderExclusion() (err error) { } } + Conf.System.MicrosoftDefenderExcluded = true + Conf.Save() + logging.LogInfof("added Windows Defender exclusion path [%s, %s]", installPath, util.WorkspaceDir) util.PushMsg(Conf.language(102), 5000) return From 245986d8abc7a83742749a1f9bb302e512fffbcd Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Sun, 29 Dec 2024 13:00:16 +0800 Subject: [PATCH 4/4] :art: Support one-click addition of Microsoft Defender exclusions https://github.com/siyuan-note/siyuan/issues/13650 --- kernel/model/elevator.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/model/elevator.go b/kernel/model/elevator.go index 7160019b2..de2995420 100644 --- a/kernel/model/elevator.go +++ b/kernel/model/elevator.go @@ -18,6 +18,6 @@ package model -func AddMicrosoftDefenderExclusion() (err error) {} +func AddMicrosoftDefenderExclusion() error { return nil } func AutoProcessMicrosoftDefender() {}