Release 4.0.0+1: rebrand Navis → EvilFox; centralized Remnawave auto-provisioning (panel credentials baked into binary); remove Remnawave API UI; Windows 4.0.0.1.

Keep dist/navis-release/ path and ship Navis.exe as a same-hash alias of EvilFox.exe so 3.x clients can still update from the Windows branch feed.
This commit is contained in:
Navis
2026-08-01 20:06:25 +03:00
parent e76c0a0977
commit 1144fab54d
32 changed files with 280 additions and 243 deletions
+15 -15
View File
@@ -1,24 +1,24 @@
#Requires -Version 5.1
<#
.SYNOPSIS
Pack Navis.exe into an MSIX for Microsoft Store / sideload.
Pack EvilFox.exe into an MSIX for Microsoft Store / sideload.
.DESCRIPTION
Builds Store assets, stages AppxManifest + Navis.exe, runs MakeAppx.
Prefers MSIX over PWA: Navis needs Win32/WebView2 VPN and system-proxy access.
Builds Store assets, stages AppxManifest + EvilFox.exe, runs MakeAppx.
Prefers MSIX over PWA: EvilFox needs Win32/WebView2 VPN and system-proxy access.
.EXAMPLE
.\scripts\pack-msix.ps1
.\scripts\pack-msix.ps1 -Version 3.9.0.1 -Publisher "CN=EvilFox"
.\scripts\pack-msix.ps1 -Version 4.0.0.1 -Publisher "CN=EvilFox"
#>
[CmdletBinding()]
param(
[string]$ExePath = "",
[string]$OutDir = "",
[string]$Version = "3.10.0.2",
[string]$Name = "EvilFox.Navis",
[string]$Version = "4.0.0.1",
[string]$Name = "EvilFox.EvilFox",
[string]$Publisher = "CN=EvilFox",
[string]$DisplayName = "Navis",
[string]$DisplayName = "EvilFox",
[string]$PublisherDisplayName = "EvilFox",
[string]$CertPath = "",
[string]$CertPassword = "",
@@ -30,14 +30,14 @@ $Root = Split-Path -Parent (Split-Path -Parent $MyInvocation.MyCommand.Path)
Set-Location $Root
if (-not $ExePath) {
$ExePath = Join-Path $Root "dist\navis-release\windows\Navis.exe"
$ExePath = Join-Path $Root "dist\navis-release\windows\EvilFox.exe"
}
if (-not $OutDir) {
$OutDir = Join-Path $Root "dist\navis-release\windows"
}
if (-not (Test-Path -LiteralPath $ExePath)) {
throw "Navis.exe not found at '$ExePath'. Run build.bat first."
throw "EvilFox.exe not found at '$ExePath'. Run build.bat first."
}
function Find-SdkTool([string]$name) {
@@ -74,22 +74,22 @@ New-Item -ItemType Directory -Path (Join-Path $Staging "Assets") | Out-Null
$AssetsSrc = Join-Path $Root "packaging\msix\Assets"
Copy-Item -Path (Join-Path $AssetsSrc "*") -Destination (Join-Path $Staging "Assets") -Force
Copy-Item -LiteralPath $ExePath -Destination (Join-Path $Staging "Navis.exe") -Force
Copy-Item -LiteralPath $ExePath -Destination (Join-Path $Staging "EvilFox.exe") -Force
$ManifestSrc = Join-Path $Root "packaging\msix\AppxManifest.xml"
$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.Navis"', "Name=`"$Name`"")
$manifestText = $manifestText.Replace('Name="EvilFox.EvilFox"', "Name=`"$Name`"")
$manifestText = $manifestText.Replace('Publisher="CN=EvilFox"', "Publisher=`"$Publisher`"")
$manifestText = $manifestText.Replace('Version="3.10.0.2"', "Version=`"$Version`"")
$manifestText = $manifestText.Replace('<DisplayName>Navis</DisplayName>', "<DisplayName>$DisplayName</DisplayName>")
$manifestText = $manifestText.Replace('Version="4.0.0.1"', "Version=`"$Version`"")
$manifestText = $manifestText.Replace('<DisplayName>EvilFox</DisplayName>', "<DisplayName>$DisplayName</DisplayName>")
$manifestText = $manifestText.Replace('<PublisherDisplayName>EvilFox</PublisherDisplayName>', "<PublisherDisplayName>$PublisherDisplayName</PublisherDisplayName>")
$manifestText = $manifestText.Replace('DisplayName="Navis"', "DisplayName=`"$DisplayName`"")
$manifestText = $manifestText.Replace('DisplayName="EvilFox"', "DisplayName=`"$DisplayName`"")
[System.IO.File]::WriteAllText($ManifestDst, $manifestText, (New-Object System.Text.UTF8Encoding $false))
New-Item -ItemType Directory -Force -Path $OutDir | Out-Null
$MsixPath = Join-Path $OutDir ("Navis_" + $Version + ".msix")
$MsixPath = Join-Path $OutDir ("EvilFox_" + $Version + ".msix")
if (Test-Path $MsixPath) { Remove-Item -Force $MsixPath }
if (-not $MakeAppx) {