Skip to content

hightemp/proxy_switcher_vpn

Repository files navigation

Proxy Switcher VPN

Proxy Switcher VPN

GitHub release (latest SemVer) GitHub all releases Android CI Android 7.0+ Kotlin

Android app for running a local VPN that routes device traffic through the selected upstream proxy or through explicit Direct mode.

The app does not change Android system proxy settings. It uses VpnService and an embedded sing-box core.

Limits

  • IPv4 only;
  • IPv6 is explicitly unsupported;
  • UDP/443 is blocked by default to avoid QUIC/HTTP3 bypass;
  • if the selected upstream proxy remains unavailable after retries, VPN stops fail-closed;
  • Direct mode is explicit and is never used as a silent fallback;
  • proxy passwords must be masked in UI, logs, and diagnostics.

Build

make test
make build-local

Debug APK:

app/build/outputs/apk/debug/app-debug.apk

Install on a connected device:

make install

Debug Logs

The app writes sanitized runtime logs to the in-app Logs screen and Android logcat:

adb logcat -s ProxySwitcherVPN

Logs include route selection, proxy tests, upstream monitor results, reconnect attempts, backoff, TUN setup, engine lifecycle, and final fail-closed reasons. Proxy passwords are masked.

Release

The version is read from VERSION.

make update-version
make release

make release updates Gradle versionCode/versionName, runs checks, builds the release, creates a commit/tag, and pushes the tag.

A signed release requires keystore.properties. Do not commit secrets or the keystore.

About

Android app for running a local VPN that routes device traffic through the selected upstream proxy or through explicit Direct mode.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors