Add site contacts/FAQ and accept AWG 2.0 / naive pastes in Add config.

ImportSubscription no longer requires only http(s): paste awg://, AWG .conf/JSON, or naive links; subscription parser also reads hosted AWG and Clash wireguard/naive. Site lists support emails and FAQ; Store listing texts/tools updated.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Navis
2026-08-02 15:40:13 +03:00
co-authored by Cursor
parent e416327fbf
commit 50f7f71393
39 changed files with 3128 additions and 112 deletions
+24 -4
View File
@@ -13,9 +13,11 @@
.EXAMPLE
.\scripts\pack-msix.ps1
.\scripts\pack-msix.ps1 -Arch x64 -Version 4.2.8.1
.\scripts\pack-msix.ps1 -Arch x64 -Version 4.2.8.0
.\scripts\pack-msix.ps1 -Arch arm64 -ExePath dist\navis-release\windows\arm64\EvilFox.exe
.\scripts\pack-msix.ps1 -Arch all -OutDir dist\microsoft-store
Store note: Identity Version MUST end with .0 (revision). Partner Center rejects 4.2.8.1.
#>
[CmdletBinding()]
param(
@@ -23,9 +25,9 @@ param(
[string]$Arch = "all",
[string]$ExePath = "",
[string]$OutDir = "",
[string]$Version = "4.2.8.1",
[string]$Name = "EvilFox.EvilFox",
[string]$Publisher = "CN=EvilFox",
[string]$Version = "4.2.8.0",
[string]$Name = "EvilFox.evilfox",
[string]$Publisher = "CN=9D58DFF7-7918-460E-845B-B3904A30562A",
[string]$DisplayName = "EvilFox",
[string]$PublisherDisplayName = "EvilFox",
[string]$CertPath = "",
@@ -57,6 +59,17 @@ function Find-SdkTool([string]$name) {
$candidates += (Join-Path $_.FullName "x86\$name")
}
}
# MSIX Toolkit via winget (MakeAppx without full Windows SDK)
$wingetPkgs = Join-Path $env:LOCALAPPDATA "Microsoft\WinGet\Packages"
if (Test-Path $wingetPkgs) {
Get-ChildItem -Path $wingetPkgs -Directory -Filter "Microsoft.MSIX-Toolkit*" -ErrorAction SilentlyContinue |
ForEach-Object {
$candidates += (Join-Path $_.FullName "MSIX-Toolkit.x64\$name")
$candidates += (Join-Path $_.FullName "MSIX-Toolkit.x86\$name")
Get-ChildItem -Path $_.FullName -Recurse -Filter $name -ErrorAction SilentlyContinue |
ForEach-Object { $candidates += $_.FullName }
}
}
foreach ($p in $candidates) {
if (Test-Path -LiteralPath $p) { return $p }
}
@@ -235,8 +248,15 @@ foreach ($a in $archList) {
$ManifestDst = Join-Path $Staging "AppxManifest.xml"
$manifestText = Get-Content -LiteralPath $ManifestSrc -Raw -Encoding UTF8
# Prefer exact placeholder swaps so we never touch <?xml version=...?>.
$manifestText = $manifestText.Replace('Name="EvilFox.evilfox"', "Name=`"$Name`"")
$manifestText = $manifestText.Replace('Name="EvilFox.EvilFox"', "Name=`"$Name`"")
$manifestText = $manifestText.Replace('Publisher="CN=9D58DFF7-7918-460E-845B-B3904A30562A"', "Publisher=`"$Publisher`"")
$manifestText = $manifestText.Replace('Publisher="CN=EvilFox"', "Publisher=`"$Publisher`"")
# Store requires Identity Version revision (4th component) to be 0.
if ($Version -notmatch '^\d+\.\d+\.\d+\.0$') {
Write-Host "WARNING: Partner Center rejects non-zero revision; use e.g. 4.2.8.0 (got '$Version')." -ForegroundColor Yellow
}
$manifestText = $manifestText.Replace('Version="4.2.8.0"', "Version=`"$Version`"")
$manifestText = $manifestText.Replace('Version="4.2.8.1"', "Version=`"$Version`"")
# Also accept older template version if someone reverts the manifest placeholder.
$manifestText = $manifestText.Replace('Version="4.2.3.1"', "Version=`"$Version`"")