mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-10-16 02:44:59 +03:00
feat(release): ship the Windows build as 3x-ui.exe with version info and icon
Kaspersky (Trojan.Win64.Agent.sb / .smhqgz) and Defender flag the Windows build heuristically. A stripped, unsigned Go binary with no VERSIONINFO, icon or manifest scores high on those heuristics, so the release job now generates a resource .syso with go-winres from winres/winres.json, stamped with internal/config/version, before go build. The .syso is a build artifact and is gitignored. The Windows zip now carries 3x-ui.exe instead of x-ui.exe, matching the project name, and the executable embeds the 3X logo as its icon. The icon is a square 256px crop of media/3x-ui-dark.png, since the source logo is 400x200 and Windows icons must be square.
This commit is contained in:
@@ -261,6 +261,11 @@ jobs:
|
|||||||
go version
|
go version
|
||||||
gcc --version
|
gcc --version
|
||||||
|
|
||||||
|
# Version info + manifest resource: a bare stripped Go exe scores high on AV heuristics.
|
||||||
|
PANEL_VERSION=$(tr -d '[:space:]' < internal/config/version)
|
||||||
|
go run github.com/tc-hib/go-winres@v0.3.3 make --arch amd64 \
|
||||||
|
--product-version "$PANEL_VERSION" --file-version "$PANEL_VERSION"
|
||||||
|
|
||||||
# Stamp the commit into per-commit (dev channel) builds only.
|
# Stamp the commit into per-commit (dev channel) builds only.
|
||||||
LDFLAGS="-w -s"
|
LDFLAGS="-w -s"
|
||||||
if [[ "$GITHUB_REF" != refs/tags/* ]]; then
|
if [[ "$GITHUB_REF" != refs/tags/* ]]; then
|
||||||
@@ -273,7 +278,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
$retry = @{ MaximumRetryCount = 5; RetryIntervalSec = 10 }
|
$retry = @{ MaximumRetryCount = 5; RetryIntervalSec = 10 }
|
||||||
mkdir x-ui
|
mkdir x-ui
|
||||||
Copy-Item xui-release.exe x-ui\x-ui.exe
|
Copy-Item xui-release.exe x-ui\3x-ui.exe
|
||||||
mkdir x-ui\bin
|
mkdir x-ui\bin
|
||||||
cd x-ui\bin
|
cd x-ui\bin
|
||||||
|
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ Thumbs.db
|
|||||||
|
|
||||||
# Ignore Go build files
|
# Ignore Go build files
|
||||||
*.exe
|
*.exe
|
||||||
|
*.syso
|
||||||
x-ui.db
|
x-ui.db
|
||||||
x-ui.db-shm
|
x-ui.db-shm
|
||||||
x-ui.db-wal
|
x-ui.db-wal
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 80 KiB |
@@ -0,0 +1,54 @@
|
|||||||
|
{
|
||||||
|
"RT_GROUP_ICON": {
|
||||||
|
"APP": {
|
||||||
|
"0000": "icon.png"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"RT_MANIFEST": {
|
||||||
|
"#1": {
|
||||||
|
"0409": {
|
||||||
|
"identity": {
|
||||||
|
"name": "3x-ui",
|
||||||
|
"version": ""
|
||||||
|
},
|
||||||
|
"description": "3X-UI web panel for Xray-core",
|
||||||
|
"minimum-os": "win7",
|
||||||
|
"execution-level": "as invoker",
|
||||||
|
"ui-access": false,
|
||||||
|
"auto-elevate": false,
|
||||||
|
"dpi-awareness": "system",
|
||||||
|
"disable-theming": false,
|
||||||
|
"disable-window-filtering": false,
|
||||||
|
"high-resolution-scrolling-aware": false,
|
||||||
|
"ultra-high-resolution-scrolling-aware": false,
|
||||||
|
"long-path-aware": false,
|
||||||
|
"printer-driver-isolation": false,
|
||||||
|
"gdi-scaling": false,
|
||||||
|
"segment-heap": false,
|
||||||
|
"use-common-controls-v6": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"RT_VERSION": {
|
||||||
|
"#1": {
|
||||||
|
"0000": {
|
||||||
|
"fixed": {
|
||||||
|
"file_version": "0.0.0.0",
|
||||||
|
"product_version": "0.0.0.0"
|
||||||
|
},
|
||||||
|
"info": {
|
||||||
|
"0409": {
|
||||||
|
"CompanyName": "MHSanaei",
|
||||||
|
"FileDescription": "3X-UI web panel for Xray-core",
|
||||||
|
"FileVersion": "",
|
||||||
|
"InternalName": "3x-ui",
|
||||||
|
"LegalCopyright": "3X-UI contributors, licensed under GPL-3.0",
|
||||||
|
"OriginalFilename": "3x-ui.exe",
|
||||||
|
"ProductName": "3X-UI",
|
||||||
|
"ProductVersion": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user