Stage Partner Center folder with listing assets and Arm64 binary; MakeAppx not present so README includes pack/bundle commands. Co-authored-by: Cursor <cursoragent@cursor.com>
3.9 KiB
MSIX packaging for EvilFox (Microsoft Store)
EvilFox ships as a full-trust Win32 + WebView2 app. Prefer MSIX over a PWA: system proxy and protocol cores cannot be delivered as a Store PWA alone.
Multi-arch (x64 + Arm64)
- Device family:
Windows.Desktop(Win10 19041+ / Win11;MaxVersionTested10.0.26100.0). - Architectures: x64 and arm64 only (no x86 / AArch32).
- Pack script writes final artifacts to
dist\microsoft-store\:EvilFox_<ver>_x64.msixEvilFox_<ver>_arm64.msixEvilFox_<ver>.msixbundle(when MakeAppx can bundle both)README.txt(Partner Center upload notes, RU+EN)listing\(store.csv + screenshots) — filled by the submission prep step
If MakeAppx is missing, the script still stages under packaging/msix/_staging_<arch> and prints exact makeappx commands in README.txt.
Prerequisites
-
Build Windows x64:
build.bat→dist\navis-release\windows\EvilFox.exe -
Cross-build Arm64 (
CGO_ENABLED=0). Important:goversioninfo -64produces an amd64cmd/vpnapp/resource.syso— temporarily rename it aside for the arm64 link, then restore:set GOOS=windows set GOARCH=arm64 set CGO_ENABLED=0 move cmd\vpnapp\resource.syso cmd\vpnapp\resource.syso.amd64.bak go build -ldflags="-H windowsgui -s -w" -trimpath -o dist\navis-release\windows\arm64\EvilFox.exe ./cmd/vpnapp move cmd\vpnapp\resource.syso.amd64.bak cmd\vpnapp\resource.syso -
Windows SDK with
MakeAppx.exe(andSignTool.exefor sideload signing) -
Optional: code-signing certificate whose Subject CN matches
Identity/@Publisher
Pack
From the repo root (PowerShell):
.\scripts\pack-msix.ps1
.\scripts\pack-msix.ps1 -Arch x64 -Version 4.2.8.1
.\scripts\pack-msix.ps1 -Arch arm64 -ExePath dist\navis-release\windows\arm64\EvilFox.exe
.\scripts\pack-msix.ps1 -Arch all -OutDir dist\microsoft-store
.\scripts\pack-msix.ps1 -Publisher "CN=Your Store Publisher" -Name "EvilFox.EvilFox"
.\scripts\pack-msix.ps1 -CertPath ".\certs\evilfox-msix.pfx" -CertPassword "..."
Parameters: -Arch x64|arm64|all, -OutDir, -Version, -Name, -Publisher.
Store submission
- Create the app in Partner Center.
- Copy Package/Identity Name and Publisher into
AppxManifest.xml(or pass-Name/-Publisher). - Upload
.msixbundleif available, else both.msixfiles. Partner Center can re-sign with the Store cert. - Device family: Windows 10/11 Desktop only. Arm64 covers Windows on ARM.
- Declare runFullTrust and network capabilities; answer Store questions about VPN/proxy use.
- Privacy policy URL on evilfox.win required.
- Sign in to Visual Studio / Partner Center with the same Store developer account if using VS packaging / Store association.
- Do not enable in-app self-update for Store builds — EvilFox detects MSIX package identity and hides the updater (Store updates only).
Optional: place arch-specific wintun.dll under assets/wintun/<arch>/. Without it, packaging still succeeds; TUN/VPN mode needs the dll next to the exe (proxy mode works without it).
Sideload test
Add-AppxPackage -Path .\dist\microsoft-store\EvilFox_4.2.8.1_x64.msix
Unsigned packages need a trusted cert or developer mode / sideloading enabled.
Remnawave notes
EvilFox can pull configs from a Remnawave panel:
- Public subscription: paste
https://<panel>/api/sub/<shortUuid>(or use panel URL + short UUID in the Remnawave block). - Optional API token (panel → API Tokens) enables authenticated lookups:
GET /api/subscriptions/by-short-uuid/{short}/…/rawGET /api/users/by-short-uuid/{short}→subscriptionUrl
- Optional Caddy
X-Api-Keyif the panel sits behind Caddy token auth.
Tokens are stored only in local configs/config.json (mode 0600) — never commit them.