Skip to content

NetPilot 1.2.0

Choose a tag to compare

@Ekkh1300 Ekkh1300 released this 02 Oct 14:17
· 39 commits to master since this release

NetPilot 1.2.0 — first public release.

Assets

File What it is
NetPilot-Windows-1.2.0-Setup.exe Windows installer, self-contained (no .NET needed on the target machine). Run it as administrator.
NetPilot-1.2.0-release.apk Android release build. versionName 1.2.0 / versionCode 2, universal (arm64-v8a, armeabi-v7a, x86, x86_64), minSdk 26.
NetPilot-Windows-1.2.0.exe The desktop exe alone, for machines that already have the .NET 8 runtime. Prefer the installer.
SHA256SUMS.txt SHA-256 of every file above.

There is no debug build in this release on purpose: it keeps println logging on and is not meant for users.

Android

  • Network health dashboard — one score for DNS quality, latency, packet loss and link
    stability, with a live traffic chart and running totals.
  • DNS manager — curated resolvers plus your own, each benchmarked for response time, with
    a one-tap restore of whatever was configured before.
  • Live monitor — download/upload charts from a one-second to a one-hour window.
  • Per-app usage — who is actually downloading, sorted by volume.
  • Internet limiter — a download/upload cap per app, or block it outright. The caps are
    enforced in the tunnel, not just displayed.
  • Scheduled limits, profiles with export/import, network tools (ping, nslookup,
    cache flush), and an adapter inventory.
  • Local VPN tunnel — DNS-only or full-tunnel mode, failing open to the normal path so the
    phone never loses connectivity.
  • Phone Tunnel → PC — hand the phone's VPN tunnel to a Windows PC over shared Wi-Fi, the
    phone's hotspot, USB tethering, or adb reverse.

Bilingual English/Persian with proper RTL. No location, files or camera permissions; usage
access is optional and only feeds the per-app usage table.

Windows

The same toolset as a desktop app, plus the Phone Tunnel → PC page that pairs with the
Android app and lets the desktop browse through the phone. Upload caps are real Windows QoS
policies; download caps are enforced with a token bucket. Network state is snapshotted before
any change and can be restored.

Fixed in this release

Android

  • The desktop never actually rode the phone's VPN: the LAN proxy's sockets were excluded
    along with the rest of the app's package, so traffic left through the phone's normal
    interface. They are now put back into the tunnel with VpnService.protect().
  • DNS lookups were tried one resolver after another, so a dead first resolver slowed down
    every lookup. All resolvers are now queried at once and the first real answer wins.
  • The proxy's 20 s idle timeout cut HTTPS connections and websockets mid-session; now 120 s.

Windows

  • Starting the bridge deadlocked the UI thread on a PowerShell child. The listener came up
    and the firewall rule was created, but the accept loop never started, so every request from
    the phone hung until it timed out — reported as "PC unreachable".
  • Restoring the network reported success even when every adapter had failed.
  • The proxy reachability probe gave a live proxy on 127.0.0.1 a false "unreachable" when the
    host also resolved to ::1.
  • The internet limiter silently stopped applying limits after a restart.

Verification

92 Android unit tests, 43 Windows unit and integration tests — the latter include suites that
change real DNS servers and real Windows QoS policies and then put them back — plus an
end-to-end installer test. NetPilot/Tools/verify.ps1 runs everything and fails if the suite
changed anything on the machine.

Signing note

The release keystore is deliberately not in this repository. To build a signed APK, copy
NetPilotMobile/keystore.properties.example to keystore.properties and fill it in, or
export NETPILOT_STORE_FILE, NETPILOT_STORE_PASSWORD, NETPILOT_KEY_ALIAS and
NETPILOT_KEY_PASSWORD. Without either, assembleRelease still builds an unsigned APK.

Licence: MIT.