From 3f07e0931bf2bf009a898c3a2d2e0d751d0aa0f5 Mon Sep 17 00:00:00 2001 From: Andrey Prokopyuk Date: Mon, 31 Aug 2026 21:33:37 +0300 Subject: [PATCH 01/41] Implement basic functionality --- .gitignore | 38 +-- .vscode/extensions.json | 7 + .vscode/launch.json | 24 ++ .vscode/tasks.json | 148 +++++++++++ README.md | 160 ++++++++++- app/build.gradle.kts | 40 +++ app/libs/megaproxy-sources.jar | Bin 0 -> 6612 bytes app/src/main/AndroidManifest.xml | 43 +++ .../java/dev/megaproxy/app/MainActivity.kt | 190 +++++++++++++ .../megaproxy/app/ProxySettingsActivity.kt | 82 ++++++ .../dev/megaproxy/app/SplitTunnelActivity.kt | 78 ++++++ .../dev/megaproxy/app/data/ConfigStore.kt | 83 ++++++ .../dev/megaproxy/app/model/ProxyConfig.kt | 66 +++++ .../dev/megaproxy/app/vpn/DiagnosticLog.kt | 27 ++ .../java/dev/megaproxy/app/vpn/ProxyCore.kt | 94 +++++++ .../dev/megaproxy/app/vpn/ProxyVpnService.kt | 201 ++++++++++++++ app/src/main/res/values/styles.xml | 9 + .../dev/megaproxy/app/model/Ja3SpecTest.kt | 18 ++ build.gradle.kts | 5 + gradle.properties | 4 + gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 43764 bytes gradle/wrapper/gradle-wrapper.properties | 7 + gradlew | 251 ++++++++++++++++++ gradlew.bat | 94 +++++++ native/README.md | 17 ++ native/go.mod | 29 ++ native/go.sum | 54 ++++ native/mobile/bootstrap.go | 157 +++++++++++ native/mobile/config.go | 116 ++++++++ native/mobile/config_test.go | 29 ++ native/mobile/diagnostics.go | 14 + native/mobile/dialer.go | 164 ++++++++++++ native/mobile/doh.go | 191 +++++++++++++ native/mobile/doh_test.go | 39 +++ native/mobile/ja3.go | 61 +++++ native/mobile/mobile.go | 80 ++++++ native/mobile/test_connection.go | 77 ++++++ scripts/android-jdwp.sh | 93 +++++++ scripts/android-logcat.sh | 13 + scripts/create-android-emulator.sh | 86 ++++++ scripts/debug-android-app.sh | 13 + scripts/run-android-app.sh | 29 ++ scripts/run-without-debugging.sh | 13 + scripts/start-android-emulator.sh | 30 +++ scripts/stop-android-app-session.sh | 26 ++ settings.gradle.kts | 18 ++ 46 files changed, 2988 insertions(+), 30 deletions(-) create mode 100644 .vscode/extensions.json create mode 100644 .vscode/launch.json create mode 100644 .vscode/tasks.json create mode 100644 app/build.gradle.kts create mode 100644 app/libs/megaproxy-sources.jar create mode 100644 app/src/main/AndroidManifest.xml create mode 100644 app/src/main/java/dev/megaproxy/app/MainActivity.kt create mode 100644 app/src/main/java/dev/megaproxy/app/ProxySettingsActivity.kt create mode 100644 app/src/main/java/dev/megaproxy/app/SplitTunnelActivity.kt create mode 100644 app/src/main/java/dev/megaproxy/app/data/ConfigStore.kt create mode 100644 app/src/main/java/dev/megaproxy/app/model/ProxyConfig.kt create mode 100644 app/src/main/java/dev/megaproxy/app/vpn/DiagnosticLog.kt create mode 100644 app/src/main/java/dev/megaproxy/app/vpn/ProxyCore.kt create mode 100644 app/src/main/java/dev/megaproxy/app/vpn/ProxyVpnService.kt create mode 100644 app/src/main/res/values/styles.xml create mode 100644 app/src/test/java/dev/megaproxy/app/model/Ja3SpecTest.kt create mode 100644 build.gradle.kts create mode 100644 gradle.properties create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100644 gradlew.bat create mode 100644 native/README.md create mode 100644 native/go.mod create mode 100644 native/go.sum create mode 100644 native/mobile/bootstrap.go create mode 100644 native/mobile/config.go create mode 100644 native/mobile/config_test.go create mode 100644 native/mobile/diagnostics.go create mode 100644 native/mobile/dialer.go create mode 100644 native/mobile/doh.go create mode 100644 native/mobile/doh_test.go create mode 100644 native/mobile/ja3.go create mode 100644 native/mobile/mobile.go create mode 100644 native/mobile/test_connection.go create mode 100755 scripts/android-jdwp.sh create mode 100755 scripts/android-logcat.sh create mode 100755 scripts/create-android-emulator.sh create mode 100755 scripts/debug-android-app.sh create mode 100755 scripts/run-android-app.sh create mode 100755 scripts/run-without-debugging.sh create mode 100755 scripts/start-android-emulator.sh create mode 100755 scripts/stop-android-app-session.sh create mode 100644 settings.gradle.kts diff --git a/.gitignore b/.gitignore index e5cbb64..95b59a8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,34 +1,14 @@ -# Gradle files .gradle/ -build/ - -# Local configuration file (sdk path, etc) +.idea/ local.properties - -# Log/OS Files -*.log - -# Android Studio generated files and folders -captures/ -.externalNativeBuild/ -.cxx/ -*.aab -*.apk -output-metadata.json - -# IntelliJ +**/build/ *.iml -.idea/ -misc.xml -deploymentTargetDropDown.xml -render.experimental.xml - -# Keystore files +.DS_Store +*.apk +*.aab *.jks *.keystore - -# Google Services (e.g. APIs or Firebase) -google-services.json - -# Android Profiling -*.hprof +.externalNativeBuild/ +.cxx/ +native/*.aar +app/libs/*.aar diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..3fefce4 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,7 @@ +{ + "recommendations": [ + "vscjava.vscode-java-pack", + "fwcd.kotlin", + "golang.go" + ] +} diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..a17cd2d --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,24 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "type": "node-terminal", + "name": "Run MegaProxy on Emulator", + "request": "launch", + "command": "${workspaceFolder}/scripts/run-without-debugging.sh", + "cwd": "${workspaceFolder}" + }, + { + "type": "java", + "name": "Attach MegaProxy (JDWP)", + "request": "attach", + "hostName": "127.0.0.1", + "port": 8700, + "timeout": 60000, + "sourcePaths": [ + "${workspaceFolder}/app/src/main/java" + ], + "preLaunchTask": "Android: Prepare JDWP" + } + ] +} diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..9296949 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,148 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "Android: Create emulator", + "type": "shell", + "command": "source \"$HOME/.zshrc.extra\"; ./scripts/create-android-emulator.sh", + "problemMatcher": [] + }, + { + "label": "Android: List emulators", + "type": "shell", + "command": "source \"$HOME/.zshrc.extra\"; emulator -list-avds", + "problemMatcher": [] + }, + { + "label": "Android: Start emulator", + "type": "shell", + "command": "source \"$HOME/.zshrc.extra\"; emulator @MegaProxy_API_35 -gpu auto", + "isBackground": true, + "problemMatcher": [], + "presentation": { + "reveal": "always", + "panel": "dedicated" + } + }, + { + "label": "Android: Run on emulator", + "type": "shell", + "command": "./scripts/run-without-debugging.sh", + "problemMatcher": [], + "presentation": { + "reveal": "always", + "panel": "dedicated" + } + }, + { + "label": "Android: Build native AAR", + "type": "shell", + "command": "source \"$HOME/.zshrc.extra\"; mkdir -p ../app/libs; gomobile bind -target=android -androidapi 26 -o ../app/libs/megaproxy.aar ./mobile", + "options": { + "cwd": "${workspaceFolder}/native" + }, + "problemMatcher": [] + }, + { + "label": "Test: Go core", + "type": "shell", + "command": "source \"$HOME/.zshrc.extra\"; go test ./...", + "options": { + "cwd": "${workspaceFolder}/native" + }, + "group": "test", + "problemMatcher": [] + }, + { + "label": "Test: Android unit tests", + "type": "shell", + "command": "source \"$HOME/.zshrc.extra\"; ./gradlew testDebugUnitTest", + "group": "test", + "problemMatcher": [] + }, + { + "label": "Test: All", + "dependsOn": [ + "Test: Go core", + "Test: Android unit tests" + ], + "dependsOrder": "parallel", + "group": { + "kind": "test", + "isDefault": true + }, + "problemMatcher": [] + }, + { + "label": "Android: Build debug APK", + "type": "shell", + "command": "source \"$HOME/.zshrc.extra\"; ./gradlew assembleDebug", + "dependsOn": ["Android: Build native AAR"], + "dependsOrder": "sequence", + "group": { + "kind": "build", + "isDefault": true + }, + "problemMatcher": [] + }, + { + "label": "Android: Install debug APK", + "type": "shell", + "command": "source \"$HOME/.zshrc.extra\"; adb wait-for-device; adb install -r app/build/outputs/apk/debug/app-debug.apk", + "dependsOn": ["Android: Build debug APK"], + "dependsOrder": "sequence", + "problemMatcher": [] + }, + { + "label": "Android: Launch app", + "type": "shell", + "command": "source \"$HOME/.zshrc.extra\"; adb shell am start -n dev.megaproxy.app/.MainActivity", + "dependsOn": ["Android: Install debug APK"], + "dependsOrder": "sequence", + "problemMatcher": [] + }, + { + "label": "Android: Logcat (app)", + "type": "shell", + "command": "source \"$HOME/.zshrc.extra\"; ./scripts/android-logcat.sh", + "isBackground": true, + "problemMatcher": [], + "presentation": { + "reveal": "always", + "panel": "dedicated" + } + }, + { + "label": "Android: Prepare JDWP", + "type": "shell", + "command": "MEGAPROXY_JDWP_KEEP_ALIVE=1 ./scripts/debug-android-app.sh", + "isBackground": true, + "problemMatcher": [ + { + "owner": "megaproxy-jdwp", + "pattern": { + "regexp": "^(?!)$" + }, + "background": { + "activeOnStart": true, + "beginsPattern": "^Starting MegaProxy JDWP setup$", + "endsPattern": "^JDWP ready:" + } + } + ], + "presentation": { + "reveal": "always", + "focus": true, + "panel": "dedicated", + "clear": true, + "showReuseMessage": false + } + }, + { + "label": "Android: Clear JDWP", + "type": "shell", + "command": "source \"$HOME/.zshrc.extra\"; adb -e shell am clear-debug-app; adb -e forward --remove tcp:8700 || true", + "problemMatcher": [] + } + ] +} diff --git a/README.md b/README.md index 0f077d1..d58aa30 100644 --- a/README.md +++ b/README.md @@ -1 +1,159 @@ -# AndroidMegaProxy \ No newline at end of file +# MegaProxy + +An Android client that selectively tunnels TCP traffic from chosen applications through an +HTTPS proxy (`TLS -> HTTP CONNECT`) with Basic Auth and a configurable TLS ClientHello. + +## Design guarantees + +- The proxy does not perform MITM. Application TLS remains end-to-end between the application + and the destination website. +- The proxy certificate is verified against the Android system trust store, hostname and + validity period. Certificate pinning is not used, so regular Let's Encrypt rotation works. +- Only selected packages enter the TUN interface (`VpnService.Builder.addAllowedApplication`). +- UDP is blocked. In particular, QUIC/HTTP3 falls back to TCP. +- IPv4-only destination mode is enabled by default for HTTPS proxies without IPv6 CONNECT + support. IPv6 destinations can be enabled from the split-tunneling screen. +- DNS from selected applications is intercepted inside the TUN, converted to DoH and sent + through the proxy. Cloudflare, Google, Quad9 and a custom HTTPS endpoint are supported. +- Always-on VPN support is declared in the manifest. The foreground service returns + `START_STICKY`. +- The UI links to the system Always-on VPN settings and requests exemption from battery + optimization. No Android application can survive an explicit user force-stop. +- The Basic Auth password is encrypted with an AES-GCM key stored in Android Keystore. + +## Implementation status + +The Android project includes configuration UI, application selection, manual JA3 validation, +secure credential storage and the per-app VPN lifecycle. The native data plane is implemented +in Go with uTLS and the gVisor network stack. + +The main screen provides a connection test that uses the configured HTTPS proxy and TLS profile, +verifies an end-to-end HTTPS request to `example.com`, and obtains the proxy exit IP from +`ifconfig.me`. Sanitized per-stage diagnostics are available in the app; credentials and traffic +content are never logged. Proxy/JA3 settings and split-tunneling application selection are kept +on separate screens. + +Every physical upstream socket must be passed to `VpnService.protect()` before `connect()` to +prevent recursive routing into the TUN interface. + +## JA3 profiles + +A browser name is not a permanent fingerprint. Every profile must be versioned and backed by +a captured ClientHello fixture. uTLS provides Chrome, Firefox, Edge and randomized profiles. +Manual mode accepts the canonical JA3 string: + +`TLSVersion,CipherSuites,Extensions,SupportedGroups,ECPointFormats` + +Edge Android, Samsung Internet and Yandex Browser remain disabled until verified ClientHello +fixtures are available for specific Android browser versions. The application intentionally +does not relabel a generic desktop or Chromium profile as one of these browsers. + +## Build + +Use JDK 17 to build the Android application. Building the Go AAR additionally requires Go and +`gomobile`; see `native/README.md` for details. + +## Development + +English is the project language. Use English for source code, comments, documentation, commit +messages, UI copy, logs and developer tooling. + +### Prerequisites + +The command-line build requires JDK 17, Go 1.26 or newer, gomobile, Android SDK Platform 35, +Build Tools 34.0.0 and NDK 29.0.14206865. The expected environment is: + +```shell +export JAVA_HOME="/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home" +export ANDROID_HOME="$HOME/Library/Android/sdk" +export ANDROID_NDK_HOME="$ANDROID_HOME/ndk/29.0.14206865" +export PATH="$JAVA_HOME/bin:$HOME/go/bin:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/emulator:$ANDROID_HOME/platform-tools:$PATH" +``` + +The project pins Gradle 8.9 through the checked-in wrapper. Use `./gradlew`, not a globally +installed Gradle version. + +### Create and start the emulator + +Create the API 35 Google APIs ARM64 emulator once: + +```shell +./scripts/create-android-emulator.sh +``` + +The script installs the emulator and system image when needed. It is idempotent and uses +`MegaProxy_API_35` by default. It also enables the host physical keyboard and configures +the mouse as multi-touch input, including for an existing AVD. Override the name with +`MEGAPROXY_AVD_NAME` if necessary. Restart a running emulator after changing its AVD +configuration. + +Start it from the terminal: + +```shell +emulator @MegaProxy_API_35 -gpu auto +``` + +### Build from the terminal + +Build and test the Go core, then produce the AAR: + +```shell +cd native +go test ./... +gomobile bind -target=android -androidapi 26 -o ../app/libs/megaproxy.aar ./mobile +cd .. +``` + +Build, test and install the Android application: + +```shell +./gradlew testDebugUnitTest assembleDebug +adb wait-for-device +adb install -r app/build/outputs/apk/debug/app-debug.apk +adb shell am start -n dev.megaproxy.app/.MainActivity +``` + +### VS Code workflow + +Open the repository in VS Code and install the workspace recommendations from +`.vscode/extensions.json`. Run tasks through `Tasks: Run Task`: + +- `Android: Create emulator` creates the required AVD. +- `Android: Start emulator` starts `MegaProxy_API_35`. +- `Android: Run on emulator` creates or starts the emulator, builds, installs and launches the app. +- `Android: Build native AAR` builds the Go bridge. +- `Android: Build debug APK` builds the AAR and debug APK. +- `Android: Install debug APK` builds and installs the application. +- `Android: Launch app` builds, installs and launches the application. +- `Android: Logcat (app)` follows logs from the MegaProxy process only. +- `Android: Prepare JDWP` restarts the app in debugger-wait mode and forwards port 8700. +- `Android: Clear JDWP` removes the debugger setting and port forwarding. +- `Test: Go core` runs all tests in the native Go module. +- `Test: Android unit tests` runs the debug JVM unit-test suite. +- `Test: All` runs both suites in parallel and is the default VS Code test task. + +Run the default test task with `Tasks: Run Test Task`. Test reports from the Android suite are +written to `app/build/reports/tests/testDebugUnitTest/index.html`. + +For breakpoints, select `Attach MegaProxy (JDWP)` in the Run and Debug view and press F5. +The pre-launch task creates or starts the emulator, waits for Android to boot, builds and +installs the app, restarts it in debugger-wait mode and configures JDWP forwarding automatically. +The task remains active for the lifetime of the debug session so the ADB server and forwarding +socket are not torn down before the debugger attaches. + +For a regular run, select `Run MegaProxy on Emulator` in the Run and Debug view and use +`Run Without Debugging` (`Ctrl+F5`). The configuration creates the AVD when missing, starts it, +waits for Android to boot, builds the native AAR and APK, installs the APK and launches the app. +It runs `scripts/run-without-debugging.sh`, which also clears stale JDWP application state and +port forwarding left by an interrupted debug session. The same script can be run directly: + +```shell +./scripts/run-without-debugging.sh +``` + +Both regular and debug launch scripts terminate an existing MegaProxy application or JDWP +session before starting a new one. They keep the emulator itself running. + +JDWP debugging covers the Kotlin/Java layer. It cannot step into Go code inside +`libgojni.so`; debug that layer with Go tests and logging. Direct Go debugging on Android +would require a separate Delve-based workflow. diff --git a/app/build.gradle.kts b/app/build.gradle.kts new file mode 100644 index 0000000..3f5a59f --- /dev/null +++ b/app/build.gradle.kts @@ -0,0 +1,40 @@ +plugins { + id("com.android.application") + id("org.jetbrains.kotlin.android") + id("org.jetbrains.kotlin.plugin.compose") +} + +android { + namespace = "dev.megaproxy.app" + compileSdk = 35 + + defaultConfig { + applicationId = "dev.megaproxy.app" + minSdk = 26 + targetSdk = 35 + versionCode = 1 + versionName = "0.1.0" + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildFeatures { compose = true } + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + packaging { resources.excludes += "/META-INF/{AL2.0,LGPL2.1}" } +} + +kotlin { jvmToolchain(17) } + +dependencies { + implementation(platform("androidx.compose:compose-bom:2025.01.01")) + implementation("androidx.activity:activity-compose:1.10.0") + implementation("androidx.core:core-ktx:1.15.0") + implementation("androidx.compose.material3:material3") + implementation("androidx.compose.material:material-icons-extended") + implementation("androidx.lifecycle:lifecycle-runtime-compose:2.8.7") + implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7") + testImplementation("junit:junit:4.13.2") + runtimeOnly(files("libs/megaproxy.aar")) +} diff --git a/app/libs/megaproxy-sources.jar b/app/libs/megaproxy-sources.jar new file mode 100644 index 0000000000000000000000000000000000000000..0dc4dbf9c888744f7b646a87014ad469003dac50 GIT binary patch literal 6612 zcmaJm1yo$il1OlO0)x9lAow7I1qg!%2<{$aa0qS*ZUY2&cXxLP?!iLP0KtR9lI-8j zdvEvu>eHuh-9A-)y1JyRT1g)M89og1Q~M|2KmAaUQWIyB1xs@%h=XONrBv0}6{KNU zVWuAy3~epVOdXxr)J-9dmUgy+lw9nbs1guULnl)cHjw*ooRU$-jtLbN9!5zX30ZZ~ zWq|vMCF@gH`nQXsJh%pqFjqL4fS`|7bp>*oo297bRB90bI4i|Hzq$Ql8p0jHqiqk!&)|t;^ zgU);F*VE=cL0EL%dBI_G(4_@@_F`1GMSt-yvjBHNAz)Axp*YdHoMqSdITPehV>r1% zb*q`mNj+9ba1V#u^9*x`%&BSVAUbX}!Y*jHI6ZzTHtI?-AQw)9y4CCKboMqyLun9o zda)E|F-?=E^kUJ5eqWjt3A80WBK)})QmAvI!V+>>zGlzDOI;SIRe%_F-k`!*uy4&e zkvV*Pa9mHJ_ZUU^Whj4ch`EhZ`ryDXD6zSi(@~{Fh6szyD=r5zb@-sWaGGX;d5{Su zbwX0d6fHaVV4D^6Dw((DX&ajpyf55DjOeR*zIch)5zU66c{dfiI=ECfC|7hW8;QZZ zfuR&L>$vctSc(+blhW?oOb9m1E_SJu4wB{{^<$k5ec3HntW#WvP|)@9d!z`5v!M0T z8#?YmW<$2K6XygTY1=@F%1B0ka|-6RVACra-JG+vZJERy#0~&i#%HskJ*E%CR*kA2 zCA)~t7c(1)s?|4I0ZL6i`5Fz++3wQOYM{(zm$q!VxCF1Z*6#-z?0h=BFK+G!Tq^@R zM9}!^2)pF!%CXCe!^ncJci&0Z%pfd zt@W4pia_w(ui4fezZ5g{Tf(#;haFrC$wJ)W??&RfS3j@evX>EQI}P*ihV^# zmL?m!%TqM{PW`k7sRAwR2c6VzTTVqnju09asIuZBZdld4hjNdjpl@GYx2WUYcc1yZ~qWjnjv2KA><@)J_JjM6bnY6i?x}BXO)HO8fPte zfZJ`ZSRCW{X{v>IEIVjQf4W@ApBq+66R=uSzX#=OZy~cj(DTCaSg+)l_RcSf8K1XF zj#N1meY=69-3lnK#@9=3`^J}ZlrxOPho?GV;;*$#wJ=9{)IQ@W{0c3iK6a*W#~}dK zgo_e9B$q_sr@XC9;#dvy%A5(^5?-e0E?{a^GBH=UBBIHaeL^n`QP&zDJziiwt%r=- zp$G^|?OcR~I}M+LUfShqPkCEG*sDoEs}Px1_KGtAf%GGajXZi6qbzXcP@5(h@v}HV z)yqAfEBlN6Sz&G?YxyeR1HwaBa|L8j3rT>gypTB!W!QUlJLv2CjbdFflr2PWG4~uo z6#*)!nl-jkSa5iol*2sfLjG}9d;(LvM;Iv&+QMm{q#nt^k2lu#U(&q;@)_`2hXwHk z+)LGyx=DBNg4M=$TR%^LIrJ;r)j{rX%`jOmt1FH=b*Tnj*>x%C@N znadLieJ`^UhJ~uQsbzHWUB>5$V?2zp;9MuaysofqgCB+it#=CuUyS2wkhGbuci2MX zUbZ)nS5l3PMj_ft?vXey$Z2?dg3F@e|ET1^D<2#3Hun5EohjVcF$8YN#2Qon+-^TE z06qC-vzYDrp&j+^dzMWNO^X177#6fl5Wb{AibB`*v;k}cXSVbXP^ZLdCvKd)+=#9^_Tf2=BUMkv7@#k*UW^zzkL-K!`wk zUQI5)0zOsGcrve6j3Z@7OBdP?5g-|4vcT0- z9VslF%|qih%1DQp65TVQKdL!wex0$?3vV{c0-J#)5+J z3FS?E%qi?g7ud4m%``q)wGv%lPUNys#EZJ1&82|ZuzZ~UYn~+4fPL#GO^4`j08Y}C zCiqs@LWmHj(N5y#JtC>qry@yQ)ZA)tpokT#mVGC5@W-pVczWHT%dk<4{ha!v<<|Dtr_JEQK;dU5n+7XQkEJw!D_Kgu83mfk~lJ!1Xjb=&twv?XZs#(pPiCM3T^!6X|Yv@Hocg>eYd(E4V!RsCUISHb$Y?t$Bt$)ziZU zRH~Q>$F;wFXXP^mtifT~(%c1e?yi3;drsGz|e4p7re}o zelK`j8KwgzxgbzERT z5?hVt6S^@fXb6Dql@p{1FLj{=AP<^$(H4at(!nGanOVIt5OIA zm^X`;%$(~GRjXskrxLLoZ|3<-RHzu;8=}_IwKZ~o(1oC8M;BH7az$+_qJ*rEX0}B_ z*U9@Qm`C`$S!-o!b!hctztBQEs*%kRP73;{o}1g-UQNLr>+-4(^RF*6F8So3_hNBE z(vUIgsh~}MkU}=Wl-oR)YHq9#?mG_BqJbZ3>Lg{1Xno|4QwA?oEZ|UH81)7z(V|Ps zc-7v*b0O_@n^z7ET`!By4#b&p`G->vWQdSO^Vk{}4qzIU4IYwphxiozX^aruuk2*1F?EHDXLC7=4eV zt13<~%HemoH94dQA(y?z7ULYS;U7e%I=^>2FK9Z~VNq5-NwPGa;9cVTsHXMl%kCDWAb&#Z3@NCTC3a zW`$DSgEvur*x!=aA_SG?6bR(&bCz2c_nCPiY1YUGHs0KuJ-nojYPjogXMxtYCwZKj z41(PFt96J>^hT9aFDmf~KT0R%x&`$qWwHWPKPvfNPC<~QyI$WfDV2Dx5=wJM34Mv0 zT{U~b-aNBLOh^Wa6HiXg%~}_33w{JdTS0voB&`_A?%Cpfor87MGNr;_N3wkGXye)6=!z|<&DT^%0IhC63LMp zs*8!=OQz$EI17KLi;%Eb#4s1)8DyriCT~}iYkR2sj@JH|8mXc?&#~a7DSt7(6JOVz zGHvhXeSp^CJ$93Z!$QZD5-ObGS}_IUIlGE;qC9lS=<+b`4L*U_rhxd>sb{esk8i^k z#B07;`MIfI!D|sdiUZOZZ%tNr7Q)qsj;C2xc_#4J?6-UJf-YX{h(^LMJ+q054Jy#R z7JtN$_RdGT{My7*qLh?A2XE4CN;g_G#hw2Su&tX015eL{xLOM3<%yItI`6}J_|~O* zaU;jptbd)7=u&;IH^VRb-5Jy2z`{Q?s-K|{FBQqSk4TqjvZBZ&=^@m>x2D}YGh6^5 zAH;>r5GWz2UsDX)bjkjCVBTO<*qTlye&noD_bdI5Dc_*Wy>Q%=}0V=(Aa`NZG zK+;ai=Y9}5fU1;R{IJ&zx@%*Y0z1&{Cr3tzc}3OL`6t>?&t2G~PY#NmZ4DIW^gaGx zF^$JxHOOoFKQ78Q$I2zGV4%i99h*I26^WLe*she!T~T%dJQz*h8*RqjEt9@eLJ3E* zg-v)s*8?p|hj;4tn@Zvm2bvDx5{yFvvNq9>Um8K18#{NX1(noRMfG!e*&_0HT_6rg zXGv$6uJ%rlke0ZdZ(nVW9`&e3?3g7($`|%&>KCv)@gJ%W))c)PDD9YIl!-A*zR2`p z5`l%nZ5Qm@b5(iEl*)9U)9H}5MGSq>eSMyqqe?&1ap8pG>H>KgWAk z<46~#&d;N52=Umj$GF$LT8W@+F>PK9`a*|a@7-fnt16e7_XRcn@cVu9adn>w}?BMfno9^ zy*LkQ59Lz97lUC;DIxHk3i3DX!iF41uLa}XId1$96dO#dBkbo+xt%DlJ@#&GW}Y`G ziljk%4DJ$YutyXK={JcHXN{e^<&HJizH+3JB+4+HJ3uxA%-o&21DpAY-5m$}a|2iV zb}McTP;OQ`ansX2-)Ob?5v>I0`eh^@zvqZ}X_Q&s7#e{)@ zu>7aA82i7|;y1RIE>HQk>F?awDR#|@R0zAjBCp_z{oUY+h%XAj0%Vb;AUn1HqD4qg zkw%`>a*p=p?GLGHn+Bc>sG$${8im62y2S2tc+be(lDNc3&mYPULaLzyZfT!Yjj!4aIV&NLpTPd^ylUxRrhn@>tt!1wb;_`0j08X%(@Te=StvMFJZl z`ua__8RL52gZ_fFaMO~yJ4Ym!+qM`kGH@9MqmzNll?|Zi2pW885d&*D|LGd8dmFDfQBwqE@7V=?`^@Z z4_O0P!ZzC_^kDWh{jBhun=RzHnP@Nd8NIAKRL%iBrn?nu|Mo0du+!Kv`Ycg&eM|h zmCA8)Ac|dS%gu`1(-B(uWZpmODptE|sHi+qYw^JgpfuSjp` zZb*M`6T!7KyYy)jdr$q}*MV@KX5ZNvS=yL#DEuCN?{)NzzTG!TY@eUrp)t`)Dg?KF z4ESl!td78xlj;iY()$++#`dxTN&_K(W%5Ba^z33b-uA*xc$54D2ocof%PWvS~eH)`2sT2_0H*N@!D z1OmC;tonv?ii$IsqRZzqPYBdvM%!J3YBc(yx=^8*Qid1OVfzkw~>bbOeMh5!UH`HE2<>U4<(nhzu0tQ<}4G z>u8BOu12t_NS(dDddBv%1UTc4Y1HOkgfk=6jWT(beo%Ket2|1Q{zAH~1I`Z9m0LF% zdaH=j4eQF$_H5~eXDw9_6r$;l34gBpDZE4Ol5l!(BO~Y*a@R5XGxJABDDQZ&N$jjT z-Qh+c*AlG$&oQ;ni=T?t(QUb^*9_B#XYdu|MF(2j-m)!}A}V!i8H~oO4tUCD(#s|M%mplS;(O=b_DTdcP>_wu0eEE?wCl1nf0EN2 zONf1>`P>QA+)Y@Fliwc(?&7ZMc7G7*DDOZ^<8;>dKDppaLFQ8j+_-L@;O5{ZL$_-B zA#+?@M-2P{868)3SVRC1l82bCah$VOtqc?U5M>VjXHI+U2TFwn=h6Ti9rbEtm%OT) zSse0LGI~5&Vfo~58*lfR@BN~CI;K^D$3xYpp zp#-sWGBtMkA1@HqCCAN$A2i>l=#b!p^sosVidIG4TnP%h6&gyzP8o{$IHb_UJgq-eP}N0i!vqJ~e??znOBtBY3$x8&T0pLwvnumW*il(pX!2@hpmVp_EHDuX|yBr$Gi#6}wBPO9#cc4}XG zpW4Eqz@X_sC}X6QwS-a)be6N@Qe9j4FKZ1bb($Svtsi&eEoytbmi@5j%7y{Y5^AApMqE-qHTh$&*Cv zp1kJ2cO}2-*#B}RDyH^!5GT`rInL-VFbx-a@c4!5-M~r=ue+}mRtX!(J`?v4&5hpH zMDSw>EtxX*QDnZFKfH$aP5byy@<%r0Y!jws+DuUztqK8tn|il}9}YE5UxcWS9LBkg ziJR1E_nq-C8RMYz2wGi9p>3%SmHz$TlpQ6xIc+git2FrqPSabFIt$E1U!9n50v<)! zvMFoiaj!uapHjv)MB8{y>^B+b!(Yba(>skXk32_4;Bs|=Fc<0Uu*Th#P@gj{~iUD;fWM;8 zAMkoY|8Fe%C;eZQ@t2wYf%qr%U-W-B+JCb6>yi9j?1O~=%i?c3tR#S%p8mt2V literal 0 HcmV?d00001 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..8f0bd10 --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/java/dev/megaproxy/app/MainActivity.kt b/app/src/main/java/dev/megaproxy/app/MainActivity.kt new file mode 100644 index 0000000..f322067 --- /dev/null +++ b/app/src/main/java/dev/megaproxy/app/MainActivity.kt @@ -0,0 +1,190 @@ +package dev.megaproxy.app + +import android.Manifest +import android.app.Activity +import android.content.ClipData +import android.content.ClipboardManager +import android.content.Context +import android.content.Intent +import android.net.Uri +import android.net.VpnService +import android.os.Build +import android.os.Bundle +import android.provider.Settings +import androidx.activity.ComponentActivity +import androidx.activity.compose.rememberLauncherForActivityResult +import androidx.activity.compose.setContent +import androidx.activity.result.contract.ActivityResultContracts +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.text.selection.SelectionContainer +import androidx.compose.foundation.verticalScroll +import androidx.compose.material3.Button +import androidx.compose.material3.AlertDialog +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.material3.TopAppBar +import androidx.compose.material3.TextButton +import androidx.compose.runtime.Composable +import androidx.compose.runtime.DisposableEffect +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import androidx.lifecycle.Lifecycle +import androidx.lifecycle.LifecycleEventObserver +import androidx.lifecycle.compose.LocalLifecycleOwner +import dev.megaproxy.app.data.ConfigStore +import dev.megaproxy.app.vpn.DiagnosticLog +import dev.megaproxy.app.vpn.ProxyVpnService + +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { MaterialTheme { MainScreen(this) } } + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +private fun MainScreen(activity: Activity) { + val store = remember { ConfigStore(activity) } + var error by remember { mutableStateOf(null) } + var running by remember { mutableStateOf(ProxyVpnService.isRunning) } + var alwaysOn by remember { mutableStateOf(ProxyVpnService.isAlwaysOnMode) } + var lockdown by remember { mutableStateOf(ProxyVpnService.isLockdownMode) } + var showAlwaysOnDisconnectDialog by remember { mutableStateOf(false) } + val lifecycleOwner = LocalLifecycleOwner.current + DisposableEffect(lifecycleOwner) { + val observer = LifecycleEventObserver { _, event -> + if (event == Lifecycle.Event.ON_RESUME) { + running = ProxyVpnService.isRunning + alwaysOn = ProxyVpnService.isAlwaysOnMode + lockdown = ProxyVpnService.isLockdownMode + } + } + lifecycleOwner.lifecycle.addObserver(observer) + onDispose { lifecycleOwner.lifecycle.removeObserver(observer) } + } + val vpnPermission = rememberLauncherForActivityResult(ActivityResultContracts.StartActivityForResult()) { + if (it.resultCode == Activity.RESULT_OK) { + ProxyVpnService.start(activity) + running = true + } + } + val testVpnPermission = rememberLauncherForActivityResult(ActivityResultContracts.StartActivityForResult()) { + if (it.resultCode == Activity.RESULT_OK) ProxyVpnService.test(activity) + else error = "VPN permission is required for the connection test" + } + val notificationPermission = rememberLauncherForActivityResult(ActivityResultContracts.RequestPermission()) { } + + Scaffold(topBar = { TopAppBar(title = { Text("MegaProxy") }) }) { padding -> + Column( + Modifier.fillMaxSize().padding(padding).padding(16.dp).verticalScroll(rememberScrollState()), + verticalArrangement = Arrangement.spacedBy(12.dp), + ) { + Text( + when { + running && lockdown -> "VPN connected · Always-on lockdown" + running && alwaysOn -> "VPN connected · Always-on" + running -> "VPN connected" + else -> "VPN disconnected" + }, + style = MaterialTheme.typography.titleMedium, + ) + Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.spacedBy(12.dp)) { + Button( + onClick = { activity.startActivity(Intent(activity, ProxySettingsActivity::class.java)) }, + modifier = Modifier.weight(1f), + ) { Text("Proxy & JA3") } + Button( + onClick = { activity.startActivity(Intent(activity, SplitTunnelActivity::class.java)) }, + modifier = Modifier.weight(1f), + ) { Text("Split tunneling") } + } + Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.spacedBy(12.dp)) { + Button(onClick = { + if (running) { + if (alwaysOn) { + showAlwaysOnDisconnectDialog = true + } else { + ProxyVpnService.stop(activity) + running = false + } + } else { + val config = store.load() + error = config.validationError() + if (error == null) { + if (Build.VERSION.SDK_INT >= 33) notificationPermission.launch(Manifest.permission.POST_NOTIFICATIONS) + val intent = VpnService.prepare(activity) + if (intent == null) { ProxyVpnService.start(activity); running = true } + else vpnPermission.launch(intent) + } + } + }, modifier = Modifier.weight(1f)) { Text(if (running) "Disconnect" else "Connect") } + Button(onClick = { + val config = store.load() + error = config.connectionValidationError() + if (error == null) { + if (Build.VERSION.SDK_INT >= 33) notificationPermission.launch(Manifest.permission.POST_NOTIFICATIONS) + val intent = VpnService.prepare(activity) + if (intent == null) ProxyVpnService.test(activity) else testVpnPermission.launch(intent) + } + }, modifier = Modifier.weight(1f)) { Text("Test connection") } + } + error?.let { Text(it, color = MaterialTheme.colorScheme.error) } + Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.spacedBy(12.dp)) { + Button(onClick = { activity.startActivity(Intent(Settings.ACTION_VPN_SETTINGS)) }, modifier = Modifier.weight(1f)) { + Text("Always-on VPN") + } + Button(onClick = { + activity.startActivity(Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS).apply { + data = Uri.parse("package:${activity.packageName}") + }) + }, modifier = Modifier.weight(1f)) { Text("Battery settings") } + } + Text("Diagnostics", style = MaterialTheme.typography.titleMedium) + Text( + "Metadata may include destination hostnames. Credentials and traffic content are never logged.", + style = MaterialTheme.typography.bodySmall, + ) + Row(horizontalArrangement = Arrangement.spacedBy(12.dp)) { + Button(onClick = { DiagnosticLog.clear() }) { Text("Clear") } + Button(onClick = { + val clipboard = activity.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager + clipboard.setPrimaryClip(ClipData.newPlainText("MegaProxy diagnostics", DiagnosticLog.entries.joinToString("\n"))) + }) { Text("Copy") } + } + SelectionContainer { + Text(DiagnosticLog.entries.joinToString("\n").ifEmpty { "No diagnostic events yet." }, style = MaterialTheme.typography.bodySmall) + } + } + } + if (showAlwaysOnDisconnectDialog) { + AlertDialog( + onDismissRequest = { showAlwaysOnDisconnectDialog = false }, + title = { Text("Always-on VPN is enabled") }, + text = { + Text("Android will immediately restart MegaProxy if it is stopped. Open the system VPN settings and disable Always-on VPN to disconnect it explicitly.") + }, + confirmButton = { + TextButton(onClick = { + showAlwaysOnDisconnectDialog = false + activity.startActivity(Intent(Settings.ACTION_VPN_SETTINGS)) + }) { Text("Open VPN settings") } + }, + dismissButton = { + TextButton(onClick = { showAlwaysOnDisconnectDialog = false }) { Text("Cancel") } + }, + ) + } +} diff --git a/app/src/main/java/dev/megaproxy/app/ProxySettingsActivity.kt b/app/src/main/java/dev/megaproxy/app/ProxySettingsActivity.kt new file mode 100644 index 0000000..3e8151c --- /dev/null +++ b/app/src/main/java/dev/megaproxy/app/ProxySettingsActivity.kt @@ -0,0 +1,82 @@ +package dev.megaproxy.app + +import android.app.Activity +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll +import androidx.compose.material3.Button +import androidx.compose.material3.DropdownMenu +import androidx.compose.material3.DropdownMenuItem +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.ExposedDropdownMenuBox +import androidx.compose.material3.ExposedDropdownMenuDefaults +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.material3.TopAppBar +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.text.input.PasswordVisualTransformation +import androidx.compose.ui.unit.dp +import dev.megaproxy.app.data.ConfigStore +import dev.megaproxy.app.model.DnsProvider +import dev.megaproxy.app.model.TlsProfile + +class ProxySettingsActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { MaterialTheme { ProxySettingsScreen(this) } } + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +private fun ProxySettingsScreen(activity: Activity) { + val store = remember { ConfigStore(activity) } + var config by remember { mutableStateOf(store.load()) } + var error by remember { mutableStateOf(null) } + var profileExpanded by remember { mutableStateOf(false) } + var dnsExpanded by remember { mutableStateOf(false) } + Scaffold(topBar = { TopAppBar(title = { Text("Proxy & JA3") }) }) { padding -> + Column( + Modifier.fillMaxSize().padding(padding).padding(16.dp).verticalScroll(rememberScrollState()), + verticalArrangement = Arrangement.spacedBy(10.dp), + ) { + OutlinedTextField(config.host, { config = config.copy(host = it) }, label = { Text("HTTPS proxy hostname") }, singleLine = true, modifier = Modifier.fillMaxWidth()) + OutlinedTextField(config.port.toString(), { config = config.copy(port = it.toIntOrNull() ?: 0) }, label = { Text("Port") }, singleLine = true, modifier = Modifier.fillMaxWidth()) + OutlinedTextField(config.username, { config = config.copy(username = it) }, label = { Text("Basic Auth username") }, singleLine = true, modifier = Modifier.fillMaxWidth()) + OutlinedTextField(config.password, { config = config.copy(password = it) }, label = { Text("Password") }, singleLine = true, visualTransformation = PasswordVisualTransformation(), modifier = Modifier.fillMaxWidth()) + ExposedDropdownMenuBox(profileExpanded, { profileExpanded = it }) { + OutlinedTextField(config.profile.title, {}, readOnly = true, label = { Text("TLS / JA3 profile") }, trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(profileExpanded) }, modifier = Modifier.menuAnchor().fillMaxWidth()) + DropdownMenu(profileExpanded, { profileExpanded = false }) { + TlsProfile.entries.forEach { profile -> DropdownMenuItem(text = { Text(profile.title) }, enabled = profile.available, onClick = { config = config.copy(profile = profile); profileExpanded = false }) } + } + } + if (config.profile == TlsProfile.CUSTOM) OutlinedTextField(config.customJa3, { config = config.copy(customJa3 = it) }, label = { Text("JA3: version,ciphers,extensions,groups,points") }, modifier = Modifier.fillMaxWidth(), minLines = 2) + ExposedDropdownMenuBox(dnsExpanded, { dnsExpanded = it }) { + OutlinedTextField(config.dnsProvider.title, {}, readOnly = true, label = { Text("DNS over HTTPS") }, trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(dnsExpanded) }, modifier = Modifier.menuAnchor().fillMaxWidth()) + DropdownMenu(dnsExpanded, { dnsExpanded = false }) { + DnsProvider.entries.forEach { provider -> DropdownMenuItem(text = { Text(provider.title) }, onClick = { config = config.copy(dnsProvider = provider); dnsExpanded = false }) } + } + } + if (config.dnsProvider == DnsProvider.CUSTOM) OutlinedTextField(config.customDohUrl, { config = config.copy(customDohUrl = it) }, label = { Text("Custom DoH URL") }, singleLine = true, modifier = Modifier.fillMaxWidth()) + error?.let { Text(it, color = MaterialTheme.colorScheme.error) } + Button(onClick = { + error = config.connectionValidationError() + if (error == null) { store.save(config); activity.finish() } + }, modifier = Modifier.fillMaxWidth()) { Text("Save") } + } + } +} diff --git a/app/src/main/java/dev/megaproxy/app/SplitTunnelActivity.kt b/app/src/main/java/dev/megaproxy/app/SplitTunnelActivity.kt new file mode 100644 index 0000000..7b49520 --- /dev/null +++ b/app/src/main/java/dev/megaproxy/app/SplitTunnelActivity.kt @@ -0,0 +1,78 @@ +package dev.megaproxy.app + +import android.content.Intent +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll +import androidx.compose.material3.Button +import androidx.compose.material3.Checkbox +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.material3.TopAppBar +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import dev.megaproxy.app.data.ConfigStore + +class SplitTunnelActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { MaterialTheme { SplitTunnelScreen(this) } } + } +} + +private data class AppItem(val packageName: String, val label: String) + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +private fun SplitTunnelScreen(activity: SplitTunnelActivity) { + val store = remember { ConfigStore(activity) } + var config by remember { mutableStateOf(store.load()) } + val apps = remember { + val launcher = Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_LAUNCHER) + activity.packageManager.queryIntentActivities(launcher, 0) + .map { AppItem(it.activityInfo.packageName, it.loadLabel(activity.packageManager).toString()) } + .distinctBy { it.packageName }.sortedBy { it.label.lowercase() } + } + Scaffold(topBar = { TopAppBar(title = { Text("Split tunneling") }) }) { padding -> + Column( + Modifier.fillMaxSize().padding(padding).padding(16.dp).verticalScroll(rememberScrollState()), + verticalArrangement = Arrangement.spacedBy(6.dp), + ) { + Text("Only selected applications use the proxy. UDP and QUIC are blocked; DNS uses the configured DoH endpoint.", style = MaterialTheme.typography.bodySmall) + Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) { + Column(Modifier.weight(1f)) { + Text("Enable IPv6 destinations") + Text( + "Disabled by default for proxies that cannot CONNECT to IPv6 addresses.", + style = MaterialTheme.typography.bodySmall, + ) + } + Checkbox(config.allowIpv6, { config = config.copy(allowIpv6 = it) }) + } + apps.forEach { app -> + Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) { + Text(app.label, Modifier.weight(1f).padding(top = 12.dp)) + Checkbox(app.packageName in config.selectedPackages, { checked -> + config = config.copy(selectedPackages = if (checked) config.selectedPackages + app.packageName else config.selectedPackages - app.packageName) + }) + } + } + Button(onClick = { store.save(config); activity.finish() }, modifier = Modifier.fillMaxWidth()) { Text("Save") } + } + } +} diff --git a/app/src/main/java/dev/megaproxy/app/data/ConfigStore.kt b/app/src/main/java/dev/megaproxy/app/data/ConfigStore.kt new file mode 100644 index 0000000..cd37c78 --- /dev/null +++ b/app/src/main/java/dev/megaproxy/app/data/ConfigStore.kt @@ -0,0 +1,83 @@ +package dev.megaproxy.app.data + +import android.content.Context +import android.security.keystore.KeyGenParameterSpec +import android.security.keystore.KeyProperties +import android.util.Base64 +import dev.megaproxy.app.model.ProxyConfig +import dev.megaproxy.app.model.DnsProvider +import dev.megaproxy.app.model.TlsProfile +import java.security.KeyStore +import javax.crypto.Cipher +import javax.crypto.KeyGenerator +import javax.crypto.SecretKey +import javax.crypto.spec.GCMParameterSpec + +class ConfigStore(context: Context) { + private val prefs = context.getSharedPreferences("proxy_config", Context.MODE_PRIVATE) + + fun load(): ProxyConfig = ProxyConfig( + host = prefs.getString("host", "").orEmpty(), + port = prefs.getInt("port", 443), + username = prefs.getString("username", "").orEmpty(), + password = decrypt(prefs.getString("password", null)), + profile = runCatching { + TlsProfile.valueOf(prefs.getString("profile", TlsProfile.CHROME_ANDROID.name)!!) + }.getOrDefault(TlsProfile.CHROME_ANDROID), + customJa3 = prefs.getString("custom_ja3", "").orEmpty(), + dnsProvider = runCatching { + DnsProvider.valueOf(prefs.getString("dns_provider", DnsProvider.CLOUDFLARE.name)!!) + }.getOrDefault(DnsProvider.CLOUDFLARE), + customDohUrl = prefs.getString("custom_doh_url", "").orEmpty(), + selectedPackages = prefs.getStringSet("packages", emptySet())?.toSet().orEmpty(), + allowIpv6 = prefs.getBoolean("allow_ipv6", false), + ) + + fun save(config: ProxyConfig) { + prefs.edit() + .putString("host", config.host.trim()) + .putInt("port", config.port) + .putString("username", config.username) + .putString("password", encrypt(config.password)) + .putString("profile", config.profile.name) + .putString("custom_ja3", config.customJa3.trim()) + .putString("dns_provider", config.dnsProvider.name) + .putString("custom_doh_url", config.customDohUrl.trim()) + .putStringSet("packages", config.selectedPackages) + .putBoolean("allow_ipv6", config.allowIpv6) + .apply() + } + + private fun key(): SecretKey { + val store = KeyStore.getInstance("AndroidKeyStore").apply { load(null) } + (store.getKey(KEY_ALIAS, null) as? SecretKey)?.let { return it } + return KeyGenerator.getInstance(KeyProperties.KEY_ALGORITHM_AES, "AndroidKeyStore").run { + init(KeyGenParameterSpec.Builder(KEY_ALIAS, KeyProperties.PURPOSE_ENCRYPT or KeyProperties.PURPOSE_DECRYPT) + .setBlockModes(KeyProperties.BLOCK_MODE_GCM) + .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_NONE) + .build()) + generateKey() + } + } + + private fun encrypt(plain: String): String { + val cipher = Cipher.getInstance("AES/GCM/NoPadding") + cipher.init(Cipher.ENCRYPT_MODE, key()) + val packed = cipher.iv + cipher.doFinal(plain.toByteArray(Charsets.UTF_8)) + return Base64.encodeToString(packed, Base64.NO_WRAP) + } + + private fun decrypt(packed: String?): String = runCatching { + if (packed == null) return "" + val bytes = Base64.decode(packed, Base64.NO_WRAP) + require(bytes.size > IV_SIZE) + val cipher = Cipher.getInstance("AES/GCM/NoPadding") + cipher.init(Cipher.DECRYPT_MODE, key(), GCMParameterSpec(128, bytes.copyOfRange(0, IV_SIZE))) + cipher.doFinal(bytes.copyOfRange(IV_SIZE, bytes.size)).toString(Charsets.UTF_8) + }.getOrDefault("") + + private companion object { + const val KEY_ALIAS = "megaproxy.proxy.credentials.v1" + const val IV_SIZE = 12 + } +} diff --git a/app/src/main/java/dev/megaproxy/app/model/ProxyConfig.kt b/app/src/main/java/dev/megaproxy/app/model/ProxyConfig.kt new file mode 100644 index 0000000..ca222be --- /dev/null +++ b/app/src/main/java/dev/megaproxy/app/model/ProxyConfig.kt @@ -0,0 +1,66 @@ +package dev.megaproxy.app.model + +data class ProxyConfig( + val host: String = "", + val port: Int = 443, + val username: String = "", + val password: String = "", + val profile: TlsProfile = TlsProfile.CHROME_ANDROID, + val customJa3: String = "", + val dnsProvider: DnsProvider = DnsProvider.CLOUDFLARE, + val customDohUrl: String = "", + val selectedPackages: Set = emptySet(), + val allowIpv6: Boolean = false, + val resolvedProxyIp: String = "", +) { + fun connectionValidationError(): String? = when { + host.isBlank() -> "Enter the proxy hostname" + host.contains(Regex("[/:\\s]")) -> "Enter a hostname without a scheme or path" + port !in 1..65535 -> "Port must be between 1 and 65535" + username.isBlank() -> "Enter the Basic Auth username" + password.isBlank() -> "Enter the Basic Auth password" + profile == TlsProfile.CUSTOM && Ja3Spec.parse(customJa3) == null -> + "JA3 must contain five fields: version,ciphers,extensions,groups,points" + dnsProvider == DnsProvider.CUSTOM && !customDohUrl.matches(Regex("https://[^/\\s]+/.+")) -> + "The custom DoH URL must start with https://" + else -> null + } + + fun validationError(): String? = connectionValidationError() + ?: if (selectedPackages.isEmpty()) "Select at least one application" else null +} + +enum class DnsProvider(val title: String, val url: String) { + CLOUDFLARE("Cloudflare", "https://cloudflare-dns.com/dns-query"), + GOOGLE("Google", "https://dns.google/dns-query"), + QUAD9("Quad9", "https://dns.quad9.net/dns-query"), + CUSTOM("Custom DoH URL", ""), +} + +enum class TlsProfile(val title: String, val available: Boolean = true) { + CHROME_ANDROID("Chrome Android 133 (uTLS)"), + FIREFOX_ANDROID("Firefox Android 120 (uTLS)"), + EDGE_ANDROID("Edge Android (awaiting a verified profile)", false), + RANDOMIZED("Randomized compatible"), + SAMSUNG_INTERNET("Samsung Internet (awaiting a verified profile)", false), + YANDEX_BROWSER("Yandex Browser (awaiting a verified profile)", false), + CUSTOM("Manual JA3"), +} + +data class Ja3Spec( + val tlsVersion: Int, + val cipherSuites: List, + val extensions: List, + val supportedGroups: List, + val ecPointFormats: List, +) { + companion object { + fun parse(value: String): Ja3Spec? = runCatching { + val fields = value.trim().split(',') + require(fields.size == 5) + fun numbers(field: String): List = if (field.isBlank()) emptyList() else + field.split('-').map { it.toInt().also { number -> require(number in 0..65535) } } + Ja3Spec(fields[0].toInt(), numbers(fields[1]), numbers(fields[2]), numbers(fields[3]), numbers(fields[4])) + }.getOrNull() + } +} diff --git a/app/src/main/java/dev/megaproxy/app/vpn/DiagnosticLog.kt b/app/src/main/java/dev/megaproxy/app/vpn/DiagnosticLog.kt new file mode 100644 index 0000000..5f6960c --- /dev/null +++ b/app/src/main/java/dev/megaproxy/app/vpn/DiagnosticLog.kt @@ -0,0 +1,27 @@ +package dev.megaproxy.app.vpn + +import android.os.Handler +import android.os.Looper +import androidx.compose.runtime.mutableStateListOf +import java.time.LocalTime +import java.time.format.DateTimeFormatter + +object DiagnosticLog { + private const val MAX_ENTRIES = 200 + private val timeFormat = DateTimeFormatter.ofPattern("HH:mm:ss.SSS") + private val mainHandler = Handler(Looper.getMainLooper()) + + val entries = mutableStateListOf() + + fun add(message: String) { + val append = { + entries.add("${LocalTime.now().format(timeFormat)} $message") + while (entries.size > MAX_ENTRIES) entries.removeAt(0) + } + if (Looper.myLooper() == Looper.getMainLooper()) append() else mainHandler.post(append) + } + + fun clear() { + if (Looper.myLooper() == Looper.getMainLooper()) entries.clear() else mainHandler.post { entries.clear() } + } +} diff --git a/app/src/main/java/dev/megaproxy/app/vpn/ProxyCore.kt b/app/src/main/java/dev/megaproxy/app/vpn/ProxyCore.kt new file mode 100644 index 0000000..c93450b --- /dev/null +++ b/app/src/main/java/dev/megaproxy/app/vpn/ProxyCore.kt @@ -0,0 +1,94 @@ +package dev.megaproxy.app.vpn + +import android.net.VpnService +import android.os.ParcelFileDescriptor +import dev.megaproxy.app.model.ProxyConfig +import org.json.JSONObject +import java.lang.reflect.Proxy + +interface ProxyCore { + fun resolveProxy(host: String, status: (String) -> Unit): String? + fun start(tunFd: Int, config: ProxyConfig, status: (String) -> Unit): Boolean + fun test(config: ProxyConfig, status: (String) -> Unit): String? + fun stop() +} + +/** JNI boundary for the Go/uTLS userspace TCP/IP stack. */ +class NativeProxyCore(private val vpnService: VpnService) : ProxyCore { + private fun protectSocket(fd: Long): Boolean = vpnService.protect(fd.toInt()) + + private fun configJson(config: ProxyConfig) = JSONObject() + .put("host", config.host.trim()) + .put("dialHost", config.resolvedProxyIp) + .put("port", config.port) + .put("username", config.username) + .put("password", config.password) + .put("profile", config.profile.name) + .put("customJa3", config.customJa3.trim()) + .put("dohUrl", if (config.dnsProvider.url.isNotEmpty()) config.dnsProvider.url else config.customDohUrl.trim()) + .put("allowIpv6", config.allowIpv6) + .toString() + + private fun callback(type: Class<*>, methodName: String, callback: (Array?) -> Any?) = + Proxy.newProxyInstance(type.classLoader, arrayOf(type)) { _, method, args -> + if (method.name == methodName) callback(args) else error("Unknown native callback ${method.name}") + } + + override fun resolveProxy(host: String, status: (String) -> Unit): String? = runCatching { + val mobile = Class.forName("mobile.Mobile") + val protectorType = Class.forName("mobile.Protector") + val reporterType = Class.forName("mobile.Reporter") + val protector = callback(protectorType, "protect") { protectSocket(it!![0] as Long) } + val reporter = callback(reporterType, "report") { DiagnosticLog.add(it!![0] as String); null } + mobile.getMethod("resolveProxy", String::class.java, protectorType, reporterType) + .invoke(null, host, protector, reporter) as String + }.onFailure { + val message = it.cause?.message ?: it.message ?: "Unknown native error" + DiagnosticLog.add("Proxy bootstrap DNS failed for $host: $message") + status("Proxy DNS failed: $message") + }.getOrNull() + + override fun start(tunFd: Int, config: ProxyConfig, status: (String) -> Unit): Boolean { + var detachedFd: Int? = null + return runCatching { + val mobile = Class.forName("mobile.Mobile") + val protectorType = Class.forName("mobile.Protector") + val reporterType = Class.forName("mobile.Reporter") + val protector = callback(protectorType, "protect") { protectSocket(it!![0] as Long) } + val reporter = callback(reporterType, "report") { DiagnosticLog.add(it!![0] as String); null } + detachedFd = ParcelFileDescriptor.fromFd(tunFd).detachFd() + val startMethod = mobile.getMethod( + "start", Long::class.javaPrimitiveType, String::class.java, protectorType, reporterType, + ) + val goFd = detachedFd!! + detachedFd = null // Start's contract takes ownership, including error paths. + startMethod.invoke(null, goFd.toLong(), configJson(config), protector, reporter) + status("TCP is protected by the HTTPS proxy") + true + }.getOrElse { + detachedFd?.let { fd -> runCatching { ParcelFileDescriptor.adoptFd(fd).close() } } + status(if (it is ClassNotFoundException) "Add app/libs/megaproxy.aar" else "Native core error: ${it.cause?.message ?: it.message}") + false + } + } + + override fun test(config: ProxyConfig, status: (String) -> Unit): String? = runCatching { + val mobile = Class.forName("mobile.Mobile") + val protectorType = Class.forName("mobile.Protector") + val reporterType = Class.forName("mobile.Reporter") + val protector = callback(protectorType, "protect") { protectSocket(it!![0] as Long) } + val reporter = callback(reporterType, "report") { DiagnosticLog.add(it!![0] as String); null } + mobile.getMethod("testConnection", String::class.java, protectorType, reporterType) + .invoke(null, configJson(config), protector, reporter) as String + }.onSuccess { + status("Test passed: exit IP $it") + }.onFailure { + val message = it.cause?.message ?: it.message ?: "Unknown native error" + DiagnosticLog.add("Connection test failed: $message") + status("Test failed: $message") + }.getOrNull() + + override fun stop() { + runCatching { Class.forName("mobile.Mobile").getMethod("stop").invoke(null) } + } +} diff --git a/app/src/main/java/dev/megaproxy/app/vpn/ProxyVpnService.kt b/app/src/main/java/dev/megaproxy/app/vpn/ProxyVpnService.kt new file mode 100644 index 0000000..590fdc6 --- /dev/null +++ b/app/src/main/java/dev/megaproxy/app/vpn/ProxyVpnService.kt @@ -0,0 +1,201 @@ +package dev.megaproxy.app.vpn + +import android.app.NotificationChannel +import android.app.NotificationManager +import android.app.PendingIntent +import android.content.Context +import android.content.Intent +import android.net.VpnService +import android.os.Build +import android.os.ParcelFileDescriptor +import androidx.core.app.NotificationCompat +import androidx.core.content.ContextCompat +import dev.megaproxy.app.MainActivity +import dev.megaproxy.app.data.ConfigStore +import java.util.concurrent.atomic.AtomicBoolean +import kotlin.concurrent.thread + +class ProxyVpnService : VpnService() { + private var tunnel: ParcelFileDescriptor? = null + private var core: ProxyCore? = null + private var activeConfig: dev.megaproxy.app.model.ProxyConfig? = null + + override fun onCreate() { + super.onCreate() + createChannel() + } + + override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + isAlwaysOnMode = isAlwaysOn + isLockdownMode = isLockdownEnabled + } + if (intent?.action == ACTION_STOP) { + stopTunnel() + stopSelf() + return START_NOT_STICKY + } + if (intent?.action == ACTION_TEST) { + startForeground(NOTIFICATION_ID, notification("Testing connection…")) + thread(name = "megaproxy-connection-test") { testConnection() } + return START_NOT_STICKY + } + startForeground(NOTIFICATION_ID, notification("Connecting…")) + if (tunnel == null && startRunning.compareAndSet(false, true)) { + thread(name = "megaproxy-vpn-start") { + try { + startTunnel(testOnly = false) + } finally { + startRunning.set(false) + } + } + } + return START_STICKY + } + + private fun testConnection() { + if (!testRunning.compareAndSet(false, true)) { + DiagnosticLog.add("Connection test is already running") + return + } + val storedConfig = ConfigStore(this).load() + storedConfig.connectionValidationError()?.let { + DiagnosticLog.add("Connection test cannot start: $it") + testRunning.set(false) + if (tunnel == null) { stopForeground(STOP_FOREGROUND_REMOVE); stopSelf() } + return + } + val temporaryVpn = tunnel == null + if (temporaryVpn && !startTunnel(testOnly = true, suppliedConfig = storedConfig)) { + DiagnosticLog.add("Connection test failed: temporary VPN could not be started") + testRunning.set(false) + stopForeground(STOP_FOREGROUND_REMOVE) + stopSelf() + return + } + val config = activeConfig ?: run { + DiagnosticLog.add("Connection test failed: active VPN configuration is unavailable") + testRunning.set(false) + return + } + NativeProxyCore(this).test(config) { message -> + getSystemService(NotificationManager::class.java).notify(NOTIFICATION_ID, notification(message)) + } + testRunning.set(false) + if (temporaryVpn) { + stopTunnel() + stopSelf() + } + } + + private fun startTunnel(testOnly: Boolean, suppliedConfig: dev.megaproxy.app.model.ProxyConfig? = null): Boolean { + val storedConfig = suppliedConfig ?: ConfigStore(this).load() + DiagnosticLog.add(if (testOnly) "Starting temporary VPN for connection test" else "Starting VPN for ${storedConfig.selectedPackages.size} selected application(s)") + val validationError = if (testOnly) storedConfig.connectionValidationError() else storedConfig.validationError() + validationError?.let { + stopForeground(STOP_FOREGROUND_REMOVE) + stopSelf() + return false + } + val builder = Builder() + .setSession("MegaProxy") + .setMtu(1500) + .addAddress("10.77.0.1", 30) + .addAddress("fd77::1", 126) + .addRoute("0.0.0.0", 0) + .addRoute("::", 0) + .addDnsServer("10.77.0.2") + .setBlocking(true) + val allowedPackages = if (testOnly) setOf(packageName) else storedConfig.selectedPackages + allowedPackages.forEach { packageName -> + runCatching { builder.addAllowedApplication(packageName) } + } + tunnel = builder.establish() ?: run { stopSelf(); return false } + DiagnosticLog.add("TUN established with IPv4, IPv6 and intercepted DNS") + val proxyCore = NativeProxyCore(this) + val proxyIp = proxyCore.resolveProxy(storedConfig.host) { message -> + getSystemService(NotificationManager::class.java).notify(NOTIFICATION_ID, notification(message)) + } ?: run { + tunnel?.close() + tunnel = null + stopForeground(STOP_FOREGROUND_REMOVE) + stopSelf() + return false + } + val config = storedConfig.copy(resolvedProxyIp = proxyIp) + core = proxyCore.also { + val started = it.start(tunnel!!.fd, config) { message -> + getSystemService(NotificationManager::class.java).notify(NOTIFICATION_ID, notification(message)) + } + if (!started) { + tunnel?.close() + tunnel = null + core = null + isRunning = false + stopForeground(STOP_FOREGROUND_DETACH) + stopSelf() + return false + } + } + isRunning = true + activeConfig = config + return true + } + + private fun stopTunnel() { + if (tunnel != null) DiagnosticLog.add("Stopping VPN") + isRunning = false + core?.stop() + core = null + tunnel?.close() + tunnel = null + activeConfig = null + stopForeground(STOP_FOREGROUND_REMOVE) + } + + override fun onRevoke() { + isAlwaysOnMode = false + isLockdownMode = false + stopTunnel() + stopSelf() + } + override fun onDestroy() { stopTunnel(); super.onDestroy() } + + private fun createChannel() { + val channel = NotificationChannel(CHANNEL_ID, "VPN", NotificationManager.IMPORTANCE_LOW).apply { + description = "Persistent VPN status" + setShowBadge(false) + } + getSystemService(NotificationManager::class.java).createNotificationChannel(channel) + } + + private fun notification(text: String) = NotificationCompat.Builder(this, CHANNEL_ID) + .setSmallIcon(android.R.drawable.stat_sys_warning) + .setContentTitle("MegaProxy is active") + .setContentText(text) + .setOngoing(true) + .setCategory(NotificationCompat.CATEGORY_SERVICE) + .setContentIntent(PendingIntent.getActivity(this, 0, Intent(this, MainActivity::class.java), PendingIntent.FLAG_IMMUTABLE)) + .build() + + companion object { + private const val CHANNEL_ID = "vpn" + private const val NOTIFICATION_ID = 101 + private const val ACTION_STOP = "dev.megaproxy.STOP" + private const val ACTION_TEST = "dev.megaproxy.TEST" + private val testRunning = AtomicBoolean(false) + private val startRunning = AtomicBoolean(false) + @Volatile var isRunning: Boolean = false + private set + @Volatile var isAlwaysOnMode: Boolean = false + private set + @Volatile var isLockdownMode: Boolean = false + private set + + fun start(context: Context) = ContextCompat.startForegroundService(context, Intent(context, ProxyVpnService::class.java)) + fun stop(context: Context) = context.startService(Intent(context, ProxyVpnService::class.java).setAction(ACTION_STOP)) + fun test(context: Context) = ContextCompat.startForegroundService( + context, Intent(context, ProxyVpnService::class.java).setAction(ACTION_TEST), + ) + } +} diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..3e47392 --- /dev/null +++ b/app/src/main/res/values/styles.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/test/java/dev/megaproxy/app/model/Ja3SpecTest.kt b/app/src/test/java/dev/megaproxy/app/model/Ja3SpecTest.kt new file mode 100644 index 0000000..bf8f776 --- /dev/null +++ b/app/src/test/java/dev/megaproxy/app/model/Ja3SpecTest.kt @@ -0,0 +1,18 @@ +package dev.megaproxy.app.model + +import org.junit.Assert.assertEquals +import org.junit.Assert.assertNull +import org.junit.Test + +class Ja3SpecTest { + @Test fun parsesCanonicalJa3() { + val spec = Ja3Spec.parse("771,4865-4866,0-10-11,29-23,0")!! + assertEquals(771, spec.tlsVersion) + assertEquals(listOf(4865, 4866), spec.cipherSuites) + } + + @Test fun rejectsMalformedJa3() { + assertNull(Ja3Spec.parse("771,4865,0")) + assertNull(Ja3Spec.parse("771,70000,0,29,0")) + } +} diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 0000000..1b4481a --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,5 @@ +plugins { + id("com.android.application") version "8.7.3" apply false + id("org.jetbrains.kotlin.android") version "2.0.21" apply false + id("org.jetbrains.kotlin.plugin.compose") version "2.0.21" apply false +} diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..2318707 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,4 @@ +org.gradle.jvmargs=-Xmx2g -Dfile.encoding=UTF-8 +android.useAndroidX=true +kotlin.code.style=official +android.nonTransitiveRClass=true diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..1b33c55baabb587c669f562ae36f953de2481846 GIT binary patch literal 43764 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 '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH="\\\"\\\"" + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..5eed7ee --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,94 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH= + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/native/README.md b/native/README.md new file mode 100644 index 0000000..1b19d96 --- /dev/null +++ b/native/README.md @@ -0,0 +1,17 @@ +# Go dataplane + +This module is bound into `megaproxy.aar` with gomobile. It embeds tun2socks/gVisor, +registers an HTTPS CONNECT transport, protects every upstream socket through Android +`VpnService.protect`, verifies the proxy certificate and uses uTLS for ClientHello control. +`Start` always takes ownership of the passed duplicate TUN descriptor, including error paths. + +Build prerequisites: Go 1.26+, Android SDK/NDK and `gomobile`. + +```shell +go install golang.org/x/mobile/cmd/gomobile@latest +gomobile init +gomobile bind -target=android -androidapi 26 -o ../app/libs/megaproxy.aar ./mobile +``` + +Run `go test ./...` before producing the AAR. The dependency versions are pinned in `go.mod`; +commit the generated `go.sum` after the first successful dependency download. diff --git a/native/go.mod b/native/go.mod new file mode 100644 index 0000000..34f3aaa --- /dev/null +++ b/native/go.mod @@ -0,0 +1,29 @@ +module dev.megaproxy/native + +go 1.26.3 + +require ( + github.com/refraction-networking/utls v1.8.2 + github.com/xjasonlyu/tun2socks/v2 v2.7.0 + gvisor.dev/gvisor v0.0.0-20260701204157-69c2d17aea96 +) + +require ( + github.com/andybalholm/brotli v1.0.6 // indirect + github.com/google/btree v1.1.3 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/klauspost/compress v1.17.4 // indirect + go.uber.org/atomic v1.11.0 // indirect + go.uber.org/multierr v1.11.0 // indirect + go.uber.org/zap v1.28.0 // indirect + golang.org/x/crypto v0.53.0 // indirect + golang.org/x/exp v0.0.0-20260611194520-c48552f49976 // indirect + golang.org/x/mobile v0.0.0-20260821190718-4776eadac327 // indirect + golang.org/x/mod v0.39.0 // indirect + golang.org/x/sync v0.22.0 // indirect + golang.org/x/sys v0.47.0 // indirect + golang.org/x/time v0.15.0 // indirect + golang.org/x/tools v0.49.0 // indirect +) + +tool golang.org/x/mobile/cmd/gobind diff --git a/native/go.sum b/native/go.sum new file mode 100644 index 0000000..74718fe --- /dev/null +++ b/native/go.sum @@ -0,0 +1,54 @@ +github.com/andybalholm/brotli v1.0.6 h1:Yf9fFpf49Zrxb9NlQaluyE92/+X7UVHlhMNJN2sxfOI= +github.com/andybalholm/brotli v1.0.6/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg= +github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= +github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/klauspost/compress v1.17.4 h1:Ej5ixsIri7BrIjBkRZLTo6ghwrEtHFk7ijlczPW4fZ4= +github.com/klauspost/compress v1.17.4/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/refraction-networking/utls v1.8.2 h1:j4Q1gJj0xngdeH+Ox/qND11aEfhpgoEvV+S9iJ2IdQo= +github.com/refraction-networking/utls v1.8.2/go.mod h1:jkSOEkLqn+S/jtpEHPOsVv/4V4EVnelwbMQl4vCWXAM= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= +github.com/xjasonlyu/tun2socks/v2 v2.7.0 h1:fYEN0Q1sSanuoID8xvUTsMODbKLJJH/J5ywYoMRxIPw= +github.com/xjasonlyu/tun2socks/v2 v2.7.0/go.mod h1:XHgJ3wbs63mZxGbJawt6jjNX65aPDl+Qhn2ePPEE4KI= +go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= +go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= +go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= +go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= +go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= +go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= +go.uber.org/zap v1.28.0 h1:IZzaP1Fv73/T/pBMLk4VutPl36uNC+OSUh3JLG3FIjo= +go.uber.org/zap v1.28.0/go.mod h1:rDLpOi171uODNm/mxFcuYWxDsqWSAVkFdX4XojSKg/Q= +go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= +go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= +golang.org/x/crypto v0.53.0 h1:QZ4Muo8THX6CizN2vPPd5fBGHyogrdK9fG4wLPFUsto= +golang.org/x/crypto v0.53.0/go.mod h1:DNLU434OwVakk9PzuwV8w62mAJpRJL3vsgcfp4Qnsio= +golang.org/x/exp v0.0.0-20260611194520-c48552f49976 h1:X8Hz2ImujgbmetVuW+w2YkyZChE3cBpZi2P158rTG9M= +golang.org/x/exp v0.0.0-20260611194520-c48552f49976/go.mod h1:vnf4pv9iKZXY58sQE1L86zmNWJ4159e1RkcWiLCkeEY= +golang.org/x/mobile v0.0.0-20260821190718-4776eadac327 h1:D/wiQ6AoTYjDtSD0HMPhU8O40NUP8EF0UmDhIYCnG4I= +golang.org/x/mobile v0.0.0-20260821190718-4776eadac327/go.mod h1:D9q8rgXu13Q3uuM+Vuy6F/DG1WF/giTPLtqQ9on5B1M= +golang.org/x/mod v0.39.0 h1:UF5zwQdCRRUpHfyPwr7d4UrGiVeldIsogtzWVnczL74= +golang.org/x/mod v0.39.0/go.mod h1:bvIbwjQ0HUFFf5AKukeeYQG4ZBUG9yxQbR9aEweIwYY= +golang.org/x/sync v0.22.0 h1:SZjpbeLmrCk4xhRSZFNZW5gFUeCeFgjekvI/+gfScek= +golang.org/x/sync v0.22.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= +golang.org/x/sys v0.47.0 h1:o7XGOvZQCADBQQ4Y7VNq2dRWQR7JmOUW8Kxx4ZsNgWs= +golang.org/x/sys v0.47.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/time v0.15.0 h1:bbrp8t3bGUeFOx08pvsMYRTCVSMk89u4tKbNOZbp88U= +golang.org/x/time v0.15.0/go.mod h1:Y4YMaQmXwGQZoFaVFk4YpCt4FLQMYKZe9oeV/f4MSno= +golang.org/x/tools v0.49.0 h1:3NI7VXzL9+1WZD52Dx2ttoPwD5DWrFGpl9mFZDlmisI= +golang.org/x/tools v0.49.0/go.mod h1:SJNXV9DBKT0UbdttsQjbfJlAE/q+y36++zo3uL3N0Oo= +golang.org/x/tools/go/expect v0.1.1-deprecated h1:jpBZDwmgPhXsKZC6WhL20P4b/wmnpsEAGHaNy0n/rJM= +golang.org/x/tools/go/expect v0.1.1-deprecated/go.mod h1:eihoPOH+FgIqa3FpoTwguz/bVUSGBlGQU67vpBeOrBY= +golang.org/x/tools/go/packages/packagestest v0.1.1-deprecated h1:1h2MnaIAIXISqTFKdENegdpAgUXz6NrPEsbIeWaBRvM= +golang.org/x/tools/go/packages/packagestest v0.1.1-deprecated/go.mod h1:RVAQXBGNv1ib0J382/DPCRS/BPnsGebyM1Gj5VSDpG8= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gvisor.dev/gvisor v0.0.0-20260701204157-69c2d17aea96 h1:LZXOf4NwvAwUy/eI8P+Y3DUdYLyaCEDNPEjsL2OP2ro= +gvisor.dev/gvisor v0.0.0-20260701204157-69c2d17aea96/go.mod h1:8aLQqUBHDH8fY5y60lzmwDpMMbQCcT3EBfoSwhfaGCY= diff --git a/native/mobile/bootstrap.go b/native/mobile/bootstrap.go new file mode 100644 index 0000000..859ea37 --- /dev/null +++ b/native/mobile/bootstrap.go @@ -0,0 +1,157 @@ +package mobile + +import ( + "bytes" + "context" + "crypto/rand" + "encoding/binary" + "errors" + "fmt" + "io" + "net" + "net/http" + "syscall" + "time" +) + +const bootstrapDoHIP = "1.1.1.1:443" +const bootstrapDoHURL = "https://cloudflare-dns.com/dns-query" + +// ResolveProxy bootstraps the proxy address through protected encrypted DNS. +func ResolveProxy(host string, protector Protector, reporter Reporter) (string, error) { + query, id, err := buildAQuery(host) + if err != nil { + return "", err + } + dialer := net.Dialer{ + Timeout: 10 * time.Second, + Control: func(_, _ string, raw syscall.RawConn) error { + var protectErr error + if err := raw.Control(func(fd uintptr) { + if !protector.Protect(int(fd)) { + protectErr = errors.New("VpnService.protect rejected bootstrap DoH socket") + } + }); err != nil { + return err + } + return protectErr + }, + } + transport := &http.Transport{ + Proxy: nil, + TLSHandshakeTimeout: 10 * time.Second, + DialContext: func(ctx context.Context, _, _ string) (net.Conn, error) { + return dialer.DialContext(ctx, "tcp", bootstrapDoHIP) + }, + } + defer transport.CloseIdleConnections() + client := &http.Client{Transport: transport, Timeout: 15 * time.Second} + request, err := http.NewRequest(http.MethodPost, bootstrapDoHURL, bytes.NewReader(query)) + if err != nil { + return "", err + } + request.Header.Set("Accept", "application/dns-message") + request.Header.Set("Content-Type", "application/dns-message") + report(reporter, "Proxy bootstrap DNS: protected DoH request for %s via %s", host, bootstrapDoHIP) + response, err := client.Do(request) + if err != nil { + return "", fmt.Errorf("bootstrap DoH request: %w", err) + } + defer response.Body.Close() + if response.StatusCode != http.StatusOK { + return "", fmt.Errorf("bootstrap DoH returned %s", response.Status) + } + payload, err := io.ReadAll(io.LimitReader(response.Body, 65536)) + if err != nil { + return "", err + } + ip, err := parseAResponse(payload, id) + if err != nil { + return "", err + } + report(reporter, "Proxy bootstrap DNS: %s -> %s", host, ip) + return ip, nil +} + +func buildAQuery(host string) ([]byte, uint16, error) { + var idBytes [2]byte + if _, err := rand.Read(idBytes[:]); err != nil { + return nil, 0, err + } + id := binary.BigEndian.Uint16(idBytes[:]) + message := make([]byte, 12, 256) + binary.BigEndian.PutUint16(message[0:2], id) + binary.BigEndian.PutUint16(message[2:4], 0x0100) + binary.BigEndian.PutUint16(message[4:6], 1) + for _, label := range bytes.Split([]byte(host), []byte{'.'}) { + if len(label) == 0 || len(label) > 63 { + return nil, 0, errors.New("invalid proxy hostname for bootstrap DNS") + } + message = append(message, byte(len(label))) + message = append(message, label...) + } + message = append(message, 0, 0, 1, 0, 1) + return message, id, nil +} + +func parseAResponse(message []byte, id uint16) (string, error) { + if len(message) < 12 || binary.BigEndian.Uint16(message[0:2]) != id { + return "", errors.New("invalid bootstrap DNS response") + } + if binary.BigEndian.Uint16(message[2:4])&0x000f != 0 { + return "", errors.New("bootstrap DNS returned an error") + } + questions := int(binary.BigEndian.Uint16(message[4:6])) + answers := int(binary.BigEndian.Uint16(message[6:8])) + offset := 12 + for range questions { + var err error + offset, err = skipDNSName(message, offset) + if err != nil || offset+4 > len(message) { + return "", errors.New("malformed bootstrap DNS question") + } + offset += 4 + } + for range answers { + var err error + offset, err = skipDNSName(message, offset) + if err != nil || offset+10 > len(message) { + return "", errors.New("malformed bootstrap DNS answer") + } + recordType := binary.BigEndian.Uint16(message[offset : offset+2]) + recordClass := binary.BigEndian.Uint16(message[offset+2 : offset+4]) + length := int(binary.BigEndian.Uint16(message[offset+8 : offset+10])) + offset += 10 + if offset+length > len(message) { + return "", errors.New("truncated bootstrap DNS answer") + } + if recordType == 1 && recordClass == 1 && length == net.IPv4len { + return net.IP(message[offset : offset+length]).String(), nil + } + offset += length + } + return "", errors.New("bootstrap DNS response contains no IPv4 address") +} + +func skipDNSName(message []byte, offset int) (int, error) { + for { + if offset >= len(message) { + return 0, io.ErrUnexpectedEOF + } + length := int(message[offset]) + offset++ + if length == 0 { + return offset, nil + } + if length&0xc0 == 0xc0 { + if offset >= len(message) { + return 0, io.ErrUnexpectedEOF + } + return offset + 1, nil + } + if length > 63 || offset+length > len(message) { + return 0, errors.New("invalid DNS name") + } + offset += length + } +} diff --git a/native/mobile/config.go b/native/mobile/config.go new file mode 100644 index 0000000..25e3795 --- /dev/null +++ b/native/mobile/config.go @@ -0,0 +1,116 @@ +package mobile + +import ( + "encoding/json" + "errors" + "fmt" + "net" + "strconv" + "strings" + + tls "github.com/refraction-networking/utls" +) + +type config struct { + Host string `json:"host"` + DialHost string `json:"dialHost"` + Port int `json:"port"` + Username string `json:"username"` + Password string `json:"password"` + Profile string `json:"profile"` + CustomJA3 string `json:"customJa3"` + DoHURL string `json:"dohUrl"` + AllowIPv6 bool `json:"allowIpv6"` +} + +func parseConfig(raw string) (config, error) { + var c config + if err := json.Unmarshal([]byte(raw), &c); err != nil { + return c, fmt.Errorf("decode config: %w", err) + } + c.Host = strings.TrimSpace(c.Host) + c.DialHost = strings.TrimSpace(c.DialHost) + if c.Host == "" || strings.ContainsAny(c.Host, "/: \t\r\n") { + return c, errors.New("invalid proxy hostname") + } + if net.ParseIP(c.DialHost) == nil { + return c, errors.New("proxy bootstrap IP is missing or invalid") + } + if c.Port < 1 || c.Port > 65535 { + return c, errors.New("invalid proxy port") + } + if c.Username == "" || c.Password == "" { + return c, errors.New("basic auth credentials are required") + } + if err := validateDoHURL(c.DoHURL); err != nil { + return c, err + } + if _, err := c.helloID(); err != nil { + return c, err + } + return c, nil +} + +func (c config) address() string { return net.JoinHostPort(c.DialHost, strconv.Itoa(c.Port)) } + +func (c config) displayAddress() string { return net.JoinHostPort(c.Host, strconv.Itoa(c.Port)) } + +func (c config) helloID() (tls.ClientHelloID, error) { + switch c.Profile { + case "CHROME_ANDROID": + return tls.HelloChrome_133, nil + case "FIREFOX_ANDROID": + return tls.HelloFirefox_120, nil + case "EDGE_ANDROID": + return tls.HelloEdge_85, nil + case "RANDOMIZED": + return tls.HelloRandomizedALPN, nil + case "CUSTOM": + if _, err := parseJA3(c.CustomJA3); err != nil { + return tls.ClientHelloID{}, err + } + return tls.HelloCustom, nil + default: + return tls.ClientHelloID{}, fmt.Errorf("unsupported TLS profile %q", c.Profile) + } +} + +type ja3Spec struct { + Version uint16 + Ciphers []uint16 + Extensions []uint16 + Groups []uint16 + Points []uint8 +} + +func parseJA3(raw string) (ja3Spec, error) { + var out ja3Spec + fields := strings.Split(strings.TrimSpace(raw), ",") + if len(fields) != 5 { + return out, errors.New("JA3 must contain five comma-separated fields") + } + values := make([][]uint16, 5) + for i, field := range fields { + if field == "" && i > 0 { + continue + } + for _, token := range strings.Split(field, "-") { + n, err := strconv.ParseUint(token, 10, 16) + if err != nil { + return out, fmt.Errorf("invalid JA3 number %q", token) + } + values[i] = append(values[i], uint16(n)) + } + } + if len(values[0]) != 1 { + return out, errors.New("JA3 TLS version is required") + } + out.Version, out.Ciphers, out.Extensions, out.Groups = values[0][0], values[1], values[2], values[3] + for _, point := range values[4] { + if point > 255 { + return out, errors.New("EC point format exceeds 255") + } + out.Points = append(out.Points, uint8(point)) + } + return out, nil +} diff --git a/native/mobile/config_test.go b/native/mobile/config_test.go new file mode 100644 index 0000000..f4ec56d --- /dev/null +++ b/native/mobile/config_test.go @@ -0,0 +1,29 @@ +package mobile + +import "testing" + +func TestParseJA3(t *testing.T) { + s, err := parseJA3("771,4865-4866,0-10-11-13-16-43-51,29-23,0") + if err != nil { + t.Fatal(err) + } + if s.Version != 771 || len(s.Ciphers) != 2 || len(s.Extensions) != 7 { + t.Fatalf("unexpected spec: %#v", s) + } +} + +func TestConfigRejectsIPOrSchemeLikeHost(t *testing.T) { + _, err := parseConfig(`{"host":"https://proxy.example","dialHost":"192.0.2.1","port":443,"username":"u","password":"p","profile":"CHROME_ANDROID","dohUrl":"https://dns.google/dns-query"}`) + if err == nil { + t.Fatal("expected invalid hostname") + } +} + +func TestDoHRequiresHTTPS(t *testing.T) { + if validateDoHURL("http://dns.example/query") == nil { + t.Fatal("expected HTTPS requirement") + } + if validateDoHURL("https://dns.example/dns-query") != nil { + t.Fatal("expected valid DoH URL") + } +} diff --git a/native/mobile/diagnostics.go b/native/mobile/diagnostics.go new file mode 100644 index 0000000..59bd5b1 --- /dev/null +++ b/native/mobile/diagnostics.go @@ -0,0 +1,14 @@ +package mobile + +import "fmt" + +// Reporter is implemented by Android and receives sanitized diagnostic events. +type Reporter interface { + Report(message string) +} + +func report(reporter Reporter, format string, args ...any) { + if reporter != nil { + reporter.Report(fmt.Sprintf(format, args...)) + } +} diff --git a/native/mobile/dialer.go b/native/mobile/dialer.go new file mode 100644 index 0000000..cf3abcd --- /dev/null +++ b/native/mobile/dialer.go @@ -0,0 +1,164 @@ +package mobile + +import ( + "bufio" + "context" + "encoding/base64" + "errors" + "fmt" + "io" + "net" + "net/http" + "sync" + "syscall" + "time" + + tls "github.com/refraction-networking/utls" + M "github.com/xjasonlyu/tun2socks/v2/metadata" +) + +var errUDPBlocked = errors.New("UDP is intentionally blocked") + +// Protector is implemented by Android and calls VpnService.protect(fd). +type Protector interface{ Protect(fd int) bool } + +type httpsConnectDialer struct { + config config + protector Protector + reporter Reporter +} + +func (d *httpsConnectDialer) DialContext(ctx context.Context, metadata *M.Metadata) (net.Conn, error) { + return d.connectTarget(ctx, metadata.DestinationAddress()) +} + +func (d *httpsConnectDialer) connectTarget(ctx context.Context, target string) (net.Conn, error) { + if !d.config.AllowIPv6 { + host, _, err := net.SplitHostPort(target) + if err == nil { + if ip := net.ParseIP(host); ip != nil && ip.To4() == nil { + err = errors.New("IPv6 destination blocked by IPv4-only mode") + report(d.reporter, "CONNECT %s failed: %v", target, err) + return nil, err + } + } + } + report(d.reporter, "CONNECT %s: opening TCP connection to proxy %s via %s", target, d.config.displayAddress(), d.config.address()) + upstream := net.Dialer{ + Timeout: 15 * time.Second, + KeepAlive: 30 * time.Second, + Control: func(_, _ string, raw syscall.RawConn) error { + var protectErr error + if err := raw.Control(func(fd uintptr) { + if !d.protector.Protect(int(fd)) { + protectErr = errors.New("VpnService.protect rejected upstream socket") + } + }); err != nil { + return err + } + return protectErr + }, + } + raw, err := upstream.DialContext(ctx, "tcp", d.config.address()) + if err != nil { + err = fmt.Errorf("dial HTTPS proxy: %w", err) + report(d.reporter, "CONNECT %s failed: %v", target, err) + return nil, err + } + report(d.reporter, "CONNECT %s: proxy TCP connected", target) + closeOnError := true + defer func() { + if closeOnError { + _ = raw.Close() + } + }() + + hello, err := d.config.helloID() + if err != nil { + report(d.reporter, "CONNECT %s failed: %v", target, err) + return nil, err + } + uconn := tls.UClient(raw, &tls.Config{ + ServerName: d.config.Host, + MinVersion: tls.VersionTLS12, + }, hello) + if hello == tls.HelloCustom { + if err := applyJA3(uconn, d.config.CustomJA3, d.config.Host); err != nil { + report(d.reporter, "CONNECT %s failed: %v", target, err) + return nil, err + } + } + if err := uconn.HandshakeContext(ctx); err != nil { + err = fmt.Errorf("TLS handshake with proxy: %w", err) + report(d.reporter, "CONNECT %s failed: %v", target, err) + return nil, err + } + tlsState := uconn.ConnectionState() + report(d.reporter, "CONNECT %s: proxy TLS established version=0x%04x cipher=0x%04x ALPN=%q certificates=%d", target, tlsState.Version, tlsState.CipherSuite, tlsState.NegotiatedProtocol, len(tlsState.PeerCertificates)) + + auth := base64.StdEncoding.EncodeToString([]byte(d.config.Username + ":" + d.config.Password)) + if _, err := fmt.Fprintf(uconn, "CONNECT %s HTTP/1.1\r\nHost: %s\r\nProxy-Authorization: Basic %s\r\nProxy-Connection: Keep-Alive\r\n\r\n", target, target, auth); err != nil { + err = fmt.Errorf("write CONNECT: %w", err) + report(d.reporter, "CONNECT %s failed: %v", target, err) + return nil, err + } + reader := bufio.NewReader(uconn) + response, err := http.ReadResponse(reader, &http.Request{Method: http.MethodConnect}) + if err != nil { + err = fmt.Errorf("read CONNECT response: %w", err) + report(d.reporter, "CONNECT %s failed: %v", target, err) + return nil, err + } + if response.StatusCode != http.StatusOK { + _ = response.Body.Close() + err = fmt.Errorf("proxy CONNECT returned %s", response.Status) + report(d.reporter, "CONNECT %s failed: %v", target, err) + return nil, err + } + report(d.reporter, "CONNECT %s: tunnel established", target) + closeOnError = false + var connection net.Conn = uconn + if reader.Buffered() > 0 { + connection = &bufferedConn{Conn: uconn, reader: reader} + } + return &diagnosticConn{Conn: connection, target: target, reporter: d.reporter}, nil +} + +func (d *httpsConnectDialer) DialUDP(metadata *M.Metadata) (net.PacketConn, error) { + if metadata.DstPort != 53 { + return nil, errUDPBlocked + } + return newDoHPacketConn(d, d.config.DoHURL), nil +} + +type bufferedConn struct { + net.Conn + reader *bufio.Reader +} + +func (c *bufferedConn) Read(p []byte) (int, error) { return c.reader.Read(p) } + +type diagnosticConn struct { + net.Conn + target string + reporter Reporter + once sync.Once +} + +func (c *diagnosticConn) reportError(operation string, err error) { + if err != nil && !errors.Is(err, io.EOF) && !errors.Is(err, net.ErrClosed) { + c.once.Do(func() { report(c.reporter, "CONNECT %s: tunnel %s ended: %v", c.target, operation, err) }) + } +} + +func (c *diagnosticConn) Read(p []byte) (int, error) { + n, err := c.Conn.Read(p) + c.reportError("read", err) + return n, err +} + +func (c *diagnosticConn) Write(p []byte) (int, error) { + n, err := c.Conn.Write(p) + c.reportError("write", err) + return n, err +} diff --git a/native/mobile/doh.go b/native/mobile/doh.go new file mode 100644 index 0000000..7689057 --- /dev/null +++ b/native/mobile/doh.go @@ -0,0 +1,191 @@ +package mobile + +import ( + "bytes" + "context" + "encoding/binary" + "errors" + "fmt" + "io" + "net" + "net/http" + "net/url" + "strings" + "sync" + "time" +) + +func validateDoHURL(raw string) error { + u, err := url.Parse(raw) + if err != nil || u.Scheme != "https" || u.Hostname() == "" || u.Path == "" { + return errors.New("invalid HTTPS DoH URL") + } + if u.User != nil || u.Fragment != "" { + return errors.New("DoH URL must not contain credentials or fragment") + } + return nil +} + +type dnsReply struct { + payload []byte + addr net.Addr + err error +} + +type dohPacketConn struct { + dialer *httpsConnectDialer + url string + replies chan dnsReply + closed chan struct{} + closeOnce sync.Once + deadlineMu sync.Mutex + readDeadline time.Time + client *http.Client +} + +func newDoHPacketConn(d *httpsConnectDialer, endpoint string) *dohPacketConn { + transport := &http.Transport{ + Proxy: nil, + ForceAttemptHTTP2: true, + TLSHandshakeTimeout: 15 * time.Second, + DialContext: func(ctx context.Context, _, address string) (net.Conn, error) { + return d.connectTarget(ctx, address) + }, + } + return &dohPacketConn{ + dialer: d, url: endpoint, replies: make(chan dnsReply, 16), closed: make(chan struct{}), + client: &http.Client{Transport: transport, Timeout: 20 * time.Second}, + } +} + +func (c *dohPacketConn) WriteTo(payload []byte, addr net.Addr) (int, error) { + select { + case <-c.closed: + return 0, net.ErrClosed + default: + } + if !c.dialer.config.AllowIPv6 { + response, isAAAA, err := emptyAAAAResponse(payload) + if err != nil { + return 0, err + } + if isAAAA { + report(c.dialer.reporter, "DoH AAAA query suppressed by IPv4-only mode") + c.deliver(dnsReply{payload: response, addr: addr}) + return len(payload), nil + } + } + query := append([]byte(nil), payload...) + go func() { + req, err := http.NewRequestWithContext(context.Background(), http.MethodPost, c.url, bytes.NewReader(query)) + if err == nil { + req.Header.Set("Accept", "application/dns-message") + req.Header.Set("Content-Type", "application/dns-message") + var response *http.Response + response, err = c.client.Do(req) + if err == nil { + defer response.Body.Close() + if response.StatusCode != http.StatusOK { + err = fmt.Errorf("DoH returned %s", response.Status) + } else if !strings.HasPrefix(response.Header.Get("Content-Type"), "application/dns-message") { + err = errors.New("DoH returned an unexpected content type") + } else { + var body []byte + body, err = io.ReadAll(io.LimitReader(response.Body, 65536)) + if err == nil { + c.deliver(dnsReply{payload: body, addr: addr}) + } + } + } + } + if err != nil { + report(c.dialer.reporter, "DoH query failed via %s: %v", c.url, err) + c.deliver(dnsReply{addr: addr, err: err}) + } else { + report(c.dialer.reporter, "DoH query succeeded via %s", c.url) + } + }() + return len(payload), nil +} + +func emptyAAAAResponse(query []byte) ([]byte, bool, error) { + if len(query) < 12 || binary.BigEndian.Uint16(query[4:6]) != 1 { + return nil, false, nil + } + offset, err := skipDNSName(query, 12) + if err != nil || offset+4 > len(query) { + return nil, false, errors.New("malformed DNS query") + } + if binary.BigEndian.Uint16(query[offset:offset+2]) != 28 { + return nil, false, nil + } + response := append([]byte(nil), query[:offset+4]...) + requestFlags := binary.BigEndian.Uint16(query[2:4]) + binary.BigEndian.PutUint16(response[2:4], 0x8000|(requestFlags&0x0100)|0x0080) + binary.BigEndian.PutUint16(response[6:8], 0) + binary.BigEndian.PutUint16(response[8:10], 0) + binary.BigEndian.PutUint16(response[10:12], 0) + return response, true, nil +} + +func (c *dohPacketConn) deliver(reply dnsReply) { + select { + case c.replies <- reply: + case <-c.closed: + } +} + +func (c *dohPacketConn) ReadFrom(buffer []byte) (int, net.Addr, error) { + c.deadlineMu.Lock() + deadline := c.readDeadline + c.deadlineMu.Unlock() + var timer <-chan time.Time + if !deadline.IsZero() { + duration := time.Until(deadline) + if duration <= 0 { + return 0, nil, timeoutError{} + } + t := time.NewTimer(duration) + defer t.Stop() + timer = t.C + } + select { + case reply := <-c.replies: + if reply.err != nil { + return 0, reply.addr, reply.err + } + if len(reply.payload) > len(buffer) { + return 0, reply.addr, io.ErrShortBuffer + } + return copy(buffer, reply.payload), reply.addr, nil + case <-timer: + return 0, nil, timeoutError{} + case <-c.closed: + return 0, nil, net.ErrClosed + } +} + +func (c *dohPacketConn) Close() error { + c.closeOnce.Do(func() { close(c.closed); c.client.CloseIdleConnections() }) + return nil +} +func (c *dohPacketConn) LocalAddr() net.Addr { return dnsAddr("megaproxy-doh") } +func (c *dohPacketConn) SetDeadline(t time.Time) error { + c.deadlineMu.Lock() + c.readDeadline = t + c.deadlineMu.Unlock() + return nil +} +func (c *dohPacketConn) SetReadDeadline(t time.Time) error { return c.SetDeadline(t) } +func (c *dohPacketConn) SetWriteDeadline(time.Time) error { return nil } + +type dnsAddr string + +func (a dnsAddr) Network() string { return "udp" } +func (a dnsAddr) String() string { return string(a) } + +type timeoutError struct{} + +func (timeoutError) Error() string { return "DNS read deadline exceeded" } +func (timeoutError) Timeout() bool { return true } +func (timeoutError) Temporary() bool { return true } diff --git a/native/mobile/doh_test.go b/native/mobile/doh_test.go new file mode 100644 index 0000000..eaf018a --- /dev/null +++ b/native/mobile/doh_test.go @@ -0,0 +1,39 @@ +package mobile + +import ( + "encoding/binary" + "testing" +) + +func TestEmptyAAAAResponseSuppressesIPv6Answer(t *testing.T) { + query, id, err := buildAQuery("example.com") + if err != nil { + t.Fatal(err) + } + binary.BigEndian.PutUint16(query[len(query)-4:len(query)-2], 28) + + response, isAAAA, err := emptyAAAAResponse(query) + if err != nil { + t.Fatal(err) + } + if !isAAAA { + t.Fatal("expected an AAAA query") + } + if binary.BigEndian.Uint16(response[0:2]) != id || binary.BigEndian.Uint16(response[6:8]) != 0 { + t.Fatalf("unexpected empty response: %x", response) + } + if binary.BigEndian.Uint16(response[2:4])&0x8000 == 0 { + t.Fatal("expected the DNS response bit") + } +} + +func TestEmptyAAAAResponseLeavesAQueryUntouched(t *testing.T) { + query, _, err := buildAQuery("example.com") + if err != nil { + t.Fatal(err) + } + response, isAAAA, err := emptyAAAAResponse(query) + if err != nil || isAAAA || response != nil { + t.Fatalf("unexpected A-query result: response=%x isAAAA=%v err=%v", response, isAAAA, err) + } +} diff --git a/native/mobile/ja3.go b/native/mobile/ja3.go new file mode 100644 index 0000000..25d7f47 --- /dev/null +++ b/native/mobile/ja3.go @@ -0,0 +1,61 @@ +package mobile + +import ( + "fmt" + + tls "github.com/refraction-networking/utls" +) + +// applyJA3 builds the extension payloads needed for a usable handshake. JA3 identifies +// extension IDs but not their payloads, so unknown IDs are rejected instead of silently +// producing a fingerprint different from the requested one. +func applyJA3(conn *tls.UConn, raw, serverName string) error { + spec, err := parseJA3(raw) + if err != nil { + return err + } + extensions := make([]tls.TLSExtension, 0, len(spec.Extensions)) + for _, id := range spec.Extensions { + var extension tls.TLSExtension + switch id { + case 0: + extension = &tls.SNIExtension{ServerName: serverName} + case 5: + extension = &tls.StatusRequestExtension{} + case 10: + curves := make([]tls.CurveID, len(spec.Groups)) + for i, group := range spec.Groups { + curves[i] = tls.CurveID(group) + } + extension = &tls.SupportedCurvesExtension{Curves: curves} + case 11: + extension = &tls.SupportedPointsExtension{SupportedPoints: spec.Points} + case 13: + extension = &tls.SignatureAlgorithmsExtension{SupportedSignatureAlgorithms: []tls.SignatureScheme{tls.ECDSAWithP256AndSHA256, tls.PSSWithSHA256, tls.PKCS1WithSHA256, tls.ECDSAWithP384AndSHA384, tls.PSSWithSHA384}} + case 16: + extension = &tls.ALPNExtension{AlpnProtocols: []string{"http/1.1"}} + case 18: + extension = &tls.SCTExtension{} + case 23: + extension = &tls.UtlsExtendedMasterSecretExtension{} + case 43: + extension = &tls.SupportedVersionsExtension{Versions: []uint16{tls.VersionTLS13, tls.VersionTLS12}} + case 45: + extension = &tls.PSKKeyExchangeModesExtension{Modes: []uint8{tls.PskModeDHE}} + case 51: + extension = &tls.KeyShareExtension{KeyShares: []tls.KeyShare{{Group: tls.X25519}}} + case 65281: + extension = &tls.RenegotiationInfoExtension{} + default: + return fmt.Errorf("manual JA3 extension %d needs an explicit payload and is not supported", id) + } + extensions = append(extensions, extension) + } + return conn.ApplyPreset(&tls.ClientHelloSpec{ + TLSVersMin: tls.VersionTLS12, + TLSVersMax: spec.Version, + CipherSuites: spec.Ciphers, + CompressionMethods: []uint8{0}, + Extensions: extensions, + }) +} diff --git a/native/mobile/mobile.go b/native/mobile/mobile.go new file mode 100644 index 0000000..943404f --- /dev/null +++ b/native/mobile/mobile.go @@ -0,0 +1,80 @@ +// Package mobile exposes the gomobile-compatible Android API. +package mobile + +import ( + "errors" + "strconv" + "sync" + "syscall" + + "github.com/xjasonlyu/tun2socks/v2/core" + "github.com/xjasonlyu/tun2socks/v2/core/device" + "github.com/xjasonlyu/tun2socks/v2/core/device/fdbased" + "github.com/xjasonlyu/tun2socks/v2/tunnel" + "gvisor.dev/gvisor/pkg/tcpip/stack" +) + +var state struct { + sync.Mutex + running bool + device device.Device + stack *stack.Stack +} + +// Start takes ownership of a duplicate of tunFD held by Android's ParcelFileDescriptor. +func Start(tunFD int, rawConfig string, protector Protector, reporter Reporter) error { + c, err := parseConfig(rawConfig) + if err != nil { + if tunFD >= 0 { + _ = syscall.Close(tunFD) + } + return err + } + if tunFD < 0 || protector == nil { + if tunFD >= 0 { + _ = syscall.Close(tunFD) + } + return errors.New("invalid Android VPN bridge") + } + state.Lock() + if state.running { + state.Unlock() + _ = syscall.Close(tunFD) + return errors.New("proxy core is already running") + } + defer state.Unlock() + dev, err := fdbased.Open(strconv.Itoa(tunFD), 1500, 0) + if err != nil { + _ = syscall.Close(tunFD) + return err + } + t := tunnel.T() + t.SetProxy(&httpsConnectDialer{config: c, protector: protector, reporter: reporter}) + netstack, err := core.CreateStack(&core.Config{LinkEndpoint: dev, TransportHandler: t}) + if err != nil { + dev.Close() + return err + } + state.device, state.stack, state.running = dev, netstack, true + report(reporter, "Native TCP/IP stack started; proxy=%s via %s profile=%s DoH=%s", c.displayAddress(), c.address(), c.Profile, c.DoHURL) + return nil +} + +func Stop() { + state.Lock() + if !state.running { + state.Unlock() + return + } + state.running = false + dev, netstack := state.device, state.stack + state.device, state.stack = nil, nil + state.Unlock() + if dev != nil { + dev.Close() + } + if netstack != nil { + netstack.Close() + netstack.Wait() + } +} diff --git a/native/mobile/test_connection.go b/native/mobile/test_connection.go new file mode 100644 index 0000000..3ff54e1 --- /dev/null +++ b/native/mobile/test_connection.go @@ -0,0 +1,77 @@ +package mobile + +import ( + "bufio" + "context" + stdtls "crypto/tls" + "fmt" + "io" + "net/http" + "strings" + "time" +) + +// TestConnection verifies the configured proxy path without starting a TUN device. +func TestConnection(rawConfig string, protector Protector, reporter Reporter) (string, error) { + c, err := parseConfig(rawConfig) + if err != nil { + return "", err + } + dialer := &httpsConnectDialer{config: c, protector: protector, reporter: reporter} + ctx, cancel := context.WithTimeout(context.Background(), 45*time.Second) + defer cancel() + + report(reporter, "Connection test started") + if _, err := testHTTPSGet(ctx, dialer, "example.com", "/", false); err != nil { + return "", fmt.Errorf("example.com check: %w", err) + } + report(reporter, "example.com HTTPS check succeeded") + + ip, err := testHTTPSGet(ctx, dialer, "ifconfig.me", "/ip", true) + if err != nil { + return "", fmt.Errorf("public IP check: %w", err) + } + ip = strings.TrimSpace(ip) + if ip == "" || len(ip) > 128 { + return "", fmt.Errorf("public IP check returned an invalid response") + } + report(reporter, "Connection test succeeded; proxy exit IP=%s", ip) + return ip, nil +} + +func testHTTPSGet(ctx context.Context, dialer *httpsConnectDialer, host, path string, readBody bool) (string, error) { + tunnel, err := dialer.connectTarget(ctx, host+":443") + if err != nil { + return "", err + } + defer tunnel.Close() + + connection := stdtls.Client(tunnel, &stdtls.Config{ServerName: host, MinVersion: stdtls.VersionTLS12}) + if err := connection.HandshakeContext(ctx); err != nil { + return "", fmt.Errorf("destination TLS handshake: %w", err) + } + report(dialer.reporter, "%s: destination TLS certificate verified", host) + + request, err := http.NewRequestWithContext(ctx, http.MethodGet, "https://"+host+path, nil) + if err != nil { + return "", err + } + request.Header.Set("User-Agent", "MegaProxy/0.1 connection-test") + request.Header.Set("Connection", "close") + if err := request.Write(connection); err != nil { + return "", fmt.Errorf("write HTTPS request: %w", err) + } + response, err := http.ReadResponse(bufio.NewReader(connection), request) + if err != nil { + return "", fmt.Errorf("read HTTPS response: %w", err) + } + defer response.Body.Close() + if response.StatusCode < 200 || response.StatusCode >= 400 { + return "", fmt.Errorf("HTTPS server returned %s", response.Status) + } + if !readBody { + return "", nil + } + body, err := io.ReadAll(io.LimitReader(response.Body, 256)) + return string(body), err +} diff --git a/scripts/android-jdwp.sh b/scripts/android-jdwp.sh new file mode 100755 index 0000000..134645c --- /dev/null +++ b/scripts/android-jdwp.sh @@ -0,0 +1,93 @@ +#!/usr/bin/env bash +set -euo pipefail + +package_name="dev.megaproxy.app" +component_name="$package_name/.MainActivity" +debug_port="8700" +jdwp_pid_file="${TMPDIR:-/tmp}/megaproxy-jdwp-session.pid" + +adb -e wait-for-device +adb -e shell am force-stop "$package_name" +adb -e shell am set-debug-app -w "$package_name" +adb -e shell am start -D -n "$component_name" >/dev/null + +app_pid="" +for _ in {1..50}; do + app_pid="$(adb -e shell pidof -s "$package_name" 2>/dev/null | tr -d '\r' || true)" + if [[ -n "$app_pid" ]]; then + break + fi + sleep 0.1 +done + +if [[ -z "$app_pid" ]]; then + echo "MegaProxy process did not start" >&2 + exit 1 +fi + +jdwp_snapshot="$(mktemp "${TMPDIR:-/tmp}/megaproxy-jdwp.XXXXXX")" +jdwp_tracker_pid="" +cleanup_jdwp_tracker() { + if [[ -n "$jdwp_tracker_pid" ]]; then + kill "$jdwp_tracker_pid" >/dev/null 2>&1 || true + wait "$jdwp_tracker_pid" >/dev/null 2>&1 || true + fi + rm -f "$jdwp_snapshot" +} +trap cleanup_jdwp_tracker EXIT + +adb -e jdwp >"$jdwp_snapshot" & +jdwp_tracker_pid="$!" + +jdwp_ready=false +for _ in {1..100}; do + if grep -Fxq "$app_pid" "$jdwp_snapshot"; then + jdwp_ready=true + break + fi + sleep 0.1 +done + +if [[ "$jdwp_ready" != "true" ]]; then + echo "Process $app_pid did not register a JDWP endpoint" >&2 + echo "Registered JDWP processes:" >&2 + cat "$jdwp_snapshot" >&2 + exit 1 +fi + +cleanup_jdwp_tracker +trap - EXIT + +adb -e forward --remove "tcp:$debug_port" >/dev/null 2>&1 || true +adb -e forward "tcp:$debug_port" "jdwp:$app_pid" >/dev/null + +forward_entry="$(adb -e forward --list | awk -v port="tcp:$debug_port" '$2 == port { print $0 }')" +if [[ "$forward_entry" != *"jdwp:$app_pid"* ]]; then + echo "ADB did not create the expected JDWP forward" >&2 + adb -e forward --list >&2 + exit 1 +fi + +if [[ "$(adb -e get-state)" != "device" ]]; then + echo "Android emulator disconnected before debugger attach" >&2 + exit 1 +fi + +echo "JDWP ready: dev.megaproxy.app pid=$app_pid port=$debug_port" +echo "Forward: $forward_entry" + +if [[ "${MEGAPROXY_JDWP_KEEP_ALIVE:-0}" == "1" ]]; then + printf '%s\n' "$$" >"$jdwp_pid_file" + cleanup_debug_session() { + adb -e forward --remove "tcp:$debug_port" >/dev/null 2>&1 || true + adb -e shell am clear-debug-app >/dev/null 2>&1 || true + if [[ -f "$jdwp_pid_file" ]] && [[ "$(tr -dc '0-9' <"$jdwp_pid_file")" == "$$" ]]; then + rm -f "$jdwp_pid_file" + fi + } + trap cleanup_debug_session EXIT INT TERM + + while adb -e get-state >/dev/null 2>&1; do + sleep 1 + done +fi diff --git a/scripts/android-logcat.sh b/scripts/android-logcat.sh new file mode 100755 index 0000000..29a723f --- /dev/null +++ b/scripts/android-logcat.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash +set -euo pipefail + +package_name="dev.megaproxy.app" +adb -e wait-for-device + +app_pid="$(adb -e shell pidof -s "$package_name" 2>/dev/null | tr -d '\r' || true)" +if [[ -z "$app_pid" ]]; then + echo "MegaProxy is not running; launch it before opening app Logcat" >&2 + exit 1 +fi + +exec adb -e logcat --pid="$app_pid" diff --git a/scripts/create-android-emulator.sh b/scripts/create-android-emulator.sh new file mode 100755 index 0000000..7f2de59 --- /dev/null +++ b/scripts/create-android-emulator.sh @@ -0,0 +1,86 @@ +#!/usr/bin/env bash +set -euo pipefail + +avd_name="${MEGAPROXY_AVD_NAME:-MegaProxy_API_35}" +system_image="system-images;android-35;google_apis;arm64-v8a" +device_profile="pixel_8" + +if [[ -z "${ANDROID_HOME:-}" ]]; then + echo "ANDROID_HOME is not set" >&2 + exit 1 +fi + +sdkmanager="$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager" +avdmanager="$ANDROID_HOME/cmdline-tools/latest/bin/avdmanager" +emulator="$ANDROID_HOME/emulator/emulator" + +for tool in "$sdkmanager" "$avdmanager"; do + if [[ ! -x "$tool" ]]; then + echo "Required Android SDK tool is missing: $tool" >&2 + exit 1 + fi +done + +configure_avd() { + local avd_config="$HOME/.android/avd/${avd_name}.avd/config.ini" + + if [[ ! -f "$avd_config" ]]; then + echo "Android emulator configuration is missing: $avd_config" >&2 + exit 1 + fi + + set_avd_option() { + local key="$1" + local value="$2" + local temporary_config + temporary_config="$(mktemp "${TMPDIR:-/tmp}/megaproxy-avd-config.XXXXXX")" + + awk -F= -v key="$key" -v value="$value" ' + $1 == key { + if (!updated) { + print key "=" value + updated = 1 + } + next + } + { print } + END { + if (!updated) { + print key "=" value + } + } + ' "$avd_config" >"$temporary_config" + mv "$temporary_config" "$avd_config" + } + + # Integrate the host keyboard and use the mouse as a multi-touch input device. + set_avd_option "hw.keyboard" "yes" + set_avd_option "hw.keyboard.charmap" "qwerty2" + set_avd_option "hw.keyboard.lid" "yes" + set_avd_option "hw.screen" "multi-touch" + + echo "Configured host keyboard and mouse input for: $avd_name" +} + +if [[ ! -x "$emulator" || ! -d "$ANDROID_HOME/system-images/android-35/google_apis/arm64-v8a" ]]; then + "$sdkmanager" \ + --sdk_root="$ANDROID_HOME" \ + "emulator" \ + "$system_image" +fi + +if "$emulator" -list-avds | grep -Fxq "$avd_name"; then + echo "Android emulator already exists: $avd_name" + configure_avd + exit 0 +fi + +echo no | "$avdmanager" create avd \ + --name "$avd_name" \ + --package "$system_image" \ + --device "$device_profile" + +configure_avd + +echo "Created Android emulator: $avd_name" +echo "Start it with: emulator @$avd_name -gpu auto" diff --git a/scripts/debug-android-app.sh b/scripts/debug-android-app.sh new file mode 100755 index 0000000..5183db3 --- /dev/null +++ b/scripts/debug-android-app.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash +set -euo pipefail + +project_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" + +if [[ -f "$HOME/.zshrc.extra" ]]; then + source "$HOME/.zshrc.extra" +fi + +echo "Starting MegaProxy JDWP setup" +"$project_dir/scripts/stop-android-app-session.sh" +"$project_dir/scripts/run-android-app.sh" +"$project_dir/scripts/android-jdwp.sh" diff --git a/scripts/run-android-app.sh b/scripts/run-android-app.sh new file mode 100755 index 0000000..6073c4e --- /dev/null +++ b/scripts/run-android-app.sh @@ -0,0 +1,29 @@ +#!/usr/bin/env bash +set -euo pipefail + +project_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" + +if [[ -f "$HOME/.zshrc.extra" ]]; then + # VS Code launched from Finder may not inherit the interactive shell environment. + source "$HOME/.zshrc.extra" +fi + +"$project_dir/scripts/start-android-emulator.sh" + +mkdir -p "$project_dir/app/libs" +( + cd "$project_dir/native" + gomobile bind \ + -target=android \ + -androidapi 26 \ + -o ../app/libs/megaproxy.aar \ + ./mobile +) + +( + cd "$project_dir" + ./gradlew assembleDebug +) + +adb -e install -r "$project_dir/app/build/outputs/apk/debug/app-debug.apk" +adb -e shell am start -n dev.megaproxy.app/.MainActivity diff --git a/scripts/run-without-debugging.sh b/scripts/run-without-debugging.sh new file mode 100755 index 0000000..4bcb2b2 --- /dev/null +++ b/scripts/run-without-debugging.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash +set -euo pipefail + +project_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" + +if [[ -f "$HOME/.zshrc.extra" ]]; then + # VS Code launched from Finder may not inherit the interactive shell environment. + source "$HOME/.zshrc.extra" +fi + +"$project_dir/scripts/stop-android-app-session.sh" + +exec "$project_dir/scripts/run-android-app.sh" diff --git a/scripts/start-android-emulator.sh b/scripts/start-android-emulator.sh new file mode 100755 index 0000000..41619bb --- /dev/null +++ b/scripts/start-android-emulator.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env bash +set -euo pipefail + +avd_name="${MEGAPROXY_AVD_NAME:-MegaProxy_API_35}" + +script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +"$script_dir/create-android-emulator.sh" + +if adb devices | awk 'NR > 1 && $1 ~ /^emulator-/ { found = 1 } END { exit !found }'; then + echo "An Android emulator is already running" +else + emulator_log="${TMPDIR:-/tmp}/megaproxy-emulator.log" + echo "Starting Android emulator: $avd_name" + nohup emulator "@$avd_name" -gpu auto "$emulator_log" 2>&1 & +fi + +adb -e wait-for-device + +echo "Waiting for Android to finish booting" +for _ in {1..180}; do + boot_completed="$(adb -e shell getprop sys.boot_completed 2>/dev/null | tr -d '\r')" + if [[ "$boot_completed" == "1" ]]; then + echo "Android emulator is ready" + exit 0 + fi + sleep 1 +done + +echo "Android emulator did not finish booting within 180 seconds" >&2 +exit 1 diff --git a/scripts/stop-android-app-session.sh b/scripts/stop-android-app-session.sh new file mode 100755 index 0000000..e36f12d --- /dev/null +++ b/scripts/stop-android-app-session.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash +set -euo pipefail + +package_name="dev.megaproxy.app" +debug_port="8700" +jdwp_pid_file="${TMPDIR:-/tmp}/megaproxy-jdwp-session.pid" + +if [[ -f "$jdwp_pid_file" ]]; then + jdwp_session_pid="$(tr -dc '0-9' <"$jdwp_pid_file")" + jdwp_session_command="$(ps -p "$jdwp_session_pid" -o command= 2>/dev/null || true)" + if [[ -n "$jdwp_session_pid" ]] && [[ "$jdwp_session_command" == *"android-jdwp.sh"* ]] && kill -0 "$jdwp_session_pid" >/dev/null 2>&1; then + echo "Stopping previous MegaProxy JDWP session: $jdwp_session_pid" + kill "$jdwp_session_pid" >/dev/null 2>&1 || true + for _ in {1..20}; do + kill -0 "$jdwp_session_pid" >/dev/null 2>&1 || break + sleep 0.1 + done + fi + rm -f "$jdwp_pid_file" +fi + +if adb -e get-state >/dev/null 2>&1; then + adb -e forward --remove "tcp:$debug_port" >/dev/null 2>&1 || true + adb -e shell am clear-debug-app >/dev/null 2>&1 || true + adb -e shell am force-stop "$package_name" >/dev/null 2>&1 || true +fi diff --git a/settings.gradle.kts b/settings.gradle.kts new file mode 100644 index 0000000..5fe7b11 --- /dev/null +++ b/settings.gradle.kts @@ -0,0 +1,18 @@ +pluginManagement { + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) + repositories { + google() + mavenCentral() + } +} + +rootProject.name = "MegaProxy" +include(":app") From 1ded18a6a1ed7d02c04ad8f69964b4777e7ee58d Mon Sep 17 00:00:00 2001 From: Andrey Prokopyuk Date: Mon, 31 Aug 2026 22:22:16 +0300 Subject: [PATCH 02/41] Better interface --- README.md | 17 +- app/src/main/AndroidManifest.xml | 1 + .../app/BatteryOptimizationReminder.kt | 33 ++++ .../megaproxy/app/ConnectionTestActivity.kt | 121 +++++++++++++ .../java/dev/megaproxy/app/MainActivity.kt | 171 ++++++++---------- .../megaproxy/app/ProxySettingsActivity.kt | 77 ++++++-- .../dev/megaproxy/app/SplitTunnelActivity.kt | 24 ++- .../dev/megaproxy/app/data/ConfigStore.kt | 6 + .../dev/megaproxy/app/vpn/DiagnosticLog.kt | 44 +++++ .../java/dev/megaproxy/app/vpn/ProxyCore.kt | 15 +- .../dev/megaproxy/app/vpn/ProxyVpnService.kt | 105 +++++++++-- .../dev/megaproxy/app/vpn/VpnRuntimeState.kt | 21 +++ .../app/BatteryOptimizationReminderTest.kt | 39 ++++ scripts/start-android-emulator.sh | 84 ++++++++- 14 files changed, 615 insertions(+), 143 deletions(-) create mode 100644 app/src/main/java/dev/megaproxy/app/BatteryOptimizationReminder.kt create mode 100644 app/src/main/java/dev/megaproxy/app/ConnectionTestActivity.kt create mode 100644 app/src/main/java/dev/megaproxy/app/vpn/VpnRuntimeState.kt create mode 100644 app/src/test/java/dev/megaproxy/app/BatteryOptimizationReminderTest.kt diff --git a/README.md b/README.md index d58aa30..c7cf9f4 100644 --- a/README.md +++ b/README.md @@ -29,9 +29,15 @@ in Go with uTLS and the gVisor network stack. The main screen provides a connection test that uses the configured HTTPS proxy and TLS profile, verifies an end-to-end HTTPS request to `example.com`, and obtains the proxy exit IP from -`ifconfig.me`. Sanitized per-stage diagnostics are available in the app; credentials and traffic -content are never logged. Proxy/JA3 settings and split-tunneling application selection are kept -on separate screens. +`ifconfig.me`. The test runs in a dedicated screen with an isolated per-run diagnostic log; +credentials and traffic content are never logged. The compact main screen contains connection +status and Connect/Disconnect, Test and Settings actions. Proxy, JA3, DoH, split tunneling, +Always-on VPN and battery controls are available from Settings. + +The foreground VPN service persists whether a normal connection is desired. While desired, it +monitors tunnel state, retries failed startup and republishes its ongoing notification every ten +seconds. Android Always-on remains the authority that restarts the service after reboot or process +termination; an explicit system force-stop cannot be overridden by an application. Every physical upstream socket must be passed to `VpnService.protect()` before `connect()` to prevent recursive routing into the TUN interface. @@ -87,6 +93,11 @@ the mouse as multi-touch input, including for an existing AVD. Override the name `MEGAPROXY_AVD_NAME` if necessary. Restart a running emulator after changing its AVD configuration. +The startup script always uses a cold boot because stale Quick Boot snapshots can leave the guest +visible but permanently offline in ADB. It attempts to reconnect an existing offline emulator and, +if that fails, terminates only that AVD process before restarting it. ADB and Android boot waits +have finite timeouts. + Start it from the terminal: ```shell diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 8f0bd10..7e293e1 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -23,6 +23,7 @@ + = REQUEST_INTERVAL_MS +} diff --git a/app/src/main/java/dev/megaproxy/app/ConnectionTestActivity.kt b/app/src/main/java/dev/megaproxy/app/ConnectionTestActivity.kt new file mode 100644 index 0000000..d72ddd5 --- /dev/null +++ b/app/src/main/java/dev/megaproxy/app/ConnectionTestActivity.kt @@ -0,0 +1,121 @@ +package dev.megaproxy.app + +import android.app.Activity +import android.content.ClipData +import android.content.ClipboardManager +import android.content.Context +import android.net.VpnService +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.rememberLauncherForActivityResult +import androidx.activity.compose.setContent +import androidx.activity.result.contract.ActivityResultContracts +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.text.selection.SelectionContainer +import androidx.compose.foundation.verticalScroll +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.filled.ArrowBack +import androidx.compose.material3.Button +import androidx.compose.material3.Card +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.material3.TopAppBar +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.getValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import dev.megaproxy.app.data.ConfigStore +import dev.megaproxy.app.vpn.ProxyVpnService +import dev.megaproxy.app.vpn.TestDiagnosticLog +import dev.megaproxy.app.vpn.TestState + +class ConnectionTestActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + val autoStart = savedInstanceState == null + if (autoStart) TestDiagnosticLog.reset() + setContent { MaterialTheme { ConnectionTestScreen(this, autoStart) } } + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +private fun ConnectionTestScreen(activity: Activity, autoStart: Boolean) { + val state by TestDiagnosticLog.state + val exitIp by TestDiagnosticLog.exitIp + val permission = rememberLauncherForActivityResult(ActivityResultContracts.StartActivityForResult()) { + if (it.resultCode == Activity.RESULT_OK) ProxyVpnService.test(activity) + else TestDiagnosticLog.fail("VPN permission is required for the connection test") + } + val runTest = { + val error = ConfigStore(activity).load().connectionValidationError() + if (error != null) { + TestDiagnosticLog.fail(error) + } else { + TestDiagnosticLog.begin() + val intent = VpnService.prepare(activity) + if (intent == null) ProxyVpnService.test(activity) else permission.launch(intent) + } + } + LaunchedEffect(autoStart) { if (autoStart) runTest() } + + Scaffold(topBar = { + TopAppBar( + title = { Text("Connection test") }, + navigationIcon = { + IconButton(onClick = { activity.finish() }) { + Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Back") + } + }, + ) + }) { padding -> + Column( + Modifier.fillMaxSize().padding(padding).padding(16.dp), + verticalArrangement = Arrangement.spacedBy(12.dp), + ) { + Card(Modifier.fillMaxWidth()) { + Column(Modifier.padding(16.dp), verticalArrangement = Arrangement.spacedBy(4.dp)) { + Text( + when (state) { + TestState.IDLE -> "Ready" + TestState.RUNNING -> "Testing…" + TestState.SUCCEEDED -> "Test passed" + TestState.FAILED -> "Test failed" + }, + style = MaterialTheme.typography.titleLarge, + ) + exitIp?.let { Text("Proxy exit IP: $it") } + } + } + Row(horizontalArrangement = Arrangement.spacedBy(12.dp)) { + Button(onClick = runTest, enabled = state != TestState.RUNNING) { Text("Run again") } + Button(onClick = { + val clipboard = activity.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager + clipboard.setPrimaryClip(ClipData.newPlainText("MegaProxy connection test", TestDiagnosticLog.entries.joinToString("\n"))) + }) { Text("Copy log") } + } + Text( + "The test uses a temporary VPN when the main connection is inactive. Credentials and traffic content are not logged.", + style = MaterialTheme.typography.bodySmall, + ) + SelectionContainer { + Text( + TestDiagnosticLog.entries.joinToString("\n").ifEmpty { "No test events yet." }, + style = MaterialTheme.typography.bodySmall, + modifier = Modifier.fillMaxWidth().verticalScroll(rememberScrollState()), + ) + } + } + } +} diff --git a/app/src/main/java/dev/megaproxy/app/MainActivity.kt b/app/src/main/java/dev/megaproxy/app/MainActivity.kt index f322067..9ab255c 100644 --- a/app/src/main/java/dev/megaproxy/app/MainActivity.kt +++ b/app/src/main/java/dev/megaproxy/app/MainActivity.kt @@ -2,11 +2,7 @@ package dev.megaproxy.app import android.Manifest import android.app.Activity -import android.content.ClipData -import android.content.ClipboardManager -import android.content.Context import android.content.Intent -import android.net.Uri import android.net.VpnService import android.os.Build import android.os.Bundle @@ -17,39 +13,47 @@ import androidx.activity.compose.setContent import androidx.activity.result.contract.ActivityResultContracts import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.rememberScrollState -import androidx.compose.foundation.text.selection.SelectionContainer -import androidx.compose.foundation.verticalScroll -import androidx.compose.material3.Button +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.CheckCircle +import androidx.compose.material.icons.outlined.RadioButtonUnchecked import androidx.compose.material3.AlertDialog +import androidx.compose.material3.Button +import androidx.compose.material3.Card import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.FilledTonalButton +import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Scaffold import androidx.compose.material3.Text -import androidx.compose.material3.TopAppBar import androidx.compose.material3.TextButton +import androidx.compose.material3.TopAppBar import androidx.compose.runtime.Composable import androidx.compose.runtime.DisposableEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.dp import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleEventObserver import androidx.lifecycle.compose.LocalLifecycleOwner import dev.megaproxy.app.data.ConfigStore -import dev.megaproxy.app.vpn.DiagnosticLog import dev.megaproxy.app.vpn.ProxyVpnService +import dev.megaproxy.app.vpn.VpnConnectionState +import dev.megaproxy.app.vpn.VpnRuntimeState class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + BatteryOptimizationReminder.maybeRequest(this) setContent { MaterialTheme { MainScreen(this) } } } } @@ -57,9 +61,9 @@ class MainActivity : ComponentActivity() { @OptIn(ExperimentalMaterial3Api::class) @Composable private fun MainScreen(activity: Activity) { + val connection by VpnRuntimeState.connection val store = remember { ConfigStore(activity) } var error by remember { mutableStateOf(null) } - var running by remember { mutableStateOf(ProxyVpnService.isRunning) } var alwaysOn by remember { mutableStateOf(ProxyVpnService.isAlwaysOnMode) } var lockdown by remember { mutableStateOf(ProxyVpnService.isLockdownMode) } var showAlwaysOnDisconnectDialog by remember { mutableStateOf(false) } @@ -67,7 +71,6 @@ private fun MainScreen(activity: Activity) { DisposableEffect(lifecycleOwner) { val observer = LifecycleEventObserver { _, event -> if (event == Lifecycle.Event.ON_RESUME) { - running = ProxyVpnService.isRunning alwaysOn = ProxyVpnService.isAlwaysOnMode lockdown = ProxyVpnService.isLockdownMode } @@ -76,96 +79,76 @@ private fun MainScreen(activity: Activity) { onDispose { lifecycleOwner.lifecycle.removeObserver(observer) } } val vpnPermission = rememberLauncherForActivityResult(ActivityResultContracts.StartActivityForResult()) { - if (it.resultCode == Activity.RESULT_OK) { - ProxyVpnService.start(activity) - running = true - } - } - val testVpnPermission = rememberLauncherForActivityResult(ActivityResultContracts.StartActivityForResult()) { - if (it.resultCode == Activity.RESULT_OK) ProxyVpnService.test(activity) - else error = "VPN permission is required for the connection test" + if (it.resultCode == Activity.RESULT_OK) ProxyVpnService.start(activity) + else error = "VPN permission is required" } val notificationPermission = rememberLauncherForActivityResult(ActivityResultContracts.RequestPermission()) { } Scaffold(topBar = { TopAppBar(title = { Text("MegaProxy") }) }) { padding -> Column( - Modifier.fillMaxSize().padding(padding).padding(16.dp).verticalScroll(rememberScrollState()), - verticalArrangement = Arrangement.spacedBy(12.dp), + Modifier.fillMaxSize().padding(padding).padding(20.dp), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.Center, ) { - Text( - when { - running && lockdown -> "VPN connected · Always-on lockdown" - running && alwaysOn -> "VPN connected · Always-on" - running -> "VPN connected" - else -> "VPN disconnected" - }, - style = MaterialTheme.typography.titleMedium, - ) - Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.spacedBy(12.dp)) { - Button( - onClick = { activity.startActivity(Intent(activity, ProxySettingsActivity::class.java)) }, - modifier = Modifier.weight(1f), - ) { Text("Proxy & JA3") } - Button( - onClick = { activity.startActivity(Intent(activity, SplitTunnelActivity::class.java)) }, - modifier = Modifier.weight(1f), - ) { Text("Split tunneling") } + val connected = connection == VpnConnectionState.CONNECTED + val statusColor = if (connected) Color(0xFF2E7D32) else MaterialTheme.colorScheme.onSurfaceVariant + Card(Modifier.fillMaxWidth()) { + Column( + Modifier.fillMaxWidth().padding(vertical = 28.dp, horizontal = 20.dp), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(8.dp), + ) { + Icon( + if (connected) Icons.Filled.CheckCircle else Icons.Outlined.RadioButtonUnchecked, + contentDescription = null, + tint = statusColor, + ) + Text( + when (connection) { + VpnConnectionState.CONNECTED -> "Connected" + VpnConnectionState.CONNECTING -> "Connecting…" + VpnConnectionState.DISCONNECTED -> "Disconnected" + }, + style = MaterialTheme.typography.headlineSmall, + color = statusColor, + ) + if (alwaysOn) { + Text( + if (lockdown) "Always-on · Block without VPN" else "Always-on VPN", + style = MaterialTheme.typography.bodyMedium, + color = MaterialTheme.colorScheme.onSurfaceVariant, + ) + } + } } - Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.spacedBy(12.dp)) { - Button(onClick = { - if (running) { - if (alwaysOn) { - showAlwaysOnDisconnectDialog = true - } else { - ProxyVpnService.stop(activity) - running = false - } + Spacer(Modifier.height(24.dp)) + Button( + onClick = { + if (connected) { + if (alwaysOn) showAlwaysOnDisconnectDialog = true + else ProxyVpnService.stop(activity) } else { - val config = store.load() - error = config.validationError() + error = store.load().validationError() if (error == null) { if (Build.VERSION.SDK_INT >= 33) notificationPermission.launch(Manifest.permission.POST_NOTIFICATIONS) val intent = VpnService.prepare(activity) - if (intent == null) { ProxyVpnService.start(activity); running = true } - else vpnPermission.launch(intent) + if (intent == null) ProxyVpnService.start(activity) else vpnPermission.launch(intent) } } - }, modifier = Modifier.weight(1f)) { Text(if (running) "Disconnect" else "Connect") } - Button(onClick = { - val config = store.load() - error = config.connectionValidationError() - if (error == null) { - if (Build.VERSION.SDK_INT >= 33) notificationPermission.launch(Manifest.permission.POST_NOTIFICATIONS) - val intent = VpnService.prepare(activity) - if (intent == null) ProxyVpnService.test(activity) else testVpnPermission.launch(intent) - } - }, modifier = Modifier.weight(1f)) { Text("Test connection") } - } - error?.let { Text(it, color = MaterialTheme.colorScheme.error) } - Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.spacedBy(12.dp)) { - Button(onClick = { activity.startActivity(Intent(Settings.ACTION_VPN_SETTINGS)) }, modifier = Modifier.weight(1f)) { - Text("Always-on VPN") - } - Button(onClick = { - activity.startActivity(Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS).apply { - data = Uri.parse("package:${activity.packageName}") - }) - }, modifier = Modifier.weight(1f)) { Text("Battery settings") } - } - Text("Diagnostics", style = MaterialTheme.typography.titleMedium) - Text( - "Metadata may include destination hostnames. Credentials and traffic content are never logged.", - style = MaterialTheme.typography.bodySmall, - ) - Row(horizontalArrangement = Arrangement.spacedBy(12.dp)) { - Button(onClick = { DiagnosticLog.clear() }) { Text("Clear") } - Button(onClick = { - val clipboard = activity.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager - clipboard.setPrimaryClip(ClipData.newPlainText("MegaProxy diagnostics", DiagnosticLog.entries.joinToString("\n"))) - }) { Text("Copy") } - } - SelectionContainer { - Text(DiagnosticLog.entries.joinToString("\n").ifEmpty { "No diagnostic events yet." }, style = MaterialTheme.typography.bodySmall) + }, + enabled = connection != VpnConnectionState.CONNECTING, + modifier = Modifier.fillMaxWidth(), + ) { Text(if (connected) "Disconnect" else "Connect") } + FilledTonalButton( + onClick = { activity.startActivity(Intent(activity, ConnectionTestActivity::class.java)) }, + modifier = Modifier.fillMaxWidth(), + ) { Text("Test") } + FilledTonalButton( + onClick = { activity.startActivity(Intent(activity, ProxySettingsActivity::class.java)) }, + modifier = Modifier.fillMaxWidth(), + ) { Text("Settings") } + error?.let { + Text(it, color = MaterialTheme.colorScheme.error, modifier = Modifier.padding(top = 12.dp)) } } } @@ -173,18 +156,14 @@ private fun MainScreen(activity: Activity) { AlertDialog( onDismissRequest = { showAlwaysOnDisconnectDialog = false }, title = { Text("Always-on VPN is enabled") }, - text = { - Text("Android will immediately restart MegaProxy if it is stopped. Open the system VPN settings and disable Always-on VPN to disconnect it explicitly.") - }, + text = { Text("Android will restart MegaProxy if it is stopped. Disable Always-on VPN in system settings to disconnect it.") }, confirmButton = { TextButton(onClick = { showAlwaysOnDisconnectDialog = false activity.startActivity(Intent(Settings.ACTION_VPN_SETTINGS)) }) { Text("Open VPN settings") } }, - dismissButton = { - TextButton(onClick = { showAlwaysOnDisconnectDialog = false }) { Text("Cancel") } - }, + dismissButton = { TextButton(onClick = { showAlwaysOnDisconnectDialog = false }) { Text("Cancel") } }, ) } } diff --git a/app/src/main/java/dev/megaproxy/app/ProxySettingsActivity.kt b/app/src/main/java/dev/megaproxy/app/ProxySettingsActivity.kt index 3e8151c..1768aad 100644 --- a/app/src/main/java/dev/megaproxy/app/ProxySettingsActivity.kt +++ b/app/src/main/java/dev/megaproxy/app/ProxySettingsActivity.kt @@ -1,7 +1,10 @@ package dev.megaproxy.app import android.app.Activity +import android.content.Intent +import android.net.Uri import android.os.Bundle +import android.provider.Settings import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.layout.Arrangement @@ -11,7 +14,10 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll -import androidx.compose.material3.Button +import androidx.compose.material3.HorizontalDivider +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.OutlinedButton import androidx.compose.material3.DropdownMenu import androidx.compose.material3.DropdownMenuItem import androidx.compose.material3.ExperimentalMaterial3Api @@ -22,6 +28,8 @@ import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.Scaffold import androidx.compose.material3.Text import androidx.compose.material3.TopAppBar +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.filled.ArrowBack import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf @@ -32,6 +40,7 @@ import androidx.compose.ui.text.input.PasswordVisualTransformation import androidx.compose.ui.unit.dp import dev.megaproxy.app.data.ConfigStore import dev.megaproxy.app.model.DnsProvider +import dev.megaproxy.app.model.ProxyConfig import dev.megaproxy.app.model.TlsProfile class ProxySettingsActivity : ComponentActivity() { @@ -46,37 +55,77 @@ class ProxySettingsActivity : ComponentActivity() { private fun ProxySettingsScreen(activity: Activity) { val store = remember { ConfigStore(activity) } var config by remember { mutableStateOf(store.load()) } + var portText by remember { mutableStateOf(config.port.toString()) } var error by remember { mutableStateOf(null) } var profileExpanded by remember { mutableStateOf(false) } var dnsExpanded by remember { mutableStateOf(false) } - Scaffold(topBar = { TopAppBar(title = { Text("Proxy & JA3") }) }) { padding -> + + fun updateConfig(updated: ProxyConfig) { + config = updated + store.save(updated) + error = updated.connectionValidationError() + } + + Scaffold(topBar = { + TopAppBar( + title = { Text("Settings") }, + navigationIcon = { + IconButton(onClick = { activity.finish() }) { + Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Back") + } + }, + ) + }) { padding -> Column( Modifier.fillMaxSize().padding(padding).padding(16.dp).verticalScroll(rememberScrollState()), verticalArrangement = Arrangement.spacedBy(10.dp), ) { - OutlinedTextField(config.host, { config = config.copy(host = it) }, label = { Text("HTTPS proxy hostname") }, singleLine = true, modifier = Modifier.fillMaxWidth()) - OutlinedTextField(config.port.toString(), { config = config.copy(port = it.toIntOrNull() ?: 0) }, label = { Text("Port") }, singleLine = true, modifier = Modifier.fillMaxWidth()) - OutlinedTextField(config.username, { config = config.copy(username = it) }, label = { Text("Basic Auth username") }, singleLine = true, modifier = Modifier.fillMaxWidth()) - OutlinedTextField(config.password, { config = config.copy(password = it) }, label = { Text("Password") }, singleLine = true, visualTransformation = PasswordVisualTransformation(), modifier = Modifier.fillMaxWidth()) + Text("HTTPS proxy", style = MaterialTheme.typography.titleMedium) + OutlinedTextField(config.host, { updateConfig(config.copy(host = it)) }, label = { Text("HTTPS proxy hostname") }, singleLine = true, modifier = Modifier.fillMaxWidth()) + OutlinedTextField(portText, { value -> + portText = value + val port = value.toIntOrNull() + if (port == null) error = "Port must be between 1 and 65535" + else updateConfig(config.copy(port = port)) + }, label = { Text("Port") }, singleLine = true, modifier = Modifier.fillMaxWidth()) + OutlinedTextField(config.username, { updateConfig(config.copy(username = it)) }, label = { Text("Basic Auth username") }, singleLine = true, modifier = Modifier.fillMaxWidth()) + OutlinedTextField(config.password, { updateConfig(config.copy(password = it)) }, label = { Text("Password") }, singleLine = true, visualTransformation = PasswordVisualTransformation(), modifier = Modifier.fillMaxWidth()) + Text("TLS fingerprint", style = MaterialTheme.typography.titleMedium) ExposedDropdownMenuBox(profileExpanded, { profileExpanded = it }) { OutlinedTextField(config.profile.title, {}, readOnly = true, label = { Text("TLS / JA3 profile") }, trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(profileExpanded) }, modifier = Modifier.menuAnchor().fillMaxWidth()) DropdownMenu(profileExpanded, { profileExpanded = false }) { - TlsProfile.entries.forEach { profile -> DropdownMenuItem(text = { Text(profile.title) }, enabled = profile.available, onClick = { config = config.copy(profile = profile); profileExpanded = false }) } + TlsProfile.entries.forEach { profile -> DropdownMenuItem(text = { Text(profile.title) }, enabled = profile.available, onClick = { updateConfig(config.copy(profile = profile)); profileExpanded = false }) } } } - if (config.profile == TlsProfile.CUSTOM) OutlinedTextField(config.customJa3, { config = config.copy(customJa3 = it) }, label = { Text("JA3: version,ciphers,extensions,groups,points") }, modifier = Modifier.fillMaxWidth(), minLines = 2) + if (config.profile == TlsProfile.CUSTOM) OutlinedTextField(config.customJa3, { updateConfig(config.copy(customJa3 = it)) }, label = { Text("JA3: version,ciphers,extensions,groups,points") }, modifier = Modifier.fillMaxWidth(), minLines = 2) + Text("DNS over HTTPS", style = MaterialTheme.typography.titleMedium) ExposedDropdownMenuBox(dnsExpanded, { dnsExpanded = it }) { OutlinedTextField(config.dnsProvider.title, {}, readOnly = true, label = { Text("DNS over HTTPS") }, trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(dnsExpanded) }, modifier = Modifier.menuAnchor().fillMaxWidth()) DropdownMenu(dnsExpanded, { dnsExpanded = false }) { - DnsProvider.entries.forEach { provider -> DropdownMenuItem(text = { Text(provider.title) }, onClick = { config = config.copy(dnsProvider = provider); dnsExpanded = false }) } + DnsProvider.entries.forEach { provider -> DropdownMenuItem(text = { Text(provider.title) }, onClick = { updateConfig(config.copy(dnsProvider = provider)); dnsExpanded = false }) } } } - if (config.dnsProvider == DnsProvider.CUSTOM) OutlinedTextField(config.customDohUrl, { config = config.copy(customDohUrl = it) }, label = { Text("Custom DoH URL") }, singleLine = true, modifier = Modifier.fillMaxWidth()) + if (config.dnsProvider == DnsProvider.CUSTOM) OutlinedTextField(config.customDohUrl, { updateConfig(config.copy(customDohUrl = it)) }, label = { Text("Custom DoH URL") }, singleLine = true, modifier = Modifier.fillMaxWidth()) error?.let { Text(it, color = MaterialTheme.colorScheme.error) } - Button(onClick = { - error = config.connectionValidationError() - if (error == null) { store.save(config); activity.finish() } - }, modifier = Modifier.fillMaxWidth()) { Text("Save") } + Text("Changes are saved automatically.", style = MaterialTheme.typography.bodySmall) + HorizontalDivider() + Text("VPN and routing", style = MaterialTheme.typography.titleMedium) + OutlinedButton( + onClick = { activity.startActivity(Intent(activity, SplitTunnelActivity::class.java)) }, + modifier = Modifier.fillMaxWidth(), + ) { Text("Split tunneling") } + OutlinedButton( + onClick = { activity.startActivity(Intent(Settings.ACTION_VPN_SETTINGS)) }, + modifier = Modifier.fillMaxWidth(), + ) { Text("Always-on VPN") } + OutlinedButton( + onClick = { + activity.startActivity(Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS).apply { + data = Uri.parse("package:${activity.packageName}") + }) + }, + modifier = Modifier.fillMaxWidth(), + ) { Text("Battery settings") } } } } diff --git a/app/src/main/java/dev/megaproxy/app/SplitTunnelActivity.kt b/app/src/main/java/dev/megaproxy/app/SplitTunnelActivity.kt index 7b49520..81e8e76 100644 --- a/app/src/main/java/dev/megaproxy/app/SplitTunnelActivity.kt +++ b/app/src/main/java/dev/megaproxy/app/SplitTunnelActivity.kt @@ -12,13 +12,16 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll -import androidx.compose.material3.Button import androidx.compose.material3.Checkbox import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Scaffold import androidx.compose.material3.Text import androidx.compose.material3.TopAppBar +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.filled.ArrowBack import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf @@ -48,7 +51,16 @@ private fun SplitTunnelScreen(activity: SplitTunnelActivity) { .map { AppItem(it.activityInfo.packageName, it.loadLabel(activity.packageManager).toString()) } .distinctBy { it.packageName }.sortedBy { it.label.lowercase() } } - Scaffold(topBar = { TopAppBar(title = { Text("Split tunneling") }) }) { padding -> + Scaffold(topBar = { + TopAppBar( + title = { Text("Split tunneling") }, + navigationIcon = { + IconButton(onClick = { activity.finish() }) { + Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Back") + } + }, + ) + }) { padding -> Column( Modifier.fillMaxSize().padding(padding).padding(16.dp).verticalScroll(rememberScrollState()), verticalArrangement = Arrangement.spacedBy(6.dp), @@ -62,17 +74,21 @@ private fun SplitTunnelScreen(activity: SplitTunnelActivity) { style = MaterialTheme.typography.bodySmall, ) } - Checkbox(config.allowIpv6, { config = config.copy(allowIpv6 = it) }) + Checkbox(config.allowIpv6, { + config = config.copy(allowIpv6 = it) + store.save(config) + }) } apps.forEach { app -> Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) { Text(app.label, Modifier.weight(1f).padding(top = 12.dp)) Checkbox(app.packageName in config.selectedPackages, { checked -> config = config.copy(selectedPackages = if (checked) config.selectedPackages + app.packageName else config.selectedPackages - app.packageName) + store.save(config) }) } } - Button(onClick = { store.save(config); activity.finish() }, modifier = Modifier.fillMaxWidth()) { Text("Save") } + Text("Changes are saved automatically.", style = MaterialTheme.typography.bodySmall) } } } diff --git a/app/src/main/java/dev/megaproxy/app/data/ConfigStore.kt b/app/src/main/java/dev/megaproxy/app/data/ConfigStore.kt index cd37c78..2625c30 100644 --- a/app/src/main/java/dev/megaproxy/app/data/ConfigStore.kt +++ b/app/src/main/java/dev/megaproxy/app/data/ConfigStore.kt @@ -48,6 +48,12 @@ class ConfigStore(context: Context) { .apply() } + fun isConnectionDesired(): Boolean = prefs.getBoolean("connection_desired", false) + + fun setConnectionDesired(desired: Boolean) { + prefs.edit().putBoolean("connection_desired", desired).apply() + } + private fun key(): SecretKey { val store = KeyStore.getInstance("AndroidKeyStore").apply { load(null) } (store.getKey(KEY_ALIAS, null) as? SecretKey)?.let { return it } diff --git a/app/src/main/java/dev/megaproxy/app/vpn/DiagnosticLog.kt b/app/src/main/java/dev/megaproxy/app/vpn/DiagnosticLog.kt index 5f6960c..34eac15 100644 --- a/app/src/main/java/dev/megaproxy/app/vpn/DiagnosticLog.kt +++ b/app/src/main/java/dev/megaproxy/app/vpn/DiagnosticLog.kt @@ -25,3 +25,47 @@ object DiagnosticLog { if (Looper.myLooper() == Looper.getMainLooper()) entries.clear() else mainHandler.post { entries.clear() } } } + +enum class TestState { IDLE, RUNNING, SUCCEEDED, FAILED } + +object TestDiagnosticLog { + private const val MAX_ENTRIES = 300 + private val timeFormat = DateTimeFormatter.ofPattern("HH:mm:ss.SSS") + private val mainHandler = Handler(Looper.getMainLooper()) + val entries = mutableStateListOf() + private val mutableState = androidx.compose.runtime.mutableStateOf(TestState.IDLE) + private val mutableExitIp = androidx.compose.runtime.mutableStateOf(null) + val state: androidx.compose.runtime.State = mutableState + val exitIp: androidx.compose.runtime.State = mutableExitIp + + private fun onMain(action: () -> Unit) { + if (Looper.myLooper() == Looper.getMainLooper()) action() else mainHandler.post(action) + } + + fun reset() = onMain { + entries.clear() + mutableExitIp.value = null + mutableState.value = TestState.IDLE + } + + fun begin() = onMain { + entries.clear() + mutableExitIp.value = null + mutableState.value = TestState.RUNNING + } + + fun add(message: String) = onMain { + entries.add("${LocalTime.now().format(timeFormat)} $message") + while (entries.size > MAX_ENTRIES) entries.removeAt(0) + } + + fun succeed(ip: String) = onMain { + mutableExitIp.value = ip + mutableState.value = TestState.SUCCEEDED + } + + fun fail(message: String? = null) = onMain { + if (message != null) add(message) + mutableState.value = TestState.FAILED + } +} diff --git a/app/src/main/java/dev/megaproxy/app/vpn/ProxyCore.kt b/app/src/main/java/dev/megaproxy/app/vpn/ProxyCore.kt index c93450b..6e0cb59 100644 --- a/app/src/main/java/dev/megaproxy/app/vpn/ProxyCore.kt +++ b/app/src/main/java/dev/megaproxy/app/vpn/ProxyCore.kt @@ -14,7 +14,10 @@ interface ProxyCore { } /** JNI boundary for the Go/uTLS userspace TCP/IP stack. */ -class NativeProxyCore(private val vpnService: VpnService) : ProxyCore { +class NativeProxyCore( + private val vpnService: VpnService, + private val diagnostics: (String) -> Unit = DiagnosticLog::add, +) : ProxyCore { private fun protectSocket(fd: Long): Boolean = vpnService.protect(fd.toInt()) private fun configJson(config: ProxyConfig) = JSONObject() @@ -39,12 +42,12 @@ class NativeProxyCore(private val vpnService: VpnService) : ProxyCore { val protectorType = Class.forName("mobile.Protector") val reporterType = Class.forName("mobile.Reporter") val protector = callback(protectorType, "protect") { protectSocket(it!![0] as Long) } - val reporter = callback(reporterType, "report") { DiagnosticLog.add(it!![0] as String); null } + val reporter = callback(reporterType, "report") { diagnostics(it!![0] as String); null } mobile.getMethod("resolveProxy", String::class.java, protectorType, reporterType) .invoke(null, host, protector, reporter) as String }.onFailure { val message = it.cause?.message ?: it.message ?: "Unknown native error" - DiagnosticLog.add("Proxy bootstrap DNS failed for $host: $message") + diagnostics("Proxy bootstrap DNS failed for $host: $message") status("Proxy DNS failed: $message") }.getOrNull() @@ -55,7 +58,7 @@ class NativeProxyCore(private val vpnService: VpnService) : ProxyCore { val protectorType = Class.forName("mobile.Protector") val reporterType = Class.forName("mobile.Reporter") val protector = callback(protectorType, "protect") { protectSocket(it!![0] as Long) } - val reporter = callback(reporterType, "report") { DiagnosticLog.add(it!![0] as String); null } + val reporter = callback(reporterType, "report") { diagnostics(it!![0] as String); null } detachedFd = ParcelFileDescriptor.fromFd(tunFd).detachFd() val startMethod = mobile.getMethod( "start", Long::class.javaPrimitiveType, String::class.java, protectorType, reporterType, @@ -77,14 +80,14 @@ class NativeProxyCore(private val vpnService: VpnService) : ProxyCore { val protectorType = Class.forName("mobile.Protector") val reporterType = Class.forName("mobile.Reporter") val protector = callback(protectorType, "protect") { protectSocket(it!![0] as Long) } - val reporter = callback(reporterType, "report") { DiagnosticLog.add(it!![0] as String); null } + val reporter = callback(reporterType, "report") { diagnostics(it!![0] as String); null } mobile.getMethod("testConnection", String::class.java, protectorType, reporterType) .invoke(null, configJson(config), protector, reporter) as String }.onSuccess { status("Test passed: exit IP $it") }.onFailure { val message = it.cause?.message ?: it.message ?: "Unknown native error" - DiagnosticLog.add("Connection test failed: $message") + diagnostics("Connection test failed: $message") status("Test failed: $message") }.getOrNull() diff --git a/app/src/main/java/dev/megaproxy/app/vpn/ProxyVpnService.kt b/app/src/main/java/dev/megaproxy/app/vpn/ProxyVpnService.kt index 590fdc6..3d932dc 100644 --- a/app/src/main/java/dev/megaproxy/app/vpn/ProxyVpnService.kt +++ b/app/src/main/java/dev/megaproxy/app/vpn/ProxyVpnService.kt @@ -8,6 +8,8 @@ import android.content.Intent import android.net.VpnService import android.os.Build import android.os.ParcelFileDescriptor +import android.os.Handler +import android.os.Looper import androidx.core.app.NotificationCompat import androidx.core.content.ContextCompat import dev.megaproxy.app.MainActivity @@ -19,10 +21,35 @@ class ProxyVpnService : VpnService() { private var tunnel: ParcelFileDescriptor? = null private var core: ProxyCore? = null private var activeConfig: dev.megaproxy.app.model.ProxyConfig? = null + private var tunnelTestOnly = false + private val monitorHandler = Handler(Looper.getMainLooper()) + private val monitor = object : Runnable { + override fun run() { + val desired = ConfigStore(this@ProxyVpnService).isConnectionDesired() + if (desired) { + getSystemService(NotificationManager::class.java).notify( + NOTIFICATION_ID, + notification(if (isRunning) "Connected" else "Reconnecting…"), + ) + if (tunnel == null && !testRunning.get() && startRunning.compareAndSet(false, true)) { + VpnRuntimeState.update(VpnConnectionState.CONNECTING) + thread(name = "megaproxy-vpn-recovery") { + try { + startTunnel(testOnly = false) + } finally { + startRunning.set(false) + } + } + } + } + monitorHandler.postDelayed(this, MONITOR_INTERVAL_MS) + } + } override fun onCreate() { super.onCreate() createChannel() + monitorHandler.post(monitor) } override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { @@ -30,6 +57,7 @@ class ProxyVpnService : VpnService() { isAlwaysOnMode = isAlwaysOn isLockdownMode = isLockdownEnabled } + if (isAlwaysOnMode) ConfigStore(this).setConnectionDesired(true) if (intent?.action == ACTION_STOP) { stopTunnel() stopSelf() @@ -37,11 +65,13 @@ class ProxyVpnService : VpnService() { } if (intent?.action == ACTION_TEST) { startForeground(NOTIFICATION_ID, notification("Testing connection…")) + TestDiagnosticLog.begin() thread(name = "megaproxy-connection-test") { testConnection() } return START_NOT_STICKY } startForeground(NOTIFICATION_ID, notification("Connecting…")) if (tunnel == null && startRunning.compareAndSet(false, true)) { + VpnRuntimeState.update(VpnConnectionState.CONNECTING) thread(name = "megaproxy-vpn-start") { try { startTunnel(testOnly = false) @@ -55,32 +85,33 @@ class ProxyVpnService : VpnService() { private fun testConnection() { if (!testRunning.compareAndSet(false, true)) { - DiagnosticLog.add("Connection test is already running") + TestDiagnosticLog.add("Connection test is already running") return } val storedConfig = ConfigStore(this).load() storedConfig.connectionValidationError()?.let { - DiagnosticLog.add("Connection test cannot start: $it") + TestDiagnosticLog.fail("Connection test cannot start: $it") testRunning.set(false) if (tunnel == null) { stopForeground(STOP_FOREGROUND_REMOVE); stopSelf() } return } val temporaryVpn = tunnel == null if (temporaryVpn && !startTunnel(testOnly = true, suppliedConfig = storedConfig)) { - DiagnosticLog.add("Connection test failed: temporary VPN could not be started") + TestDiagnosticLog.fail("Connection test failed: temporary VPN could not be started") testRunning.set(false) stopForeground(STOP_FOREGROUND_REMOVE) stopSelf() return } val config = activeConfig ?: run { - DiagnosticLog.add("Connection test failed: active VPN configuration is unavailable") + TestDiagnosticLog.fail("Connection test failed: active VPN configuration is unavailable") testRunning.set(false) return } - NativeProxyCore(this).test(config) { message -> + val exitIp = NativeProxyCore(this, TestDiagnosticLog::add).test(config) { message -> getSystemService(NotificationManager::class.java).notify(NOTIFICATION_ID, notification(message)) } + if (exitIp != null) TestDiagnosticLog.succeed(exitIp) else TestDiagnosticLog.fail() testRunning.set(false) if (temporaryVpn) { stopTunnel() @@ -90,9 +121,14 @@ class ProxyVpnService : VpnService() { private fun startTunnel(testOnly: Boolean, suppliedConfig: dev.megaproxy.app.model.ProxyConfig? = null): Boolean { val storedConfig = suppliedConfig ?: ConfigStore(this).load() - DiagnosticLog.add(if (testOnly) "Starting temporary VPN for connection test" else "Starting VPN for ${storedConfig.selectedPackages.size} selected application(s)") + val diagnostics = if (testOnly) TestDiagnosticLog::add else DiagnosticLog::add + diagnostics(if (testOnly) "Starting temporary VPN for connection test" else "Starting VPN for ${storedConfig.selectedPackages.size} selected application(s)") val validationError = if (testOnly) storedConfig.connectionValidationError() else storedConfig.validationError() validationError?.let { + if (testOnly) TestDiagnosticLog.fail(it) else { + ConfigStore(this).setConnectionDesired(false) + VpnRuntimeState.update(VpnConnectionState.DISCONNECTED) + } stopForeground(STOP_FOREGROUND_REMOVE) stopSelf() return false @@ -110,16 +146,19 @@ class ProxyVpnService : VpnService() { allowedPackages.forEach { packageName -> runCatching { builder.addAllowedApplication(packageName) } } - tunnel = builder.establish() ?: run { stopSelf(); return false } - DiagnosticLog.add("TUN established with IPv4, IPv6 and intercepted DNS") - val proxyCore = NativeProxyCore(this) + tunnel = builder.establish() ?: run { + handleStartFailure(testOnly, "VPN interface could not be established") + return false + } + tunnelTestOnly = testOnly + diagnostics("TUN established with IPv4, IPv6 and intercepted DNS") + val proxyCore = NativeProxyCore(this, diagnostics) val proxyIp = proxyCore.resolveProxy(storedConfig.host) { message -> getSystemService(NotificationManager::class.java).notify(NOTIFICATION_ID, notification(message)) } ?: run { tunnel?.close() tunnel = null - stopForeground(STOP_FOREGROUND_REMOVE) - stopSelf() + handleStartFailure(testOnly, "Proxy bootstrap DNS failed") return false } val config = storedConfig.copy(resolvedProxyIp = proxyIp) @@ -132,34 +171,59 @@ class ProxyVpnService : VpnService() { tunnel = null core = null isRunning = false - stopForeground(STOP_FOREGROUND_DETACH) - stopSelf() + handleStartFailure(testOnly, "Native proxy core failed to start") return false } } isRunning = true + VpnRuntimeState.update(VpnConnectionState.CONNECTED) activeConfig = config return true } + private fun handleStartFailure(testOnly: Boolean, message: String) { + if (testOnly) { + TestDiagnosticLog.fail(message) + stopForeground(STOP_FOREGROUND_REMOVE) + stopSelf() + } else { + DiagnosticLog.add("$message; retrying") + VpnRuntimeState.update(VpnConnectionState.CONNECTING) + getSystemService(NotificationManager::class.java).notify( + NOTIFICATION_ID, + notification("Connection failed; retrying…"), + ) + } + } + private fun stopTunnel() { - if (tunnel != null) DiagnosticLog.add("Stopping VPN") + if (tunnel != null) { + if (tunnelTestOnly) TestDiagnosticLog.add("Stopping temporary VPN") + else DiagnosticLog.add("Stopping VPN") + } isRunning = false + VpnRuntimeState.update(VpnConnectionState.DISCONNECTED) core?.stop() core = null tunnel?.close() tunnel = null + tunnelTestOnly = false activeConfig = null stopForeground(STOP_FOREGROUND_REMOVE) } override fun onRevoke() { + ConfigStore(this).setConnectionDesired(false) isAlwaysOnMode = false isLockdownMode = false stopTunnel() stopSelf() } - override fun onDestroy() { stopTunnel(); super.onDestroy() } + override fun onDestroy() { + monitorHandler.removeCallbacks(monitor) + stopTunnel() + super.onDestroy() + } private fun createChannel() { val channel = NotificationChannel(CHANNEL_ID, "VPN", NotificationManager.IMPORTANCE_LOW).apply { @@ -183,6 +247,7 @@ class ProxyVpnService : VpnService() { private const val NOTIFICATION_ID = 101 private const val ACTION_STOP = "dev.megaproxy.STOP" private const val ACTION_TEST = "dev.megaproxy.TEST" + private const val MONITOR_INTERVAL_MS = 10_000L private val testRunning = AtomicBoolean(false) private val startRunning = AtomicBoolean(false) @Volatile var isRunning: Boolean = false @@ -192,8 +257,14 @@ class ProxyVpnService : VpnService() { @Volatile var isLockdownMode: Boolean = false private set - fun start(context: Context) = ContextCompat.startForegroundService(context, Intent(context, ProxyVpnService::class.java)) - fun stop(context: Context) = context.startService(Intent(context, ProxyVpnService::class.java).setAction(ACTION_STOP)) + fun start(context: Context) { + ConfigStore(context).setConnectionDesired(true) + ContextCompat.startForegroundService(context, Intent(context, ProxyVpnService::class.java)) + } + fun stop(context: Context) { + ConfigStore(context).setConnectionDesired(false) + context.startService(Intent(context, ProxyVpnService::class.java).setAction(ACTION_STOP)) + } fun test(context: Context) = ContextCompat.startForegroundService( context, Intent(context, ProxyVpnService::class.java).setAction(ACTION_TEST), ) diff --git a/app/src/main/java/dev/megaproxy/app/vpn/VpnRuntimeState.kt b/app/src/main/java/dev/megaproxy/app/vpn/VpnRuntimeState.kt new file mode 100644 index 0000000..63a9bce --- /dev/null +++ b/app/src/main/java/dev/megaproxy/app/vpn/VpnRuntimeState.kt @@ -0,0 +1,21 @@ +package dev.megaproxy.app.vpn + +import android.os.Handler +import android.os.Looper +import androidx.compose.runtime.State +import androidx.compose.runtime.mutableStateOf + +enum class VpnConnectionState { DISCONNECTED, CONNECTING, CONNECTED } + +object VpnRuntimeState { + private val mainHandler = Handler(Looper.getMainLooper()) + private val mutableConnection = mutableStateOf( + if (ProxyVpnService.isRunning) VpnConnectionState.CONNECTED else VpnConnectionState.DISCONNECTED, + ) + val connection: State = mutableConnection + + fun update(value: VpnConnectionState) { + if (Looper.myLooper() == Looper.getMainLooper()) mutableConnection.value = value + else mainHandler.post { mutableConnection.value = value } + } +} diff --git a/app/src/test/java/dev/megaproxy/app/BatteryOptimizationReminderTest.kt b/app/src/test/java/dev/megaproxy/app/BatteryOptimizationReminderTest.kt new file mode 100644 index 0000000..aa50450 --- /dev/null +++ b/app/src/test/java/dev/megaproxy/app/BatteryOptimizationReminderTest.kt @@ -0,0 +1,39 @@ +package dev.megaproxy.app + +import org.junit.Assert.assertFalse +import org.junit.Assert.assertTrue +import org.junit.Test + +class BatteryOptimizationReminderTest { + @Test + fun firstRequestIsDue() { + assertTrue(BatteryOptimizationReminder.isRequestDue(now = 1_000L, lastRequestAt = 0L)) + } + + @Test + fun requestIsSuppressedDuringDailyInterval() { + val lastRequestAt = 1_000L + assertFalse( + BatteryOptimizationReminder.isRequestDue( + now = lastRequestAt + BatteryOptimizationReminder.REQUEST_INTERVAL_MS - 1, + lastRequestAt = lastRequestAt, + ), + ) + } + + @Test + fun requestIsDueAfterOneDay() { + val lastRequestAt = 1_000L + assertTrue( + BatteryOptimizationReminder.isRequestDue( + now = lastRequestAt + BatteryOptimizationReminder.REQUEST_INTERVAL_MS, + lastRequestAt = lastRequestAt, + ), + ) + } + + @Test + fun requestIsDueIfWallClockMovesBackwards() { + assertTrue(BatteryOptimizationReminder.isRequestDue(now = 1_000L, lastRequestAt = 2_000L)) + } +} diff --git a/scripts/start-android-emulator.sh b/scripts/start-android-emulator.sh index 41619bb..e76bd17 100755 --- a/scripts/start-android-emulator.sh +++ b/scripts/start-android-emulator.sh @@ -6,15 +6,93 @@ avd_name="${MEGAPROXY_AVD_NAME:-MegaProxy_API_35}" script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" "$script_dir/create-android-emulator.sh" -if adb devices | awk 'NR > 1 && $1 ~ /^emulator-/ { found = 1 } END { exit !found }'; then +avd_processes() { + ps ax -o pid=,command= | awk -v avd="@$avd_name" ' + index($0, avd) && ($0 ~ /\/emulator / || $0 ~ /qemu-system/) { print $1 } + ' +} + +emulator_serial="$(adb devices | awk 'NR > 1 && $1 ~ /^emulator-/ { print $1; exit }')" +emulator_state="" + +if [[ -n "$emulator_serial" ]]; then + emulator_state="$(adb -s "$emulator_serial" get-state 2>/dev/null || true)" +fi + +if [[ -n "$emulator_serial" && "$emulator_state" != "device" ]]; then + echo "Android emulator is $emulator_state; attempting ADB reconnect" + adb reconnect offline >/dev/null 2>&1 || true + for _ in {1..20}; do + emulator_state="$(adb -s "$emulator_serial" get-state 2>/dev/null || true)" + [[ "$emulator_state" == "device" ]] && break + sleep 0.25 + done +fi + +if { [[ -n "$emulator_serial" && "$emulator_state" != "device" ]] || + { [[ -z "$emulator_serial" ]] && [[ -n "$(avd_processes)" ]]; }; }; then + if [[ -n "$emulator_serial" ]]; then + echo "Stopping unresponsive emulator: $emulator_serial" + adb -s "$emulator_serial" emu kill >/dev/null 2>&1 || true + else + echo "Stopping orphaned emulator process for: $avd_name" + fi + while read -r emulator_pid; do + if [[ "$emulator_pid" =~ ^[0-9]+$ ]]; then + kill -TERM "$emulator_pid" >/dev/null 2>&1 || true + fi + done < <(avd_processes) + for _ in {1..120}; do + [[ -z "$(avd_processes)" ]] && break + sleep 0.25 + done + while read -r emulator_pid; do + if [[ "$emulator_pid" =~ ^[0-9]+$ ]]; then + echo "Force-stopping stale emulator process: $emulator_pid" + kill -KILL "$emulator_pid" >/dev/null 2>&1 || true + fi + done < <(avd_processes) + sleep 1 + emulator_serial="" +fi + +if [[ -n "$emulator_serial" && "$emulator_state" == "device" ]]; then echo "An Android emulator is already running" else emulator_log="${TMPDIR:-/tmp}/megaproxy-emulator.log" echo "Starting Android emulator: $avd_name" - nohup emulator "@$avd_name" -gpu auto "$emulator_log" 2>&1 & + # Quick Boot snapshots can leave the guest visible but permanently offline in ADB. + # Prefer a deterministic cold boot for automated run and debug workflows. + # Emulator 37.1.11 can crash its host-side netsimd process during startup on + # macOS. MegaProxy does not need simulated Wi-Fi/UWB radio packet exchange; + # Android's regular virtual network remains available with these disabled. + emulator_options=( + "@$avd_name" + -gpu auto + -no-snapshot-load + -no-snapshot-save + -feature -WiFiPacketStream + -feature -Uwb + -feature -Nfc + ) + nohup emulator "${emulator_options[@]}" "$emulator_log" 2>&1 & fi -adb -e wait-for-device +echo "Waiting for Android emulator transport" +emulator_online=false +for _ in {1..120}; do + if [[ "$(adb -e get-state 2>/dev/null || true)" == "device" ]]; then + emulator_online=true + break + fi + sleep 1 +done + +if [[ "$emulator_online" != "true" ]]; then + echo "Android emulator did not become available in ADB within 120 seconds" >&2 + echo "Emulator log: ${emulator_log:-${TMPDIR:-/tmp}/megaproxy-emulator.log}" >&2 + exit 1 +fi echo "Waiting for Android to finish booting" for _ in {1..180}; do From 74649a9169502fe6e9bc2648fd00610610cb03b1 Mon Sep 17 00:00:00 2001 From: Andrey Prokopyuk Date: Mon, 31 Aug 2026 23:25:13 +0300 Subject: [PATCH 03/41] Add profiles --- app/src/main/AndroidManifest.xml | 1 + .../megaproxy/app/ConnectionTestActivity.kt | 15 +- .../java/dev/megaproxy/app/MainActivity.kt | 133 ++++++-- .../megaproxy/app/ProfileEditorActivity.kt | 196 +++++++++++ .../megaproxy/app/ProxySettingsActivity.kt | 307 ++++++++++++++---- .../dev/megaproxy/app/SplitTunnelActivity.kt | 140 ++++++-- .../dev/megaproxy/app/data/ConfigStore.kt | 283 ++++++++++++++-- .../dev/megaproxy/app/data/ProxyListParser.kt | 61 ++++ .../app/model/ProfileColorMatcher.kt | 50 +++ .../dev/megaproxy/app/model/ProxyConfig.kt | 43 ++- .../megaproxy/app/vpn/AlwaysOnVpnStatus.kt | 19 ++ .../java/dev/megaproxy/app/vpn/ProxyCore.kt | 2 + .../dev/megaproxy/app/vpn/ProxyVpnService.kt | 33 +- .../dev/megaproxy/app/vpn/VpnRuntimeState.kt | 14 + .../megaproxy/app/data/ProxyListParserTest.kt | 40 +++ .../megaproxy/app/model/ProxyConfigTest.kt | 23 ++ native/mobile/config.go | 20 +- native/mobile/dialer.go | 62 +++- native/mobile/dialer_test.go | 29 ++ 19 files changed, 1287 insertions(+), 184 deletions(-) create mode 100644 app/src/main/java/dev/megaproxy/app/ProfileEditorActivity.kt create mode 100644 app/src/main/java/dev/megaproxy/app/data/ProxyListParser.kt create mode 100644 app/src/main/java/dev/megaproxy/app/model/ProfileColorMatcher.kt create mode 100644 app/src/main/java/dev/megaproxy/app/vpn/AlwaysOnVpnStatus.kt create mode 100644 app/src/test/java/dev/megaproxy/app/data/ProxyListParserTest.kt create mode 100644 app/src/test/java/dev/megaproxy/app/model/ProxyConfigTest.kt create mode 100644 native/mobile/dialer_test.go diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7e293e1..c12fd81 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -22,6 +22,7 @@ + diff --git a/app/src/main/java/dev/megaproxy/app/ConnectionTestActivity.kt b/app/src/main/java/dev/megaproxy/app/ConnectionTestActivity.kt index d72ddd5..8a1e8de 100644 --- a/app/src/main/java/dev/megaproxy/app/ConnectionTestActivity.kt +++ b/app/src/main/java/dev/megaproxy/app/ConnectionTestActivity.kt @@ -12,6 +12,7 @@ import androidx.activity.compose.setContent import androidx.activity.result.contract.ActivityResultContracts import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth @@ -109,12 +110,14 @@ private fun ConnectionTestScreen(activity: Activity, autoStart: Boolean) { "The test uses a temporary VPN when the main connection is inactive. Credentials and traffic content are not logged.", style = MaterialTheme.typography.bodySmall, ) - SelectionContainer { - Text( - TestDiagnosticLog.entries.joinToString("\n").ifEmpty { "No test events yet." }, - style = MaterialTheme.typography.bodySmall, - modifier = Modifier.fillMaxWidth().verticalScroll(rememberScrollState()), - ) + Box(Modifier.fillMaxWidth().weight(1f)) { + SelectionContainer { + Text( + TestDiagnosticLog.entries.joinToString("\n").ifEmpty { "No test events yet." }, + style = MaterialTheme.typography.bodySmall, + modifier = Modifier.fillMaxWidth().verticalScroll(rememberScrollState()), + ) + } } } } diff --git a/app/src/main/java/dev/megaproxy/app/MainActivity.kt b/app/src/main/java/dev/megaproxy/app/MainActivity.kt index 9ab255c..e95e544 100644 --- a/app/src/main/java/dev/megaproxy/app/MainActivity.kt +++ b/app/src/main/java/dev/megaproxy/app/MainActivity.kt @@ -6,31 +6,35 @@ import android.content.Intent import android.net.VpnService import android.os.Build import android.os.Bundle -import android.provider.Settings import androidx.activity.ComponentActivity import androidx.activity.compose.rememberLauncherForActivityResult import androidx.activity.compose.setContent import androidx.activity.result.contract.ActivityResultContracts import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.CheckCircle import androidx.compose.material.icons.outlined.RadioButtonUnchecked -import androidx.compose.material3.AlertDialog import androidx.compose.material3.Button import androidx.compose.material3.Card +import androidx.compose.material3.CardDefaults import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.FilledTonalButton +import androidx.compose.material3.DropdownMenu +import androidx.compose.material3.DropdownMenuItem import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Scaffold +import androidx.compose.material3.Surface import androidx.compose.material3.Text -import androidx.compose.material3.TextButton import androidx.compose.material3.TopAppBar import androidx.compose.runtime.Composable import androidx.compose.runtime.DisposableEffect @@ -38,9 +42,13 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue +import androidx.compose.foundation.clickable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.luminance +import androidx.compose.foundation.BorderStroke +import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.ui.unit.dp import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleEventObserver @@ -49,6 +57,8 @@ import dev.megaproxy.app.data.ConfigStore import dev.megaproxy.app.vpn.ProxyVpnService import dev.megaproxy.app.vpn.VpnConnectionState import dev.megaproxy.app.vpn.VpnRuntimeState +import dev.megaproxy.app.vpn.readAlwaysOnVpnStatus +import dev.megaproxy.app.model.ProfileColors class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { @@ -56,23 +66,40 @@ class MainActivity : ComponentActivity() { BatteryOptimizationReminder.maybeRequest(this) setContent { MaterialTheme { MainScreen(this) } } } + + override fun onResume() { + super.onResume() + val status = readAlwaysOnVpnStatus(this) + val store = ConfigStore(this) + val profileId = if (status.enabled) store.alwaysOnProfileId() else store.connectionProfile().id + VpnRuntimeState.updateSystem(status.enabled, status.lockdown, profileId) + } } @OptIn(ExperimentalMaterial3Api::class) @Composable private fun MainScreen(activity: Activity) { val connection by VpnRuntimeState.connection + val alwaysOn by VpnRuntimeState.alwaysOn + val lockdown by VpnRuntimeState.lockdown + val runtimeProfileId by VpnRuntimeState.connectionProfileId val store = remember { ConfigStore(activity) } var error by remember { mutableStateOf(null) } - var alwaysOn by remember { mutableStateOf(ProxyVpnService.isAlwaysOnMode) } - var lockdown by remember { mutableStateOf(ProxyVpnService.isLockdownMode) } - var showAlwaysOnDisconnectDialog by remember { mutableStateOf(false) } + var profileMenuExpanded by remember { mutableStateOf(false) } + var profiles by remember { mutableStateOf(store.sortedProfiles()) } + var activeProfileId by remember { mutableStateOf(store.activeProfileId()) } + var connectionProfileId by remember { mutableStateOf(store.connectionProfile().id) } val lifecycleOwner = LocalLifecycleOwner.current DisposableEffect(lifecycleOwner) { val observer = LifecycleEventObserver { _, event -> if (event == Lifecycle.Event.ON_RESUME) { - alwaysOn = ProxyVpnService.isAlwaysOnMode - lockdown = ProxyVpnService.isLockdownMode + profiles = store.sortedProfiles() + activeProfileId = store.activeProfileId() + connectionProfileId = if (readAlwaysOnVpnStatus(activity).enabled) { + store.alwaysOnProfileId() + } else { + store.connectionProfile().id + } } } lifecycleOwner.lifecycle.addObserver(observer) @@ -83,10 +110,18 @@ private fun MainScreen(activity: Activity) { else error = "VPN permission is required" } val notificationPermission = rememberLauncherForActivityResult(ActivityResultContracts.RequestPermission()) { } + val connect = { + error = store.activeProfile().config.validationError() + if (error == null) { + if (Build.VERSION.SDK_INT >= 33) notificationPermission.launch(Manifest.permission.POST_NOTIFICATIONS) + val intent = VpnService.prepare(activity) + if (intent == null) ProxyVpnService.start(activity) else vpnPermission.launch(intent) + } + } Scaffold(topBar = { TopAppBar(title = { Text("MegaProxy") }) }) { padding -> Column( - Modifier.fillMaxSize().padding(padding).padding(20.dp), + Modifier.fillMaxSize().padding(padding).verticalScroll(rememberScrollState()).padding(20.dp), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center, ) { @@ -122,21 +157,61 @@ private fun MainScreen(activity: Activity) { } } Spacer(Modifier.height(24.dp)) + val displayedProfileId = if (alwaysOn) runtimeProfileId.ifEmpty { connectionProfileId } else activeProfileId + val activeProfile = profiles.firstOrNull { it.id == displayedProfileId } ?: profiles.first() + val profileColor = Color(ProfileColors.argb[Math.floorMod(activeProfile.colorIndex, ProfileColors.argb.size)]) + val onProfileColor = if (profileColor.luminance() > 0.45f) Color.Black else Color.White + Card( + Modifier.fillMaxWidth().clickable(enabled = !alwaysOn) { profileMenuExpanded = true }, + colors = CardDefaults.cardColors( + containerColor = profileColor, + contentColor = onProfileColor, + disabledContainerColor = profileColor, + disabledContentColor = onProfileColor, + ), + ) { + Column(Modifier.fillMaxWidth().padding(14.dp)) { + Text("Profile", style = MaterialTheme.typography.labelMedium) + Row( + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(8.dp), + ) { + if (activeProfile.flagEmoji.isNotEmpty()) { + Surface( + color = Color.White, + contentColor = Color.Black, + shape = RoundedCornerShape(6.dp), + border = BorderStroke(1.dp, Color.Black.copy(alpha = 0.45f)), + ) { + Text(activeProfile.flagEmoji, modifier = Modifier.padding(horizontal = 5.dp, vertical = 2.dp)) + } + } + Text(activeProfile.displayName, style = MaterialTheme.typography.titleMedium) + } + DropdownMenu(profileMenuExpanded, { profileMenuExpanded = false }) { + profiles.forEach { profile -> + DropdownMenuItem( + text = { Text(profile.displayNameWithFlag) }, + onClick = { + store.setActiveProfile(profile.id) + activeProfileId = profile.id + profileMenuExpanded = false + }, + ) + } + } + } + } + Spacer(Modifier.height(12.dp)) Button( onClick = { if (connected) { - if (alwaysOn) showAlwaysOnDisconnectDialog = true - else ProxyVpnService.stop(activity) + ProxyVpnService.stop(activity) } else { - error = store.load().validationError() - if (error == null) { - if (Build.VERSION.SDK_INT >= 33) notificationPermission.launch(Manifest.permission.POST_NOTIFICATIONS) - val intent = VpnService.prepare(activity) - if (intent == null) ProxyVpnService.start(activity) else vpnPermission.launch(intent) - } + connect() } }, - enabled = connection != VpnConnectionState.CONNECTING, + enabled = connection != VpnConnectionState.CONNECTING && !alwaysOn, modifier = Modifier.fillMaxWidth(), ) { Text(if (connected) "Disconnect" else "Connect") } FilledTonalButton( @@ -150,20 +225,14 @@ private fun MainScreen(activity: Activity) { error?.let { Text(it, color = MaterialTheme.colorScheme.error, modifier = Modifier.padding(top = 12.dp)) } + if (alwaysOn) { + Text( + "Always-on VPN is used. Connection controls are managed by Android.", + style = MaterialTheme.typography.bodySmall, + color = MaterialTheme.colorScheme.onSurfaceVariant, + modifier = Modifier.padding(top = 12.dp), + ) + } } } - if (showAlwaysOnDisconnectDialog) { - AlertDialog( - onDismissRequest = { showAlwaysOnDisconnectDialog = false }, - title = { Text("Always-on VPN is enabled") }, - text = { Text("Android will restart MegaProxy if it is stopped. Disable Always-on VPN in system settings to disconnect it.") }, - confirmButton = { - TextButton(onClick = { - showAlwaysOnDisconnectDialog = false - activity.startActivity(Intent(Settings.ACTION_VPN_SETTINGS)) - }) { Text("Open VPN settings") } - }, - dismissButton = { TextButton(onClick = { showAlwaysOnDisconnectDialog = false }) { Text("Cancel") } }, - ) - } } diff --git a/app/src/main/java/dev/megaproxy/app/ProfileEditorActivity.kt b/app/src/main/java/dev/megaproxy/app/ProfileEditorActivity.kt new file mode 100644 index 0000000..2c1e89f --- /dev/null +++ b/app/src/main/java/dev/megaproxy/app/ProfileEditorActivity.kt @@ -0,0 +1,196 @@ +package dev.megaproxy.app + +import android.app.Activity +import android.content.Intent +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.filled.ArrowBack +import androidx.compose.material3.AlertDialog +import androidx.compose.material3.Checkbox +import androidx.compose.material3.DropdownMenu +import androidx.compose.material3.DropdownMenuItem +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.ExposedDropdownMenuBox +import androidx.compose.material3.ExposedDropdownMenuDefaults +import androidx.compose.material3.HorizontalDivider +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.OutlinedButton +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.material3.TextButton +import androidx.compose.material3.TopAppBar +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.text.input.PasswordVisualTransformation +import androidx.compose.ui.unit.dp +import dev.megaproxy.app.data.ConfigStore +import dev.megaproxy.app.model.DnsProvider +import dev.megaproxy.app.model.ProfileColorMatcher +import dev.megaproxy.app.model.ProxyConfig +import dev.megaproxy.app.model.TlsProfile +import java.util.Locale + +class ProfileEditorActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { MaterialTheme { ProfileEditorScreen(this) } } + } + + companion object { + const val EXTRA_PROFILE_ID = "profile_id" + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +private fun ProfileEditorScreen(activity: Activity) { + val store = remember { ConfigStore(activity) } + val profileId = remember { activity.intent.getStringExtra(ProfileEditorActivity.EXTRA_PROFILE_ID) } + var profile by remember { mutableStateOf(store.profile(profileId.orEmpty()) ?: store.activeProfile()) } + var config by remember { mutableStateOf(profile.config) } + var portText by remember { mutableStateOf(config.port.toString()) } + var error by remember { mutableStateOf(null) } + var countryExpanded by remember { mutableStateOf(false) } + var tlsExpanded by remember { mutableStateOf(false) } + var dnsExpanded by remember { mutableStateOf(false) } + var showInvalidCertificateWarning by remember { mutableStateOf(false) } + val countries = remember { + Locale.getISOCountries().map { code -> + code to Locale.Builder().setRegion(code).build().getDisplayCountry(Locale.getDefault()) + }.sortedBy { it.second.lowercase(Locale.getDefault()) } + } + + fun saveProfile() = store.saveProfile(profile) + fun updateConfig(updated: ProxyConfig) { + config = updated + profile = profile.copy(config = updated) + saveProfile() + error = updated.connectionValidationError() + } + + Scaffold(topBar = { + TopAppBar( + title = { Text(profile.displayName) }, + navigationIcon = { + IconButton(onClick = { activity.finish() }) { + Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Back") + } + }, + ) + }) { padding -> + Column( + Modifier.fillMaxSize().padding(padding).padding(16.dp).verticalScroll(rememberScrollState()), + verticalArrangement = Arrangement.spacedBy(10.dp), + ) { + OutlinedTextField(profile.name, { name -> + profile = profile.copy(name = name) + saveProfile() + }, label = { Text("Profile name (optional)") }, supportingText = { Text("Defaults to the proxy host") }, singleLine = true, modifier = Modifier.fillMaxWidth()) + ExposedDropdownMenuBox(countryExpanded, { countryExpanded = it }) { + OutlinedTextField( + profile.countryCode.takeIf(String::isNotEmpty)?.let { code -> + "${profile.flagEmoji} ${countries.firstOrNull { it.first == code }?.second ?: code}" + } ?: "No flag", + {}, readOnly = true, label = { Text("Country flag") }, + trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(countryExpanded) }, + modifier = Modifier.menuAnchor().fillMaxWidth(), + ) + DropdownMenu(countryExpanded, { countryExpanded = false }) { + DropdownMenuItem(text = { Text("No flag") }, onClick = { + profile = profile.copy(countryCode = "") + saveProfile() + countryExpanded = false + }) + countries.forEach { (code, name) -> + val flag = dev.megaproxy.app.model.ProxyProfile("", colorIndex = 0, countryCode = code).flagEmoji + DropdownMenuItem(text = { Text("$flag $name") }, onClick = { + profile = profile.copy( + countryCode = code, + colorIndex = ProfileColorMatcher.colorIndexForFlag(code, profile.colorIndex), + ) + saveProfile() + countryExpanded = false + }) + } + } + } + + Text("HTTPS proxy", style = MaterialTheme.typography.titleMedium) + OutlinedTextField(config.host, { updateConfig(config.copy(host = it)) }, label = { Text("HTTPS proxy hostname") }, singleLine = true, modifier = Modifier.fillMaxWidth()) + OutlinedTextField(portText, { value -> + portText = value + val port = value.toIntOrNull() + if (port == null) error = "Port must be between 1 and 65535" + else updateConfig(config.copy(port = port)) + }, label = { Text("Port") }, singleLine = true, modifier = Modifier.fillMaxWidth()) + OutlinedTextField(config.username, { updateConfig(config.copy(username = it)) }, label = { Text("Basic Auth username") }, singleLine = true, modifier = Modifier.fillMaxWidth()) + OutlinedTextField(config.password, { updateConfig(config.copy(password = it)) }, label = { Text("Password") }, singleLine = true, visualTransformation = PasswordVisualTransformation(), modifier = Modifier.fillMaxWidth()) + Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) { + Column(Modifier.weight(1f)) { + Text("Allow self-signed proxy certificate") + Text("Disables certificate verification only for the HTTPS proxy.", style = MaterialTheme.typography.bodySmall) + } + Checkbox(config.allowInvalidProxyCertificate, { checked -> + if (checked) showInvalidCertificateWarning = true + else updateConfig(config.copy(allowInvalidProxyCertificate = false)) + }) + } + + Text("TLS fingerprint", style = MaterialTheme.typography.titleMedium) + ExposedDropdownMenuBox(tlsExpanded, { tlsExpanded = it }) { + OutlinedTextField(config.profile.title, {}, readOnly = true, label = { Text("TLS / JA3 profile") }, trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(tlsExpanded) }, modifier = Modifier.menuAnchor().fillMaxWidth()) + DropdownMenu(tlsExpanded, { tlsExpanded = false }) { + TlsProfile.entries.forEach { tls -> DropdownMenuItem(text = { Text(tls.title) }, enabled = tls.available, onClick = { updateConfig(config.copy(profile = tls)); tlsExpanded = false }) } + } + } + if (config.profile == TlsProfile.CUSTOM) OutlinedTextField(config.customJa3, { updateConfig(config.copy(customJa3 = it)) }, label = { Text("JA3: version,ciphers,extensions,groups,points") }, modifier = Modifier.fillMaxWidth(), minLines = 2) + + Text("DNS over HTTPS", style = MaterialTheme.typography.titleMedium) + ExposedDropdownMenuBox(dnsExpanded, { dnsExpanded = it }) { + OutlinedTextField(config.dnsProvider.title, {}, readOnly = true, label = { Text("DNS over HTTPS") }, trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(dnsExpanded) }, modifier = Modifier.menuAnchor().fillMaxWidth()) + DropdownMenu(dnsExpanded, { dnsExpanded = false }) { + DnsProvider.entries.forEach { provider -> DropdownMenuItem(text = { Text(provider.title) }, onClick = { updateConfig(config.copy(dnsProvider = provider)); dnsExpanded = false }) } + } + } + if (config.dnsProvider == DnsProvider.CUSTOM) OutlinedTextField(config.customDohUrl, { updateConfig(config.copy(customDohUrl = it)) }, label = { Text("Custom DoH URL") }, singleLine = true, modifier = Modifier.fillMaxWidth()) + error?.let { Text(it, color = MaterialTheme.colorScheme.error) } + Text("Changes are saved automatically.", style = MaterialTheme.typography.bodySmall) + HorizontalDivider() + OutlinedButton(onClick = { + activity.startActivity(Intent(activity, SplitTunnelActivity::class.java).apply { + putStringArrayListExtra(SplitTunnelActivity.EXTRA_PROFILE_IDS, arrayListOf(profile.id)) + }) + }, modifier = Modifier.fillMaxWidth()) { Text("Routing") } + } + } + + if (showInvalidCertificateWarning) { + AlertDialog( + onDismissRequest = { showInvalidCertificateWarning = false }, + title = { Text("Allow an untrusted proxy certificate?") }, + text = { Text("This disables certificate-chain and hostname verification between your phone and the HTTPS proxy. An attacker could impersonate the proxy and obtain its Basic Auth credentials. Destination HTTPS certificates remain verified.") }, + confirmButton = { TextButton(onClick = { + updateConfig(config.copy(allowInvalidProxyCertificate = true)) + showInvalidCertificateWarning = false + }) { Text("OK") } }, + dismissButton = { TextButton(onClick = { showInvalidCertificateWarning = false }) { Text("Cancel") } }, + ) + } +} diff --git a/app/src/main/java/dev/megaproxy/app/ProxySettingsActivity.kt b/app/src/main/java/dev/megaproxy/app/ProxySettingsActivity.kt index 1768aad..dac301a 100644 --- a/app/src/main/java/dev/megaproxy/app/ProxySettingsActivity.kt +++ b/app/src/main/java/dev/megaproxy/app/ProxySettingsActivity.kt @@ -6,67 +6,127 @@ import android.net.Uri import android.os.Bundle import android.provider.Settings import androidx.activity.ComponentActivity +import androidx.activity.compose.rememberLauncherForActivityResult import androidx.activity.compose.setContent +import androidx.activity.result.contract.ActivityResultContracts +import androidx.compose.foundation.BorderStroke +import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.rememberScrollState -import androidx.compose.foundation.verticalScroll -import androidx.compose.material3.HorizontalDivider -import androidx.compose.material3.Icon -import androidx.compose.material3.IconButton -import androidx.compose.material3.OutlinedButton +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.filled.ArrowBack +import androidx.compose.material.icons.filled.Add +import androidx.compose.material3.AlertDialog +import androidx.compose.material3.Card +import androidx.compose.material3.CardDefaults import androidx.compose.material3.DropdownMenu import androidx.compose.material3.DropdownMenuItem import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.FloatingActionButton import androidx.compose.material3.ExposedDropdownMenuBox import androidx.compose.material3.ExposedDropdownMenuDefaults +import androidx.compose.material3.HorizontalDivider +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.OutlinedButton import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.Scaffold +import androidx.compose.material3.Surface import androidx.compose.material3.Text +import androidx.compose.material3.TextButton import androidx.compose.material3.TopAppBar -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.filled.ArrowBack import androidx.compose.runtime.Composable +import androidx.compose.runtime.DisposableEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.text.input.PasswordVisualTransformation +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.luminance import androidx.compose.ui.unit.dp +import androidx.lifecycle.Lifecycle +import androidx.lifecycle.LifecycleEventObserver +import androidx.lifecycle.compose.LocalLifecycleOwner import dev.megaproxy.app.data.ConfigStore -import dev.megaproxy.app.model.DnsProvider -import dev.megaproxy.app.model.ProxyConfig -import dev.megaproxy.app.model.TlsProfile +import dev.megaproxy.app.data.ProxyListParser +import dev.megaproxy.app.model.ProfileColors +import dev.megaproxy.app.model.ProxyProfile +import dev.megaproxy.app.model.ProfileSort +import dev.megaproxy.app.vpn.ProxyVpnService class ProxySettingsActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContent { MaterialTheme { ProxySettingsScreen(this) } } + setContent { MaterialTheme { SettingsScreen(this) } } } } @OptIn(ExperimentalMaterial3Api::class) @Composable -private fun ProxySettingsScreen(activity: Activity) { +private fun SettingsScreen(activity: Activity) { val store = remember { ConfigStore(activity) } - var config by remember { mutableStateOf(store.load()) } - var portText by remember { mutableStateOf(config.port.toString()) } - var error by remember { mutableStateOf(null) } - var profileExpanded by remember { mutableStateOf(false) } - var dnsExpanded by remember { mutableStateOf(false) } + var profiles by remember { mutableStateOf(store.sortedProfiles()) } + var sort by remember { mutableStateOf(store.profileSort()) } + var ascending by remember { mutableStateOf(store.isProfileSortAscending()) } + var sortExpanded by remember { mutableStateOf(false) } + var alwaysOnExpanded by remember { mutableStateOf(false) } + var deleteProfile by remember { mutableStateOf(null) } + var showReconnectWarning by remember { mutableStateOf(false) } + var importedProfileIds by remember { mutableStateOf>(emptyList()) } + var importError by remember { mutableStateOf(null) } + var skippedNonHttps by remember { mutableStateOf(0) } + var showImportFilterNotice by remember { mutableStateOf(false) } + val lifecycleOwner = LocalLifecycleOwner.current + + fun refresh() { profiles = store.sortedProfiles() } + fun edit(profile: ProxyProfile) { + activity.startActivity(Intent(activity, ProfileEditorActivity::class.java).apply { + putExtra(ProfileEditorActivity.EXTRA_PROFILE_ID, profile.id) + }) + } + fun openImportedRouting(individual: Boolean) { + activity.startActivity(Intent(activity, SplitTunnelActivity::class.java).apply { + putStringArrayListExtra(SplitTunnelActivity.EXTRA_PROFILE_IDS, ArrayList(importedProfileIds)) + putExtra(SplitTunnelActivity.EXTRA_CONFIGURE_INDIVIDUALLY, individual) + }) + importedProfileIds = emptyList() + } - fun updateConfig(updated: ProxyConfig) { - config = updated - store.save(updated) - error = updated.connectionValidationError() + DisposableEffect(lifecycleOwner) { + val observer = LifecycleEventObserver { _, event -> if (event == Lifecycle.Event.ON_RESUME) refresh() } + lifecycleOwner.lifecycle.addObserver(observer) + onDispose { lifecycleOwner.lifecycle.removeObserver(observer) } } - Scaffold(topBar = { + val importDocument = rememberLauncherForActivityResult(ActivityResultContracts.OpenDocument()) { uri -> + if (uri != null) { + runCatching { + val text = activity.contentResolver.openInputStream(uri)?.bufferedReader()?.use { it.readText() } + ?: error("Could not read the selected file") + ProxyListParser.parse(text).getOrThrow() + }.onSuccess { imported -> + val added = store.importProfiles(imported.proxies) + refresh() + importedProfileIds = added.map { it.id } + skippedNonHttps = imported.skippedNonHttps + showImportFilterNotice = imported.skippedNonHttps > 0 + importError = null + }.onFailure { importError = it.message ?: "Could not import the proxy list" } + } + } + + Scaffold( + topBar = { TopAppBar( title = { Text("Settings") }, navigationIcon = { @@ -74,58 +134,171 @@ private fun ProxySettingsScreen(activity: Activity) { Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Back") } }, + actions = { + TextButton(onClick = { importDocument.launch(arrayOf("text/plain", "text/*")) }) { + Text("Import") + } + }, ) - }) { padding -> - Column( - Modifier.fillMaxSize().padding(padding).padding(16.dp).verticalScroll(rememberScrollState()), + }, + floatingActionButton = { + FloatingActionButton(onClick = { + val profile = store.addProfile() + refresh() + edit(profile) + }) { + Icon(Icons.Default.Add, contentDescription = "Add profile") + } + }, + ) { padding -> + LazyColumn( + Modifier.fillMaxSize().padding(padding).padding(horizontal = 16.dp), verticalArrangement = Arrangement.spacedBy(10.dp), ) { - Text("HTTPS proxy", style = MaterialTheme.typography.titleMedium) - OutlinedTextField(config.host, { updateConfig(config.copy(host = it)) }, label = { Text("HTTPS proxy hostname") }, singleLine = true, modifier = Modifier.fillMaxWidth()) - OutlinedTextField(portText, { value -> - portText = value - val port = value.toIntOrNull() - if (port == null) error = "Port must be between 1 and 65535" - else updateConfig(config.copy(port = port)) - }, label = { Text("Port") }, singleLine = true, modifier = Modifier.fillMaxWidth()) - OutlinedTextField(config.username, { updateConfig(config.copy(username = it)) }, label = { Text("Basic Auth username") }, singleLine = true, modifier = Modifier.fillMaxWidth()) - OutlinedTextField(config.password, { updateConfig(config.copy(password = it)) }, label = { Text("Password") }, singleLine = true, visualTransformation = PasswordVisualTransformation(), modifier = Modifier.fillMaxWidth()) - Text("TLS fingerprint", style = MaterialTheme.typography.titleMedium) - ExposedDropdownMenuBox(profileExpanded, { profileExpanded = it }) { - OutlinedTextField(config.profile.title, {}, readOnly = true, label = { Text("TLS / JA3 profile") }, trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(profileExpanded) }, modifier = Modifier.menuAnchor().fillMaxWidth()) - DropdownMenu(profileExpanded, { profileExpanded = false }) { - TlsProfile.entries.forEach { profile -> DropdownMenuItem(text = { Text(profile.title) }, enabled = profile.available, onClick = { updateConfig(config.copy(profile = profile)); profileExpanded = false }) } + item { Text("Always-on VPN", style = MaterialTheme.typography.titleLarge, modifier = Modifier.padding(top = 8.dp)) } + item { + ExposedDropdownMenuBox(alwaysOnExpanded, { alwaysOnExpanded = it }) { + OutlinedTextField( + store.alwaysOnProfile().displayNameWithFlag, {}, readOnly = true, + label = { Text("Profile for Always-on VPN") }, + trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(alwaysOnExpanded) }, + modifier = Modifier.menuAnchor().fillMaxWidth(), + ) + DropdownMenu(alwaysOnExpanded, { alwaysOnExpanded = false }) { + profiles.forEach { profile -> DropdownMenuItem(text = { Text(profile.displayNameWithFlag) }, onClick = { + store.setAlwaysOnProfile(profile.id) + alwaysOnExpanded = false + if (ProxyVpnService.isAlwaysOnMode && ProxyVpnService.isRunning) showReconnectWarning = true + }) } + } } } - if (config.profile == TlsProfile.CUSTOM) OutlinedTextField(config.customJa3, { updateConfig(config.copy(customJa3 = it)) }, label = { Text("JA3: version,ciphers,extensions,groups,points") }, modifier = Modifier.fillMaxWidth(), minLines = 2) - Text("DNS over HTTPS", style = MaterialTheme.typography.titleMedium) - ExposedDropdownMenuBox(dnsExpanded, { dnsExpanded = it }) { - OutlinedTextField(config.dnsProvider.title, {}, readOnly = true, label = { Text("DNS over HTTPS") }, trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(dnsExpanded) }, modifier = Modifier.menuAnchor().fillMaxWidth()) - DropdownMenu(dnsExpanded, { dnsExpanded = false }) { - DnsProvider.entries.forEach { provider -> DropdownMenuItem(text = { Text(provider.title) }, onClick = { updateConfig(config.copy(dnsProvider = provider)); dnsExpanded = false }) } - } + item { + OutlinedButton( + onClick = { activity.startActivity(Intent(Settings.ACTION_VPN_SETTINGS)) }, + modifier = Modifier.fillMaxWidth(), + ) { Text("Open Android Always-on VPN settings") } } - if (config.dnsProvider == DnsProvider.CUSTOM) OutlinedTextField(config.customDohUrl, { updateConfig(config.copy(customDohUrl = it)) }, label = { Text("Custom DoH URL") }, singleLine = true, modifier = Modifier.fillMaxWidth()) - error?.let { Text(it, color = MaterialTheme.colorScheme.error) } - Text("Changes are saved automatically.", style = MaterialTheme.typography.bodySmall) - HorizontalDivider() - Text("VPN and routing", style = MaterialTheme.typography.titleMedium) - OutlinedButton( - onClick = { activity.startActivity(Intent(activity, SplitTunnelActivity::class.java)) }, - modifier = Modifier.fillMaxWidth(), - ) { Text("Split tunneling") } - OutlinedButton( - onClick = { activity.startActivity(Intent(Settings.ACTION_VPN_SETTINGS)) }, - modifier = Modifier.fillMaxWidth(), - ) { Text("Always-on VPN") } - OutlinedButton( - onClick = { + item { + OutlinedButton(onClick = { activity.startActivity(Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS).apply { data = Uri.parse("package:${activity.packageName}") }) - }, - modifier = Modifier.fillMaxWidth(), - ) { Text("Battery settings") } + }, modifier = Modifier.fillMaxWidth()) { Text("Battery settings") } + } + item { HorizontalDivider(Modifier.padding(vertical = 6.dp)) } + item { Text("Profiles", style = MaterialTheme.typography.titleLarge, modifier = Modifier.padding(top = 8.dp)) } + item { + Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.spacedBy(10.dp)) { + ExposedDropdownMenuBox(sortExpanded, { sortExpanded = it }, Modifier.weight(1f)) { + OutlinedTextField( + sort.title, {}, readOnly = true, label = { Text("Sort by") }, + trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(sortExpanded) }, + modifier = Modifier.menuAnchor().fillMaxWidth(), + ) + DropdownMenu(sortExpanded, { sortExpanded = false }) { + ProfileSort.entries.forEach { option -> DropdownMenuItem(text = { Text(option.title) }, onClick = { + sort = option + store.setProfileSort(sort, ascending) + refresh() + sortExpanded = false + }) } + } + } + OutlinedButton(onClick = { + ascending = !ascending + store.setProfileSort(sort, ascending) + refresh() + }, modifier = Modifier.padding(top = 8.dp)) { + Text(if (ascending) "Ascending" else "Descending") + } + } + } + items(profiles, key = { it.id }) { profile -> + ProfileCard( + profile = profile, + onConfigure = { edit(profile) }, + onClone = { store.cloneProfile(profile.id); refresh() }, + onDelete = { deleteProfile = profile }, + ) + } + importError?.let { message -> item { Text(message, color = MaterialTheme.colorScheme.error) } } + item { Text("Changes are saved automatically.", style = MaterialTheme.typography.bodySmall, modifier = Modifier.padding(bottom = 16.dp)) } + } + } + + deleteProfile?.let { profile -> + AlertDialog( + onDismissRequest = { deleteProfile = null }, + title = { Text("Delete ${profile.displayName}?") }, + text = { Text("The profile and its encrypted credentials will be removed.") }, + confirmButton = { TextButton(onClick = { + store.deleteProfile(profile.id) + refresh() + deleteProfile = null + }, enabled = profiles.size > 1) { Text("Delete") } }, + dismissButton = { TextButton(onClick = { deleteProfile = null }) { Text("Cancel") } }, + ) + } + if (showReconnectWarning) { + AlertDialog( + onDismissRequest = { showReconnectWarning = false }, + title = { Text("Reconnect required") }, + text = { Text("The new Always-on profile will be used only after the VPN reconnects.") }, + confirmButton = { TextButton(onClick = { showReconnectWarning = false }) { Text("OK") } }, + ) + } + if (showImportFilterNotice) { + AlertDialog( + onDismissRequest = { showImportFilterNotice = false }, + title = { Text("Only HTTPS proxies were imported") }, + text = { Text("Imported ${importedProfileIds.size} HTTPS proxy profile(s). Skipped $skippedNonHttps non-HTTPS URL(s).") }, + confirmButton = { TextButton(onClick = { showImportFilterNotice = false }) { Text("Continue") } }, + ) + } + if (importedProfileIds.isNotEmpty() && !showImportFilterNotice) { + AlertDialog( + onDismissRequest = { importedProfileIds = emptyList() }, + title = { Text("Configure imported profiles") }, + text = { Text("Choose whether routing settings should be shared by all imported profiles or configured one profile at a time.") }, + confirmButton = { TextButton(onClick = { openImportedRouting(false) }) { Text("Same for all") } }, + dismissButton = { TextButton(onClick = { openImportedRouting(true) }) { Text("One by one") } }, + ) + } +} + +@Composable +private fun ProfileCard( + profile: ProxyProfile, + onConfigure: () -> Unit, + onClone: () -> Unit, + onDelete: () -> Unit, +) { + val background = Color(ProfileColors.argb[Math.floorMod(profile.colorIndex, ProfileColors.argb.size)]) + val foreground = if (background.luminance() > 0.45f) Color.Black else Color.White + Card( + colors = CardDefaults.cardColors(containerColor = background, contentColor = foreground), + modifier = Modifier.fillMaxWidth().clickable(onClick = onConfigure), + ) { + Column(Modifier.fillMaxWidth().padding(14.dp), verticalArrangement = Arrangement.spacedBy(8.dp)) { + Row(verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.spacedBy(8.dp)) { + if (profile.flagEmoji.isNotEmpty()) { + Surface( + color = Color.White, contentColor = Color.Black, + shape = RoundedCornerShape(6.dp), + border = BorderStroke(1.dp, Color.Black.copy(alpha = 0.45f)), + ) { Text(profile.flagEmoji, modifier = Modifier.padding(horizontal = 5.dp, vertical = 2.dp)) } + } + Column { + Text(profile.displayName, style = MaterialTheme.typography.titleMedium) + Text("${profile.config.host}:${profile.config.port}", style = MaterialTheme.typography.bodySmall) + } + } + Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.End) { + TextButton(onClick = onConfigure) { Text("Configure", color = foreground) } + TextButton(onClick = onClone) { Text("Clone", color = foreground) } + TextButton(onClick = onDelete) { Text("Delete", color = foreground) } + } } } } diff --git a/app/src/main/java/dev/megaproxy/app/SplitTunnelActivity.kt b/app/src/main/java/dev/megaproxy/app/SplitTunnelActivity.kt index 81e8e76..55e2d9f 100644 --- a/app/src/main/java/dev/megaproxy/app/SplitTunnelActivity.kt +++ b/app/src/main/java/dev/megaproxy/app/SplitTunnelActivity.kt @@ -10,9 +10,11 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.rememberScrollState -import androidx.compose.foundation.verticalScroll +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items import androidx.compose.material3.Checkbox +import androidx.compose.material3.Button +import androidx.compose.material3.RadioButton import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Scaffold @@ -20,6 +22,7 @@ import androidx.compose.material3.Text import androidx.compose.material3.TopAppBar import androidx.compose.material3.Icon import androidx.compose.material3.IconButton +import androidx.compose.material3.OutlinedTextField import androidx.compose.material.icons.Icons import androidx.compose.material.icons.automirrored.filled.ArrowBack import androidx.compose.runtime.Composable @@ -36,6 +39,11 @@ class SplitTunnelActivity : ComponentActivity() { super.onCreate(savedInstanceState) setContent { MaterialTheme { SplitTunnelScreen(this) } } } + + companion object { + const val EXTRA_PROFILE_IDS = "profile_ids" + const val EXTRA_CONFIGURE_INDIVIDUALLY = "configure_individually" + } } private data class AppItem(val packageName: String, val label: String) @@ -44,29 +52,101 @@ private data class AppItem(val packageName: String, val label: String) @Composable private fun SplitTunnelScreen(activity: SplitTunnelActivity) { val store = remember { ConfigStore(activity) } - var config by remember { mutableStateOf(store.load()) } + val importedIds = remember { + activity.intent.getStringArrayListExtra(SplitTunnelActivity.EXTRA_PROFILE_IDS).orEmpty() + } + val configureIndividually = remember { + activity.intent.getBooleanExtra(SplitTunnelActivity.EXTRA_CONFIGURE_INDIVIDUALLY, false) + } + val targetProfiles = remember(importedIds) { + if (importedIds.isEmpty()) listOf(store.activeProfile()) + else importedIds.mapNotNull(store::profile) + } + var currentIndex by remember { mutableStateOf(0) } + var currentProfile by remember { mutableStateOf(targetProfiles.first()) } + var config by remember { mutableStateOf(currentProfile.config) } + var appSearch by remember { mutableStateOf("") } + + fun updateConfig(updated: dev.megaproxy.app.model.ProxyConfig) { + config = updated + val profilesToUpdate = if (configureIndividually) listOf(currentProfile) else targetProfiles + profilesToUpdate.forEach { store.saveProfile(it.copy(config = updated)) } + currentProfile = currentProfile.copy(config = updated) + } val apps = remember { val launcher = Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_LAUNCHER) activity.packageManager.queryIntentActivities(launcher, 0) .map { AppItem(it.activityInfo.packageName, it.loadLabel(activity.packageManager).toString()) } .distinctBy { it.packageName }.sortedBy { it.label.lowercase() } } + val visibleApps = remember(apps, appSearch) { + val query = appSearch.trim() + if (query.isEmpty()) apps else apps.filter { + it.label.contains(query, ignoreCase = true) || it.packageName.contains(query, ignoreCase = true) + } + } + fun finishCurrentProfile() { + if (configureIndividually && currentIndex < targetProfiles.lastIndex) { + currentIndex += 1 + currentProfile = targetProfiles[currentIndex] + config = currentProfile.config + appSearch = "" + } else { + store.setActiveProfile(targetProfiles.first().id) + activity.finish() + } + } Scaffold(topBar = { TopAppBar( - title = { Text("Split tunneling") }, + title = { + Text( + if (importedIds.isEmpty()) "Routing" + else if (configureIndividually) "Routing: ${currentProfile.displayName}" + else "Routing for ${targetProfiles.size} profiles" + ) + }, navigationIcon = { IconButton(onClick = { activity.finish() }) { Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Back") } }, ) + }, bottomBar = { + if (importedIds.isNotEmpty()) { + Button( + onClick = ::finishCurrentProfile, + modifier = Modifier.fillMaxWidth().padding(horizontal = 16.dp, vertical = 10.dp), + ) { + Text(if (configureIndividually && currentIndex < targetProfiles.lastIndex) "Next profile" else "Done") + } + } }) { padding -> - Column( - Modifier.fillMaxSize().padding(padding).padding(16.dp).verticalScroll(rememberScrollState()), + LazyColumn( + Modifier.fillMaxSize().padding(padding), + contentPadding = androidx.compose.foundation.layout.PaddingValues(16.dp), verticalArrangement = Arrangement.spacedBy(6.dp), ) { - Text("Only selected applications use the proxy. UDP and QUIC are blocked; DNS uses the configured DoH endpoint.", style = MaterialTheme.typography.bodySmall) - Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) { + item { Text("Routing mode", style = MaterialTheme.typography.titleMedium) } + item { Row(Modifier.fillMaxWidth()) { + RadioButton(!config.routeAllApps, { + updateConfig(config.copy(routeAllApps = false)) + }) + Column(Modifier.weight(1f).padding(top = 12.dp)) { + Text("Split tunneling") + Text("Only selected applications use the proxy (recommended).", style = MaterialTheme.typography.bodySmall) + } + } } + item { Row(Modifier.fillMaxWidth()) { + RadioButton(config.routeAllApps, { + updateConfig(config.copy(routeAllApps = true)) + }) + Column(Modifier.weight(1f).padding(top = 12.dp)) { + Text("Global VPN") + Text("All applications use the proxy. This mode is opt-in.", style = MaterialTheme.typography.bodySmall) + } + } } + item { Text("UDP and QUIC are blocked; DNS uses the configured DoH endpoint.", style = MaterialTheme.typography.bodySmall) } + item { Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) { Column(Modifier.weight(1f)) { Text("Enable IPv6 destinations") Text( @@ -75,20 +155,42 @@ private fun SplitTunnelScreen(activity: SplitTunnelActivity) { ) } Checkbox(config.allowIpv6, { - config = config.copy(allowIpv6 = it) - store.save(config) + updateConfig(config.copy(allowIpv6 = it)) }) - } - apps.forEach { app -> - Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) { - Text(app.label, Modifier.weight(1f).padding(top = 12.dp)) - Checkbox(app.packageName in config.selectedPackages, { checked -> - config = config.copy(selectedPackages = if (checked) config.selectedPackages + app.packageName else config.selectedPackages - app.packageName) - store.save(config) - }) + } } + item { Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) { + Column(Modifier.weight(1f)) { + Text("Bypass local networks") + Text( + "Direct TCP access to private and link-local IP addresses. DNS still uses DoH; local UDP and mDNS remain blocked.", + style = MaterialTheme.typography.bodySmall, + ) + } + Checkbox(config.bypassLocalNetworks, { + updateConfig(config.copy(bypassLocalNetworks = it)) + }) + } } + if (!config.routeAllApps) { + item { Text("Applications", style = MaterialTheme.typography.titleMedium) } + item { + OutlinedTextField( + value = appSearch, + onValueChange = { appSearch = it }, + label = { Text("Search applications") }, + singleLine = true, + modifier = Modifier.fillMaxWidth(), + ) + } + items(visibleApps, key = { it.packageName }) { app -> + Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) { + Text(app.label, Modifier.weight(1f).padding(top = 12.dp)) + Checkbox(app.packageName in config.selectedPackages, { checked -> + updateConfig(config.copy(selectedPackages = if (checked) config.selectedPackages + app.packageName else config.selectedPackages - app.packageName)) + }) + } } } - Text("Changes are saved automatically.", style = MaterialTheme.typography.bodySmall) + item { Text("Changes are saved automatically.", style = MaterialTheme.typography.bodySmall) } } } } diff --git a/app/src/main/java/dev/megaproxy/app/data/ConfigStore.kt b/app/src/main/java/dev/megaproxy/app/data/ConfigStore.kt index 2625c30..7314901 100644 --- a/app/src/main/java/dev/megaproxy/app/data/ConfigStore.kt +++ b/app/src/main/java/dev/megaproxy/app/data/ConfigStore.kt @@ -4,10 +4,17 @@ import android.content.Context import android.security.keystore.KeyGenParameterSpec import android.security.keystore.KeyProperties import android.util.Base64 -import dev.megaproxy.app.model.ProxyConfig import dev.megaproxy.app.model.DnsProvider +import dev.megaproxy.app.model.ProfileColors +import dev.megaproxy.app.model.ProfileColorMatcher +import dev.megaproxy.app.model.ProfileSort +import dev.megaproxy.app.model.ProxyConfig +import dev.megaproxy.app.model.ProxyProfile import dev.megaproxy.app.model.TlsProfile +import org.json.JSONArray +import org.json.JSONObject import java.security.KeyStore +import java.util.UUID import javax.crypto.Cipher import javax.crypto.KeyGenerator import javax.crypto.SecretKey @@ -16,44 +23,261 @@ import javax.crypto.spec.GCMParameterSpec class ConfigStore(context: Context) { private val prefs = context.getSharedPreferences("proxy_config", Context.MODE_PRIVATE) - fun load(): ProxyConfig = ProxyConfig( + @Synchronized + fun profiles(): List { + ensureMigrated() + val decoded = decodeProfiles(prefs.getString(PROFILES, null)).ifEmpty { listOf(createInitialProfile()) } + if (prefs.getInt(FLAG_COLOR_VERSION, 0) >= CURRENT_FLAG_COLOR_VERSION) return decoded + val recolored = decoded.map { profile -> + if (profile.countryCode.isEmpty()) profile + else profile.copy( + colorIndex = ProfileColorMatcher.colorIndexForFlag(profile.countryCode, profile.colorIndex), + ) + } + prefs.edit() + .putString(PROFILES, encodeProfiles(recolored)) + .putInt(FLAG_COLOR_VERSION, CURRENT_FLAG_COLOR_VERSION) + .apply() + return recolored + } + + fun activeProfile(): ProxyProfile = profile(activeProfileId()) ?: profiles().first() + + fun alwaysOnProfile(): ProxyProfile = profile(alwaysOnProfileId()) ?: profiles().first() + + fun profileSort(): ProfileSort = enumValue(prefs.getString(PROFILE_SORT, null), ProfileSort.NAME) + + fun isProfileSortAscending(): Boolean = prefs.getBoolean(PROFILE_SORT_ASCENDING, true) + + fun setProfileSort(sort: ProfileSort, ascending: Boolean) { + prefs.edit() + .putString(PROFILE_SORT, sort.name) + .putBoolean(PROFILE_SORT_ASCENDING, ascending) + .apply() + } + + fun sortedProfiles(): List { + val comparator = when (profileSort()) { + ProfileSort.NAME -> compareBy { it.displayName.lowercase() } + ProfileSort.HOST -> compareBy { it.config.host.lowercase() } + ProfileSort.COUNTRY -> compareBy { it.countryCode }.thenBy { it.displayName.lowercase() } + } + return profiles().sortedWith(if (isProfileSortAscending()) comparator else comparator.reversed()) + } + + fun profile(id: String): ProxyProfile? = profiles().firstOrNull { it.id == id } + + fun activeProfileId(): String { + ensureMigrated() + return prefs.getString(ACTIVE_PROFILE_ID, null) ?: profiles().first().id + } + + fun alwaysOnProfileId(): String { + ensureMigrated() + return prefs.getString(ALWAYS_ON_PROFILE_ID, null) ?: activeProfileId() + } + + fun setActiveProfile(id: String) { + if (profile(id) != null) prefs.edit().putString(ACTIVE_PROFILE_ID, id).apply() + } + + fun setAlwaysOnProfile(id: String) { + if (profile(id) != null) prefs.edit().putString(ALWAYS_ON_PROFILE_ID, id).apply() + } + + fun connectionProfile(): ProxyProfile = + profile(prefs.getString(CONNECTION_PROFILE_ID, null).orEmpty()) ?: activeProfile() + + fun setConnectionProfile(id: String) { + if (profile(id) != null) prefs.edit().putString(CONNECTION_PROFILE_ID, id).apply() + } + + @Synchronized + fun addProfile(): ProxyProfile { + val existing = profiles() + val profile = ProxyProfile( + id = UUID.randomUUID().toString(), + colorIndex = nextColorIndex(existing), + config = ProxyConfig(port = 443), + ) + writeProfiles(existing + profile) + return profile + } + + @Synchronized + fun cloneProfile(id: String): ProxyProfile? { + val existing = profiles() + val source = existing.firstOrNull { it.id == id } ?: return null + val clone = source.copy( + id = UUID.randomUUID().toString(), + name = "${source.displayName} copy", + ) + writeProfiles(existing + clone) + return clone + } + + @Synchronized + fun importProfiles(imported: List): List { + val existing = profiles() + val allocated = existing.toMutableList() + val added = imported.map { source -> + val profile = ProxyProfile( + id = UUID.randomUUID().toString(), + name = source.name, + colorIndex = ProfileColorMatcher.colorIndexForFlag( + source.countryCode, + nextColorIndex(allocated), + ), + countryCode = source.countryCode, + config = source.config, + ) + allocated += profile + profile + } + writeProfiles(existing + added) + return added + } + + @Synchronized + fun saveProfile(profile: ProxyProfile) { + val current = profiles() + val updated = current.map { if (it.id == profile.id) profile else it } + if (updated != current) writeProfiles(updated) + } + + @Synchronized + fun deleteProfile(id: String): Boolean { + val current = profiles() + if (current.size <= 1 || current.none { it.id == id }) return false + val remaining = current.filterNot { it.id == id } + val replacement = remaining.first().id + val editor = prefs.edit().putString(PROFILES, encodeProfiles(remaining)) + if (activeProfileId() == id) editor.putString(ACTIVE_PROFILE_ID, replacement) + if (alwaysOnProfileId() == id) editor.putString(ALWAYS_ON_PROFILE_ID, replacement) + editor.apply() + return true + } + + /** Compatibility accessor for callers that operate on the selected profile. */ + fun load(): ProxyConfig = activeProfile().config + + /** Compatibility writer for per-profile settings screens. */ + fun save(config: ProxyConfig) = saveProfile(activeProfile().copy(config = config)) + + fun isConnectionDesired(): Boolean = prefs.getBoolean("connection_desired", false) + + fun setConnectionDesired(desired: Boolean) { + prefs.edit().putBoolean("connection_desired", desired).apply() + } + + private fun ensureMigrated() { + if (prefs.contains(PROFILES)) return + synchronized(prefs) { + if (prefs.contains(PROFILES)) return + val profile = createInitialProfile() + prefs.edit() + .putString(PROFILES, encodeProfiles(listOf(profile))) + .putString(ACTIVE_PROFILE_ID, profile.id) + .putString(ALWAYS_ON_PROFILE_ID, profile.id) + .apply() + } + } + + private fun createInitialProfile(): ProxyProfile = ProxyProfile( + id = UUID.randomUUID().toString(), + colorIndex = 0, + config = legacyConfig(), + ) + + private fun legacyConfig() = ProxyConfig( host = prefs.getString("host", "").orEmpty(), port = prefs.getInt("port", 443), username = prefs.getString("username", "").orEmpty(), password = decrypt(prefs.getString("password", null)), - profile = runCatching { - TlsProfile.valueOf(prefs.getString("profile", TlsProfile.CHROME_ANDROID.name)!!) - }.getOrDefault(TlsProfile.CHROME_ANDROID), + allowInvalidProxyCertificate = false, + profile = enumValue(prefs.getString("profile", null), TlsProfile.CHROME_ANDROID), customJa3 = prefs.getString("custom_ja3", "").orEmpty(), - dnsProvider = runCatching { - DnsProvider.valueOf(prefs.getString("dns_provider", DnsProvider.CLOUDFLARE.name)!!) - }.getOrDefault(DnsProvider.CLOUDFLARE), + dnsProvider = enumValue(prefs.getString("dns_provider", null), DnsProvider.CLOUDFLARE), customDohUrl = prefs.getString("custom_doh_url", "").orEmpty(), selectedPackages = prefs.getStringSet("packages", emptySet())?.toSet().orEmpty(), allowIpv6 = prefs.getBoolean("allow_ipv6", false), + routeAllApps = false, + bypassLocalNetworks = true, ) - fun save(config: ProxyConfig) { - prefs.edit() - .putString("host", config.host.trim()) - .putInt("port", config.port) - .putString("username", config.username) - .putString("password", encrypt(config.password)) - .putString("profile", config.profile.name) - .putString("custom_ja3", config.customJa3.trim()) - .putString("dns_provider", config.dnsProvider.name) - .putString("custom_doh_url", config.customDohUrl.trim()) - .putStringSet("packages", config.selectedPackages) - .putBoolean("allow_ipv6", config.allowIpv6) - .apply() + private inline fun > enumValue(value: String?, default: T): T = + runCatching { enumValueOf(value ?: default.name) }.getOrDefault(default) + + private fun nextColorIndex(profiles: List): Int { + val counts = IntArray(ProfileColors.argb.size) + profiles.forEach { counts[Math.floorMod(it.colorIndex, counts.size)]++ } + return counts.indices.minWithOrNull(compareBy { counts[it] }.thenBy { it }) ?: 0 } - fun isConnectionDesired(): Boolean = prefs.getBoolean("connection_desired", false) + private fun writeProfiles(profiles: List) { + prefs.edit().putString(PROFILES, encodeProfiles(profiles)).apply() + } - fun setConnectionDesired(desired: Boolean) { - prefs.edit().putBoolean("connection_desired", desired).apply() + private fun encodeProfiles(profiles: List) = JSONArray().apply { + profiles.forEach { profile -> + put(JSONObject().apply { + put("id", profile.id) + put("name", profile.name.trim()) + put("color", profile.colorIndex) + put("countryCode", profile.countryCode.uppercase()) + put("config", encodeConfig(profile.config)) + }) + } + }.toString() + + private fun encodeConfig(config: ProxyConfig) = JSONObject().apply { + put("host", config.host.trim()) + put("port", config.port) + put("username", config.username) + put("password", encrypt(config.password)) + put("allowInvalidProxyCertificate", config.allowInvalidProxyCertificate) + put("fingerprint", config.profile.name) + put("customJa3", config.customJa3.trim()) + put("dnsProvider", config.dnsProvider.name) + put("customDohUrl", config.customDohUrl.trim()) + put("packages", JSONArray(config.selectedPackages.sorted())) + put("allowIpv6", config.allowIpv6) + put("routeAllApps", config.routeAllApps) + put("bypassLocalNetworks", config.bypassLocalNetworks) } + private fun decodeProfiles(value: String?): List = runCatching { + val array = JSONArray(value ?: return emptyList()) + List(array.length()) { index -> + val item = array.getJSONObject(index) + ProxyProfile( + id = item.getString("id"), + name = item.optString("name"), + colorIndex = item.optInt("color", index), + countryCode = item.optString("countryCode"), + config = decodeConfig(item.getJSONObject("config")), + ) + } + }.getOrDefault(emptyList()) + + private fun decodeConfig(item: JSONObject) = ProxyConfig( + host = item.optString("host"), + port = item.optInt("port", 443), + username = item.optString("username"), + password = decrypt(item.optString("password").ifEmpty { null }), + allowInvalidProxyCertificate = item.optBoolean("allowInvalidProxyCertificate", false), + profile = enumValue(item.optString("fingerprint"), TlsProfile.CHROME_ANDROID), + customJa3 = item.optString("customJa3"), + dnsProvider = enumValue(item.optString("dnsProvider"), DnsProvider.CLOUDFLARE), + customDohUrl = item.optString("customDohUrl"), + selectedPackages = item.optJSONArray("packages")?.let { array -> + (0 until array.length()).map { array.getString(it) }.toSet() + }.orEmpty(), + allowIpv6 = item.optBoolean("allowIpv6", false), + routeAllApps = item.optBoolean("routeAllApps", false), + bypassLocalNetworks = item.optBoolean("bypassLocalNetworks", true), + ) + private fun key(): SecretKey { val store = KeyStore.getInstance("AndroidKeyStore").apply { load(null) } (store.getKey(KEY_ALIAS, null) as? SecretKey)?.let { return it } @@ -69,8 +293,7 @@ class ConfigStore(context: Context) { private fun encrypt(plain: String): String { val cipher = Cipher.getInstance("AES/GCM/NoPadding") cipher.init(Cipher.ENCRYPT_MODE, key()) - val packed = cipher.iv + cipher.doFinal(plain.toByteArray(Charsets.UTF_8)) - return Base64.encodeToString(packed, Base64.NO_WRAP) + return Base64.encodeToString(cipher.iv + cipher.doFinal(plain.toByteArray(Charsets.UTF_8)), Base64.NO_WRAP) } private fun decrypt(packed: String?): String = runCatching { @@ -85,5 +308,13 @@ class ConfigStore(context: Context) { private companion object { const val KEY_ALIAS = "megaproxy.proxy.credentials.v1" const val IV_SIZE = 12 + const val PROFILES = "profiles_v2" + const val ACTIVE_PROFILE_ID = "active_profile_id" + const val ALWAYS_ON_PROFILE_ID = "always_on_profile_id" + const val CONNECTION_PROFILE_ID = "connection_profile_id" + const val FLAG_COLOR_VERSION = "flag_color_version" + const val CURRENT_FLAG_COLOR_VERSION = 1 + const val PROFILE_SORT = "profile_sort" + const val PROFILE_SORT_ASCENDING = "profile_sort_ascending" } } diff --git a/app/src/main/java/dev/megaproxy/app/data/ProxyListParser.kt b/app/src/main/java/dev/megaproxy/app/data/ProxyListParser.kt new file mode 100644 index 0000000..98ba624 --- /dev/null +++ b/app/src/main/java/dev/megaproxy/app/data/ProxyListParser.kt @@ -0,0 +1,61 @@ +package dev.megaproxy.app.data + +import dev.megaproxy.app.model.ProxyConfig +import java.net.URI +import java.net.URLDecoder +import java.nio.charset.StandardCharsets + +data class ImportedProxy(val name: String, val countryCode: String, val config: ProxyConfig) +data class ProxyListImportResult(val proxies: List, val skippedNonHttps: Int) + +object ProxyListParser { + fun parse(text: String): Result = runCatching { + val lines = text.lineSequence().map(String::trim) + .filter { it.isNotEmpty() && !it.startsWith("#") }.toList() + require(lines.isNotEmpty()) { "The proxy list is empty" } + var skippedNonHttps = 0 + val proxies = lines.mapIndexedNotNull { index, line -> + val uri = runCatching { URI(line) }.getOrElse { error("Line ${index + 1} is not a valid URI") } + if (!uri.scheme.equals("https", ignoreCase = true)) { + skippedNonHttps++ + null + } else { + parseLine(uri, index + 1) + } + } + ProxyListImportResult(proxies, skippedNonHttps) + } + + private fun parseLine(uri: URI, lineNumber: Int): ImportedProxy { + val host = uri.host?.takeIf(String::isNotBlank) ?: error("Line $lineNumber has no proxy host") + val userInfo = uri.rawUserInfo ?: error("Line $lineNumber has no Basic Auth credentials") + val separator = userInfo.indexOf(':') + require(separator >= 0) { "Line $lineNumber has no Basic Auth password" } + val username = decodeUriComponent(userInfo.substring(0, separator)) + val password = decodeUriComponent(userInfo.substring(separator + 1)) + val query = parseQuery(uri.rawQuery) + return ImportedProxy( + name = query["title"].orEmpty(), + countryCode = query["cc"].orEmpty().uppercase() + .takeIf { it.matches(Regex("[A-Z]{2}")) }.orEmpty(), + config = ProxyConfig( + host = host, + port = if (uri.port == -1) 443 else uri.port, + username = username, + password = password, + ), + ) + } + + private fun parseQuery(rawQuery: String?): Map = rawQuery.orEmpty() + .split('&').filter(String::isNotEmpty).associate { pair -> + val separator = pair.indexOf('=') + if (separator < 0) decode(pair) to "" + else decode(pair.substring(0, separator)) to decode(pair.substring(separator + 1)) + } + + private fun decode(value: String): String = + URLDecoder.decode(value, StandardCharsets.UTF_8.name()) + + private fun decodeUriComponent(value: String): String = decode(value.replace("+", "%2B")) +} diff --git a/app/src/main/java/dev/megaproxy/app/model/ProfileColorMatcher.kt b/app/src/main/java/dev/megaproxy/app/model/ProfileColorMatcher.kt new file mode 100644 index 0000000..61ae2fe --- /dev/null +++ b/app/src/main/java/dev/megaproxy/app/model/ProfileColorMatcher.kt @@ -0,0 +1,50 @@ +package dev.megaproxy.app.model + +import android.graphics.Bitmap +import android.graphics.Canvas +import android.graphics.Color +import android.graphics.Paint + +object ProfileColorMatcher { + fun colorIndexForFlag(countryCode: String, fallback: Int): Int { + val profile = ProxyProfile(id = "color-sample", colorIndex = fallback, countryCode = countryCode) + val flag = profile.flagEmoji + if (flag.isEmpty()) return fallback + + val bitmap = Bitmap.createBitmap(BITMAP_SIZE, BITMAP_SIZE, Bitmap.Config.ARGB_8888) + val paint = Paint(Paint.ANTI_ALIAS_FLAG).apply { + textSize = TEXT_SIZE + textAlign = Paint.Align.CENTER + } + Canvas(bitmap).drawText(flag, BITMAP_SIZE / 2f, BASELINE, paint) + + val votes = IntArray(ProfileColors.argb.size) + val pixels = IntArray(BITMAP_SIZE * BITMAP_SIZE) + bitmap.getPixels(pixels, 0, BITMAP_SIZE, 0, 0, BITMAP_SIZE, BITMAP_SIZE) + bitmap.recycle() + pixels.forEach { pixel -> + if (Color.alpha(pixel) < 96) return@forEach + val red = Color.red(pixel) + val green = Color.green(pixel) + val blue = Color.blue(pixel) + val max = maxOf(red, green, blue) + val min = minOf(red, green, blue) + if (max > 242 && min > 242) return@forEach + if (max - min < 24) return@forEach + val nearest = ProfileColors.argb.indices.minByOrNull { index -> + val candidate = ProfileColors.argb[index].toInt() + squared(red - Color.red(candidate)) + + squared(green - Color.green(candidate)) + + squared(blue - Color.blue(candidate)) + } ?: return@forEach + votes[nearest]++ + } + return votes.indices.maxByOrNull { votes[it] }?.takeIf { votes[it] > 0 } ?: fallback + } + + private fun squared(value: Int) = value * value + + private const val BITMAP_SIZE = 96 + private const val TEXT_SIZE = 72f + private const val BASELINE = 72f +} diff --git a/app/src/main/java/dev/megaproxy/app/model/ProxyConfig.kt b/app/src/main/java/dev/megaproxy/app/model/ProxyConfig.kt index ca222be..803d8dc 100644 --- a/app/src/main/java/dev/megaproxy/app/model/ProxyConfig.kt +++ b/app/src/main/java/dev/megaproxy/app/model/ProxyConfig.kt @@ -5,12 +5,15 @@ data class ProxyConfig( val port: Int = 443, val username: String = "", val password: String = "", + val allowInvalidProxyCertificate: Boolean = false, val profile: TlsProfile = TlsProfile.CHROME_ANDROID, val customJa3: String = "", val dnsProvider: DnsProvider = DnsProvider.CLOUDFLARE, val customDohUrl: String = "", val selectedPackages: Set = emptySet(), val allowIpv6: Boolean = false, + val routeAllApps: Boolean = false, + val bypassLocalNetworks: Boolean = true, val resolvedProxyIp: String = "", ) { fun connectionValidationError(): String? = when { @@ -27,7 +30,45 @@ data class ProxyConfig( } fun validationError(): String? = connectionValidationError() - ?: if (selectedPackages.isEmpty()) "Select at least one application" else null + ?: if (!routeAllApps && selectedPackages.isEmpty()) "Select at least one application" else null +} + +data class ProxyProfile( + val id: String, + val name: String = "", + val colorIndex: Int, + val countryCode: String = "", + val config: ProxyConfig = ProxyConfig(), +) { + val displayName: String + get() = name.trim().ifEmpty { config.host.trim().ifEmpty { "New profile" } } + + val flagEmoji: String + get() { + val code = countryCode.uppercase() + if (!code.matches(Regex("[A-Z]{2}"))) return "" + return code.map { character -> + String(Character.toChars(0x1F1E6 + character.code - 'A'.code)) + }.joinToString("") + } + + val displayNameWithFlag: String + get() = listOf(flagEmoji, displayName).filter(String::isNotEmpty).joinToString(" ") +} + +object ProfileColors { + // Material Design 500 palette, excluding colors with poor contrast in light themes. + val argb = listOf( + 0xFFF44336, 0xFFE91E63, 0xFF9C27B0, 0xFF673AB7, + 0xFF3F51B5, 0xFF2196F3, 0xFF009688, 0xFF4CAF50, + 0xFF8BC34A, 0xFFFF9800, 0xFFFF5722, 0xFF795548, + ) +} + +enum class ProfileSort(val title: String) { + NAME("Name"), + HOST("Host"), + COUNTRY("Country"), } enum class DnsProvider(val title: String, val url: String) { diff --git a/app/src/main/java/dev/megaproxy/app/vpn/AlwaysOnVpnStatus.kt b/app/src/main/java/dev/megaproxy/app/vpn/AlwaysOnVpnStatus.kt new file mode 100644 index 0000000..46d0aec --- /dev/null +++ b/app/src/main/java/dev/megaproxy/app/vpn/AlwaysOnVpnStatus.kt @@ -0,0 +1,19 @@ +package dev.megaproxy.app.vpn + +import android.content.Context +import android.provider.Settings + +data class AlwaysOnVpnStatus( + val enabled: Boolean, + val lockdown: Boolean, +) + +fun readAlwaysOnVpnStatus(context: Context): AlwaysOnVpnStatus { + val enabled = runCatching { + Settings.Secure.getString(context.contentResolver, "always_on_vpn_app") == context.packageName + }.getOrDefault(ProxyVpnService.isAlwaysOnMode) + val lockdown = enabled && runCatching { + Settings.Secure.getInt(context.contentResolver, "always_on_vpn_lockdown", 0) == 1 + }.getOrDefault(ProxyVpnService.isLockdownMode) + return AlwaysOnVpnStatus(enabled, lockdown) +} diff --git a/app/src/main/java/dev/megaproxy/app/vpn/ProxyCore.kt b/app/src/main/java/dev/megaproxy/app/vpn/ProxyCore.kt index 6e0cb59..6033764 100644 --- a/app/src/main/java/dev/megaproxy/app/vpn/ProxyCore.kt +++ b/app/src/main/java/dev/megaproxy/app/vpn/ProxyCore.kt @@ -26,10 +26,12 @@ class NativeProxyCore( .put("port", config.port) .put("username", config.username) .put("password", config.password) + .put("allowInvalidProxyCertificate", config.allowInvalidProxyCertificate) .put("profile", config.profile.name) .put("customJa3", config.customJa3.trim()) .put("dohUrl", if (config.dnsProvider.url.isNotEmpty()) config.dnsProvider.url else config.customDohUrl.trim()) .put("allowIpv6", config.allowIpv6) + .put("bypassLocalNetworks", config.bypassLocalNetworks) .toString() private fun callback(type: Class<*>, methodName: String, callback: (Array?) -> Any?) = diff --git a/app/src/main/java/dev/megaproxy/app/vpn/ProxyVpnService.kt b/app/src/main/java/dev/megaproxy/app/vpn/ProxyVpnService.kt index 3d932dc..46129d8 100644 --- a/app/src/main/java/dev/megaproxy/app/vpn/ProxyVpnService.kt +++ b/app/src/main/java/dev/megaproxy/app/vpn/ProxyVpnService.kt @@ -57,7 +57,15 @@ class ProxyVpnService : VpnService() { isAlwaysOnMode = isAlwaysOn isLockdownMode = isLockdownEnabled } - if (isAlwaysOnMode) ConfigStore(this).setConnectionDesired(true) + val store = ConfigStore(this) + if (isAlwaysOnMode && intent?.action != ACTION_START_MANUAL) { + store.setConnectionDesired(true) + store.setConnectionProfile(store.alwaysOnProfileId()) + } + if (intent?.action == ACTION_START_MANUAL) { + store.setConnectionProfile(store.activeProfileId()) + } + VpnRuntimeState.updateSystem(isAlwaysOnMode, isLockdownMode, store.connectionProfile().id) if (intent?.action == ACTION_STOP) { stopTunnel() stopSelf() @@ -88,7 +96,7 @@ class ProxyVpnService : VpnService() { TestDiagnosticLog.add("Connection test is already running") return } - val storedConfig = ConfigStore(this).load() + val storedConfig = ConfigStore(this).activeProfile().config storedConfig.connectionValidationError()?.let { TestDiagnosticLog.fail("Connection test cannot start: $it") testRunning.set(false) @@ -120,9 +128,14 @@ class ProxyVpnService : VpnService() { } private fun startTunnel(testOnly: Boolean, suppliedConfig: dev.megaproxy.app.model.ProxyConfig? = null): Boolean { - val storedConfig = suppliedConfig ?: ConfigStore(this).load() + val storedProfile = ConfigStore(this).connectionProfile() + val storedConfig = suppliedConfig ?: storedProfile.config val diagnostics = if (testOnly) TestDiagnosticLog::add else DiagnosticLog::add - diagnostics(if (testOnly) "Starting temporary VPN for connection test" else "Starting VPN for ${storedConfig.selectedPackages.size} selected application(s)") + diagnostics( + if (testOnly) "Starting temporary VPN for connection test" + else if (storedConfig.routeAllApps) "Starting global VPN with profile ${storedProfile.displayName}" + else "Starting VPN with profile ${storedProfile.displayName} for ${storedConfig.selectedPackages.size} selected application(s)" + ) val validationError = if (testOnly) storedConfig.connectionValidationError() else storedConfig.validationError() validationError?.let { if (testOnly) TestDiagnosticLog.fail(it) else { @@ -142,7 +155,11 @@ class ProxyVpnService : VpnService() { .addRoute("::", 0) .addDnsServer("10.77.0.2") .setBlocking(true) - val allowedPackages = if (testOnly) setOf(packageName) else storedConfig.selectedPackages + val allowedPackages = when { + testOnly -> setOf(packageName) + storedConfig.routeAllApps -> emptySet() + else -> storedConfig.selectedPackages + } allowedPackages.forEach { packageName -> runCatching { builder.addAllowedApplication(packageName) } } @@ -247,6 +264,7 @@ class ProxyVpnService : VpnService() { private const val NOTIFICATION_ID = 101 private const val ACTION_STOP = "dev.megaproxy.STOP" private const val ACTION_TEST = "dev.megaproxy.TEST" + private const val ACTION_START_MANUAL = "dev.megaproxy.START_MANUAL" private const val MONITOR_INTERVAL_MS = 10_000L private val testRunning = AtomicBoolean(false) private val startRunning = AtomicBoolean(false) @@ -259,7 +277,10 @@ class ProxyVpnService : VpnService() { fun start(context: Context) { ConfigStore(context).setConnectionDesired(true) - ContextCompat.startForegroundService(context, Intent(context, ProxyVpnService::class.java)) + ContextCompat.startForegroundService( + context, + Intent(context, ProxyVpnService::class.java).setAction(ACTION_START_MANUAL), + ) } fun stop(context: Context) { ConfigStore(context).setConnectionDesired(false) diff --git a/app/src/main/java/dev/megaproxy/app/vpn/VpnRuntimeState.kt b/app/src/main/java/dev/megaproxy/app/vpn/VpnRuntimeState.kt index 63a9bce..de4b4da 100644 --- a/app/src/main/java/dev/megaproxy/app/vpn/VpnRuntimeState.kt +++ b/app/src/main/java/dev/megaproxy/app/vpn/VpnRuntimeState.kt @@ -13,9 +13,23 @@ object VpnRuntimeState { if (ProxyVpnService.isRunning) VpnConnectionState.CONNECTED else VpnConnectionState.DISCONNECTED, ) val connection: State = mutableConnection + private val mutableAlwaysOn = mutableStateOf(ProxyVpnService.isAlwaysOnMode) + private val mutableLockdown = mutableStateOf(ProxyVpnService.isLockdownMode) + private val mutableConnectionProfileId = mutableStateOf("") + val alwaysOn: State = mutableAlwaysOn + val lockdown: State = mutableLockdown + val connectionProfileId: State = mutableConnectionProfileId fun update(value: VpnConnectionState) { if (Looper.myLooper() == Looper.getMainLooper()) mutableConnection.value = value else mainHandler.post { mutableConnection.value = value } } + + fun updateSystem(alwaysOn: Boolean, lockdown: Boolean, connectionProfileId: String) { + mainHandler.post { + mutableAlwaysOn.value = alwaysOn + mutableLockdown.value = lockdown + mutableConnectionProfileId.value = connectionProfileId + } + } } diff --git a/app/src/test/java/dev/megaproxy/app/data/ProxyListParserTest.kt b/app/src/test/java/dev/megaproxy/app/data/ProxyListParserTest.kt new file mode 100644 index 0000000..36168b5 --- /dev/null +++ b/app/src/test/java/dev/megaproxy/app/data/ProxyListParserTest.kt @@ -0,0 +1,40 @@ +package dev.megaproxy.app.data + +import org.junit.Assert.assertEquals +import org.junit.Assert.assertTrue +import org.junit.Test + +class ProxyListParserTest { + @Test + fun parsesHttpsProxyUriAndTitle() { + val result = ProxyListParser.parse( + "https://user:p%40ss%3Aword@example.com:8443?title=Amsterdam&cc=NL", + ).getOrThrow().proxies.single() + + assertEquals("Amsterdam", result.name) + assertEquals("NL", result.countryCode) + assertEquals("example.com", result.config.host) + assertEquals(8443, result.config.port) + assertEquals("user", result.config.username) + assertEquals("p@ss:word", result.config.password) + assertTrue(!result.config.routeAllApps) + } + + @Test + fun preservesLiteralPlusInBasicAuthAndDefaultsPort() { + val result = ProxyListParser.parse("https://user:abc+123@example.com").getOrThrow().proxies.single() + + assertEquals(443, result.config.port) + assertEquals("abc+123", result.config.password) + } + + @Test + fun skipsNonHttpsProxyAndReportsIt() { + val result = ProxyListParser.parse( + "https://user:password@example.com\nhttp://user:password@example.net:8080", + ).getOrThrow() + + assertEquals(1, result.proxies.size) + assertEquals(1, result.skippedNonHttps) + } +} diff --git a/app/src/test/java/dev/megaproxy/app/model/ProxyConfigTest.kt b/app/src/test/java/dev/megaproxy/app/model/ProxyConfigTest.kt new file mode 100644 index 0000000..94e5db2 --- /dev/null +++ b/app/src/test/java/dev/megaproxy/app/model/ProxyConfigTest.kt @@ -0,0 +1,23 @@ +package dev.megaproxy.app.model + +import org.junit.Assert.assertEquals +import org.junit.Assert.assertNull +import org.junit.Test + +class ProxyConfigTest { + private val validConnection = ProxyConfig( + host = "proxy.example.com", + username = "user", + password = "password", + ) + + @Test + fun splitTunnelingRequiresAnApplication() { + assertEquals("Select at least one application", validConnection.validationError()) + } + + @Test + fun globalVpnDoesNotRequireSelectedApplications() { + assertNull(validConnection.copy(routeAllApps = true).validationError()) + } +} diff --git a/native/mobile/config.go b/native/mobile/config.go index 25e3795..97edba6 100644 --- a/native/mobile/config.go +++ b/native/mobile/config.go @@ -12,15 +12,17 @@ import ( ) type config struct { - Host string `json:"host"` - DialHost string `json:"dialHost"` - Port int `json:"port"` - Username string `json:"username"` - Password string `json:"password"` - Profile string `json:"profile"` - CustomJA3 string `json:"customJa3"` - DoHURL string `json:"dohUrl"` - AllowIPv6 bool `json:"allowIpv6"` + Host string `json:"host"` + DialHost string `json:"dialHost"` + Port int `json:"port"` + Username string `json:"username"` + Password string `json:"password"` + AllowInvalidProxyCertificate bool `json:"allowInvalidProxyCertificate"` + Profile string `json:"profile"` + CustomJA3 string `json:"customJa3"` + DoHURL string `json:"dohUrl"` + AllowIPv6 bool `json:"allowIpv6"` + BypassLocalNetworks bool `json:"bypassLocalNetworks"` } func parseConfig(raw string) (config, error) { diff --git a/native/mobile/dialer.go b/native/mobile/dialer.go index cf3abcd..3b76a2f 100644 --- a/native/mobile/dialer.go +++ b/native/mobile/dialer.go @@ -43,23 +43,18 @@ func (d *httpsConnectDialer) connectTarget(ctx context.Context, target string) ( } } } - report(d.reporter, "CONNECT %s: opening TCP connection to proxy %s via %s", target, d.config.displayAddress(), d.config.address()) - upstream := net.Dialer{ - Timeout: 15 * time.Second, - KeepAlive: 30 * time.Second, - Control: func(_, _ string, raw syscall.RawConn) error { - var protectErr error - if err := raw.Control(func(fd uintptr) { - if !d.protector.Protect(int(fd)) { - protectErr = errors.New("VpnService.protect rejected upstream socket") - } - }); err != nil { - return err - } - return protectErr - }, + if d.config.BypassLocalNetworks && isLocalNetworkTarget(target) { + report(d.reporter, "DIRECT %s: bypassing proxy for local network", target) + connection, err := d.protectedDialer().DialContext(ctx, "tcp", target) + if err != nil { + err = fmt.Errorf("dial local network directly: %w", err) + report(d.reporter, "DIRECT %s failed: %v", target, err) + return nil, err + } + return &diagnosticConn{Conn: connection, target: target, reporter: d.reporter}, nil } - raw, err := upstream.DialContext(ctx, "tcp", d.config.address()) + report(d.reporter, "CONNECT %s: opening TCP connection to proxy %s via %s", target, d.config.displayAddress(), d.config.address()) + raw, err := d.protectedDialer().DialContext(ctx, "tcp", d.config.address()) if err != nil { err = fmt.Errorf("dial HTTPS proxy: %w", err) report(d.reporter, "CONNECT %s failed: %v", target, err) @@ -79,8 +74,9 @@ func (d *httpsConnectDialer) connectTarget(ctx context.Context, target string) ( return nil, err } uconn := tls.UClient(raw, &tls.Config{ - ServerName: d.config.Host, - MinVersion: tls.VersionTLS12, + ServerName: d.config.Host, + MinVersion: tls.VersionTLS12, + InsecureSkipVerify: d.config.AllowInvalidProxyCertificate, }, hello) if hello == tls.HelloCustom { if err := applyJA3(uconn, d.config.CustomJA3, d.config.Host); err != nil { @@ -124,6 +120,36 @@ func (d *httpsConnectDialer) connectTarget(ctx context.Context, target string) ( return &diagnosticConn{Conn: connection, target: target, reporter: d.reporter}, nil } +func (d *httpsConnectDialer) protectedDialer() *net.Dialer { + return &net.Dialer{ + Timeout: 15 * time.Second, + KeepAlive: 30 * time.Second, + Control: func(_, _ string, raw syscall.RawConn) error { + var protectErr error + if err := raw.Control(func(fd uintptr) { + if !d.protector.Protect(int(fd)) { + protectErr = errors.New("VpnService.protect rejected upstream socket") + } + }); err != nil { + return err + } + return protectErr + }, + } +} + +func isLocalNetworkTarget(target string) bool { + host, _, err := net.SplitHostPort(target) + if err != nil { + return false + } + ip := net.ParseIP(host) + if ip == nil { + return false + } + return ip.IsPrivate() || ip.IsLoopback() || ip.IsLinkLocalUnicast() +} + func (d *httpsConnectDialer) DialUDP(metadata *M.Metadata) (net.PacketConn, error) { if metadata.DstPort != 53 { return nil, errUDPBlocked diff --git a/native/mobile/dialer_test.go b/native/mobile/dialer_test.go new file mode 100644 index 0000000..3b06e29 --- /dev/null +++ b/native/mobile/dialer_test.go @@ -0,0 +1,29 @@ +package mobile + +import "testing" + +func TestLocalNetworkTargets(t *testing.T) { + local := []string{ + "10.0.0.1:443", + "172.16.0.1:80", + "192.168.1.20:8080", + "127.0.0.1:3000", + "169.254.1.1:22", + "[fd00::1]:443", + "[fe80::1]:443", + } + for _, target := range local { + if !isLocalNetworkTarget(target) { + t.Errorf("expected local target: %s", target) + } + } +} + +func TestPublicAndHostnameTargetsAreNotLocal(t *testing.T) { + public := []string{"1.1.1.1:443", "8.8.8.8:53", "example.com:443", "[2606:4700:4700::1111]:443"} + for _, target := range public { + if isLocalNetworkTarget(target) { + t.Errorf("expected non-local target: %s", target) + } + } +} From 322cca46517bf99f513266f387385859b04fa0d5 Mon Sep 17 00:00:00 2001 From: Andrey Prokopyuk Date: Mon, 31 Aug 2026 23:47:37 +0300 Subject: [PATCH 04/41] Add connection stats --- app/libs/megaproxy-sources.jar | Bin 6612 -> 6656 bytes .../java/dev/megaproxy/app/MainActivity.kt | 185 +++++++++++++++--- .../java/dev/megaproxy/app/vpn/ProxyCore.kt | 24 +++ .../dev/megaproxy/app/vpn/ProxyVpnService.kt | 13 +- .../dev/megaproxy/app/vpn/VpnRuntimeState.kt | 3 +- native/mobile/dialer.go | 16 ++ native/mobile/mobile.go | 1 + native/mobile/stats.go | 101 ++++++++++ native/mobile/stats_test.go | 38 ++++ 9 files changed, 352 insertions(+), 29 deletions(-) create mode 100644 native/mobile/stats.go create mode 100644 native/mobile/stats_test.go diff --git a/app/libs/megaproxy-sources.jar b/app/libs/megaproxy-sources.jar index 0dc4dbf9c888744f7b646a87014ad469003dac50..4f2a5d7785046a146f80ebe2f97e45ea5370fbe3 100644 GIT binary patch delta 839 zcmV-N1GxOuGk`R(uM&SzZ`(!;e%Ad80s{uS$gGDw4Mu?taT~P2k|0i>2l_-wx15eD zkFuKu`R~J>Pl>a2U4d=D{9p?v@B2P}Bu{k>=iCr<6i861f!#fHymO&h!R87suWsSZ z=H2ben7W4dxJR%aV}yZs&eQ7W`~xlm!YKUd9$FSq^mi_FpbUQq7n~xU;IJ}vonQcP zQvM7jeCIKAuYXN64eeJ0b(m4>fa>;CA6dTu^NCDt`$o@ACq@2P=ScmUR(1a>@y21;QuIhSZ0 zdiNWF_AbsbQED#(e?;{TM^x`4hol}*1ERpDfx;5nXroY9UjE+`1KVH(z^s!Ub=c(o@H*ANu>&v}0?*qfZ1%rjL5`ICrTuorwo z?cxY^mW^1hpK^qBl5j%wcqDr%fAK742@e@#bvy#E=d+nE&C1>92w}!ON-u`)m_1=g zW+fjMoD0Ito+gZJ^)Zl2M8&s5kUh3007#vkrj9Y2`Q)%K?4H-0NRrh8Bqej6_c<007_%n1uiU delta 794 zcmV+#1LgdHG}JS&uM&S>Z{tJ|fA)Tgk&sYQ75jlF6rBWW?@l1mR!w-E?ky58~4 zj?*huzdPE^rb*#AkN}Ci#LCY8{>_ZjG;qNk!hiwADt6F5!oV$su7=BNxVpZBx0m1F z)y6ap{9tz$oVPK;#4UNOf6QM%5iHEYA0MG-0k!^~!T`!(;XQw+lR@lMo2E%H0CrLS z1SNdsZ5ZDCl4v^I)e{ajqc*`R?XcOin%TO0J75v9F@~m@MPcB2iyt<|%uDOZfo-FT zby_qRu}`LoYL#4iswL!_Y9#dh{K;}tdIqN-k&&F>eibi2rq6S9M} zk)xijLxE>GX`__H)>*_ugts3Z&Pp6MM<-jgqM-I3Bk)5&i6hOxJy__L*^^7_%01{3 z-d)0oKEJNN3!N}^Uw-lRH=77IRvh|w(null) } @@ -89,10 +97,15 @@ private fun MainScreen(activity: Activity) { var profiles by remember { mutableStateOf(store.sortedProfiles()) } var activeProfileId by remember { mutableStateOf(store.activeProfileId()) } var connectionProfileId by remember { mutableStateOf(store.connectionProfile().id) } + var connectionStats by remember { mutableStateOf(null) } + var systemVpnStatus by remember { mutableStateOf(readAlwaysOnVpnStatus(activity)) } + val alwaysOn = runtimeAlwaysOn || systemVpnStatus.enabled + val lockdown = runtimeLockdown || systemVpnStatus.lockdown val lifecycleOwner = LocalLifecycleOwner.current DisposableEffect(lifecycleOwner) { val observer = LifecycleEventObserver { _, event -> if (event == Lifecycle.Event.ON_RESUME) { + systemVpnStatus = readAlwaysOnVpnStatus(activity) profiles = store.sortedProfiles() activeProfileId = store.activeProfileId() connectionProfileId = if (readAlwaysOnVpnStatus(activity).enabled) { @@ -105,14 +118,51 @@ private fun MainScreen(activity: Activity) { lifecycleOwner.lifecycle.addObserver(observer) onDispose { lifecycleOwner.lifecycle.removeObserver(observer) } } + LaunchedEffect(alwaysOn) { + if (alwaysOn) profileMenuExpanded = false + } + LaunchedEffect(lifecycleOwner, connection) { + if (connection != VpnConnectionState.CONNECTED) { + connectionStats = null + return@LaunchedEffect + } + lifecycleOwner.lifecycle.repeatOnLifecycle(Lifecycle.State.STARTED) { + var previous: NativeConnectionStats? = null + var smoothedDownload = 0.0 + var smoothedUpload = 0.0 + while (true) { + val snapshot = ConnectionStatsReader.snapshot() + if (snapshot != null) { + previous?.let { old -> + val download = (snapshot.downloadBytes - old.downloadBytes).coerceAtLeast(0).toDouble() + val upload = (snapshot.uploadBytes - old.uploadBytes).coerceAtLeast(0).toDouble() + val alpha = 0.35 + smoothedDownload = if (smoothedDownload == 0.0) download else alpha * download + (1 - alpha) * smoothedDownload + smoothedUpload = if (smoothedUpload == 0.0) upload else alpha * upload + (1 - alpha) * smoothedUpload + } + previous = snapshot + connectionStats = DisplayedConnectionStats(snapshot, smoothedDownload, smoothedUpload) + } + delay(1_000) + } + } + } val vpnPermission = rememberLauncherForActivityResult(ActivityResultContracts.StartActivityForResult()) { - if (it.resultCode == Activity.RESULT_OK) ProxyVpnService.start(activity) - else error = "VPN permission is required" + if (it.resultCode == Activity.RESULT_OK) { + if (!isAlwaysOnVpnActive(activity)) ProxyVpnService.start(activity) else error = null + } else { + error = "VPN permission is required" + } } val notificationPermission = rememberLauncherForActivityResult(ActivityResultContracts.RequestPermission()) { } val connect = { - error = store.activeProfile().config.validationError() - if (error == null) { + if (isAlwaysOnVpnActive(activity)) { + systemVpnStatus = readAlwaysOnVpnStatus(activity) + error = null + } else { + error = store.activeProfile().config.validationError() + } + if (error == null && !isAlwaysOnVpnActive(activity)) { if (Build.VERSION.SDK_INT >= 33) notificationPermission.launch(Manifest.permission.POST_NOTIFICATIONS) val intent = VpnService.prepare(activity) if (intent == null) ProxyVpnService.start(activity) else vpnPermission.launch(intent) @@ -157,20 +207,27 @@ private fun MainScreen(activity: Activity) { } } Spacer(Modifier.height(24.dp)) + connectionStats?.let { stats -> + ConnectionStatsCard(stats) + Spacer(Modifier.height(12.dp)) + } val displayedProfileId = if (alwaysOn) runtimeProfileId.ifEmpty { connectionProfileId } else activeProfileId val activeProfile = profiles.firstOrNull { it.id == displayedProfileId } ?: profiles.first() val profileColor = Color(ProfileColors.argb[Math.floorMod(activeProfile.colorIndex, ProfileColors.argb.size)]) val onProfileColor = if (profileColor.luminance() > 0.45f) Color.Black else Color.White - Card( - Modifier.fillMaxWidth().clickable(enabled = !alwaysOn) { profileMenuExpanded = true }, - colors = CardDefaults.cardColors( - containerColor = profileColor, - contentColor = onProfileColor, - disabledContainerColor = profileColor, - disabledContentColor = onProfileColor, - ), - ) { - Column(Modifier.fillMaxWidth().padding(14.dp)) { + Box(Modifier.fillMaxWidth()) { + Card( + Modifier.fillMaxWidth().clickable(enabled = !alwaysOn) { + if (!isAlwaysOnVpnActive(activity)) profileMenuExpanded = true + }, + colors = CardDefaults.cardColors( + containerColor = profileColor, + contentColor = onProfileColor, + disabledContainerColor = profileColor, + disabledContentColor = onProfileColor, + ), + ) { + Column(Modifier.fillMaxWidth().padding(14.dp)) { Text("Profile", style = MaterialTheme.typography.labelMedium) Row( verticalAlignment = Alignment.CenterVertically, @@ -188,24 +245,43 @@ private fun MainScreen(activity: Activity) { } Text(activeProfile.displayName, style = MaterialTheme.typography.titleMedium) } - DropdownMenu(profileMenuExpanded, { profileMenuExpanded = false }) { - profiles.forEach { profile -> - DropdownMenuItem( - text = { Text(profile.displayNameWithFlag) }, - onClick = { - store.setActiveProfile(profile.id) - activeProfileId = profile.id - profileMenuExpanded = false - }, - ) + DropdownMenu(profileMenuExpanded, { profileMenuExpanded = false }) { + profiles.forEach { profile -> + DropdownMenuItem( + text = { Text(profile.displayNameWithFlag) }, + onClick = { + if (!isAlwaysOnVpnActive(activity)) { + store.setActiveProfile(profile.id) + activeProfileId = profile.id + } + profileMenuExpanded = false + }, + ) + } } } } + if (alwaysOn) { + Box( + Modifier.matchParentSize() + .background(Color.Gray.copy(alpha = 0.62f), RoundedCornerShape(12.dp)) + .clickable(onClick = {}), + contentAlignment = Alignment.Center, + ) { + Text( + "Profile locked by Always-on VPN", + color = Color.White, + style = MaterialTheme.typography.labelLarge, + ) + } + } } Spacer(Modifier.height(12.dp)) Button( onClick = { - if (connected) { + if (isAlwaysOnVpnActive(activity)) { + systemVpnStatus = readAlwaysOnVpnStatus(activity) + } else if (connected) { ProxyVpnService.stop(activity) } else { connect() @@ -236,3 +312,58 @@ private fun MainScreen(activity: Activity) { } } } + +private fun isAlwaysOnVpnActive(activity: Activity): Boolean = + ProxyVpnService.isAlwaysOnMode || readAlwaysOnVpnStatus(activity).enabled + +private data class DisplayedConnectionStats( + val native: NativeConnectionStats, + val downloadBytesPerSecond: Double, + val uploadBytesPerSecond: Double, +) + +@Composable +private fun ConnectionStatsCard(stats: DisplayedConnectionStats) { + Card(Modifier.fillMaxWidth()) { + Row( + Modifier.fillMaxWidth().padding(14.dp), + horizontalArrangement = Arrangement.SpaceBetween, + ) { + StatValue("Download", "↓ ${formatRate(stats.downloadBytesPerSecond)}") + StatValue("Upload", "↑ ${formatRate(stats.uploadBytesPerSecond)}") + val latency = stats.native.proxyLatencyMillis + val ageMillis = System.currentTimeMillis() - stats.native.proxyLatencyAtMillis + StatValue( + "Proxy latency", + if (latency <= 0) "—" else "${latency.toInt()} ms${formatAge(ageMillis)}", + ) + } + Text( + if (stats.native.connectionSamples == 0) "Connection errors: no samples" + else "Connection errors: ${"%.1f".format(stats.native.connectionErrorRate * 100)}% · ${stats.native.connectionSamples} samples", + style = MaterialTheme.typography.bodySmall, + color = MaterialTheme.colorScheme.onSurfaceVariant, + modifier = Modifier.padding(start = 14.dp, end = 14.dp, bottom = 12.dp), + ) + } +} + +@Composable +private fun StatValue(label: String, value: String) { + Column(horizontalAlignment = Alignment.CenterHorizontally) { + Text(value, style = MaterialTheme.typography.titleSmall) + Text(label, style = MaterialTheme.typography.labelSmall, color = MaterialTheme.colorScheme.onSurfaceVariant) + } +} + +private fun formatRate(bytesPerSecond: Double): String = when { + bytesPerSecond >= 1_000_000 -> "%.1f MB/s".format(bytesPerSecond / 1_000_000) + bytesPerSecond >= 1_000 -> "%.1f KB/s".format(bytesPerSecond / 1_000) + else -> "${bytesPerSecond.toInt()} B/s" +} + +private fun formatAge(ageMillis: Long): String = when { + ageMillis < 30_000 -> "" + ageMillis < 120_000 -> " · ${ageMillis / 1_000}s ago" + else -> " · ${ageMillis / 60_000}m ago" +} diff --git a/app/src/main/java/dev/megaproxy/app/vpn/ProxyCore.kt b/app/src/main/java/dev/megaproxy/app/vpn/ProxyCore.kt index 6033764..95fd208 100644 --- a/app/src/main/java/dev/megaproxy/app/vpn/ProxyCore.kt +++ b/app/src/main/java/dev/megaproxy/app/vpn/ProxyCore.kt @@ -13,6 +13,30 @@ interface ProxyCore { fun stop() } +data class NativeConnectionStats( + val downloadBytes: Long, + val uploadBytes: Long, + val proxyLatencyMillis: Double, + val proxyLatencyAtMillis: Long, + val connectionErrorRate: Double, + val connectionSamples: Int, +) + +object ConnectionStatsReader { + fun snapshot(): NativeConnectionStats? = runCatching { + val raw = Class.forName("mobile.Mobile").getMethod("getStats").invoke(null) as String + val json = JSONObject(raw) + NativeConnectionStats( + downloadBytes = json.getLong("downloadBytes"), + uploadBytes = json.getLong("uploadBytes"), + proxyLatencyMillis = json.getDouble("proxyLatencyMillis"), + proxyLatencyAtMillis = json.getLong("proxyLatencyAtMillis"), + connectionErrorRate = json.getDouble("connectionErrorRate"), + connectionSamples = json.getInt("connectionSamples"), + ) + }.getOrNull() +} + /** JNI boundary for the Go/uTLS userspace TCP/IP stack. */ class NativeProxyCore( private val vpnService: VpnService, diff --git a/app/src/main/java/dev/megaproxy/app/vpn/ProxyVpnService.kt b/app/src/main/java/dev/megaproxy/app/vpn/ProxyVpnService.kt index 46129d8..5ca32d0 100644 --- a/app/src/main/java/dev/megaproxy/app/vpn/ProxyVpnService.kt +++ b/app/src/main/java/dev/megaproxy/app/vpn/ProxyVpnService.kt @@ -54,7 +54,9 @@ class ProxyVpnService : VpnService() { override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { - isAlwaysOnMode = isAlwaysOn + val systemAlwaysOnStart = intent?.action == SERVICE_INTERFACE + val preserveKnownStatus = intent?.action == ACTION_REFRESH_STATUS && isAlwaysOnMode + isAlwaysOnMode = isAlwaysOn || systemAlwaysOnStart || preserveKnownStatus isLockdownMode = isLockdownEnabled } val store = ConfigStore(this) @@ -66,6 +68,9 @@ class ProxyVpnService : VpnService() { store.setConnectionProfile(store.activeProfileId()) } VpnRuntimeState.updateSystem(isAlwaysOnMode, isLockdownMode, store.connectionProfile().id) + if (intent?.action == ACTION_REFRESH_STATUS) { + return if (tunnel != null) START_STICKY else START_NOT_STICKY + } if (intent?.action == ACTION_STOP) { stopTunnel() stopSelf() @@ -265,6 +270,7 @@ class ProxyVpnService : VpnService() { private const val ACTION_STOP = "dev.megaproxy.STOP" private const val ACTION_TEST = "dev.megaproxy.TEST" private const val ACTION_START_MANUAL = "dev.megaproxy.START_MANUAL" + private const val ACTION_REFRESH_STATUS = "dev.megaproxy.REFRESH_STATUS" private const val MONITOR_INTERVAL_MS = 10_000L private val testRunning = AtomicBoolean(false) private val startRunning = AtomicBoolean(false) @@ -289,5 +295,10 @@ class ProxyVpnService : VpnService() { fun test(context: Context) = ContextCompat.startForegroundService( context, Intent(context, ProxyVpnService::class.java).setAction(ACTION_TEST), ) + fun refreshStatus(context: Context) { + if (isRunning) { + context.startService(Intent(context, ProxyVpnService::class.java).setAction(ACTION_REFRESH_STATUS)) + } + } } } diff --git a/app/src/main/java/dev/megaproxy/app/vpn/VpnRuntimeState.kt b/app/src/main/java/dev/megaproxy/app/vpn/VpnRuntimeState.kt index de4b4da..cca23a5 100644 --- a/app/src/main/java/dev/megaproxy/app/vpn/VpnRuntimeState.kt +++ b/app/src/main/java/dev/megaproxy/app/vpn/VpnRuntimeState.kt @@ -26,10 +26,11 @@ object VpnRuntimeState { } fun updateSystem(alwaysOn: Boolean, lockdown: Boolean, connectionProfileId: String) { - mainHandler.post { + val update = { mutableAlwaysOn.value = alwaysOn mutableLockdown.value = lockdown mutableConnectionProfileId.value = connectionProfileId } + if (Looper.myLooper() == Looper.getMainLooper()) update() else mainHandler.post(update) } } diff --git a/native/mobile/dialer.go b/native/mobile/dialer.go index 3b76a2f..c37e84b 100644 --- a/native/mobile/dialer.go +++ b/native/mobile/dialer.go @@ -54,12 +54,15 @@ func (d *httpsConnectDialer) connectTarget(ctx context.Context, target string) ( return &diagnosticConn{Conn: connection, target: target, reporter: d.reporter}, nil } report(d.reporter, "CONNECT %s: opening TCP connection to proxy %s via %s", target, d.config.displayAddress(), d.config.address()) + dialStarted := time.Now() raw, err := d.protectedDialer().DialContext(ctx, "tcp", d.config.address()) if err != nil { + recordConnectionOutcome(false) err = fmt.Errorf("dial HTTPS proxy: %w", err) report(d.reporter, "CONNECT %s failed: %v", target, err) return nil, err } + recordProxyLatency(time.Since(dialStarted)) report(d.reporter, "CONNECT %s: proxy TCP connected", target) closeOnError := true defer func() { @@ -70,6 +73,7 @@ func (d *httpsConnectDialer) connectTarget(ctx context.Context, target string) ( hello, err := d.config.helloID() if err != nil { + recordConnectionOutcome(false) report(d.reporter, "CONNECT %s failed: %v", target, err) return nil, err } @@ -80,11 +84,13 @@ func (d *httpsConnectDialer) connectTarget(ctx context.Context, target string) ( }, hello) if hello == tls.HelloCustom { if err := applyJA3(uconn, d.config.CustomJA3, d.config.Host); err != nil { + recordConnectionOutcome(false) report(d.reporter, "CONNECT %s failed: %v", target, err) return nil, err } } if err := uconn.HandshakeContext(ctx); err != nil { + recordConnectionOutcome(false) err = fmt.Errorf("TLS handshake with proxy: %w", err) report(d.reporter, "CONNECT %s failed: %v", target, err) return nil, err @@ -94,6 +100,7 @@ func (d *httpsConnectDialer) connectTarget(ctx context.Context, target string) ( auth := base64.StdEncoding.EncodeToString([]byte(d.config.Username + ":" + d.config.Password)) if _, err := fmt.Fprintf(uconn, "CONNECT %s HTTP/1.1\r\nHost: %s\r\nProxy-Authorization: Basic %s\r\nProxy-Connection: Keep-Alive\r\n\r\n", target, target, auth); err != nil { + recordConnectionOutcome(false) err = fmt.Errorf("write CONNECT: %w", err) report(d.reporter, "CONNECT %s failed: %v", target, err) return nil, err @@ -101,16 +108,19 @@ func (d *httpsConnectDialer) connectTarget(ctx context.Context, target string) ( reader := bufio.NewReader(uconn) response, err := http.ReadResponse(reader, &http.Request{Method: http.MethodConnect}) if err != nil { + recordConnectionOutcome(false) err = fmt.Errorf("read CONNECT response: %w", err) report(d.reporter, "CONNECT %s failed: %v", target, err) return nil, err } if response.StatusCode != http.StatusOK { + recordConnectionOutcome(false) _ = response.Body.Close() err = fmt.Errorf("proxy CONNECT returned %s", response.Status) report(d.reporter, "CONNECT %s failed: %v", target, err) return nil, err } + recordConnectionOutcome(true) report(d.reporter, "CONNECT %s: tunnel established", target) closeOnError = false var connection net.Conn = uconn @@ -179,12 +189,18 @@ func (c *diagnosticConn) reportError(operation string, err error) { func (c *diagnosticConn) Read(p []byte) (int, error) { n, err := c.Conn.Read(p) + if n > 0 { + telemetry.downloadBytes.Add(uint64(n)) + } c.reportError("read", err) return n, err } func (c *diagnosticConn) Write(p []byte) (int, error) { n, err := c.Conn.Write(p) + if n > 0 { + telemetry.uploadBytes.Add(uint64(n)) + } c.reportError("write", err) return n, err } diff --git a/native/mobile/mobile.go b/native/mobile/mobile.go index 943404f..69566a5 100644 --- a/native/mobile/mobile.go +++ b/native/mobile/mobile.go @@ -43,6 +43,7 @@ func Start(tunFD int, rawConfig string, protector Protector, reporter Reporter) return errors.New("proxy core is already running") } defer state.Unlock() + resetStats() dev, err := fdbased.Open(strconv.Itoa(tunFD), 1500, 0) if err != nil { _ = syscall.Close(tunFD) diff --git a/native/mobile/stats.go b/native/mobile/stats.go new file mode 100644 index 0000000..353004f --- /dev/null +++ b/native/mobile/stats.go @@ -0,0 +1,101 @@ +package mobile + +import ( + "encoding/json" + "sync" + "sync/atomic" + "time" +) + +const connectionSampleWindow = 50 + +type connectionStats struct { + downloadBytes atomic.Uint64 + uploadBytes atomic.Uint64 + + mu sync.Mutex + latencyMillis float64 + latencySamples uint64 + latencyAt time.Time + outcomes [connectionSampleWindow]bool + outcomeCount int + outcomeNext int +} + +var telemetry connectionStats + +type statsSnapshot struct { + DownloadBytes uint64 `json:"downloadBytes"` + UploadBytes uint64 `json:"uploadBytes"` + ProxyLatencyMillis float64 `json:"proxyLatencyMillis"` + ProxyLatencyAtMillis int64 `json:"proxyLatencyAtMillis"` + ConnectionErrorRate float64 `json:"connectionErrorRate"` + ConnectionSamples int `json:"connectionSamples"` +} + +func resetStats() { + telemetry.downloadBytes.Store(0) + telemetry.uploadBytes.Store(0) + telemetry.mu.Lock() + telemetry.latencyMillis = 0 + telemetry.latencySamples = 0 + telemetry.latencyAt = time.Time{} + telemetry.outcomes = [connectionSampleWindow]bool{} + telemetry.outcomeCount = 0 + telemetry.outcomeNext = 0 + telemetry.mu.Unlock() +} + +func recordProxyLatency(elapsed time.Duration) { + millis := float64(elapsed.Microseconds()) / 1000 + telemetry.mu.Lock() + if telemetry.latencySamples == 0 { + telemetry.latencyMillis = millis + } else { + const alpha = 0.2 + telemetry.latencyMillis = alpha*millis + (1-alpha)*telemetry.latencyMillis + } + telemetry.latencySamples++ + telemetry.latencyAt = time.Now() + telemetry.mu.Unlock() +} + +func recordConnectionOutcome(success bool) { + telemetry.mu.Lock() + telemetry.outcomes[telemetry.outcomeNext] = success + telemetry.outcomeNext = (telemetry.outcomeNext + 1) % connectionSampleWindow + if telemetry.outcomeCount < connectionSampleWindow { + telemetry.outcomeCount++ + } + telemetry.mu.Unlock() +} + +func snapshotStats() statsSnapshot { + result := statsSnapshot{ + DownloadBytes: telemetry.downloadBytes.Load(), + UploadBytes: telemetry.uploadBytes.Load(), + } + telemetry.mu.Lock() + result.ProxyLatencyMillis = telemetry.latencyMillis + if !telemetry.latencyAt.IsZero() { + result.ProxyLatencyAtMillis = telemetry.latencyAt.UnixMilli() + } + result.ConnectionSamples = telemetry.outcomeCount + failures := 0 + for index := 0; index < telemetry.outcomeCount; index++ { + if !telemetry.outcomes[index] { + failures++ + } + } + if telemetry.outcomeCount > 0 { + result.ConnectionErrorRate = float64(failures) / float64(telemetry.outcomeCount) + } + telemetry.mu.Unlock() + return result +} + +// GetStats returns a lightweight JSON snapshot for the Android UI. +func GetStats() string { + encoded, _ := json.Marshal(snapshotStats()) + return string(encoded) +} diff --git a/native/mobile/stats_test.go b/native/mobile/stats_test.go new file mode 100644 index 0000000..4b7bb0a --- /dev/null +++ b/native/mobile/stats_test.go @@ -0,0 +1,38 @@ +package mobile + +import ( + "testing" + "time" +) + +func TestConnectionStatsRollingWindow(t *testing.T) { + resetStats() + for index := 0; index < connectionSampleWindow+10; index++ { + recordConnectionOutcome(index%2 == 0) + } + snapshot := snapshotStats() + if snapshot.ConnectionSamples != connectionSampleWindow { + t.Fatalf("samples = %d, want %d", snapshot.ConnectionSamples, connectionSampleWindow) + } + if snapshot.ConnectionErrorRate != 0.5 { + t.Fatalf("error rate = %f, want 0.5", snapshot.ConnectionErrorRate) + } +} + +func TestConnectionStatsCountersAndLatency(t *testing.T) { + resetStats() + telemetry.downloadBytes.Add(2048) + telemetry.uploadBytes.Add(1024) + recordProxyLatency(80 * time.Millisecond) + recordProxyLatency(100 * time.Millisecond) + snapshot := snapshotStats() + if snapshot.DownloadBytes != 2048 || snapshot.UploadBytes != 1024 { + t.Fatalf("unexpected counters: %+v", snapshot) + } + if snapshot.ProxyLatencyMillis != 84 { + t.Fatalf("EWMA latency = %f, want 84", snapshot.ProxyLatencyMillis) + } + if snapshot.ProxyLatencyAtMillis == 0 { + t.Fatal("latency timestamp was not recorded") + } +} From a48efb12a60079d395b94972e6972defa709e8d3 Mon Sep 17 00:00:00 2001 From: Andrey Prokopyuk Date: Mon, 31 Aug 2026 23:56:03 +0300 Subject: [PATCH 05/41] Implement export --- app/build.gradle.kts | 1 + .../megaproxy/app/ProxySettingsActivity.kt | 139 ++++++++++++++-- .../dev/megaproxy/app/data/ConfigStore.kt | 19 +++ .../dev/megaproxy/app/data/ConfigTransfer.kt | 148 ++++++++++++++++++ .../megaproxy/app/data/ConfigTransferTest.kt | 68 ++++++++ 5 files changed, 366 insertions(+), 9 deletions(-) create mode 100644 app/src/main/java/dev/megaproxy/app/data/ConfigTransfer.kt create mode 100644 app/src/test/java/dev/megaproxy/app/data/ConfigTransferTest.kt diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 3f5a59f..6f40a72 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -36,5 +36,6 @@ dependencies { implementation("androidx.lifecycle:lifecycle-runtime-compose:2.8.7") implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7") testImplementation("junit:junit:4.13.2") + testImplementation("org.json:json:20250107") runtimeOnly(files("libs/megaproxy.aar")) } diff --git a/app/src/main/java/dev/megaproxy/app/ProxySettingsActivity.kt b/app/src/main/java/dev/megaproxy/app/ProxySettingsActivity.kt index dac301a..f1022fa 100644 --- a/app/src/main/java/dev/megaproxy/app/ProxySettingsActivity.kt +++ b/app/src/main/java/dev/megaproxy/app/ProxySettingsActivity.kt @@ -26,6 +26,7 @@ import androidx.compose.material.icons.filled.Add import androidx.compose.material3.AlertDialog import androidx.compose.material3.Card import androidx.compose.material3.CardDefaults +import androidx.compose.material3.Checkbox import androidx.compose.material3.DropdownMenu import androidx.compose.material3.DropdownMenuItem import androidx.compose.material3.ExperimentalMaterial3Api @@ -38,6 +39,7 @@ import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme import androidx.compose.material3.OutlinedButton import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.RadioButton import androidx.compose.material3.Scaffold import androidx.compose.material3.Surface import androidx.compose.material3.Text @@ -58,6 +60,9 @@ import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleEventObserver import androidx.lifecycle.compose.LocalLifecycleOwner import dev.megaproxy.app.data.ConfigStore +import dev.megaproxy.app.data.ConfigExportFormat +import dev.megaproxy.app.data.ConfigTransfer +import dev.megaproxy.app.data.PortableConfiguration import dev.megaproxy.app.data.ProxyListParser import dev.megaproxy.app.model.ProfileColors import dev.megaproxy.app.model.ProxyProfile @@ -86,6 +91,13 @@ private fun SettingsScreen(activity: Activity) { var importError by remember { mutableStateOf(null) } var skippedNonHttps by remember { mutableStateOf(0) } var showImportFilterNotice by remember { mutableStateOf(false) } + var showExportDialog by remember { mutableStateOf(false) } + var showPasswordExportWarning by remember { mutableStateOf(false) } + var exportFormat by remember { mutableStateOf(ConfigExportFormat.JSON) } + var includePasswords by remember { mutableStateOf(false) } + var pendingExportContent by remember { mutableStateOf("") } + var transferMessage by remember { mutableStateOf(null) } + var pendingUnsafeImport by remember { mutableStateOf(null) } val lifecycleOwner = LocalLifecycleOwner.current fun refresh() { profiles = store.sortedProfiles() } @@ -101,6 +113,30 @@ private fun SettingsScreen(activity: Activity) { }) importedProfileIds = emptyList() } + fun writeExport(uri: Uri?) { + if (uri == null) return + runCatching { + activity.contentResolver.openOutputStream(uri, "wt")?.bufferedWriter()?.use { it.write(pendingExportContent) } + ?: error("Could not open the export file") + }.onSuccess { transferMessage = "Configuration exported successfully." } + .onFailure { importError = it.message ?: "Could not export the configuration" } + } + fun applyJsonImport(configuration: PortableConfiguration) { + val added = store.importConfiguration(configuration) + sort = store.profileSort() + ascending = store.isProfileSortAscending() + refresh() + val missingPasswords = added.count { it.config.password.isEmpty() } + transferMessage = buildString { + append("Imported ${added.size} profile(s) from JSON.") + if (configuration.skippedProfiles > 0) append(" Skipped ${configuration.skippedProfiles} invalid profile(s).") + if (missingPasswords > 0) append(" $missingPasswords profile(s) require a password.") + if (ProxyVpnService.isAlwaysOnMode && ProxyVpnService.isRunning) { + append(" Reconnect the VPN to apply the imported Always-on profile selection.") + } + } + importedProfileIds = emptyList() + } DisposableEffect(lifecycleOwner) { val observer = LifecycleEventObserver { _, event -> if (event == Lifecycle.Event.ON_RESUME) refresh() } @@ -108,20 +144,41 @@ private fun SettingsScreen(activity: Activity) { onDispose { lifecycleOwner.lifecycle.removeObserver(observer) } } + val exportTxtDocument = rememberLauncherForActivityResult(ActivityResultContracts.CreateDocument("text/plain"), ::writeExport) + val exportJsonDocument = rememberLauncherForActivityResult(ActivityResultContracts.CreateDocument("application/json"), ::writeExport) + fun launchExport() { + pendingExportContent = when (exportFormat) { + ConfigExportFormat.PROXY_LIST -> ConfigTransfer.exportProxyList(store.profiles(), includePasswords) + ConfigExportFormat.JSON -> ConfigTransfer.exportJson(store, includePasswords) + } + if (exportFormat == ConfigExportFormat.PROXY_LIST) exportTxtDocument.launch("ProxyList.txt") + else exportJsonDocument.launch("MegaProxy-config.json") + } val importDocument = rememberLauncherForActivityResult(ActivityResultContracts.OpenDocument()) { uri -> if (uri != null) { runCatching { val text = activity.contentResolver.openInputStream(uri)?.bufferedReader()?.use { it.readText() } ?: error("Could not read the selected file") - ProxyListParser.parse(text).getOrThrow() - }.onSuccess { imported -> - val added = store.importProfiles(imported.proxies) - refresh() - importedProfileIds = added.map { it.id } - skippedNonHttps = imported.skippedNonHttps - showImportFilterNotice = imported.skippedNonHttps > 0 + val isJson = activity.contentResolver.getType(uri) == "application/json" || + uri.lastPathSegment.orEmpty().substringAfterLast('.', "").equals("json", true) || + text.trimStart().startsWith('{') + if (isJson) { + val configuration = ConfigTransfer.importJson(text) + if (configuration.profiles.any { it.config.allowInvalidProxyCertificate }) { + pendingUnsafeImport = configuration + } else { + applyJsonImport(configuration) + } + } else { + val imported = ProxyListParser.parse(text).getOrThrow() + val added = store.importProfiles(imported.proxies) + refresh() + importedProfileIds = added.map { it.id } + skippedNonHttps = imported.skippedNonHttps + showImportFilterNotice = imported.skippedNonHttps > 0 + } importError = null - }.onFailure { importError = it.message ?: "Could not import the proxy list" } + }.onFailure { importError = it.message ?: "Could not import the configuration" } } } @@ -135,9 +192,10 @@ private fun SettingsScreen(activity: Activity) { } }, actions = { - TextButton(onClick = { importDocument.launch(arrayOf("text/plain", "text/*")) }) { + TextButton(onClick = { importDocument.launch(arrayOf("text/plain", "application/json", "application/octet-stream")) }) { Text("Import") } + TextButton(onClick = { showExportDialog = true }) { Text("Export") } }, ) }, @@ -265,6 +323,69 @@ private fun SettingsScreen(activity: Activity) { dismissButton = { TextButton(onClick = { openImportedRouting(true) }) { Text("One by one") } }, ) } + if (showExportDialog) { + AlertDialog( + onDismissRequest = { showExportDialog = false }, + title = { Text("Export configuration") }, + text = { + Column(verticalArrangement = Arrangement.spacedBy(8.dp)) { + Text("Format") + Row(verticalAlignment = Alignment.CenterVertically) { + RadioButton(exportFormat == ConfigExportFormat.JSON, { exportFormat = ConfigExportFormat.JSON }) + Text("JSON · all MegaProxy settings") + } + Row(verticalAlignment = Alignment.CenterVertically) { + RadioButton(exportFormat == ConfigExportFormat.PROXY_LIST, { exportFormat = ConfigExportFormat.PROXY_LIST }) + Text("ProxyList.txt · compatible proxy fields only") + } + Row(verticalAlignment = Alignment.CenterVertically) { + Checkbox(includePasswords, { includePasswords = it }) + Text("Include passwords") + } + if (!includePasswords) { + Text("Passwords will be left empty and must be entered after import.", style = MaterialTheme.typography.bodySmall) + } + } + }, + confirmButton = { TextButton(onClick = { + showExportDialog = false + if (includePasswords) showPasswordExportWarning = true else launchExport() + }) { Text("Export") } }, + dismissButton = { TextButton(onClick = { showExportDialog = false }) { Text("Cancel") } }, + ) + } + if (showPasswordExportWarning) { + AlertDialog( + onDismissRequest = { showPasswordExportWarning = false }, + title = { Text("Export passwords in plain text?") }, + text = { Text("Anyone with access to the exported file will be able to read the proxy credentials. Store and transfer it securely.") }, + confirmButton = { TextButton(onClick = { + showPasswordExportWarning = false + launchExport() + }) { Text("Export anyway") } }, + dismissButton = { TextButton(onClick = { showPasswordExportWarning = false }) { Text("Cancel") } }, + ) + } + transferMessage?.let { message -> + AlertDialog( + onDismissRequest = { transferMessage = null }, + title = { Text("Configuration transfer") }, + text = { Text(message) }, + confirmButton = { TextButton(onClick = { transferMessage = null }) { Text("OK") } }, + ) + } + pendingUnsafeImport?.let { configuration -> + AlertDialog( + onDismissRequest = { pendingUnsafeImport = null }, + title = { Text("Import insecure certificate settings?") }, + text = { Text("One or more profiles accept an invalid or self-signed proxy certificate. This permits server impersonation and should only be used for proxies you control.") }, + confirmButton = { TextButton(onClick = { + pendingUnsafeImport = null + applyJsonImport(configuration) + }) { Text("Import anyway") } }, + dismissButton = { TextButton(onClick = { pendingUnsafeImport = null }) { Text("Cancel") } }, + ) + } } @Composable diff --git a/app/src/main/java/dev/megaproxy/app/data/ConfigStore.kt b/app/src/main/java/dev/megaproxy/app/data/ConfigStore.kt index 7314901..edad35f 100644 --- a/app/src/main/java/dev/megaproxy/app/data/ConfigStore.kt +++ b/app/src/main/java/dev/megaproxy/app/data/ConfigStore.kt @@ -138,6 +138,25 @@ class ConfigStore(context: Context) { return added } + @Synchronized + fun importConfiguration(configuration: PortableConfiguration): List { + val existing = profiles() + val idMap = mutableMapOf() + val added = configuration.profiles.map { source -> + val newId = UUID.randomUUID().toString() + idMap[source.id] = newId + source.copy(id = newId) + } + writeProfiles(existing + added) + val editor = prefs.edit() + .putString(PROFILE_SORT, configuration.sort.name) + .putBoolean(PROFILE_SORT_ASCENDING, configuration.sortAscending) + configuration.activeProfileId?.let(idMap::get)?.let { editor.putString(ACTIVE_PROFILE_ID, it) } + configuration.alwaysOnProfileId?.let(idMap::get)?.let { editor.putString(ALWAYS_ON_PROFILE_ID, it) } + editor.apply() + return added + } + @Synchronized fun saveProfile(profile: ProxyProfile) { val current = profiles() diff --git a/app/src/main/java/dev/megaproxy/app/data/ConfigTransfer.kt b/app/src/main/java/dev/megaproxy/app/data/ConfigTransfer.kt new file mode 100644 index 0000000..cd28062 --- /dev/null +++ b/app/src/main/java/dev/megaproxy/app/data/ConfigTransfer.kt @@ -0,0 +1,148 @@ +package dev.megaproxy.app.data + +import dev.megaproxy.app.model.DnsProvider +import dev.megaproxy.app.model.ProfileSort +import dev.megaproxy.app.model.ProxyConfig +import dev.megaproxy.app.model.ProxyProfile +import dev.megaproxy.app.model.TlsProfile +import org.json.JSONArray +import org.json.JSONObject +import java.net.URLEncoder +import java.nio.charset.StandardCharsets + +enum class ConfigExportFormat(val extension: String, val mimeType: String) { + PROXY_LIST("txt", "text/plain"), + JSON("json", "application/json"), +} + +data class PortableConfiguration( + val profiles: List, + val activeProfileId: String?, + val alwaysOnProfileId: String?, + val sort: ProfileSort, + val sortAscending: Boolean, + val skippedProfiles: Int = 0, +) + +object ConfigTransfer { + const val SCHEMA_VERSION = 1 + + fun exportProxyList(profiles: List, includePasswords: Boolean): String = + profiles.joinToString("\n", postfix = "\n") { profile -> + val config = profile.config + val password = if (includePasswords) config.password else "" + val userInfo = "${encode(config.username)}:${encode(password)}" + val query = buildList { + if (profile.name.isNotBlank()) add("title=${encode(profile.name.trim())}") + if (profile.countryCode.isNotBlank()) add("cc=${encode(profile.countryCode.uppercase())}") + }.joinToString("&") + buildString { + append("https://").append(userInfo).append('@').append(config.host.trim()) + if (config.port != 443) append(':').append(config.port) + if (query.isNotEmpty()) append('?').append(query) + } + } + + fun exportJson(store: ConfigStore, includePasswords: Boolean): String = JSONObject().apply { + put("schema", "dev.megaproxy.config") + put("version", SCHEMA_VERSION) + put("passwordsIncluded", includePasswords) + put("activeProfileId", store.activeProfileId()) + put("alwaysOnProfileId", store.alwaysOnProfileId()) + put("profileSort", store.profileSort().name) + put("profileSortAscending", store.isProfileSortAscending()) + put("profiles", JSONArray().apply { + store.profiles().forEach { profile -> put(encodeProfile(profile, includePasswords)) } + }) + }.toString(2) + + fun importJson(text: String): PortableConfiguration { + val root = JSONObject(text) + require(root.optString("schema") == "dev.megaproxy.config") { "This is not a MegaProxy configuration file" } + val version = root.optInt("version", 0) + require(version in 1..SCHEMA_VERSION) { "Unsupported MegaProxy configuration version: $version" } + val array = root.optJSONArray("profiles") ?: error("The configuration has no profiles") + val decoded = (0 until array.length()).map { index -> + runCatching { decodeProfile(array.getJSONObject(index), index) } + } + val profiles = decoded.mapNotNull(Result::getOrNull) + require(profiles.isNotEmpty()) { "The configuration contains no usable profiles" } + return PortableConfiguration( + profiles = profiles, + activeProfileId = root.optString("activeProfileId").ifBlank { null }, + alwaysOnProfileId = root.optString("alwaysOnProfileId").ifBlank { null }, + sort = enumValue(root.optString("profileSort"), ProfileSort.NAME), + sortAscending = root.optBoolean("profileSortAscending", true), + skippedProfiles = decoded.count(Result::isFailure), + ) + } + + private fun encodeProfile(profile: ProxyProfile, includePasswords: Boolean) = JSONObject().apply { + put("id", profile.id) + put("name", profile.name.trim()) + put("color", profile.colorIndex) + put("countryCode", profile.countryCode.uppercase()) + put("proxy", JSONObject().apply { + put("host", profile.config.host.trim()) + put("port", profile.config.port) + put("username", profile.config.username) + if (includePasswords) put("password", profile.config.password) + put("allowInvalidProxyCertificate", profile.config.allowInvalidProxyCertificate) + }) + put("tls", JSONObject().apply { + put("fingerprint", profile.config.profile.name) + put("customJa3", profile.config.customJa3.trim()) + }) + put("dns", JSONObject().apply { + put("provider", profile.config.dnsProvider.name) + put("customDohUrl", profile.config.customDohUrl.trim()) + }) + put("routing", JSONObject().apply { + put("routeAllApps", profile.config.routeAllApps) + put("selectedPackages", JSONArray(profile.config.selectedPackages.sorted())) + put("allowIpv6", profile.config.allowIpv6) + put("bypassLocalNetworks", profile.config.bypassLocalNetworks) + }) + } + + private fun decodeProfile(item: JSONObject, index: Int): ProxyProfile { + val proxy = item.optJSONObject("proxy") ?: JSONObject() + val tls = item.optJSONObject("tls") ?: JSONObject() + val dns = item.optJSONObject("dns") ?: JSONObject() + val routing = item.optJSONObject("routing") ?: JSONObject() + val host = proxy.optString("host").trim() + require(host.isNotEmpty() && !host.contains(Regex("[/:\\s]"))) + val packages = routing.optJSONArray("selectedPackages")?.let { array -> + (0 until array.length()).mapNotNull { packageIndex -> + array.optString(packageIndex).trim().takeIf { it.matches(Regex("[A-Za-z0-9_.]+")) } + }.toSet() + }.orEmpty() + return ProxyProfile( + id = item.optString("id").ifBlank { "import-$index" }, + name = item.optString("name").trim(), + colorIndex = item.optInt("color", index), + countryCode = item.optString("countryCode").uppercase().takeIf { it.matches(Regex("[A-Z]{2}")) }.orEmpty(), + config = ProxyConfig( + host = host, + port = proxy.optInt("port", 443).takeIf { it in 1..65535 } ?: 443, + username = proxy.optString("username"), + password = proxy.optString("password"), + allowInvalidProxyCertificate = proxy.optBoolean("allowInvalidProxyCertificate", false), + profile = enumValue(tls.optString("fingerprint"), TlsProfile.CHROME_ANDROID), + customJa3 = tls.optString("customJa3"), + dnsProvider = enumValue(dns.optString("provider"), DnsProvider.CLOUDFLARE), + customDohUrl = dns.optString("customDohUrl"), + selectedPackages = packages, + allowIpv6 = routing.optBoolean("allowIpv6", false), + routeAllApps = routing.optBoolean("routeAllApps", false), + bypassLocalNetworks = routing.optBoolean("bypassLocalNetworks", true), + ), + ) + } + + private inline fun > enumValue(value: String, default: T): T = + enumValues().firstOrNull { it.name == value } ?: default + + private fun encode(value: String): String = URLEncoder.encode(value, StandardCharsets.UTF_8.name()) + .replace("+", "%20") +} diff --git a/app/src/test/java/dev/megaproxy/app/data/ConfigTransferTest.kt b/app/src/test/java/dev/megaproxy/app/data/ConfigTransferTest.kt new file mode 100644 index 0000000..ed45e17 --- /dev/null +++ b/app/src/test/java/dev/megaproxy/app/data/ConfigTransferTest.kt @@ -0,0 +1,68 @@ +package dev.megaproxy.app.data + +import dev.megaproxy.app.model.ProxyConfig +import dev.megaproxy.app.model.ProxyProfile +import dev.megaproxy.app.model.TlsProfile +import org.junit.Assert.assertEquals +import org.junit.Assert.assertFalse +import org.junit.Assert.assertTrue +import org.junit.Test + +class ConfigTransferTest { + @Test + fun `proxy list omits passwords by default`() { + val profile = ProxyProfile( + id = "one", name = "Amsterdam", colorIndex = 0, countryCode = "nl", + config = ProxyConfig(host = "proxy.example", username = "user+name", password = "secret"), + ) + val exported = ConfigTransfer.exportProxyList(listOf(profile), includePasswords = false) + assertTrue(exported.contains("https://user%2Bname:@proxy.example")) + assertFalse(exported.contains("secret")) + val imported = ProxyListParser.parse(exported).getOrThrow().proxies.single() + assertEquals("", imported.config.password) + assertEquals("NL", imported.countryCode) + assertEquals("Amsterdam", imported.name) + } + + @Test + fun `proxy list includes password when requested`() { + val profile = ProxyProfile( + id = "one", colorIndex = 0, + config = ProxyConfig(host = "proxy.example", username = "user", password = "s e:c@r"), + ) + val exported = ConfigTransfer.exportProxyList(listOf(profile), includePasswords = true) + assertEquals("s e:c@r", ProxyListParser.parse(exported).getOrThrow().proxies.single().config.password) + } + + @Test + fun `json import preserves unavailable applications and tolerates future values`() { + val imported = ConfigTransfer.importJson( + """ + { + "schema":"dev.megaproxy.config", + "version":1, + "activeProfileId":"source", + "alwaysOnProfileId":"source", + "profileSort":"FUTURE_SORT", + "profiles":[{ + "id":"source", + "name":"Portable", + "color":999, + "countryCode":"de", + "proxy":{"host":"proxy.example","port":70000,"username":"u"}, + "tls":{"fingerprint":"FUTURE_BROWSER","customJa3":"future"}, + "dns":{"provider":"FUTURE_DNS","customDohUrl":"https://dns.example/query"}, + "routing":{"selectedPackages":["com.example.not.installed","invalid package"],"routeAllApps":false}, + "futureField":true + }] + } + """.trimIndent(), + ) + val profile = imported.profiles.single() + assertEquals(443, profile.config.port) + assertEquals(TlsProfile.CHROME_ANDROID, profile.config.profile) + assertEquals(setOf("com.example.not.installed"), profile.config.selectedPackages) + assertEquals("", profile.config.password) + assertEquals("source", imported.activeProfileId) + } +} From 11b0670582d992e08a93844895b8fb4c39fae7b2 Mon Sep 17 00:00:00 2001 From: Andrey Prokopyuk Date: Tue, 1 Sep 2026 00:04:38 +0300 Subject: [PATCH 06/41] Change package --- .vscode/tasks.json | 2 +- README.md | 2 +- app/build.gradle.kts | 4 ++-- .../BatteryOptimizationReminder.kt | 2 +- .../megaproxy487}/ConnectionTestActivity.kt | 10 +++++----- .../app => net/megaproxy487}/MainActivity.kt | 18 ++++++++--------- .../megaproxy487}/ProfileEditorActivity.kt | 14 ++++++------- .../megaproxy487}/ProxySettingsActivity.kt | 20 +++++++++---------- .../megaproxy487}/SplitTunnelActivity.kt | 6 +++--- .../megaproxy487}/data/ConfigStore.kt | 16 +++++++-------- .../megaproxy487}/data/ConfigTransfer.kt | 12 +++++------ .../megaproxy487}/data/ProxyListParser.kt | 4 ++-- .../model/ProfileColorMatcher.kt | 2 +- .../megaproxy487}/model/ProxyConfig.kt | 2 +- .../megaproxy487}/vpn/AlwaysOnVpnStatus.kt | 2 +- .../megaproxy487}/vpn/DiagnosticLog.kt | 2 +- .../app => net/megaproxy487}/vpn/ProxyCore.kt | 4 ++-- .../megaproxy487}/vpn/ProxyVpnService.kt | 18 ++++++++--------- .../megaproxy487}/vpn/VpnRuntimeState.kt | 2 +- .../BatteryOptimizationReminderTest.kt | 2 +- .../megaproxy487}/data/ConfigTransferTest.kt | 8 ++++---- .../megaproxy487}/data/ProxyListParserTest.kt | 2 +- .../megaproxy487}/model/Ja3SpecTest.kt | 2 +- .../megaproxy487}/model/ProxyConfigTest.kt | 2 +- scripts/android-jdwp.sh | 4 ++-- scripts/android-logcat.sh | 2 +- scripts/run-android-app.sh | 2 +- scripts/stop-android-app-session.sh | 2 +- 28 files changed, 84 insertions(+), 84 deletions(-) rename app/src/main/java/{dev/megaproxy/app => net/megaproxy487}/BatteryOptimizationReminder.kt (98%) rename app/src/main/java/{dev/megaproxy/app => net/megaproxy487}/ConnectionTestActivity.kt (96%) rename app/src/main/java/{dev/megaproxy/app => net/megaproxy487}/MainActivity.kt (97%) rename app/src/main/java/{dev/megaproxy/app => net/megaproxy487}/ProfileEditorActivity.kt (96%) rename app/src/main/java/{dev/megaproxy/app => net/megaproxy487}/ProxySettingsActivity.kt (98%) rename app/src/main/java/{dev/megaproxy/app => net/megaproxy487}/SplitTunnelActivity.kt (98%) rename app/src/main/java/{dev/megaproxy/app => net/megaproxy487}/data/ConfigStore.kt (97%) rename app/src/main/java/{dev/megaproxy/app => net/megaproxy487}/data/ConfigTransfer.kt (96%) rename app/src/main/java/{dev/megaproxy/app => net/megaproxy487}/data/ProxyListParser.kt (97%) rename app/src/main/java/{dev/megaproxy/app => net/megaproxy487}/model/ProfileColorMatcher.kt (98%) rename app/src/main/java/{dev/megaproxy/app => net/megaproxy487}/model/ProxyConfig.kt (99%) rename app/src/main/java/{dev/megaproxy/app => net/megaproxy487}/vpn/AlwaysOnVpnStatus.kt (95%) rename app/src/main/java/{dev/megaproxy/app => net/megaproxy487}/vpn/DiagnosticLog.kt (98%) rename app/src/main/java/{dev/megaproxy/app => net/megaproxy487}/vpn/ProxyCore.kt (98%) rename app/src/main/java/{dev/megaproxy/app => net/megaproxy487}/vpn/ProxyVpnService.kt (95%) rename app/src/main/java/{dev/megaproxy/app => net/megaproxy487}/vpn/VpnRuntimeState.kt (98%) rename app/src/test/java/{dev/megaproxy/app => net/megaproxy487}/BatteryOptimizationReminderTest.kt (97%) rename app/src/test/java/{dev/megaproxy/app => net/megaproxy487}/data/ConfigTransferTest.kt (94%) rename app/src/test/java/{dev/megaproxy/app => net/megaproxy487}/data/ProxyListParserTest.kt (97%) rename app/src/test/java/{dev/megaproxy/app => net/megaproxy487}/model/Ja3SpecTest.kt (93%) rename app/src/test/java/{dev/megaproxy/app => net/megaproxy487}/model/ProxyConfigTest.kt (94%) diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 9296949..2d0c53f 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -96,7 +96,7 @@ { "label": "Android: Launch app", "type": "shell", - "command": "source \"$HOME/.zshrc.extra\"; adb shell am start -n dev.megaproxy.app/.MainActivity", + "command": "source \"$HOME/.zshrc.extra\"; adb shell am start -n net.megaproxy487/.MainActivity", "dependsOn": ["Android: Install debug APK"], "dependsOrder": "sequence", "problemMatcher": [] diff --git a/README.md b/README.md index c7cf9f4..6d8dbc4 100644 --- a/README.md +++ b/README.md @@ -121,7 +121,7 @@ Build, test and install the Android application: ./gradlew testDebugUnitTest assembleDebug adb wait-for-device adb install -r app/build/outputs/apk/debug/app-debug.apk -adb shell am start -n dev.megaproxy.app/.MainActivity +adb shell am start -n net.megaproxy487/.MainActivity ``` ### VS Code workflow diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 6f40a72..742463b 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -5,11 +5,11 @@ plugins { } android { - namespace = "dev.megaproxy.app" + namespace = "net.megaproxy487" compileSdk = 35 defaultConfig { - applicationId = "dev.megaproxy.app" + applicationId = "net.megaproxy487" minSdk = 26 targetSdk = 35 versionCode = 1 diff --git a/app/src/main/java/dev/megaproxy/app/BatteryOptimizationReminder.kt b/app/src/main/java/net/megaproxy487/BatteryOptimizationReminder.kt similarity index 98% rename from app/src/main/java/dev/megaproxy/app/BatteryOptimizationReminder.kt rename to app/src/main/java/net/megaproxy487/BatteryOptimizationReminder.kt index 94c8fd6..eba5336 100644 --- a/app/src/main/java/dev/megaproxy/app/BatteryOptimizationReminder.kt +++ b/app/src/main/java/net/megaproxy487/BatteryOptimizationReminder.kt @@ -1,4 +1,4 @@ -package dev.megaproxy.app +package net.megaproxy487 import android.app.Activity import android.content.Context diff --git a/app/src/main/java/dev/megaproxy/app/ConnectionTestActivity.kt b/app/src/main/java/net/megaproxy487/ConnectionTestActivity.kt similarity index 96% rename from app/src/main/java/dev/megaproxy/app/ConnectionTestActivity.kt rename to app/src/main/java/net/megaproxy487/ConnectionTestActivity.kt index 8a1e8de..c86055c 100644 --- a/app/src/main/java/dev/megaproxy/app/ConnectionTestActivity.kt +++ b/app/src/main/java/net/megaproxy487/ConnectionTestActivity.kt @@ -1,4 +1,4 @@ -package dev.megaproxy.app +package net.megaproxy487 import android.app.Activity import android.content.ClipData @@ -36,10 +36,10 @@ import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp -import dev.megaproxy.app.data.ConfigStore -import dev.megaproxy.app.vpn.ProxyVpnService -import dev.megaproxy.app.vpn.TestDiagnosticLog -import dev.megaproxy.app.vpn.TestState +import net.megaproxy487.data.ConfigStore +import net.megaproxy487.vpn.ProxyVpnService +import net.megaproxy487.vpn.TestDiagnosticLog +import net.megaproxy487.vpn.TestState class ConnectionTestActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { diff --git a/app/src/main/java/dev/megaproxy/app/MainActivity.kt b/app/src/main/java/net/megaproxy487/MainActivity.kt similarity index 97% rename from app/src/main/java/dev/megaproxy/app/MainActivity.kt rename to app/src/main/java/net/megaproxy487/MainActivity.kt index 7c3fd8c..b81ba56 100644 --- a/app/src/main/java/dev/megaproxy/app/MainActivity.kt +++ b/app/src/main/java/net/megaproxy487/MainActivity.kt @@ -1,4 +1,4 @@ -package dev.megaproxy.app +package net.megaproxy487 import android.Manifest import android.app.Activity @@ -57,15 +57,15 @@ import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleEventObserver import androidx.lifecycle.compose.LocalLifecycleOwner import androidx.lifecycle.repeatOnLifecycle -import dev.megaproxy.app.vpn.ConnectionStatsReader -import dev.megaproxy.app.vpn.NativeConnectionStats +import net.megaproxy487.vpn.ConnectionStatsReader +import net.megaproxy487.vpn.NativeConnectionStats import kotlinx.coroutines.delay -import dev.megaproxy.app.data.ConfigStore -import dev.megaproxy.app.vpn.ProxyVpnService -import dev.megaproxy.app.vpn.VpnConnectionState -import dev.megaproxy.app.vpn.VpnRuntimeState -import dev.megaproxy.app.vpn.readAlwaysOnVpnStatus -import dev.megaproxy.app.model.ProfileColors +import net.megaproxy487.data.ConfigStore +import net.megaproxy487.vpn.ProxyVpnService +import net.megaproxy487.vpn.VpnConnectionState +import net.megaproxy487.vpn.VpnRuntimeState +import net.megaproxy487.vpn.readAlwaysOnVpnStatus +import net.megaproxy487.model.ProfileColors class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { diff --git a/app/src/main/java/dev/megaproxy/app/ProfileEditorActivity.kt b/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt similarity index 96% rename from app/src/main/java/dev/megaproxy/app/ProfileEditorActivity.kt rename to app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt index 2c1e89f..7aca1e7 100644 --- a/app/src/main/java/dev/megaproxy/app/ProfileEditorActivity.kt +++ b/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt @@ -1,4 +1,4 @@ -package dev.megaproxy.app +package net.megaproxy487 import android.app.Activity import android.content.Intent @@ -40,11 +40,11 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.text.input.PasswordVisualTransformation import androidx.compose.ui.unit.dp -import dev.megaproxy.app.data.ConfigStore -import dev.megaproxy.app.model.DnsProvider -import dev.megaproxy.app.model.ProfileColorMatcher -import dev.megaproxy.app.model.ProxyConfig -import dev.megaproxy.app.model.TlsProfile +import net.megaproxy487.data.ConfigStore +import net.megaproxy487.model.DnsProvider +import net.megaproxy487.model.ProfileColorMatcher +import net.megaproxy487.model.ProxyConfig +import net.megaproxy487.model.TlsProfile import java.util.Locale class ProfileEditorActivity : ComponentActivity() { @@ -119,7 +119,7 @@ private fun ProfileEditorScreen(activity: Activity) { countryExpanded = false }) countries.forEach { (code, name) -> - val flag = dev.megaproxy.app.model.ProxyProfile("", colorIndex = 0, countryCode = code).flagEmoji + val flag = net.megaproxy487.model.ProxyProfile("", colorIndex = 0, countryCode = code).flagEmoji DropdownMenuItem(text = { Text("$flag $name") }, onClick = { profile = profile.copy( countryCode = code, diff --git a/app/src/main/java/dev/megaproxy/app/ProxySettingsActivity.kt b/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt similarity index 98% rename from app/src/main/java/dev/megaproxy/app/ProxySettingsActivity.kt rename to app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt index f1022fa..10482d8 100644 --- a/app/src/main/java/dev/megaproxy/app/ProxySettingsActivity.kt +++ b/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt @@ -1,4 +1,4 @@ -package dev.megaproxy.app +package net.megaproxy487 import android.app.Activity import android.content.Intent @@ -59,15 +59,15 @@ import androidx.compose.ui.unit.dp import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleEventObserver import androidx.lifecycle.compose.LocalLifecycleOwner -import dev.megaproxy.app.data.ConfigStore -import dev.megaproxy.app.data.ConfigExportFormat -import dev.megaproxy.app.data.ConfigTransfer -import dev.megaproxy.app.data.PortableConfiguration -import dev.megaproxy.app.data.ProxyListParser -import dev.megaproxy.app.model.ProfileColors -import dev.megaproxy.app.model.ProxyProfile -import dev.megaproxy.app.model.ProfileSort -import dev.megaproxy.app.vpn.ProxyVpnService +import net.megaproxy487.data.ConfigStore +import net.megaproxy487.data.ConfigExportFormat +import net.megaproxy487.data.ConfigTransfer +import net.megaproxy487.data.PortableConfiguration +import net.megaproxy487.data.ProxyListParser +import net.megaproxy487.model.ProfileColors +import net.megaproxy487.model.ProxyProfile +import net.megaproxy487.model.ProfileSort +import net.megaproxy487.vpn.ProxyVpnService class ProxySettingsActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { diff --git a/app/src/main/java/dev/megaproxy/app/SplitTunnelActivity.kt b/app/src/main/java/net/megaproxy487/SplitTunnelActivity.kt similarity index 98% rename from app/src/main/java/dev/megaproxy/app/SplitTunnelActivity.kt rename to app/src/main/java/net/megaproxy487/SplitTunnelActivity.kt index 55e2d9f..8daf905 100644 --- a/app/src/main/java/dev/megaproxy/app/SplitTunnelActivity.kt +++ b/app/src/main/java/net/megaproxy487/SplitTunnelActivity.kt @@ -1,4 +1,4 @@ -package dev.megaproxy.app +package net.megaproxy487 import android.content.Intent import android.os.Bundle @@ -32,7 +32,7 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp -import dev.megaproxy.app.data.ConfigStore +import net.megaproxy487.data.ConfigStore class SplitTunnelActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { @@ -67,7 +67,7 @@ private fun SplitTunnelScreen(activity: SplitTunnelActivity) { var config by remember { mutableStateOf(currentProfile.config) } var appSearch by remember { mutableStateOf("") } - fun updateConfig(updated: dev.megaproxy.app.model.ProxyConfig) { + fun updateConfig(updated: net.megaproxy487.model.ProxyConfig) { config = updated val profilesToUpdate = if (configureIndividually) listOf(currentProfile) else targetProfiles profilesToUpdate.forEach { store.saveProfile(it.copy(config = updated)) } diff --git a/app/src/main/java/dev/megaproxy/app/data/ConfigStore.kt b/app/src/main/java/net/megaproxy487/data/ConfigStore.kt similarity index 97% rename from app/src/main/java/dev/megaproxy/app/data/ConfigStore.kt rename to app/src/main/java/net/megaproxy487/data/ConfigStore.kt index edad35f..2a52fc7 100644 --- a/app/src/main/java/dev/megaproxy/app/data/ConfigStore.kt +++ b/app/src/main/java/net/megaproxy487/data/ConfigStore.kt @@ -1,16 +1,16 @@ -package dev.megaproxy.app.data +package net.megaproxy487.data import android.content.Context import android.security.keystore.KeyGenParameterSpec import android.security.keystore.KeyProperties import android.util.Base64 -import dev.megaproxy.app.model.DnsProvider -import dev.megaproxy.app.model.ProfileColors -import dev.megaproxy.app.model.ProfileColorMatcher -import dev.megaproxy.app.model.ProfileSort -import dev.megaproxy.app.model.ProxyConfig -import dev.megaproxy.app.model.ProxyProfile -import dev.megaproxy.app.model.TlsProfile +import net.megaproxy487.model.DnsProvider +import net.megaproxy487.model.ProfileColors +import net.megaproxy487.model.ProfileColorMatcher +import net.megaproxy487.model.ProfileSort +import net.megaproxy487.model.ProxyConfig +import net.megaproxy487.model.ProxyProfile +import net.megaproxy487.model.TlsProfile import org.json.JSONArray import org.json.JSONObject import java.security.KeyStore diff --git a/app/src/main/java/dev/megaproxy/app/data/ConfigTransfer.kt b/app/src/main/java/net/megaproxy487/data/ConfigTransfer.kt similarity index 96% rename from app/src/main/java/dev/megaproxy/app/data/ConfigTransfer.kt rename to app/src/main/java/net/megaproxy487/data/ConfigTransfer.kt index cd28062..5d682ec 100644 --- a/app/src/main/java/dev/megaproxy/app/data/ConfigTransfer.kt +++ b/app/src/main/java/net/megaproxy487/data/ConfigTransfer.kt @@ -1,10 +1,10 @@ -package dev.megaproxy.app.data +package net.megaproxy487.data -import dev.megaproxy.app.model.DnsProvider -import dev.megaproxy.app.model.ProfileSort -import dev.megaproxy.app.model.ProxyConfig -import dev.megaproxy.app.model.ProxyProfile -import dev.megaproxy.app.model.TlsProfile +import net.megaproxy487.model.DnsProvider +import net.megaproxy487.model.ProfileSort +import net.megaproxy487.model.ProxyConfig +import net.megaproxy487.model.ProxyProfile +import net.megaproxy487.model.TlsProfile import org.json.JSONArray import org.json.JSONObject import java.net.URLEncoder diff --git a/app/src/main/java/dev/megaproxy/app/data/ProxyListParser.kt b/app/src/main/java/net/megaproxy487/data/ProxyListParser.kt similarity index 97% rename from app/src/main/java/dev/megaproxy/app/data/ProxyListParser.kt rename to app/src/main/java/net/megaproxy487/data/ProxyListParser.kt index 98ba624..e2b0da2 100644 --- a/app/src/main/java/dev/megaproxy/app/data/ProxyListParser.kt +++ b/app/src/main/java/net/megaproxy487/data/ProxyListParser.kt @@ -1,6 +1,6 @@ -package dev.megaproxy.app.data +package net.megaproxy487.data -import dev.megaproxy.app.model.ProxyConfig +import net.megaproxy487.model.ProxyConfig import java.net.URI import java.net.URLDecoder import java.nio.charset.StandardCharsets diff --git a/app/src/main/java/dev/megaproxy/app/model/ProfileColorMatcher.kt b/app/src/main/java/net/megaproxy487/model/ProfileColorMatcher.kt similarity index 98% rename from app/src/main/java/dev/megaproxy/app/model/ProfileColorMatcher.kt rename to app/src/main/java/net/megaproxy487/model/ProfileColorMatcher.kt index 61ae2fe..9594b7d 100644 --- a/app/src/main/java/dev/megaproxy/app/model/ProfileColorMatcher.kt +++ b/app/src/main/java/net/megaproxy487/model/ProfileColorMatcher.kt @@ -1,4 +1,4 @@ -package dev.megaproxy.app.model +package net.megaproxy487.model import android.graphics.Bitmap import android.graphics.Canvas diff --git a/app/src/main/java/dev/megaproxy/app/model/ProxyConfig.kt b/app/src/main/java/net/megaproxy487/model/ProxyConfig.kt similarity index 99% rename from app/src/main/java/dev/megaproxy/app/model/ProxyConfig.kt rename to app/src/main/java/net/megaproxy487/model/ProxyConfig.kt index 803d8dc..fedad20 100644 --- a/app/src/main/java/dev/megaproxy/app/model/ProxyConfig.kt +++ b/app/src/main/java/net/megaproxy487/model/ProxyConfig.kt @@ -1,4 +1,4 @@ -package dev.megaproxy.app.model +package net.megaproxy487.model data class ProxyConfig( val host: String = "", diff --git a/app/src/main/java/dev/megaproxy/app/vpn/AlwaysOnVpnStatus.kt b/app/src/main/java/net/megaproxy487/vpn/AlwaysOnVpnStatus.kt similarity index 95% rename from app/src/main/java/dev/megaproxy/app/vpn/AlwaysOnVpnStatus.kt rename to app/src/main/java/net/megaproxy487/vpn/AlwaysOnVpnStatus.kt index 46d0aec..d767ba8 100644 --- a/app/src/main/java/dev/megaproxy/app/vpn/AlwaysOnVpnStatus.kt +++ b/app/src/main/java/net/megaproxy487/vpn/AlwaysOnVpnStatus.kt @@ -1,4 +1,4 @@ -package dev.megaproxy.app.vpn +package net.megaproxy487.vpn import android.content.Context import android.provider.Settings diff --git a/app/src/main/java/dev/megaproxy/app/vpn/DiagnosticLog.kt b/app/src/main/java/net/megaproxy487/vpn/DiagnosticLog.kt similarity index 98% rename from app/src/main/java/dev/megaproxy/app/vpn/DiagnosticLog.kt rename to app/src/main/java/net/megaproxy487/vpn/DiagnosticLog.kt index 34eac15..370ea78 100644 --- a/app/src/main/java/dev/megaproxy/app/vpn/DiagnosticLog.kt +++ b/app/src/main/java/net/megaproxy487/vpn/DiagnosticLog.kt @@ -1,4 +1,4 @@ -package dev.megaproxy.app.vpn +package net.megaproxy487.vpn import android.os.Handler import android.os.Looper diff --git a/app/src/main/java/dev/megaproxy/app/vpn/ProxyCore.kt b/app/src/main/java/net/megaproxy487/vpn/ProxyCore.kt similarity index 98% rename from app/src/main/java/dev/megaproxy/app/vpn/ProxyCore.kt rename to app/src/main/java/net/megaproxy487/vpn/ProxyCore.kt index 95fd208..5498e73 100644 --- a/app/src/main/java/dev/megaproxy/app/vpn/ProxyCore.kt +++ b/app/src/main/java/net/megaproxy487/vpn/ProxyCore.kt @@ -1,8 +1,8 @@ -package dev.megaproxy.app.vpn +package net.megaproxy487.vpn import android.net.VpnService import android.os.ParcelFileDescriptor -import dev.megaproxy.app.model.ProxyConfig +import net.megaproxy487.model.ProxyConfig import org.json.JSONObject import java.lang.reflect.Proxy diff --git a/app/src/main/java/dev/megaproxy/app/vpn/ProxyVpnService.kt b/app/src/main/java/net/megaproxy487/vpn/ProxyVpnService.kt similarity index 95% rename from app/src/main/java/dev/megaproxy/app/vpn/ProxyVpnService.kt rename to app/src/main/java/net/megaproxy487/vpn/ProxyVpnService.kt index 5ca32d0..03da64d 100644 --- a/app/src/main/java/dev/megaproxy/app/vpn/ProxyVpnService.kt +++ b/app/src/main/java/net/megaproxy487/vpn/ProxyVpnService.kt @@ -1,4 +1,4 @@ -package dev.megaproxy.app.vpn +package net.megaproxy487.vpn import android.app.NotificationChannel import android.app.NotificationManager @@ -12,15 +12,15 @@ import android.os.Handler import android.os.Looper import androidx.core.app.NotificationCompat import androidx.core.content.ContextCompat -import dev.megaproxy.app.MainActivity -import dev.megaproxy.app.data.ConfigStore +import net.megaproxy487.MainActivity +import net.megaproxy487.data.ConfigStore import java.util.concurrent.atomic.AtomicBoolean import kotlin.concurrent.thread class ProxyVpnService : VpnService() { private var tunnel: ParcelFileDescriptor? = null private var core: ProxyCore? = null - private var activeConfig: dev.megaproxy.app.model.ProxyConfig? = null + private var activeConfig: net.megaproxy487.model.ProxyConfig? = null private var tunnelTestOnly = false private val monitorHandler = Handler(Looper.getMainLooper()) private val monitor = object : Runnable { @@ -132,7 +132,7 @@ class ProxyVpnService : VpnService() { } } - private fun startTunnel(testOnly: Boolean, suppliedConfig: dev.megaproxy.app.model.ProxyConfig? = null): Boolean { + private fun startTunnel(testOnly: Boolean, suppliedConfig: net.megaproxy487.model.ProxyConfig? = null): Boolean { val storedProfile = ConfigStore(this).connectionProfile() val storedConfig = suppliedConfig ?: storedProfile.config val diagnostics = if (testOnly) TestDiagnosticLog::add else DiagnosticLog::add @@ -267,10 +267,10 @@ class ProxyVpnService : VpnService() { companion object { private const val CHANNEL_ID = "vpn" private const val NOTIFICATION_ID = 101 - private const val ACTION_STOP = "dev.megaproxy.STOP" - private const val ACTION_TEST = "dev.megaproxy.TEST" - private const val ACTION_START_MANUAL = "dev.megaproxy.START_MANUAL" - private const val ACTION_REFRESH_STATUS = "dev.megaproxy.REFRESH_STATUS" + private const val ACTION_STOP = "net.megaproxy487.STOP" + private const val ACTION_TEST = "net.megaproxy487.TEST" + private const val ACTION_START_MANUAL = "net.megaproxy487.START_MANUAL" + private const val ACTION_REFRESH_STATUS = "net.megaproxy487.REFRESH_STATUS" private const val MONITOR_INTERVAL_MS = 10_000L private val testRunning = AtomicBoolean(false) private val startRunning = AtomicBoolean(false) diff --git a/app/src/main/java/dev/megaproxy/app/vpn/VpnRuntimeState.kt b/app/src/main/java/net/megaproxy487/vpn/VpnRuntimeState.kt similarity index 98% rename from app/src/main/java/dev/megaproxy/app/vpn/VpnRuntimeState.kt rename to app/src/main/java/net/megaproxy487/vpn/VpnRuntimeState.kt index cca23a5..aa1a239 100644 --- a/app/src/main/java/dev/megaproxy/app/vpn/VpnRuntimeState.kt +++ b/app/src/main/java/net/megaproxy487/vpn/VpnRuntimeState.kt @@ -1,4 +1,4 @@ -package dev.megaproxy.app.vpn +package net.megaproxy487.vpn import android.os.Handler import android.os.Looper diff --git a/app/src/test/java/dev/megaproxy/app/BatteryOptimizationReminderTest.kt b/app/src/test/java/net/megaproxy487/BatteryOptimizationReminderTest.kt similarity index 97% rename from app/src/test/java/dev/megaproxy/app/BatteryOptimizationReminderTest.kt rename to app/src/test/java/net/megaproxy487/BatteryOptimizationReminderTest.kt index aa50450..037f831 100644 --- a/app/src/test/java/dev/megaproxy/app/BatteryOptimizationReminderTest.kt +++ b/app/src/test/java/net/megaproxy487/BatteryOptimizationReminderTest.kt @@ -1,4 +1,4 @@ -package dev.megaproxy.app +package net.megaproxy487 import org.junit.Assert.assertFalse import org.junit.Assert.assertTrue diff --git a/app/src/test/java/dev/megaproxy/app/data/ConfigTransferTest.kt b/app/src/test/java/net/megaproxy487/data/ConfigTransferTest.kt similarity index 94% rename from app/src/test/java/dev/megaproxy/app/data/ConfigTransferTest.kt rename to app/src/test/java/net/megaproxy487/data/ConfigTransferTest.kt index ed45e17..c5acca0 100644 --- a/app/src/test/java/dev/megaproxy/app/data/ConfigTransferTest.kt +++ b/app/src/test/java/net/megaproxy487/data/ConfigTransferTest.kt @@ -1,8 +1,8 @@ -package dev.megaproxy.app.data +package net.megaproxy487.data -import dev.megaproxy.app.model.ProxyConfig -import dev.megaproxy.app.model.ProxyProfile -import dev.megaproxy.app.model.TlsProfile +import net.megaproxy487.model.ProxyConfig +import net.megaproxy487.model.ProxyProfile +import net.megaproxy487.model.TlsProfile import org.junit.Assert.assertEquals import org.junit.Assert.assertFalse import org.junit.Assert.assertTrue diff --git a/app/src/test/java/dev/megaproxy/app/data/ProxyListParserTest.kt b/app/src/test/java/net/megaproxy487/data/ProxyListParserTest.kt similarity index 97% rename from app/src/test/java/dev/megaproxy/app/data/ProxyListParserTest.kt rename to app/src/test/java/net/megaproxy487/data/ProxyListParserTest.kt index 36168b5..90c57a1 100644 --- a/app/src/test/java/dev/megaproxy/app/data/ProxyListParserTest.kt +++ b/app/src/test/java/net/megaproxy487/data/ProxyListParserTest.kt @@ -1,4 +1,4 @@ -package dev.megaproxy.app.data +package net.megaproxy487.data import org.junit.Assert.assertEquals import org.junit.Assert.assertTrue diff --git a/app/src/test/java/dev/megaproxy/app/model/Ja3SpecTest.kt b/app/src/test/java/net/megaproxy487/model/Ja3SpecTest.kt similarity index 93% rename from app/src/test/java/dev/megaproxy/app/model/Ja3SpecTest.kt rename to app/src/test/java/net/megaproxy487/model/Ja3SpecTest.kt index bf8f776..9663da8 100644 --- a/app/src/test/java/dev/megaproxy/app/model/Ja3SpecTest.kt +++ b/app/src/test/java/net/megaproxy487/model/Ja3SpecTest.kt @@ -1,4 +1,4 @@ -package dev.megaproxy.app.model +package net.megaproxy487.model import org.junit.Assert.assertEquals import org.junit.Assert.assertNull diff --git a/app/src/test/java/dev/megaproxy/app/model/ProxyConfigTest.kt b/app/src/test/java/net/megaproxy487/model/ProxyConfigTest.kt similarity index 94% rename from app/src/test/java/dev/megaproxy/app/model/ProxyConfigTest.kt rename to app/src/test/java/net/megaproxy487/model/ProxyConfigTest.kt index 94e5db2..4589394 100644 --- a/app/src/test/java/dev/megaproxy/app/model/ProxyConfigTest.kt +++ b/app/src/test/java/net/megaproxy487/model/ProxyConfigTest.kt @@ -1,4 +1,4 @@ -package dev.megaproxy.app.model +package net.megaproxy487.model import org.junit.Assert.assertEquals import org.junit.Assert.assertNull diff --git a/scripts/android-jdwp.sh b/scripts/android-jdwp.sh index 134645c..e3d3838 100755 --- a/scripts/android-jdwp.sh +++ b/scripts/android-jdwp.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -euo pipefail -package_name="dev.megaproxy.app" +package_name="net.megaproxy487" component_name="$package_name/.MainActivity" debug_port="8700" jdwp_pid_file="${TMPDIR:-/tmp}/megaproxy-jdwp-session.pid" @@ -73,7 +73,7 @@ if [[ "$(adb -e get-state)" != "device" ]]; then exit 1 fi -echo "JDWP ready: dev.megaproxy.app pid=$app_pid port=$debug_port" +echo "JDWP ready: net.megaproxy487 pid=$app_pid port=$debug_port" echo "Forward: $forward_entry" if [[ "${MEGAPROXY_JDWP_KEEP_ALIVE:-0}" == "1" ]]; then diff --git a/scripts/android-logcat.sh b/scripts/android-logcat.sh index 29a723f..372c967 100755 --- a/scripts/android-logcat.sh +++ b/scripts/android-logcat.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -euo pipefail -package_name="dev.megaproxy.app" +package_name="net.megaproxy487" adb -e wait-for-device app_pid="$(adb -e shell pidof -s "$package_name" 2>/dev/null | tr -d '\r' || true)" diff --git a/scripts/run-android-app.sh b/scripts/run-android-app.sh index 6073c4e..24b29b5 100755 --- a/scripts/run-android-app.sh +++ b/scripts/run-android-app.sh @@ -26,4 +26,4 @@ mkdir -p "$project_dir/app/libs" ) adb -e install -r "$project_dir/app/build/outputs/apk/debug/app-debug.apk" -adb -e shell am start -n dev.megaproxy.app/.MainActivity +adb -e shell am start -n net.megaproxy487/.MainActivity diff --git a/scripts/stop-android-app-session.sh b/scripts/stop-android-app-session.sh index e36f12d..6cbb898 100755 --- a/scripts/stop-android-app-session.sh +++ b/scripts/stop-android-app-session.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -euo pipefail -package_name="dev.megaproxy.app" +package_name="net.megaproxy487" debug_port="8700" jdwp_pid_file="${TMPDIR:-/tmp}/megaproxy-jdwp-session.pid" From bdaa01aa612cf72dbac4402fd06dd5ab790cbc96 Mon Sep 17 00:00:00 2001 From: Andrey Prokopyuk Date: Tue, 1 Sep 2026 00:25:03 +0300 Subject: [PATCH 07/41] Add persistant log --- app/src/main/AndroidManifest.xml | 1 + .../net/megaproxy487/DiagnosticLogActivity.kt | 190 ++++++++++++++++++ .../java/net/megaproxy487/MainActivity.kt | 3 + .../net/megaproxy487/ProxySettingsActivity.kt | 8 + .../java/net/megaproxy487/data/ConfigStore.kt | 8 + .../net/megaproxy487/data/ConfigTransfer.kt | 3 + .../net/megaproxy487/vpn/DiagnosticLog.kt | 14 +- .../vpn/PersistentDiagnosticLog.kt | 153 ++++++++++++++ .../java/net/megaproxy487/vpn/ProxyCore.kt | 4 +- .../net/megaproxy487/vpn/ProxyVpnService.kt | 8 +- .../vpn/PrivacyLogSanitizerTest.kt | 34 ++++ native/mobile/bootstrap.go | 4 +- native/mobile/diagnostics.go | 49 ++++- native/mobile/dialer.go | 49 +++-- native/mobile/doh.go | 6 +- native/mobile/mobile.go | 2 +- native/mobile/test_connection.go | 20 +- scripts/start-android-emulator.sh | 1 + 18 files changed, 517 insertions(+), 40 deletions(-) create mode 100644 app/src/main/java/net/megaproxy487/DiagnosticLogActivity.kt create mode 100644 app/src/main/java/net/megaproxy487/vpn/PersistentDiagnosticLog.kt create mode 100644 app/src/test/java/net/megaproxy487/vpn/PrivacyLogSanitizerTest.kt diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c12fd81..e8f3f9b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -25,6 +25,7 @@ + ()) } + var autoScroll by remember { mutableStateOf(true) } + var limitText by remember { mutableStateOf(store.diagnosticLogLimitMb().toString()) } + var showClearConfirmation by remember { mutableStateOf(false) } + var message by remember { mutableStateOf(null) } + val isAtBottom by remember { + derivedStateOf { + lines.isEmpty() || listState.layoutInfo.visibleItemsInfo.lastOrNull()?.index == lines.lastIndex + } + } + + val exportDocument = rememberLauncherForActivityResult(ActivityResultContracts.CreateDocument("text/plain")) { uri -> + if (uri != null) { + runCatching { + activity.contentResolver.openOutputStream(uri, "wt")?.buffered()?.use { + PersistentDiagnosticLog.copyTo(it) + } ?: error("Could not open the export file") + }.onSuccess { message = "Diagnostic log exported." } + .onFailure { message = it.message ?: "Could not export the diagnostic log" } + } + } + + LaunchedEffect(lifecycleOwner) { + lifecycleOwner.lifecycle.repeatOnLifecycle(Lifecycle.State.STARTED) { + while (true) { + val content = withContext(Dispatchers.IO) { PersistentDiagnosticLog.readTail(viewerWindowBytes) } + lines = content.lineSequence().filter(String::isNotEmpty).toList() + delay(1_000) + } + } + } + LaunchedEffect(listState) { + listState.interactionSource.interactions.collect { interaction -> + if (interaction is DragInteraction.Start) autoScroll = false + } + } + LaunchedEffect(isAtBottom) { + if (isAtBottom) autoScroll = true + } + LaunchedEffect(lines.size, autoScroll) { + if (autoScroll && lines.isNotEmpty()) listState.scrollToItem(lines.lastIndex) + } + + Scaffold( + topBar = { + TopAppBar( + title = { Text("Diagnostic log") }, + navigationIcon = { + IconButton(onClick = { activity.finish() }) { + Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Back") + } + }, + ) + }, + ) { padding -> + Column( + Modifier.fillMaxSize().padding(padding).padding(horizontal = 16.dp), + verticalArrangement = Arrangement.spacedBy(8.dp), + ) { + OutlinedTextField( + value = limitText, + onValueChange = { value -> + if (value.all(Char::isDigit) && value.length <= 3) { + limitText = value + value.toIntOrNull()?.takeIf { + it in PersistentDiagnosticLog.MIN_LIMIT_MB..PersistentDiagnosticLog.MAX_LIMIT_MB + }?.let { + store.setDiagnosticLogLimitMb(it) + PersistentDiagnosticLog.setLimitMb(it) + } + } + }, + label = { Text("Rotated log limit (MB)") }, + supportingText = { Text("Total size across both log segments; 1–100 MB.") }, + singleLine = true, + modifier = Modifier.fillMaxWidth(), + ) + Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.spacedBy(8.dp)) { + Button(onClick = { exportDocument.launch("MegaProxy-diagnostic.log") }, modifier = Modifier.weight(1f)) { + Text("Export") + } + OutlinedButton(onClick = { showClearConfirmation = true }, modifier = Modifier.weight(1f)) { + Text("Clear") + } + } + Text( + buildString { + append(if (autoScroll) "Auto-scroll on" else "Auto-scroll paused · scroll to the bottom to resume") + append(" · showing the latest 512 KB") + }, + style = MaterialTheme.typography.bodySmall, + color = MaterialTheme.colorScheme.onSurfaceVariant, + ) + LazyColumn( + state = listState, + modifier = Modifier.fillMaxWidth().weight(1f), + ) { + if (lines.isEmpty()) item { Text("No diagnostic events yet.") } + itemsIndexed(lines, key = { index, _ -> index }) { _, line -> + Text(line, style = MaterialTheme.typography.bodySmall, fontFamily = FontFamily.Monospace) + } + } + } + } + + if (showClearConfirmation) { + AlertDialog( + onDismissRequest = { showClearConfirmation = false }, + title = { Text("Clear diagnostic log?") }, + text = { Text("Both rotated log segments will be deleted.") }, + confirmButton = { TextButton(onClick = { + showClearConfirmation = false + PersistentDiagnosticLog.clear() + }) { Text("Clear") } }, + dismissButton = { TextButton(onClick = { showClearConfirmation = false }) { Text("Cancel") } }, + ) + } + message?.let { + AlertDialog( + onDismissRequest = { message = null }, + text = { Text(it) }, + confirmButton = { TextButton(onClick = { message = null }) { Text("OK") } }, + ) + } +} diff --git a/app/src/main/java/net/megaproxy487/MainActivity.kt b/app/src/main/java/net/megaproxy487/MainActivity.kt index b81ba56..912641c 100644 --- a/app/src/main/java/net/megaproxy487/MainActivity.kt +++ b/app/src/main/java/net/megaproxy487/MainActivity.kt @@ -65,11 +65,14 @@ import net.megaproxy487.vpn.ProxyVpnService import net.megaproxy487.vpn.VpnConnectionState import net.megaproxy487.vpn.VpnRuntimeState import net.megaproxy487.vpn.readAlwaysOnVpnStatus +import net.megaproxy487.vpn.PersistentDiagnosticLog import net.megaproxy487.model.ProfileColors class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + val store = ConfigStore(this) + PersistentDiagnosticLog.initialize(this, store.diagnosticLogLimitMb()) BatteryOptimizationReminder.maybeRequest(this) setContent { MaterialTheme { MainScreen(this) } } } diff --git a/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt b/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt index 10482d8..9342afa 100644 --- a/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt +++ b/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt @@ -66,6 +66,7 @@ import net.megaproxy487.data.PortableConfiguration import net.megaproxy487.data.ProxyListParser import net.megaproxy487.model.ProfileColors import net.megaproxy487.model.ProxyProfile +import net.megaproxy487.vpn.PersistentDiagnosticLog import net.megaproxy487.model.ProfileSort import net.megaproxy487.vpn.ProxyVpnService @@ -123,6 +124,7 @@ private fun SettingsScreen(activity: Activity) { } fun applyJsonImport(configuration: PortableConfiguration) { val added = store.importConfiguration(configuration) + PersistentDiagnosticLog.setLimitMb(store.diagnosticLogLimitMb()) sort = store.profileSort() ascending = store.isProfileSortAscending() refresh() @@ -244,6 +246,12 @@ private fun SettingsScreen(activity: Activity) { }) }, modifier = Modifier.fillMaxWidth()) { Text("Battery settings") } } + item { + OutlinedButton( + onClick = { activity.startActivity(Intent(activity, DiagnosticLogActivity::class.java)) }, + modifier = Modifier.fillMaxWidth(), + ) { Text("Diagnostic log") } + } item { HorizontalDivider(Modifier.padding(vertical = 6.dp)) } item { Text("Profiles", style = MaterialTheme.typography.titleLarge, modifier = Modifier.padding(top = 8.dp)) } item { diff --git a/app/src/main/java/net/megaproxy487/data/ConfigStore.kt b/app/src/main/java/net/megaproxy487/data/ConfigStore.kt index 2a52fc7..e207651 100644 --- a/app/src/main/java/net/megaproxy487/data/ConfigStore.kt +++ b/app/src/main/java/net/megaproxy487/data/ConfigStore.kt @@ -151,6 +151,7 @@ class ConfigStore(context: Context) { val editor = prefs.edit() .putString(PROFILE_SORT, configuration.sort.name) .putBoolean(PROFILE_SORT_ASCENDING, configuration.sortAscending) + .putInt(DIAGNOSTIC_LOG_LIMIT_MB, configuration.diagnosticLogLimitMb) configuration.activeProfileId?.let(idMap::get)?.let { editor.putString(ACTIVE_PROFILE_ID, it) } configuration.alwaysOnProfileId?.let(idMap::get)?.let { editor.putString(ALWAYS_ON_PROFILE_ID, it) } editor.apply() @@ -189,6 +190,12 @@ class ConfigStore(context: Context) { prefs.edit().putBoolean("connection_desired", desired).apply() } + fun diagnosticLogLimitMb(): Int = prefs.getInt(DIAGNOSTIC_LOG_LIMIT_MB, 3).coerceIn(1, 100) + + fun setDiagnosticLogLimitMb(value: Int) { + prefs.edit().putInt(DIAGNOSTIC_LOG_LIMIT_MB, value.coerceIn(1, 100)).apply() + } + private fun ensureMigrated() { if (prefs.contains(PROFILES)) return synchronized(prefs) { @@ -335,5 +342,6 @@ class ConfigStore(context: Context) { const val CURRENT_FLAG_COLOR_VERSION = 1 const val PROFILE_SORT = "profile_sort" const val PROFILE_SORT_ASCENDING = "profile_sort_ascending" + const val DIAGNOSTIC_LOG_LIMIT_MB = "diagnostic_log_limit_mb" } } diff --git a/app/src/main/java/net/megaproxy487/data/ConfigTransfer.kt b/app/src/main/java/net/megaproxy487/data/ConfigTransfer.kt index 5d682ec..d52f136 100644 --- a/app/src/main/java/net/megaproxy487/data/ConfigTransfer.kt +++ b/app/src/main/java/net/megaproxy487/data/ConfigTransfer.kt @@ -21,6 +21,7 @@ data class PortableConfiguration( val alwaysOnProfileId: String?, val sort: ProfileSort, val sortAscending: Boolean, + val diagnosticLogLimitMb: Int = 3, val skippedProfiles: Int = 0, ) @@ -51,6 +52,7 @@ object ConfigTransfer { put("alwaysOnProfileId", store.alwaysOnProfileId()) put("profileSort", store.profileSort().name) put("profileSortAscending", store.isProfileSortAscending()) + put("diagnosticLogLimitMb", store.diagnosticLogLimitMb()) put("profiles", JSONArray().apply { store.profiles().forEach { profile -> put(encodeProfile(profile, includePasswords)) } }) @@ -73,6 +75,7 @@ object ConfigTransfer { alwaysOnProfileId = root.optString("alwaysOnProfileId").ifBlank { null }, sort = enumValue(root.optString("profileSort"), ProfileSort.NAME), sortAscending = root.optBoolean("profileSortAscending", true), + diagnosticLogLimitMb = root.optInt("diagnosticLogLimitMb", 3).coerceIn(1, 100), skippedProfiles = decoded.count(Result::isFailure), ) } diff --git a/app/src/main/java/net/megaproxy487/vpn/DiagnosticLog.kt b/app/src/main/java/net/megaproxy487/vpn/DiagnosticLog.kt index 370ea78..cf271ae 100644 --- a/app/src/main/java/net/megaproxy487/vpn/DiagnosticLog.kt +++ b/app/src/main/java/net/megaproxy487/vpn/DiagnosticLog.kt @@ -14,8 +14,10 @@ object DiagnosticLog { val entries = mutableStateListOf() fun add(message: String) { + val safeMessage = PrivacyLogSanitizer.sanitize(message) + PersistentDiagnosticLog.write(safeMessage) val append = { - entries.add("${LocalTime.now().format(timeFormat)} $message") + entries.add("${LocalTime.now().format(timeFormat)} $safeMessage") while (entries.size > MAX_ENTRIES) entries.removeAt(0) } if (Looper.myLooper() == Looper.getMainLooper()) append() else mainHandler.post(append) @@ -54,9 +56,13 @@ object TestDiagnosticLog { mutableState.value = TestState.RUNNING } - fun add(message: String) = onMain { - entries.add("${LocalTime.now().format(timeFormat)} $message") - while (entries.size > MAX_ENTRIES) entries.removeAt(0) + fun add(message: String) { + val safeMessage = PrivacyLogSanitizer.sanitize(message) + PersistentDiagnosticLog.write("scope=connection_test $safeMessage") + onMain { + entries.add("${LocalTime.now().format(timeFormat)} $safeMessage") + while (entries.size > MAX_ENTRIES) entries.removeAt(0) + } } fun succeed(ip: String) = onMain { diff --git a/app/src/main/java/net/megaproxy487/vpn/PersistentDiagnosticLog.kt b/app/src/main/java/net/megaproxy487/vpn/PersistentDiagnosticLog.kt new file mode 100644 index 0000000..6bc294c --- /dev/null +++ b/app/src/main/java/net/megaproxy487/vpn/PersistentDiagnosticLog.kt @@ -0,0 +1,153 @@ +package net.megaproxy487.vpn + +import android.content.Context +import android.os.Build +import java.io.File +import java.io.OutputStream +import java.io.RandomAccessFile +import java.time.Instant +import java.util.UUID +import java.util.concurrent.Executors + +object PersistentDiagnosticLog { + const val DEFAULT_LIMIT_MB = 3 + const val MIN_LIMIT_MB = 1 + const val MAX_LIMIT_MB = 100 + + private const val CURRENT_FILE = "diagnostic.log" + private const val PREVIOUS_FILE = "diagnostic.1.log" + private val executor = Executors.newSingleThreadExecutor { task -> + Thread(task, "megaproxy-diagnostic-log").apply { isDaemon = true } + } + private val lock = Any() + private val sessionId = UUID.randomUUID().toString().take(8) + @Volatile private var directory: File? = null + @Volatile private var limitMb = DEFAULT_LIMIT_MB + + fun initialize(context: Context, configuredLimitMb: Int) { + directory = File(context.filesDir, "logs").also { it.mkdirs() } + limitMb = configuredLimitMb.coerceIn(MIN_LIMIT_MB, MAX_LIMIT_MB) + enforceLimitAsync() + write("event=logger_initialized session=$sessionId api=${Build.VERSION.SDK_INT} limit_mb=$limitMb") + } + + fun setLimitMb(value: Int) { + limitMb = value.coerceIn(MIN_LIMIT_MB, MAX_LIMIT_MB) + enforceLimitAsync() + write("event=log_limit_changed limit_mb=$limitMb") + } + + fun write(rawMessage: String) { + val safeMessage = PrivacyLogSanitizer.sanitize(rawMessage) + val line = "${Instant.now()} session=$sessionId $safeMessage\n" + executor.execute { + synchronized(lock) { + val logDirectory = directory ?: return@synchronized + rotateIfNeeded(logDirectory, line.toByteArray().size.toLong()) + File(logDirectory, CURRENT_FILE).appendText(line, Charsets.UTF_8) + } + } + } + + fun readTail(maxBytes: Int): String = synchronized(lock) { + val logDirectory = directory ?: return "" + val files = listOf(PREVIOUS_FILE, CURRENT_FILE).map { File(logDirectory, it) }.filter(File::isFile) + var remaining = maxBytes.coerceAtLeast(1) + val chunks = ArrayDeque() + for (file in files.asReversed()) { + if (remaining == 0) break + val count = minOf(file.length(), remaining.toLong()).toInt() + if (count == 0) continue + val chunk = ByteArray(count) + RandomAccessFile(file, "r").use { input -> + input.seek(file.length() - count) + input.readFully(chunk) + } + chunks.addFirst(chunk) + remaining -= count + } + val bytes = chunks.fold(ByteArray(0)) { result, chunk -> result + chunk } + val text = bytes.toString(Charsets.UTF_8) + if (remaining == 0) text.substringAfter('\n', "") else text + } + + fun copyTo(output: OutputStream) = synchronized(lock) { + val logDirectory = directory ?: return + listOf(PREVIOUS_FILE, CURRENT_FILE).forEach { name -> + val file = File(logDirectory, name) + if (file.isFile) file.inputStream().buffered().use { it.copyTo(output) } + } + } + + fun clear() { + executor.execute { + synchronized(lock) { + val logDirectory = directory ?: return@synchronized + File(logDirectory, CURRENT_FILE).delete() + File(logDirectory, PREVIOUS_FILE).delete() + } + write("event=log_cleared") + } + } + + private fun rotateIfNeeded(logDirectory: File, incomingBytes: Long) { + val segmentLimit = segmentLimitBytes() + val current = File(logDirectory, CURRENT_FILE) + if (current.length() + incomingBytes <= segmentLimit) return + val previous = File(logDirectory, PREVIOUS_FILE) + previous.delete() + if (current.isFile) current.renameTo(previous) + if (incomingBytes > segmentLimit) current.writeText("", Charsets.UTF_8) + } + + private fun enforceLimitAsync() { + executor.execute { + synchronized(lock) { + val logDirectory = directory ?: return@synchronized + val segmentLimit = segmentLimitBytes() + trimToTail(File(logDirectory, PREVIOUS_FILE), segmentLimit) + trimToTail(File(logDirectory, CURRENT_FILE), segmentLimit) + } + } + } + + private fun segmentLimitBytes(): Long = limitMb.toLong() * 1024 * 1024 / 2 + + private fun trimToTail(file: File, maxBytes: Long) { + if (!file.isFile || file.length() <= maxBytes) return + val temporary = File(file.parentFile, "${file.name}.trim") + RandomAccessFile(file, "r").use { input -> + input.seek(file.length() - maxBytes) + while (input.filePointer < input.length() && input.read() != '\n'.code) Unit + temporary.outputStream().buffered().use { output -> + val buffer = ByteArray(DEFAULT_BUFFER_SIZE) + while (true) { + val count = input.read(buffer) + if (count < 0) break + output.write(buffer, 0, count) + } + } + } + file.delete() + temporary.renameTo(file) + } +} + +object PrivacyLogSanitizer { + private val url = Regex("(?i)https?://[^\\s]+") + private val ipv4 = Regex("(? %s", host, ip) + report(reporter, "event=bootstrap_dns stage=response result=success family=ipv4") return ip, nil } diff --git a/native/mobile/diagnostics.go b/native/mobile/diagnostics.go index 59bd5b1..06fe3f7 100644 --- a/native/mobile/diagnostics.go +++ b/native/mobile/diagnostics.go @@ -1,12 +1,59 @@ package mobile -import "fmt" +import ( + "errors" + "fmt" + "io" + "net" + "strings" + "sync/atomic" +) + +var diagnosticConnectionSequence atomic.Uint64 // Reporter is implemented by Android and receives sanitized diagnostic events. type Reporter interface { Report(message string) } +func nextDiagnosticConnectionID() uint64 { return diagnosticConnectionSequence.Add(1) } + +func errorClass(err error) string { + if err == nil { + return "none" + } + if errors.Is(err, io.EOF) { + return "eof" + } + if netErr, ok := err.(net.Error); ok && netErr.Timeout() { + return "timeout" + } + message := strings.ToLower(err.Error()) + switch { + case strings.Contains(message, "reset"): + return "reset" + case strings.Contains(message, "refused"): + return "refused" + case strings.Contains(message, "unreachable"): + return "unreachable" + case strings.Contains(message, "certificate") || strings.Contains(message, "x509"): + return "certificate" + case strings.Contains(message, "tls") && strings.Contains(message, "alert"): + return "tls_alert" + case strings.Contains(message, "protect rejected"): + return "vpn_protect" + default: + return "other" + } +} + +func tlsInterferenceHint(reason string) string { + if reason == "reset" || reason == "eof" || reason == "timeout" { + return "possible_tls_interference" + } + return "none" +} + func report(reporter Reporter, format string, args ...any) { if reporter != nil { reporter.Report(fmt.Sprintf(format, args...)) diff --git a/native/mobile/dialer.go b/native/mobile/dialer.go index c37e84b..6ab9f6b 100644 --- a/native/mobile/dialer.go +++ b/native/mobile/dialer.go @@ -33,37 +33,41 @@ func (d *httpsConnectDialer) DialContext(ctx context.Context, metadata *M.Metada } func (d *httpsConnectDialer) connectTarget(ctx context.Context, target string) (net.Conn, error) { + connectionID := nextDiagnosticConnectionID() + totalStarted := time.Now() if !d.config.AllowIPv6 { host, _, err := net.SplitHostPort(target) if err == nil { if ip := net.ParseIP(host); ip != nil && ip.To4() == nil { err = errors.New("IPv6 destination blocked by IPv4-only mode") - report(d.reporter, "CONNECT %s failed: %v", target, err) + report(d.reporter, "event=connection conn=%d stage=policy result=blocked reason=ipv6_disabled", connectionID) return nil, err } } } if d.config.BypassLocalNetworks && isLocalNetworkTarget(target) { - report(d.reporter, "DIRECT %s: bypassing proxy for local network", target) + report(d.reporter, "event=connection conn=%d mode=direct stage=tcp_connect result=started", connectionID) + directStarted := time.Now() connection, err := d.protectedDialer().DialContext(ctx, "tcp", target) if err != nil { err = fmt.Errorf("dial local network directly: %w", err) - report(d.reporter, "DIRECT %s failed: %v", target, err) + report(d.reporter, "event=connection conn=%d mode=direct stage=tcp_connect result=failed reason=%s elapsed_ms=%d", connectionID, errorClass(err), time.Since(directStarted).Milliseconds()) return nil, err } - return &diagnosticConn{Conn: connection, target: target, reporter: d.reporter}, nil + report(d.reporter, "event=connection conn=%d mode=direct stage=tcp_connect result=success elapsed_ms=%d", connectionID, time.Since(directStarted).Milliseconds()) + return &diagnosticConn{Conn: connection, connectionID: connectionID, reporter: d.reporter}, nil } - report(d.reporter, "CONNECT %s: opening TCP connection to proxy %s via %s", target, d.config.displayAddress(), d.config.address()) + report(d.reporter, "event=connection conn=%d mode=proxy stage=tcp_connect result=started fingerprint=%s", connectionID, d.config.Profile) dialStarted := time.Now() raw, err := d.protectedDialer().DialContext(ctx, "tcp", d.config.address()) if err != nil { recordConnectionOutcome(false) err = fmt.Errorf("dial HTTPS proxy: %w", err) - report(d.reporter, "CONNECT %s failed: %v", target, err) + report(d.reporter, "event=connection conn=%d mode=proxy stage=tcp_connect result=failed reason=%s elapsed_ms=%d", connectionID, errorClass(err), time.Since(dialStarted).Milliseconds()) return nil, err } recordProxyLatency(time.Since(dialStarted)) - report(d.reporter, "CONNECT %s: proxy TCP connected", target) + report(d.reporter, "event=connection conn=%d mode=proxy stage=tcp_connect result=success elapsed_ms=%d", connectionID, time.Since(dialStarted).Milliseconds()) closeOnError := true defer func() { if closeOnError { @@ -74,7 +78,7 @@ func (d *httpsConnectDialer) connectTarget(ctx context.Context, target string) ( hello, err := d.config.helloID() if err != nil { recordConnectionOutcome(false) - report(d.reporter, "CONNECT %s failed: %v", target, err) + report(d.reporter, "event=connection conn=%d mode=proxy stage=fingerprint result=failed reason=invalid_configuration", connectionID) return nil, err } uconn := tls.UClient(raw, &tls.Config{ @@ -85,24 +89,26 @@ func (d *httpsConnectDialer) connectTarget(ctx context.Context, target string) ( if hello == tls.HelloCustom { if err := applyJA3(uconn, d.config.CustomJA3, d.config.Host); err != nil { recordConnectionOutcome(false) - report(d.reporter, "CONNECT %s failed: %v", target, err) + report(d.reporter, "event=connection conn=%d mode=proxy stage=fingerprint result=failed reason=invalid_ja3", connectionID) return nil, err } } + tlsStarted := time.Now() if err := uconn.HandshakeContext(ctx); err != nil { recordConnectionOutcome(false) + reason := errorClass(err) + report(d.reporter, "event=connection conn=%d mode=proxy stage=tls_handshake result=failed reason=%s elapsed_ms=%d dpi_hint=%s fingerprint=%s", connectionID, reason, time.Since(tlsStarted).Milliseconds(), tlsInterferenceHint(reason), d.config.Profile) err = fmt.Errorf("TLS handshake with proxy: %w", err) - report(d.reporter, "CONNECT %s failed: %v", target, err) return nil, err } tlsState := uconn.ConnectionState() - report(d.reporter, "CONNECT %s: proxy TLS established version=0x%04x cipher=0x%04x ALPN=%q certificates=%d", target, tlsState.Version, tlsState.CipherSuite, tlsState.NegotiatedProtocol, len(tlsState.PeerCertificates)) + report(d.reporter, "event=connection conn=%d mode=proxy stage=tls_handshake result=success elapsed_ms=%d version=0x%04x cipher=0x%04x alpn=%q certificates=%d", connectionID, time.Since(tlsStarted).Milliseconds(), tlsState.Version, tlsState.CipherSuite, tlsState.NegotiatedProtocol, len(tlsState.PeerCertificates)) auth := base64.StdEncoding.EncodeToString([]byte(d.config.Username + ":" + d.config.Password)) if _, err := fmt.Fprintf(uconn, "CONNECT %s HTTP/1.1\r\nHost: %s\r\nProxy-Authorization: Basic %s\r\nProxy-Connection: Keep-Alive\r\n\r\n", target, target, auth); err != nil { recordConnectionOutcome(false) err = fmt.Errorf("write CONNECT: %w", err) - report(d.reporter, "CONNECT %s failed: %v", target, err) + report(d.reporter, "event=connection conn=%d mode=proxy stage=connect_write result=failed reason=%s", connectionID, errorClass(err)) return nil, err } reader := bufio.NewReader(uconn) @@ -110,24 +116,25 @@ func (d *httpsConnectDialer) connectTarget(ctx context.Context, target string) ( if err != nil { recordConnectionOutcome(false) err = fmt.Errorf("read CONNECT response: %w", err) - report(d.reporter, "CONNECT %s failed: %v", target, err) + reason := errorClass(err) + report(d.reporter, "event=connection conn=%d mode=proxy stage=connect_response result=failed reason=%s dpi_hint=%s", connectionID, reason, tlsInterferenceHint(reason)) return nil, err } if response.StatusCode != http.StatusOK { recordConnectionOutcome(false) _ = response.Body.Close() err = fmt.Errorf("proxy CONNECT returned %s", response.Status) - report(d.reporter, "CONNECT %s failed: %v", target, err) + report(d.reporter, "event=connection conn=%d mode=proxy stage=connect_response result=rejected status=%d status_class=%dxx", connectionID, response.StatusCode, response.StatusCode/100) return nil, err } recordConnectionOutcome(true) - report(d.reporter, "CONNECT %s: tunnel established", target) + report(d.reporter, "event=connection conn=%d mode=proxy stage=tunnel result=established total_ms=%d", connectionID, time.Since(totalStarted).Milliseconds()) closeOnError = false var connection net.Conn = uconn if reader.Buffered() > 0 { connection = &bufferedConn{Conn: uconn, reader: reader} } - return &diagnosticConn{Conn: connection, target: target, reporter: d.reporter}, nil + return &diagnosticConn{Conn: connection, connectionID: connectionID, reporter: d.reporter}, nil } func (d *httpsConnectDialer) protectedDialer() *net.Dialer { @@ -176,14 +183,16 @@ func (c *bufferedConn) Read(p []byte) (int, error) { return c.reader.Read(p) } type diagnosticConn struct { net.Conn - target string - reporter Reporter - once sync.Once + connectionID uint64 + reporter Reporter + once sync.Once } func (c *diagnosticConn) reportError(operation string, err error) { if err != nil && !errors.Is(err, io.EOF) && !errors.Is(err, net.ErrClosed) { - c.once.Do(func() { report(c.reporter, "CONNECT %s: tunnel %s ended: %v", c.target, operation, err) }) + c.once.Do(func() { + report(c.reporter, "event=connection conn=%d stage=tunnel_io result=failed operation=%s reason=%s", c.connectionID, operation, errorClass(err)) + }) } } diff --git a/native/mobile/doh.go b/native/mobile/doh.go index 7689057..cc87703 100644 --- a/native/mobile/doh.go +++ b/native/mobile/doh.go @@ -70,7 +70,7 @@ func (c *dohPacketConn) WriteTo(payload []byte, addr net.Addr) (int, error) { return 0, err } if isAAAA { - report(c.dialer.reporter, "DoH AAAA query suppressed by IPv4-only mode") + report(c.dialer.reporter, "event=doh result=suppressed query_type=aaaa reason=ipv4_only") c.deliver(dnsReply{payload: response, addr: addr}) return len(payload), nil } @@ -99,10 +99,10 @@ func (c *dohPacketConn) WriteTo(payload []byte, addr net.Addr) (int, error) { } } if err != nil { - report(c.dialer.reporter, "DoH query failed via %s: %v", c.url, err) + report(c.dialer.reporter, "event=doh result=failed reason=%s", errorClass(err)) c.deliver(dnsReply{addr: addr, err: err}) } else { - report(c.dialer.reporter, "DoH query succeeded via %s", c.url) + report(c.dialer.reporter, "event=doh result=success") } }() return len(payload), nil diff --git a/native/mobile/mobile.go b/native/mobile/mobile.go index 69566a5..655ba14 100644 --- a/native/mobile/mobile.go +++ b/native/mobile/mobile.go @@ -57,7 +57,7 @@ func Start(tunFD int, rawConfig string, protector Protector, reporter Reporter) return err } state.device, state.stack, state.running = dev, netstack, true - report(reporter, "Native TCP/IP stack started; proxy=%s via %s profile=%s DoH=%s", c.displayAddress(), c.address(), c.Profile, c.DoHURL) + report(reporter, "event=native_stack result=started fingerprint=%s ipv6=%t bypass_local=%t", c.Profile, c.AllowIPv6, c.BypassLocalNetworks) return nil } diff --git a/native/mobile/test_connection.go b/native/mobile/test_connection.go index 3ff54e1..93cce03 100644 --- a/native/mobile/test_connection.go +++ b/native/mobile/test_connection.go @@ -6,6 +6,7 @@ import ( stdtls "crypto/tls" "fmt" "io" + "net" "net/http" "strings" "time" @@ -21,11 +22,11 @@ func TestConnection(rawConfig string, protector Protector, reporter Reporter) (s ctx, cancel := context.WithTimeout(context.Background(), 45*time.Second) defer cancel() - report(reporter, "Connection test started") + report(reporter, "event=connection_test result=started") if _, err := testHTTPSGet(ctx, dialer, "example.com", "/", false); err != nil { return "", fmt.Errorf("example.com check: %w", err) } - report(reporter, "example.com HTTPS check succeeded") + report(reporter, "event=connection_test stage=https_check result=success") ip, err := testHTTPSGet(ctx, dialer, "ifconfig.me", "/ip", true) if err != nil { @@ -35,10 +36,21 @@ func TestConnection(rawConfig string, protector Protector, reporter Reporter) (s if ip == "" || len(ip) > 128 { return "", fmt.Errorf("public IP check returned an invalid response") } - report(reporter, "Connection test succeeded; proxy exit IP=%s", ip) + report(reporter, "event=connection_test stage=exit_ip result=success family=%s", ipFamily(ip)) return ip, nil } +func ipFamily(value string) string { + ip := net.ParseIP(strings.TrimSpace(value)) + if ip == nil { + return "unknown" + } + if ip.To4() != nil { + return "ipv4" + } + return "ipv6" +} + func testHTTPSGet(ctx context.Context, dialer *httpsConnectDialer, host, path string, readBody bool) (string, error) { tunnel, err := dialer.connectTarget(ctx, host+":443") if err != nil { @@ -50,7 +62,7 @@ func testHTTPSGet(ctx context.Context, dialer *httpsConnectDialer, host, path st if err := connection.HandshakeContext(ctx); err != nil { return "", fmt.Errorf("destination TLS handshake: %w", err) } - report(dialer.reporter, "%s: destination TLS certificate verified", host) + report(dialer.reporter, "event=connection_test stage=destination_tls result=success certificate=verified") request, err := http.NewRequestWithContext(ctx, http.MethodGet, "https://"+host+path, nil) if err != nil { diff --git a/scripts/start-android-emulator.sh b/scripts/start-android-emulator.sh index e76bd17..356c197 100755 --- a/scripts/start-android-emulator.sh +++ b/scripts/start-android-emulator.sh @@ -74,6 +74,7 @@ else -feature -WiFiPacketStream -feature -Uwb -feature -Nfc + -netsim-args "--no-test-beacons --no-cli-ui --no-web-ui" ) nohup emulator "${emulator_options[@]}" "$emulator_log" 2>&1 & fi From b03380e5a08cac56e4088c78cb48ee54b3ef596a Mon Sep 17 00:00:00 2001 From: Andrey Prokopyuk Date: Tue, 1 Sep 2026 00:44:08 +0300 Subject: [PATCH 08/41] Add crash handling --- app/src/main/AndroidManifest.xml | 11 +++ .../java/net/megaproxy487/CrashHandler.kt | 35 ++++++++ .../java/net/megaproxy487/FeedbackEmail.kt | 90 +++++++++++++++++++ .../java/net/megaproxy487/MainActivity.kt | 62 ++++++++++++- .../net/megaproxy487/MegaProxyApplication.kt | 14 +++ .../net/megaproxy487/ProxySettingsActivity.kt | 21 +++++ .../vpn/PersistentDiagnosticLog.kt | 57 ++++++++++-- .../net/megaproxy487/vpn/ProxyVpnService.kt | 2 - app/src/main/res/xml/file_paths.xml | 4 + .../vpn/PrivacyLogSanitizerTest.kt | 5 +- 10 files changed, 288 insertions(+), 13 deletions(-) create mode 100644 app/src/main/java/net/megaproxy487/CrashHandler.kt create mode 100644 app/src/main/java/net/megaproxy487/FeedbackEmail.kt create mode 100644 app/src/main/java/net/megaproxy487/MegaProxyApplication.kt create mode 100644 app/src/main/res/xml/file_paths.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e8f3f9b..4f45b49 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -9,6 +9,7 @@ + + + + + runCatching { + PersistentDiagnosticLog.writeCrash(thread, throwable) + this.context?.getSharedPreferences(PREFS, Context.MODE_PRIVATE) + ?.edit()?.putBoolean(PENDING, true)?.commit() + } + if (previous != null) previous.uncaughtException(thread, throwable) else { + Process.killProcess(Process.myPid()) + exitProcess(10) + } + } + } + + fun hasPendingReport(): Boolean = + context?.getSharedPreferences(PREFS, Context.MODE_PRIVATE)?.getBoolean(PENDING, false) == true + + fun markReportHandled() { + context?.getSharedPreferences(PREFS, Context.MODE_PRIVATE)?.edit()?.putBoolean(PENDING, false)?.apply() + } +} diff --git a/app/src/main/java/net/megaproxy487/FeedbackEmail.kt b/app/src/main/java/net/megaproxy487/FeedbackEmail.kt new file mode 100644 index 0000000..acfd64c --- /dev/null +++ b/app/src/main/java/net/megaproxy487/FeedbackEmail.kt @@ -0,0 +1,90 @@ +package net.megaproxy487 + +import android.content.ClipData +import android.content.Context +import android.content.Intent +import android.net.Uri +import android.os.Build +import androidx.core.content.FileProvider +import net.megaproxy487.data.ConfigStore +import net.megaproxy487.vpn.DiagnosticLog +import net.megaproxy487.vpn.PersistentDiagnosticLog +import net.megaproxy487.vpn.VpnConnectionState +import java.io.File +import java.util.zip.ZipEntry +import java.util.zip.ZipOutputStream + +object FeedbackEmail { + private const val ADDRESS = "megaproxy-feedback@hotmail.com" + private const val SUBJECT = "[MegaProxy] Feedback" + + fun createIntent( + context: Context, + connection: VpnConnectionState, + alwaysOn: Boolean, + lockdown: Boolean, + crashReport: Boolean = false, + ): Intent { + val store = ConfigStore(context) + val config = store.connectionProfile().config + val packageInfo = context.packageManager.getPackageInfo(context.packageName, 0) + val versionCode = if (Build.VERSION.SDK_INT >= 28) packageInfo.longVersionCode else { + @Suppress("DEPRECATION") + packageInfo.versionCode.toLong() + } + val versionName = packageInfo.versionName ?: "unknown" + val body = buildString { + appendLine(if (crashReport) "Please describe what happened before the crash above this line." else "Please write your comments above this line.") + appendLine() + appendLine("--- Diagnostic information ---") + appendLine("Device: ${Build.MANUFACTURER} ${Build.MODEL}") + appendLine("Android: ${Build.VERSION.RELEASE} (API ${Build.VERSION.SDK_INT})") + if (Build.VERSION.SECURITY_PATCH.isNotBlank()) appendLine("Security patch: ${Build.VERSION.SECURITY_PATCH}") + appendLine("App: $versionName ($versionCode)") + appendLine("ABI: ${Build.SUPPORTED_ABIS.firstOrNull() ?: "unknown"}") + appendLine("Connection: ${connection.name.lowercase()}") + appendLine("Always-on: $alwaysOn; lockdown: $lockdown") + appendLine("Routing: ${if (config.routeAllApps) "global" else "split"}; selected app count: ${config.selectedPackages.size}") + appendLine("TLS fingerprint: ${config.profile.name}") + appendLine("DoH provider: ${config.dnsProvider.name}") + appendLine("IPv6: ${config.allowIpv6}; bypass local networks: ${config.bypassLocalNetworks}") + appendLine("Proxy certificate verification: ${!config.allowInvalidProxyCertificate}") + appendLine("Privacy-filtered logs are attached.") + } + + val directory = File(context.cacheDir, "feedback").also { it.mkdirs() } + val logFile = File(directory, "megaproxy-diagnostics.zip") + DiagnosticLog.add("event=feedback result=prepared") + ZipOutputStream(logFile.outputStream().buffered()).use { zip -> + zip.putNextEntry(ZipEntry("megaproxy-diagnostic.log")) + PersistentDiagnosticLog.copyTo(zip) + zip.closeEntry() + } + val logUri = FileProvider.getUriForFile(context, "${context.packageName}.fileprovider", logFile) + + val sendIntent = Intent(Intent.ACTION_SEND).apply { + type = "application/zip" + putExtra(Intent.EXTRA_EMAIL, arrayOf(ADDRESS)) + putExtra(Intent.EXTRA_SUBJECT, if (crashReport) "[MegaProxy] Crash" else SUBJECT) + putExtra(Intent.EXTRA_TEXT, body) + putExtra(Intent.EXTRA_STREAM, logUri) + clipData = ClipData.newUri(context.contentResolver, "MegaProxy diagnostic log archive", logUri) + addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) + } + val emailPackages = context.packageManager + .queryIntentActivities(Intent(Intent.ACTION_SENDTO, Uri.parse("mailto:$ADDRESS")), 0) + .map { it.activityInfo.packageName } + .distinct() + val targeted = emailPackages.mapNotNull { packageName -> + Intent(sendIntent).setPackage(packageName).takeIf { + it.resolveActivity(context.packageManager) != null + } + } + if (targeted.isEmpty()) return Intent.createChooser(sendIntent, "Send feedback") + return Intent.createChooser(targeted.first(), "Send feedback").apply { + if (targeted.size > 1) { + putExtra(Intent.EXTRA_INITIAL_INTENTS, targeted.drop(1).toTypedArray()) + } + } + } +} diff --git a/app/src/main/java/net/megaproxy487/MainActivity.kt b/app/src/main/java/net/megaproxy487/MainActivity.kt index 912641c..c7611d5 100644 --- a/app/src/main/java/net/megaproxy487/MainActivity.kt +++ b/app/src/main/java/net/megaproxy487/MainActivity.kt @@ -25,6 +25,7 @@ import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.CheckCircle import androidx.compose.material.icons.outlined.RadioButtonUnchecked import androidx.compose.material3.Button +import androidx.compose.material3.AlertDialog import androidx.compose.material3.Card import androidx.compose.material3.CardDefaults import androidx.compose.material3.ExperimentalMaterial3Api @@ -36,6 +37,7 @@ import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Scaffold import androidx.compose.material3.Surface import androidx.compose.material3.Text +import androidx.compose.material3.TextButton import androidx.compose.material3.TopAppBar import androidx.compose.runtime.Composable import androidx.compose.runtime.DisposableEffect @@ -43,6 +45,7 @@ import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import androidx.compose.foundation.clickable import androidx.compose.foundation.background @@ -60,19 +63,19 @@ import androidx.lifecycle.repeatOnLifecycle import net.megaproxy487.vpn.ConnectionStatsReader import net.megaproxy487.vpn.NativeConnectionStats import kotlinx.coroutines.delay +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import net.megaproxy487.data.ConfigStore import net.megaproxy487.vpn.ProxyVpnService import net.megaproxy487.vpn.VpnConnectionState import net.megaproxy487.vpn.VpnRuntimeState import net.megaproxy487.vpn.readAlwaysOnVpnStatus -import net.megaproxy487.vpn.PersistentDiagnosticLog import net.megaproxy487.model.ProfileColors class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - val store = ConfigStore(this) - PersistentDiagnosticLog.initialize(this, store.diagnosticLogLimitMb()) BatteryOptimizationReminder.maybeRequest(this) setContent { MaterialTheme { MainScreen(this) } } } @@ -102,9 +105,11 @@ private fun MainScreen(activity: Activity) { var connectionProfileId by remember { mutableStateOf(store.connectionProfile().id) } var connectionStats by remember { mutableStateOf(null) } var systemVpnStatus by remember { mutableStateOf(readAlwaysOnVpnStatus(activity)) } + var showCrashReport by remember { mutableStateOf(CrashHandler.hasPendingReport()) } val alwaysOn = runtimeAlwaysOn || systemVpnStatus.enabled val lockdown = runtimeLockdown || systemVpnStatus.lockdown val lifecycleOwner = LocalLifecycleOwner.current + val scope = rememberCoroutineScope() DisposableEffect(lifecycleOwner) { val observer = LifecycleEventObserver { _, event -> if (event == Lifecycle.Event.ON_RESUME) { @@ -301,6 +306,21 @@ private fun MainScreen(activity: Activity) { onClick = { activity.startActivity(Intent(activity, ProxySettingsActivity::class.java)) }, modifier = Modifier.fillMaxWidth(), ) { Text("Settings") } + FilledTonalButton( + onClick = { + scope.launch { + runCatching { + val intent = withContext(Dispatchers.IO) { + FeedbackEmail.createIntent(activity, connection, alwaysOn, lockdown) + } + activity.startActivity(intent) + }.onFailure { + error = "No email client is available: ${it.message ?: "unknown error"}" + } + } + }, + modifier = Modifier.fillMaxWidth(), + ) { Text("Feedback") } error?.let { Text(it, color = MaterialTheme.colorScheme.error, modifier = Modifier.padding(top = 12.dp)) } @@ -314,6 +334,42 @@ private fun MainScreen(activity: Activity) { } } } + + if (showCrashReport) { + AlertDialog( + onDismissRequest = {}, + title = { Text("MegaProxy stopped unexpectedly") }, + text = { Text("A privacy-filtered crash report was saved. You can send it to help diagnose the problem.") }, + confirmButton = { + TextButton(onClick = { + scope.launch { + runCatching { + val intent = withContext(Dispatchers.IO) { + FeedbackEmail.createIntent( + activity, + connection, + alwaysOn, + lockdown, + crashReport = true, + ) + } + activity.startActivity(intent) + CrashHandler.markReportHandled() + showCrashReport = false + }.onFailure { + error = "Could not open an email client: ${it.message ?: "unknown error"}" + } + } + }) { Text("Report") } + }, + dismissButton = { + TextButton(onClick = { + CrashHandler.markReportHandled() + showCrashReport = false + }) { Text("Close") } + }, + ) + } } private fun isAlwaysOnVpnActive(activity: Activity): Boolean = diff --git a/app/src/main/java/net/megaproxy487/MegaProxyApplication.kt b/app/src/main/java/net/megaproxy487/MegaProxyApplication.kt new file mode 100644 index 0000000..b21c7b8 --- /dev/null +++ b/app/src/main/java/net/megaproxy487/MegaProxyApplication.kt @@ -0,0 +1,14 @@ +package net.megaproxy487 + +import android.app.Application +import net.megaproxy487.data.ConfigStore +import net.megaproxy487.vpn.PersistentDiagnosticLog + +class MegaProxyApplication : Application() { + override fun onCreate() { + super.onCreate() + val store = ConfigStore(this) + PersistentDiagnosticLog.initialize(this, store.diagnosticLogLimitMb()) + CrashHandler.install(this) + } +} diff --git a/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt b/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt index 9342afa..719fc02 100644 --- a/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt +++ b/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt @@ -99,6 +99,7 @@ private fun SettingsScreen(activity: Activity) { var pendingExportContent by remember { mutableStateOf("") } var transferMessage by remember { mutableStateOf(null) } var pendingUnsafeImport by remember { mutableStateOf(null) } + var showCrashConfirmation by remember { mutableStateOf(false) } val lifecycleOwner = LocalLifecycleOwner.current fun refresh() { profiles = store.sortedProfiles() } @@ -252,6 +253,12 @@ private fun SettingsScreen(activity: Activity) { modifier = Modifier.fillMaxWidth(), ) { Text("Diagnostic log") } } + item { + OutlinedButton( + onClick = { showCrashConfirmation = true }, + modifier = Modifier.fillMaxWidth(), + ) { Text("Crash") } + } item { HorizontalDivider(Modifier.padding(vertical = 6.dp)) } item { Text("Profiles", style = MaterialTheme.typography.titleLarge, modifier = Modifier.padding(top = 8.dp)) } item { @@ -314,6 +321,20 @@ private fun SettingsScreen(activity: Activity) { confirmButton = { TextButton(onClick = { showReconnectWarning = false }) { Text("OK") } }, ) } + if (showCrashConfirmation) { + AlertDialog( + onDismissRequest = { showCrashConfirmation = false }, + title = { Text("Crash MegaProxy?") }, + text = { Text("The app will close immediately. Reopen it to test the crash report dialog.") }, + confirmButton = { + TextButton(onClick = { + showCrashConfirmation = false + throw IllegalStateException("Intentional crash requested from Settings") + }) { Text("Crash") } + }, + dismissButton = { TextButton(onClick = { showCrashConfirmation = false }) { Text("Cancel") } }, + ) + } if (showImportFilterNotice) { AlertDialog( onDismissRequest = { showImportFilterNotice = false }, diff --git a/app/src/main/java/net/megaproxy487/vpn/PersistentDiagnosticLog.kt b/app/src/main/java/net/megaproxy487/vpn/PersistentDiagnosticLog.kt index 6bc294c..5db8efe 100644 --- a/app/src/main/java/net/megaproxy487/vpn/PersistentDiagnosticLog.kt +++ b/app/src/main/java/net/megaproxy487/vpn/PersistentDiagnosticLog.kt @@ -49,6 +49,31 @@ object PersistentDiagnosticLog { } } + /** Crash-path write: deliberately synchronous so it survives immediate process termination. */ + fun writeCrash(thread: Thread, throwable: Throwable) = synchronized(lock) { + val logDirectory = directory ?: return + val entry = buildString { + append("${Instant.now()} session=$sessionId event=uncaught_exception api=${Build.VERSION.SDK_INT}") + append(" thread=${PrivacyLogSanitizer.sanitize(thread.name)}\n") + var current: Throwable? = throwable + var causeDepth = 0 + while (current != null && causeDepth < 8) { + val prefix = if (causeDepth == 0) "exception" else "cause_$causeDepth" + append("$prefix=${safeCrashClass(current.javaClass.name)}") + append(" message=${PrivacyLogSanitizer.sanitize(current.message.orEmpty())}\n") + current.stackTrace.take(256).forEach { frame -> + append("at ${safeCrashClass(frame.className)}.${frame.methodName}") + append("(${frame.fileName ?: "unknown"}:${frame.lineNumber})\n") + } + current = current.cause + causeDepth++ + } + append("${Instant.now()} session=$sessionId event=crash_end\n") + } + rotateIfNeeded(logDirectory, entry.toByteArray(Charsets.UTF_8).size.toLong()) + File(logDirectory, CURRENT_FILE).appendText(entry, Charsets.UTF_8) + } + fun readTail(maxBytes: Int): String = synchronized(lock) { val logDirectory = directory ?: return "" val files = listOf(PREVIOUS_FILE, CURRENT_FILE).map { File(logDirectory, it) }.filter(File::isFile) @@ -71,12 +96,16 @@ object PersistentDiagnosticLog { if (remaining == 0) text.substringAfter('\n', "") else text } - fun copyTo(output: OutputStream) = synchronized(lock) { - val logDirectory = directory ?: return - listOf(PREVIOUS_FILE, CURRENT_FILE).forEach { name -> - val file = File(logDirectory, name) - if (file.isFile) file.inputStream().buffered().use { it.copyTo(output) } - } + fun copyTo(output: OutputStream) { + executor.submit { + synchronized(lock) { + val logDirectory = directory ?: return@synchronized + listOf(PREVIOUS_FILE, CURRENT_FILE).forEach { name -> + val file = File(logDirectory, name) + if (file.isFile) file.inputStream().buffered().use { it.copyTo(output) } + } + } + }.get() } fun clear() { @@ -131,19 +160,35 @@ object PersistentDiagnosticLog { file.delete() temporary.renameTo(file) } + + private fun safeCrashClass(name: String): String = when { + name.startsWith("net.megaproxy487.") || + name.startsWith("android.") || name.startsWith("androidx.") || + name.startsWith("java.") || name.startsWith("kotlin.") || + name.startsWith("kotlinx.") -> name + else -> "[external]" + } } object PrivacyLogSanitizer { + private val email = Regex("(?i)[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}") private val url = Regex("(?i)https?://[^\\s]+") private val ipv4 = Regex("(? + + + diff --git a/app/src/test/java/net/megaproxy487/vpn/PrivacyLogSanitizerTest.kt b/app/src/test/java/net/megaproxy487/vpn/PrivacyLogSanitizerTest.kt index b203f5a..6c45513 100644 --- a/app/src/test/java/net/megaproxy487/vpn/PrivacyLogSanitizerTest.kt +++ b/app/src/test/java/net/megaproxy487/vpn/PrivacyLogSanitizerTest.kt @@ -9,10 +9,11 @@ class PrivacyLogSanitizerTest { fun removesNetworkIdentifiersCredentialsAndPackageNames() { val sanitized = PrivacyLogSanitizer.sanitize( "username=alice password=secret url=https://proxy.example.com/path " + - "ipv4=192.0.2.10:443 ipv6=[2001:db8::1]:443 package=com.example.privateapp", + "ipv4=192.0.2.10:443 ipv6=[2001:db8::1]:443 package=com.example.privateapp " + + "email=user@example.com mac=00:11:22:33:44:55 path=/data/user/0/private/file", ) - listOf("alice", "secret", "proxy.example.com", "192.0.2.10", "2001:db8", "com.example.privateapp") + listOf("alice", "secret", "proxy.example.com", "192.0.2.10", "2001:db8", "com.example.privateapp", "user@example.com", "00:11:22:33:44:55", "/data/user") .forEach { assertFalse(sanitized.contains(it)) } assertTrue(sanitized.contains("username=[redacted]")) assertTrue(sanitized.contains("password=[redacted]")) From dec3f855450317742cc2307fd8954a1d4cb02ac9 Mon Sep 17 00:00:00 2001 From: Andrey Prokopyuk Date: Tue, 1 Sep 2026 11:33:40 +0300 Subject: [PATCH 09/41] Real device fixes --- app/build.gradle.kts | 25 +++- .../megaproxy487/ConnectionTestActivity.kt | 81 ++++++++++--- .../net/megaproxy487/DiagnosticLogActivity.kt | 3 + .../java/net/megaproxy487/MainActivity.kt | 73 ++++++++++-- .../net/megaproxy487/ProfileEditorActivity.kt | 25 ++-- .../net/megaproxy487/ProxySettingsActivity.kt | 3 + .../net/megaproxy487/SplitTunnelActivity.kt | 107 ++++++++++++++---- .../net/megaproxy487/vpn/AlwaysOnVpnStatus.kt | 15 ++- .../net/megaproxy487/vpn/ProxyVpnService.kt | 29 ++++- .../java/net/megaproxy487/vpn/VpnSettings.kt | 14 +++ 10 files changed, 314 insertions(+), 61 deletions(-) create mode 100644 app/src/main/java/net/megaproxy487/vpn/VpnSettings.kt diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 742463b..03a513f 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -4,6 +4,11 @@ plugins { id("org.jetbrains.kotlin.plugin.compose") } +val releaseKeystorePath = providers.environmentVariable("MEGAPROXY_KEYSTORE_PATH").orNull +val releaseKeystorePassword = providers.environmentVariable("MEGAPROXY_KEYSTORE_PASSWORD").orNull +val releaseKeyAlias = providers.environmentVariable("MEGAPROXY_KEY_ALIAS").orNull +val releaseKeyPassword = providers.environmentVariable("MEGAPROXY_KEY_PASSWORD").orNull + android { namespace = "net.megaproxy487" compileSdk = 35 @@ -13,10 +18,28 @@ android { minSdk = 26 targetSdk = 35 versionCode = 1 - versionName = "0.1.0" + versionName = "0.0.1" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } + signingConfigs { + if (releaseKeystorePath != null && releaseKeystorePassword != null && + releaseKeyAlias != null && releaseKeyPassword != null + ) { + create("release") { + storeFile = file(releaseKeystorePath) + storePassword = releaseKeystorePassword + keyAlias = releaseKeyAlias + keyPassword = releaseKeyPassword + } + } + } + buildTypes { + getByName("release") { + signingConfig = signingConfigs.findByName("release") + } + } + buildFeatures { compose = true } compileOptions { sourceCompatibility = JavaVersion.VERSION_17 diff --git a/app/src/main/java/net/megaproxy487/ConnectionTestActivity.kt b/app/src/main/java/net/megaproxy487/ConnectionTestActivity.kt index c86055c..bf0c5b9 100644 --- a/app/src/main/java/net/megaproxy487/ConnectionTestActivity.kt +++ b/app/src/main/java/net/megaproxy487/ConnectionTestActivity.kt @@ -17,12 +17,15 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.WindowInsets +import androidx.compose.foundation.layout.safeDrawing import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.text.selection.SelectionContainer import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons import androidx.compose.material.icons.automirrored.filled.ArrowBack import androidx.compose.material3.Button +import androidx.compose.material3.AlertDialog import androidx.compose.material3.Card import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon @@ -30,16 +33,24 @@ import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Scaffold import androidx.compose.material3.Text +import androidx.compose.material3.TextButton import androidx.compose.material3.TopAppBar import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import net.megaproxy487.data.ConfigStore import net.megaproxy487.vpn.ProxyVpnService import net.megaproxy487.vpn.TestDiagnosticLog import net.megaproxy487.vpn.TestState +import net.megaproxy487.vpn.OTHER_ALWAYS_ON_VPN_MESSAGE +import net.megaproxy487.vpn.hasOtherProvider +import net.megaproxy487.vpn.openAndroidVpnSettings +import net.megaproxy487.vpn.readAlwaysOnVpnStatus class ConnectionTestActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { @@ -55,9 +66,20 @@ class ConnectionTestActivity : ComponentActivity() { private fun ConnectionTestScreen(activity: Activity, autoStart: Boolean) { val state by TestDiagnosticLog.state val exitIp by TestDiagnosticLog.exitIp + var vpnPermissionRequestedAt by remember { mutableStateOf(0L) } + var showAlwaysOnConflict by remember { mutableStateOf(false) } val permission = rememberLauncherForActivityResult(ActivityResultContracts.StartActivityForResult()) { - if (it.resultCode == Activity.RESULT_OK) ProxyVpnService.test(activity) - else TestDiagnosticLog.fail("VPN permission is required for the connection test") + if (VpnService.prepare(activity) == null) ProxyVpnService.test(activity) + else { + val status = readAlwaysOnVpnStatus(activity) + val dismissedImmediately = System.currentTimeMillis() - vpnPermissionRequestedAt < 1_000 + if (status.hasOtherProvider || dismissedImmediately) { + TestDiagnosticLog.fail(OTHER_ALWAYS_ON_VPN_MESSAGE) + showAlwaysOnConflict = true + } else { + TestDiagnosticLog.fail("VPN access was not granted in the Android confirmation dialog") + } + } } val runTest = { val error = ConfigStore(activity).load().connectionValidationError() @@ -65,22 +87,36 @@ private fun ConnectionTestScreen(activity: Activity, autoStart: Boolean) { TestDiagnosticLog.fail(error) } else { TestDiagnosticLog.begin() - val intent = VpnService.prepare(activity) - if (intent == null) ProxyVpnService.test(activity) else permission.launch(intent) + val status = readAlwaysOnVpnStatus(activity) + if (status.hasOtherProvider) { + TestDiagnosticLog.fail(OTHER_ALWAYS_ON_VPN_MESSAGE) + showAlwaysOnConflict = true + } else { + val intent = VpnService.prepare(activity) + if (intent == null) { + ProxyVpnService.test(activity) + } else { + vpnPermissionRequestedAt = System.currentTimeMillis() + permission.launch(intent) + } + } } } LaunchedEffect(autoStart) { if (autoStart) runTest() } - Scaffold(topBar = { - TopAppBar( - title = { Text("Connection test") }, - navigationIcon = { - IconButton(onClick = { activity.finish() }) { - Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Back") - } - }, - ) - }) { padding -> + Scaffold( + topBar = { + TopAppBar( + title = { Text("Connection test") }, + navigationIcon = { + IconButton(onClick = { activity.finish() }) { + Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Back") + } + }, + ) + }, + contentWindowInsets = WindowInsets.safeDrawing, + ) { padding -> Column( Modifier.fillMaxSize().padding(padding).padding(16.dp), verticalArrangement = Arrangement.spacedBy(12.dp), @@ -121,4 +157,21 @@ private fun ConnectionTestScreen(activity: Activity, autoStart: Boolean) { } } } + + if (showAlwaysOnConflict) { + AlertDialog( + onDismissRequest = { showAlwaysOnConflict = false }, + title = { Text("Always-on VPN is already in use") }, + text = { Text(OTHER_ALWAYS_ON_VPN_MESSAGE) }, + confirmButton = { + TextButton(onClick = { + showAlwaysOnConflict = false + openAndroidVpnSettings(activity) + }) { Text("Change settings") } + }, + dismissButton = { + TextButton(onClick = { showAlwaysOnConflict = false }) { Text("Cancel") } + }, + ) + } } diff --git a/app/src/main/java/net/megaproxy487/DiagnosticLogActivity.kt b/app/src/main/java/net/megaproxy487/DiagnosticLogActivity.kt index b6c27f2..9328bef 100644 --- a/app/src/main/java/net/megaproxy487/DiagnosticLogActivity.kt +++ b/app/src/main/java/net/megaproxy487/DiagnosticLogActivity.kt @@ -13,6 +13,8 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.WindowInsets +import androidx.compose.foundation.layout.safeDrawing import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.itemsIndexed import androidx.compose.foundation.lazy.rememberLazyListState @@ -117,6 +119,7 @@ private fun DiagnosticLogScreen(activity: Activity) { }, ) }, + contentWindowInsets = WindowInsets.safeDrawing, ) { padding -> Column( Modifier.fillMaxSize().padding(padding).padding(horizontal = 16.dp), diff --git a/app/src/main/java/net/megaproxy487/MainActivity.kt b/app/src/main/java/net/megaproxy487/MainActivity.kt index c7611d5..9997827 100644 --- a/app/src/main/java/net/megaproxy487/MainActivity.kt +++ b/app/src/main/java/net/megaproxy487/MainActivity.kt @@ -3,6 +3,7 @@ package net.megaproxy487 import android.Manifest import android.app.Activity import android.content.Intent +import android.content.pm.PackageManager import android.net.VpnService import android.os.Build import android.os.Bundle @@ -10,6 +11,7 @@ import androidx.activity.ComponentActivity import androidx.activity.compose.rememberLauncherForActivityResult import androidx.activity.compose.setContent import androidx.activity.result.contract.ActivityResultContracts +import androidx.core.content.ContextCompat import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column @@ -19,6 +21,8 @@ import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.WindowInsets +import androidx.compose.foundation.layout.safeDrawing import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons @@ -71,6 +75,9 @@ import net.megaproxy487.vpn.ProxyVpnService import net.megaproxy487.vpn.VpnConnectionState import net.megaproxy487.vpn.VpnRuntimeState import net.megaproxy487.vpn.readAlwaysOnVpnStatus +import net.megaproxy487.vpn.hasOtherProvider +import net.megaproxy487.vpn.openAndroidVpnSettings +import net.megaproxy487.vpn.OTHER_ALWAYS_ON_VPN_MESSAGE import net.megaproxy487.model.ProfileColors class MainActivity : ComponentActivity() { @@ -105,7 +112,9 @@ private fun MainScreen(activity: Activity) { var connectionProfileId by remember { mutableStateOf(store.connectionProfile().id) } var connectionStats by remember { mutableStateOf(null) } var systemVpnStatus by remember { mutableStateOf(readAlwaysOnVpnStatus(activity)) } + var vpnPermissionRequestedAt by remember { mutableStateOf(0L) } var showCrashReport by remember { mutableStateOf(CrashHandler.hasPendingReport()) } + var showAlwaysOnConflict by remember { mutableStateOf(false) } val alwaysOn = runtimeAlwaysOn || systemVpnStatus.enabled val lockdown = runtimeLockdown || systemVpnStatus.lockdown val lifecycleOwner = LocalLifecycleOwner.current @@ -156,13 +165,37 @@ private fun MainScreen(activity: Activity) { } } val vpnPermission = rememberLauncherForActivityResult(ActivityResultContracts.StartActivityForResult()) { - if (it.resultCode == Activity.RESULT_OK) { + if (VpnService.prepare(activity) == null) { if (!isAlwaysOnVpnActive(activity)) ProxyVpnService.start(activity) else error = null } else { - error = "VPN permission is required" + val status = readAlwaysOnVpnStatus(activity) + val dismissedImmediately = System.currentTimeMillis() - vpnPermissionRequestedAt < 1_000 + if (status.hasOtherProvider || dismissedImmediately) { + error = null + showAlwaysOnConflict = true + } else { + error = "VPN access was not granted in the Android confirmation dialog" + } + } + } + val requestVpnAccess = { + val status = readAlwaysOnVpnStatus(activity) + if (status.hasOtherProvider) { + error = null + showAlwaysOnConflict = true + } else { + val intent = VpnService.prepare(activity) + if (intent == null) { + ProxyVpnService.start(activity) + } else { + vpnPermissionRequestedAt = System.currentTimeMillis() + vpnPermission.launch(intent) + } } } - val notificationPermission = rememberLauncherForActivityResult(ActivityResultContracts.RequestPermission()) { } + val notificationPermission = rememberLauncherForActivityResult(ActivityResultContracts.RequestPermission()) { + requestVpnAccess() + } val connect = { if (isAlwaysOnVpnActive(activity)) { systemVpnStatus = readAlwaysOnVpnStatus(activity) @@ -171,13 +204,22 @@ private fun MainScreen(activity: Activity) { error = store.activeProfile().config.validationError() } if (error == null && !isAlwaysOnVpnActive(activity)) { - if (Build.VERSION.SDK_INT >= 33) notificationPermission.launch(Manifest.permission.POST_NOTIFICATIONS) - val intent = VpnService.prepare(activity) - if (intent == null) ProxyVpnService.start(activity) else vpnPermission.launch(intent) + if (Build.VERSION.SDK_INT >= 33 && ContextCompat.checkSelfPermission( + activity, + Manifest.permission.POST_NOTIFICATIONS, + ) != PackageManager.PERMISSION_GRANTED + ) { + notificationPermission.launch(Manifest.permission.POST_NOTIFICATIONS) + } else { + requestVpnAccess() + } } } - Scaffold(topBar = { TopAppBar(title = { Text("MegaProxy") }) }) { padding -> + Scaffold( + topBar = { TopAppBar(title = { Text("MegaProxy") }) }, + contentWindowInsets = WindowInsets.safeDrawing, + ) { padding -> Column( Modifier.fillMaxSize().padding(padding).verticalScroll(rememberScrollState()).padding(20.dp), horizontalAlignment = Alignment.CenterHorizontally, @@ -370,6 +412,23 @@ private fun MainScreen(activity: Activity) { }, ) } + + if (showAlwaysOnConflict) { + AlertDialog( + onDismissRequest = { showAlwaysOnConflict = false }, + title = { Text("Always-on VPN is already in use") }, + text = { Text(OTHER_ALWAYS_ON_VPN_MESSAGE) }, + confirmButton = { + TextButton(onClick = { + showAlwaysOnConflict = false + openAndroidVpnSettings(activity) + }) { Text("Change settings") } + }, + dismissButton = { + TextButton(onClick = { showAlwaysOnConflict = false }) { Text("Cancel") } + }, + ) + } } private fun isAlwaysOnVpnActive(activity: Activity): Boolean = diff --git a/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt b/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt index 7aca1e7..c3df6b2 100644 --- a/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt +++ b/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt @@ -11,6 +11,8 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.WindowInsets +import androidx.compose.foundation.layout.safeDrawing import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons @@ -85,16 +87,19 @@ private fun ProfileEditorScreen(activity: Activity) { error = updated.connectionValidationError() } - Scaffold(topBar = { - TopAppBar( - title = { Text(profile.displayName) }, - navigationIcon = { - IconButton(onClick = { activity.finish() }) { - Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Back") - } - }, - ) - }) { padding -> + Scaffold( + topBar = { + TopAppBar( + title = { Text(profile.displayName) }, + navigationIcon = { + IconButton(onClick = { activity.finish() }) { + Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Back") + } + }, + ) + }, + contentWindowInsets = WindowInsets.safeDrawing, + ) { padding -> Column( Modifier.fillMaxSize().padding(padding).padding(16.dp).verticalScroll(rememberScrollState()), verticalArrangement = Arrangement.spacedBy(10.dp), diff --git a/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt b/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt index 719fc02..4f3eccc 100644 --- a/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt +++ b/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt @@ -17,6 +17,8 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.WindowInsets +import androidx.compose.foundation.layout.safeDrawing import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items import androidx.compose.foundation.shape.RoundedCornerShape @@ -211,6 +213,7 @@ private fun SettingsScreen(activity: Activity) { Icon(Icons.Default.Add, contentDescription = "Add profile") } }, + contentWindowInsets = WindowInsets.safeDrawing, ) { padding -> LazyColumn( Modifier.fillMaxSize().padding(padding).padding(horizontal = 16.dp), diff --git a/app/src/main/java/net/megaproxy487/SplitTunnelActivity.kt b/app/src/main/java/net/megaproxy487/SplitTunnelActivity.kt index 8daf905..655e1c4 100644 --- a/app/src/main/java/net/megaproxy487/SplitTunnelActivity.kt +++ b/app/src/main/java/net/megaproxy487/SplitTunnelActivity.kt @@ -10,15 +10,20 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.WindowInsets +import androidx.compose.foundation.layout.safeDrawing +import androidx.compose.foundation.layout.navigationBarsPadding import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items import androidx.compose.material3.Checkbox +import androidx.compose.material3.AlertDialog import androidx.compose.material3.Button import androidx.compose.material3.RadioButton import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Scaffold import androidx.compose.material3.Text +import androidx.compose.material3.TextButton import androidx.compose.material3.TopAppBar import androidx.compose.material3.Icon import androidx.compose.material3.IconButton @@ -33,6 +38,8 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import net.megaproxy487.data.ConfigStore +import net.megaproxy487.vpn.ProxyVpnService +import net.megaproxy487.vpn.readAlwaysOnVpnStatus class SplitTunnelActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { @@ -66,12 +73,25 @@ private fun SplitTunnelScreen(activity: SplitTunnelActivity) { var currentProfile by remember { mutableStateOf(targetProfiles.first()) } var config by remember { mutableStateOf(currentProfile.config) } var appSearch by remember { mutableStateOf("") } + var showReconnectPrompt by remember { mutableStateOf(false) } + var showAlwaysOnDeferredNotice by remember { mutableStateOf(false) } + var deferChangesUntilNextConnection by remember { mutableStateOf(false) } fun updateConfig(updated: net.megaproxy487.model.ProxyConfig) { config = updated val profilesToUpdate = if (configureIndividually) listOf(currentProfile) else targetProfiles profilesToUpdate.forEach { store.saveProfile(it.copy(config = updated)) } currentProfile = currentProfile.copy(config = updated) + val affectsConnectedProfile = profilesToUpdate.any { it.id == store.connectionProfile().id } + if (ProxyVpnService.isRunning && affectsConnectedProfile && !deferChangesUntilNextConnection) { + val alwaysOn = ProxyVpnService.isAlwaysOnMode || readAlwaysOnVpnStatus(activity).enabled + if (alwaysOn) { + deferChangesUntilNextConnection = true + showAlwaysOnDeferredNotice = true + } else { + showReconnectPrompt = true + } + } } val apps = remember { val launcher = Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_LAUNCHER) @@ -96,31 +116,36 @@ private fun SplitTunnelScreen(activity: SplitTunnelActivity) { activity.finish() } } - Scaffold(topBar = { - TopAppBar( - title = { - Text( - if (importedIds.isEmpty()) "Routing" - else if (configureIndividually) "Routing: ${currentProfile.displayName}" - else "Routing for ${targetProfiles.size} profiles" - ) - }, - navigationIcon = { - IconButton(onClick = { activity.finish() }) { - Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Back") + Scaffold( + topBar = { + TopAppBar( + title = { + Text( + if (importedIds.isEmpty()) "Routing" + else if (configureIndividually) "Routing: ${currentProfile.displayName}" + else "Routing for ${targetProfiles.size} profiles" + ) + }, + navigationIcon = { + IconButton(onClick = { activity.finish() }) { + Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Back") + } + }, + ) + }, + bottomBar = { + if (importedIds.isNotEmpty()) { + Button( + onClick = ::finishCurrentProfile, + modifier = Modifier.fillMaxWidth().navigationBarsPadding() + .padding(horizontal = 16.dp, vertical = 10.dp), + ) { + Text(if (configureIndividually && currentIndex < targetProfiles.lastIndex) "Next profile" else "Done") } - }, - ) - }, bottomBar = { - if (importedIds.isNotEmpty()) { - Button( - onClick = ::finishCurrentProfile, - modifier = Modifier.fillMaxWidth().padding(horizontal = 16.dp, vertical = 10.dp), - ) { - Text(if (configureIndividually && currentIndex < targetProfiles.lastIndex) "Next profile" else "Done") } - } - }) { padding -> + }, + contentWindowInsets = WindowInsets.safeDrawing, + ) { padding -> LazyColumn( Modifier.fillMaxSize().padding(padding), contentPadding = androidx.compose.foundation.layout.PaddingValues(16.dp), @@ -193,4 +218,40 @@ private fun SplitTunnelScreen(activity: SplitTunnelActivity) { item { Text("Changes are saved automatically.", style = MaterialTheme.typography.bodySmall) } } } + + if (showReconnectPrompt) { + AlertDialog( + onDismissRequest = { + showReconnectPrompt = false + deferChangesUntilNextConnection = true + }, + title = { Text("Apply routing changes?") }, + text = { + Text("The VPN is currently connected. Reconnect now to apply the new split-tunneling settings, or apply them the next time it connects.") + }, + confirmButton = { + TextButton(onClick = { + showReconnectPrompt = false + ProxyVpnService.reconnect(activity) + }) { Text("Reconnect now") } + }, + dismissButton = { + TextButton(onClick = { + showReconnectPrompt = false + deferChangesUntilNextConnection = true + }) { Text("Next connection") } + }, + ) + } + + if (showAlwaysOnDeferredNotice) { + AlertDialog( + onDismissRequest = { showAlwaysOnDeferredNotice = false }, + title = { Text("Routing settings saved") }, + text = { Text("Always-on VPN is managed by Android. The new split-tunneling settings will be applied the next time the VPN connects.") }, + confirmButton = { + TextButton(onClick = { showAlwaysOnDeferredNotice = false }) { Text("OK") } + }, + ) + } } diff --git a/app/src/main/java/net/megaproxy487/vpn/AlwaysOnVpnStatus.kt b/app/src/main/java/net/megaproxy487/vpn/AlwaysOnVpnStatus.kt index d767ba8..ecb8a81 100644 --- a/app/src/main/java/net/megaproxy487/vpn/AlwaysOnVpnStatus.kt +++ b/app/src/main/java/net/megaproxy487/vpn/AlwaysOnVpnStatus.kt @@ -6,14 +6,21 @@ import android.provider.Settings data class AlwaysOnVpnStatus( val enabled: Boolean, val lockdown: Boolean, + val configuredPackage: String?, ) +val AlwaysOnVpnStatus.hasOtherProvider: Boolean + get() = configuredPackage != null && !enabled + fun readAlwaysOnVpnStatus(context: Context): AlwaysOnVpnStatus { - val enabled = runCatching { - Settings.Secure.getString(context.contentResolver, "always_on_vpn_app") == context.packageName - }.getOrDefault(ProxyVpnService.isAlwaysOnMode) + val configuredPackage = runCatching { + Settings.Secure.getString(context.contentResolver, "always_on_vpn_app") + ?.takeIf(String::isNotBlank) + }.getOrNull() + val enabled = configuredPackage?.let { it == context.packageName } + ?: ProxyVpnService.isAlwaysOnMode val lockdown = enabled && runCatching { Settings.Secure.getInt(context.contentResolver, "always_on_vpn_lockdown", 0) == 1 }.getOrDefault(ProxyVpnService.isLockdownMode) - return AlwaysOnVpnStatus(enabled, lockdown) + return AlwaysOnVpnStatus(enabled, lockdown, configuredPackage) } diff --git a/app/src/main/java/net/megaproxy487/vpn/ProxyVpnService.kt b/app/src/main/java/net/megaproxy487/vpn/ProxyVpnService.kt index 481fd92..337c9d4 100644 --- a/app/src/main/java/net/megaproxy487/vpn/ProxyVpnService.kt +++ b/app/src/main/java/net/megaproxy487/vpn/ProxyVpnService.kt @@ -76,6 +76,23 @@ class ProxyVpnService : VpnService() { stopSelf() return START_NOT_STICKY } + if (intent?.action == ACTION_RECONNECT) { + DiagnosticLog.add("event=vpn_reconnect reason=routing_settings_changed") + startForeground(NOTIFICATION_ID, notification("Reconnecting…")) + stopTunnel(removeForeground = false) + ConfigStore(this).setConnectionDesired(true) + if (startRunning.compareAndSet(false, true)) { + VpnRuntimeState.update(VpnConnectionState.CONNECTING) + thread(name = "megaproxy-vpn-reconnect") { + try { + startTunnel(testOnly = false) + } finally { + startRunning.set(false) + } + } + } + return START_STICKY + } if (intent?.action == ACTION_TEST) { startForeground(NOTIFICATION_ID, notification("Testing connection…")) TestDiagnosticLog.begin() @@ -218,7 +235,7 @@ class ProxyVpnService : VpnService() { } } - private fun stopTunnel() { + private fun stopTunnel(removeForeground: Boolean = true) { if (tunnel != null) { if (tunnelTestOnly) TestDiagnosticLog.add("Stopping temporary VPN") else DiagnosticLog.add("Stopping VPN") @@ -231,7 +248,7 @@ class ProxyVpnService : VpnService() { tunnel = null tunnelTestOnly = false activeConfig = null - stopForeground(STOP_FOREGROUND_REMOVE) + if (removeForeground) stopForeground(STOP_FOREGROUND_REMOVE) } override fun onRevoke() { @@ -269,6 +286,7 @@ class ProxyVpnService : VpnService() { private const val NOTIFICATION_ID = 101 private const val ACTION_STOP = "net.megaproxy487.STOP" private const val ACTION_TEST = "net.megaproxy487.TEST" + private const val ACTION_RECONNECT = "net.megaproxy487.RECONNECT" private const val ACTION_START_MANUAL = "net.megaproxy487.START_MANUAL" private const val ACTION_REFRESH_STATUS = "net.megaproxy487.REFRESH_STATUS" private const val MONITOR_INTERVAL_MS = 10_000L @@ -292,6 +310,13 @@ class ProxyVpnService : VpnService() { ConfigStore(context).setConnectionDesired(false) context.startService(Intent(context, ProxyVpnService::class.java).setAction(ACTION_STOP)) } + fun reconnect(context: Context) { + ConfigStore(context).setConnectionDesired(true) + ContextCompat.startForegroundService( + context, + Intent(context, ProxyVpnService::class.java).setAction(ACTION_RECONNECT), + ) + } fun test(context: Context) = ContextCompat.startForegroundService( context, Intent(context, ProxyVpnService::class.java).setAction(ACTION_TEST), ) diff --git a/app/src/main/java/net/megaproxy487/vpn/VpnSettings.kt b/app/src/main/java/net/megaproxy487/vpn/VpnSettings.kt new file mode 100644 index 0000000..4efbe1d --- /dev/null +++ b/app/src/main/java/net/megaproxy487/vpn/VpnSettings.kt @@ -0,0 +1,14 @@ +package net.megaproxy487.vpn + +import android.app.Activity +import android.content.Intent +import android.provider.Settings + +const val OTHER_ALWAYS_ON_VPN_MESSAGE = + "Another app is configured as Always-on VPN. Change the Always-on VPN app in Android settings, then try again." + +fun openAndroidVpnSettings(activity: Activity) { + val vpnSettings = Intent(Settings.ACTION_VPN_SETTINGS) + runCatching { activity.startActivity(vpnSettings) } + .recoverCatching { activity.startActivity(Intent(Settings.ACTION_WIRELESS_SETTINGS)) } +} From 67961aec99954a5225e8326bff452a8393395fbe Mon Sep 17 00:00:00 2001 From: Andrey Prokopyuk Date: Tue, 1 Sep 2026 11:55:08 +0300 Subject: [PATCH 10/41] Simplify settings --- app/src/main/AndroidManifest.xml | 3 + .../megaproxy487/ConnectionTestActivity.kt | 4 +- .../java/net/megaproxy487/FeedbackEmail.kt | 2 +- .../java/net/megaproxy487/MainActivity.kt | 2 +- .../net/megaproxy487/ProfileEditorActivity.kt | 20 +- .../net/megaproxy487/ProxySettingsActivity.kt | 101 +------- .../net/megaproxy487/SettingsActivities.kt | 238 ++++++++++++++++++ .../net/megaproxy487/SplitTunnelActivity.kt | 195 ++++++-------- .../java/net/megaproxy487/data/ConfigStore.kt | 63 ++++- .../net/megaproxy487/data/ConfigTransfer.kt | 37 ++- .../net/megaproxy487/model/ProxyConfig.kt | 24 +- .../net/megaproxy487/vpn/ProxyVpnService.kt | 4 +- .../megaproxy487/data/ConfigTransferTest.kt | 23 +- .../megaproxy487/data/ProxyListParserTest.kt | 2 +- .../net/megaproxy487/model/ProxyConfigTest.kt | 14 +- 15 files changed, 482 insertions(+), 250 deletions(-) create mode 100644 app/src/main/java/net/megaproxy487/SettingsActivities.kt diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4f45b49..71b8696 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -23,6 +23,9 @@ + + + diff --git a/app/src/main/java/net/megaproxy487/ConnectionTestActivity.kt b/app/src/main/java/net/megaproxy487/ConnectionTestActivity.kt index bf0c5b9..79db08a 100644 --- a/app/src/main/java/net/megaproxy487/ConnectionTestActivity.kt +++ b/app/src/main/java/net/megaproxy487/ConnectionTestActivity.kt @@ -82,7 +82,9 @@ private fun ConnectionTestScreen(activity: Activity, autoStart: Boolean) { } } val runTest = { - val error = ConfigStore(activity).load().connectionValidationError() + val configStore = ConfigStore(activity) + val error = configStore.globalConnectionSettings().applyTo(configStore.activeProfile().config) + .connectionValidationError() if (error != null) { TestDiagnosticLog.fail(error) } else { diff --git a/app/src/main/java/net/megaproxy487/FeedbackEmail.kt b/app/src/main/java/net/megaproxy487/FeedbackEmail.kt index acfd64c..7754240 100644 --- a/app/src/main/java/net/megaproxy487/FeedbackEmail.kt +++ b/app/src/main/java/net/megaproxy487/FeedbackEmail.kt @@ -26,7 +26,7 @@ object FeedbackEmail { crashReport: Boolean = false, ): Intent { val store = ConfigStore(context) - val config = store.connectionProfile().config + val config = store.globalConnectionSettings().applyTo(store.connectionProfile().config) val packageInfo = context.packageManager.getPackageInfo(context.packageName, 0) val versionCode = if (Build.VERSION.SDK_INT >= 28) packageInfo.longVersionCode else { @Suppress("DEPRECATION") diff --git a/app/src/main/java/net/megaproxy487/MainActivity.kt b/app/src/main/java/net/megaproxy487/MainActivity.kt index 9997827..ddc65ad 100644 --- a/app/src/main/java/net/megaproxy487/MainActivity.kt +++ b/app/src/main/java/net/megaproxy487/MainActivity.kt @@ -201,7 +201,7 @@ private fun MainScreen(activity: Activity) { systemVpnStatus = readAlwaysOnVpnStatus(activity) error = null } else { - error = store.activeProfile().config.validationError() + error = store.globalConnectionSettings().applyTo(store.activeProfile().config).validationError() } if (error == null && !isAlwaysOnVpnActive(activity)) { if (Build.VERSION.SDK_INT >= 33 && ContextCompat.checkSelfPermission( diff --git a/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt b/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt index c3df6b2..2bec977 100644 --- a/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt +++ b/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt @@ -1,7 +1,6 @@ package net.megaproxy487 import android.app.Activity -import android.content.Intent import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent @@ -46,7 +45,6 @@ import net.megaproxy487.data.ConfigStore import net.megaproxy487.model.DnsProvider import net.megaproxy487.model.ProfileColorMatcher import net.megaproxy487.model.ProxyConfig -import net.megaproxy487.model.TlsProfile import java.util.Locale class ProfileEditorActivity : ComponentActivity() { @@ -70,7 +68,6 @@ private fun ProfileEditorScreen(activity: Activity) { var portText by remember { mutableStateOf(config.port.toString()) } var error by remember { mutableStateOf(null) } var countryExpanded by remember { mutableStateOf(false) } - var tlsExpanded by remember { mutableStateOf(false) } var dnsExpanded by remember { mutableStateOf(false) } var showInvalidCertificateWarning by remember { mutableStateOf(false) } val countries = remember { @@ -84,7 +81,7 @@ private fun ProfileEditorScreen(activity: Activity) { config = updated profile = profile.copy(config = updated) saveProfile() - error = updated.connectionValidationError() + error = store.globalConnectionSettings().applyTo(updated).connectionValidationError() } Scaffold( @@ -158,15 +155,6 @@ private fun ProfileEditorScreen(activity: Activity) { }) } - Text("TLS fingerprint", style = MaterialTheme.typography.titleMedium) - ExposedDropdownMenuBox(tlsExpanded, { tlsExpanded = it }) { - OutlinedTextField(config.profile.title, {}, readOnly = true, label = { Text("TLS / JA3 profile") }, trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(tlsExpanded) }, modifier = Modifier.menuAnchor().fillMaxWidth()) - DropdownMenu(tlsExpanded, { tlsExpanded = false }) { - TlsProfile.entries.forEach { tls -> DropdownMenuItem(text = { Text(tls.title) }, enabled = tls.available, onClick = { updateConfig(config.copy(profile = tls)); tlsExpanded = false }) } - } - } - if (config.profile == TlsProfile.CUSTOM) OutlinedTextField(config.customJa3, { updateConfig(config.copy(customJa3 = it)) }, label = { Text("JA3: version,ciphers,extensions,groups,points") }, modifier = Modifier.fillMaxWidth(), minLines = 2) - Text("DNS over HTTPS", style = MaterialTheme.typography.titleMedium) ExposedDropdownMenuBox(dnsExpanded, { dnsExpanded = it }) { OutlinedTextField(config.dnsProvider.title, {}, readOnly = true, label = { Text("DNS over HTTPS") }, trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(dnsExpanded) }, modifier = Modifier.menuAnchor().fillMaxWidth()) @@ -177,12 +165,6 @@ private fun ProfileEditorScreen(activity: Activity) { if (config.dnsProvider == DnsProvider.CUSTOM) OutlinedTextField(config.customDohUrl, { updateConfig(config.copy(customDohUrl = it)) }, label = { Text("Custom DoH URL") }, singleLine = true, modifier = Modifier.fillMaxWidth()) error?.let { Text(it, color = MaterialTheme.colorScheme.error) } Text("Changes are saved automatically.", style = MaterialTheme.typography.bodySmall) - HorizontalDivider() - OutlinedButton(onClick = { - activity.startActivity(Intent(activity, SplitTunnelActivity::class.java).apply { - putStringArrayListExtra(SplitTunnelActivity.EXTRA_PROFILE_IDS, arrayListOf(profile.id)) - }) - }, modifier = Modifier.fillMaxWidth()) { Text("Routing") } } } diff --git a/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt b/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt index 4f3eccc..e2fe63b 100644 --- a/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt +++ b/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt @@ -72,7 +72,7 @@ import net.megaproxy487.vpn.PersistentDiagnosticLog import net.megaproxy487.model.ProfileSort import net.megaproxy487.vpn.ProxyVpnService -class ProxySettingsActivity : ComponentActivity() { +class ProfilesActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { MaterialTheme { SettingsScreen(this) } } @@ -87,10 +87,8 @@ private fun SettingsScreen(activity: Activity) { var sort by remember { mutableStateOf(store.profileSort()) } var ascending by remember { mutableStateOf(store.isProfileSortAscending()) } var sortExpanded by remember { mutableStateOf(false) } - var alwaysOnExpanded by remember { mutableStateOf(false) } var deleteProfile by remember { mutableStateOf(null) } - var showReconnectWarning by remember { mutableStateOf(false) } - var importedProfileIds by remember { mutableStateOf>(emptyList()) } + var importedProfileCount by remember { mutableStateOf(0) } var importError by remember { mutableStateOf(null) } var skippedNonHttps by remember { mutableStateOf(0) } var showImportFilterNotice by remember { mutableStateOf(false) } @@ -101,7 +99,6 @@ private fun SettingsScreen(activity: Activity) { var pendingExportContent by remember { mutableStateOf("") } var transferMessage by remember { mutableStateOf(null) } var pendingUnsafeImport by remember { mutableStateOf(null) } - var showCrashConfirmation by remember { mutableStateOf(false) } val lifecycleOwner = LocalLifecycleOwner.current fun refresh() { profiles = store.sortedProfiles() } @@ -110,13 +107,6 @@ private fun SettingsScreen(activity: Activity) { putExtra(ProfileEditorActivity.EXTRA_PROFILE_ID, profile.id) }) } - fun openImportedRouting(individual: Boolean) { - activity.startActivity(Intent(activity, SplitTunnelActivity::class.java).apply { - putStringArrayListExtra(SplitTunnelActivity.EXTRA_PROFILE_IDS, ArrayList(importedProfileIds)) - putExtra(SplitTunnelActivity.EXTRA_CONFIGURE_INDIVIDUALLY, individual) - }) - importedProfileIds = emptyList() - } fun writeExport(uri: Uri?) { if (uri == null) return runCatching { @@ -140,7 +130,7 @@ private fun SettingsScreen(activity: Activity) { append(" Reconnect the VPN to apply the imported Always-on profile selection.") } } - importedProfileIds = emptyList() + importedProfileCount = 0 } DisposableEffect(lifecycleOwner) { @@ -178,9 +168,12 @@ private fun SettingsScreen(activity: Activity) { val imported = ProxyListParser.parse(text).getOrThrow() val added = store.importProfiles(imported.proxies) refresh() - importedProfileIds = added.map { it.id } + importedProfileCount = added.size skippedNonHttps = imported.skippedNonHttps showImportFilterNotice = imported.skippedNonHttps > 0 + if (imported.skippedNonHttps == 0) { + transferMessage = "Imported ${added.size} HTTPS proxy profile(s)." + } } importError = null }.onFailure { importError = it.message ?: "Could not import the configuration" } @@ -190,7 +183,7 @@ private fun SettingsScreen(activity: Activity) { Scaffold( topBar = { TopAppBar( - title = { Text("Settings") }, + title = { Text("Profiles") }, navigationIcon = { IconButton(onClick = { activity.finish() }) { Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Back") @@ -219,51 +212,6 @@ private fun SettingsScreen(activity: Activity) { Modifier.fillMaxSize().padding(padding).padding(horizontal = 16.dp), verticalArrangement = Arrangement.spacedBy(10.dp), ) { - item { Text("Always-on VPN", style = MaterialTheme.typography.titleLarge, modifier = Modifier.padding(top = 8.dp)) } - item { - ExposedDropdownMenuBox(alwaysOnExpanded, { alwaysOnExpanded = it }) { - OutlinedTextField( - store.alwaysOnProfile().displayNameWithFlag, {}, readOnly = true, - label = { Text("Profile for Always-on VPN") }, - trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(alwaysOnExpanded) }, - modifier = Modifier.menuAnchor().fillMaxWidth(), - ) - DropdownMenu(alwaysOnExpanded, { alwaysOnExpanded = false }) { - profiles.forEach { profile -> DropdownMenuItem(text = { Text(profile.displayNameWithFlag) }, onClick = { - store.setAlwaysOnProfile(profile.id) - alwaysOnExpanded = false - if (ProxyVpnService.isAlwaysOnMode && ProxyVpnService.isRunning) showReconnectWarning = true - }) } - } - } - } - item { - OutlinedButton( - onClick = { activity.startActivity(Intent(Settings.ACTION_VPN_SETTINGS)) }, - modifier = Modifier.fillMaxWidth(), - ) { Text("Open Android Always-on VPN settings") } - } - item { - OutlinedButton(onClick = { - activity.startActivity(Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS).apply { - data = Uri.parse("package:${activity.packageName}") - }) - }, modifier = Modifier.fillMaxWidth()) { Text("Battery settings") } - } - item { - OutlinedButton( - onClick = { activity.startActivity(Intent(activity, DiagnosticLogActivity::class.java)) }, - modifier = Modifier.fillMaxWidth(), - ) { Text("Diagnostic log") } - } - item { - OutlinedButton( - onClick = { showCrashConfirmation = true }, - modifier = Modifier.fillMaxWidth(), - ) { Text("Crash") } - } - item { HorizontalDivider(Modifier.padding(vertical = 6.dp)) } - item { Text("Profiles", style = MaterialTheme.typography.titleLarge, modifier = Modifier.padding(top = 8.dp)) } item { Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.spacedBy(10.dp)) { ExposedDropdownMenuBox(sortExpanded, { sortExpanded = it }, Modifier.weight(1f)) { @@ -316,45 +264,14 @@ private fun SettingsScreen(activity: Activity) { dismissButton = { TextButton(onClick = { deleteProfile = null }) { Text("Cancel") } }, ) } - if (showReconnectWarning) { - AlertDialog( - onDismissRequest = { showReconnectWarning = false }, - title = { Text("Reconnect required") }, - text = { Text("The new Always-on profile will be used only after the VPN reconnects.") }, - confirmButton = { TextButton(onClick = { showReconnectWarning = false }) { Text("OK") } }, - ) - } - if (showCrashConfirmation) { - AlertDialog( - onDismissRequest = { showCrashConfirmation = false }, - title = { Text("Crash MegaProxy?") }, - text = { Text("The app will close immediately. Reopen it to test the crash report dialog.") }, - confirmButton = { - TextButton(onClick = { - showCrashConfirmation = false - throw IllegalStateException("Intentional crash requested from Settings") - }) { Text("Crash") } - }, - dismissButton = { TextButton(onClick = { showCrashConfirmation = false }) { Text("Cancel") } }, - ) - } if (showImportFilterNotice) { AlertDialog( onDismissRequest = { showImportFilterNotice = false }, title = { Text("Only HTTPS proxies were imported") }, - text = { Text("Imported ${importedProfileIds.size} HTTPS proxy profile(s). Skipped $skippedNonHttps non-HTTPS URL(s).") }, + text = { Text("Imported $importedProfileCount HTTPS proxy profile(s). Skipped $skippedNonHttps non-HTTPS URL(s).") }, confirmButton = { TextButton(onClick = { showImportFilterNotice = false }) { Text("Continue") } }, ) } - if (importedProfileIds.isNotEmpty() && !showImportFilterNotice) { - AlertDialog( - onDismissRequest = { importedProfileIds = emptyList() }, - title = { Text("Configure imported profiles") }, - text = { Text("Choose whether routing settings should be shared by all imported profiles or configured one profile at a time.") }, - confirmButton = { TextButton(onClick = { openImportedRouting(false) }) { Text("Same for all") } }, - dismissButton = { TextButton(onClick = { openImportedRouting(true) }) { Text("One by one") } }, - ) - } if (showExportDialog) { AlertDialog( onDismissRequest = { showExportDialog = false }, diff --git a/app/src/main/java/net/megaproxy487/SettingsActivities.kt b/app/src/main/java/net/megaproxy487/SettingsActivities.kt new file mode 100644 index 0000000..f80fa1b --- /dev/null +++ b/app/src/main/java/net/megaproxy487/SettingsActivities.kt @@ -0,0 +1,238 @@ +package net.megaproxy487 + +import android.app.Activity +import android.content.Intent +import android.net.Uri +import android.os.Bundle +import android.provider.Settings +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.ColumnScope +import androidx.compose.foundation.layout.WindowInsets +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.safeDrawing +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.filled.ArrowBack +import androidx.compose.material3.AlertDialog +import androidx.compose.material3.DropdownMenu +import androidx.compose.material3.DropdownMenuItem +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.ExposedDropdownMenuBox +import androidx.compose.material3.ExposedDropdownMenuDefaults +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.OutlinedButton +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.material3.TextButton +import androidx.compose.material3.TopAppBar +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import net.megaproxy487.data.ConfigStore +import net.megaproxy487.model.Ja3Spec +import net.megaproxy487.model.TlsProfile +import net.megaproxy487.vpn.ProxyVpnService +import net.megaproxy487.vpn.readAlwaysOnVpnStatus + +class ProxySettingsActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { MaterialTheme { SettingsHomeScreen(this) } } + } +} + +class AlwaysOnSettingsActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { MaterialTheme { AlwaysOnSettingsScreen(this) } } + } +} + +class TlsFingerprintActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { MaterialTheme { TlsFingerprintScreen(this) } } + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +private fun SettingsHomeScreen(activity: Activity) { + var showCrashConfirmation by remember { mutableStateOf(false) } + SettingsScaffold(activity, "Settings") { + SettingsButton("Profiles") { activity.startActivity(Intent(activity, ProfilesActivity::class.java)) } + SettingsButton("Always-on VPN") { activity.startActivity(Intent(activity, AlwaysOnSettingsActivity::class.java)) } + SettingsButton("TLS fingerprint") { activity.startActivity(Intent(activity, TlsFingerprintActivity::class.java)) } + SettingsButton("Split tunneling") { activity.startActivity(Intent(activity, SplitTunnelActivity::class.java)) } + SettingsButton("Battery settings") { + activity.startActivity(Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS).apply { + data = Uri.parse("package:${activity.packageName}") + }) + } + SettingsButton("Diagnostic log") { activity.startActivity(Intent(activity, DiagnosticLogActivity::class.java)) } + SettingsButton("Crash") { showCrashConfirmation = true } + } + if (showCrashConfirmation) { + AlertDialog( + onDismissRequest = { showCrashConfirmation = false }, + title = { Text("Crash MegaProxy?") }, + text = { Text("The app will close immediately. Reopen it to test the crash report dialog.") }, + confirmButton = { TextButton(onClick = { throw IllegalStateException("Intentional crash requested from Settings") }) { Text("Crash") } }, + dismissButton = { TextButton(onClick = { showCrashConfirmation = false }) { Text("Cancel") } }, + ) + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +private fun AlwaysOnSettingsScreen(activity: Activity) { + val store = remember { ConfigStore(activity) } + var expanded by remember { mutableStateOf(false) } + var selected by remember { mutableStateOf(store.alwaysOnProfile()) } + var showDeferredNotice by remember { mutableStateOf(false) } + SettingsScaffold(activity, "Always-on VPN") { + ExposedDropdownMenuBox(expanded, { expanded = it }) { + OutlinedTextField( + selected.displayNameWithFlag, {}, readOnly = true, + label = { Text("Profile for Always-on VPN") }, + trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(expanded) }, + modifier = Modifier.menuAnchor().fillMaxWidth(), + ) + DropdownMenu(expanded, { expanded = false }) { + store.sortedProfiles().forEach { profile -> + DropdownMenuItem(text = { Text(profile.displayNameWithFlag) }, onClick = { + selected = profile + store.setAlwaysOnProfile(profile.id) + expanded = false + if (ProxyVpnService.isAlwaysOnMode && ProxyVpnService.isRunning) showDeferredNotice = true + }) + } + } + } + Text("This profile is used when Android starts MegaProxy as an Always-on VPN.", style = MaterialTheme.typography.bodySmall) + SettingsButton("Open Android Always-on VPN settings") { + activity.startActivity(Intent(Settings.ACTION_VPN_SETTINGS)) + } + } + if (showDeferredNotice) { + AlertDialog( + onDismissRequest = { showDeferredNotice = false }, + title = { Text("Profile saved") }, + text = { Text("The new Always-on profile will be used the next time the VPN connects.") }, + confirmButton = { TextButton(onClick = { showDeferredNotice = false }) { Text("OK") } }, + ) + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +private fun TlsFingerprintScreen(activity: Activity) { + val store = remember { ConfigStore(activity) } + var settings by remember { mutableStateOf(store.globalConnectionSettings()) } + var expanded by remember { mutableStateOf(false) } + var error by remember { mutableStateOf(null) } + var showReconnectPrompt by remember { mutableStateOf(false) } + var showAlwaysOnNotice by remember { mutableStateOf(false) } + var deferred by remember { mutableStateOf(false) } + + fun save(profile: TlsProfile = settings.tlsProfile, customJa3: String = settings.customJa3) { + settings = settings.copy(tlsProfile = profile, customJa3 = customJa3) + store.saveGlobalConnectionSettings(settings) + error = if (profile == TlsProfile.CUSTOM && Ja3Spec.parse(customJa3) == null) { + "JA3 must contain five fields: version,ciphers,extensions,groups,points" + } else null + if (ProxyVpnService.isRunning && !deferred) { + if (ProxyVpnService.isAlwaysOnMode || readAlwaysOnVpnStatus(activity).enabled) { + deferred = true + showAlwaysOnNotice = true + } else showReconnectPrompt = true + } + } + + SettingsScaffold(activity, "TLS fingerprint") { + ExposedDropdownMenuBox(expanded, { expanded = it }) { + OutlinedTextField( + settings.tlsProfile.title, {}, readOnly = true, + label = { Text("TLS / JA3 profile") }, + trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(expanded) }, + modifier = Modifier.menuAnchor().fillMaxWidth(), + ) + DropdownMenu(expanded, { expanded = false }) { + TlsProfile.entries.filter { it.available }.forEach { profile -> + DropdownMenuItem(text = { Text(profile.title) }, onClick = { save(profile = profile); expanded = false }) + } + } + } + Text("Default currently uses the Chrome Android fingerprint and may change in a future MegaProxy update.", style = MaterialTheme.typography.bodySmall) + if (settings.tlsProfile == TlsProfile.CUSTOM) { + OutlinedTextField( + settings.customJa3, + { save(customJa3 = it) }, + label = { Text("JA3: version,ciphers,extensions,groups,points") }, + minLines = 2, + modifier = Modifier.fillMaxWidth(), + ) + } + error?.let { Text(it, color = MaterialTheme.colorScheme.error) } + Text("Changes are saved automatically and apply to every profile.", style = MaterialTheme.typography.bodySmall) + } + if (showReconnectPrompt) { + AlertDialog( + onDismissRequest = { showReconnectPrompt = false; deferred = true }, + title = { Text("Apply TLS fingerprint change?") }, + text = { Text("Reconnect now to apply the new TLS fingerprint, or apply it the next time the VPN connects.") }, + confirmButton = { TextButton(onClick = { showReconnectPrompt = false; ProxyVpnService.reconnect(activity) }) { Text("Reconnect now") } }, + dismissButton = { TextButton(onClick = { showReconnectPrompt = false; deferred = true }) { Text("Next connection") } }, + ) + } + if (showAlwaysOnNotice) { + AlertDialog( + onDismissRequest = { showAlwaysOnNotice = false }, + title = { Text("TLS fingerprint saved") }, + text = { Text("Always-on VPN is managed by Android. The new TLS fingerprint will be applied the next time the VPN connects.") }, + confirmButton = { TextButton(onClick = { showAlwaysOnNotice = false }) { Text("OK") } }, + ) + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +private fun SettingsScaffold(activity: Activity, title: String, content: @Composable ColumnScope.() -> Unit) { + Scaffold( + topBar = { + TopAppBar( + title = { Text(title) }, + navigationIcon = { + IconButton(onClick = { activity.finish() }) { + Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Back") + } + }, + ) + }, + contentWindowInsets = WindowInsets.safeDrawing, + ) { padding -> + Column( + Modifier.fillMaxSize().padding(padding).padding(16.dp).verticalScroll(rememberScrollState()), + verticalArrangement = Arrangement.spacedBy(12.dp), + content = content, + ) + } +} + +@Composable +private fun SettingsButton(label: String, onClick: () -> Unit) { + OutlinedButton(onClick = onClick, modifier = Modifier.fillMaxWidth()) { Text(label) } +} diff --git a/app/src/main/java/net/megaproxy487/SplitTunnelActivity.kt b/app/src/main/java/net/megaproxy487/SplitTunnelActivity.kt index 655e1c4..90a5876 100644 --- a/app/src/main/java/net/megaproxy487/SplitTunnelActivity.kt +++ b/app/src/main/java/net/megaproxy487/SplitTunnelActivity.kt @@ -7,29 +7,27 @@ import androidx.activity.compose.setContent import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.safeDrawing -import androidx.compose.foundation.layout.navigationBarsPadding import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items -import androidx.compose.material3.Checkbox +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.filled.ArrowBack import androidx.compose.material3.AlertDialog -import androidx.compose.material3.Button -import androidx.compose.material3.RadioButton +import androidx.compose.material3.Checkbox import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.RadioButton import androidx.compose.material3.Scaffold import androidx.compose.material3.Text import androidx.compose.material3.TextButton import androidx.compose.material3.TopAppBar -import androidx.compose.material3.Icon -import androidx.compose.material3.IconButton -import androidx.compose.material3.OutlinedTextField -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.filled.ArrowBack import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf @@ -38,6 +36,7 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import net.megaproxy487.data.ConfigStore +import net.megaproxy487.model.GlobalConnectionSettings import net.megaproxy487.vpn.ProxyVpnService import net.megaproxy487.vpn.readAlwaysOnVpnStatus @@ -46,11 +45,6 @@ class SplitTunnelActivity : ComponentActivity() { super.onCreate(savedInstanceState) setContent { MaterialTheme { SplitTunnelScreen(this) } } } - - companion object { - const val EXTRA_PROFILE_IDS = "profile_ids" - const val EXTRA_CONFIGURE_INDIVIDUALLY = "configure_individually" - } } private data class AppItem(val packageName: String, val label: String) @@ -59,31 +53,19 @@ private data class AppItem(val packageName: String, val label: String) @Composable private fun SplitTunnelScreen(activity: SplitTunnelActivity) { val store = remember { ConfigStore(activity) } - val importedIds = remember { - activity.intent.getStringArrayListExtra(SplitTunnelActivity.EXTRA_PROFILE_IDS).orEmpty() - } - val configureIndividually = remember { - activity.intent.getBooleanExtra(SplitTunnelActivity.EXTRA_CONFIGURE_INDIVIDUALLY, false) - } - val targetProfiles = remember(importedIds) { - if (importedIds.isEmpty()) listOf(store.activeProfile()) - else importedIds.mapNotNull(store::profile) - } - var currentIndex by remember { mutableStateOf(0) } - var currentProfile by remember { mutableStateOf(targetProfiles.first()) } - var config by remember { mutableStateOf(currentProfile.config) } + var settings by remember { mutableStateOf(store.globalConnectionSettings()) } var appSearch by remember { mutableStateOf("") } var showReconnectPrompt by remember { mutableStateOf(false) } var showAlwaysOnDeferredNotice by remember { mutableStateOf(false) } var deferChangesUntilNextConnection by remember { mutableStateOf(false) } - fun updateConfig(updated: net.megaproxy487.model.ProxyConfig) { - config = updated - val profilesToUpdate = if (configureIndividually) listOf(currentProfile) else targetProfiles - profilesToUpdate.forEach { store.saveProfile(it.copy(config = updated)) } - currentProfile = currentProfile.copy(config = updated) - val affectsConnectedProfile = profilesToUpdate.any { it.id == store.connectionProfile().id } - if (ProxyVpnService.isRunning && affectsConnectedProfile && !deferChangesUntilNextConnection) { + fun updateSettings(updated: GlobalConnectionSettings) { + val selectedPackagesOnly = settings.selectedPackages != updated.selectedPackages && + settings.copy(selectedPackages = updated.selectedPackages) == updated + val affectsActiveRouting = !(settings.routeAllApps && updated.routeAllApps && selectedPackagesOnly) + settings = updated + store.saveGlobalConnectionSettings(updated) + if (ProxyVpnService.isRunning && affectsActiveRouting && !deferChangesUntilNextConnection) { val alwaysOn = ProxyVpnService.isAlwaysOnMode || readAlwaysOnVpnStatus(activity).enabled if (alwaysOn) { deferChangesUntilNextConnection = true @@ -93,11 +75,13 @@ private fun SplitTunnelScreen(activity: SplitTunnelActivity) { } } } + val apps = remember { val launcher = Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_LAUNCHER) activity.packageManager.queryIntentActivities(launcher, 0) .map { AppItem(it.activityInfo.packageName, it.loadLabel(activity.packageManager).toString()) } - .distinctBy { it.packageName }.sortedBy { it.label.lowercase() } + .distinctBy { it.packageName } + .sortedBy { it.label.lowercase() } } val visibleApps = remember(apps, appSearch) { val query = appSearch.trim() @@ -105,27 +89,11 @@ private fun SplitTunnelScreen(activity: SplitTunnelActivity) { it.label.contains(query, ignoreCase = true) || it.packageName.contains(query, ignoreCase = true) } } - fun finishCurrentProfile() { - if (configureIndividually && currentIndex < targetProfiles.lastIndex) { - currentIndex += 1 - currentProfile = targetProfiles[currentIndex] - config = currentProfile.config - appSearch = "" - } else { - store.setActiveProfile(targetProfiles.first().id) - activity.finish() - } - } + Scaffold( topBar = { TopAppBar( - title = { - Text( - if (importedIds.isEmpty()) "Routing" - else if (configureIndividually) "Routing: ${currentProfile.displayName}" - else "Routing for ${targetProfiles.size} profiles" - ) - }, + title = { Text("Split tunneling") }, navigationIcon = { IconButton(onClick = { activity.finish() }) { Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Back") @@ -133,17 +101,6 @@ private fun SplitTunnelScreen(activity: SplitTunnelActivity) { }, ) }, - bottomBar = { - if (importedIds.isNotEmpty()) { - Button( - onClick = ::finishCurrentProfile, - modifier = Modifier.fillMaxWidth().navigationBarsPadding() - .padding(horizontal = 16.dp, vertical = 10.dp), - ) { - Text(if (configureIndividually && currentIndex < targetProfiles.lastIndex) "Next profile" else "Done") - } - } - }, contentWindowInsets = WindowInsets.safeDrawing, ) { padding -> LazyColumn( @@ -152,50 +109,44 @@ private fun SplitTunnelScreen(activity: SplitTunnelActivity) { verticalArrangement = Arrangement.spacedBy(6.dp), ) { item { Text("Routing mode", style = MaterialTheme.typography.titleMedium) } - item { Row(Modifier.fillMaxWidth()) { - RadioButton(!config.routeAllApps, { - updateConfig(config.copy(routeAllApps = false)) - }) - Column(Modifier.weight(1f).padding(top = 12.dp)) { - Text("Split tunneling") - Text("Only selected applications use the proxy (recommended).", style = MaterialTheme.typography.bodySmall) + item { + Row(Modifier.fillMaxWidth()) { + RadioButton(!settings.routeAllApps, { updateSettings(settings.copy(routeAllApps = false)) }) + Column(Modifier.weight(1f).padding(top = 12.dp)) { + Text("Split tunneling") + Text("Only selected applications use the proxy.", style = MaterialTheme.typography.bodySmall) + } } - } } - item { Row(Modifier.fillMaxWidth()) { - RadioButton(config.routeAllApps, { - updateConfig(config.copy(routeAllApps = true)) - }) - Column(Modifier.weight(1f).padding(top = 12.dp)) { - Text("Global VPN") - Text("All applications use the proxy. This mode is opt-in.", style = MaterialTheme.typography.bodySmall) + } + item { + Row(Modifier.fillMaxWidth()) { + RadioButton(settings.routeAllApps, { updateSettings(settings.copy(routeAllApps = true)) }) + Column(Modifier.weight(1f).padding(top = 12.dp)) { + Text("Global VPN") + Text("All applications use the proxy. This is the default mode.", style = MaterialTheme.typography.bodySmall) + } } - } } - item { Text("UDP and QUIC are blocked; DNS uses the configured DoH endpoint.", style = MaterialTheme.typography.bodySmall) } - item { Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) { - Column(Modifier.weight(1f)) { - Text("Enable IPv6 destinations") - Text( - "Disabled by default for proxies that cannot CONNECT to IPv6 addresses.", - style = MaterialTheme.typography.bodySmall, - ) + } + item { Text("UDP and QUIC are blocked; DNS uses the profile's configured DoH endpoint.", style = MaterialTheme.typography.bodySmall) } + item { + Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) { + Column(Modifier.weight(1f)) { + Text("Enable IPv6 destinations") + Text("Disabled by default for proxies that cannot CONNECT to IPv6 addresses.", style = MaterialTheme.typography.bodySmall) + } + Checkbox(settings.allowIpv6, { updateSettings(settings.copy(allowIpv6 = it)) }) } - Checkbox(config.allowIpv6, { - updateConfig(config.copy(allowIpv6 = it)) - }) - } } - item { Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) { - Column(Modifier.weight(1f)) { - Text("Bypass local networks") - Text( - "Direct TCP access to private and link-local IP addresses. DNS still uses DoH; local UDP and mDNS remain blocked.", - style = MaterialTheme.typography.bodySmall, - ) + } + item { + Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) { + Column(Modifier.weight(1f)) { + Text("Bypass local networks") + Text("Direct TCP access to private and link-local IP addresses.", style = MaterialTheme.typography.bodySmall) + } + Checkbox(settings.bypassLocalNetworks, { updateSettings(settings.copy(bypassLocalNetworks = it)) }) } - Checkbox(config.bypassLocalNetworks, { - updateConfig(config.copy(bypassLocalNetworks = it)) - }) - } } - if (!config.routeAllApps) { + } + if (!settings.routeAllApps) { item { Text("Applications", style = MaterialTheme.typography.titleMedium) } item { OutlinedTextField( @@ -209,49 +160,51 @@ private fun SplitTunnelScreen(activity: SplitTunnelActivity) { items(visibleApps, key = { it.packageName }) { app -> Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) { Text(app.label, Modifier.weight(1f).padding(top = 12.dp)) - Checkbox(app.packageName in config.selectedPackages, { checked -> - updateConfig(config.copy(selectedPackages = if (checked) config.selectedPackages + app.packageName else config.selectedPackages - app.packageName)) + Checkbox(app.packageName in settings.selectedPackages, { checked -> + updateSettings(settings.copy(selectedPackages = if (checked) { + settings.selectedPackages + app.packageName + } else { + settings.selectedPackages - app.packageName + })) }) } } } - item { Text("Changes are saved automatically.", style = MaterialTheme.typography.bodySmall) } + item { Text("Changes are saved automatically and apply to every profile.", style = MaterialTheme.typography.bodySmall) } } } if (showReconnectPrompt) { AlertDialog( - onDismissRequest = { - showReconnectPrompt = false - deferChangesUntilNextConnection = true - }, + onDismissRequest = { showReconnectPrompt = false; deferChangesUntilNextConnection = true }, title = { Text("Apply routing changes?") }, - text = { - Text("The VPN is currently connected. Reconnect now to apply the new split-tunneling settings, or apply them the next time it connects.") - }, + text = { Text("Reconnect now to apply the new split-tunneling settings, or apply them the next time the VPN connects.") }, confirmButton = { TextButton(onClick = { showReconnectPrompt = false ProxyVpnService.reconnect(activity) - }) { Text("Reconnect now") } + }) { + Text("Reconnect now") + } }, dismissButton = { TextButton(onClick = { showReconnectPrompt = false deferChangesUntilNextConnection = true - }) { Text("Next connection") } + }) { + Text("Next connection") + } }, ) } - if (showAlwaysOnDeferredNotice) { AlertDialog( onDismissRequest = { showAlwaysOnDeferredNotice = false }, title = { Text("Routing settings saved") }, text = { Text("Always-on VPN is managed by Android. The new split-tunneling settings will be applied the next time the VPN connects.") }, - confirmButton = { - TextButton(onClick = { showAlwaysOnDeferredNotice = false }) { Text("OK") } - }, + confirmButton = { TextButton(onClick = { + showAlwaysOnDeferredNotice = false + }) { Text("OK") } }, ) } } diff --git a/app/src/main/java/net/megaproxy487/data/ConfigStore.kt b/app/src/main/java/net/megaproxy487/data/ConfigStore.kt index e207651..efe9bf5 100644 --- a/app/src/main/java/net/megaproxy487/data/ConfigStore.kt +++ b/app/src/main/java/net/megaproxy487/data/ConfigStore.kt @@ -11,6 +11,7 @@ import net.megaproxy487.model.ProfileSort import net.megaproxy487.model.ProxyConfig import net.megaproxy487.model.ProxyProfile import net.megaproxy487.model.TlsProfile +import net.megaproxy487.model.GlobalConnectionSettings import org.json.JSONArray import org.json.JSONObject import java.security.KeyStore @@ -88,10 +89,40 @@ class ConfigStore(context: Context) { fun connectionProfile(): ProxyProfile = profile(prefs.getString(CONNECTION_PROFILE_ID, null).orEmpty()) ?: activeProfile() + fun connectionConfig(): ProxyConfig = globalConnectionSettings().applyTo(connectionProfile().config) + fun setConnectionProfile(id: String) { if (profile(id) != null) prefs.edit().putString(CONNECTION_PROFILE_ID, id).apply() } + @Synchronized + fun globalConnectionSettings(): GlobalConnectionSettings { + ensureMigrated() + val stored = prefs.getString(GLOBAL_CONNECTION_SETTINGS, null) + if (stored != null) { + val decoded = decodeGlobalConnectionSettings(stored) + return decoded + } + val source = activeProfile().config + val migrated = GlobalConnectionSettings( + tlsProfile = source.profile.takeIf { it.available } ?: TlsProfile.DEFAULT, + customJa3 = source.customJa3, + selectedPackages = source.selectedPackages, + allowIpv6 = source.allowIpv6, + routeAllApps = source.routeAllApps, + bypassLocalNetworks = source.bypassLocalNetworks, + ) + saveGlobalConnectionSettings(migrated) + return migrated + } + + fun saveGlobalConnectionSettings(settings: GlobalConnectionSettings) { + val normalized = settings.copy( + tlsProfile = settings.tlsProfile.takeIf { it.available } ?: TlsProfile.DEFAULT, + ) + prefs.edit().putString(GLOBAL_CONNECTION_SETTINGS, encodeGlobalConnectionSettings(normalized)).apply() + } + @Synchronized fun addProfile(): ProxyProfile { val existing = profiles() @@ -155,6 +186,7 @@ class ConfigStore(context: Context) { configuration.activeProfileId?.let(idMap::get)?.let { editor.putString(ACTIVE_PROFILE_ID, it) } configuration.alwaysOnProfileId?.let(idMap::get)?.let { editor.putString(ALWAYS_ON_PROFILE_ID, it) } editor.apply() + configuration.globalConnectionSettings?.let(::saveGlobalConnectionSettings) return added } @@ -221,13 +253,13 @@ class ConfigStore(context: Context) { username = prefs.getString("username", "").orEmpty(), password = decrypt(prefs.getString("password", null)), allowInvalidProxyCertificate = false, - profile = enumValue(prefs.getString("profile", null), TlsProfile.CHROME_ANDROID), + profile = enumValue(prefs.getString("profile", null), TlsProfile.DEFAULT), customJa3 = prefs.getString("custom_ja3", "").orEmpty(), dnsProvider = enumValue(prefs.getString("dns_provider", null), DnsProvider.CLOUDFLARE), customDohUrl = prefs.getString("custom_doh_url", "").orEmpty(), selectedPackages = prefs.getStringSet("packages", emptySet())?.toSet().orEmpty(), allowIpv6 = prefs.getBoolean("allow_ipv6", false), - routeAllApps = false, + routeAllApps = true, bypassLocalNetworks = true, ) @@ -292,7 +324,7 @@ class ConfigStore(context: Context) { username = item.optString("username"), password = decrypt(item.optString("password").ifEmpty { null }), allowInvalidProxyCertificate = item.optBoolean("allowInvalidProxyCertificate", false), - profile = enumValue(item.optString("fingerprint"), TlsProfile.CHROME_ANDROID), + profile = enumValue(item.optString("fingerprint"), TlsProfile.DEFAULT), customJa3 = item.optString("customJa3"), dnsProvider = enumValue(item.optString("dnsProvider"), DnsProvider.CLOUDFLARE), customDohUrl = item.optString("customDohUrl"), @@ -304,6 +336,30 @@ class ConfigStore(context: Context) { bypassLocalNetworks = item.optBoolean("bypassLocalNetworks", true), ) + private fun encodeGlobalConnectionSettings(settings: GlobalConnectionSettings) = JSONObject().apply { + put("fingerprint", settings.tlsProfile.name) + put("customJa3", settings.customJa3.trim()) + put("packages", JSONArray(settings.selectedPackages.sorted())) + put("allowIpv6", settings.allowIpv6) + put("routeAllApps", settings.routeAllApps) + put("bypassLocalNetworks", settings.bypassLocalNetworks) + }.toString() + + private fun decodeGlobalConnectionSettings(value: String): GlobalConnectionSettings = runCatching { + val item = JSONObject(value) + val parsedTls = enumValue(item.optString("fingerprint"), TlsProfile.DEFAULT) + GlobalConnectionSettings( + tlsProfile = parsedTls.takeIf { it.available } ?: TlsProfile.DEFAULT, + customJa3 = item.optString("customJa3"), + selectedPackages = item.optJSONArray("packages")?.let { array -> + (0 until array.length()).mapNotNull { array.optString(it).takeIf(String::isNotBlank) }.toSet() + }.orEmpty(), + allowIpv6 = item.optBoolean("allowIpv6", false), + routeAllApps = item.optBoolean("routeAllApps", true), + bypassLocalNetworks = item.optBoolean("bypassLocalNetworks", true), + ) + }.getOrDefault(GlobalConnectionSettings()) + private fun key(): SecretKey { val store = KeyStore.getInstance("AndroidKeyStore").apply { load(null) } (store.getKey(KEY_ALIAS, null) as? SecretKey)?.let { return it } @@ -343,5 +399,6 @@ class ConfigStore(context: Context) { const val PROFILE_SORT = "profile_sort" const val PROFILE_SORT_ASCENDING = "profile_sort_ascending" const val DIAGNOSTIC_LOG_LIMIT_MB = "diagnostic_log_limit_mb" + const val GLOBAL_CONNECTION_SETTINGS = "global_connection_settings_v1" } } diff --git a/app/src/main/java/net/megaproxy487/data/ConfigTransfer.kt b/app/src/main/java/net/megaproxy487/data/ConfigTransfer.kt index d52f136..435ddb1 100644 --- a/app/src/main/java/net/megaproxy487/data/ConfigTransfer.kt +++ b/app/src/main/java/net/megaproxy487/data/ConfigTransfer.kt @@ -5,6 +5,7 @@ import net.megaproxy487.model.ProfileSort import net.megaproxy487.model.ProxyConfig import net.megaproxy487.model.ProxyProfile import net.megaproxy487.model.TlsProfile +import net.megaproxy487.model.GlobalConnectionSettings import org.json.JSONArray import org.json.JSONObject import java.net.URLEncoder @@ -22,11 +23,12 @@ data class PortableConfiguration( val sort: ProfileSort, val sortAscending: Boolean, val diagnosticLogLimitMb: Int = 3, + val globalConnectionSettings: GlobalConnectionSettings? = null, val skippedProfiles: Int = 0, ) object ConfigTransfer { - const val SCHEMA_VERSION = 1 + const val SCHEMA_VERSION = 2 fun exportProxyList(profiles: List, includePasswords: Boolean): String = profiles.joinToString("\n", postfix = "\n") { profile -> @@ -53,6 +55,17 @@ object ConfigTransfer { put("profileSort", store.profileSort().name) put("profileSortAscending", store.isProfileSortAscending()) put("diagnosticLogLimitMb", store.diagnosticLogLimitMb()) + val global = store.globalConnectionSettings() + put("tls", JSONObject().apply { + put("fingerprint", global.tlsProfile.name) + put("customJa3", global.customJa3.trim()) + }) + put("routing", JSONObject().apply { + put("routeAllApps", global.routeAllApps) + put("selectedPackages", JSONArray(global.selectedPackages.sorted())) + put("allowIpv6", global.allowIpv6) + put("bypassLocalNetworks", global.bypassLocalNetworks) + }) put("profiles", JSONArray().apply { store.profiles().forEach { profile -> put(encodeProfile(profile, includePasswords)) } }) @@ -76,10 +89,30 @@ object ConfigTransfer { sort = enumValue(root.optString("profileSort"), ProfileSort.NAME), sortAscending = root.optBoolean("profileSortAscending", true), diagnosticLogLimitMb = root.optInt("diagnosticLogLimitMb", 3).coerceIn(1, 100), + globalConnectionSettings = if (version >= 2) decodeGlobalSettings(root) else null, skippedProfiles = decoded.count(Result::isFailure), ) } + private fun decodeGlobalSettings(root: JSONObject): GlobalConnectionSettings { + val tls = root.optJSONObject("tls") ?: JSONObject() + val routing = root.optJSONObject("routing") ?: JSONObject() + val parsedTls = enumValue(tls.optString("fingerprint"), TlsProfile.DEFAULT) + val packages = routing.optJSONArray("selectedPackages")?.let { array -> + (0 until array.length()).mapNotNull { index -> + array.optString(index).trim().takeIf { it.matches(Regex("[A-Za-z0-9_.]+")) } + }.toSet() + }.orEmpty() + return GlobalConnectionSettings( + tlsProfile = parsedTls.takeIf { it.available } ?: TlsProfile.DEFAULT, + customJa3 = tls.optString("customJa3"), + selectedPackages = packages, + allowIpv6 = routing.optBoolean("allowIpv6", false), + routeAllApps = routing.optBoolean("routeAllApps", true), + bypassLocalNetworks = routing.optBoolean("bypassLocalNetworks", true), + ) + } + private fun encodeProfile(profile: ProxyProfile, includePasswords: Boolean) = JSONObject().apply { put("id", profile.id) put("name", profile.name.trim()) @@ -131,7 +164,7 @@ object ConfigTransfer { username = proxy.optString("username"), password = proxy.optString("password"), allowInvalidProxyCertificate = proxy.optBoolean("allowInvalidProxyCertificate", false), - profile = enumValue(tls.optString("fingerprint"), TlsProfile.CHROME_ANDROID), + profile = enumValue(tls.optString("fingerprint"), TlsProfile.DEFAULT), customJa3 = tls.optString("customJa3"), dnsProvider = enumValue(dns.optString("provider"), DnsProvider.CLOUDFLARE), customDohUrl = dns.optString("customDohUrl"), diff --git a/app/src/main/java/net/megaproxy487/model/ProxyConfig.kt b/app/src/main/java/net/megaproxy487/model/ProxyConfig.kt index fedad20..704d82d 100644 --- a/app/src/main/java/net/megaproxy487/model/ProxyConfig.kt +++ b/app/src/main/java/net/megaproxy487/model/ProxyConfig.kt @@ -6,13 +6,13 @@ data class ProxyConfig( val username: String = "", val password: String = "", val allowInvalidProxyCertificate: Boolean = false, - val profile: TlsProfile = TlsProfile.CHROME_ANDROID, + val profile: TlsProfile = TlsProfile.DEFAULT, val customJa3: String = "", val dnsProvider: DnsProvider = DnsProvider.CLOUDFLARE, val customDohUrl: String = "", val selectedPackages: Set = emptySet(), val allowIpv6: Boolean = false, - val routeAllApps: Boolean = false, + val routeAllApps: Boolean = true, val bypassLocalNetworks: Boolean = true, val resolvedProxyIp: String = "", ) { @@ -30,7 +30,6 @@ data class ProxyConfig( } fun validationError(): String? = connectionValidationError() - ?: if (!routeAllApps && selectedPackages.isEmpty()) "Select at least one application" else null } data class ProxyProfile( @@ -79,6 +78,7 @@ enum class DnsProvider(val title: String, val url: String) { } enum class TlsProfile(val title: String, val available: Boolean = true) { + DEFAULT("Default (currently Chrome Android)"), CHROME_ANDROID("Chrome Android 133 (uTLS)"), FIREFOX_ANDROID("Firefox Android 120 (uTLS)"), EDGE_ANDROID("Edge Android (awaiting a verified profile)", false), @@ -88,6 +88,24 @@ enum class TlsProfile(val title: String, val available: Boolean = true) { CUSTOM("Manual JA3"), } +data class GlobalConnectionSettings( + val tlsProfile: TlsProfile = TlsProfile.DEFAULT, + val customJa3: String = "", + val selectedPackages: Set = emptySet(), + val allowIpv6: Boolean = false, + val routeAllApps: Boolean = true, + val bypassLocalNetworks: Boolean = true, +) { + fun applyTo(config: ProxyConfig): ProxyConfig = config.copy( + profile = if (tlsProfile == TlsProfile.DEFAULT) TlsProfile.CHROME_ANDROID else tlsProfile, + customJa3 = customJa3, + selectedPackages = selectedPackages, + allowIpv6 = allowIpv6, + routeAllApps = routeAllApps, + bypassLocalNetworks = bypassLocalNetworks, + ) +} + data class Ja3Spec( val tlsVersion: Int, val cipherSuites: List, diff --git a/app/src/main/java/net/megaproxy487/vpn/ProxyVpnService.kt b/app/src/main/java/net/megaproxy487/vpn/ProxyVpnService.kt index 337c9d4..17e64f3 100644 --- a/app/src/main/java/net/megaproxy487/vpn/ProxyVpnService.kt +++ b/app/src/main/java/net/megaproxy487/vpn/ProxyVpnService.kt @@ -118,7 +118,7 @@ class ProxyVpnService : VpnService() { TestDiagnosticLog.add("Connection test is already running") return } - val storedConfig = ConfigStore(this).activeProfile().config + val storedConfig = ConfigStore(this).globalConnectionSettings().applyTo(ConfigStore(this).activeProfile().config) storedConfig.connectionValidationError()?.let { TestDiagnosticLog.fail("Connection test cannot start: $it") testRunning.set(false) @@ -151,7 +151,7 @@ class ProxyVpnService : VpnService() { private fun startTunnel(testOnly: Boolean, suppliedConfig: net.megaproxy487.model.ProxyConfig? = null): Boolean { val storedProfile = ConfigStore(this).connectionProfile() - val storedConfig = suppliedConfig ?: storedProfile.config + val storedConfig = suppliedConfig ?: ConfigStore(this).globalConnectionSettings().applyTo(storedProfile.config) val diagnostics = if (testOnly) TestDiagnosticLog::add else DiagnosticLog::add diagnostics( if (testOnly) "event=vpn_start mode=test" diff --git a/app/src/test/java/net/megaproxy487/data/ConfigTransferTest.kt b/app/src/test/java/net/megaproxy487/data/ConfigTransferTest.kt index c5acca0..69d4268 100644 --- a/app/src/test/java/net/megaproxy487/data/ConfigTransferTest.kt +++ b/app/src/test/java/net/megaproxy487/data/ConfigTransferTest.kt @@ -60,9 +60,30 @@ class ConfigTransferTest { ) val profile = imported.profiles.single() assertEquals(443, profile.config.port) - assertEquals(TlsProfile.CHROME_ANDROID, profile.config.profile) + assertEquals(TlsProfile.DEFAULT, profile.config.profile) assertEquals(setOf("com.example.not.installed"), profile.config.selectedPackages) assertEquals("", profile.config.password) assertEquals("source", imported.activeProfileId) } + + @Test + fun `unsupported global fingerprint falls back to default`() { + val imported = ConfigTransfer.importJson( + """ + { + "schema":"dev.megaproxy.config", + "version":2, + "tls":{"fingerprint":"SAMSUNG_INTERNET","customJa3":"ignored"}, + "routing":{"selectedPackages":["com.example.missing"],"routeAllApps":false}, + "profiles":[{ + "id":"one", + "proxy":{"host":"proxy.example","username":"user"} + }] + } + """.trimIndent(), + ) + + assertEquals(TlsProfile.DEFAULT, imported.globalConnectionSettings?.tlsProfile) + assertEquals(setOf("com.example.missing"), imported.globalConnectionSettings?.selectedPackages) + } } diff --git a/app/src/test/java/net/megaproxy487/data/ProxyListParserTest.kt b/app/src/test/java/net/megaproxy487/data/ProxyListParserTest.kt index 90c57a1..5416eb5 100644 --- a/app/src/test/java/net/megaproxy487/data/ProxyListParserTest.kt +++ b/app/src/test/java/net/megaproxy487/data/ProxyListParserTest.kt @@ -17,7 +17,7 @@ class ProxyListParserTest { assertEquals(8443, result.config.port) assertEquals("user", result.config.username) assertEquals("p@ss:word", result.config.password) - assertTrue(!result.config.routeAllApps) + assertTrue(result.config.routeAllApps) } @Test diff --git a/app/src/test/java/net/megaproxy487/model/ProxyConfigTest.kt b/app/src/test/java/net/megaproxy487/model/ProxyConfigTest.kt index 4589394..7af4666 100644 --- a/app/src/test/java/net/megaproxy487/model/ProxyConfigTest.kt +++ b/app/src/test/java/net/megaproxy487/model/ProxyConfigTest.kt @@ -5,6 +5,14 @@ import org.junit.Assert.assertNull import org.junit.Test class ProxyConfigTest { + @Test + fun `default TLS fingerprint currently resolves to Chrome Android`() { + val resolved = GlobalConnectionSettings(tlsProfile = TlsProfile.DEFAULT) + .applyTo(ProxyConfig()) + + assertEquals(TlsProfile.CHROME_ANDROID, resolved.profile) + } + private val validConnection = ProxyConfig( host = "proxy.example.com", username = "user", @@ -12,12 +20,12 @@ class ProxyConfigTest { ) @Test - fun splitTunnelingRequiresAnApplication() { - assertEquals("Select at least one application", validConnection.validationError()) + fun splitTunnelingAllowsNoApplications() { + assertNull(validConnection.copy(routeAllApps = false).validationError()) } @Test fun globalVpnDoesNotRequireSelectedApplications() { - assertNull(validConnection.copy(routeAllApps = true).validationError()) + assertNull(validConnection.validationError()) } } From 36109a04da3a842d1eb6258830d2c1b10c295b03 Mon Sep 17 00:00:00 2001 From: Andrey Prokopyuk Date: Tue, 1 Sep 2026 12:02:21 +0300 Subject: [PATCH 11/41] Better test message --- .../main/java/net/megaproxy487/ConnectionTestActivity.kt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/src/main/java/net/megaproxy487/ConnectionTestActivity.kt b/app/src/main/java/net/megaproxy487/ConnectionTestActivity.kt index 79db08a..16116df 100644 --- a/app/src/main/java/net/megaproxy487/ConnectionTestActivity.kt +++ b/app/src/main/java/net/megaproxy487/ConnectionTestActivity.kt @@ -42,6 +42,7 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.dp import net.megaproxy487.data.ConfigStore import net.megaproxy487.vpn.ProxyVpnService @@ -125,6 +126,11 @@ private fun ConnectionTestScreen(activity: Activity, autoStart: Boolean) { ) { Card(Modifier.fillMaxWidth()) { Column(Modifier.padding(16.dp), verticalArrangement = Arrangement.spacedBy(4.dp)) { + val statusColor = when (state) { + TestState.SUCCEEDED -> Color(0xFF2E7D32) + TestState.FAILED -> MaterialTheme.colorScheme.error + else -> MaterialTheme.colorScheme.onSurface + } Text( when (state) { TestState.IDLE -> "Ready" @@ -133,6 +139,7 @@ private fun ConnectionTestScreen(activity: Activity, autoStart: Boolean) { TestState.FAILED -> "Test failed" }, style = MaterialTheme.typography.titleLarge, + color = statusColor, ) exitIp?.let { Text("Proxy exit IP: $it") } } From 86f78e44a3780ad38ff60b9c6560b8e66a2993ce Mon Sep 17 00:00:00 2001 From: Andrey Prokopyuk Date: Tue, 1 Sep 2026 12:11:12 +0300 Subject: [PATCH 12/41] Better profiles sorting --- .../net/megaproxy487/ProxySettingsActivity.kt | 89 +++++++++++-------- .../java/net/megaproxy487/data/ConfigStore.kt | 30 ++----- .../net/megaproxy487/data/ConfigTransfer.kt | 7 -- .../net/megaproxy487/model/ProxyConfig.kt | 6 -- 4 files changed, 62 insertions(+), 70 deletions(-) diff --git a/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt b/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt index e2fe63b..cb5d631 100644 --- a/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt +++ b/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt @@ -21,6 +21,8 @@ import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.safeDrawing import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.lazy.rememberLazyListState +import androidx.compose.foundation.gestures.detectDragGesturesAfterLongPress import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.icons.Icons import androidx.compose.material.icons.automirrored.filled.ArrowBack @@ -50,11 +52,15 @@ import androidx.compose.material3.TopAppBar import androidx.compose.runtime.Composable import androidx.compose.runtime.DisposableEffect import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateListOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.input.pointer.pointerInput +import androidx.compose.ui.graphics.graphicsLayer +import androidx.compose.ui.zIndex import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.luminance import androidx.compose.ui.unit.dp @@ -69,7 +75,6 @@ import net.megaproxy487.data.ProxyListParser import net.megaproxy487.model.ProfileColors import net.megaproxy487.model.ProxyProfile import net.megaproxy487.vpn.PersistentDiagnosticLog -import net.megaproxy487.model.ProfileSort import net.megaproxy487.vpn.ProxyVpnService class ProfilesActivity : ComponentActivity() { @@ -83,10 +88,7 @@ class ProfilesActivity : ComponentActivity() { @Composable private fun SettingsScreen(activity: Activity) { val store = remember { ConfigStore(activity) } - var profiles by remember { mutableStateOf(store.sortedProfiles()) } - var sort by remember { mutableStateOf(store.profileSort()) } - var ascending by remember { mutableStateOf(store.isProfileSortAscending()) } - var sortExpanded by remember { mutableStateOf(false) } + val profiles = remember { mutableStateListOf().apply { addAll(store.sortedProfiles()) } } var deleteProfile by remember { mutableStateOf(null) } var importedProfileCount by remember { mutableStateOf(0) } var importError by remember { mutableStateOf(null) } @@ -100,8 +102,13 @@ private fun SettingsScreen(activity: Activity) { var transferMessage by remember { mutableStateOf(null) } var pendingUnsafeImport by remember { mutableStateOf(null) } val lifecycleOwner = LocalLifecycleOwner.current + val listState = rememberLazyListState() + var draggedProfileId by remember { mutableStateOf(null) } - fun refresh() { profiles = store.sortedProfiles() } + fun refresh() { + profiles.clear() + profiles.addAll(store.sortedProfiles()) + } fun edit(profile: ProxyProfile) { activity.startActivity(Intent(activity, ProfileEditorActivity::class.java).apply { putExtra(ProfileEditorActivity.EXTRA_PROFILE_ID, profile.id) @@ -118,8 +125,6 @@ private fun SettingsScreen(activity: Activity) { fun applyJsonImport(configuration: PortableConfiguration) { val added = store.importConfiguration(configuration) PersistentDiagnosticLog.setLimitMb(store.diagnosticLogLimitMb()) - sort = store.profileSort() - ascending = store.isProfileSortAscending() refresh() val missingPasswords = added.count { it.config.password.isEmpty() } transferMessage = buildString { @@ -210,37 +215,50 @@ private fun SettingsScreen(activity: Activity) { ) { padding -> LazyColumn( Modifier.fillMaxSize().padding(padding).padding(horizontal = 16.dp), + state = listState, verticalArrangement = Arrangement.spacedBy(10.dp), ) { - item { - Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.spacedBy(10.dp)) { - ExposedDropdownMenuBox(sortExpanded, { sortExpanded = it }, Modifier.weight(1f)) { - OutlinedTextField( - sort.title, {}, readOnly = true, label = { Text("Sort by") }, - trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(sortExpanded) }, - modifier = Modifier.menuAnchor().fillMaxWidth(), - ) - DropdownMenu(sortExpanded, { sortExpanded = false }) { - ProfileSort.entries.forEach { option -> DropdownMenuItem(text = { Text(option.title) }, onClick = { - sort = option - store.setProfileSort(sort, ascending) - refresh() - sortExpanded = false - }) } - } - } - OutlinedButton(onClick = { - ascending = !ascending - store.setProfileSort(sort, ascending) - refresh() - }, modifier = Modifier.padding(top = 8.dp)) { - Text(if (ascending) "Ascending" else "Descending") - } - } - } items(profiles, key = { it.id }) { profile -> + var dragOffset by remember(profile.id) { mutableStateOf(0f) } ProfileCard( profile = profile, + modifier = Modifier + .zIndex(if (draggedProfileId == profile.id) 1f else 0f) + .graphicsLayer { + translationY = dragOffset + alpha = if (draggedProfileId == profile.id) 0.92f else 1f + } + .pointerInput(profile.id) { + detectDragGesturesAfterLongPress( + onDragStart = { draggedProfileId = profile.id }, + onDragCancel = { + dragOffset = 0f + draggedProfileId = null + store.reorderProfiles(profiles.map(ProxyProfile::id)) + }, + onDragEnd = { + dragOffset = 0f + draggedProfileId = null + store.reorderProfiles(profiles.map(ProxyProfile::id)) + }, + onDrag = { change, amount -> + change.consume() + dragOffset += amount.y + val currentIndex = profiles.indexOfFirst { it.id == profile.id } + val currentInfo = listState.layoutInfo.visibleItemsInfo + .firstOrNull { it.key == profile.id } ?: return@detectDragGesturesAfterLongPress + val targetY = currentInfo.offset + currentInfo.size / 2f + dragOffset + val targetInfo = listState.layoutInfo.visibleItemsInfo.firstOrNull { + it.key != profile.id && targetY.toInt() in it.offset..(it.offset + it.size) + } ?: return@detectDragGesturesAfterLongPress + val targetIndex = profiles.indexOfFirst { it.id == targetInfo.key } + if (currentIndex >= 0 && targetIndex >= 0 && currentIndex != targetIndex) { + dragOffset += currentInfo.offset - targetInfo.offset + profiles.add(targetIndex, profiles.removeAt(currentIndex)) + } + }, + ) + }, onConfigure = { edit(profile) }, onClone = { store.cloneProfile(profile.id); refresh() }, onDelete = { deleteProfile = profile }, @@ -340,6 +358,7 @@ private fun SettingsScreen(activity: Activity) { @Composable private fun ProfileCard( profile: ProxyProfile, + modifier: Modifier = Modifier, onConfigure: () -> Unit, onClone: () -> Unit, onDelete: () -> Unit, @@ -348,7 +367,7 @@ private fun ProfileCard( val foreground = if (background.luminance() > 0.45f) Color.Black else Color.White Card( colors = CardDefaults.cardColors(containerColor = background, contentColor = foreground), - modifier = Modifier.fillMaxWidth().clickable(onClick = onConfigure), + modifier = modifier.fillMaxWidth().clickable(onClick = onConfigure), ) { Column(Modifier.fillMaxWidth().padding(14.dp), verticalArrangement = Arrangement.spacedBy(8.dp)) { Row(verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.spacedBy(8.dp)) { diff --git a/app/src/main/java/net/megaproxy487/data/ConfigStore.kt b/app/src/main/java/net/megaproxy487/data/ConfigStore.kt index efe9bf5..f39f28e 100644 --- a/app/src/main/java/net/megaproxy487/data/ConfigStore.kt +++ b/app/src/main/java/net/megaproxy487/data/ConfigStore.kt @@ -7,7 +7,6 @@ import android.util.Base64 import net.megaproxy487.model.DnsProvider import net.megaproxy487.model.ProfileColors import net.megaproxy487.model.ProfileColorMatcher -import net.megaproxy487.model.ProfileSort import net.megaproxy487.model.ProxyConfig import net.megaproxy487.model.ProxyProfile import net.megaproxy487.model.TlsProfile @@ -46,24 +45,15 @@ class ConfigStore(context: Context) { fun alwaysOnProfile(): ProxyProfile = profile(alwaysOnProfileId()) ?: profiles().first() - fun profileSort(): ProfileSort = enumValue(prefs.getString(PROFILE_SORT, null), ProfileSort.NAME) + fun sortedProfiles(): List = profiles() - fun isProfileSortAscending(): Boolean = prefs.getBoolean(PROFILE_SORT_ASCENDING, true) - - fun setProfileSort(sort: ProfileSort, ascending: Boolean) { - prefs.edit() - .putString(PROFILE_SORT, sort.name) - .putBoolean(PROFILE_SORT_ASCENDING, ascending) - .apply() - } - - fun sortedProfiles(): List { - val comparator = when (profileSort()) { - ProfileSort.NAME -> compareBy { it.displayName.lowercase() } - ProfileSort.HOST -> compareBy { it.config.host.lowercase() } - ProfileSort.COUNTRY -> compareBy { it.countryCode }.thenBy { it.displayName.lowercase() } - } - return profiles().sortedWith(if (isProfileSortAscending()) comparator else comparator.reversed()) + @Synchronized + fun reorderProfiles(orderedIds: List) { + val current = profiles() + val byId = current.associateBy(ProxyProfile::id) + val reordered = orderedIds.mapNotNull(byId::get) + current.filter { it.id !in orderedIds } + if (reordered.map(ProxyProfile::id) == current.map(ProxyProfile::id)) return + writeProfiles(reordered) } fun profile(id: String): ProxyProfile? = profiles().firstOrNull { it.id == id } @@ -180,8 +170,6 @@ class ConfigStore(context: Context) { } writeProfiles(existing + added) val editor = prefs.edit() - .putString(PROFILE_SORT, configuration.sort.name) - .putBoolean(PROFILE_SORT_ASCENDING, configuration.sortAscending) .putInt(DIAGNOSTIC_LOG_LIMIT_MB, configuration.diagnosticLogLimitMb) configuration.activeProfileId?.let(idMap::get)?.let { editor.putString(ACTIVE_PROFILE_ID, it) } configuration.alwaysOnProfileId?.let(idMap::get)?.let { editor.putString(ALWAYS_ON_PROFILE_ID, it) } @@ -396,8 +384,6 @@ class ConfigStore(context: Context) { const val CONNECTION_PROFILE_ID = "connection_profile_id" const val FLAG_COLOR_VERSION = "flag_color_version" const val CURRENT_FLAG_COLOR_VERSION = 1 - const val PROFILE_SORT = "profile_sort" - const val PROFILE_SORT_ASCENDING = "profile_sort_ascending" const val DIAGNOSTIC_LOG_LIMIT_MB = "diagnostic_log_limit_mb" const val GLOBAL_CONNECTION_SETTINGS = "global_connection_settings_v1" } diff --git a/app/src/main/java/net/megaproxy487/data/ConfigTransfer.kt b/app/src/main/java/net/megaproxy487/data/ConfigTransfer.kt index 435ddb1..bd6807b 100644 --- a/app/src/main/java/net/megaproxy487/data/ConfigTransfer.kt +++ b/app/src/main/java/net/megaproxy487/data/ConfigTransfer.kt @@ -1,7 +1,6 @@ package net.megaproxy487.data import net.megaproxy487.model.DnsProvider -import net.megaproxy487.model.ProfileSort import net.megaproxy487.model.ProxyConfig import net.megaproxy487.model.ProxyProfile import net.megaproxy487.model.TlsProfile @@ -20,8 +19,6 @@ data class PortableConfiguration( val profiles: List, val activeProfileId: String?, val alwaysOnProfileId: String?, - val sort: ProfileSort, - val sortAscending: Boolean, val diagnosticLogLimitMb: Int = 3, val globalConnectionSettings: GlobalConnectionSettings? = null, val skippedProfiles: Int = 0, @@ -52,8 +49,6 @@ object ConfigTransfer { put("passwordsIncluded", includePasswords) put("activeProfileId", store.activeProfileId()) put("alwaysOnProfileId", store.alwaysOnProfileId()) - put("profileSort", store.profileSort().name) - put("profileSortAscending", store.isProfileSortAscending()) put("diagnosticLogLimitMb", store.diagnosticLogLimitMb()) val global = store.globalConnectionSettings() put("tls", JSONObject().apply { @@ -86,8 +81,6 @@ object ConfigTransfer { profiles = profiles, activeProfileId = root.optString("activeProfileId").ifBlank { null }, alwaysOnProfileId = root.optString("alwaysOnProfileId").ifBlank { null }, - sort = enumValue(root.optString("profileSort"), ProfileSort.NAME), - sortAscending = root.optBoolean("profileSortAscending", true), diagnosticLogLimitMb = root.optInt("diagnosticLogLimitMb", 3).coerceIn(1, 100), globalConnectionSettings = if (version >= 2) decodeGlobalSettings(root) else null, skippedProfiles = decoded.count(Result::isFailure), diff --git a/app/src/main/java/net/megaproxy487/model/ProxyConfig.kt b/app/src/main/java/net/megaproxy487/model/ProxyConfig.kt index 704d82d..3569453 100644 --- a/app/src/main/java/net/megaproxy487/model/ProxyConfig.kt +++ b/app/src/main/java/net/megaproxy487/model/ProxyConfig.kt @@ -64,12 +64,6 @@ object ProfileColors { ) } -enum class ProfileSort(val title: String) { - NAME("Name"), - HOST("Host"), - COUNTRY("Country"), -} - enum class DnsProvider(val title: String, val url: String) { CLOUDFLARE("Cloudflare", "https://cloudflare-dns.com/dns-query"), GOOGLE("Google", "https://dns.google/dns-query"), From 5bb33c9c942be9a1f59d39227654e57aebde39bb Mon Sep 17 00:00:00 2001 From: Andrey Prokopyuk Date: Tue, 1 Sep 2026 12:17:27 +0300 Subject: [PATCH 13/41] Hide battery button if doesn't needed --- .../net/megaproxy487/SettingsActivities.kt | 31 ++++++++++++++++--- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/net/megaproxy487/SettingsActivities.kt b/app/src/main/java/net/megaproxy487/SettingsActivities.kt index f80fa1b..5b3bb94 100644 --- a/app/src/main/java/net/megaproxy487/SettingsActivities.kt +++ b/app/src/main/java/net/megaproxy487/SettingsActivities.kt @@ -4,6 +4,7 @@ import android.app.Activity import android.content.Intent import android.net.Uri import android.os.Bundle +import android.os.PowerManager import android.provider.Settings import androidx.activity.ComponentActivity import androidx.activity.compose.setContent @@ -35,12 +36,16 @@ import androidx.compose.material3.Text import androidx.compose.material3.TextButton import androidx.compose.material3.TopAppBar import androidx.compose.runtime.Composable +import androidx.compose.runtime.DisposableEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp +import androidx.lifecycle.Lifecycle +import androidx.lifecycle.LifecycleEventObserver +import androidx.lifecycle.compose.LocalLifecycleOwner import net.megaproxy487.data.ConfigStore import net.megaproxy487.model.Ja3Spec import net.megaproxy487.model.TlsProfile @@ -72,15 +77,33 @@ class TlsFingerprintActivity : ComponentActivity() { @Composable private fun SettingsHomeScreen(activity: Activity) { var showCrashConfirmation by remember { mutableStateOf(false) } + val lifecycleOwner = LocalLifecycleOwner.current + val powerManager = remember { activity.getSystemService(PowerManager::class.java) } + var batteryOptimizationDisabled by remember { + mutableStateOf(powerManager.isIgnoringBatteryOptimizations(activity.packageName)) + } + + DisposableEffect(lifecycleOwner) { + val observer = LifecycleEventObserver { _, event -> + if (event == Lifecycle.Event.ON_RESUME) { + batteryOptimizationDisabled = powerManager.isIgnoringBatteryOptimizations(activity.packageName) + } + } + lifecycleOwner.lifecycle.addObserver(observer) + onDispose { lifecycleOwner.lifecycle.removeObserver(observer) } + } + SettingsScaffold(activity, "Settings") { SettingsButton("Profiles") { activity.startActivity(Intent(activity, ProfilesActivity::class.java)) } SettingsButton("Always-on VPN") { activity.startActivity(Intent(activity, AlwaysOnSettingsActivity::class.java)) } SettingsButton("TLS fingerprint") { activity.startActivity(Intent(activity, TlsFingerprintActivity::class.java)) } SettingsButton("Split tunneling") { activity.startActivity(Intent(activity, SplitTunnelActivity::class.java)) } - SettingsButton("Battery settings") { - activity.startActivity(Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS).apply { - data = Uri.parse("package:${activity.packageName}") - }) + if (!batteryOptimizationDisabled) { + SettingsButton("Battery settings") { + activity.startActivity(Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS).apply { + data = Uri.parse("package:${activity.packageName}") + }) + } } SettingsButton("Diagnostic log") { activity.startActivity(Intent(activity, DiagnosticLogActivity::class.java)) } SettingsButton("Crash") { showCrashConfirmation = true } From baa6bf8d5de0400847271c2cb87ca36b3c877e5f Mon Sep 17 00:00:00 2001 From: Andrey Prokopyuk Date: Tue, 1 Sep 2026 12:30:17 +0300 Subject: [PATCH 14/41] Add more import formats --- .../net/megaproxy487/ProxySettingsActivity.kt | 38 ++++++++++-- .../net/megaproxy487/data/FoxyProxyParser.kt | 60 +++++++++++++++++++ .../net/megaproxy487/data/SuperProxyParser.kt | 15 +++++ .../megaproxy487/data/FoxyProxyParserTest.kt | 52 ++++++++++++++++ .../megaproxy487/data/SuperProxyParserTest.kt | 27 +++++++++ 5 files changed, 186 insertions(+), 6 deletions(-) create mode 100644 app/src/main/java/net/megaproxy487/data/FoxyProxyParser.kt create mode 100644 app/src/main/java/net/megaproxy487/data/SuperProxyParser.kt create mode 100644 app/src/test/java/net/megaproxy487/data/FoxyProxyParserTest.kt create mode 100644 app/src/test/java/net/megaproxy487/data/SuperProxyParserTest.kt diff --git a/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt b/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt index cb5d631..a9a5f72 100644 --- a/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt +++ b/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt @@ -70,8 +70,10 @@ import androidx.lifecycle.compose.LocalLifecycleOwner import net.megaproxy487.data.ConfigStore import net.megaproxy487.data.ConfigExportFormat import net.megaproxy487.data.ConfigTransfer +import net.megaproxy487.data.FoxyProxyParser import net.megaproxy487.data.PortableConfiguration import net.megaproxy487.data.ProxyListParser +import net.megaproxy487.data.SuperProxyParser import net.megaproxy487.model.ProfileColors import net.megaproxy487.model.ProxyProfile import net.megaproxy487.vpn.PersistentDiagnosticLog @@ -163,21 +165,45 @@ private fun SettingsScreen(activity: Activity) { uri.lastPathSegment.orEmpty().substringAfterLast('.', "").equals("json", true) || text.trimStart().startsWith('{') if (isJson) { - val configuration = ConfigTransfer.importJson(text) - if (configuration.profiles.any { it.config.allowInvalidProxyCertificate }) { - pendingUnsafeImport = configuration + val isMegaProxy = runCatching { + org.json.JSONObject(text).optString("schema") == "dev.megaproxy.config" + }.getOrDefault(false) + if (isMegaProxy) { + val configuration = ConfigTransfer.importJson(text) + if (configuration.profiles.any { it.config.allowInvalidProxyCertificate }) { + pendingUnsafeImport = configuration + } else { + applyJsonImport(configuration) + } } else { - applyJsonImport(configuration) + val imported = FoxyProxyParser.parse(text).getOrThrow() + val added = store.importProfiles(imported.proxies) + refresh() + importedProfileCount = added.size + skippedNonHttps = imported.skippedNonHttps + showImportFilterNotice = imported.skippedNonHttps > 0 + if (imported.skippedNonHttps == 0) { + transferMessage = "Imported ${added.size} HTTPS proxy profile(s) from FoxyProxy." + } } } else { - val imported = ProxyListParser.parse(text).getOrThrow() + val isSuperProxy = SuperProxyParser.matches(text) + val imported = if (isSuperProxy) { + SuperProxyParser.parse(text).getOrThrow() + } else { + ProxyListParser.parse(text).getOrThrow() + } val added = store.importProfiles(imported.proxies) refresh() importedProfileCount = added.size skippedNonHttps = imported.skippedNonHttps showImportFilterNotice = imported.skippedNonHttps > 0 if (imported.skippedNonHttps == 0) { - transferMessage = "Imported ${added.size} HTTPS proxy profile(s)." + transferMessage = if (isSuperProxy) { + "Imported ${added.size} HTTPS proxy profile(s) from Super Proxy. Certificate pins were not imported." + } else { + "Imported ${added.size} HTTPS proxy profile(s)." + } } } importError = null diff --git a/app/src/main/java/net/megaproxy487/data/FoxyProxyParser.kt b/app/src/main/java/net/megaproxy487/data/FoxyProxyParser.kt new file mode 100644 index 0000000..76a7799 --- /dev/null +++ b/app/src/main/java/net/megaproxy487/data/FoxyProxyParser.kt @@ -0,0 +1,60 @@ +package net.megaproxy487.data + +import net.megaproxy487.model.ProxyConfig +import org.json.JSONObject + +object FoxyProxyParser { + fun parse(text: String): Result = runCatching { + val root = JSONObject(text) + require(root.optString("schema") != "dev.megaproxy.config") { + "This is a MegaProxy configuration, not a FoxyProxy configuration" + } + val data = root.optJSONArray("data") + ?: error("The FoxyProxy configuration has no data array") + require(data.length() > 0) { "The FoxyProxy proxy list is empty" } + + var skippedNonHttps = 0 + val proxies = buildList { + for (index in 0 until data.length()) { + val item = data.optJSONObject(index) ?: continue + val type = item.optString("type").trim().lowercase() + if (type !in setOf("https", "ssl")) { + skippedNonHttps++ + continue + } + parseProxy(item, index + 1)?.let(::add) + } + } + require(proxies.isNotEmpty()) { + if (skippedNonHttps > 0) "The FoxyProxy configuration contains no HTTPS proxies" + else "The FoxyProxy configuration contains no usable proxies" + } + ProxyListImportResult(proxies, skippedNonHttps) + } + + private fun parseProxy(item: JSONObject, position: Int): ImportedProxy? { + val host = item.optString("hostname").trim().ifEmpty { + item.optString("address").trim() + } + require(host.isNotEmpty() && !host.contains(Regex("[/:\\s]"))) { + "FoxyProxy entry $position has an invalid hostname" + } + val port = when (val value = item.opt("port")) { + is Number -> value.toInt() + is String -> value.toIntOrNull() + else -> null + }?.takeIf { it in 1..65535 } ?: 443 + val countryCode = item.optString("cc").trim().uppercase() + .takeIf { it.matches(Regex("[A-Z]{2}")) }.orEmpty() + return ImportedProxy( + name = item.optString("title").trim(), + countryCode = countryCode, + config = ProxyConfig( + host = host, + port = port, + username = item.optString("username"), + password = item.optString("password"), + ), + ) + } +} diff --git a/app/src/main/java/net/megaproxy487/data/SuperProxyParser.kt b/app/src/main/java/net/megaproxy487/data/SuperProxyParser.kt new file mode 100644 index 0000000..8d1a847 --- /dev/null +++ b/app/src/main/java/net/megaproxy487/data/SuperProxyParser.kt @@ -0,0 +1,15 @@ +package net.megaproxy487.data + +object SuperProxyParser { + const val HEADER = "# superproxy:proxylist:v1" + + fun matches(text: String): Boolean = + text.lineSequence().map(String::trim).firstOrNull(String::isNotEmpty) == HEADER + + fun parse(text: String): Result = runCatching { + require(matches(text)) { "This is not a supported Super Proxy configuration file" } + // Super Proxy's optional `fingerprint` query parameter is a certificate pin. + // MegaProxy intentionally relies on Android's trust store and does not import pins. + ProxyListParser.parse(text).getOrThrow() + } +} diff --git a/app/src/test/java/net/megaproxy487/data/FoxyProxyParserTest.kt b/app/src/test/java/net/megaproxy487/data/FoxyProxyParserTest.kt new file mode 100644 index 0000000..5b9ae80 --- /dev/null +++ b/app/src/test/java/net/megaproxy487/data/FoxyProxyParserTest.kt @@ -0,0 +1,52 @@ +package net.megaproxy487.data + +import org.junit.Assert.assertEquals +import org.junit.Test + +class FoxyProxyParserTest { + @Test + fun `imports only TLS proxy entries from current FoxyProxy JSON`() { + val result = FoxyProxyParser.parse( + """ + { + "mode":"pattern", + "data":[ + { + "active":true, + "title":"Amsterdam", + "type":"https", + "hostname":"proxy.example", + "port":"8443", + "username":"user", + "password":"secret", + "cc":"nl" + }, + { + "title":"Not supported", + "type":"socks5", + "hostname":"socks.example", + "port":"1080" + } + ] + } + """.trimIndent(), + ).getOrThrow() + + assertEquals(1, result.skippedNonHttps) + val proxy = result.proxies.single() + assertEquals("Amsterdam", proxy.name) + assertEquals("NL", proxy.countryCode) + assertEquals("proxy.example", proxy.config.host) + assertEquals(8443, proxy.config.port) + assertEquals("user", proxy.config.username) + assertEquals("secret", proxy.config.password) + } + + @Test + fun `rejects FoxyProxy config without HTTPS proxies`() { + val result = FoxyProxyParser.parse( + """{"data":[{"type":"http","hostname":"proxy.example","port":8080}]}""", + ) + check(result.isFailure) + } +} diff --git a/app/src/test/java/net/megaproxy487/data/SuperProxyParserTest.kt b/app/src/test/java/net/megaproxy487/data/SuperProxyParserTest.kt new file mode 100644 index 0000000..ae7bd59 --- /dev/null +++ b/app/src/test/java/net/megaproxy487/data/SuperProxyParserTest.kt @@ -0,0 +1,27 @@ +package net.megaproxy487.data + +import org.junit.Assert.assertEquals +import org.junit.Assert.assertTrue +import org.junit.Test + +class SuperProxyParserTest { + @Test + fun `imports Super Proxy v1 HTTPS list and ignores certificate pin`() { + val text = """ + # superproxy:proxylist:v1 + https://user:p%40ss@proxy.example?fingerprint=sha256%2Fignored + """.trimIndent() + + assertTrue(SuperProxyParser.matches(text)) + val proxy = SuperProxyParser.parse(text).getOrThrow().proxies.single() + assertEquals("proxy.example", proxy.config.host) + assertEquals(443, proxy.config.port) + assertEquals("user", proxy.config.username) + assertEquals("p@ss", proxy.config.password) + } + + @Test + fun `rejects a generic proxy list as Super Proxy config`() { + check(SuperProxyParser.parse("https://user:pass@proxy.example").isFailure) + } +} From 5b753f7c7b8773f3c7796eecfb33c0ffca59566d Mon Sep 17 00:00:00 2001 From: Andrey Prokopyuk Date: Tue, 1 Sep 2026 12:49:50 +0300 Subject: [PATCH 15/41] Add visibility analysis --- app/src/main/AndroidManifest.xml | 1 + .../net/megaproxy487/SettingsActivities.kt | 1 + .../net/megaproxy487/VisibilityActivity.kt | 219 ++++++++++++++++++ 3 files changed, 221 insertions(+) create mode 100644 app/src/main/java/net/megaproxy487/VisibilityActivity.kt diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 71b8696..bd1489f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -26,6 +26,7 @@ + diff --git a/app/src/main/java/net/megaproxy487/SettingsActivities.kt b/app/src/main/java/net/megaproxy487/SettingsActivities.kt index 5b3bb94..12debb1 100644 --- a/app/src/main/java/net/megaproxy487/SettingsActivities.kt +++ b/app/src/main/java/net/megaproxy487/SettingsActivities.kt @@ -98,6 +98,7 @@ private fun SettingsHomeScreen(activity: Activity) { SettingsButton("Always-on VPN") { activity.startActivity(Intent(activity, AlwaysOnSettingsActivity::class.java)) } SettingsButton("TLS fingerprint") { activity.startActivity(Intent(activity, TlsFingerprintActivity::class.java)) } SettingsButton("Split tunneling") { activity.startActivity(Intent(activity, SplitTunnelActivity::class.java)) } + SettingsButton("Visibility") { activity.startActivity(Intent(activity, VisibilityActivity::class.java)) } if (!batteryOptimizationDisabled) { SettingsButton("Battery settings") { activity.startActivity(Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS).apply { diff --git a/app/src/main/java/net/megaproxy487/VisibilityActivity.kt b/app/src/main/java/net/megaproxy487/VisibilityActivity.kt new file mode 100644 index 0000000..1e2e567 --- /dev/null +++ b/app/src/main/java/net/megaproxy487/VisibilityActivity.kt @@ -0,0 +1,219 @@ +package net.megaproxy487 + +import android.app.Activity +import android.content.Context +import android.net.ConnectivityManager +import android.net.NetworkCapabilities +import android.os.Build +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.WindowInsets +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.safeDrawing +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.verticalScroll +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.filled.ArrowBack +import androidx.compose.material3.Button +import androidx.compose.material3.Card +import androidx.compose.material3.CardDefaults +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.material3.TopAppBar +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.unit.dp +import net.megaproxy487.data.ConfigStore +import java.net.NetworkInterface + +class VisibilityActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { MaterialTheme { VisibilityScreen(this) } } + } +} + +private enum class VisibilityState(val label: String) { + DETECTED("Detected"), + SELECTED_APPS_ONLY("Selected apps only"), + NOT_DETECTED("Not detected"), +} + +private data class VisibilityCheck( + val title: String, + val state: VisibilityState, + val detail: String, +) + +private data class VisibilityReport( + val global: List, + val selectedApps: List, + val splitTunneling: Boolean, +) + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +private fun VisibilityScreen(activity: Activity) { + var report by remember { mutableStateOf(buildVisibilityReport(activity)) } + Scaffold( + topBar = { + TopAppBar( + title = { Text("Visibility") }, + navigationIcon = { + IconButton(onClick = activity::finish) { + Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Back") + } + }, + ) + }, + contentWindowInsets = WindowInsets.safeDrawing, + ) { padding -> + Column( + Modifier.fillMaxSize().padding(padding).padding(16.dp).verticalScroll(rememberScrollState()), + verticalArrangement = Arrangement.spacedBy(12.dp), + ) { + Text( + "Local checks show signals that another Android app may observe. No network request, location lookup, or external reputation service is used.", + style = MaterialTheme.typography.bodyMedium, + ) + Button(onClick = { report = buildVisibilityReport(activity) }, modifier = Modifier.fillMaxWidth()) { + Text("Run checks again") + } + VisibilitySection("Globally observable signals", report.global) + if (report.splitTunneling) { + Text( + "The signals below belong to the VPN network. With split tunneling, Android exposes that network to selected apps; excluded apps use the underlying network instead.", + style = MaterialTheme.typography.bodySmall, + ) + } + VisibilitySection( + if (report.splitTunneling) "Visible to selected apps" else "VPN network signals", + report.selectedApps, + ) + Text( + "A detected signal is not proof by itself. Android VPN APIs intentionally expose some VPN state, and legitimate security or filtering apps can produce the same signals.", + style = MaterialTheme.typography.bodySmall, + modifier = Modifier.padding(bottom = 16.dp), + ) + } + } +} + +@Composable +private fun VisibilitySection(title: String, checks: List) { + Text(title, style = MaterialTheme.typography.titleMedium) + checks.forEach { check -> + Card(Modifier.fillMaxWidth(), colors = CardDefaults.cardColors(containerColor = MaterialTheme.colorScheme.surfaceVariant)) { + Column(Modifier.padding(12.dp), verticalArrangement = Arrangement.spacedBy(6.dp)) { + Row(Modifier.fillMaxWidth(), verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.SpaceBetween) { + Text(check.title, style = MaterialTheme.typography.titleSmall, modifier = Modifier.weight(1f)) + VisibilityBadge(check.state) + } + Text(check.detail, style = MaterialTheme.typography.bodySmall) + } + } + } +} + +@Composable +private fun VisibilityBadge(state: VisibilityState) { + val background = when (state) { + VisibilityState.DETECTED -> Color(0xFFB3261E) + VisibilityState.SELECTED_APPS_ONLY -> Color(0xFFF9A825) + VisibilityState.NOT_DETECTED -> Color(0xFF2E7D32) + } + val foreground = if (state == VisibilityState.SELECTED_APPS_ONLY) Color.Black else Color.White + Surface(color = background, contentColor = foreground, shape = RoundedCornerShape(12.dp)) { + Text(state.label, style = MaterialTheme.typography.labelSmall, modifier = Modifier.padding(horizontal = 8.dp, vertical = 4.dp)) + } +} + +private fun buildVisibilityReport(context: Context): VisibilityReport { + val connectivity = context.getSystemService(ConnectivityManager::class.java) + val networks = runCatching { connectivity.allNetworks.toList() }.getOrDefault(emptyList()) + val capabilities = networks.mapNotNull { network -> + runCatching { connectivity.getNetworkCapabilities(network) }.getOrNull() + } + val vpnCapabilities = capabilities.filter { it.hasTransport(NetworkCapabilities.TRANSPORT_VPN) } + val vpnTransportVisible = vpnCapabilities.isNotEmpty() + val vpnInfoVisible = Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q && vpnCapabilities.any { + runCatching { it.transportInfo?.javaClass?.simpleName == "VpnTransportInfo" }.getOrDefault(false) + } + val vpnWithoutNotVpn = vpnCapabilities.any { !it.hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_VPN) } + + val linkProperties = networks.mapNotNull { network -> + runCatching { connectivity.getLinkProperties(network) }.getOrNull() + } + val linkProxyVisible = linkProperties.any { it.httpProxy != null } + val systemProxyVisible = listOf("http.proxyHost", "https.proxyHost", "socksProxyHost").any { + System.getProperty(it).orEmpty().isNotBlank() + } + + val interfaces = runCatching { + NetworkInterface.getNetworkInterfaces()?.toList().orEmpty().filter { it.isUp } + }.getOrDefault(emptyList()) + val vpnName = Regex("^(tun|tap|wg|ppp|ipsec)", RegexOption.IGNORE_CASE) + val vpnInterfaces = interfaces.filter { vpnName.containsMatchIn(it.name) } + val unusualMtu = vpnInterfaces.filter { it.mtu !in setOf(1280, 1500) } + val virtualDefaultRoute = linkProperties.any { properties -> + properties.routes.any { it.isDefaultRoute && vpnName.containsMatchIn(it.`interface`.orEmpty()) } + } + val virtualDns = linkProperties.any { properties -> + properties.dnsServers.any { address -> + address.isSiteLocalAddress || address.isLinkLocalAddress || address.isLoopbackAddress + } + } + val settings = ConfigStore(context).globalConnectionSettings() + val splitTunneling = !settings.routeAllApps + + fun check(title: String, detected: Boolean, yes: String, no: String) = VisibilityCheck( + title, + if (detected) VisibilityState.DETECTED else VisibilityState.NOT_DETECTED, + if (detected) yes else no, + ) + fun vpnCheck(title: String, detected: Boolean, yes: String, no: String) = VisibilityCheck( + title, + when { + !detected -> VisibilityState.NOT_DETECTED + splitTunneling -> VisibilityState.SELECTED_APPS_ONLY + else -> VisibilityState.DETECTED + }, + if (detected && splitTunneling) "$yes Excluded apps use their underlying network." else if (detected) yes else no, + ) + + return VisibilityReport( + global = listOf( + check("System proxy properties", systemProxyVisible, "A process-wide proxy property is visible.", "No process-wide proxy property is visible."), + check("VPN-like interface name", vpnInterfaces.isNotEmpty(), "An active interface has a tun, tap, wg, ppp, or ipsec-style name.", "No active interface has a common VPN-style name."), + check("Unusual VPN MTU", unusualMtu.isNotEmpty(), "A VPN-style interface uses an MTU other than 1280 or 1500.", "No unusual MTU was found on VPN-style interfaces."), + VisibilityCheck("Local MITM certificate", VisibilityState.NOT_DETECTED, "MegaProxy installs no CA certificate and performs no TLS interception."), + ), + selectedApps = listOf( + vpnCheck("VPN transport", vpnTransportVisible, "Android exposes a network with TRANSPORT_VPN.", "No VPN transport is currently exposed."), + vpnCheck("VPN transport information", vpnInfoVisible, "Android exposes VpnTransportInfo for the VPN network.", "VpnTransportInfo is not exposed on the currently visible networks."), + vpnCheck("NOT_VPN capability", vpnWithoutNotVpn, "The VPN network does not have NET_CAPABILITY_NOT_VPN.", "No visible network is identified by this capability check as a VPN."), + vpnCheck("VPN link proxy", linkProxyVisible, "A proxy setting is attached to the VPN network.", "No proxy setting is attached to the VPN network."), + vpnCheck("Virtual default route", virtualDefaultRoute, "A visible default route uses a VPN-style interface.", "No visible default route uses a VPN-style interface."), + vpnCheck("Virtual DNS address", virtualDns, "The VPN network exposes a private, link-local, or loopback DNS address.", "The VPN network does not expose a local DNS address."), + ), + splitTunneling = splitTunneling, + ) +} From 5255c965c97d9e4889a913d887718a893256c9d7 Mon Sep 17 00:00:00 2001 From: Andrey Prokopyuk Date: Tue, 1 Sep 2026 13:39:09 +0300 Subject: [PATCH 16/41] Add SSH support --- app/src/main/AndroidManifest.xml | 1 + .../megaproxy487/ConnectionTestActivity.kt | 41 ++++ .../java/net/megaproxy487/FeedbackEmail.kt | 3 +- .../java/net/megaproxy487/MainActivity.kt | 32 ++- .../net/megaproxy487/ProfileEditorActivity.kt | 77 ++++++- .../net/megaproxy487/ProxySettingsActivity.kt | 41 +++- .../net/megaproxy487/SettingsActivities.kt | 43 +++- .../net/megaproxy487/SshHostKeyActivity.kt | 52 +++++ .../java/net/megaproxy487/data/ConfigStore.kt | 61 ++++- .../net/megaproxy487/data/ConfigTransfer.kt | 52 ++++- .../net/megaproxy487/model/ProxyConfig.kt | 43 +++- .../java/net/megaproxy487/vpn/ProxyCore.kt | 30 ++- .../net/megaproxy487/vpn/ProxyVpnService.kt | 77 ++++++- .../megaproxy487/vpn/SshHostKeyPromptState.kt | 24 ++ native/README.md | 6 +- native/mobile/config.go | 51 ++++- native/mobile/dialer.go | 2 +- native/mobile/doh.go | 18 +- native/mobile/mobile.go | 38 +++- native/mobile/ssh_dialer.go | 210 ++++++++++++++++++ native/mobile/ssh_dialer_test.go | 50 +++++ native/mobile/test_connection.go | 21 +- 22 files changed, 897 insertions(+), 76 deletions(-) create mode 100644 app/src/main/java/net/megaproxy487/SshHostKeyActivity.kt create mode 100644 app/src/main/java/net/megaproxy487/vpn/SshHostKeyPromptState.kt create mode 100644 native/mobile/ssh_dialer.go create mode 100644 native/mobile/ssh_dialer_test.go diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index bd1489f..5b3f079 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -30,6 +30,7 @@ + + AlertDialog( + onDismissRequest = { + SshHostKeyPromptState.clear() + ProxyVpnService.dismissHostKeyPrompt(activity) + }, + title = { Text(if (pending.changed) "SSH host key changed" else "Trust SSH host key?") }, + text = { Text(buildString { + if (pending.changed) { + append("Warning: the previously trusted key for the ${pending.hop} host has changed. This may indicate a server reinstall or a man-in-the-middle attack. Verify it through a trusted channel before replacing it.\n\n") + } else { + append("This is the first connection to the ${pending.hop} SSH host. Verify its fingerprint through a trusted channel.\n\n") + } + append("Algorithm: ${pending.algorithm}\nFingerprint: ${pending.fingerprint}") + }) }, + confirmButton = { + TextButton(onClick = { + val saved = ConfigStore(activity).trustSshHostKey( + pending.profileId, pending.hop, pending.fingerprint, + ) + SshHostKeyPromptState.clear() + val persisted = ConfigStore(activity).profile(pending.profileId)?.config?.let { config -> + if (pending.hop == "jump") config.jumpTrustedHostKey else config.trustedHostKey + } + if (saved && persisted == pending.fingerprint) { + ProxyVpnService.test(activity) + } else { + TestDiagnosticLog.fail("The SSH host key could not be saved to the tested profile") + } + }) { Text(if (pending.changed) "Replace and test" else "Trust and test") } + }, + dismissButton = { + TextButton(onClick = { + SshHostKeyPromptState.clear() + ProxyVpnService.dismissHostKeyPrompt(activity) + }) { Text("Cancel") } + }, + ) + } } diff --git a/app/src/main/java/net/megaproxy487/FeedbackEmail.kt b/app/src/main/java/net/megaproxy487/FeedbackEmail.kt index 7754240..f947e0b 100644 --- a/app/src/main/java/net/megaproxy487/FeedbackEmail.kt +++ b/app/src/main/java/net/megaproxy487/FeedbackEmail.kt @@ -45,7 +45,8 @@ object FeedbackEmail { appendLine("Connection: ${connection.name.lowercase()}") appendLine("Always-on: $alwaysOn; lockdown: $lockdown") appendLine("Routing: ${if (config.routeAllApps) "global" else "split"}; selected app count: ${config.selectedPackages.size}") - appendLine("TLS fingerprint: ${config.profile.name}") + appendLine("HTTPS fingerprint: ${config.profile.name}") + appendLine("SSH fingerprint: ${config.sshProfile.name}") appendLine("DoH provider: ${config.dnsProvider.name}") appendLine("IPv6: ${config.allowIpv6}; bypass local networks: ${config.bypassLocalNetworks}") appendLine("Proxy certificate verification: ${!config.allowInvalidProxyCertificate}") diff --git a/app/src/main/java/net/megaproxy487/MainActivity.kt b/app/src/main/java/net/megaproxy487/MainActivity.kt index ddc65ad..49b3813 100644 --- a/app/src/main/java/net/megaproxy487/MainActivity.kt +++ b/app/src/main/java/net/megaproxy487/MainActivity.kt @@ -79,6 +79,7 @@ import net.megaproxy487.vpn.hasOtherProvider import net.megaproxy487.vpn.openAndroidVpnSettings import net.megaproxy487.vpn.OTHER_ALWAYS_ON_VPN_MESSAGE import net.megaproxy487.model.ProfileColors +import net.megaproxy487.model.ProxyType class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { @@ -97,6 +98,26 @@ class MainActivity : ComponentActivity() { } } +@Composable +private fun ProfileTypeBadge(type: ProxyType, foreground: Color) { + Surface( + color = foreground.copy(alpha = 0.14f), + contentColor = foreground, + shape = RoundedCornerShape(50), + border = BorderStroke(1.dp, foreground.copy(alpha = 0.5f)), + ) { + Text( + when (type) { + ProxyType.HTTPS -> "HTTPS" + ProxyType.SSH -> "SSH" + ProxyType.SSH_JUMP -> "SSH + Jump" + }, + style = MaterialTheme.typography.labelSmall, + modifier = Modifier.padding(horizontal = 8.dp, vertical = 3.dp), + ) + } +} + @OptIn(ExperimentalMaterial3Api::class) @Composable private fun MainScreen(activity: Activity) { @@ -280,6 +301,7 @@ private fun MainScreen(activity: Activity) { Column(Modifier.fillMaxWidth().padding(14.dp)) { Text("Profile", style = MaterialTheme.typography.labelMedium) Row( + modifier = Modifier.fillMaxWidth(), verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.spacedBy(8.dp), ) { @@ -293,12 +315,18 @@ private fun MainScreen(activity: Activity) { Text(activeProfile.flagEmoji, modifier = Modifier.padding(horizontal = 5.dp, vertical = 2.dp)) } } - Text(activeProfile.displayName, style = MaterialTheme.typography.titleMedium) + Text(activeProfile.displayName, style = MaterialTheme.typography.titleMedium, modifier = Modifier.weight(1f)) + ProfileTypeBadge(activeProfile.config.type, onProfileColor) } DropdownMenu(profileMenuExpanded, { profileMenuExpanded = false }) { profiles.forEach { profile -> DropdownMenuItem( - text = { Text(profile.displayNameWithFlag) }, + text = { + Row(Modifier.fillMaxWidth(), verticalAlignment = Alignment.CenterVertically) { + Text(profile.displayNameWithFlag, modifier = Modifier.weight(1f)) + ProfileTypeBadge(profile.config.type, MaterialTheme.colorScheme.onSurface) + } + }, onClick = { if (!isAlwaysOnVpnActive(activity)) { store.setActiveProfile(profile.id) diff --git a/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt b/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt index 2bec977..48f02ed 100644 --- a/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt +++ b/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt @@ -39,12 +39,14 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.input.PasswordVisualTransformation import androidx.compose.ui.unit.dp import net.megaproxy487.data.ConfigStore import net.megaproxy487.model.DnsProvider import net.megaproxy487.model.ProfileColorMatcher import net.megaproxy487.model.ProxyConfig +import net.megaproxy487.model.ProxyType import java.util.Locale class ProfileEditorActivity : ComponentActivity() { @@ -70,6 +72,8 @@ private fun ProfileEditorScreen(activity: Activity) { var countryExpanded by remember { mutableStateOf(false) } var dnsExpanded by remember { mutableStateOf(false) } var showInvalidCertificateWarning by remember { mutableStateOf(false) } + var typeExpanded by remember { mutableStateOf(false) } + var unsafeHostKeyHop by remember { mutableStateOf(null) } val countries = remember { Locale.getISOCountries().map { code -> code to Locale.Builder().setRegion(code).build().getDisplayCountry(Locale.getDefault()) @@ -134,17 +138,27 @@ private fun ProfileEditorScreen(activity: Activity) { } } - Text("HTTPS proxy", style = MaterialTheme.typography.titleMedium) - OutlinedTextField(config.host, { updateConfig(config.copy(host = it)) }, label = { Text("HTTPS proxy hostname") }, singleLine = true, modifier = Modifier.fillMaxWidth()) + Text("Connection", style = MaterialTheme.typography.titleMedium) + ExposedDropdownMenuBox(typeExpanded, { typeExpanded = it }) { + OutlinedTextField(config.type.title, {}, readOnly = true, label = { Text("Profile type") }, trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(typeExpanded) }, modifier = Modifier.menuAnchor().fillMaxWidth()) + DropdownMenu(typeExpanded, { typeExpanded = false }) { + ProxyType.entries.forEach { type -> DropdownMenuItem(text = { Text(type.title) }, onClick = { + updateConfig(config.copy(type = type, port = type.defaultPort)) + portText = type.defaultPort.toString() + typeExpanded = false + }) } + } + } + OutlinedTextField(config.host, { updateConfig(config.copy(host = it)) }, label = { Text(if (config.type == ProxyType.HTTPS) "HTTPS proxy hostname" else "Destination SSH hostname") }, singleLine = true, modifier = Modifier.fillMaxWidth()) OutlinedTextField(portText, { value -> portText = value val port = value.toIntOrNull() if (port == null) error = "Port must be between 1 and 65535" else updateConfig(config.copy(port = port)) }, label = { Text("Port") }, singleLine = true, modifier = Modifier.fillMaxWidth()) - OutlinedTextField(config.username, { updateConfig(config.copy(username = it)) }, label = { Text("Basic Auth username") }, singleLine = true, modifier = Modifier.fillMaxWidth()) - OutlinedTextField(config.password, { updateConfig(config.copy(password = it)) }, label = { Text("Password") }, singleLine = true, visualTransformation = PasswordVisualTransformation(), modifier = Modifier.fillMaxWidth()) - Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) { + OutlinedTextField(config.username, { updateConfig(config.copy(username = it)) }, label = { Text(if (config.type == ProxyType.HTTPS) "Basic Auth username" else "SSH username") }, singleLine = true, modifier = Modifier.fillMaxWidth()) + OutlinedTextField(config.password, { updateConfig(config.copy(password = it)) }, label = { Text(if (config.type == ProxyType.HTTPS) "Password" else "SSH password (optional)") }, singleLine = true, visualTransformation = PasswordVisualTransformation(), modifier = Modifier.fillMaxWidth()) + if (config.type == ProxyType.HTTPS) Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) { Column(Modifier.weight(1f)) { Text("Allow self-signed proxy certificate") Text("Disables certificate verification only for the HTTPS proxy.", style = MaterialTheme.typography.bodySmall) @@ -155,6 +169,50 @@ private fun ProfileEditorScreen(activity: Activity) { }) } + if (config.type != ProxyType.HTTPS) { + OutlinedTextField(config.privateKey, { updateConfig(config.copy(privateKey = it)) }, label = { Text("Private key (optional)") }, supportingText = { Text("PEM or OpenSSH format. Passphrase-protected keys are not supported.") }, minLines = 3, modifier = Modifier.fillMaxWidth()) + if (config.password.isBlank() && config.privateKey.isBlank()) { + Text( + "No SSH password or private key is configured. Connection will only work if the server permits authentication without credentials.", + color = Color(0xFFB26A00), + style = MaterialTheme.typography.bodySmall, + ) + } + Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) { + Column(Modifier.weight(1f)) { Text("Accept any destination host key"); Text("Unsafe: disables SSH server identity verification.", style = MaterialTheme.typography.bodySmall) } + Checkbox(config.acceptAnyHostKey, { checked -> if (checked) unsafeHostKeyHop = "destination" else updateConfig(config.copy(acceptAnyHostKey = false)) }) + } + if (config.trustedHostKey.isNotBlank()) Text("Trusted destination key: ${config.trustedHostKey}", style = MaterialTheme.typography.bodySmall) + } + + if (config.type == ProxyType.SSH_JUMP) { + HorizontalDivider() + Text("Jump host", style = MaterialTheme.typography.titleMedium) + OutlinedTextField(config.jumpHost, { updateConfig(config.copy(jumpHost = it)) }, label = { Text("Jump SSH hostname") }, singleLine = true, modifier = Modifier.fillMaxWidth()) + OutlinedTextField(config.jumpPort.toString(), { value -> value.toIntOrNull()?.let { updateConfig(config.copy(jumpPort = it)) } }, label = { Text("Jump port") }, singleLine = true, modifier = Modifier.fillMaxWidth()) + Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) { + Column(Modifier.weight(1f)) { Text("Use the same authentication"); Text("Reuse destination username, password and private key.", style = MaterialTheme.typography.bodySmall) } + Checkbox(config.sameJumpAuthentication, { updateConfig(config.copy(sameJumpAuthentication = it)) }) + } + if (!config.sameJumpAuthentication) { + OutlinedTextField(config.jumpUsername, { updateConfig(config.copy(jumpUsername = it)) }, label = { Text("Jump SSH username") }, singleLine = true, modifier = Modifier.fillMaxWidth()) + OutlinedTextField(config.jumpPassword, { updateConfig(config.copy(jumpPassword = it)) }, label = { Text("Jump SSH password (optional)") }, singleLine = true, visualTransformation = PasswordVisualTransformation(), modifier = Modifier.fillMaxWidth()) + OutlinedTextField(config.jumpPrivateKey, { updateConfig(config.copy(jumpPrivateKey = it)) }, label = { Text("Jump private key (optional)") }, minLines = 3, modifier = Modifier.fillMaxWidth()) + if (config.jumpPassword.isBlank() && config.jumpPrivateKey.isBlank()) { + Text( + "No jump password or private key is configured. Connection will only work if the jump server permits authentication without credentials.", + color = Color(0xFFB26A00), + style = MaterialTheme.typography.bodySmall, + ) + } + } + Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) { + Column(Modifier.weight(1f)) { Text("Accept any jump host key"); Text("Unsafe: disables jump host identity verification.", style = MaterialTheme.typography.bodySmall) } + Checkbox(config.jumpAcceptAnyHostKey, { checked -> if (checked) unsafeHostKeyHop = "jump" else updateConfig(config.copy(jumpAcceptAnyHostKey = false)) }) + } + if (config.jumpTrustedHostKey.isNotBlank()) Text("Trusted jump key: ${config.jumpTrustedHostKey}", style = MaterialTheme.typography.bodySmall) + } + Text("DNS over HTTPS", style = MaterialTheme.typography.titleMedium) ExposedDropdownMenuBox(dnsExpanded, { dnsExpanded = it }) { OutlinedTextField(config.dnsProvider.title, {}, readOnly = true, label = { Text("DNS over HTTPS") }, trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(dnsExpanded) }, modifier = Modifier.menuAnchor().fillMaxWidth()) @@ -180,4 +238,13 @@ private fun ProfileEditorScreen(activity: Activity) { dismissButton = { TextButton(onClick = { showInvalidCertificateWarning = false }) { Text("Cancel") } }, ) } + unsafeHostKeyHop?.let { hop -> + AlertDialog( + onDismissRequest = { unsafeHostKeyHop = null }, + title = { Text("Accept any SSH host key?") }, + text = { Text("This disables identity verification for the $hop SSH host and permits man-in-the-middle attacks. Credentials and tunneled traffic could be intercepted.") }, + confirmButton = { TextButton(onClick = { updateConfig(if (hop == "jump") config.copy(jumpAcceptAnyHostKey = true) else config.copy(acceptAnyHostKey = true)); unsafeHostKeyHop = null }) { Text("Accept any key") } }, + dismissButton = { TextButton(onClick = { unsafeHostKeyHop = null }) { Text("Cancel") } }, + ) + } } diff --git a/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt b/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt index a9a5f72..886bf52 100644 --- a/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt +++ b/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt @@ -76,6 +76,7 @@ import net.megaproxy487.data.ProxyListParser import net.megaproxy487.data.SuperProxyParser import net.megaproxy487.model.ProfileColors import net.megaproxy487.model.ProxyProfile +import net.megaproxy487.model.ProxyType import net.megaproxy487.vpn.PersistentDiagnosticLog import net.megaproxy487.vpn.ProxyVpnService @@ -100,6 +101,7 @@ private fun SettingsScreen(activity: Activity) { var showPasswordExportWarning by remember { mutableStateOf(false) } var exportFormat by remember { mutableStateOf(ConfigExportFormat.JSON) } var includePasswords by remember { mutableStateOf(false) } + var includePrivateKeys by remember { mutableStateOf(false) } var pendingExportContent by remember { mutableStateOf("") } var transferMessage by remember { mutableStateOf(null) } var pendingUnsafeImport by remember { mutableStateOf(null) } @@ -151,7 +153,7 @@ private fun SettingsScreen(activity: Activity) { fun launchExport() { pendingExportContent = when (exportFormat) { ConfigExportFormat.PROXY_LIST -> ConfigTransfer.exportProxyList(store.profiles(), includePasswords) - ConfigExportFormat.JSON -> ConfigTransfer.exportJson(store, includePasswords) + ConfigExportFormat.JSON -> ConfigTransfer.exportJson(store, includePasswords, includePrivateKeys) } if (exportFormat == ConfigExportFormat.PROXY_LIST) exportTxtDocument.launch("ProxyList.txt") else exportJsonDocument.launch("MegaProxy-config.json") @@ -170,7 +172,7 @@ private fun SettingsScreen(activity: Activity) { }.getOrDefault(false) if (isMegaProxy) { val configuration = ConfigTransfer.importJson(text) - if (configuration.profiles.any { it.config.allowInvalidProxyCertificate }) { + if (configuration.profiles.any { it.config.allowInvalidProxyCertificate || it.config.acceptAnyHostKey || it.config.jumpAcceptAnyHostKey }) { pendingUnsafeImport = configuration } else { applyJsonImport(configuration) @@ -338,11 +340,16 @@ private fun SettingsScreen(activity: Activity) { if (!includePasswords) { Text("Passwords will be left empty and must be entered after import.", style = MaterialTheme.typography.bodySmall) } + if (exportFormat == ConfigExportFormat.JSON) Row(verticalAlignment = Alignment.CenterVertically) { + Checkbox(includePrivateKeys, { includePrivateKeys = it }) + Text("Include SSH private keys") + } + if (includePrivateKeys) Text("Private keys will be exported in plain text.", color = MaterialTheme.colorScheme.error, style = MaterialTheme.typography.bodySmall) } }, confirmButton = { TextButton(onClick = { showExportDialog = false - if (includePasswords) showPasswordExportWarning = true else launchExport() + if (includePasswords || includePrivateKeys) showPasswordExportWarning = true else launchExport() }) { Text("Export") } }, dismissButton = { TextButton(onClick = { showExportDialog = false }) { Text("Cancel") } }, ) @@ -350,8 +357,8 @@ private fun SettingsScreen(activity: Activity) { if (showPasswordExportWarning) { AlertDialog( onDismissRequest = { showPasswordExportWarning = false }, - title = { Text("Export passwords in plain text?") }, - text = { Text("Anyone with access to the exported file will be able to read the proxy credentials. Store and transfer it securely.") }, + title = { Text("Export secrets in plain text?") }, + text = { Text("Anyone with access to the exported file will be able to read the selected passwords or SSH private keys. Store and transfer it securely.") }, confirmButton = { TextButton(onClick = { showPasswordExportWarning = false launchExport() @@ -370,8 +377,8 @@ private fun SettingsScreen(activity: Activity) { pendingUnsafeImport?.let { configuration -> AlertDialog( onDismissRequest = { pendingUnsafeImport = null }, - title = { Text("Import insecure certificate settings?") }, - text = { Text("One or more profiles accept an invalid or self-signed proxy certificate. This permits server impersonation and should only be used for proxies you control.") }, + title = { Text("Import insecure verification settings?") }, + text = { Text("One or more profiles disable HTTPS certificate or SSH host-key verification. This permits server impersonation and should only be used for servers you control.") }, confirmButton = { TextButton(onClick = { pendingUnsafeImport = null applyJsonImport(configuration) @@ -396,7 +403,7 @@ private fun ProfileCard( modifier = modifier.fillMaxWidth().clickable(onClick = onConfigure), ) { Column(Modifier.fillMaxWidth().padding(14.dp), verticalArrangement = Arrangement.spacedBy(8.dp)) { - Row(verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.spacedBy(8.dp)) { + Row(Modifier.fillMaxWidth(), verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.spacedBy(8.dp)) { if (profile.flagEmoji.isNotEmpty()) { Surface( color = Color.White, contentColor = Color.Black, @@ -404,10 +411,26 @@ private fun ProfileCard( border = BorderStroke(1.dp, Color.Black.copy(alpha = 0.45f)), ) { Text(profile.flagEmoji, modifier = Modifier.padding(horizontal = 5.dp, vertical = 2.dp)) } } - Column { + Column(Modifier.weight(1f)) { Text(profile.displayName, style = MaterialTheme.typography.titleMedium) Text("${profile.config.host}:${profile.config.port}", style = MaterialTheme.typography.bodySmall) } + Surface( + color = foreground.copy(alpha = 0.16f), + contentColor = foreground, + shape = RoundedCornerShape(50), + border = BorderStroke(1.dp, foreground.copy(alpha = 0.55f)), + ) { + Text( + when (profile.config.type) { + ProxyType.HTTPS -> "HTTPS" + ProxyType.SSH -> "SSH" + ProxyType.SSH_JUMP -> "SSH + Jump" + }, + style = MaterialTheme.typography.labelMedium, + modifier = Modifier.padding(horizontal = 9.dp, vertical = 4.dp), + ) + } } Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.End) { TextButton(onClick = onConfigure) { Text("Configure", color = foreground) } diff --git a/app/src/main/java/net/megaproxy487/SettingsActivities.kt b/app/src/main/java/net/megaproxy487/SettingsActivities.kt index 12debb1..76ce15b 100644 --- a/app/src/main/java/net/megaproxy487/SettingsActivities.kt +++ b/app/src/main/java/net/megaproxy487/SettingsActivities.kt @@ -49,6 +49,7 @@ import androidx.lifecycle.compose.LocalLifecycleOwner import net.megaproxy487.data.ConfigStore import net.megaproxy487.model.Ja3Spec import net.megaproxy487.model.TlsProfile +import net.megaproxy487.model.SshProfile import net.megaproxy487.vpn.ProxyVpnService import net.megaproxy487.vpn.readAlwaysOnVpnStatus @@ -96,7 +97,7 @@ private fun SettingsHomeScreen(activity: Activity) { SettingsScaffold(activity, "Settings") { SettingsButton("Profiles") { activity.startActivity(Intent(activity, ProfilesActivity::class.java)) } SettingsButton("Always-on VPN") { activity.startActivity(Intent(activity, AlwaysOnSettingsActivity::class.java)) } - SettingsButton("TLS fingerprint") { activity.startActivity(Intent(activity, TlsFingerprintActivity::class.java)) } + SettingsButton("Fingerprints") { activity.startActivity(Intent(activity, TlsFingerprintActivity::class.java)) } SettingsButton("Split tunneling") { activity.startActivity(Intent(activity, SplitTunnelActivity::class.java)) } SettingsButton("Visibility") { activity.startActivity(Intent(activity, VisibilityActivity::class.java)) } if (!batteryOptimizationDisabled) { @@ -167,13 +168,18 @@ private fun TlsFingerprintScreen(activity: Activity) { val store = remember { ConfigStore(activity) } var settings by remember { mutableStateOf(store.globalConnectionSettings()) } var expanded by remember { mutableStateOf(false) } + var sshExpanded by remember { mutableStateOf(false) } var error by remember { mutableStateOf(null) } var showReconnectPrompt by remember { mutableStateOf(false) } var showAlwaysOnNotice by remember { mutableStateOf(false) } var deferred by remember { mutableStateOf(false) } - fun save(profile: TlsProfile = settings.tlsProfile, customJa3: String = settings.customJa3) { - settings = settings.copy(tlsProfile = profile, customJa3 = customJa3) + fun save( + profile: TlsProfile = settings.tlsProfile, + customJa3: String = settings.customJa3, + sshProfile: SshProfile = settings.sshProfile, + ) { + settings = settings.copy(tlsProfile = profile, customJa3 = customJa3, sshProfile = sshProfile) store.saveGlobalConnectionSettings(settings) error = if (profile == TlsProfile.CUSTOM && Ja3Spec.parse(customJa3) == null) { "JA3 must contain five fields: version,ciphers,extensions,groups,points" @@ -186,11 +192,12 @@ private fun TlsFingerprintScreen(activity: Activity) { } } - SettingsScaffold(activity, "TLS fingerprint") { + SettingsScaffold(activity, "Fingerprints") { + Text("HTTPS fingerprint", style = MaterialTheme.typography.titleMedium) ExposedDropdownMenuBox(expanded, { expanded = it }) { OutlinedTextField( settings.tlsProfile.title, {}, readOnly = true, - label = { Text("TLS / JA3 profile") }, + label = { Text("HTTPS TLS / JA3 profile") }, trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(expanded) }, modifier = Modifier.menuAnchor().fillMaxWidth(), ) @@ -211,13 +218,31 @@ private fun TlsFingerprintScreen(activity: Activity) { ) } error?.let { Text(it, color = MaterialTheme.colorScheme.error) } + Text("SSH fingerprint", style = MaterialTheme.typography.titleMedium) + ExposedDropdownMenuBox(sshExpanded, { sshExpanded = it }) { + OutlinedTextField( + settings.sshProfile.title, {}, readOnly = true, + label = { Text("SSH client profile") }, + trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(sshExpanded) }, + modifier = Modifier.menuAnchor().fillMaxWidth(), + ) + DropdownMenu(sshExpanded, { sshExpanded = false }) { + SshProfile.entries.forEach { profile -> + DropdownMenuItem(text = { Text(profile.title) }, onClick = { + save(sshProfile = profile) + sshExpanded = false + }) + } + } + } + Text("The SSH profile controls the client banner and preferred KEX, cipher and MAC ordering.", style = MaterialTheme.typography.bodySmall) Text("Changes are saved automatically and apply to every profile.", style = MaterialTheme.typography.bodySmall) } if (showReconnectPrompt) { AlertDialog( onDismissRequest = { showReconnectPrompt = false; deferred = true }, - title = { Text("Apply TLS fingerprint change?") }, - text = { Text("Reconnect now to apply the new TLS fingerprint, or apply it the next time the VPN connects.") }, + title = { Text("Apply fingerprint change?") }, + text = { Text("Reconnect now to apply the new HTTPS or SSH fingerprint, or apply it the next time the VPN connects.") }, confirmButton = { TextButton(onClick = { showReconnectPrompt = false; ProxyVpnService.reconnect(activity) }) { Text("Reconnect now") } }, dismissButton = { TextButton(onClick = { showReconnectPrompt = false; deferred = true }) { Text("Next connection") } }, ) @@ -225,8 +250,8 @@ private fun TlsFingerprintScreen(activity: Activity) { if (showAlwaysOnNotice) { AlertDialog( onDismissRequest = { showAlwaysOnNotice = false }, - title = { Text("TLS fingerprint saved") }, - text = { Text("Always-on VPN is managed by Android. The new TLS fingerprint will be applied the next time the VPN connects.") }, + title = { Text("Fingerprint saved") }, + text = { Text("Always-on VPN is managed by Android. The new HTTPS or SSH fingerprint will be applied the next time the VPN connects.") }, confirmButton = { TextButton(onClick = { showAlwaysOnNotice = false }) { Text("OK") } }, ) } diff --git a/app/src/main/java/net/megaproxy487/SshHostKeyActivity.kt b/app/src/main/java/net/megaproxy487/SshHostKeyActivity.kt new file mode 100644 index 0000000..e433804 --- /dev/null +++ b/app/src/main/java/net/megaproxy487/SshHostKeyActivity.kt @@ -0,0 +1,52 @@ +package net.megaproxy487 + +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.compose.material3.AlertDialog +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text +import androidx.compose.material3.TextButton +import net.megaproxy487.data.ConfigStore +import net.megaproxy487.vpn.ProxyVpnService + +class SshHostKeyActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + val profileId = intent.getStringExtra(EXTRA_PROFILE_ID).orEmpty() + val hop = intent.getStringExtra(EXTRA_HOP).orEmpty() + val algorithm = intent.getStringExtra(EXTRA_ALGORITHM).orEmpty() + val fingerprint = intent.getStringExtra(EXTRA_FINGERPRINT).orEmpty() + val changed = intent.getBooleanExtra(EXTRA_CHANGED, false) + val testOnly = intent.getBooleanExtra(EXTRA_TEST_ONLY, false) + setContent { + MaterialTheme { + AlertDialog( + onDismissRequest = { finish() }, + title = { Text(if (changed) "SSH host key changed" else "Trust SSH host key?") }, + text = { Text(buildString { + if (changed) append("Warning: the previously trusted key for the $hop host has changed. This can indicate a server reinstall or a man-in-the-middle attack. Verify the fingerprint through a trusted channel before replacing it.\n\n") + else append("This is the first connection to the $hop SSH host. Verify its fingerprint through a trusted channel.\n\n") + append("Algorithm: $algorithm\nFingerprint: $fingerprint") + }) }, + confirmButton = { TextButton(onClick = { + if (ConfigStore(this).trustSshHostKey(profileId, hop, fingerprint)) { + if (testOnly) ProxyVpnService.test(this) else ProxyVpnService.reconnect(this) + } + finish() + }) { Text(if (changed) "Replace trusted key" else "Trust and connect") } }, + dismissButton = { TextButton(onClick = { ProxyVpnService.dismissHostKeyPrompt(this); finish() }) { Text("Cancel") } }, + ) + } + } + } + + companion object { + const val EXTRA_PROFILE_ID = "profile_id" + const val EXTRA_HOP = "hop" + const val EXTRA_ALGORITHM = "algorithm" + const val EXTRA_FINGERPRINT = "fingerprint" + const val EXTRA_CHANGED = "changed" + const val EXTRA_TEST_ONLY = "test_only" + } +} diff --git a/app/src/main/java/net/megaproxy487/data/ConfigStore.kt b/app/src/main/java/net/megaproxy487/data/ConfigStore.kt index f39f28e..8cbae4c 100644 --- a/app/src/main/java/net/megaproxy487/data/ConfigStore.kt +++ b/app/src/main/java/net/megaproxy487/data/ConfigStore.kt @@ -9,6 +9,8 @@ import net.megaproxy487.model.ProfileColors import net.megaproxy487.model.ProfileColorMatcher import net.megaproxy487.model.ProxyConfig import net.megaproxy487.model.ProxyProfile +import net.megaproxy487.model.ProxyType +import net.megaproxy487.model.SshProfile import net.megaproxy487.model.TlsProfile import net.megaproxy487.model.GlobalConnectionSettings import org.json.JSONArray @@ -91,11 +93,17 @@ class ConfigStore(context: Context) { val stored = prefs.getString(GLOBAL_CONNECTION_SETTINGS, null) if (stored != null) { val decoded = decodeGlobalConnectionSettings(stored) + if (!JSONObject(stored).has("sshProfile")) { + val upgraded = decoded.copy(sshProfile = activeProfile().config.sshProfile) + saveGlobalConnectionSettings(upgraded) + return upgraded + } return decoded } val source = activeProfile().config val migrated = GlobalConnectionSettings( tlsProfile = source.profile.takeIf { it.available } ?: TlsProfile.DEFAULT, + sshProfile = source.sshProfile, customJa3 = source.customJa3, selectedPackages = source.selectedPackages, allowIpv6 = source.allowIpv6, @@ -128,12 +136,14 @@ class ConfigStore(context: Context) { @Synchronized fun cloneProfile(id: String): ProxyProfile? { val existing = profiles() - val source = existing.firstOrNull { it.id == id } ?: return null + val sourceIndex = existing.indexOfFirst { it.id == id } + if (sourceIndex < 0) return null + val source = existing[sourceIndex] val clone = source.copy( id = UUID.randomUUID().toString(), name = "${source.displayName} copy", ) - writeProfiles(existing + clone) + writeProfiles(existing.toMutableList().apply { add(sourceIndex + 1, clone) }) return clone } @@ -185,6 +195,25 @@ class ConfigStore(context: Context) { if (updated != current) writeProfiles(updated) } + @Synchronized + fun trustSshHostKey(profileId: String, hop: String, fingerprint: String): Boolean { + if (!fingerprint.matches(Regex("SHA256:[A-Za-z0-9+/]{20,}={0,2}"))) return false + val current = profiles() + var changed = false + val updated = current.map { profile -> + if (profile.id != profileId) profile else { + changed = true + profile.copy(config = if (hop == "jump") profile.config.copy( + jumpTrustedHostKey = fingerprint, jumpAcceptAnyHostKey = false, + ) else profile.config.copy( + trustedHostKey = fingerprint, acceptAnyHostKey = false, + )) + } + } + if (changed) writeProfiles(updated) + return changed + } + @Synchronized fun deleteProfile(id: String): Boolean { val current = profiles() @@ -277,10 +306,23 @@ class ConfigStore(context: Context) { }.toString() private fun encodeConfig(config: ProxyConfig) = JSONObject().apply { + put("type", config.type.name) put("host", config.host.trim()) put("port", config.port) put("username", config.username) put("password", encrypt(config.password)) + put("privateKey", encrypt(config.privateKey)) + put("sshProfile", config.sshProfile.name) + put("trustedHostKey", config.trustedHostKey) + put("acceptAnyHostKey", config.acceptAnyHostKey) + put("jumpHost", config.jumpHost.trim()) + put("jumpPort", config.jumpPort) + put("jumpUsername", config.jumpUsername) + put("jumpPassword", encrypt(config.jumpPassword)) + put("jumpPrivateKey", encrypt(config.jumpPrivateKey)) + put("jumpTrustedHostKey", config.jumpTrustedHostKey) + put("jumpAcceptAnyHostKey", config.jumpAcceptAnyHostKey) + put("sameJumpAuthentication", config.sameJumpAuthentication) put("allowInvalidProxyCertificate", config.allowInvalidProxyCertificate) put("fingerprint", config.profile.name) put("customJa3", config.customJa3.trim()) @@ -307,10 +349,23 @@ class ConfigStore(context: Context) { }.getOrDefault(emptyList()) private fun decodeConfig(item: JSONObject) = ProxyConfig( + type = enumValue(item.optString("type"), ProxyType.HTTPS), host = item.optString("host"), port = item.optInt("port", 443), username = item.optString("username"), password = decrypt(item.optString("password").ifEmpty { null }), + privateKey = decrypt(item.optString("privateKey").ifEmpty { null }), + sshProfile = enumValue(item.optString("sshProfile"), SshProfile.DEFAULT), + trustedHostKey = item.optString("trustedHostKey"), + acceptAnyHostKey = item.optBoolean("acceptAnyHostKey", false), + jumpHost = item.optString("jumpHost"), + jumpPort = item.optInt("jumpPort", 22), + jumpUsername = item.optString("jumpUsername"), + jumpPassword = decrypt(item.optString("jumpPassword").ifEmpty { null }), + jumpPrivateKey = decrypt(item.optString("jumpPrivateKey").ifEmpty { null }), + jumpTrustedHostKey = item.optString("jumpTrustedHostKey"), + jumpAcceptAnyHostKey = item.optBoolean("jumpAcceptAnyHostKey", false), + sameJumpAuthentication = item.optBoolean("sameJumpAuthentication", true), allowInvalidProxyCertificate = item.optBoolean("allowInvalidProxyCertificate", false), profile = enumValue(item.optString("fingerprint"), TlsProfile.DEFAULT), customJa3 = item.optString("customJa3"), @@ -326,6 +381,7 @@ class ConfigStore(context: Context) { private fun encodeGlobalConnectionSettings(settings: GlobalConnectionSettings) = JSONObject().apply { put("fingerprint", settings.tlsProfile.name) + put("sshProfile", settings.sshProfile.name) put("customJa3", settings.customJa3.trim()) put("packages", JSONArray(settings.selectedPackages.sorted())) put("allowIpv6", settings.allowIpv6) @@ -338,6 +394,7 @@ class ConfigStore(context: Context) { val parsedTls = enumValue(item.optString("fingerprint"), TlsProfile.DEFAULT) GlobalConnectionSettings( tlsProfile = parsedTls.takeIf { it.available } ?: TlsProfile.DEFAULT, + sshProfile = enumValue(item.optString("sshProfile"), SshProfile.DEFAULT), customJa3 = item.optString("customJa3"), selectedPackages = item.optJSONArray("packages")?.let { array -> (0 until array.length()).mapNotNull { array.optString(it).takeIf(String::isNotBlank) }.toSet() diff --git a/app/src/main/java/net/megaproxy487/data/ConfigTransfer.kt b/app/src/main/java/net/megaproxy487/data/ConfigTransfer.kt index bd6807b..8bd0e32 100644 --- a/app/src/main/java/net/megaproxy487/data/ConfigTransfer.kt +++ b/app/src/main/java/net/megaproxy487/data/ConfigTransfer.kt @@ -3,6 +3,8 @@ package net.megaproxy487.data import net.megaproxy487.model.DnsProvider import net.megaproxy487.model.ProxyConfig import net.megaproxy487.model.ProxyProfile +import net.megaproxy487.model.ProxyType +import net.megaproxy487.model.SshProfile import net.megaproxy487.model.TlsProfile import net.megaproxy487.model.GlobalConnectionSettings import org.json.JSONArray @@ -25,10 +27,10 @@ data class PortableConfiguration( ) object ConfigTransfer { - const val SCHEMA_VERSION = 2 + const val SCHEMA_VERSION = 4 fun exportProxyList(profiles: List, includePasswords: Boolean): String = - profiles.joinToString("\n", postfix = "\n") { profile -> + profiles.filter { it.config.type == ProxyType.HTTPS }.joinToString("\n", postfix = "\n") { profile -> val config = profile.config val password = if (includePasswords) config.password else "" val userInfo = "${encode(config.username)}:${encode(password)}" @@ -43,10 +45,11 @@ object ConfigTransfer { } } - fun exportJson(store: ConfigStore, includePasswords: Boolean): String = JSONObject().apply { + fun exportJson(store: ConfigStore, includePasswords: Boolean, includePrivateKeys: Boolean = false): String = JSONObject().apply { put("schema", "dev.megaproxy.config") put("version", SCHEMA_VERSION) put("passwordsIncluded", includePasswords) + put("privateKeysIncluded", includePrivateKeys) put("activeProfileId", store.activeProfileId()) put("alwaysOnProfileId", store.alwaysOnProfileId()) put("diagnosticLogLimitMb", store.diagnosticLogLimitMb()) @@ -55,6 +58,7 @@ object ConfigTransfer { put("fingerprint", global.tlsProfile.name) put("customJa3", global.customJa3.trim()) }) + put("ssh", JSONObject().apply { put("fingerprint", global.sshProfile.name) }) put("routing", JSONObject().apply { put("routeAllApps", global.routeAllApps) put("selectedPackages", JSONArray(global.selectedPackages.sorted())) @@ -62,7 +66,7 @@ object ConfigTransfer { put("bypassLocalNetworks", global.bypassLocalNetworks) }) put("profiles", JSONArray().apply { - store.profiles().forEach { profile -> put(encodeProfile(profile, includePasswords)) } + store.profiles().forEach { profile -> put(encodeProfile(profile, includePasswords, includePrivateKeys)) } }) }.toString(2) @@ -82,7 +86,11 @@ object ConfigTransfer { activeProfileId = root.optString("activeProfileId").ifBlank { null }, alwaysOnProfileId = root.optString("alwaysOnProfileId").ifBlank { null }, diagnosticLogLimitMb = root.optInt("diagnosticLogLimitMb", 3).coerceIn(1, 100), - globalConnectionSettings = if (version >= 2) decodeGlobalSettings(root) else null, + globalConnectionSettings = if (version >= 2) { + decodeGlobalSettings(root).let { global -> + if (version < 4) global.copy(sshProfile = profiles.first().config.sshProfile) else global + } + } else null, skippedProfiles = decoded.count(Result::isFailure), ) } @@ -90,6 +98,7 @@ object ConfigTransfer { private fun decodeGlobalSettings(root: JSONObject): GlobalConnectionSettings { val tls = root.optJSONObject("tls") ?: JSONObject() val routing = root.optJSONObject("routing") ?: JSONObject() + val ssh = root.optJSONObject("ssh") ?: JSONObject() val parsedTls = enumValue(tls.optString("fingerprint"), TlsProfile.DEFAULT) val packages = routing.optJSONArray("selectedPackages")?.let { array -> (0 until array.length()).mapNotNull { index -> @@ -98,6 +107,7 @@ object ConfigTransfer { }.orEmpty() return GlobalConnectionSettings( tlsProfile = parsedTls.takeIf { it.available } ?: TlsProfile.DEFAULT, + sshProfile = enumValue(ssh.optString("fingerprint"), SshProfile.DEFAULT), customJa3 = tls.optString("customJa3"), selectedPackages = packages, allowIpv6 = routing.optBoolean("allowIpv6", false), @@ -106,17 +116,34 @@ object ConfigTransfer { ) } - private fun encodeProfile(profile: ProxyProfile, includePasswords: Boolean) = JSONObject().apply { + private fun encodeProfile(profile: ProxyProfile, includePasswords: Boolean, includePrivateKeys: Boolean) = JSONObject().apply { put("id", profile.id) put("name", profile.name.trim()) put("color", profile.colorIndex) put("countryCode", profile.countryCode.uppercase()) put("proxy", JSONObject().apply { + put("type", profile.config.type.name) put("host", profile.config.host.trim()) put("port", profile.config.port) put("username", profile.config.username) if (includePasswords) put("password", profile.config.password) + if (includePrivateKeys) put("privateKey", profile.config.privateKey) put("allowInvalidProxyCertificate", profile.config.allowInvalidProxyCertificate) + put("sshProfile", profile.config.sshProfile.name) + put("trustedHostKey", profile.config.trustedHostKey) + put("acceptAnyHostKey", profile.config.acceptAnyHostKey) + if (profile.config.type == ProxyType.SSH_JUMP) put("jump", JSONObject().apply { + put("host", profile.config.jumpHost) + put("port", profile.config.jumpPort) + put("sameAuthentication", profile.config.sameJumpAuthentication) + if (!profile.config.sameJumpAuthentication) { + put("username", profile.config.jumpUsername) + if (includePasswords) put("password", profile.config.jumpPassword) + if (includePrivateKeys) put("privateKey", profile.config.jumpPrivateKey) + } + put("trustedHostKey", profile.config.jumpTrustedHostKey) + put("acceptAnyHostKey", profile.config.jumpAcceptAnyHostKey) + }) }) put("tls", JSONObject().apply { put("fingerprint", profile.config.profile.name) @@ -152,10 +179,23 @@ object ConfigTransfer { colorIndex = item.optInt("color", index), countryCode = item.optString("countryCode").uppercase().takeIf { it.matches(Regex("[A-Z]{2}")) }.orEmpty(), config = ProxyConfig( + type = enumValue(proxy.optString("type"), ProxyType.HTTPS), host = host, port = proxy.optInt("port", 443).takeIf { it in 1..65535 } ?: 443, username = proxy.optString("username"), password = proxy.optString("password"), + privateKey = proxy.optString("privateKey"), + sshProfile = enumValue(proxy.optString("sshProfile"), SshProfile.DEFAULT), + trustedHostKey = proxy.optString("trustedHostKey"), + acceptAnyHostKey = proxy.optBoolean("acceptAnyHostKey", false), + jumpHost = proxy.optJSONObject("jump")?.optString("host").orEmpty(), + jumpPort = proxy.optJSONObject("jump")?.optInt("port", 22) ?: 22, + sameJumpAuthentication = proxy.optJSONObject("jump")?.optBoolean("sameAuthentication", true) ?: true, + jumpUsername = proxy.optJSONObject("jump")?.optString("username").orEmpty(), + jumpPassword = proxy.optJSONObject("jump")?.optString("password").orEmpty(), + jumpPrivateKey = proxy.optJSONObject("jump")?.optString("privateKey").orEmpty(), + jumpTrustedHostKey = proxy.optJSONObject("jump")?.optString("trustedHostKey").orEmpty(), + jumpAcceptAnyHostKey = proxy.optJSONObject("jump")?.optBoolean("acceptAnyHostKey", false) ?: false, allowInvalidProxyCertificate = proxy.optBoolean("allowInvalidProxyCertificate", false), profile = enumValue(tls.optString("fingerprint"), TlsProfile.DEFAULT), customJa3 = tls.optString("customJa3"), diff --git a/app/src/main/java/net/megaproxy487/model/ProxyConfig.kt b/app/src/main/java/net/megaproxy487/model/ProxyConfig.kt index 3569453..9c61a7e 100644 --- a/app/src/main/java/net/megaproxy487/model/ProxyConfig.kt +++ b/app/src/main/java/net/megaproxy487/model/ProxyConfig.kt @@ -1,6 +1,7 @@ package net.megaproxy487.model data class ProxyConfig( + val type: ProxyType = ProxyType.HTTPS, val host: String = "", val port: Int = 443, val username: String = "", @@ -15,14 +16,32 @@ data class ProxyConfig( val routeAllApps: Boolean = true, val bypassLocalNetworks: Boolean = true, val resolvedProxyIp: String = "", + val privateKey: String = "", + val sshProfile: SshProfile = SshProfile.DEFAULT, + val trustedHostKey: String = "", + val acceptAnyHostKey: Boolean = false, + val jumpHost: String = "", + val jumpPort: Int = 22, + val jumpUsername: String = "", + val jumpPassword: String = "", + val jumpPrivateKey: String = "", + val jumpTrustedHostKey: String = "", + val jumpAcceptAnyHostKey: Boolean = false, + val sameJumpAuthentication: Boolean = true, + val resolvedJumpIp: String = "", ) { fun connectionValidationError(): String? = when { - host.isBlank() -> "Enter the proxy hostname" + host.isBlank() -> if (type == ProxyType.HTTPS) "Enter the proxy hostname" else "Enter the SSH hostname" host.contains(Regex("[/:\\s]")) -> "Enter a hostname without a scheme or path" port !in 1..65535 -> "Port must be between 1 and 65535" - username.isBlank() -> "Enter the Basic Auth username" - password.isBlank() -> "Enter the Basic Auth password" - profile == TlsProfile.CUSTOM && Ja3Spec.parse(customJa3) == null -> + type == ProxyType.HTTPS && username.isBlank() -> "Enter the Basic Auth username" + type == ProxyType.HTTPS && password.isBlank() -> "Enter the Basic Auth password" + type != ProxyType.HTTPS && username.isBlank() -> "Enter the SSH username" + type == ProxyType.SSH_JUMP && jumpHost.isBlank() -> "Enter the jump host" + type == ProxyType.SSH_JUMP && jumpHost.contains(Regex("[/:\\s]")) -> "Enter a jump hostname without a scheme or path" + type == ProxyType.SSH_JUMP && jumpPort !in 1..65535 -> "Jump port must be between 1 and 65535" + type == ProxyType.SSH_JUMP && !sameJumpAuthentication && jumpUsername.isBlank() -> "Enter the jump SSH username" + type == ProxyType.HTTPS && profile == TlsProfile.CUSTOM && Ja3Spec.parse(customJa3) == null -> "JA3 must contain five fields: version,ciphers,extensions,groups,points" dnsProvider == DnsProvider.CUSTOM && !customDohUrl.matches(Regex("https://[^/\\s]+/.+")) -> "The custom DoH URL must start with https://" @@ -32,6 +51,20 @@ data class ProxyConfig( fun validationError(): String? = connectionValidationError() } +enum class ProxyType(val title: String, val defaultPort: Int) { + HTTPS("HTTPS", 443), + SSH("SSH", 22), + SSH_JUMP("SSH with Jump", 22), +} + +enum class SshProfile(val title: String) { + DEFAULT("Default (currently OpenSSH/Termux)"), + OPENSSH_TERMUX("OpenSSH / Termux"), + CONNECTBOT("ConnectBot"), + JUICESSH("JuiceSSH"), + TERMIUS_ANDROID("Termius Android"), +} + data class ProxyProfile( val id: String, val name: String = "", @@ -84,6 +117,7 @@ enum class TlsProfile(val title: String, val available: Boolean = true) { data class GlobalConnectionSettings( val tlsProfile: TlsProfile = TlsProfile.DEFAULT, + val sshProfile: SshProfile = SshProfile.DEFAULT, val customJa3: String = "", val selectedPackages: Set = emptySet(), val allowIpv6: Boolean = false, @@ -93,6 +127,7 @@ data class GlobalConnectionSettings( fun applyTo(config: ProxyConfig): ProxyConfig = config.copy( profile = if (tlsProfile == TlsProfile.DEFAULT) TlsProfile.CHROME_ANDROID else tlsProfile, customJa3 = customJa3, + sshProfile = sshProfile, selectedPackages = selectedPackages, allowIpv6 = allowIpv6, routeAllApps = routeAllApps, diff --git a/app/src/main/java/net/megaproxy487/vpn/ProxyCore.kt b/app/src/main/java/net/megaproxy487/vpn/ProxyCore.kt index 1a3616a..35f6ea5 100644 --- a/app/src/main/java/net/megaproxy487/vpn/ProxyCore.kt +++ b/app/src/main/java/net/megaproxy487/vpn/ProxyCore.kt @@ -45,11 +45,25 @@ class NativeProxyCore( private fun protectSocket(fd: Long): Boolean = vpnService.protect(fd.toInt()) private fun configJson(config: ProxyConfig) = JSONObject() + .put("type", config.type.name) .put("host", config.host.trim()) .put("dialHost", config.resolvedProxyIp) .put("port", config.port) .put("username", config.username) .put("password", config.password) + .put("privateKey", config.privateKey) + .put("sshProfile", config.sshProfile.name) + .put("trustedHostKey", config.trustedHostKey) + .put("acceptAnyHostKey", config.acceptAnyHostKey) + .put("jumpHost", config.jumpHost.trim()) + .put("jumpDialHost", config.resolvedJumpIp) + .put("jumpPort", config.jumpPort) + .put("jumpUsername", config.jumpUsername) + .put("jumpPassword", config.jumpPassword) + .put("jumpPrivateKey", config.jumpPrivateKey) + .put("jumpTrustedHostKey", config.jumpTrustedHostKey) + .put("jumpAcceptAnyHostKey", config.jumpAcceptAnyHostKey) + .put("sameJumpAuthentication", config.sameJumpAuthentication) .put("allowInvalidProxyCertificate", config.allowInvalidProxyCertificate) .put("profile", config.profile.name) .put("customJa3", config.customJa3.trim()) @@ -84,7 +98,12 @@ class NativeProxyCore( val protectorType = Class.forName("mobile.Protector") val reporterType = Class.forName("mobile.Reporter") val protector = callback(protectorType, "protect") { protectSocket(it!![0] as Long) } - val reporter = callback(reporterType, "report") { diagnostics(it!![0] as String); null } + val reporter = callback(reporterType, "report") { + val message = it!![0] as String + diagnostics(message) + if ("SSH_HOST_KEY_" in message) status(message) + null + } detachedFd = ParcelFileDescriptor.fromFd(tunFd).detachFd() val startMethod = mobile.getMethod( "start", Long::class.javaPrimitiveType, String::class.java, protectorType, reporterType, @@ -92,7 +111,7 @@ class NativeProxyCore( val goFd = detachedFd!! detachedFd = null // Start's contract takes ownership, including error paths. startMethod.invoke(null, goFd.toLong(), configJson(config), protector, reporter) - status("TCP is protected by the HTTPS proxy") + status("TCP is protected by ${config.type.title}") true }.getOrElse { detachedFd?.let { fd -> runCatching { ParcelFileDescriptor.adoptFd(fd).close() } } @@ -106,7 +125,12 @@ class NativeProxyCore( val protectorType = Class.forName("mobile.Protector") val reporterType = Class.forName("mobile.Reporter") val protector = callback(protectorType, "protect") { protectSocket(it!![0] as Long) } - val reporter = callback(reporterType, "report") { diagnostics(it!![0] as String); null } + val reporter = callback(reporterType, "report") { + val message = it!![0] as String + diagnostics(message) + if ("SSH_HOST_KEY_" in message) status(message) + null + } mobile.getMethod("testConnection", String::class.java, protectorType, reporterType) .invoke(null, configJson(config), protector, reporter) as String }.onSuccess { diff --git a/app/src/main/java/net/megaproxy487/vpn/ProxyVpnService.kt b/app/src/main/java/net/megaproxy487/vpn/ProxyVpnService.kt index 17e64f3..6e743bf 100644 --- a/app/src/main/java/net/megaproxy487/vpn/ProxyVpnService.kt +++ b/app/src/main/java/net/megaproxy487/vpn/ProxyVpnService.kt @@ -13,6 +13,7 @@ import android.os.Looper import androidx.core.app.NotificationCompat import androidx.core.content.ContextCompat import net.megaproxy487.MainActivity +import net.megaproxy487.SshHostKeyActivity import net.megaproxy487.data.ConfigStore import java.util.concurrent.atomic.AtomicBoolean import kotlin.concurrent.thread @@ -22,6 +23,7 @@ class ProxyVpnService : VpnService() { private var core: ProxyCore? = null private var activeConfig: net.megaproxy487.model.ProxyConfig? = null private var tunnelTestOnly = false + private var hostKeyPrompt: PendingIntent? = null private val monitorHandler = Handler(Looper.getMainLooper()) private val monitor = object : Runnable { override fun run() { @@ -31,7 +33,7 @@ class ProxyVpnService : VpnService() { NOTIFICATION_ID, notification(if (isRunning) "Connected" else "Reconnecting…"), ) - if (tunnel == null && !testRunning.get() && startRunning.compareAndSet(false, true)) { + if (tunnel == null && hostKeyPrompt == null && !testRunning.get() && startRunning.compareAndSet(false, true)) { VpnRuntimeState.update(VpnConnectionState.CONNECTING) thread(name = "megaproxy-vpn-recovery") { try { @@ -71,12 +73,18 @@ class ProxyVpnService : VpnService() { if (intent?.action == ACTION_REFRESH_STATUS) { return if (tunnel != null) START_STICKY else START_NOT_STICKY } + if (intent?.action == ACTION_DISMISS_HOST_KEY) { + hostKeyPrompt = null + if (tunnel == null) { stopForeground(STOP_FOREGROUND_REMOVE); stopSelf() } + return START_NOT_STICKY + } if (intent?.action == ACTION_STOP) { stopTunnel() stopSelf() return START_NOT_STICKY } if (intent?.action == ACTION_RECONNECT) { + hostKeyPrompt = null DiagnosticLog.add("event=vpn_reconnect reason=routing_settings_changed") startForeground(NOTIFICATION_ID, notification("Reconnecting…")) stopTunnel(removeForeground = false) @@ -94,6 +102,8 @@ class ProxyVpnService : VpnService() { return START_STICKY } if (intent?.action == ACTION_TEST) { + hostKeyPrompt = null + SshHostKeyPromptState.clear() startForeground(NOTIFICATION_ID, notification("Testing connection…")) TestDiagnosticLog.begin() thread(name = "megaproxy-connection-test") { testConnection() } @@ -129,8 +139,10 @@ class ProxyVpnService : VpnService() { if (temporaryVpn && !startTunnel(testOnly = true, suppliedConfig = storedConfig)) { TestDiagnosticLog.fail("Connection test failed: temporary VPN could not be started") testRunning.set(false) - stopForeground(STOP_FOREGROUND_REMOVE) - stopSelf() + if (hostKeyPrompt == null) { + stopForeground(STOP_FOREGROUND_REMOVE) + stopSelf() + } return } val config = activeConfig ?: run { @@ -139,6 +151,7 @@ class ProxyVpnService : VpnService() { return } val exitIp = NativeProxyCore(this, TestDiagnosticLog::add).test(config) { message -> + configureHostKeyPrompt(message, ConfigStore(this).activeProfileId(), true) getSystemService(NotificationManager::class.java).notify(NOTIFICATION_ID, notification(message)) } if (exitIp != null) TestDiagnosticLog.succeed(exitIp) else TestDiagnosticLog.fail() @@ -152,6 +165,7 @@ class ProxyVpnService : VpnService() { private fun startTunnel(testOnly: Boolean, suppliedConfig: net.megaproxy487.model.ProxyConfig? = null): Boolean { val storedProfile = ConfigStore(this).connectionProfile() val storedConfig = suppliedConfig ?: ConfigStore(this).globalConnectionSettings().applyTo(storedProfile.config) + val promptProfileId = if (testOnly) ConfigStore(this).activeProfileId() else storedProfile.id val diagnostics = if (testOnly) TestDiagnosticLog::add else DiagnosticLog::add diagnostics( if (testOnly) "event=vpn_start mode=test" @@ -200,9 +214,19 @@ class ProxyVpnService : VpnService() { handleStartFailure(testOnly, "Proxy bootstrap DNS failed") return false } - val config = storedConfig.copy(resolvedProxyIp = proxyIp) + val jumpIp = if (storedConfig.type == net.megaproxy487.model.ProxyType.SSH_JUMP) { + proxyCore.resolveProxy(storedConfig.jumpHost) { message -> + getSystemService(NotificationManager::class.java).notify(NOTIFICATION_ID, notification(message)) + } ?: run { + tunnel?.close(); tunnel = null + handleStartFailure(testOnly, "Jump host bootstrap DNS failed") + return false + } + } else "" + val config = storedConfig.copy(resolvedProxyIp = proxyIp, resolvedJumpIp = jumpIp) core = proxyCore.also { val started = it.start(tunnel!!.fd, config) { message -> + configureHostKeyPrompt(message, promptProfileId, testOnly) getSystemService(NotificationManager::class.java).notify(NOTIFICATION_ID, notification(message)) } if (!started) { @@ -223,8 +247,14 @@ class ProxyVpnService : VpnService() { private fun handleStartFailure(testOnly: Boolean, message: String) { if (testOnly) { TestDiagnosticLog.fail(message) - stopForeground(STOP_FOREGROUND_REMOVE) - stopSelf() + if (hostKeyPrompt != null) { + getSystemService(NotificationManager::class.java).notify( + NOTIFICATION_ID, notification("SSH host key approval required"), + ) + } else { + stopForeground(STOP_FOREGROUND_REMOVE) + stopSelf() + } } else { DiagnosticLog.add("$message; retrying") VpnRuntimeState.update(VpnConnectionState.CONNECTING) @@ -272,13 +302,41 @@ class ProxyVpnService : VpnService() { getSystemService(NotificationManager::class.java).createNotificationChannel(channel) } + private fun configureHostKeyPrompt(message: String, profileId: String, testOnly: Boolean) { + val marker = when { + "SSH_HOST_KEY_UNKNOWN|" in message -> "SSH_HOST_KEY_UNKNOWN|" + "SSH_HOST_KEY_CHANGED|" in message -> "SSH_HOST_KEY_CHANGED|" + else -> return + } + val parts = message.substringAfter(marker).substringBefore(' ').split('|') + if (parts.size < 3) return + val changed = marker.startsWith("SSH_HOST_KEY_CHANGED") + val fingerprint = if (changed) parts.getOrNull(3) else parts.getOrNull(2) + if (fingerprint == null || !fingerprint.startsWith("SHA256:")) return + val intent = Intent(this, SshHostKeyActivity::class.java) + .putExtra(SshHostKeyActivity.EXTRA_PROFILE_ID, profileId) + .putExtra(SshHostKeyActivity.EXTRA_HOP, parts[0]) + .putExtra(SshHostKeyActivity.EXTRA_ALGORITHM, parts[1]) + .putExtra(SshHostKeyActivity.EXTRA_FINGERPRINT, fingerprint) + .putExtra(SshHostKeyActivity.EXTRA_CHANGED, changed) + .putExtra(SshHostKeyActivity.EXTRA_TEST_ONLY, testOnly) + SshHostKeyPromptState.show( + PendingSshHostKey(profileId, parts[0], parts[1], fingerprint, changed, testOnly), + ) + hostKeyPrompt = PendingIntent.getActivity( + this, profileId.hashCode() xor parts[0].hashCode(), intent, + PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE, + ) + } + private fun notification(text: String) = NotificationCompat.Builder(this, CHANNEL_ID) .setSmallIcon(android.R.drawable.stat_sys_warning) .setContentTitle("MegaProxy is active") .setContentText(text) .setOngoing(true) .setCategory(NotificationCompat.CATEGORY_SERVICE) - .setContentIntent(PendingIntent.getActivity(this, 0, Intent(this, MainActivity::class.java), PendingIntent.FLAG_IMMUTABLE)) + .setContentIntent(hostKeyPrompt ?: PendingIntent.getActivity(this, 0, Intent(this, MainActivity::class.java), PendingIntent.FLAG_IMMUTABLE)) + .also { builder -> hostKeyPrompt?.let { builder.addAction(0, "Review SSH key", it) } } .build() companion object { @@ -289,6 +347,7 @@ class ProxyVpnService : VpnService() { private const val ACTION_RECONNECT = "net.megaproxy487.RECONNECT" private const val ACTION_START_MANUAL = "net.megaproxy487.START_MANUAL" private const val ACTION_REFRESH_STATUS = "net.megaproxy487.REFRESH_STATUS" + private const val ACTION_DISMISS_HOST_KEY = "net.megaproxy487.DISMISS_HOST_KEY" private const val MONITOR_INTERVAL_MS = 10_000L private val testRunning = AtomicBoolean(false) private val startRunning = AtomicBoolean(false) @@ -325,5 +384,9 @@ class ProxyVpnService : VpnService() { context.startService(Intent(context, ProxyVpnService::class.java).setAction(ACTION_REFRESH_STATUS)) } } + fun dismissHostKeyPrompt(context: Context) { + SshHostKeyPromptState.clear() + context.startService(Intent(context, ProxyVpnService::class.java).setAction(ACTION_DISMISS_HOST_KEY)) + } } } diff --git a/app/src/main/java/net/megaproxy487/vpn/SshHostKeyPromptState.kt b/app/src/main/java/net/megaproxy487/vpn/SshHostKeyPromptState.kt new file mode 100644 index 0000000..8450e34 --- /dev/null +++ b/app/src/main/java/net/megaproxy487/vpn/SshHostKeyPromptState.kt @@ -0,0 +1,24 @@ +package net.megaproxy487.vpn + +import androidx.compose.runtime.mutableStateOf + +data class PendingSshHostKey( + val profileId: String, + val hop: String, + val algorithm: String, + val fingerprint: String, + val changed: Boolean, + val testOnly: Boolean, +) + +object SshHostKeyPromptState { + val pending = mutableStateOf(null) + + fun show(value: PendingSshHostKey) { + pending.value = value + } + + fun clear() { + pending.value = null + } +} diff --git a/native/README.md b/native/README.md index 1b19d96..8f94692 100644 --- a/native/README.md +++ b/native/README.md @@ -1,8 +1,10 @@ # Go dataplane This module is bound into `megaproxy.aar` with gomobile. It embeds tun2socks/gVisor, -registers an HTTPS CONNECT transport, protects every upstream socket through Android -`VpnService.protect`, verifies the proxy certificate and uses uTLS for ClientHello control. +registers HTTPS CONNECT and SSH `direct-tcpip` transports, protects every upstream socket through Android +`VpnService.protect`, verifies HTTPS proxy certificates and SSH host keys, and uses uTLS for HTTPS ClientHello control. +SSH with Jump creates a nested SSH client through the jump session. SSH transports support TCP; +DNS is carried over DoH, while arbitrary UDP (including QUIC) is intentionally blocked. `Start` always takes ownership of the passed duplicate TUN descriptor, including error paths. Build prerequisites: Go 1.26+, Android SDK/NDK and `gomobile`. diff --git a/native/mobile/config.go b/native/mobile/config.go index 97edba6..3ec8d30 100644 --- a/native/mobile/config.go +++ b/native/mobile/config.go @@ -12,6 +12,7 @@ import ( ) type config struct { + Type string `json:"type"` Host string `json:"host"` DialHost string `json:"dialHost"` Port int `json:"port"` @@ -23,6 +24,19 @@ type config struct { DoHURL string `json:"dohUrl"` AllowIPv6 bool `json:"allowIpv6"` BypassLocalNetworks bool `json:"bypassLocalNetworks"` + PrivateKey string `json:"privateKey"` + SSHProfile string `json:"sshProfile"` + TrustedHostKey string `json:"trustedHostKey"` + AcceptAnyHostKey bool `json:"acceptAnyHostKey"` + JumpHost string `json:"jumpHost"` + JumpDialHost string `json:"jumpDialHost"` + JumpPort int `json:"jumpPort"` + JumpUsername string `json:"jumpUsername"` + JumpPassword string `json:"jumpPassword"` + JumpPrivateKey string `json:"jumpPrivateKey"` + JumpTrustedHostKey string `json:"jumpTrustedHostKey"` + JumpAcceptAnyHostKey bool `json:"jumpAcceptAnyHostKey"` + SameJumpAuthentication bool `json:"sameJumpAuthentication"` } func parseConfig(raw string) (config, error) { @@ -32,6 +46,9 @@ func parseConfig(raw string) (config, error) { } c.Host = strings.TrimSpace(c.Host) c.DialHost = strings.TrimSpace(c.DialHost) + if c.Type == "" { + c.Type = "HTTPS" + } if c.Host == "" || strings.ContainsAny(c.Host, "/: \t\r\n") { return c, errors.New("invalid proxy hostname") } @@ -41,14 +58,39 @@ func parseConfig(raw string) (config, error) { if c.Port < 1 || c.Port > 65535 { return c, errors.New("invalid proxy port") } - if c.Username == "" || c.Password == "" { + if c.Type == "HTTPS" && (c.Username == "" || c.Password == "") { return c, errors.New("basic auth credentials are required") } + if c.Type != "HTTPS" && c.Username == "" { + return c, errors.New("SSH username is required") + } + if c.Type == "SSH_JUMP" { + if c.JumpHost == "" || strings.ContainsAny(c.JumpHost, "/: \t\r\n") { + return c, errors.New("invalid jump hostname") + } + if net.ParseIP(c.JumpDialHost) == nil { + return c, errors.New("jump bootstrap IP is missing or invalid") + } + if c.JumpPort < 1 || c.JumpPort > 65535 { + return c, errors.New("invalid jump port") + } + if c.SameJumpAuthentication { + c.JumpUsername, c.JumpPassword, c.JumpPrivateKey = c.Username, c.Password, c.PrivateKey + } + if c.JumpUsername == "" { + return c, errors.New("jump SSH username is required") + } + } if err := validateDoHURL(c.DoHURL); err != nil { return c, err } - if _, err := c.helloID(); err != nil { - return c, err + if c.Type == "HTTPS" { + if _, err := c.helloID(); err != nil { + return c, err + } + } + if c.Type != "HTTPS" && c.Type != "SSH" && c.Type != "SSH_JUMP" { + return c, fmt.Errorf("unsupported proxy type %q", c.Type) } return c, nil } @@ -56,6 +98,9 @@ func parseConfig(raw string) (config, error) { func (c config) address() string { return net.JoinHostPort(c.DialHost, strconv.Itoa(c.Port)) } func (c config) displayAddress() string { return net.JoinHostPort(c.Host, strconv.Itoa(c.Port)) } +func (c config) jumpAddress() string { + return net.JoinHostPort(c.JumpDialHost, strconv.Itoa(c.JumpPort)) +} func (c config) helloID() (tls.ClientHelloID, error) { switch c.Profile { diff --git a/native/mobile/dialer.go b/native/mobile/dialer.go index 6ab9f6b..2ca3e56 100644 --- a/native/mobile/dialer.go +++ b/native/mobile/dialer.go @@ -171,7 +171,7 @@ func (d *httpsConnectDialer) DialUDP(metadata *M.Metadata) (net.PacketConn, erro if metadata.DstPort != 53 { return nil, errUDPBlocked } - return newDoHPacketConn(d, d.config.DoHURL), nil + return newDoHPacketConn(d.config, d.reporter, d.connectTarget, d.config.DoHURL), nil } type bufferedConn struct { diff --git a/native/mobile/doh.go b/native/mobile/doh.go index cc87703..93c1519 100644 --- a/native/mobile/doh.go +++ b/native/mobile/doh.go @@ -33,7 +33,9 @@ type dnsReply struct { } type dohPacketConn struct { - dialer *httpsConnectDialer + config config + reporter Reporter + connect func(context.Context, string) (net.Conn, error) url string replies chan dnsReply closed chan struct{} @@ -43,17 +45,17 @@ type dohPacketConn struct { client *http.Client } -func newDoHPacketConn(d *httpsConnectDialer, endpoint string) *dohPacketConn { +func newDoHPacketConn(c config, reporter Reporter, connect func(context.Context, string) (net.Conn, error), endpoint string) *dohPacketConn { transport := &http.Transport{ Proxy: nil, ForceAttemptHTTP2: true, TLSHandshakeTimeout: 15 * time.Second, DialContext: func(ctx context.Context, _, address string) (net.Conn, error) { - return d.connectTarget(ctx, address) + return connect(ctx, address) }, } return &dohPacketConn{ - dialer: d, url: endpoint, replies: make(chan dnsReply, 16), closed: make(chan struct{}), + config: c, reporter: reporter, connect: connect, url: endpoint, replies: make(chan dnsReply, 16), closed: make(chan struct{}), client: &http.Client{Transport: transport, Timeout: 20 * time.Second}, } } @@ -64,13 +66,13 @@ func (c *dohPacketConn) WriteTo(payload []byte, addr net.Addr) (int, error) { return 0, net.ErrClosed default: } - if !c.dialer.config.AllowIPv6 { + if !c.config.AllowIPv6 { response, isAAAA, err := emptyAAAAResponse(payload) if err != nil { return 0, err } if isAAAA { - report(c.dialer.reporter, "event=doh result=suppressed query_type=aaaa reason=ipv4_only") + report(c.reporter, "event=doh result=suppressed query_type=aaaa reason=ipv4_only") c.deliver(dnsReply{payload: response, addr: addr}) return len(payload), nil } @@ -99,10 +101,10 @@ func (c *dohPacketConn) WriteTo(payload []byte, addr net.Addr) (int, error) { } } if err != nil { - report(c.dialer.reporter, "event=doh result=failed reason=%s", errorClass(err)) + report(c.reporter, "event=doh result=failed reason=%s", errorClass(err)) c.deliver(dnsReply{addr: addr, err: err}) } else { - report(c.dialer.reporter, "event=doh result=success") + report(c.reporter, "event=doh result=success") } }() return len(payload), nil diff --git a/native/mobile/mobile.go b/native/mobile/mobile.go index 655ba14..b98d10b 100644 --- a/native/mobile/mobile.go +++ b/native/mobile/mobile.go @@ -2,10 +2,13 @@ package mobile import ( + "context" "errors" + "io" "strconv" "sync" "syscall" + "time" "github.com/xjasonlyu/tun2socks/v2/core" "github.com/xjasonlyu/tun2socks/v2/core/device" @@ -16,9 +19,10 @@ import ( var state struct { sync.Mutex - running bool - device device.Device - stack *stack.Stack + running bool + device device.Device + stack *stack.Stack + proxyCloser io.Closer } // Start takes ownership of a duplicate of tunFD held by Android's ParcelFileDescriptor. @@ -50,14 +54,29 @@ func Start(tunFD int, rawConfig string, protector Protector, reporter Reporter) return err } t := tunnel.T() - t.SetProxy(&httpsConnectDialer{config: c, protector: protector, reporter: reporter}) + var proxyCloser io.Closer + if c.Type == "HTTPS" { + t.SetProxy(&httpsConnectDialer{config: c, protector: protector, reporter: reporter}) + } else { + sshProxy := &sshDialer{config: c, protector: protector, reporter: reporter} + ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second) + _, sessionErr := sshProxy.session(ctx) + cancel() + if sessionErr != nil { + dev.Close() + report(reporter, "event=ssh_session result=failed detail=%s", sessionErr) + return sessionErr + } + t.SetProxy(sshProxy) + proxyCloser = sshProxy + } netstack, err := core.CreateStack(&core.Config{LinkEndpoint: dev, TransportHandler: t}) if err != nil { dev.Close() return err } - state.device, state.stack, state.running = dev, netstack, true - report(reporter, "event=native_stack result=started fingerprint=%s ipv6=%t bypass_local=%t", c.Profile, c.AllowIPv6, c.BypassLocalNetworks) + state.device, state.stack, state.proxyCloser, state.running = dev, netstack, proxyCloser, true + report(reporter, "event=native_stack result=started type=%s fingerprint=%s ssh_profile=%s ipv6=%t bypass_local=%t", c.Type, c.Profile, c.SSHProfile, c.AllowIPv6, c.BypassLocalNetworks) return nil } @@ -68,8 +87,8 @@ func Stop() { return } state.running = false - dev, netstack := state.device, state.stack - state.device, state.stack = nil, nil + dev, netstack, proxyCloser := state.device, state.stack, state.proxyCloser + state.device, state.stack, state.proxyCloser = nil, nil, nil state.Unlock() if dev != nil { dev.Close() @@ -78,4 +97,7 @@ func Stop() { netstack.Close() netstack.Wait() } + if proxyCloser != nil { + _ = proxyCloser.Close() + } } diff --git a/native/mobile/ssh_dialer.go b/native/mobile/ssh_dialer.go new file mode 100644 index 0000000..943835f --- /dev/null +++ b/native/mobile/ssh_dialer.go @@ -0,0 +1,210 @@ +package mobile + +import ( + "context" + "errors" + "fmt" + "net" + "strings" + "sync" + "syscall" + "time" + + M "github.com/xjasonlyu/tun2socks/v2/metadata" + "golang.org/x/crypto/ssh" +) + +// sshDialer implements OpenSSH-style dynamic forwarding. SOCKS CONNECT semantics +// are mapped directly to SSH direct-tcpip channels; SSH has no general UDP relay. +type sshDialer struct { + config config + protector Protector + reporter Reporter + mu sync.Mutex + client *ssh.Client + jumpClient *ssh.Client +} + +func (d *sshDialer) DialContext(ctx context.Context, metadata *M.Metadata) (net.Conn, error) { + return d.connectTarget(ctx, metadata.DestinationAddress()) +} + +func (d *sshDialer) connectTarget(ctx context.Context, target string) (net.Conn, error) { + if !d.config.AllowIPv6 { + host, _, _ := net.SplitHostPort(target) + if ip := net.ParseIP(host); ip != nil && ip.To4() == nil { + return nil, errors.New("IPv6 destination blocked by IPv4-only mode") + } + } + if d.config.BypassLocalNetworks && isLocalNetworkTarget(target) { + return d.protectedDialer().DialContext(ctx, "tcp", target) + } + client, err := d.session(ctx) + if err != nil { + recordConnectionOutcome(false) + report(d.reporter, "event=ssh_session result=failed detail=%s", err) + return nil, err + } + started := time.Now() + conn, err := client.Dial("tcp", target) + if err != nil { + d.invalidate() + report(d.reporter, "event=connection mode=ssh stage=direct_tcpip result=failed reason=%s", errorClass(err)) + recordConnectionOutcome(false) + return nil, fmt.Errorf("SSH direct-tcpip: %w", err) + } + recordConnectionOutcome(true) + report(d.reporter, "event=connection mode=ssh stage=direct_tcpip result=success elapsed_ms=%d", time.Since(started).Milliseconds()) + return &diagnosticConn{Conn: conn, connectionID: nextDiagnosticConnectionID(), reporter: d.reporter}, nil +} + +func (d *sshDialer) session(ctx context.Context) (*ssh.Client, error) { + d.mu.Lock() + defer d.mu.Unlock() + if d.client != nil { + return d.client, nil + } + if d.config.Type == "SSH_JUMP" { + raw, err := d.protectedDialer().DialContext(ctx, "tcp", d.config.jumpAddress()) + if err != nil { + return nil, fmt.Errorf("dial jump host: %w", err) + } + jump, err := newSSHClient(raw, d.config.JumpHost, d.config.JumpUsername, d.config.JumpPassword, d.config.JumpPrivateKey, d.config.JumpTrustedHostKey, d.config.JumpAcceptAnyHostKey, d.config.SSHProfile, "jump", d.reporter) + if err != nil { + raw.Close() + return nil, err + } + nested, err := jump.Dial("tcp", d.config.address()) + if err != nil { + jump.Close() + return nil, fmt.Errorf("jump host could not reach destination SSH host: %w", err) + } + client, err := newSSHClient(nested, d.config.Host, d.config.Username, d.config.Password, d.config.PrivateKey, d.config.TrustedHostKey, d.config.AcceptAnyHostKey, d.config.SSHProfile, "destination", d.reporter) + if err != nil { + nested.Close() + jump.Close() + return nil, err + } + d.jumpClient, d.client = jump, client + } else { + raw, err := d.protectedDialer().DialContext(ctx, "tcp", d.config.address()) + if err != nil { + return nil, fmt.Errorf("dial SSH host: %w", err) + } + client, err := newSSHClient(raw, d.config.Host, d.config.Username, d.config.Password, d.config.PrivateKey, d.config.TrustedHostKey, d.config.AcceptAnyHostKey, d.config.SSHProfile, "destination", d.reporter) + if err != nil { + raw.Close() + return nil, err + } + d.client = client + } + report(d.reporter, "event=ssh_session result=established type=%s profile=%s", d.config.Type, d.config.SSHProfile) + return d.client, nil +} + +func newSSHClient(conn net.Conn, hostname, username, password, privateKey, trusted string, acceptAny bool, profile, hop string, reporter Reporter) (*ssh.Client, error) { + auth, err := sshAuthMethods(privateKey, password) + if err != nil { + return nil, err + } + cfg := &ssh.ClientConfig{User: username, Auth: auth, HostKeyCallback: hostKeyCallback(trusted, acceptAny, hop), Timeout: 20 * time.Second} + applySSHProfile(cfg, profile) + cc, channels, requests, err := ssh.NewClientConn(conn, net.JoinHostPort(hostname, "22"), cfg) + if err != nil { + return nil, fmt.Errorf("SSH %s handshake: %w", hop, err) + } + report(reporter, "event=ssh_handshake hop=%s result=success profile=%s", hop, profile) + return ssh.NewClient(cc, channels, requests), nil +} + +func sshAuthMethods(privateKey, password string) ([]ssh.AuthMethod, error) { + methods := make([]ssh.AuthMethod, 0, 2) + if strings.TrimSpace(privateKey) != "" { + signer, err := ssh.ParsePrivateKey([]byte(privateKey)) + if err != nil { + var passphraseErr *ssh.PassphraseMissingError + if errors.As(err, &passphraseErr) { + return nil, errors.New("passphrase-protected SSH private keys are not supported") + } + return nil, fmt.Errorf("invalid SSH private key: %w", err) + } + methods = append(methods, ssh.PublicKeys(signer)) + } + if password != "" { + methods = append(methods, ssh.Password(password)) + methods = append(methods, ssh.KeyboardInteractive(func(_ string, _ string, questions []string, _ []bool) ([]string, error) { + answers := make([]string, len(questions)) + for i := range answers { + answers[i] = password + } + return answers, nil + })) + } + return methods, nil +} + +func hostKeyCallback(trusted string, acceptAny bool, hop string) ssh.HostKeyCallback { + return func(_ string, _ net.Addr, key ssh.PublicKey) error { + fingerprint := ssh.FingerprintSHA256(key) + if acceptAny || trusted == fingerprint { + return nil + } + if trusted == "" { + return fmt.Errorf("SSH_HOST_KEY_UNKNOWN|%s|%s|%s", hop, key.Type(), fingerprint) + } + return fmt.Errorf("SSH_HOST_KEY_CHANGED|%s|%s|%s|%s", hop, key.Type(), trusted, fingerprint) + } +} + +func applySSHProfile(c *ssh.ClientConfig, profile string) { + switch profile { + case "CONNECTBOT": + c.ClientVersion = "SSH-2.0-ConnectBot" + case "JUICESSH": + c.ClientVersion = "SSH-2.0-JuiceSSH" + case "TERMIUS_ANDROID": + c.ClientVersion = "SSH-2.0-Termius" + default: + c.ClientVersion = "SSH-2.0-OpenSSH_9.9" + } + // x/crypto exposes ordering, but not every packet-level extension used by the + // named clients. Keep modern algorithms only and use the preset for stable ordering/banner. + c.Config.KeyExchanges = []string{ssh.KeyExchangeCurve25519, ssh.KeyExchangeECDHP256, ssh.KeyExchangeDHGEXSHA256} + c.Config.Ciphers = []string{"chacha20-poly1305@openssh.com", "aes128-gcm@openssh.com", "aes256-gcm@openssh.com", "aes128-ctr", "aes256-ctr"} + c.Config.MACs = []string{ssh.HMACSHA256ETM, ssh.HMACSHA512ETM, ssh.HMACSHA256, ssh.HMACSHA512} +} + +func (d *sshDialer) protectedDialer() *net.Dialer { + return &net.Dialer{Timeout: 15 * time.Second, KeepAlive: 30 * time.Second, Control: func(_, _ string, raw syscall.RawConn) error { + var protectErr error + if err := raw.Control(func(fd uintptr) { + if !d.protector.Protect(int(fd)) { + protectErr = errors.New("VpnService.protect rejected upstream socket") + } + }); err != nil { + return err + } + return protectErr + }} +} + +func (d *sshDialer) DialUDP(metadata *M.Metadata) (net.PacketConn, error) { + if metadata.DstPort != 53 { + return nil, errUDPBlocked + } + return newDoHPacketConn(d.config, d.reporter, d.connectTarget, d.config.DoHURL), nil +} + +func (d *sshDialer) invalidate() { + d.mu.Lock() + defer d.mu.Unlock() + if d.client != nil { + d.client.Close() + } + if d.jumpClient != nil { + d.jumpClient.Close() + } + d.client, d.jumpClient = nil, nil +} + +func (d *sshDialer) Close() error { d.invalidate(); return nil } diff --git a/native/mobile/ssh_dialer_test.go b/native/mobile/ssh_dialer_test.go new file mode 100644 index 0000000..f8d6287 --- /dev/null +++ b/native/mobile/ssh_dialer_test.go @@ -0,0 +1,50 @@ +package mobile + +import ( + "crypto/ed25519" + "crypto/rand" + "strings" + "testing" + + "golang.org/x/crypto/ssh" +) + +func TestHostKeyTOFU(t *testing.T) { + public, _, err := ed25519.GenerateKey(rand.Reader) + if err != nil { + t.Fatal(err) + } + key, err := ssh.NewPublicKey(public) + if err != nil { + t.Fatal(err) + } + fingerprint := ssh.FingerprintSHA256(key) + + err = hostKeyCallback("", false, "jump")("host", nil, key) + if err == nil || !strings.Contains(err.Error(), "SSH_HOST_KEY_UNKNOWN|jump|") || !strings.Contains(err.Error(), fingerprint) { + t.Fatalf("unexpected TOFU error: %v", err) + } + if err := hostKeyCallback(fingerprint, false, "jump")("host", nil, key); err != nil { + t.Fatal(err) + } + if err := hostKeyCallback("different", true, "jump")("host", nil, key); err != nil { + t.Fatal(err) + } +} + +func TestSSHAuthRejectsMalformedPrivateKeyInsteadOfFallingBack(t *testing.T) { + _, err := sshAuthMethods("not a private key", "password") + if err == nil || !strings.Contains(err.Error(), "invalid SSH private key") { + t.Fatalf("unexpected error: %v", err) + } +} + +func TestSSHPasswordIncludesKeyboardInteractiveFallback(t *testing.T) { + methods, err := sshAuthMethods("", "password") + if err != nil { + t.Fatal(err) + } + if len(methods) != 2 { + t.Fatalf("got %d password auth methods, want password and keyboard-interactive", len(methods)) + } +} diff --git a/native/mobile/test_connection.go b/native/mobile/test_connection.go index 93cce03..6f0c712 100644 --- a/native/mobile/test_connection.go +++ b/native/mobile/test_connection.go @@ -18,17 +18,26 @@ func TestConnection(rawConfig string, protector Protector, reporter Reporter) (s if err != nil { return "", err } - dialer := &httpsConnectDialer{config: c, protector: protector, reporter: reporter} + var connect func(context.Context, string) (net.Conn, error) + var testReporter Reporter + if c.Type == "HTTPS" { + dialer := &httpsConnectDialer{config: c, protector: protector, reporter: reporter} + connect, testReporter = dialer.connectTarget, dialer.reporter + } else { + dialer := &sshDialer{config: c, protector: protector, reporter: reporter} + connect, testReporter = dialer.connectTarget, dialer.reporter + defer dialer.invalidate() + } ctx, cancel := context.WithTimeout(context.Background(), 45*time.Second) defer cancel() report(reporter, "event=connection_test result=started") - if _, err := testHTTPSGet(ctx, dialer, "example.com", "/", false); err != nil { + if _, err := testHTTPSGet(ctx, connect, testReporter, "example.com", "/", false); err != nil { return "", fmt.Errorf("example.com check: %w", err) } report(reporter, "event=connection_test stage=https_check result=success") - ip, err := testHTTPSGet(ctx, dialer, "ifconfig.me", "/ip", true) + ip, err := testHTTPSGet(ctx, connect, testReporter, "ifconfig.me", "/ip", true) if err != nil { return "", fmt.Errorf("public IP check: %w", err) } @@ -51,8 +60,8 @@ func ipFamily(value string) string { return "ipv6" } -func testHTTPSGet(ctx context.Context, dialer *httpsConnectDialer, host, path string, readBody bool) (string, error) { - tunnel, err := dialer.connectTarget(ctx, host+":443") +func testHTTPSGet(ctx context.Context, connect func(context.Context, string) (net.Conn, error), reporter Reporter, host, path string, readBody bool) (string, error) { + tunnel, err := connect(ctx, host+":443") if err != nil { return "", err } @@ -62,7 +71,7 @@ func testHTTPSGet(ctx context.Context, dialer *httpsConnectDialer, host, path st if err := connection.HandshakeContext(ctx); err != nil { return "", fmt.Errorf("destination TLS handshake: %w", err) } - report(dialer.reporter, "event=connection_test stage=destination_tls result=success certificate=verified") + report(reporter, "event=connection_test stage=destination_tls result=success certificate=verified") request, err := http.NewRequestWithContext(ctx, http.MethodGet, "https://"+host+path, nil) if err != nil { From 11a23f8491e2632d42a225a149a27a940c69c8f7 Mon Sep 17 00:00:00 2001 From: Andrey Prokopyuk Date: Tue, 1 Sep 2026 14:11:02 +0300 Subject: [PATCH 17/41] Add more options --- app/src/main/AndroidManifest.xml | 1 + .../java/net/megaproxy487/MainActivity.kt | 11 ++ .../net/megaproxy487/ProfileEditorActivity.kt | 34 ++++ .../net/megaproxy487/SettingsActivities.kt | 124 ++++++++++++++- .../net/megaproxy487/SplitTunnelActivity.kt | 9 -- .../net/megaproxy487/SshHostKeyActivity.kt | 10 +- .../java/net/megaproxy487/data/ConfigStore.kt | 54 ++++++- .../net/megaproxy487/data/ConfigTransfer.kt | 37 ++++- .../net/megaproxy487/model/ProxyConfig.kt | 31 +++- .../net/megaproxy487/vpn/BlockingDetection.kt | 17 ++ .../java/net/megaproxy487/vpn/ProxyCore.kt | 7 +- .../net/megaproxy487/vpn/ProxyVpnService.kt | 147 ++++++++++++++++-- .../net/megaproxy487/vpn/VpnRuntimeState.kt | 7 + .../net/megaproxy487/model/ProxyConfigTest.kt | 7 + .../megaproxy487/vpn/BlockingDetectionTest.kt | 18 +++ native/mobile/config.go | 17 ++ native/mobile/dialer.go | 25 ++- native/mobile/ssh_dialer.go | 122 +++++++++++++-- native/mobile/ssh_dialer_test.go | 21 ++- 19 files changed, 633 insertions(+), 66 deletions(-) create mode 100644 app/src/main/java/net/megaproxy487/vpn/BlockingDetection.kt create mode 100644 app/src/test/java/net/megaproxy487/vpn/BlockingDetectionTest.kt diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5b3f079..42469ca 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -26,6 +26,7 @@ + diff --git a/app/src/main/java/net/megaproxy487/MainActivity.kt b/app/src/main/java/net/megaproxy487/MainActivity.kt index 49b3813..1df6185 100644 --- a/app/src/main/java/net/megaproxy487/MainActivity.kt +++ b/app/src/main/java/net/megaproxy487/MainActivity.kt @@ -125,6 +125,7 @@ private fun MainScreen(activity: Activity) { val runtimeAlwaysOn by VpnRuntimeState.alwaysOn val runtimeLockdown by VpnRuntimeState.lockdown val runtimeProfileId by VpnRuntimeState.connectionProfileId + val networkWarning by VpnRuntimeState.networkWarning val store = remember { ConfigStore(activity) } var error by remember { mutableStateOf(null) } var profileMenuExpanded by remember { mutableStateOf(false) } @@ -278,12 +279,19 @@ private fun MainScreen(activity: Activity) { } } Spacer(Modifier.height(24.dp)) + networkWarning?.let { + Card(colors = CardDefaults.cardColors(containerColor = Color(0xFFFFE0B2)), modifier = Modifier.fillMaxWidth()) { + Text(it, color = Color(0xFF7A4300), modifier = Modifier.padding(14.dp)) + } + Spacer(Modifier.height(12.dp)) + } connectionStats?.let { stats -> ConnectionStatsCard(stats) Spacer(Modifier.height(12.dp)) } val displayedProfileId = if (alwaysOn) runtimeProfileId.ifEmpty { connectionProfileId } else activeProfileId val activeProfile = profiles.firstOrNull { it.id == displayedProfileId } ?: profiles.first() + val actualProfile = profiles.firstOrNull { it.id == runtimeProfileId } val profileColor = Color(ProfileColors.argb[Math.floorMod(activeProfile.colorIndex, ProfileColors.argb.size)]) val onProfileColor = if (profileColor.luminance() > 0.45f) Color.Black else Color.White Box(Modifier.fillMaxWidth()) { @@ -317,6 +325,9 @@ private fun MainScreen(activity: Activity) { } Text(activeProfile.displayName, style = MaterialTheme.typography.titleMedium, modifier = Modifier.weight(1f)) ProfileTypeBadge(activeProfile.config.type, onProfileColor) + } + if (actualProfile != null && actualProfile.id != activeProfile.id && connection != VpnConnectionState.DISCONNECTED) { + Text("Connected through: ${actualProfile.displayNameWithFlag}", style = MaterialTheme.typography.bodySmall) } DropdownMenu(profileMenuExpanded, { profileMenuExpanded = false }) { profiles.forEach { profile -> diff --git a/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt b/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt index 48f02ed..3b198e7 100644 --- a/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt +++ b/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt @@ -47,6 +47,8 @@ import net.megaproxy487.model.DnsProvider import net.megaproxy487.model.ProfileColorMatcher import net.megaproxy487.model.ProxyConfig import net.megaproxy487.model.ProxyType +import net.megaproxy487.vpn.ProxyVpnService +import net.megaproxy487.vpn.readAlwaysOnVpnStatus import java.util.Locale class ProfileEditorActivity : ComponentActivity() { @@ -74,6 +76,9 @@ private fun ProfileEditorScreen(activity: Activity) { var showInvalidCertificateWarning by remember { mutableStateOf(false) } var typeExpanded by remember { mutableStateOf(false) } var unsafeHostKeyHop by remember { mutableStateOf(null) } + var showReconnectPrompt by remember { mutableStateOf(false) } + var showAlwaysOnNotice by remember { mutableStateOf(false) } + var connectionChangeDeferred by remember { mutableStateOf(false) } val countries = remember { Locale.getISOCountries().map { code -> code to Locale.Builder().setRegion(code).build().getDisplayCountry(Locale.getDefault()) @@ -86,6 +91,14 @@ private fun ProfileEditorScreen(activity: Activity) { profile = profile.copy(config = updated) saveProfile() error = store.globalConnectionSettings().applyTo(updated).connectionValidationError() + if (ProxyVpnService.isRunning && !connectionChangeDeferred && profile.id == store.connectionProfile().id) { + if (ProxyVpnService.isAlwaysOnMode || readAlwaysOnVpnStatus(activity).enabled) { + connectionChangeDeferred = true + showAlwaysOnNotice = true + } else { + showReconnectPrompt = true + } + } } Scaffold( @@ -213,6 +226,14 @@ private fun ProfileEditorScreen(activity: Activity) { if (config.jumpTrustedHostKey.isNotBlank()) Text("Trusted jump key: ${config.jumpTrustedHostKey}", style = MaterialTheme.typography.bodySmall) } + Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) { + Column(Modifier.weight(1f)) { + Text("Enable IPv6 destinations") + Text("Enable only if this proxy can reach IPv6 destinations.", style = MaterialTheme.typography.bodySmall) + } + Checkbox(config.allowIpv6, { updateConfig(config.copy(allowIpv6 = it)) }) + } + Text("DNS over HTTPS", style = MaterialTheme.typography.titleMedium) ExposedDropdownMenuBox(dnsExpanded, { dnsExpanded = it }) { OutlinedTextField(config.dnsProvider.title, {}, readOnly = true, label = { Text("DNS over HTTPS") }, trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(dnsExpanded) }, modifier = Modifier.menuAnchor().fillMaxWidth()) @@ -247,4 +268,17 @@ private fun ProfileEditorScreen(activity: Activity) { dismissButton = { TextButton(onClick = { unsafeHostKeyHop = null }) { Text("Cancel") } }, ) } + if (showReconnectPrompt) AlertDialog( + onDismissRequest = { showReconnectPrompt = false; connectionChangeDeferred = true }, + title = { Text("Apply profile changes?") }, + text = { Text("Reconnect now to apply the connection settings, or apply them the next time the VPN connects.") }, + confirmButton = { TextButton(onClick = { showReconnectPrompt = false; ProxyVpnService.reconnect(activity) }) { Text("Reconnect now") } }, + dismissButton = { TextButton(onClick = { showReconnectPrompt = false; connectionChangeDeferred = true }) { Text("Next connection") } }, + ) + if (showAlwaysOnNotice) AlertDialog( + onDismissRequest = { showAlwaysOnNotice = false }, + title = { Text("Profile settings saved") }, + text = { Text("Always-on VPN is active. The current tunnel is unchanged; these settings apply on its next connection, including a failover attempt.") }, + confirmButton = { TextButton(onClick = { showAlwaysOnNotice = false }) { Text("OK") } }, + ) } diff --git a/app/src/main/java/net/megaproxy487/SettingsActivities.kt b/app/src/main/java/net/megaproxy487/SettingsActivities.kt index 76ce15b..f32cafd 100644 --- a/app/src/main/java/net/megaproxy487/SettingsActivities.kt +++ b/app/src/main/java/net/megaproxy487/SettingsActivities.kt @@ -10,6 +10,7 @@ import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.ColumnScope import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.fillMaxSize @@ -21,6 +22,7 @@ import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons import androidx.compose.material.icons.automirrored.filled.ArrowBack import androidx.compose.material3.AlertDialog +import androidx.compose.material3.Checkbox import androidx.compose.material3.DropdownMenu import androidx.compose.material3.DropdownMenuItem import androidx.compose.material3.ExperimentalMaterial3Api @@ -42,6 +44,7 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier +import androidx.compose.ui.Alignment import androidx.compose.ui.unit.dp import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleEventObserver @@ -50,6 +53,8 @@ import net.megaproxy487.data.ConfigStore import net.megaproxy487.model.Ja3Spec import net.megaproxy487.model.TlsProfile import net.megaproxy487.model.SshProfile +import net.megaproxy487.model.SshAuthMode +import net.megaproxy487.model.FailoverMode import net.megaproxy487.vpn.ProxyVpnService import net.megaproxy487.vpn.readAlwaysOnVpnStatus @@ -74,6 +79,13 @@ class TlsFingerprintActivity : ComponentActivity() { } } +class FailoverSettingsActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { MaterialTheme { FailoverSettingsScreen(this) } } + } +} + @OptIn(ExperimentalMaterial3Api::class) @Composable private fun SettingsHomeScreen(activity: Activity) { @@ -99,6 +111,7 @@ private fun SettingsHomeScreen(activity: Activity) { SettingsButton("Always-on VPN") { activity.startActivity(Intent(activity, AlwaysOnSettingsActivity::class.java)) } SettingsButton("Fingerprints") { activity.startActivity(Intent(activity, TlsFingerprintActivity::class.java)) } SettingsButton("Split tunneling") { activity.startActivity(Intent(activity, SplitTunnelActivity::class.java)) } + SettingsButton("Failover") { activity.startActivity(Intent(activity, FailoverSettingsActivity::class.java)) } SettingsButton("Visibility") { activity.startActivity(Intent(activity, VisibilityActivity::class.java)) } if (!batteryOptimizationDisabled) { SettingsButton("Battery settings") { @@ -121,6 +134,71 @@ private fun SettingsHomeScreen(activity: Activity) { } } +@OptIn(ExperimentalMaterial3Api::class) +@Composable +private fun FailoverSettingsScreen(activity: Activity) { + val store = remember { ConfigStore(activity) } + var settings by remember { mutableStateOf(store.globalConnectionSettings()) } + var expanded by remember { mutableStateOf(false) } + var pendingAll by remember { mutableStateOf(false) } + val alwaysOn = remember { ProxyVpnService.isAlwaysOnMode || readAlwaysOnVpnStatus(activity).enabled } + fun save(mode: FailoverMode = settings.failoverMode, ids: List = settings.failoverProfileIds) { + settings = settings.copy(failoverMode = mode, failoverProfileIds = ids) + store.saveGlobalConnectionSettings(settings) + } + SettingsScaffold(activity, "Failover") { + ExposedDropdownMenuBox(expanded, { expanded = it }) { + OutlinedTextField(settings.failoverMode.title, {}, readOnly = true, label = { Text("Failover mode") }, trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(expanded) }, modifier = Modifier.menuAnchor().fillMaxWidth()) + DropdownMenu(expanded, { expanded = false }) { + FailoverMode.entries.forEach { mode -> DropdownMenuItem(text = { Text(mode.title) }, onClick = { + expanded = false + if (mode == FailoverMode.ALL) pendingAll = true else save(mode = mode) + }) } + } + } + Text("Failover is only triggered after repeated timeout, reset or silent-drop signals. Authentication, host-key, certificate and configuration errors never trigger it.", style = MaterialTheme.typography.bodySmall) + if (settings.failoverMode == FailoverMode.SELECTED) { + Text("Fallback profiles", style = MaterialTheme.typography.titleMedium) + Text("Profiles are tried in the same order as the Profiles screen.", style = MaterialTheme.typography.bodySmall) + store.sortedProfiles().forEach { profile -> + Row(Modifier.fillMaxWidth(), verticalAlignment = Alignment.CenterVertically) { + Checkbox(profile.id in settings.failoverProfileIds, { checked -> + val ids = if (checked) settings.failoverProfileIds + profile.id else settings.failoverProfileIds - profile.id + save(ids = ids) + }) + Text(profile.displayNameWithFlag) + } + } + val usableFallbacks = store.sortedProfiles().count { it.id in settings.failoverProfileIds } + if (usableFallbacks < 2) { + Text( + "Select at least two profiles. With fewer profiles, failover may have nowhere to switch.", + color = MaterialTheme.colorScheme.error, + style = MaterialTheme.typography.bodySmall, + ) + } + } + if (settings.failoverMode != FailoverMode.DISABLED) { + Text("Warning: switching profiles may change the apparent country and public exit IP.", color = MaterialTheme.colorScheme.error, style = MaterialTheme.typography.bodySmall) + if (alwaysOn) Text( + if (settings.failoverMode == FailoverMode.ALL) + "Always-on VPN remains active during automatic switching. Every switch is reported in the persistent notification and on the main screen." + else + "Always-on VPN remains active during automatic switching. The persistent notification and the main screen show the profile actually in use.", + color = MaterialTheme.colorScheme.tertiary, + style = MaterialTheme.typography.bodySmall, + ) + } + } + if (pendingAll) AlertDialog( + onDismissRequest = { pendingAll = false }, + title = { Text("Enable global failover?") }, + text = { Text("MegaProxy will automatically try any configured profile when blocking is suspected. This can change your location and public exit IP. Individual switches will not require confirmation.") }, + confirmButton = { TextButton(onClick = { pendingAll = false; save(mode = FailoverMode.ALL) }) { Text("Enable") } }, + dismissButton = { TextButton(onClick = { pendingAll = false }) { Text("Cancel") } }, + ) +} + @OptIn(ExperimentalMaterial3Api::class) @Composable private fun AlwaysOnSettingsScreen(activity: Activity) { @@ -169,27 +247,31 @@ private fun TlsFingerprintScreen(activity: Activity) { var settings by remember { mutableStateOf(store.globalConnectionSettings()) } var expanded by remember { mutableStateOf(false) } var sshExpanded by remember { mutableStateOf(false) } + var sshAuthExpanded by remember { mutableStateOf(false) } var error by remember { mutableStateOf(null) } var showReconnectPrompt by remember { mutableStateOf(false) } var showAlwaysOnNotice by remember { mutableStateOf(false) } var deferred by remember { mutableStateOf(false) } + fun saveSettings(updated: net.megaproxy487.model.GlobalConnectionSettings) { + settings = updated + store.saveGlobalConnectionSettings(settings) + if (ProxyVpnService.isRunning && !deferred) { + if (ProxyVpnService.isAlwaysOnMode || readAlwaysOnVpnStatus(activity).enabled) { + deferred = true; showAlwaysOnNotice = true + } else showReconnectPrompt = true + } + } + fun save( profile: TlsProfile = settings.tlsProfile, customJa3: String = settings.customJa3, sshProfile: SshProfile = settings.sshProfile, ) { - settings = settings.copy(tlsProfile = profile, customJa3 = customJa3, sshProfile = sshProfile) - store.saveGlobalConnectionSettings(settings) + saveSettings(settings.copy(tlsProfile = profile, customJa3 = customJa3, sshProfile = sshProfile)) error = if (profile == TlsProfile.CUSTOM && Ja3Spec.parse(customJa3) == null) { "JA3 must contain five fields: version,ciphers,extensions,groups,points" } else null - if (ProxyVpnService.isRunning && !deferred) { - if (ProxyVpnService.isAlwaysOnMode || readAlwaysOnVpnStatus(activity).enabled) { - deferred = true - showAlwaysOnNotice = true - } else showReconnectPrompt = true - } } SettingsScaffold(activity, "Fingerprints") { @@ -235,6 +317,32 @@ private fun TlsFingerprintScreen(activity: Activity) { } } } + ExposedDropdownMenuBox(sshAuthExpanded, { sshAuthExpanded = it }) { + OutlinedTextField( + settings.sshAuthMode.title, {}, readOnly = true, + label = { Text("SSH authentication") }, + trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(sshAuthExpanded) }, + modifier = Modifier.menuAnchor().fillMaxWidth(), + ) + DropdownMenu(sshAuthExpanded, { sshAuthExpanded = false }) { + SshAuthMode.entries.forEach { mode -> DropdownMenuItem(text = { Text(mode.title) }, onClick = { + saveSettings(settings.copy(sshAuthMode = mode)) + sshAuthExpanded = false + }) } + } + } + OutlinedTextField(settings.sshKeepaliveSeconds.toString(), { value -> value.toIntOrNull()?.let { + saveSettings(settings.copy(sshKeepaliveSeconds = it)) + } }, label = { Text("SSH keepalive, seconds (0 = disabled)") }, singleLine = true, modifier = Modifier.fillMaxWidth()) + OutlinedTextField(settings.sshMaxChannels.toString(), { value -> value.toIntOrNull()?.let { + saveSettings(settings.copy(sshMaxChannels = it)) + } }, label = { Text("Maximum parallel SSH channels") }, singleLine = true, modifier = Modifier.fillMaxWidth()) + OutlinedTextField(settings.sshRotationMinutes.toString(), { value -> value.toIntOrNull()?.let { + saveSettings(settings.copy(sshRotationMinutes = it)) + } }, label = { Text("Rotate SSH session after minutes (0 = disabled)") }, singleLine = true, modifier = Modifier.fillMaxWidth()) + OutlinedTextField(settings.sshRotationMb.toString(), { value -> value.toIntOrNull()?.let { + saveSettings(settings.copy(sshRotationMb = it)) + } }, label = { Text("Rotate SSH session after MB (0 = disabled)") }, singleLine = true, modifier = Modifier.fillMaxWidth()) Text("The SSH profile controls the client banner and preferred KEX, cipher and MAC ordering.", style = MaterialTheme.typography.bodySmall) Text("Changes are saved automatically and apply to every profile.", style = MaterialTheme.typography.bodySmall) } diff --git a/app/src/main/java/net/megaproxy487/SplitTunnelActivity.kt b/app/src/main/java/net/megaproxy487/SplitTunnelActivity.kt index 90a5876..d20a785 100644 --- a/app/src/main/java/net/megaproxy487/SplitTunnelActivity.kt +++ b/app/src/main/java/net/megaproxy487/SplitTunnelActivity.kt @@ -128,15 +128,6 @@ private fun SplitTunnelScreen(activity: SplitTunnelActivity) { } } item { Text("UDP and QUIC are blocked; DNS uses the profile's configured DoH endpoint.", style = MaterialTheme.typography.bodySmall) } - item { - Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) { - Column(Modifier.weight(1f)) { - Text("Enable IPv6 destinations") - Text("Disabled by default for proxies that cannot CONNECT to IPv6 addresses.", style = MaterialTheme.typography.bodySmall) - } - Checkbox(settings.allowIpv6, { updateSettings(settings.copy(allowIpv6 = it)) }) - } - } item { Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) { Column(Modifier.weight(1f)) { diff --git a/app/src/main/java/net/megaproxy487/SshHostKeyActivity.kt b/app/src/main/java/net/megaproxy487/SshHostKeyActivity.kt index e433804..78a0000 100644 --- a/app/src/main/java/net/megaproxy487/SshHostKeyActivity.kt +++ b/app/src/main/java/net/megaproxy487/SshHostKeyActivity.kt @@ -19,10 +19,16 @@ class SshHostKeyActivity : ComponentActivity() { val fingerprint = intent.getStringExtra(EXTRA_FINGERPRINT).orEmpty() val changed = intent.getBooleanExtra(EXTRA_CHANGED, false) val testOnly = intent.getBooleanExtra(EXTRA_TEST_ONLY, false) + fun reject() { + // A normal/Always-on connection remains paused with an actionable persistent + // notification. Tests are disposable and may release their temporary service. + if (testOnly) ProxyVpnService.dismissHostKeyPrompt(this) + finish() + } setContent { MaterialTheme { AlertDialog( - onDismissRequest = { finish() }, + onDismissRequest = ::reject, title = { Text(if (changed) "SSH host key changed" else "Trust SSH host key?") }, text = { Text(buildString { if (changed) append("Warning: the previously trusted key for the $hop host has changed. This can indicate a server reinstall or a man-in-the-middle attack. Verify the fingerprint through a trusted channel before replacing it.\n\n") @@ -35,7 +41,7 @@ class SshHostKeyActivity : ComponentActivity() { } finish() }) { Text(if (changed) "Replace trusted key" else "Trust and connect") } }, - dismissButton = { TextButton(onClick = { ProxyVpnService.dismissHostKeyPrompt(this); finish() }) { Text("Cancel") } }, + dismissButton = { TextButton(onClick = ::reject) { Text("Cancel") } }, ) } } diff --git a/app/src/main/java/net/megaproxy487/data/ConfigStore.kt b/app/src/main/java/net/megaproxy487/data/ConfigStore.kt index 8cbae4c..c6d54fa 100644 --- a/app/src/main/java/net/megaproxy487/data/ConfigStore.kt +++ b/app/src/main/java/net/megaproxy487/data/ConfigStore.kt @@ -11,6 +11,8 @@ import net.megaproxy487.model.ProxyConfig import net.megaproxy487.model.ProxyProfile import net.megaproxy487.model.ProxyType import net.megaproxy487.model.SshProfile +import net.megaproxy487.model.SshAuthMode +import net.megaproxy487.model.FailoverMode import net.megaproxy487.model.TlsProfile import net.megaproxy487.model.GlobalConnectionSettings import org.json.JSONArray @@ -75,7 +77,10 @@ class ConfigStore(context: Context) { } fun setAlwaysOnProfile(id: String) { - if (profile(id) != null) prefs.edit().putString(ALWAYS_ON_PROFILE_ID, id).apply() + if (profile(id) != null) prefs.edit() + .putString(ALWAYS_ON_PROFILE_ID, id) + .putBoolean(FAILOVER_ACTIVE, false) + .apply() } fun connectionProfile(): ProxyProfile = @@ -87,11 +92,22 @@ class ConfigStore(context: Context) { if (profile(id) != null) prefs.edit().putString(CONNECTION_PROFILE_ID, id).apply() } + fun failoverNotice(): String? = prefs.getString(FAILOVER_NOTICE, null) + + fun isFailoverActive(): Boolean = prefs.getBoolean(FAILOVER_ACTIVE, false) + + fun setFailoverState(active: Boolean, notice: String?) { + prefs.edit().putBoolean(FAILOVER_ACTIVE, active).apply { + if (notice == null) remove(FAILOVER_NOTICE) else putString(FAILOVER_NOTICE, notice) + }.apply() + } + @Synchronized fun globalConnectionSettings(): GlobalConnectionSettings { ensureMigrated() val stored = prefs.getString(GLOBAL_CONNECTION_SETTINGS, null) if (stored != null) { + migrateGlobalIpv6ToProfiles(stored) val decoded = decodeGlobalConnectionSettings(stored) if (!JSONObject(stored).has("sshProfile")) { val upgraded = decoded.copy(sshProfile = activeProfile().config.sshProfile) @@ -106,17 +122,30 @@ class ConfigStore(context: Context) { sshProfile = source.sshProfile, customJa3 = source.customJa3, selectedPackages = source.selectedPackages, - allowIpv6 = source.allowIpv6, routeAllApps = source.routeAllApps, bypassLocalNetworks = source.bypassLocalNetworks, ) saveGlobalConnectionSettings(migrated) + prefs.edit().putBoolean(IPV6_PROFILE_MIGRATED, true).apply() return migrated } + @Synchronized + private fun migrateGlobalIpv6ToProfiles(storedSettings: String) { + if (prefs.getBoolean(IPV6_PROFILE_MIGRATED, false)) return + val enabled = runCatching { JSONObject(storedSettings).optBoolean("allowIpv6", false) }.getOrDefault(false) + writeProfiles(profiles().map { it.copy(config = it.config.copy(allowIpv6 = enabled)) }) + prefs.edit().putBoolean(IPV6_PROFILE_MIGRATED, true).apply() + } + fun saveGlobalConnectionSettings(settings: GlobalConnectionSettings) { val normalized = settings.copy( tlsProfile = settings.tlsProfile.takeIf { it.available } ?: TlsProfile.DEFAULT, + sshKeepaliveSeconds = settings.sshKeepaliveSeconds.coerceIn(0, 3600), + sshMaxChannels = settings.sshMaxChannels.coerceIn(1, 256), + sshRotationMinutes = settings.sshRotationMinutes.coerceIn(0, 1440), + sshRotationMb = settings.sshRotationMb.coerceIn(0, 10240), + failoverProfileIds = settings.failoverProfileIds.distinct(), ) prefs.edit().putString(GLOBAL_CONNECTION_SETTINGS, encodeGlobalConnectionSettings(normalized)).apply() } @@ -382,9 +411,15 @@ class ConfigStore(context: Context) { private fun encodeGlobalConnectionSettings(settings: GlobalConnectionSettings) = JSONObject().apply { put("fingerprint", settings.tlsProfile.name) put("sshProfile", settings.sshProfile.name) + put("sshAuthMode", settings.sshAuthMode.name) + put("sshKeepaliveSeconds", settings.sshKeepaliveSeconds) + put("sshMaxChannels", settings.sshMaxChannels) + put("sshRotationMinutes", settings.sshRotationMinutes) + put("sshRotationMb", settings.sshRotationMb) + put("failoverMode", settings.failoverMode.name) + put("failoverProfileIds", JSONArray(settings.failoverProfileIds)) put("customJa3", settings.customJa3.trim()) put("packages", JSONArray(settings.selectedPackages.sorted())) - put("allowIpv6", settings.allowIpv6) put("routeAllApps", settings.routeAllApps) put("bypassLocalNetworks", settings.bypassLocalNetworks) }.toString() @@ -395,11 +430,19 @@ class ConfigStore(context: Context) { GlobalConnectionSettings( tlsProfile = parsedTls.takeIf { it.available } ?: TlsProfile.DEFAULT, sshProfile = enumValue(item.optString("sshProfile"), SshProfile.DEFAULT), + sshAuthMode = enumValue(item.optString("sshAuthMode"), SshAuthMode.AUTO), + sshKeepaliveSeconds = item.optInt("sshKeepaliveSeconds", 30).coerceIn(0, 3600), + sshMaxChannels = item.optInt("sshMaxChannels", 32).coerceIn(1, 256), + sshRotationMinutes = item.optInt("sshRotationMinutes", 0).coerceIn(0, 1440), + sshRotationMb = item.optInt("sshRotationMb", 0).coerceIn(0, 10240), + failoverMode = enumValue(item.optString("failoverMode"), FailoverMode.DISABLED), + failoverProfileIds = item.optJSONArray("failoverProfileIds")?.let { array -> + (0 until array.length()).mapNotNull { array.optString(it).takeIf(String::isNotBlank) } + }.orEmpty(), customJa3 = item.optString("customJa3"), selectedPackages = item.optJSONArray("packages")?.let { array -> (0 until array.length()).mapNotNull { array.optString(it).takeIf(String::isNotBlank) }.toSet() }.orEmpty(), - allowIpv6 = item.optBoolean("allowIpv6", false), routeAllApps = item.optBoolean("routeAllApps", true), bypassLocalNetworks = item.optBoolean("bypassLocalNetworks", true), ) @@ -438,10 +481,13 @@ class ConfigStore(context: Context) { const val PROFILES = "profiles_v2" const val ACTIVE_PROFILE_ID = "active_profile_id" const val ALWAYS_ON_PROFILE_ID = "always_on_profile_id" + private const val FAILOVER_ACTIVE = "failover_active" + private const val FAILOVER_NOTICE = "failover_notice" const val CONNECTION_PROFILE_ID = "connection_profile_id" const val FLAG_COLOR_VERSION = "flag_color_version" const val CURRENT_FLAG_COLOR_VERSION = 1 const val DIAGNOSTIC_LOG_LIMIT_MB = "diagnostic_log_limit_mb" const val GLOBAL_CONNECTION_SETTINGS = "global_connection_settings_v1" + private const val IPV6_PROFILE_MIGRATED = "ipv6_profile_migrated_v1" } } diff --git a/app/src/main/java/net/megaproxy487/data/ConfigTransfer.kt b/app/src/main/java/net/megaproxy487/data/ConfigTransfer.kt index 8bd0e32..9e66ad8 100644 --- a/app/src/main/java/net/megaproxy487/data/ConfigTransfer.kt +++ b/app/src/main/java/net/megaproxy487/data/ConfigTransfer.kt @@ -5,6 +5,8 @@ import net.megaproxy487.model.ProxyConfig import net.megaproxy487.model.ProxyProfile import net.megaproxy487.model.ProxyType import net.megaproxy487.model.SshProfile +import net.megaproxy487.model.SshAuthMode +import net.megaproxy487.model.FailoverMode import net.megaproxy487.model.TlsProfile import net.megaproxy487.model.GlobalConnectionSettings import org.json.JSONArray @@ -27,7 +29,7 @@ data class PortableConfiguration( ) object ConfigTransfer { - const val SCHEMA_VERSION = 4 + const val SCHEMA_VERSION = 6 fun exportProxyList(profiles: List, includePasswords: Boolean): String = profiles.filter { it.config.type == ProxyType.HTTPS }.joinToString("\n", postfix = "\n") { profile -> @@ -58,11 +60,21 @@ object ConfigTransfer { put("fingerprint", global.tlsProfile.name) put("customJa3", global.customJa3.trim()) }) - put("ssh", JSONObject().apply { put("fingerprint", global.sshProfile.name) }) + put("ssh", JSONObject().apply { + put("fingerprint", global.sshProfile.name) + put("authMode", global.sshAuthMode.name) + put("keepaliveSeconds", global.sshKeepaliveSeconds) + put("maxChannels", global.sshMaxChannels) + put("rotationMinutes", global.sshRotationMinutes) + put("rotationMb", global.sshRotationMb) + }) + put("failover", JSONObject().apply { + put("mode", global.failoverMode.name) + put("profileIds", JSONArray(global.failoverProfileIds)) + }) put("routing", JSONObject().apply { put("routeAllApps", global.routeAllApps) put("selectedPackages", JSONArray(global.selectedPackages.sorted())) - put("allowIpv6", global.allowIpv6) put("bypassLocalNetworks", global.bypassLocalNetworks) }) put("profiles", JSONArray().apply { @@ -79,8 +91,12 @@ object ConfigTransfer { val decoded = (0 until array.length()).map { index -> runCatching { decodeProfile(array.getJSONObject(index), index) } } - val profiles = decoded.mapNotNull(Result::getOrNull) - require(profiles.isNotEmpty()) { "The configuration contains no usable profiles" } + val decodedProfiles = decoded.mapNotNull(Result::getOrNull) + require(decodedProfiles.isNotEmpty()) { "The configuration contains no usable profiles" } + val legacyIpv6 = root.optJSONObject("routing")?.optBoolean("allowIpv6", false) ?: false + val profiles = if (version < 6) decodedProfiles.map { + it.copy(config = it.config.copy(allowIpv6 = legacyIpv6)) + } else decodedProfiles return PortableConfiguration( profiles = profiles, activeProfileId = root.optString("activeProfileId").ifBlank { null }, @@ -99,6 +115,7 @@ object ConfigTransfer { val tls = root.optJSONObject("tls") ?: JSONObject() val routing = root.optJSONObject("routing") ?: JSONObject() val ssh = root.optJSONObject("ssh") ?: JSONObject() + val failover = root.optJSONObject("failover") ?: JSONObject() val parsedTls = enumValue(tls.optString("fingerprint"), TlsProfile.DEFAULT) val packages = routing.optJSONArray("selectedPackages")?.let { array -> (0 until array.length()).mapNotNull { index -> @@ -108,9 +125,17 @@ object ConfigTransfer { return GlobalConnectionSettings( tlsProfile = parsedTls.takeIf { it.available } ?: TlsProfile.DEFAULT, sshProfile = enumValue(ssh.optString("fingerprint"), SshProfile.DEFAULT), + sshAuthMode = enumValue(ssh.optString("authMode"), SshAuthMode.AUTO), + sshKeepaliveSeconds = ssh.optInt("keepaliveSeconds", 30).coerceIn(0, 3600), + sshMaxChannels = ssh.optInt("maxChannels", 32).coerceIn(1, 256), + sshRotationMinutes = ssh.optInt("rotationMinutes", 0).coerceIn(0, 1440), + sshRotationMb = ssh.optInt("rotationMb", 0).coerceIn(0, 10240), + failoverMode = enumValue(failover.optString("mode"), FailoverMode.DISABLED), + failoverProfileIds = failover.optJSONArray("profileIds")?.let { array -> + (0 until array.length()).mapNotNull { array.optString(it).takeIf(String::isNotBlank) } + }.orEmpty(), customJa3 = tls.optString("customJa3"), selectedPackages = packages, - allowIpv6 = routing.optBoolean("allowIpv6", false), routeAllApps = routing.optBoolean("routeAllApps", true), bypassLocalNetworks = routing.optBoolean("bypassLocalNetworks", true), ) diff --git a/app/src/main/java/net/megaproxy487/model/ProxyConfig.kt b/app/src/main/java/net/megaproxy487/model/ProxyConfig.kt index 9c61a7e..d45f08b 100644 --- a/app/src/main/java/net/megaproxy487/model/ProxyConfig.kt +++ b/app/src/main/java/net/megaproxy487/model/ProxyConfig.kt @@ -29,6 +29,11 @@ data class ProxyConfig( val jumpAcceptAnyHostKey: Boolean = false, val sameJumpAuthentication: Boolean = true, val resolvedJumpIp: String = "", + val sshAuthMode: SshAuthMode = SshAuthMode.AUTO, + val sshKeepaliveSeconds: Int = 30, + val sshMaxChannels: Int = 32, + val sshRotationMinutes: Int = 0, + val sshRotationMb: Int = 0, ) { fun connectionValidationError(): String? = when { host.isBlank() -> if (type == ProxyType.HTTPS) "Enter the proxy hostname" else "Enter the SSH hostname" @@ -65,6 +70,18 @@ enum class SshProfile(val title: String) { TERMIUS_ANDROID("Termius Android"), } +enum class SshAuthMode(val title: String) { + AUTO("Auto: key, then password"), + PASSWORD_ONLY("Password only"), + KEY_ONLY("Private key only"), +} + +enum class FailoverMode(val title: String) { + DISABLED("Disabled"), + SELECTED("Selected profiles"), + ALL("All profiles"), +} + data class ProxyProfile( val id: String, val name: String = "", @@ -118,9 +135,15 @@ enum class TlsProfile(val title: String, val available: Boolean = true) { data class GlobalConnectionSettings( val tlsProfile: TlsProfile = TlsProfile.DEFAULT, val sshProfile: SshProfile = SshProfile.DEFAULT, + val sshAuthMode: SshAuthMode = SshAuthMode.AUTO, + val sshKeepaliveSeconds: Int = 30, + val sshMaxChannels: Int = 32, + val sshRotationMinutes: Int = 0, + val sshRotationMb: Int = 0, + val failoverMode: FailoverMode = FailoverMode.DISABLED, + val failoverProfileIds: List = emptyList(), val customJa3: String = "", val selectedPackages: Set = emptySet(), - val allowIpv6: Boolean = false, val routeAllApps: Boolean = true, val bypassLocalNetworks: Boolean = true, ) { @@ -128,8 +151,12 @@ data class GlobalConnectionSettings( profile = if (tlsProfile == TlsProfile.DEFAULT) TlsProfile.CHROME_ANDROID else tlsProfile, customJa3 = customJa3, sshProfile = sshProfile, + sshAuthMode = sshAuthMode, + sshKeepaliveSeconds = sshKeepaliveSeconds, + sshMaxChannels = sshMaxChannels, + sshRotationMinutes = sshRotationMinutes, + sshRotationMb = sshRotationMb, selectedPackages = selectedPackages, - allowIpv6 = allowIpv6, routeAllApps = routeAllApps, bypassLocalNetworks = bypassLocalNetworks, ) diff --git a/app/src/main/java/net/megaproxy487/vpn/BlockingDetection.kt b/app/src/main/java/net/megaproxy487/vpn/BlockingDetection.kt new file mode 100644 index 0000000..86943c5 --- /dev/null +++ b/app/src/main/java/net/megaproxy487/vpn/BlockingDetection.kt @@ -0,0 +1,17 @@ +package net.megaproxy487.vpn + +enum class BlockingSignal { TCP_TIMEOUT, HANDSHAKE_TIMEOUT, CONNECTION_RESET, SILENT_DROP } + +object BlockingDetection { + fun classify(message: String): BlockingSignal? { + val value = message.lowercase() + if (listOf("authenticate", "credentials", "host_key", "certificate", "x509", "invalid ", "refused").any(value::contains)) return null + return when { + "handshake" in value && "timeout" in value -> BlockingSignal.HANDSHAKE_TIMEOUT + "reset" in value || "broken pipe" in value -> BlockingSignal.CONNECTION_RESET + "i/o timeout" in value || "timed out" in value -> BlockingSignal.TCP_TIMEOUT + "unexpected eof" in value || "silent" in value -> BlockingSignal.SILENT_DROP + else -> null + } + } +} diff --git a/app/src/main/java/net/megaproxy487/vpn/ProxyCore.kt b/app/src/main/java/net/megaproxy487/vpn/ProxyCore.kt index 35f6ea5..9894ace 100644 --- a/app/src/main/java/net/megaproxy487/vpn/ProxyCore.kt +++ b/app/src/main/java/net/megaproxy487/vpn/ProxyCore.kt @@ -64,6 +64,11 @@ class NativeProxyCore( .put("jumpTrustedHostKey", config.jumpTrustedHostKey) .put("jumpAcceptAnyHostKey", config.jumpAcceptAnyHostKey) .put("sameJumpAuthentication", config.sameJumpAuthentication) + .put("sshAuthMode", config.sshAuthMode.name) + .put("sshKeepaliveSeconds", config.sshKeepaliveSeconds) + .put("sshMaxChannels", config.sshMaxChannels) + .put("sshRotationMinutes", config.sshRotationMinutes) + .put("sshRotationMb", config.sshRotationMb) .put("allowInvalidProxyCertificate", config.allowInvalidProxyCertificate) .put("profile", config.profile.name) .put("customJa3", config.customJa3.trim()) @@ -101,7 +106,7 @@ class NativeProxyCore( val reporter = callback(reporterType, "report") { val message = it!![0] as String diagnostics(message) - if ("SSH_HOST_KEY_" in message) status(message) + if ("SSH_HOST_KEY_" in message || "dpi_hint=possible" in message) status(message) null } detachedFd = ParcelFileDescriptor.fromFd(tunFd).detachFd() diff --git a/app/src/main/java/net/megaproxy487/vpn/ProxyVpnService.kt b/app/src/main/java/net/megaproxy487/vpn/ProxyVpnService.kt index 6e743bf..c2ca536 100644 --- a/app/src/main/java/net/megaproxy487/vpn/ProxyVpnService.kt +++ b/app/src/main/java/net/megaproxy487/vpn/ProxyVpnService.kt @@ -6,6 +6,8 @@ import android.app.PendingIntent import android.content.Context import android.content.Intent import android.net.VpnService +import android.net.ConnectivityManager +import android.net.NetworkCapabilities import android.os.Build import android.os.ParcelFileDescriptor import android.os.Handler @@ -15,6 +17,7 @@ import androidx.core.content.ContextCompat import net.megaproxy487.MainActivity import net.megaproxy487.SshHostKeyActivity import net.megaproxy487.data.ConfigStore +import net.megaproxy487.model.FailoverMode import java.util.concurrent.atomic.AtomicBoolean import kotlin.concurrent.thread @@ -24,6 +27,10 @@ class ProxyVpnService : VpnService() { private var activeConfig: net.megaproxy487.model.ProxyConfig? = null private var tunnelTestOnly = false private var hostKeyPrompt: PendingIntent? = null + private var failoverNotice: String? = null + private var connectionBlockedForAction = false + private val probableFailureCounts = mutableMapOf() + private val attemptedFailoverProfiles = mutableSetOf() private val monitorHandler = Handler(Looper.getMainLooper()) private val monitor = object : Runnable { override fun run() { @@ -31,9 +38,9 @@ class ProxyVpnService : VpnService() { if (desired) { getSystemService(NotificationManager::class.java).notify( NOTIFICATION_ID, - notification(if (isRunning) "Connected" else "Reconnecting…"), + notification(failoverNotice ?: VpnRuntimeState.networkWarning.value ?: if (isRunning) "Connected" else "Reconnecting…"), ) - if (tunnel == null && hostKeyPrompt == null && !testRunning.get() && startRunning.compareAndSet(false, true)) { + if (tunnel == null && hostKeyPrompt == null && !connectionBlockedForAction && !testRunning.get() && startRunning.compareAndSet(false, true)) { VpnRuntimeState.update(VpnConnectionState.CONNECTING) thread(name = "megaproxy-vpn-recovery") { try { @@ -50,6 +57,8 @@ class ProxyVpnService : VpnService() { override fun onCreate() { super.onCreate() + failoverNotice = ConfigStore(this).failoverNotice() + failoverNotice?.let(VpnRuntimeState::updateNetworkWarning) createChannel() monitorHandler.post(monitor) } @@ -62,12 +71,24 @@ class ProxyVpnService : VpnService() { isLockdownMode = isLockdownEnabled } val store = ConfigStore(this) + // Android may call the sticky service again with a null intent. Do not replace a + // failover profile on every callback; only a fresh system Always-on start selects + // the configured base profile. if (isAlwaysOnMode && intent?.action != ACTION_START_MANUAL) { store.setConnectionDesired(true) - store.setConnectionProfile(store.alwaysOnProfileId()) + if (intent?.action == SERVICE_INTERFACE && !store.isFailoverActive()) { + store.setConnectionProfile(store.alwaysOnProfileId()) + store.setFailoverState(false, null) + failoverNotice = null + VpnRuntimeState.updateNetworkWarning(null) + } } if (intent?.action == ACTION_START_MANUAL) { store.setConnectionProfile(store.activeProfileId()) + probableFailureCounts.clear(); attemptedFailoverProfiles.clear(); failoverNotice = null + connectionBlockedForAction = false + store.setFailoverState(false, null) + VpnRuntimeState.updateNetworkWarning(null) } VpnRuntimeState.updateSystem(isAlwaysOnMode, isLockdownMode, store.connectionProfile().id) if (intent?.action == ACTION_REFRESH_STATUS) { @@ -84,7 +105,11 @@ class ProxyVpnService : VpnService() { return START_NOT_STICKY } if (intent?.action == ACTION_RECONNECT) { - hostKeyPrompt = null + hostKeyPrompt = null; failoverNotice = null + connectionBlockedForAction = false + store.setFailoverState(false, null) + probableFailureCounts.clear(); attemptedFailoverProfiles.clear() + VpnRuntimeState.updateNetworkWarning(null) DiagnosticLog.add("event=vpn_reconnect reason=routing_settings_changed") startForeground(NOTIFICATION_ID, notification("Reconnecting…")) stopTunnel(removeForeground = false) @@ -167,6 +192,7 @@ class ProxyVpnService : VpnService() { val storedConfig = suppliedConfig ?: ConfigStore(this).globalConnectionSettings().applyTo(storedProfile.config) val promptProfileId = if (testOnly) ConfigStore(this).activeProfileId() else storedProfile.id val diagnostics = if (testOnly) TestDiagnosticLog::add else DiagnosticLog::add + var failureDetail = "" diagnostics( if (testOnly) "event=vpn_start mode=test" else if (storedConfig.routeAllApps) "event=vpn_start mode=global" @@ -175,11 +201,21 @@ class ProxyVpnService : VpnService() { val validationError = if (testOnly) storedConfig.connectionValidationError() else storedConfig.validationError() validationError?.let { if (testOnly) TestDiagnosticLog.fail(it) else { - ConfigStore(this).setConnectionDesired(false) - VpnRuntimeState.update(VpnConnectionState.DISCONNECTED) + val notice = if (isAlwaysOnMode) + "VPN configuration requires attention. Fix it in MegaProxy, then reconnect from Android Always-on VPN settings." + else "VPN configuration requires attention. Open MegaProxy settings." + VpnRuntimeState.updateNetworkWarning(notice) + if (isAlwaysOnMode) { + connectionBlockedForAction = true + startForeground(NOTIFICATION_ID, notification(notice)) + VpnRuntimeState.update(VpnConnectionState.CONNECTING) + } else { + ConfigStore(this).setConnectionDesired(false) + VpnRuntimeState.update(VpnConnectionState.DISCONNECTED) + stopForeground(STOP_FOREGROUND_REMOVE) + stopSelf() + } } - stopForeground(STOP_FOREGROUND_REMOVE) - stopSelf() return false } val builder = Builder() @@ -207,26 +243,30 @@ class ProxyVpnService : VpnService() { diagnostics("TUN established with IPv4, IPv6 and intercepted DNS") val proxyCore = NativeProxyCore(this, diagnostics) val proxyIp = proxyCore.resolveProxy(storedConfig.host) { message -> + failureDetail = message getSystemService(NotificationManager::class.java).notify(NOTIFICATION_ID, notification(message)) } ?: run { tunnel?.close() tunnel = null - handleStartFailure(testOnly, "Proxy bootstrap DNS failed") + handleStartFailure(testOnly, "Proxy bootstrap DNS failed", failureDetail, promptProfileId) return false } val jumpIp = if (storedConfig.type == net.megaproxy487.model.ProxyType.SSH_JUMP) { proxyCore.resolveProxy(storedConfig.jumpHost) { message -> + failureDetail = message getSystemService(NotificationManager::class.java).notify(NOTIFICATION_ID, notification(message)) } ?: run { tunnel?.close(); tunnel = null - handleStartFailure(testOnly, "Jump host bootstrap DNS failed") + handleStartFailure(testOnly, "Jump host bootstrap DNS failed", failureDetail, promptProfileId) return false } } else "" val config = storedConfig.copy(resolvedProxyIp = proxyIp, resolvedJumpIp = jumpIp) core = proxyCore.also { val started = it.start(tunnel!!.fd, config) { message -> + failureDetail = message configureHostKeyPrompt(message, promptProfileId, testOnly) + if (!testOnly && "dpi_hint=possible" in message) monitorHandler.post { handleRuntimeDiagnostic(promptProfileId, message) } getSystemService(NotificationManager::class.java).notify(NOTIFICATION_ID, notification(message)) } if (!started) { @@ -234,17 +274,21 @@ class ProxyVpnService : VpnService() { tunnel = null core = null isRunning = false - handleStartFailure(testOnly, "Native proxy core failed to start") + handleStartFailure(testOnly, "Native proxy core failed to start", failureDetail, promptProfileId) return false } } isRunning = true + probableFailureCounts.remove(promptProfileId) + if (failoverNotice == null) VpnRuntimeState.updateNetworkWarning(null) + else VpnRuntimeState.updateNetworkWarning(failoverNotice) + VpnRuntimeState.updateSystem(isAlwaysOnMode, isLockdownMode, promptProfileId) VpnRuntimeState.update(VpnConnectionState.CONNECTED) activeConfig = config return true } - private fun handleStartFailure(testOnly: Boolean, message: String) { + private fun handleStartFailure(testOnly: Boolean, message: String, detail: String = message, profileId: String = "") { if (testOnly) { TestDiagnosticLog.fail(message) if (hostKeyPrompt != null) { @@ -256,15 +300,92 @@ class ProxyVpnService : VpnService() { stopSelf() } } else { + val signal = BlockingDetection.classify(detail) + if (signal != null && profileId.isNotEmpty()) { + val count = (probableFailureCounts[profileId] ?: 0) + 1 + probableFailureCounts[profileId] = count + DiagnosticLog.add("event=blocking_detection result=suspected signal=${signal.name.lowercase()} consecutive=$count network=${networkKind()} profile_type=${ConfigStore(this).profile(profileId)?.config?.type?.name?.lowercase() ?: "unknown"}") + if (count >= 2) handleProbableBlocking(profileId, signal) + } + if (signal == null && isAlwaysOnMode && requiresUserAction(detail)) { + connectionBlockedForAction = true + val notice = "VPN connection requires attention. Check authentication, certificate, or SSH host-key settings, then reconnect Always-on VPN." + VpnRuntimeState.updateNetworkWarning(notice) + getSystemService(NotificationManager::class.java).notify(NOTIFICATION_ID, notification(notice)) + return + } DiagnosticLog.add("$message; retrying") VpnRuntimeState.update(VpnConnectionState.CONNECTING) getSystemService(NotificationManager::class.java).notify( NOTIFICATION_ID, - notification("Connection failed; retrying…"), + notification(VpnRuntimeState.networkWarning.value ?: "Connection failed; retrying…"), ) } } + private fun requiresUserAction(detail: String): Boolean { + val value = detail.lowercase() + return listOf( + "authenticate", "authentication", "credentials", "unauthorized", "forbidden", + "certificate", "x509", "host key", "ssh_host_key", "invalid config", + ).any(value::contains) + } + + private fun handleProbableBlocking(profileId: String, signal: BlockingSignal) { + val store = ConfigStore(this) + val settings = store.globalConnectionSettings() + val warning = "Proxy probably blocked (${signal.name.lowercase().replace('_', ' ')})." + VpnRuntimeState.updateNetworkWarning(warning) + if (settings.failoverMode == FailoverMode.DISABLED) { + val notice = "$warning Failover is disabled; the connection may remain unavailable." + VpnRuntimeState.updateNetworkWarning(notice) + getSystemService(NotificationManager::class.java).notify(NOTIFICATION_ID, notification(notice)) + return + } + val ordered = store.sortedProfiles() + attemptedFailoverProfiles += profileId + val currentIndex = ordered.indexOfFirst { it.id == profileId }.coerceAtLeast(0) + val afterCurrent = ordered.drop(currentIndex + 1) + ordered.take(currentIndex + 1) + val candidates = when (settings.failoverMode) { + FailoverMode.SELECTED -> afterCurrent.filter { it.id in settings.failoverProfileIds } + FailoverMode.ALL -> afterCurrent + else -> emptyList() + }.filter { it.id != profileId && it.id !in attemptedFailoverProfiles } + val next = candidates.firstOrNull() ?: run { + failoverNotice = "$warning No eligible fallback profile remains." + store.setFailoverState(false, failoverNotice) + VpnRuntimeState.updateNetworkWarning(failoverNotice) + getSystemService(NotificationManager::class.java).notify(NOTIFICATION_ID, notification(failoverNotice!!)) + return + } + attemptedFailoverProfiles += next.id + store.setConnectionProfile(next.id) + failoverNotice = "Failover active: switched to ${next.displayName}. Location and exit IP may have changed." + store.setFailoverState(true, failoverNotice) + VpnRuntimeState.updateNetworkWarning(failoverNotice) + VpnRuntimeState.updateSystem(isAlwaysOnMode, isLockdownMode, next.id) + if (tunnel != null) stopTunnel(removeForeground = false) + getSystemService(NotificationManager::class.java).notify(NOTIFICATION_ID, notification(failoverNotice!!)) + } + + private fun handleRuntimeDiagnostic(profileId: String, detail: String) { + val signal = BlockingDetection.classify(detail) ?: return + val count = (probableFailureCounts[profileId] ?: 0) + 1 + probableFailureCounts[profileId] = count + if (count >= 2) handleProbableBlocking(profileId, signal) + } + + private fun networkKind(): String { + val manager = getSystemService(ConnectivityManager::class.java) + val capabilities = manager.getNetworkCapabilities(manager.activeNetwork) ?: return "none" + return when { + capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) -> "wifi" + capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) -> "mobile" + capabilities.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET) -> "ethernet" + else -> "other" + } + } + private fun stopTunnel(removeForeground: Boolean = true) { if (tunnel != null) { if (tunnelTestOnly) TestDiagnosticLog.add("Stopping temporary VPN") diff --git a/app/src/main/java/net/megaproxy487/vpn/VpnRuntimeState.kt b/app/src/main/java/net/megaproxy487/vpn/VpnRuntimeState.kt index aa1a239..2a6f4d4 100644 --- a/app/src/main/java/net/megaproxy487/vpn/VpnRuntimeState.kt +++ b/app/src/main/java/net/megaproxy487/vpn/VpnRuntimeState.kt @@ -19,12 +19,19 @@ object VpnRuntimeState { val alwaysOn: State = mutableAlwaysOn val lockdown: State = mutableLockdown val connectionProfileId: State = mutableConnectionProfileId + private val mutableNetworkWarning = mutableStateOf(null) + val networkWarning: State = mutableNetworkWarning fun update(value: VpnConnectionState) { if (Looper.myLooper() == Looper.getMainLooper()) mutableConnection.value = value else mainHandler.post { mutableConnection.value = value } } + fun updateNetworkWarning(value: String?) { + if (Looper.myLooper() == Looper.getMainLooper()) mutableNetworkWarning.value = value + else mainHandler.post { mutableNetworkWarning.value = value } + } + fun updateSystem(alwaysOn: Boolean, lockdown: Boolean, connectionProfileId: String) { val update = { mutableAlwaysOn.value = alwaysOn diff --git a/app/src/test/java/net/megaproxy487/model/ProxyConfigTest.kt b/app/src/test/java/net/megaproxy487/model/ProxyConfigTest.kt index 7af4666..e030249 100644 --- a/app/src/test/java/net/megaproxy487/model/ProxyConfigTest.kt +++ b/app/src/test/java/net/megaproxy487/model/ProxyConfigTest.kt @@ -13,6 +13,13 @@ class ProxyConfigTest { assertEquals(TlsProfile.CHROME_ANDROID, resolved.profile) } + @Test + fun `global settings preserve profile IPv6 capability`() { + val resolved = GlobalConnectionSettings().applyTo(ProxyConfig(allowIpv6 = true)) + + assertEquals(true, resolved.allowIpv6) + } + private val validConnection = ProxyConfig( host = "proxy.example.com", username = "user", diff --git a/app/src/test/java/net/megaproxy487/vpn/BlockingDetectionTest.kt b/app/src/test/java/net/megaproxy487/vpn/BlockingDetectionTest.kt new file mode 100644 index 0000000..a92ee18 --- /dev/null +++ b/app/src/test/java/net/megaproxy487/vpn/BlockingDetectionTest.kt @@ -0,0 +1,18 @@ +package net.megaproxy487.vpn + +import org.junit.Assert.assertEquals +import org.junit.Assert.assertNull +import org.junit.Test + +class BlockingDetectionTest { + @Test fun classifiesTimeoutAndReset() { + assertEquals(BlockingSignal.TCP_TIMEOUT, BlockingDetection.classify("dial tcp: i/o timeout")) + assertEquals(BlockingSignal.CONNECTION_RESET, BlockingDetection.classify("connection reset by peer")) + } + + @Test fun doesNotTreatAuthenticationOrCertificateErrorsAsBlocking() { + assertNull(BlockingDetection.classify("unable to authenticate: i/o timeout")) + assertNull(BlockingDetection.classify("x509 certificate error")) + assertNull(BlockingDetection.classify("connection refused")) + } +} diff --git a/native/mobile/config.go b/native/mobile/config.go index 3ec8d30..81f4ed8 100644 --- a/native/mobile/config.go +++ b/native/mobile/config.go @@ -37,6 +37,11 @@ type config struct { JumpTrustedHostKey string `json:"jumpTrustedHostKey"` JumpAcceptAnyHostKey bool `json:"jumpAcceptAnyHostKey"` SameJumpAuthentication bool `json:"sameJumpAuthentication"` + SSHAuthMode string `json:"sshAuthMode"` + SSHKeepaliveSeconds int `json:"sshKeepaliveSeconds"` + SSHMaxChannels int `json:"sshMaxChannels"` + SSHRotationMinutes int `json:"sshRotationMinutes"` + SSHRotationMB int `json:"sshRotationMb"` } func parseConfig(raw string) (config, error) { @@ -92,6 +97,18 @@ func parseConfig(raw string) (config, error) { if c.Type != "HTTPS" && c.Type != "SSH" && c.Type != "SSH_JUMP" { return c, fmt.Errorf("unsupported proxy type %q", c.Type) } + if c.SSHAuthMode == "" { + c.SSHAuthMode = "AUTO" + } + if c.SSHAuthMode != "AUTO" && c.SSHAuthMode != "PASSWORD_ONLY" && c.SSHAuthMode != "KEY_ONLY" { + return c, errors.New("invalid SSH authentication mode") + } + if c.SSHMaxChannels == 0 { + c.SSHMaxChannels = 32 + } + if c.SSHMaxChannels < 1 || c.SSHMaxChannels > 256 { + return c, errors.New("invalid SSH channel limit") + } return c, nil } diff --git a/native/mobile/dialer.go b/native/mobile/dialer.go index 2ca3e56..68b1ebd 100644 --- a/native/mobile/dialer.go +++ b/native/mobile/dialer.go @@ -10,6 +10,7 @@ import ( "net" "net/http" "sync" + "sync/atomic" "syscall" "time" @@ -23,9 +24,11 @@ var errUDPBlocked = errors.New("UDP is intentionally blocked") type Protector interface{ Protect(fd int) bool } type httpsConnectDialer struct { - config config - protector Protector - reporter Reporter + config config + protector Protector + reporter Reporter + cacheMu sync.Mutex + sessionCache tls.ClientSessionCache } func (d *httpsConnectDialer) DialContext(ctx context.Context, metadata *M.Metadata) (net.Conn, error) { @@ -85,6 +88,7 @@ func (d *httpsConnectDialer) connectTarget(ctx context.Context, target string) ( ServerName: d.config.Host, MinVersion: tls.VersionTLS12, InsecureSkipVerify: d.config.AllowInvalidProxyCertificate, + ClientSessionCache: d.clientSessionCache(), }, hello) if hello == tls.HelloCustom { if err := applyJA3(uconn, d.config.CustomJA3, d.config.Host); err != nil { @@ -137,6 +141,15 @@ func (d *httpsConnectDialer) connectTarget(ctx context.Context, target string) ( return &diagnosticConn{Conn: connection, connectionID: connectionID, reporter: d.reporter}, nil } +func (d *httpsConnectDialer) clientSessionCache() tls.ClientSessionCache { + d.cacheMu.Lock() + defer d.cacheMu.Unlock() + if d.sessionCache == nil { + d.sessionCache = tls.NewLRUClientSessionCache(32) + } + return d.sessionCache +} + func (d *httpsConnectDialer) protectedDialer() *net.Dialer { return &net.Dialer{ Timeout: 15 * time.Second, @@ -186,12 +199,14 @@ type diagnosticConn struct { connectionID uint64 reporter Reporter once sync.Once + transferred atomic.Uint64 } func (c *diagnosticConn) reportError(operation string, err error) { if err != nil && !errors.Is(err, io.EOF) && !errors.Is(err, net.ErrClosed) { c.once.Do(func() { - report(c.reporter, "event=connection conn=%d stage=tunnel_io result=failed operation=%s reason=%s", c.connectionID, operation, errorClass(err)) + reason := errorClass(err) + report(c.reporter, "event=connection conn=%d stage=tunnel_io result=failed operation=%s reason=%s transferred_bytes=%d dpi_hint=%s", c.connectionID, operation, reason, c.transferred.Load(), tlsInterferenceHint(reason)) }) } } @@ -200,6 +215,7 @@ func (c *diagnosticConn) Read(p []byte) (int, error) { n, err := c.Conn.Read(p) if n > 0 { telemetry.downloadBytes.Add(uint64(n)) + c.transferred.Add(uint64(n)) } c.reportError("read", err) return n, err @@ -209,6 +225,7 @@ func (c *diagnosticConn) Write(p []byte) (int, error) { n, err := c.Conn.Write(p) if n > 0 { telemetry.uploadBytes.Add(uint64(n)) + c.transferred.Add(uint64(n)) } c.reportError("write", err) return n, err diff --git a/native/mobile/ssh_dialer.go b/native/mobile/ssh_dialer.go index 943835f..b3321c8 100644 --- a/native/mobile/ssh_dialer.go +++ b/native/mobile/ssh_dialer.go @@ -7,6 +7,7 @@ import ( "net" "strings" "sync" + "sync/atomic" "syscall" "time" @@ -17,12 +18,16 @@ import ( // sshDialer implements OpenSSH-style dynamic forwarding. SOCKS CONNECT semantics // are mapped directly to SSH direct-tcpip channels; SSH has no general UDP relay. type sshDialer struct { - config config - protector Protector - reporter Reporter - mu sync.Mutex - client *ssh.Client - jumpClient *ssh.Client + config config + protector Protector + reporter Reporter + mu sync.Mutex + client *ssh.Client + jumpClient *ssh.Client + channels chan struct{} + sessionCreated time.Time + sessionBytes atomic.Uint64 + keepaliveStop chan struct{} } func (d *sshDialer) DialContext(ctx context.Context, metadata *M.Metadata) (net.Conn, error) { @@ -39,6 +44,26 @@ func (d *sshDialer) connectTarget(ctx context.Context, target string) (net.Conn, if d.config.BypassLocalNetworks && isLocalNetworkTarget(target) { return d.protectedDialer().DialContext(ctx, "tcp", target) } + if d.rotationDue() { + d.invalidate() + } + d.mu.Lock() + if d.channels == nil { + d.channels = make(chan struct{}, d.config.SSHMaxChannels) + } + channels := d.channels + d.mu.Unlock() + select { + case channels <- struct{}{}: + case <-ctx.Done(): + return nil, ctx.Err() + } + release := true + defer func() { + if release { + <-channels + } + }() client, err := d.session(ctx) if err != nil { recordConnectionOutcome(false) @@ -55,7 +80,9 @@ func (d *sshDialer) connectTarget(ctx context.Context, target string) (net.Conn, } recordConnectionOutcome(true) report(d.reporter, "event=connection mode=ssh stage=direct_tcpip result=success elapsed_ms=%d", time.Since(started).Milliseconds()) - return &diagnosticConn{Conn: conn, connectionID: nextDiagnosticConnectionID(), reporter: d.reporter}, nil + release = false + tracked := &sshTrackedConn{Conn: conn, release: func() { <-channels }, bytes: &d.sessionBytes} + return &diagnosticConn{Conn: tracked, connectionID: nextDiagnosticConnectionID(), reporter: d.reporter}, nil } func (d *sshDialer) session(ctx context.Context) (*ssh.Client, error) { @@ -69,7 +96,7 @@ func (d *sshDialer) session(ctx context.Context) (*ssh.Client, error) { if err != nil { return nil, fmt.Errorf("dial jump host: %w", err) } - jump, err := newSSHClient(raw, d.config.JumpHost, d.config.JumpUsername, d.config.JumpPassword, d.config.JumpPrivateKey, d.config.JumpTrustedHostKey, d.config.JumpAcceptAnyHostKey, d.config.SSHProfile, "jump", d.reporter) + jump, err := newSSHClient(raw, d.config.JumpHost, d.config.JumpUsername, d.config.JumpPassword, d.config.JumpPrivateKey, d.config.JumpTrustedHostKey, d.config.JumpAcceptAnyHostKey, d.config.SSHProfile, d.config.SSHAuthMode, "jump", d.reporter) if err != nil { raw.Close() return nil, err @@ -79,7 +106,7 @@ func (d *sshDialer) session(ctx context.Context) (*ssh.Client, error) { jump.Close() return nil, fmt.Errorf("jump host could not reach destination SSH host: %w", err) } - client, err := newSSHClient(nested, d.config.Host, d.config.Username, d.config.Password, d.config.PrivateKey, d.config.TrustedHostKey, d.config.AcceptAnyHostKey, d.config.SSHProfile, "destination", d.reporter) + client, err := newSSHClient(nested, d.config.Host, d.config.Username, d.config.Password, d.config.PrivateKey, d.config.TrustedHostKey, d.config.AcceptAnyHostKey, d.config.SSHProfile, d.config.SSHAuthMode, "destination", d.reporter) if err != nil { nested.Close() jump.Close() @@ -91,7 +118,7 @@ func (d *sshDialer) session(ctx context.Context) (*ssh.Client, error) { if err != nil { return nil, fmt.Errorf("dial SSH host: %w", err) } - client, err := newSSHClient(raw, d.config.Host, d.config.Username, d.config.Password, d.config.PrivateKey, d.config.TrustedHostKey, d.config.AcceptAnyHostKey, d.config.SSHProfile, "destination", d.reporter) + client, err := newSSHClient(raw, d.config.Host, d.config.Username, d.config.Password, d.config.PrivateKey, d.config.TrustedHostKey, d.config.AcceptAnyHostKey, d.config.SSHProfile, d.config.SSHAuthMode, "destination", d.reporter) if err != nil { raw.Close() return nil, err @@ -99,11 +126,14 @@ func (d *sshDialer) session(ctx context.Context) (*ssh.Client, error) { d.client = client } report(d.reporter, "event=ssh_session result=established type=%s profile=%s", d.config.Type, d.config.SSHProfile) + d.sessionCreated = time.Now() + d.sessionBytes.Store(0) + d.startKeepalive() return d.client, nil } -func newSSHClient(conn net.Conn, hostname, username, password, privateKey, trusted string, acceptAny bool, profile, hop string, reporter Reporter) (*ssh.Client, error) { - auth, err := sshAuthMethods(privateKey, password) +func newSSHClient(conn net.Conn, hostname, username, password, privateKey, trusted string, acceptAny bool, profile, authMode, hop string, reporter Reporter) (*ssh.Client, error) { + auth, err := sshAuthMethods(privateKey, password, authMode) if err != nil { return nil, err } @@ -117,9 +147,9 @@ func newSSHClient(conn net.Conn, hostname, username, password, privateKey, trust return ssh.NewClient(cc, channels, requests), nil } -func sshAuthMethods(privateKey, password string) ([]ssh.AuthMethod, error) { +func sshAuthMethods(privateKey, password, authMode string) ([]ssh.AuthMethod, error) { methods := make([]ssh.AuthMethod, 0, 2) - if strings.TrimSpace(privateKey) != "" { + if authMode != "PASSWORD_ONLY" && strings.TrimSpace(privateKey) != "" { signer, err := ssh.ParsePrivateKey([]byte(privateKey)) if err != nil { var passphraseErr *ssh.PassphraseMissingError @@ -130,7 +160,7 @@ func sshAuthMethods(privateKey, password string) ([]ssh.AuthMethod, error) { } methods = append(methods, ssh.PublicKeys(signer)) } - if password != "" { + if authMode != "KEY_ONLY" && password != "" { methods = append(methods, ssh.Password(password)) methods = append(methods, ssh.KeyboardInteractive(func(_ string, _ string, questions []string, _ []bool) ([]string, error) { answers := make([]string, len(questions)) @@ -205,6 +235,68 @@ func (d *sshDialer) invalidate() { d.jumpClient.Close() } d.client, d.jumpClient = nil, nil + if d.keepaliveStop != nil { + close(d.keepaliveStop) + d.keepaliveStop = nil + } } func (d *sshDialer) Close() error { d.invalidate(); return nil } + +func (d *sshDialer) rotationDue() bool { + d.mu.Lock() + defer d.mu.Unlock() + if d.client == nil { + return false + } + if d.channels != nil && len(d.channels) > 0 { + return false + } + if d.config.SSHRotationMinutes > 0 && time.Since(d.sessionCreated) >= time.Duration(d.config.SSHRotationMinutes)*time.Minute { + return true + } + return d.config.SSHRotationMB > 0 && d.sessionBytes.Load() >= uint64(d.config.SSHRotationMB)*1024*1024 +} + +func (d *sshDialer) startKeepalive() { + if d.config.SSHKeepaliveSeconds <= 0 || d.client == nil { + return + } + stop := make(chan struct{}) + d.keepaliveStop = stop + client := d.client + interval := time.Duration(d.config.SSHKeepaliveSeconds) * time.Second + go func() { + ticker := time.NewTicker(interval) + defer ticker.Stop() + for { + select { + case <-ticker.C: + if _, _, err := client.SendRequest("keepalive@openssh.com", true, nil); err != nil { + return + } + case <-stop: + return + } + } + }() +} + +type sshTrackedConn struct { + net.Conn + release func() + bytes *atomic.Uint64 + once sync.Once +} + +func (c *sshTrackedConn) Read(p []byte) (int, error) { + n, err := c.Conn.Read(p) + c.bytes.Add(uint64(n)) + return n, err +} +func (c *sshTrackedConn) Write(p []byte) (int, error) { + n, err := c.Conn.Write(p) + c.bytes.Add(uint64(n)) + return n, err +} +func (c *sshTrackedConn) Close() error { err := c.Conn.Close(); c.once.Do(c.release); return err } diff --git a/native/mobile/ssh_dialer_test.go b/native/mobile/ssh_dialer_test.go index f8d6287..9280d54 100644 --- a/native/mobile/ssh_dialer_test.go +++ b/native/mobile/ssh_dialer_test.go @@ -33,14 +33,14 @@ func TestHostKeyTOFU(t *testing.T) { } func TestSSHAuthRejectsMalformedPrivateKeyInsteadOfFallingBack(t *testing.T) { - _, err := sshAuthMethods("not a private key", "password") + _, err := sshAuthMethods("not a private key", "password", "AUTO") if err == nil || !strings.Contains(err.Error(), "invalid SSH private key") { t.Fatalf("unexpected error: %v", err) } } func TestSSHPasswordIncludesKeyboardInteractiveFallback(t *testing.T) { - methods, err := sshAuthMethods("", "password") + methods, err := sshAuthMethods("", "password", "AUTO") if err != nil { t.Fatal(err) } @@ -48,3 +48,20 @@ func TestSSHPasswordIncludesKeyboardInteractiveFallback(t *testing.T) { t.Fatalf("got %d password auth methods, want password and keyboard-interactive", len(methods)) } } + +func TestSSHAuthenticationModes(t *testing.T) { + methods, err := sshAuthMethods("", "password", "KEY_ONLY") + if err != nil { + t.Fatal(err) + } + if len(methods) != 0 { + t.Fatalf("key-only unexpectedly used password: %d methods", len(methods)) + } + methods, err = sshAuthMethods("", "password", "PASSWORD_ONLY") + if err != nil { + t.Fatal(err) + } + if len(methods) != 2 { + t.Fatalf("password-only got %d methods", len(methods)) + } +} From 5a36981ac30fee6c023d449d548726a02c1e82c0 Mon Sep 17 00:00:00 2001 From: Andrey Prokopyuk Date: Tue, 1 Sep 2026 14:17:44 +0300 Subject: [PATCH 18/41] DNS fix --- native/mobile/dialer.go | 9 ++++++++- native/mobile/doh.go | 15 +++++++++++++-- native/mobile/ssh_dialer.go | 24 ++++++++++++++++++++++-- 3 files changed, 43 insertions(+), 5 deletions(-) diff --git a/native/mobile/dialer.go b/native/mobile/dialer.go index 68b1ebd..c7fd0ef 100644 --- a/native/mobile/dialer.go +++ b/native/mobile/dialer.go @@ -29,6 +29,7 @@ type httpsConnectDialer struct { reporter Reporter cacheMu sync.Mutex sessionCache tls.ClientSessionCache + dohClient *http.Client } func (d *httpsConnectDialer) DialContext(ctx context.Context, metadata *M.Metadata) (net.Conn, error) { @@ -184,7 +185,13 @@ func (d *httpsConnectDialer) DialUDP(metadata *M.Metadata) (net.PacketConn, erro if metadata.DstPort != 53 { return nil, errUDPBlocked } - return newDoHPacketConn(d.config, d.reporter, d.connectTarget, d.config.DoHURL), nil + d.cacheMu.Lock() + if d.dohClient == nil { + d.dohClient = newDoHHTTPClient(d.connectTarget) + } + client := d.dohClient + d.cacheMu.Unlock() + return newDoHPacketConnWithClient(d.config, d.reporter, d.connectTarget, d.config.DoHURL, client), nil } type bufferedConn struct { diff --git a/native/mobile/doh.go b/native/mobile/doh.go index 93c1519..fc1a1d9 100644 --- a/native/mobile/doh.go +++ b/native/mobile/doh.go @@ -46,17 +46,28 @@ type dohPacketConn struct { } func newDoHPacketConn(c config, reporter Reporter, connect func(context.Context, string) (net.Conn, error), endpoint string) *dohPacketConn { + return newDoHPacketConnWithClient(c, reporter, connect, endpoint, newDoHHTTPClient(connect)) +} + +func newDoHHTTPClient(connect func(context.Context, string) (net.Conn, error)) *http.Client { transport := &http.Transport{ Proxy: nil, ForceAttemptHTTP2: true, TLSHandshakeTimeout: 15 * time.Second, + MaxConnsPerHost: 2, + MaxIdleConnsPerHost: 2, + IdleConnTimeout: 90 * time.Second, DialContext: func(ctx context.Context, _, address string) (net.Conn, error) { return connect(ctx, address) }, } + return &http.Client{Transport: transport, Timeout: 20 * time.Second} +} + +func newDoHPacketConnWithClient(c config, reporter Reporter, connect func(context.Context, string) (net.Conn, error), endpoint string, client *http.Client) *dohPacketConn { return &dohPacketConn{ config: c, reporter: reporter, connect: connect, url: endpoint, replies: make(chan dnsReply, 16), closed: make(chan struct{}), - client: &http.Client{Transport: transport, Timeout: 20 * time.Second}, + client: client, } } @@ -168,7 +179,7 @@ func (c *dohPacketConn) ReadFrom(buffer []byte) (int, net.Addr, error) { } func (c *dohPacketConn) Close() error { - c.closeOnce.Do(func() { close(c.closed); c.client.CloseIdleConnections() }) + c.closeOnce.Do(func() { close(c.closed) }) return nil } func (c *dohPacketConn) LocalAddr() net.Addr { return dnsAddr("megaproxy-doh") } diff --git a/native/mobile/ssh_dialer.go b/native/mobile/ssh_dialer.go index b3321c8..e6e1ef3 100644 --- a/native/mobile/ssh_dialer.go +++ b/native/mobile/ssh_dialer.go @@ -5,6 +5,7 @@ import ( "errors" "fmt" "net" + "net/http" "strings" "sync" "sync/atomic" @@ -28,6 +29,7 @@ type sshDialer struct { sessionCreated time.Time sessionBytes atomic.Uint64 keepaliveStop chan struct{} + dohClient *http.Client } func (d *sshDialer) DialContext(ctx context.Context, metadata *M.Metadata) (net.Conn, error) { @@ -222,7 +224,16 @@ func (d *sshDialer) DialUDP(metadata *M.Metadata) (net.PacketConn, error) { if metadata.DstPort != 53 { return nil, errUDPBlocked } - return newDoHPacketConn(d.config, d.reporter, d.connectTarget, d.config.DoHURL), nil + return newDoHPacketConnWithClient(d.config, d.reporter, d.connectTarget, d.config.DoHURL, d.sharedDoHClient()), nil +} + +func (d *sshDialer) sharedDoHClient() *http.Client { + d.mu.Lock() + defer d.mu.Unlock() + if d.dohClient == nil { + d.dohClient = newDoHHTTPClient(d.connectTarget) + } + return d.dohClient } func (d *sshDialer) invalidate() { @@ -241,7 +252,16 @@ func (d *sshDialer) invalidate() { } } -func (d *sshDialer) Close() error { d.invalidate(); return nil } +func (d *sshDialer) Close() error { + d.invalidate() + d.mu.Lock() + if d.dohClient != nil { + d.dohClient.CloseIdleConnections() + d.dohClient = nil + } + d.mu.Unlock() + return nil +} func (d *sshDialer) rotationDue() bool { d.mu.Lock() From 926f978a63b71f2857dbb21bb97e698d556f738c Mon Sep 17 00:00:00 2001 From: Andrey Prokopyuk Date: Tue, 1 Sep 2026 14:23:03 +0300 Subject: [PATCH 19/41] Better profile switching --- .../java/net/megaproxy487/MainActivity.kt | 33 +++++----------- .../net/megaproxy487/vpn/ProxyVpnService.kt | 38 ++++++++++++++++--- 2 files changed, 43 insertions(+), 28 deletions(-) diff --git a/app/src/main/java/net/megaproxy487/MainActivity.kt b/app/src/main/java/net/megaproxy487/MainActivity.kt index 1df6185..9a6d40e 100644 --- a/app/src/main/java/net/megaproxy487/MainActivity.kt +++ b/app/src/main/java/net/megaproxy487/MainActivity.kt @@ -52,7 +52,6 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import androidx.compose.foundation.clickable -import androidx.compose.foundation.background import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color @@ -157,9 +156,6 @@ private fun MainScreen(activity: Activity) { lifecycleOwner.lifecycle.addObserver(observer) onDispose { lifecycleOwner.lifecycle.removeObserver(observer) } } - LaunchedEffect(alwaysOn) { - if (alwaysOn) profileMenuExpanded = false - } LaunchedEffect(lifecycleOwner, connection) { if (connection != VpnConnectionState.CONNECTED) { connectionStats = null @@ -296,9 +292,7 @@ private fun MainScreen(activity: Activity) { val onProfileColor = if (profileColor.luminance() > 0.45f) Color.Black else Color.White Box(Modifier.fillMaxWidth()) { Card( - Modifier.fillMaxWidth().clickable(enabled = !alwaysOn) { - if (!isAlwaysOnVpnActive(activity)) profileMenuExpanded = true - }, + Modifier.fillMaxWidth().clickable { profileMenuExpanded = true }, colors = CardDefaults.cardColors( containerColor = profileColor, contentColor = onProfileColor, @@ -339,10 +333,17 @@ private fun MainScreen(activity: Activity) { } }, onClick = { - if (!isAlwaysOnVpnActive(activity)) { + val useAsAlwaysOn = isAlwaysOnVpnActive(activity) + if (useAsAlwaysOn) { + store.setAlwaysOnProfile(profile.id) + connectionProfileId = profile.id + } else { store.setActiveProfile(profile.id) activeProfileId = profile.id } + if (useAsAlwaysOn || connection != VpnConnectionState.DISCONNECTED) { + ProxyVpnService.switchProfile(activity, profile.id, useAsAlwaysOn) + } profileMenuExpanded = false }, ) @@ -350,20 +351,6 @@ private fun MainScreen(activity: Activity) { } } } - if (alwaysOn) { - Box( - Modifier.matchParentSize() - .background(Color.Gray.copy(alpha = 0.62f), RoundedCornerShape(12.dp)) - .clickable(onClick = {}), - contentAlignment = Alignment.Center, - ) { - Text( - "Profile locked by Always-on VPN", - color = Color.White, - style = MaterialTheme.typography.labelLarge, - ) - } - } } Spacer(Modifier.height(12.dp)) Button( @@ -407,7 +394,7 @@ private fun MainScreen(activity: Activity) { } if (alwaysOn) { Text( - "Always-on VPN is used. Connection controls are managed by Android.", + "Always-on VPN is used. Selecting a profile updates the Always-on profile and reconnects immediately; disconnect remains managed by Android.", style = MaterialTheme.typography.bodySmall, color = MaterialTheme.colorScheme.onSurfaceVariant, modifier = Modifier.padding(top = 12.dp), diff --git a/app/src/main/java/net/megaproxy487/vpn/ProxyVpnService.kt b/app/src/main/java/net/megaproxy487/vpn/ProxyVpnService.kt index c2ca536..64fac16 100644 --- a/app/src/main/java/net/megaproxy487/vpn/ProxyVpnService.kt +++ b/app/src/main/java/net/megaproxy487/vpn/ProxyVpnService.kt @@ -29,6 +29,7 @@ class ProxyVpnService : VpnService() { private var hostKeyPrompt: PendingIntent? = null private var failoverNotice: String? = null private var connectionBlockedForAction = false + @Volatile private var reconnectAfterStart = false private val probableFailureCounts = mutableMapOf() private val attemptedFailoverProfiles = mutableSetOf() private val monitorHandler = Handler(Looper.getMainLooper()) @@ -46,7 +47,7 @@ class ProxyVpnService : VpnService() { try { startTunnel(testOnly = false) } finally { - startRunning.set(false) + finishStartAttempt() } } } @@ -105,12 +106,13 @@ class ProxyVpnService : VpnService() { return START_NOT_STICKY } if (intent?.action == ACTION_RECONNECT) { + intent.getStringExtra(EXTRA_RECONNECT_PROFILE_ID)?.let(store::setConnectionProfile) hostKeyPrompt = null; failoverNotice = null connectionBlockedForAction = false store.setFailoverState(false, null) probableFailureCounts.clear(); attemptedFailoverProfiles.clear() VpnRuntimeState.updateNetworkWarning(null) - DiagnosticLog.add("event=vpn_reconnect reason=routing_settings_changed") + DiagnosticLog.add("event=vpn_reconnect reason=${intent.getStringExtra(EXTRA_RECONNECT_REASON) ?: "settings_changed"}") startForeground(NOTIFICATION_ID, notification("Reconnecting…")) stopTunnel(removeForeground = false) ConfigStore(this).setConnectionDesired(true) @@ -120,10 +122,10 @@ class ProxyVpnService : VpnService() { try { startTunnel(testOnly = false) } finally { - startRunning.set(false) + finishStartAttempt() } } - } + } else reconnectAfterStart = true return START_STICKY } if (intent?.action == ACTION_TEST) { @@ -141,13 +143,24 @@ class ProxyVpnService : VpnService() { try { startTunnel(testOnly = false) } finally { - startRunning.set(false) + finishStartAttempt() } } } return START_STICKY } + private fun finishStartAttempt() { + startRunning.set(false) + if (reconnectAfterStart) { + reconnectAfterStart = false + monitorHandler.post { + startService(Intent(this, ProxyVpnService::class.java).setAction(ACTION_RECONNECT) + .putExtra(EXTRA_RECONNECT_REASON, "profile_changed_during_connect")) + } + } + } + private fun testConnection() { if (!testRunning.compareAndSet(false, true)) { TestDiagnosticLog.add("Connection test is already running") @@ -469,6 +482,8 @@ class ProxyVpnService : VpnService() { private const val ACTION_START_MANUAL = "net.megaproxy487.START_MANUAL" private const val ACTION_REFRESH_STATUS = "net.megaproxy487.REFRESH_STATUS" private const val ACTION_DISMISS_HOST_KEY = "net.megaproxy487.DISMISS_HOST_KEY" + private const val EXTRA_RECONNECT_PROFILE_ID = "reconnect_profile_id" + private const val EXTRA_RECONNECT_REASON = "reconnect_reason" private const val MONITOR_INTERVAL_MS = 10_000L private val testRunning = AtomicBoolean(false) private val startRunning = AtomicBoolean(false) @@ -497,6 +512,19 @@ class ProxyVpnService : VpnService() { Intent(context, ProxyVpnService::class.java).setAction(ACTION_RECONNECT), ) } + fun switchProfile(context: Context, profileId: String, useAsAlwaysOn: Boolean) { + val store = ConfigStore(context) + if (store.profile(profileId) == null) return + if (useAsAlwaysOn) store.setAlwaysOnProfile(profileId) else store.setActiveProfile(profileId) + store.setConnectionProfile(profileId) + store.setConnectionDesired(true) + ContextCompat.startForegroundService( + context, + Intent(context, ProxyVpnService::class.java).setAction(ACTION_RECONNECT) + .putExtra(EXTRA_RECONNECT_PROFILE_ID, profileId) + .putExtra(EXTRA_RECONNECT_REASON, "profile_changed"), + ) + } fun test(context: Context) = ContextCompat.startForegroundService( context, Intent(context, ProxyVpnService::class.java).setAction(ACTION_TEST), ) From d4bd049834bf05db7b86ec02609375135b7299c3 Mon Sep 17 00:00:00 2001 From: Andrey Prokopyuk Date: Tue, 1 Sep 2026 14:38:36 +0300 Subject: [PATCH 20/41] Fix common things --- app/src/main/AndroidManifest.xml | 11 +- .../java/net/megaproxy487/CrashHandler.kt | 12 +- .../net/megaproxy487/ProfileEditorActivity.kt | 9 +- .../net/megaproxy487/ProxySettingsActivity.kt | 2 + .../net/megaproxy487/SettingsActivities.kt | 49 +++-- .../java/net/megaproxy487/data/ConfigStore.kt | 26 ++- .../net/megaproxy487/data/ConfigTransfer.kt | 2 +- .../net/megaproxy487/vpn/ProxyVpnService.kt | 189 ++++++++++++------ app/src/main/res/drawable/ic_launcher.xml | 13 ++ .../main/res/drawable/ic_vpn_notification.xml | 10 + .../main/res/xml/data_extraction_rules.xml | 9 + .../megaproxy487/data/ConfigTransferTest.kt | 24 +++ native/mobile/dialer.go | 20 ++ native/mobile/doh.go | 12 +- native/mobile/mobile.go | 42 +++- 15 files changed, 327 insertions(+), 103 deletions(-) create mode 100644 app/src/main/res/drawable/ic_launcher.xml create mode 100644 app/src/main/res/drawable/ic_vpn_notification.xml create mode 100644 app/src/main/res/xml/data_extraction_rules.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 42469ca..eccd068 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -6,11 +6,20 @@ - + + + + + + + diff --git a/app/src/main/java/net/megaproxy487/CrashHandler.kt b/app/src/main/java/net/megaproxy487/CrashHandler.kt index 93f0b0a..d1c148e 100644 --- a/app/src/main/java/net/megaproxy487/CrashHandler.kt +++ b/app/src/main/java/net/megaproxy487/CrashHandler.kt @@ -1,6 +1,7 @@ package net.megaproxy487 import android.content.Context +import android.content.SharedPreferences import android.os.Process import net.megaproxy487.vpn.PersistentDiagnosticLog import kotlin.system.exitProcess @@ -8,16 +9,15 @@ import kotlin.system.exitProcess object CrashHandler { private const val PREFS = "crash_state" private const val PENDING = "pending" - @Volatile private var context: Context? = null + private lateinit var preferences: SharedPreferences fun install(context: Context) { - this.context = context.applicationContext + preferences = context.applicationContext.getSharedPreferences(PREFS, Context.MODE_PRIVATE) val previous = Thread.getDefaultUncaughtExceptionHandler() Thread.setDefaultUncaughtExceptionHandler { thread, throwable -> runCatching { PersistentDiagnosticLog.writeCrash(thread, throwable) - this.context?.getSharedPreferences(PREFS, Context.MODE_PRIVATE) - ?.edit()?.putBoolean(PENDING, true)?.commit() + preferences.edit().putBoolean(PENDING, true).commit() } if (previous != null) previous.uncaughtException(thread, throwable) else { Process.killProcess(Process.myPid()) @@ -27,9 +27,9 @@ object CrashHandler { } fun hasPendingReport(): Boolean = - context?.getSharedPreferences(PREFS, Context.MODE_PRIVATE)?.getBoolean(PENDING, false) == true + ::preferences.isInitialized && preferences.getBoolean(PENDING, false) fun markReportHandled() { - context?.getSharedPreferences(PREFS, Context.MODE_PRIVATE)?.edit()?.putBoolean(PENDING, false)?.apply() + if (::preferences.isInitialized) preferences.edit().putBoolean(PENDING, false).apply() } } diff --git a/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt b/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt index 3b198e7..016c326 100644 --- a/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt +++ b/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt @@ -70,6 +70,7 @@ private fun ProfileEditorScreen(activity: Activity) { var profile by remember { mutableStateOf(store.profile(profileId.orEmpty()) ?: store.activeProfile()) } var config by remember { mutableStateOf(profile.config) } var portText by remember { mutableStateOf(config.port.toString()) } + var jumpPortText by remember { mutableStateOf(config.jumpPort.toString()) } var error by remember { mutableStateOf(null) } var countryExpanded by remember { mutableStateOf(false) } var dnsExpanded by remember { mutableStateOf(false) } @@ -158,6 +159,7 @@ private fun ProfileEditorScreen(activity: Activity) { ProxyType.entries.forEach { type -> DropdownMenuItem(text = { Text(type.title) }, onClick = { updateConfig(config.copy(type = type, port = type.defaultPort)) portText = type.defaultPort.toString() + if (type == ProxyType.SSH_JUMP) jumpPortText = config.jumpPort.toString() typeExpanded = false }) } } @@ -202,7 +204,12 @@ private fun ProfileEditorScreen(activity: Activity) { HorizontalDivider() Text("Jump host", style = MaterialTheme.typography.titleMedium) OutlinedTextField(config.jumpHost, { updateConfig(config.copy(jumpHost = it)) }, label = { Text("Jump SSH hostname") }, singleLine = true, modifier = Modifier.fillMaxWidth()) - OutlinedTextField(config.jumpPort.toString(), { value -> value.toIntOrNull()?.let { updateConfig(config.copy(jumpPort = it)) } }, label = { Text("Jump port") }, singleLine = true, modifier = Modifier.fillMaxWidth()) + OutlinedTextField(jumpPortText, { value -> + if (value.length <= 5 && value.all(Char::isDigit)) { + jumpPortText = value + value.toIntOrNull()?.let { updateConfig(config.copy(jumpPort = it)) } + } + }, label = { Text("Jump port") }, singleLine = true, modifier = Modifier.fillMaxWidth()) Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) { Column(Modifier.weight(1f)) { Text("Use the same authentication"); Text("Reuse destination username, password and private key.", style = MaterialTheme.typography.bodySmall) } Checkbox(config.sameJumpAuthentication, { updateConfig(config.copy(sameJumpAuthentication = it)) }) diff --git a/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt b/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt index 886bf52..f13ac3b 100644 --- a/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt +++ b/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt @@ -303,9 +303,11 @@ private fun SettingsScreen(activity: Activity) { title = { Text("Delete ${profile.displayName}?") }, text = { Text("The profile and its encrypted credentials will be removed.") }, confirmButton = { TextButton(onClick = { + val reconnect = store.isConnectionDesired() && store.connectionProfile().id == profile.id store.deleteProfile(profile.id) refresh() deleteProfile = null + if (reconnect) ProxyVpnService.reconnect(activity) }, enabled = profiles.size > 1) { Text("Delete") } }, dismissButton = { TextButton(onClick = { deleteProfile = null }) { Text("Cancel") } }, ) diff --git a/app/src/main/java/net/megaproxy487/SettingsActivities.kt b/app/src/main/java/net/megaproxy487/SettingsActivities.kt index f32cafd..f74239d 100644 --- a/app/src/main/java/net/megaproxy487/SettingsActivities.kt +++ b/app/src/main/java/net/megaproxy487/SettingsActivities.kt @@ -89,7 +89,6 @@ class FailoverSettingsActivity : ComponentActivity() { @OptIn(ExperimentalMaterial3Api::class) @Composable private fun SettingsHomeScreen(activity: Activity) { - var showCrashConfirmation by remember { mutableStateOf(false) } val lifecycleOwner = LocalLifecycleOwner.current val powerManager = remember { activity.getSystemService(PowerManager::class.java) } var batteryOptimizationDisabled by remember { @@ -121,16 +120,6 @@ private fun SettingsHomeScreen(activity: Activity) { } } SettingsButton("Diagnostic log") { activity.startActivity(Intent(activity, DiagnosticLogActivity::class.java)) } - SettingsButton("Crash") { showCrashConfirmation = true } - } - if (showCrashConfirmation) { - AlertDialog( - onDismissRequest = { showCrashConfirmation = false }, - title = { Text("Crash MegaProxy?") }, - text = { Text("The app will close immediately. Reopen it to test the crash report dialog.") }, - confirmButton = { TextButton(onClick = { throw IllegalStateException("Intentional crash requested from Settings") }) { Text("Crash") } }, - dismissButton = { TextButton(onClick = { showCrashConfirmation = false }) { Text("Cancel") } }, - ) } } @@ -331,18 +320,18 @@ private fun TlsFingerprintScreen(activity: Activity) { }) } } } - OutlinedTextField(settings.sshKeepaliveSeconds.toString(), { value -> value.toIntOrNull()?.let { + IntegerSettingField(settings.sshKeepaliveSeconds, 0..3600, "SSH keepalive, seconds (0 = disabled)") { saveSettings(settings.copy(sshKeepaliveSeconds = it)) - } }, label = { Text("SSH keepalive, seconds (0 = disabled)") }, singleLine = true, modifier = Modifier.fillMaxWidth()) - OutlinedTextField(settings.sshMaxChannels.toString(), { value -> value.toIntOrNull()?.let { + } + IntegerSettingField(settings.sshMaxChannels, 1..256, "Maximum parallel SSH channels") { saveSettings(settings.copy(sshMaxChannels = it)) - } }, label = { Text("Maximum parallel SSH channels") }, singleLine = true, modifier = Modifier.fillMaxWidth()) - OutlinedTextField(settings.sshRotationMinutes.toString(), { value -> value.toIntOrNull()?.let { + } + IntegerSettingField(settings.sshRotationMinutes, 0..1440, "Rotate SSH session after minutes (0 = disabled)") { saveSettings(settings.copy(sshRotationMinutes = it)) - } }, label = { Text("Rotate SSH session after minutes (0 = disabled)") }, singleLine = true, modifier = Modifier.fillMaxWidth()) - OutlinedTextField(settings.sshRotationMb.toString(), { value -> value.toIntOrNull()?.let { + } + IntegerSettingField(settings.sshRotationMb, 0..10240, "Rotate SSH session after MB (0 = disabled)") { saveSettings(settings.copy(sshRotationMb = it)) - } }, label = { Text("Rotate SSH session after MB (0 = disabled)") }, singleLine = true, modifier = Modifier.fillMaxWidth()) + } Text("The SSH profile controls the client banner and preferred KEX, cipher and MAC ordering.", style = MaterialTheme.typography.bodySmall) Text("Changes are saved automatically and apply to every profile.", style = MaterialTheme.typography.bodySmall) } @@ -365,6 +354,28 @@ private fun TlsFingerprintScreen(activity: Activity) { } } +@Composable +private fun IntegerSettingField(initialValue: Int, range: IntRange, label: String, onValidValue: (Int) -> Unit) { + var text by remember { mutableStateOf(initialValue.toString()) } + val parsed = text.toIntOrNull() + OutlinedTextField( + value = text, + onValueChange = { value -> + if (value.length <= range.last.toString().length && value.all(Char::isDigit)) { + text = value + value.toIntOrNull()?.takeIf { it in range }?.let(onValidValue) + } + }, + label = { Text(label) }, + supportingText = if (text.isNotEmpty() && parsed !in range) { + { Text("Allowed range: ${range.first}–${range.last}") } + } else null, + isError = text.isNotEmpty() && parsed !in range, + singleLine = true, + modifier = Modifier.fillMaxWidth(), + ) +} + @OptIn(ExperimentalMaterial3Api::class) @Composable private fun SettingsScaffold(activity: Activity, title: String, content: @Composable ColumnScope.() -> Unit) { diff --git a/app/src/main/java/net/megaproxy487/data/ConfigStore.kt b/app/src/main/java/net/megaproxy487/data/ConfigStore.kt index c6d54fa..d75dae7 100644 --- a/app/src/main/java/net/megaproxy487/data/ConfigStore.kt +++ b/app/src/main/java/net/megaproxy487/data/ConfigStore.kt @@ -30,7 +30,18 @@ class ConfigStore(context: Context) { @Synchronized fun profiles(): List { ensureMigrated() - val decoded = decodeProfiles(prefs.getString(PROFILES, null)).ifEmpty { listOf(createInitialProfile()) } + val decoded = decodeProfiles(prefs.getString(PROFILES, null)).ifEmpty { + val recovered = createInitialProfile() + prefs.edit() + .putString(PROFILES, encodeProfiles(listOf(recovered))) + .putString(ACTIVE_PROFILE_ID, recovered.id) + .putString(ALWAYS_ON_PROFILE_ID, recovered.id) + .putString(CONNECTION_PROFILE_ID, recovered.id) + .putBoolean(FAILOVER_ACTIVE, false) + .remove(FAILOVER_NOTICE) + .apply() + listOf(recovered) + } if (prefs.getInt(FLAG_COLOR_VERSION, 0) >= CURRENT_FLAG_COLOR_VERSION) return decoded val recolored = decoded.map { profile -> if (profile.countryCode.isEmpty()) profile @@ -213,7 +224,11 @@ class ConfigStore(context: Context) { configuration.activeProfileId?.let(idMap::get)?.let { editor.putString(ACTIVE_PROFILE_ID, it) } configuration.alwaysOnProfileId?.let(idMap::get)?.let { editor.putString(ALWAYS_ON_PROFILE_ID, it) } editor.apply() - configuration.globalConnectionSettings?.let(::saveGlobalConnectionSettings) + configuration.globalConnectionSettings?.let { importedSettings -> + saveGlobalConnectionSettings(importedSettings.copy( + failoverProfileIds = importedSettings.failoverProfileIds.mapNotNull(idMap::get), + )) + } return added } @@ -247,12 +262,19 @@ class ConfigStore(context: Context) { fun deleteProfile(id: String): Boolean { val current = profiles() if (current.size <= 1 || current.none { it.id == id }) return false + val connectionWasDeleted = connectionProfile().id == id val remaining = current.filterNot { it.id == id } val replacement = remaining.first().id val editor = prefs.edit().putString(PROFILES, encodeProfiles(remaining)) if (activeProfileId() == id) editor.putString(ACTIVE_PROFILE_ID, replacement) if (alwaysOnProfileId() == id) editor.putString(ALWAYS_ON_PROFILE_ID, replacement) + if (connectionWasDeleted) editor.putString(CONNECTION_PROFILE_ID, replacement) editor.apply() + val settings = globalConnectionSettings() + if (id in settings.failoverProfileIds) { + saveGlobalConnectionSettings(settings.copy(failoverProfileIds = settings.failoverProfileIds - id)) + } + if (connectionWasDeleted && isFailoverActive()) setFailoverState(false, null) return true } diff --git a/app/src/main/java/net/megaproxy487/data/ConfigTransfer.kt b/app/src/main/java/net/megaproxy487/data/ConfigTransfer.kt index 9e66ad8..662d4a9 100644 --- a/app/src/main/java/net/megaproxy487/data/ConfigTransfer.kt +++ b/app/src/main/java/net/megaproxy487/data/ConfigTransfer.kt @@ -94,7 +94,7 @@ object ConfigTransfer { val decodedProfiles = decoded.mapNotNull(Result::getOrNull) require(decodedProfiles.isNotEmpty()) { "The configuration contains no usable profiles" } val legacyIpv6 = root.optJSONObject("routing")?.optBoolean("allowIpv6", false) ?: false - val profiles = if (version < 6) decodedProfiles.map { + val profiles = if (version in 2..5) decodedProfiles.map { it.copy(config = it.config.copy(allowIpv6 = legacyIpv6)) } else decodedProfiles return PortableConfiguration( diff --git a/app/src/main/java/net/megaproxy487/vpn/ProxyVpnService.kt b/app/src/main/java/net/megaproxy487/vpn/ProxyVpnService.kt index 64fac16..ea89a7c 100644 --- a/app/src/main/java/net/megaproxy487/vpn/ProxyVpnService.kt +++ b/app/src/main/java/net/megaproxy487/vpn/ProxyVpnService.kt @@ -12,6 +12,7 @@ import android.os.Build import android.os.ParcelFileDescriptor import android.os.Handler import android.os.Looper +import android.os.SystemClock import androidx.core.app.NotificationCompat import androidx.core.content.ContextCompat import net.megaproxy487.MainActivity @@ -19,19 +20,24 @@ import net.megaproxy487.SshHostKeyActivity import net.megaproxy487.data.ConfigStore import net.megaproxy487.model.FailoverMode import java.util.concurrent.atomic.AtomicBoolean +import java.util.concurrent.atomic.AtomicLong +import java.util.concurrent.ConcurrentHashMap import kotlin.concurrent.thread class ProxyVpnService : VpnService() { - private var tunnel: ParcelFileDescriptor? = null - private var core: ProxyCore? = null - private var activeConfig: net.megaproxy487.model.ProxyConfig? = null - private var tunnelTestOnly = false - private var hostKeyPrompt: PendingIntent? = null - private var failoverNotice: String? = null - private var connectionBlockedForAction = false + @Volatile private var tunnel: ParcelFileDescriptor? = null + @Volatile private var core: ProxyCore? = null + @Volatile private var activeConfig: net.megaproxy487.model.ProxyConfig? = null + @Volatile private var tunnelTestOnly = false + @Volatile private var hostKeyPrompt: PendingIntent? = null + @Volatile private var failoverNotice: String? = null + @Volatile private var connectionBlockedForAction = false @Volatile private var reconnectAfterStart = false - private val probableFailureCounts = mutableMapOf() - private val attemptedFailoverProfiles = mutableSetOf() + private val tunnelStateLock = Any() + private val startGeneration = AtomicLong(0) + private val probableFailureCounts = ConcurrentHashMap() + private val probableFailureTimes = ConcurrentHashMap() + private val attemptedFailoverProfiles = ConcurrentHashMap.newKeySet() private val monitorHandler = Handler(Looper.getMainLooper()) private val monitor = object : Runnable { override fun run() { @@ -42,10 +48,11 @@ class ProxyVpnService : VpnService() { notification(failoverNotice ?: VpnRuntimeState.networkWarning.value ?: if (isRunning) "Connected" else "Reconnecting…"), ) if (tunnel == null && hostKeyPrompt == null && !connectionBlockedForAction && !testRunning.get() && startRunning.compareAndSet(false, true)) { + val generation = startGeneration.get() VpnRuntimeState.update(VpnConnectionState.CONNECTING) thread(name = "megaproxy-vpn-recovery") { try { - startTunnel(testOnly = false) + startTunnel(testOnly = false, generation = generation) } finally { finishStartAttempt() } @@ -65,12 +72,13 @@ class ProxyVpnService : VpnService() { } override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { - val systemAlwaysOnStart = intent?.action == SERVICE_INTERFACE - val preserveKnownStatus = intent?.action == ACTION_REFRESH_STATUS && isAlwaysOnMode - isAlwaysOnMode = isAlwaysOn || systemAlwaysOnStart || preserveKnownStatus - isLockdownMode = isLockdownEnabled - } + val systemAlwaysOnStart = intent?.action == SERVICE_INTERFACE + val preserveKnownStatus = intent?.action == ACTION_REFRESH_STATUS && isAlwaysOnMode + // Android starts the selected service with SERVICE_INTERFACE on older releases; + // the explicit isAlwaysOn property itself was only added in API 29. + val platformAlwaysOn = Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q && isAlwaysOn + isAlwaysOnMode = platformAlwaysOn || systemAlwaysOnStart || preserveKnownStatus + isLockdownMode = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) isLockdownEnabled else false val store = ConfigStore(this) // Android may call the sticky service again with a null intent. Do not replace a // failover profile on every callback; only a fresh system Always-on start selects @@ -86,7 +94,7 @@ class ProxyVpnService : VpnService() { } if (intent?.action == ACTION_START_MANUAL) { store.setConnectionProfile(store.activeProfileId()) - probableFailureCounts.clear(); attemptedFailoverProfiles.clear(); failoverNotice = null + probableFailureCounts.clear(); probableFailureTimes.clear(); attemptedFailoverProfiles.clear(); failoverNotice = null connectionBlockedForAction = false store.setFailoverState(false, null) VpnRuntimeState.updateNetworkWarning(null) @@ -110,17 +118,18 @@ class ProxyVpnService : VpnService() { hostKeyPrompt = null; failoverNotice = null connectionBlockedForAction = false store.setFailoverState(false, null) - probableFailureCounts.clear(); attemptedFailoverProfiles.clear() + probableFailureCounts.clear(); probableFailureTimes.clear(); attemptedFailoverProfiles.clear() VpnRuntimeState.updateNetworkWarning(null) DiagnosticLog.add("event=vpn_reconnect reason=${intent.getStringExtra(EXTRA_RECONNECT_REASON) ?: "settings_changed"}") startForeground(NOTIFICATION_ID, notification("Reconnecting…")) stopTunnel(removeForeground = false) + val generation = startGeneration.get() ConfigStore(this).setConnectionDesired(true) if (startRunning.compareAndSet(false, true)) { VpnRuntimeState.update(VpnConnectionState.CONNECTING) thread(name = "megaproxy-vpn-reconnect") { try { - startTunnel(testOnly = false) + startTunnel(testOnly = false, generation = generation) } finally { finishStartAttempt() } @@ -138,10 +147,11 @@ class ProxyVpnService : VpnService() { } startForeground(NOTIFICATION_ID, notification("Connecting…")) if (tunnel == null && startRunning.compareAndSet(false, true)) { + val generation = startGeneration.get() VpnRuntimeState.update(VpnConnectionState.CONNECTING) thread(name = "megaproxy-vpn-start") { try { - startTunnel(testOnly = false) + startTunnel(testOnly = false, generation = generation) } finally { finishStartAttempt() } @@ -174,7 +184,7 @@ class ProxyVpnService : VpnService() { return } val temporaryVpn = tunnel == null - if (temporaryVpn && !startTunnel(testOnly = true, suppliedConfig = storedConfig)) { + if (temporaryVpn && !startTunnel(testOnly = true, suppliedConfig = storedConfig, generation = startGeneration.get())) { TestDiagnosticLog.fail("Connection test failed: temporary VPN could not be started") testRunning.set(false) if (hostKeyPrompt == null) { @@ -183,7 +193,7 @@ class ProxyVpnService : VpnService() { } return } - val config = activeConfig ?: run { + val config = synchronized(tunnelStateLock) { activeConfig } ?: run { TestDiagnosticLog.fail("Connection test failed: active VPN configuration is unavailable") testRunning.set(false) return @@ -200,7 +210,11 @@ class ProxyVpnService : VpnService() { } } - private fun startTunnel(testOnly: Boolean, suppliedConfig: net.megaproxy487.model.ProxyConfig? = null): Boolean { + private fun startTunnel( + testOnly: Boolean, + suppliedConfig: net.megaproxy487.model.ProxyConfig? = null, + generation: Long = startGeneration.get(), + ): Boolean { val storedProfile = ConfigStore(this).connectionProfile() val storedConfig = suppliedConfig ?: ConfigStore(this).globalConnectionSettings().applyTo(storedProfile.config) val promptProfileId = if (testOnly) ConfigStore(this).activeProfileId() else storedProfile.id @@ -240,27 +254,34 @@ class ProxyVpnService : VpnService() { .addRoute("::", 0) .addDnsServer("10.77.0.2") .setBlocking(true) - val allowedPackages = when { - testOnly -> setOf(packageName) - storedConfig.routeAllApps -> emptySet() - else -> storedConfig.selectedPackages - } - allowedPackages.forEach { packageName -> - runCatching { builder.addAllowedApplication(packageName) } + if (testOnly) { + builder.addAllowedApplication(packageName) + } else if (!storedConfig.routeAllApps) { + var allowedCount = 0 + storedConfig.selectedPackages.forEach { selectedPackage -> + runCatching { builder.addAllowedApplication(selectedPackage) } + .onSuccess { allowedCount++ } + .onFailure { diagnostics("event=routing package=unavailable action=skipped") } + } + if (allowedCount == 0) { + // An empty allow-list means "all apps" to VpnService.Builder. Route only + // our own process so an empty/missing split list cannot become global VPN. + builder.addAllowedApplication(packageName) + diagnostics("event=routing mode=split selected_app_count=0 fallback=self_only") + } } - tunnel = builder.establish() ?: run { + val establishedTunnel = builder.establish() ?: run { handleStartFailure(testOnly, "VPN interface could not be established") return false } - tunnelTestOnly = testOnly diagnostics("TUN established with IPv4, IPv6 and intercepted DNS") val proxyCore = NativeProxyCore(this, diagnostics) val proxyIp = proxyCore.resolveProxy(storedConfig.host) { message -> failureDetail = message getSystemService(NotificationManager::class.java).notify(NOTIFICATION_ID, notification(message)) } ?: run { - tunnel?.close() - tunnel = null + establishedTunnel.close() + if (!isStartCurrent(generation)) return false handleStartFailure(testOnly, "Proxy bootstrap DNS failed", failureDetail, promptProfileId) return false } @@ -269,38 +290,57 @@ class ProxyVpnService : VpnService() { failureDetail = message getSystemService(NotificationManager::class.java).notify(NOTIFICATION_ID, notification(message)) } ?: run { - tunnel?.close(); tunnel = null + establishedTunnel.close() + if (!isStartCurrent(generation)) return false handleStartFailure(testOnly, "Jump host bootstrap DNS failed", failureDetail, promptProfileId) return false } } else "" + if (!isStartCurrent(generation)) { + establishedTunnel.close() + return false + } val config = storedConfig.copy(resolvedProxyIp = proxyIp, resolvedJumpIp = jumpIp) - core = proxyCore.also { - val started = it.start(tunnel!!.fd, config) { message -> + val started = proxyCore.start(establishedTunnel.fd, config) { message -> failureDetail = message configureHostKeyPrompt(message, promptProfileId, testOnly) if (!testOnly && "dpi_hint=possible" in message) monitorHandler.post { handleRuntimeDiagnostic(promptProfileId, message) } getSystemService(NotificationManager::class.java).notify(NOTIFICATION_ID, notification(message)) } - if (!started) { - tunnel?.close() - tunnel = null - core = null + if (!started) { + establishedTunnel.close() + if (isStartCurrent(generation)) { isRunning = false handleStartFailure(testOnly, "Native proxy core failed to start", failureDetail, promptProfileId) - return false + } + return false + } + val committed = synchronized(tunnelStateLock) { + if (!isStartCurrent(generation) || tunnel != null) false else { + tunnel = establishedTunnel + core = proxyCore + tunnelTestOnly = testOnly + activeConfig = config + isRunning = true + true } } - isRunning = true + if (!committed) { + proxyCore.stop() + establishedTunnel.close() + return false + } probableFailureCounts.remove(promptProfileId) + probableFailureTimes.remove(promptProfileId) if (failoverNotice == null) VpnRuntimeState.updateNetworkWarning(null) else VpnRuntimeState.updateNetworkWarning(failoverNotice) VpnRuntimeState.updateSystem(isAlwaysOnMode, isLockdownMode, promptProfileId) VpnRuntimeState.update(VpnConnectionState.CONNECTED) - activeConfig = config return true } + private fun isStartCurrent(generation: Long): Boolean = startGeneration.get() == generation + private fun handleStartFailure(testOnly: Boolean, message: String, detail: String = message, profileId: String = "") { if (testOnly) { TestDiagnosticLog.fail(message) @@ -315,16 +355,25 @@ class ProxyVpnService : VpnService() { } else { val signal = BlockingDetection.classify(detail) if (signal != null && profileId.isNotEmpty()) { - val count = (probableFailureCounts[profileId] ?: 0) + 1 - probableFailureCounts[profileId] = count + val count = recordProbableFailure(profileId) DiagnosticLog.add("event=blocking_detection result=suspected signal=${signal.name.lowercase()} consecutive=$count network=${networkKind()} profile_type=${ConfigStore(this).profile(profileId)?.config?.type?.name?.lowercase() ?: "unknown"}") if (count >= 2) handleProbableBlocking(profileId, signal) } - if (signal == null && isAlwaysOnMode && requiresUserAction(detail)) { - connectionBlockedForAction = true - val notice = "VPN connection requires attention. Check authentication, certificate, or SSH host-key settings, then reconnect Always-on VPN." + if (signal == null && requiresUserAction(detail)) { + val notice = if (isAlwaysOnMode) + "VPN connection requires attention. Check authentication, certificate, or SSH host-key settings, then reconnect Always-on VPN." + else "VPN connection requires attention. Check authentication, certificate, or SSH host-key settings." VpnRuntimeState.updateNetworkWarning(notice) - getSystemService(NotificationManager::class.java).notify(NOTIFICATION_ID, notification(notice)) + if (isAlwaysOnMode) { + connectionBlockedForAction = true + VpnRuntimeState.update(VpnConnectionState.CONNECTING) + getSystemService(NotificationManager::class.java).notify(NOTIFICATION_ID, notification(notice)) + } else { + ConfigStore(this).setConnectionDesired(false) + VpnRuntimeState.update(VpnConnectionState.DISCONNECTED) + stopForeground(STOP_FOREGROUND_REMOVE) + stopSelf() + } return } DiagnosticLog.add("$message; retrying") @@ -383,11 +432,21 @@ class ProxyVpnService : VpnService() { private fun handleRuntimeDiagnostic(profileId: String, detail: String) { val signal = BlockingDetection.classify(detail) ?: return - val count = (probableFailureCounts[profileId] ?: 0) + 1 - probableFailureCounts[profileId] = count + val count = recordProbableFailure(profileId) if (count >= 2) handleProbableBlocking(profileId, signal) } + private fun recordProbableFailure(profileId: String): Int { + val now = SystemClock.elapsedRealtime() + val previous = probableFailureTimes.put(profileId, now) + return if (previous == null || now - previous > FAILURE_WINDOW_MS) { + probableFailureCounts[profileId] = 1 + 1 + } else { + probableFailureCounts.merge(profileId, 1, Int::plus) ?: 1 + } + } + private fun networkKind(): String { val manager = getSystemService(ConnectivityManager::class.java) val capabilities = manager.getNetworkCapabilities(manager.activeNetwork) ?: return "none" @@ -400,18 +459,23 @@ class ProxyVpnService : VpnService() { } private fun stopTunnel(removeForeground: Boolean = true) { - if (tunnel != null) { - if (tunnelTestOnly) TestDiagnosticLog.add("Stopping temporary VPN") + startGeneration.incrementAndGet() + val stopped = synchronized(tunnelStateLock) { + val result = Triple(tunnel, core, tunnelTestOnly) + tunnel = null + core = null + tunnelTestOnly = false + activeConfig = null + isRunning = false + result + } + if (stopped.first != null) { + if (stopped.third) TestDiagnosticLog.add("Stopping temporary VPN") else DiagnosticLog.add("Stopping VPN") } - isRunning = false VpnRuntimeState.update(VpnConnectionState.DISCONNECTED) - core?.stop() - core = null - tunnel?.close() - tunnel = null - tunnelTestOnly = false - activeConfig = null + stopped.second?.stop() + stopped.first?.close() if (removeForeground) stopForeground(STOP_FOREGROUND_REMOVE) } @@ -464,7 +528,7 @@ class ProxyVpnService : VpnService() { } private fun notification(text: String) = NotificationCompat.Builder(this, CHANNEL_ID) - .setSmallIcon(android.R.drawable.stat_sys_warning) + .setSmallIcon(net.megaproxy487.R.drawable.ic_vpn_notification) .setContentTitle("MegaProxy is active") .setContentText(text) .setOngoing(true) @@ -485,6 +549,7 @@ class ProxyVpnService : VpnService() { private const val EXTRA_RECONNECT_PROFILE_ID = "reconnect_profile_id" private const val EXTRA_RECONNECT_REASON = "reconnect_reason" private const val MONITOR_INTERVAL_MS = 10_000L + private const val FAILURE_WINDOW_MS = 60_000L private val testRunning = AtomicBoolean(false) private val startRunning = AtomicBoolean(false) @Volatile var isRunning: Boolean = false diff --git a/app/src/main/res/drawable/ic_launcher.xml b/app/src/main/res/drawable/ic_launcher.xml new file mode 100644 index 0000000..a631e8b --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher.xml @@ -0,0 +1,13 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vpn_notification.xml b/app/src/main/res/drawable/ic_vpn_notification.xml new file mode 100644 index 0000000..82e7e17 --- /dev/null +++ b/app/src/main/res/drawable/ic_vpn_notification.xml @@ -0,0 +1,10 @@ + + + + diff --git a/app/src/main/res/xml/data_extraction_rules.xml b/app/src/main/res/xml/data_extraction_rules.xml new file mode 100644 index 0000000..3c332df --- /dev/null +++ b/app/src/main/res/xml/data_extraction_rules.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/app/src/test/java/net/megaproxy487/data/ConfigTransferTest.kt b/app/src/test/java/net/megaproxy487/data/ConfigTransferTest.kt index 69d4268..f7f1e2b 100644 --- a/app/src/test/java/net/megaproxy487/data/ConfigTransferTest.kt +++ b/app/src/test/java/net/megaproxy487/data/ConfigTransferTest.kt @@ -86,4 +86,28 @@ class ConfigTransferTest { assertEquals(TlsProfile.DEFAULT, imported.globalConnectionSettings?.tlsProfile) assertEquals(setOf("com.example.missing"), imported.globalConnectionSettings?.selectedPackages) } + + @Test + fun `version one keeps per-profile IPv6 setting`() { + val imported = ConfigTransfer.importJson( + """{"schema":"dev.megaproxy.config","version":1,"profiles":[{ + "id":"one","proxy":{"host":"proxy.example"},"routing":{"allowIpv6":true} + }]}""", + ) + + assertTrue(imported.profiles.single().config.allowIpv6) + } + + @Test + fun `legacy global IPv6 setting migrates to every profile`() { + val imported = ConfigTransfer.importJson( + """{"schema":"dev.megaproxy.config","version":5, + "routing":{"allowIpv6":true},"profiles":[ + {"id":"one","proxy":{"host":"one.example"}}, + {"id":"two","proxy":{"host":"two.example"}} + ]}""", + ) + + assertTrue(imported.profiles.all { it.config.allowIpv6 }) + } } diff --git a/native/mobile/dialer.go b/native/mobile/dialer.go index c7fd0ef..2c70aab 100644 --- a/native/mobile/dialer.go +++ b/native/mobile/dialer.go @@ -32,6 +32,16 @@ type httpsConnectDialer struct { dohClient *http.Client } +func (d *httpsConnectDialer) Close() error { + d.cacheMu.Lock() + defer d.cacheMu.Unlock() + if d.dohClient != nil { + d.dohClient.CloseIdleConnections() + d.dohClient = nil + } + return nil +} + func (d *httpsConnectDialer) DialContext(ctx context.Context, metadata *M.Metadata) (net.Conn, error) { return d.connectTarget(ctx, metadata.DestinationAddress()) } @@ -108,6 +118,13 @@ func (d *httpsConnectDialer) connectTarget(ctx context.Context, target string) ( } tlsState := uconn.ConnectionState() report(d.reporter, "event=connection conn=%d mode=proxy stage=tls_handshake result=success elapsed_ms=%d version=0x%04x cipher=0x%04x alpn=%q certificates=%d", connectionID, time.Since(tlsStarted).Milliseconds(), tlsState.Version, tlsState.CipherSuite, tlsState.NegotiatedProtocol, len(tlsState.PeerCertificates)) + deadline := time.Now().Add(15 * time.Second) + if contextDeadline, ok := ctx.Deadline(); ok && contextDeadline.Before(deadline) { + deadline = contextDeadline + } + if err := uconn.SetDeadline(deadline); err != nil { + return nil, fmt.Errorf("set CONNECT deadline: %w", err) + } auth := base64.StdEncoding.EncodeToString([]byte(d.config.Username + ":" + d.config.Password)) if _, err := fmt.Fprintf(uconn, "CONNECT %s HTTP/1.1\r\nHost: %s\r\nProxy-Authorization: Basic %s\r\nProxy-Connection: Keep-Alive\r\n\r\n", target, target, auth); err != nil { @@ -132,6 +149,9 @@ func (d *httpsConnectDialer) connectTarget(ctx context.Context, target string) ( report(d.reporter, "event=connection conn=%d mode=proxy stage=connect_response result=rejected status=%d status_class=%dxx", connectionID, response.StatusCode, response.StatusCode/100) return nil, err } + if err := uconn.SetDeadline(time.Time{}); err != nil { + return nil, fmt.Errorf("clear CONNECT deadline: %w", err) + } recordConnectionOutcome(true) report(d.reporter, "event=connection conn=%d mode=proxy stage=tunnel result=established total_ms=%d", connectionID, time.Since(totalStarted).Milliseconds()) closeOnError = false diff --git a/native/mobile/doh.go b/native/mobile/doh.go index fc1a1d9..19c1095 100644 --- a/native/mobile/doh.go +++ b/native/mobile/doh.go @@ -43,6 +43,8 @@ type dohPacketConn struct { deadlineMu sync.Mutex readDeadline time.Time client *http.Client + context context.Context + cancel context.CancelFunc } func newDoHPacketConn(c config, reporter Reporter, connect func(context.Context, string) (net.Conn, error), endpoint string) *dohPacketConn { @@ -65,9 +67,10 @@ func newDoHHTTPClient(connect func(context.Context, string) (net.Conn, error)) * } func newDoHPacketConnWithClient(c config, reporter Reporter, connect func(context.Context, string) (net.Conn, error), endpoint string, client *http.Client) *dohPacketConn { + ctx, cancel := context.WithCancel(context.Background()) return &dohPacketConn{ config: c, reporter: reporter, connect: connect, url: endpoint, replies: make(chan dnsReply, 16), closed: make(chan struct{}), - client: client, + client: client, context: ctx, cancel: cancel, } } @@ -90,7 +93,7 @@ func (c *dohPacketConn) WriteTo(payload []byte, addr net.Addr) (int, error) { } query := append([]byte(nil), payload...) go func() { - req, err := http.NewRequestWithContext(context.Background(), http.MethodPost, c.url, bytes.NewReader(query)) + req, err := http.NewRequestWithContext(c.context, http.MethodPost, c.url, bytes.NewReader(query)) if err == nil { req.Header.Set("Accept", "application/dns-message") req.Header.Set("Content-Type", "application/dns-message") @@ -179,7 +182,10 @@ func (c *dohPacketConn) ReadFrom(buffer []byte) (int, net.Addr, error) { } func (c *dohPacketConn) Close() error { - c.closeOnce.Do(func() { close(c.closed) }) + c.closeOnce.Do(func() { + close(c.closed) + c.cancel() + }) return nil } func (c *dohPacketConn) LocalAddr() net.Addr { return dnsAddr("megaproxy-doh") } diff --git a/native/mobile/mobile.go b/native/mobile/mobile.go index b98d10b..53b33c7 100644 --- a/native/mobile/mobile.go +++ b/native/mobile/mobile.go @@ -19,6 +19,8 @@ import ( var state struct { sync.Mutex + generation uint64 + starting bool running bool device device.Device stack *stack.Stack @@ -41,12 +43,24 @@ func Start(tunFD int, rawConfig string, protector Protector, reporter Reporter) return errors.New("invalid Android VPN bridge") } state.Lock() - if state.running { + if state.running || state.starting { state.Unlock() _ = syscall.Close(tunFD) return errors.New("proxy core is already running") } - defer state.Unlock() + state.generation++ + generation := state.generation + state.starting = true + state.Unlock() + committed := false + defer func() { + if committed { + return + } + state.Lock() + state.starting = false + state.Unlock() + }() resetStats() dev, err := fdbased.Open(strconv.Itoa(tunFD), 1500, 0) if err != nil { @@ -56,7 +70,9 @@ func Start(tunFD int, rawConfig string, protector Protector, reporter Reporter) t := tunnel.T() var proxyCloser io.Closer if c.Type == "HTTPS" { - t.SetProxy(&httpsConnectDialer{config: c, protector: protector, reporter: reporter}) + httpsProxy := &httpsConnectDialer{config: c, protector: protector, reporter: reporter} + t.SetProxy(httpsProxy) + proxyCloser = httpsProxy } else { sshProxy := &sshDialer{config: c, protector: protector, reporter: reporter} ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second) @@ -75,17 +91,27 @@ func Start(tunFD int, rawConfig string, protector Protector, reporter Reporter) dev.Close() return err } - state.device, state.stack, state.proxyCloser, state.running = dev, netstack, proxyCloser, true + state.Lock() + if state.generation != generation || !state.starting { + state.Unlock() + netstack.Close() + netstack.Wait() + if proxyCloser != nil { + _ = proxyCloser.Close() + } + return errors.New("proxy core start was superseded") + } + state.device, state.stack, state.proxyCloser = dev, netstack, proxyCloser + state.starting, state.running = false, true + committed = true + state.Unlock() report(reporter, "event=native_stack result=started type=%s fingerprint=%s ssh_profile=%s ipv6=%t bypass_local=%t", c.Type, c.Profile, c.SSHProfile, c.AllowIPv6, c.BypassLocalNetworks) return nil } func Stop() { state.Lock() - if !state.running { - state.Unlock() - return - } + state.generation++ state.running = false dev, netstack, proxyCloser := state.device, state.stack, state.proxyCloser state.device, state.stack, state.proxyCloser = nil, nil, nil From ea8a6324ee32a982a2694e3be9d6645e0e5435f4 Mon Sep 17 00:00:00 2001 From: Andrey Prokopyuk Date: Tue, 1 Sep 2026 14:54:05 +0300 Subject: [PATCH 21/41] Fix possible crashes --- .../net/megaproxy487/DiagnosticLogActivity.kt | 19 +++-- .../net/megaproxy487/ProfileEditorActivity.kt | 25 +++--- .../net/megaproxy487/ProxySettingsActivity.kt | 3 +- .../net/megaproxy487/SettingsActivities.kt | 2 +- .../java/net/megaproxy487/data/ConfigStore.kt | 2 +- .../net/megaproxy487/data/ConfigTransfer.kt | 58 ++++++++------ .../net/megaproxy487/data/FoxyProxyParser.kt | 17 +++-- .../net/megaproxy487/data/LimitedInput.kt | 22 ++++++ .../net/megaproxy487/data/ProxyListParser.kt | 12 ++- .../net/megaproxy487/vpn/DiagnosticLog.kt | 21 ++++- .../vpn/PersistentDiagnosticLog.kt | 32 ++++---- .../net/megaproxy487/vpn/ProxyVpnService.kt | 55 +++++++++----- .../megaproxy487/vpn/SshHostKeyPromptState.kt | 12 ++- .../net/megaproxy487/data/LimitedInputTest.kt | 19 +++++ native/mobile/bootstrap.go | 5 +- native/mobile/dialer.go | 76 ++++++++++++++++++- native/mobile/dialer_test.go | 27 ++++++- native/mobile/doh.go | 31 +++++--- native/mobile/ssh_dialer.go | 24 ++++-- 19 files changed, 358 insertions(+), 104 deletions(-) create mode 100644 app/src/main/java/net/megaproxy487/data/LimitedInput.kt create mode 100644 app/src/test/java/net/megaproxy487/data/LimitedInputTest.kt diff --git a/app/src/main/java/net/megaproxy487/DiagnosticLogActivity.kt b/app/src/main/java/net/megaproxy487/DiagnosticLogActivity.kt index 9328bef..a94aa67 100644 --- a/app/src/main/java/net/megaproxy487/DiagnosticLogActivity.kt +++ b/app/src/main/java/net/megaproxy487/DiagnosticLogActivity.kt @@ -38,6 +38,7 @@ import androidx.compose.runtime.derivedStateOf import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.text.font.FontFamily @@ -48,6 +49,7 @@ import androidx.lifecycle.repeatOnLifecycle import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.delay import kotlinx.coroutines.withContext +import kotlinx.coroutines.launch import net.megaproxy487.data.ConfigStore import net.megaproxy487.vpn.PersistentDiagnosticLog @@ -65,6 +67,7 @@ private fun DiagnosticLogScreen(activity: Activity) { val store = remember { ConfigStore(activity) } val listState = rememberLazyListState() val lifecycleOwner = LocalLifecycleOwner.current + val scope = rememberCoroutineScope() var lines by remember { mutableStateOf(emptyList()) } var autoScroll by remember { mutableStateOf(true) } var limitText by remember { mutableStateOf(store.diagnosticLogLimitMb().toString()) } @@ -78,12 +81,16 @@ private fun DiagnosticLogScreen(activity: Activity) { val exportDocument = rememberLauncherForActivityResult(ActivityResultContracts.CreateDocument("text/plain")) { uri -> if (uri != null) { - runCatching { - activity.contentResolver.openOutputStream(uri, "wt")?.buffered()?.use { - PersistentDiagnosticLog.copyTo(it) - } ?: error("Could not open the export file") - }.onSuccess { message = "Diagnostic log exported." } - .onFailure { message = it.message ?: "Could not export the diagnostic log" } + scope.launch { + runCatching { + withContext(Dispatchers.IO) { + activity.contentResolver.openOutputStream(uri, "wt")?.buffered()?.use { + PersistentDiagnosticLog.copyTo(it) + } ?: error("Could not open the export file") + } + }.onSuccess { message = "Diagnostic log exported." } + .onFailure { message = it.message ?: "Could not export the diagnostic log" } + } } } diff --git a/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt b/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt index 016c326..35aaad6 100644 --- a/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt +++ b/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt @@ -87,6 +87,9 @@ private fun ProfileEditorScreen(activity: Activity) { } fun saveProfile() = store.saveProfile(profile) + fun acceptText(value: String, maxLength: Int, update: (String) -> Unit) { + if (value.length <= maxLength) update(value) + } fun updateConfig(updated: ProxyConfig) { config = updated profile = profile.copy(config = updated) @@ -119,10 +122,10 @@ private fun ProfileEditorScreen(activity: Activity) { Modifier.fillMaxSize().padding(padding).padding(16.dp).verticalScroll(rememberScrollState()), verticalArrangement = Arrangement.spacedBy(10.dp), ) { - OutlinedTextField(profile.name, { name -> + OutlinedTextField(profile.name, { name -> acceptText(name, 256) { profile = profile.copy(name = name) saveProfile() - }, label = { Text("Profile name (optional)") }, supportingText = { Text("Defaults to the proxy host") }, singleLine = true, modifier = Modifier.fillMaxWidth()) + } }, label = { Text("Profile name (optional)") }, supportingText = { Text("Defaults to the proxy host") }, singleLine = true, modifier = Modifier.fillMaxWidth()) ExposedDropdownMenuBox(countryExpanded, { countryExpanded = it }) { OutlinedTextField( profile.countryCode.takeIf(String::isNotEmpty)?.let { code -> @@ -164,15 +167,15 @@ private fun ProfileEditorScreen(activity: Activity) { }) } } } - OutlinedTextField(config.host, { updateConfig(config.copy(host = it)) }, label = { Text(if (config.type == ProxyType.HTTPS) "HTTPS proxy hostname" else "Destination SSH hostname") }, singleLine = true, modifier = Modifier.fillMaxWidth()) + OutlinedTextField(config.host, { value -> acceptText(value, 253) { updateConfig(config.copy(host = it)) } }, label = { Text(if (config.type == ProxyType.HTTPS) "HTTPS proxy hostname" else "Destination SSH hostname") }, singleLine = true, modifier = Modifier.fillMaxWidth()) OutlinedTextField(portText, { value -> portText = value val port = value.toIntOrNull() if (port == null) error = "Port must be between 1 and 65535" else updateConfig(config.copy(port = port)) }, label = { Text("Port") }, singleLine = true, modifier = Modifier.fillMaxWidth()) - OutlinedTextField(config.username, { updateConfig(config.copy(username = it)) }, label = { Text(if (config.type == ProxyType.HTTPS) "Basic Auth username" else "SSH username") }, singleLine = true, modifier = Modifier.fillMaxWidth()) - OutlinedTextField(config.password, { updateConfig(config.copy(password = it)) }, label = { Text(if (config.type == ProxyType.HTTPS) "Password" else "SSH password (optional)") }, singleLine = true, visualTransformation = PasswordVisualTransformation(), modifier = Modifier.fillMaxWidth()) + OutlinedTextField(config.username, { value -> acceptText(value, 4_096) { updateConfig(config.copy(username = it)) } }, label = { Text(if (config.type == ProxyType.HTTPS) "Basic Auth username" else "SSH username") }, singleLine = true, modifier = Modifier.fillMaxWidth()) + OutlinedTextField(config.password, { value -> acceptText(value, 16_384) { updateConfig(config.copy(password = it)) } }, label = { Text(if (config.type == ProxyType.HTTPS) "Password" else "SSH password (optional)") }, singleLine = true, visualTransformation = PasswordVisualTransformation(), modifier = Modifier.fillMaxWidth()) if (config.type == ProxyType.HTTPS) Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) { Column(Modifier.weight(1f)) { Text("Allow self-signed proxy certificate") @@ -185,7 +188,7 @@ private fun ProfileEditorScreen(activity: Activity) { } if (config.type != ProxyType.HTTPS) { - OutlinedTextField(config.privateKey, { updateConfig(config.copy(privateKey = it)) }, label = { Text("Private key (optional)") }, supportingText = { Text("PEM or OpenSSH format. Passphrase-protected keys are not supported.") }, minLines = 3, modifier = Modifier.fillMaxWidth()) + OutlinedTextField(config.privateKey, { value -> acceptText(value, 64 * 1024) { updateConfig(config.copy(privateKey = it)) } }, label = { Text("Private key (optional)") }, supportingText = { Text("PEM or OpenSSH format. Passphrase-protected keys are not supported.") }, minLines = 3, modifier = Modifier.fillMaxWidth()) if (config.password.isBlank() && config.privateKey.isBlank()) { Text( "No SSH password or private key is configured. Connection will only work if the server permits authentication without credentials.", @@ -203,7 +206,7 @@ private fun ProfileEditorScreen(activity: Activity) { if (config.type == ProxyType.SSH_JUMP) { HorizontalDivider() Text("Jump host", style = MaterialTheme.typography.titleMedium) - OutlinedTextField(config.jumpHost, { updateConfig(config.copy(jumpHost = it)) }, label = { Text("Jump SSH hostname") }, singleLine = true, modifier = Modifier.fillMaxWidth()) + OutlinedTextField(config.jumpHost, { value -> acceptText(value, 253) { updateConfig(config.copy(jumpHost = it)) } }, label = { Text("Jump SSH hostname") }, singleLine = true, modifier = Modifier.fillMaxWidth()) OutlinedTextField(jumpPortText, { value -> if (value.length <= 5 && value.all(Char::isDigit)) { jumpPortText = value @@ -215,9 +218,9 @@ private fun ProfileEditorScreen(activity: Activity) { Checkbox(config.sameJumpAuthentication, { updateConfig(config.copy(sameJumpAuthentication = it)) }) } if (!config.sameJumpAuthentication) { - OutlinedTextField(config.jumpUsername, { updateConfig(config.copy(jumpUsername = it)) }, label = { Text("Jump SSH username") }, singleLine = true, modifier = Modifier.fillMaxWidth()) - OutlinedTextField(config.jumpPassword, { updateConfig(config.copy(jumpPassword = it)) }, label = { Text("Jump SSH password (optional)") }, singleLine = true, visualTransformation = PasswordVisualTransformation(), modifier = Modifier.fillMaxWidth()) - OutlinedTextField(config.jumpPrivateKey, { updateConfig(config.copy(jumpPrivateKey = it)) }, label = { Text("Jump private key (optional)") }, minLines = 3, modifier = Modifier.fillMaxWidth()) + OutlinedTextField(config.jumpUsername, { value -> acceptText(value, 4_096) { updateConfig(config.copy(jumpUsername = it)) } }, label = { Text("Jump SSH username") }, singleLine = true, modifier = Modifier.fillMaxWidth()) + OutlinedTextField(config.jumpPassword, { value -> acceptText(value, 16_384) { updateConfig(config.copy(jumpPassword = it)) } }, label = { Text("Jump SSH password (optional)") }, singleLine = true, visualTransformation = PasswordVisualTransformation(), modifier = Modifier.fillMaxWidth()) + OutlinedTextField(config.jumpPrivateKey, { value -> acceptText(value, 64 * 1024) { updateConfig(config.copy(jumpPrivateKey = it)) } }, label = { Text("Jump private key (optional)") }, minLines = 3, modifier = Modifier.fillMaxWidth()) if (config.jumpPassword.isBlank() && config.jumpPrivateKey.isBlank()) { Text( "No jump password or private key is configured. Connection will only work if the jump server permits authentication without credentials.", @@ -248,7 +251,7 @@ private fun ProfileEditorScreen(activity: Activity) { DnsProvider.entries.forEach { provider -> DropdownMenuItem(text = { Text(provider.title) }, onClick = { updateConfig(config.copy(dnsProvider = provider)); dnsExpanded = false }) } } } - if (config.dnsProvider == DnsProvider.CUSTOM) OutlinedTextField(config.customDohUrl, { updateConfig(config.copy(customDohUrl = it)) }, label = { Text("Custom DoH URL") }, singleLine = true, modifier = Modifier.fillMaxWidth()) + if (config.dnsProvider == DnsProvider.CUSTOM) OutlinedTextField(config.customDohUrl, { value -> acceptText(value, 2_048) { updateConfig(config.copy(customDohUrl = it)) } }, label = { Text("Custom DoH URL") }, singleLine = true, modifier = Modifier.fillMaxWidth()) error?.let { Text(it, color = MaterialTheme.colorScheme.error) } Text("Changes are saved automatically.", style = MaterialTheme.typography.bodySmall) } diff --git a/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt b/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt index f13ac3b..2398f5b 100644 --- a/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt +++ b/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt @@ -74,6 +74,7 @@ import net.megaproxy487.data.FoxyProxyParser import net.megaproxy487.data.PortableConfiguration import net.megaproxy487.data.ProxyListParser import net.megaproxy487.data.SuperProxyParser +import net.megaproxy487.data.readConfigText import net.megaproxy487.model.ProfileColors import net.megaproxy487.model.ProxyProfile import net.megaproxy487.model.ProxyType @@ -161,7 +162,7 @@ private fun SettingsScreen(activity: Activity) { val importDocument = rememberLauncherForActivityResult(ActivityResultContracts.OpenDocument()) { uri -> if (uri != null) { runCatching { - val text = activity.contentResolver.openInputStream(uri)?.bufferedReader()?.use { it.readText() } + val text = activity.contentResolver.openInputStream(uri)?.buffered()?.use { it.readConfigText() } ?: error("Could not read the selected file") val isJson = activity.contentResolver.getType(uri) == "application/json" || uri.lastPathSegment.orEmpty().substringAfterLast('.', "").equals("json", true) || diff --git a/app/src/main/java/net/megaproxy487/SettingsActivities.kt b/app/src/main/java/net/megaproxy487/SettingsActivities.kt index f74239d..3ee5056 100644 --- a/app/src/main/java/net/megaproxy487/SettingsActivities.kt +++ b/app/src/main/java/net/megaproxy487/SettingsActivities.kt @@ -282,7 +282,7 @@ private fun TlsFingerprintScreen(activity: Activity) { if (settings.tlsProfile == TlsProfile.CUSTOM) { OutlinedTextField( settings.customJa3, - { save(customJa3 = it) }, + { if (it.length <= 64 * 1024) save(customJa3 = it) }, label = { Text("JA3: version,ciphers,extensions,groups,points") }, minLines = 2, modifier = Modifier.fillMaxWidth(), diff --git a/app/src/main/java/net/megaproxy487/data/ConfigStore.kt b/app/src/main/java/net/megaproxy487/data/ConfigStore.kt index d75dae7..c141cef 100644 --- a/app/src/main/java/net/megaproxy487/data/ConfigStore.kt +++ b/app/src/main/java/net/megaproxy487/data/ConfigStore.kt @@ -120,7 +120,7 @@ class ConfigStore(context: Context) { if (stored != null) { migrateGlobalIpv6ToProfiles(stored) val decoded = decodeGlobalConnectionSettings(stored) - if (!JSONObject(stored).has("sshProfile")) { + if (!runCatching { JSONObject(stored).has("sshProfile") }.getOrDefault(false)) { val upgraded = decoded.copy(sshProfile = activeProfile().config.sshProfile) saveGlobalConnectionSettings(upgraded) return upgraded diff --git a/app/src/main/java/net/megaproxy487/data/ConfigTransfer.kt b/app/src/main/java/net/megaproxy487/data/ConfigTransfer.kt index 662d4a9..7b7a1cf 100644 --- a/app/src/main/java/net/megaproxy487/data/ConfigTransfer.kt +++ b/app/src/main/java/net/megaproxy487/data/ConfigTransfer.kt @@ -88,6 +88,7 @@ object ConfigTransfer { val version = root.optInt("version", 0) require(version in 1..SCHEMA_VERSION) { "Unsupported MegaProxy configuration version: $version" } val array = root.optJSONArray("profiles") ?: error("The configuration has no profiles") + require(array.length() <= MAX_IMPORTED_PROFILES) { "The configuration contains more than $MAX_IMPORTED_PROFILES profiles" } val decoded = (0 until array.length()).map { index -> runCatching { decodeProfile(array.getJSONObject(index), index) } } @@ -118,8 +119,10 @@ object ConfigTransfer { val failover = root.optJSONObject("failover") ?: JSONObject() val parsedTls = enumValue(tls.optString("fingerprint"), TlsProfile.DEFAULT) val packages = routing.optJSONArray("selectedPackages")?.let { array -> + require(array.length() <= MAX_IMPORTED_PACKAGES) { "The configuration contains too many application package names" } (0 until array.length()).mapNotNull { index -> - array.optString(index).trim().takeIf { it.matches(Regex("[A-Za-z0-9_.]+")) } + array.optString(index).takeIf { it.length <= 256 }?.trim() + ?.takeIf { it.matches(Regex("[A-Za-z0-9_.]+")) } }.toSet() }.orEmpty() return GlobalConnectionSettings( @@ -132,9 +135,12 @@ object ConfigTransfer { sshRotationMb = ssh.optInt("rotationMb", 0).coerceIn(0, 10240), failoverMode = enumValue(failover.optString("mode"), FailoverMode.DISABLED), failoverProfileIds = failover.optJSONArray("profileIds")?.let { array -> - (0 until array.length()).mapNotNull { array.optString(it).takeIf(String::isNotBlank) } + require(array.length() <= MAX_IMPORTED_PROFILES) { "The configuration contains too many failover profile IDs" } + (0 until array.length()).mapNotNull { + array.optString(it).takeIf { id -> id.isNotBlank() && id.length <= 256 } + } }.orEmpty(), - customJa3 = tls.optString("customJa3"), + customJa3 = tls.limitedString("customJa3", 64 * 1024), selectedPackages = packages, routeAllApps = routing.optBoolean("routeAllApps", true), bypassLocalNetworks = routing.optBoolean("bypassLocalNetworks", true), @@ -191,41 +197,45 @@ object ConfigTransfer { val tls = item.optJSONObject("tls") ?: JSONObject() val dns = item.optJSONObject("dns") ?: JSONObject() val routing = item.optJSONObject("routing") ?: JSONObject() - val host = proxy.optString("host").trim() + val host = proxy.limitedString("host", 253).trim() require(host.isNotEmpty() && !host.contains(Regex("[/:\\s]"))) + val jump = proxy.optJSONObject("jump") val packages = routing.optJSONArray("selectedPackages")?.let { array -> + require(array.length() <= MAX_IMPORTED_PACKAGES) { "A profile contains too many application package names" } (0 until array.length()).mapNotNull { packageIndex -> - array.optString(packageIndex).trim().takeIf { it.matches(Regex("[A-Za-z0-9_.]+")) } + array.optString(packageIndex).takeIf { it.length <= 256 }?.trim() + ?.takeIf { it.matches(Regex("[A-Za-z0-9_.]+")) } }.toSet() }.orEmpty() return ProxyProfile( - id = item.optString("id").ifBlank { "import-$index" }, - name = item.optString("name").trim(), + id = item.limitedString("id", 256).ifBlank { "import-$index" }, + name = item.limitedString("name", 256).trim(), colorIndex = item.optInt("color", index), - countryCode = item.optString("countryCode").uppercase().takeIf { it.matches(Regex("[A-Z]{2}")) }.orEmpty(), + countryCode = item.limitedString("countryCode", 2).uppercase() + .takeIf { it.matches(Regex("[A-Z]{2}")) }.orEmpty(), config = ProxyConfig( type = enumValue(proxy.optString("type"), ProxyType.HTTPS), host = host, port = proxy.optInt("port", 443).takeIf { it in 1..65535 } ?: 443, - username = proxy.optString("username"), - password = proxy.optString("password"), - privateKey = proxy.optString("privateKey"), + username = proxy.limitedString("username", 4_096), + password = proxy.limitedString("password", 16_384), + privateKey = proxy.limitedString("privateKey", 64 * 1024), sshProfile = enumValue(proxy.optString("sshProfile"), SshProfile.DEFAULT), - trustedHostKey = proxy.optString("trustedHostKey"), + trustedHostKey = proxy.limitedString("trustedHostKey", 256), acceptAnyHostKey = proxy.optBoolean("acceptAnyHostKey", false), - jumpHost = proxy.optJSONObject("jump")?.optString("host").orEmpty(), - jumpPort = proxy.optJSONObject("jump")?.optInt("port", 22) ?: 22, - sameJumpAuthentication = proxy.optJSONObject("jump")?.optBoolean("sameAuthentication", true) ?: true, - jumpUsername = proxy.optJSONObject("jump")?.optString("username").orEmpty(), - jumpPassword = proxy.optJSONObject("jump")?.optString("password").orEmpty(), - jumpPrivateKey = proxy.optJSONObject("jump")?.optString("privateKey").orEmpty(), - jumpTrustedHostKey = proxy.optJSONObject("jump")?.optString("trustedHostKey").orEmpty(), - jumpAcceptAnyHostKey = proxy.optJSONObject("jump")?.optBoolean("acceptAnyHostKey", false) ?: false, + jumpHost = jump?.limitedString("host", 253).orEmpty(), + jumpPort = jump?.optInt("port", 22) ?: 22, + sameJumpAuthentication = jump?.optBoolean("sameAuthentication", true) ?: true, + jumpUsername = jump?.limitedString("username", 4_096).orEmpty(), + jumpPassword = jump?.limitedString("password", 16_384).orEmpty(), + jumpPrivateKey = jump?.limitedString("privateKey", 64 * 1024).orEmpty(), + jumpTrustedHostKey = jump?.limitedString("trustedHostKey", 256).orEmpty(), + jumpAcceptAnyHostKey = jump?.optBoolean("acceptAnyHostKey", false) ?: false, allowInvalidProxyCertificate = proxy.optBoolean("allowInvalidProxyCertificate", false), profile = enumValue(tls.optString("fingerprint"), TlsProfile.DEFAULT), - customJa3 = tls.optString("customJa3"), + customJa3 = tls.limitedString("customJa3", 64 * 1024), dnsProvider = enumValue(dns.optString("provider"), DnsProvider.CLOUDFLARE), - customDohUrl = dns.optString("customDohUrl"), + customDohUrl = dns.limitedString("customDohUrl", 2_048), selectedPackages = packages, allowIpv6 = routing.optBoolean("allowIpv6", false), routeAllApps = routing.optBoolean("routeAllApps", false), @@ -234,6 +244,10 @@ object ConfigTransfer { ) } + private fun JSONObject.limitedString(name: String, maxLength: Int): String = optString(name).also { + require(it.length <= maxLength) { "$name is too long" } + } + private inline fun > enumValue(value: String, default: T): T = enumValues().firstOrNull { it.name == value } ?: default diff --git a/app/src/main/java/net/megaproxy487/data/FoxyProxyParser.kt b/app/src/main/java/net/megaproxy487/data/FoxyProxyParser.kt index 76a7799..c1ef4a4 100644 --- a/app/src/main/java/net/megaproxy487/data/FoxyProxyParser.kt +++ b/app/src/main/java/net/megaproxy487/data/FoxyProxyParser.kt @@ -12,6 +12,9 @@ object FoxyProxyParser { val data = root.optJSONArray("data") ?: error("The FoxyProxy configuration has no data array") require(data.length() > 0) { "The FoxyProxy proxy list is empty" } + require(data.length() <= MAX_IMPORTED_PROFILES) { + "The FoxyProxy configuration contains more than $MAX_IMPORTED_PROFILES entries" + } var skippedNonHttps = 0 val proxies = buildList { @@ -33,8 +36,8 @@ object FoxyProxyParser { } private fun parseProxy(item: JSONObject, position: Int): ImportedProxy? { - val host = item.optString("hostname").trim().ifEmpty { - item.optString("address").trim() + val host = item.limitedString("hostname", 253).trim().ifEmpty { + item.limitedString("address", 253).trim() } require(host.isNotEmpty() && !host.contains(Regex("[/:\\s]"))) { "FoxyProxy entry $position has an invalid hostname" @@ -47,14 +50,18 @@ object FoxyProxyParser { val countryCode = item.optString("cc").trim().uppercase() .takeIf { it.matches(Regex("[A-Z]{2}")) }.orEmpty() return ImportedProxy( - name = item.optString("title").trim(), + name = item.limitedString("title", 256).trim(), countryCode = countryCode, config = ProxyConfig( host = host, port = port, - username = item.optString("username"), - password = item.optString("password"), + username = item.limitedString("username", 4_096), + password = item.limitedString("password", 16_384), ), ) } + + private fun JSONObject.limitedString(name: String, maxLength: Int): String = optString(name).also { + require(it.length <= maxLength) { "$name is too long" } + } } diff --git a/app/src/main/java/net/megaproxy487/data/LimitedInput.kt b/app/src/main/java/net/megaproxy487/data/LimitedInput.kt new file mode 100644 index 0000000..e279dbf --- /dev/null +++ b/app/src/main/java/net/megaproxy487/data/LimitedInput.kt @@ -0,0 +1,22 @@ +package net.megaproxy487.data + +import java.io.ByteArrayOutputStream +import java.io.InputStream + +const val MAX_CONFIG_FILE_BYTES = 4 * 1024 * 1024 +const val MAX_IMPORTED_PROFILES = 1_000 +const val MAX_IMPORTED_PACKAGES = 10_000 + +fun InputStream.readConfigText(): String { + val output = ByteArrayOutputStream(64 * 1024) + val buffer = ByteArray(16 * 1024) + var total = 0 + while (true) { + val count = read(buffer) + if (count < 0) break + total += count + require(total <= MAX_CONFIG_FILE_BYTES) { "Configuration file is larger than 4 MB" } + output.write(buffer, 0, count) + } + return output.toString(Charsets.UTF_8.name()) +} diff --git a/app/src/main/java/net/megaproxy487/data/ProxyListParser.kt b/app/src/main/java/net/megaproxy487/data/ProxyListParser.kt index e2b0da2..aaafa0b 100644 --- a/app/src/main/java/net/megaproxy487/data/ProxyListParser.kt +++ b/app/src/main/java/net/megaproxy487/data/ProxyListParser.kt @@ -11,8 +11,11 @@ data class ProxyListImportResult(val proxies: List, val skippedNo object ProxyListParser { fun parse(text: String): Result = runCatching { val lines = text.lineSequence().map(String::trim) - .filter { it.isNotEmpty() && !it.startsWith("#") }.toList() + .filter { it.isNotEmpty() && !it.startsWith("#") } + .take(MAX_IMPORTED_PROFILES + 1) + .toList() require(lines.isNotEmpty()) { "The proxy list is empty" } + require(lines.size <= MAX_IMPORTED_PROFILES) { "The proxy list contains more than $MAX_IMPORTED_PROFILES entries" } var skippedNonHttps = 0 val proxies = lines.mapIndexedNotNull { index, line -> val uri = runCatching { URI(line) }.getOrElse { error("Line ${index + 1} is not a valid URI") } @@ -27,12 +30,15 @@ object ProxyListParser { } private fun parseLine(uri: URI, lineNumber: Int): ImportedProxy { + require(uri.toString().length <= 64 * 1024) { "Line $lineNumber is too long" } val host = uri.host?.takeIf(String::isNotBlank) ?: error("Line $lineNumber has no proxy host") val userInfo = uri.rawUserInfo ?: error("Line $lineNumber has no Basic Auth credentials") val separator = userInfo.indexOf(':') require(separator >= 0) { "Line $lineNumber has no Basic Auth password" } val username = decodeUriComponent(userInfo.substring(0, separator)) val password = decodeUriComponent(userInfo.substring(separator + 1)) + require(username.length <= 4_096) { "Line $lineNumber has an excessively long username" } + require(password.length <= 16_384) { "Line $lineNumber has an excessively long password" } val query = parseQuery(uri.rawQuery) return ImportedProxy( name = query["title"].orEmpty(), @@ -48,7 +54,9 @@ object ProxyListParser { } private fun parseQuery(rawQuery: String?): Map = rawQuery.orEmpty() - .split('&').filter(String::isNotEmpty).associate { pair -> + .splitToSequence('&').filter(String::isNotEmpty).take(101).toList().also { + require(it.size <= 100) { "A proxy URL contains too many query parameters" } + }.associate { pair -> val separator = pair.indexOf('=') if (separator < 0) decode(pair) to "" else decode(pair.substring(0, separator)) to decode(pair.substring(separator + 1)) diff --git a/app/src/main/java/net/megaproxy487/vpn/DiagnosticLog.kt b/app/src/main/java/net/megaproxy487/vpn/DiagnosticLog.kt index cf271ae..120cbf7 100644 --- a/app/src/main/java/net/megaproxy487/vpn/DiagnosticLog.kt +++ b/app/src/main/java/net/megaproxy487/vpn/DiagnosticLog.kt @@ -5,11 +5,13 @@ import android.os.Looper import androidx.compose.runtime.mutableStateListOf import java.time.LocalTime import java.time.format.DateTimeFormatter +import java.util.concurrent.atomic.AtomicInteger object DiagnosticLog { private const val MAX_ENTRIES = 200 private val timeFormat = DateTimeFormatter.ofPattern("HH:mm:ss.SSS") private val mainHandler = Handler(Looper.getMainLooper()) + private val pendingUiUpdates = AtomicInteger(0) val entries = mutableStateListOf() @@ -20,12 +22,19 @@ object DiagnosticLog { entries.add("${LocalTime.now().format(timeFormat)} $safeMessage") while (entries.size > MAX_ENTRIES) entries.removeAt(0) } - if (Looper.myLooper() == Looper.getMainLooper()) append() else mainHandler.post(append) + if (Looper.myLooper() == Looper.getMainLooper()) append() + else if (pendingUiUpdates.incrementAndGet() <= MAX_PENDING_UI_UPDATES) { + mainHandler.post { + try { append() } finally { pendingUiUpdates.decrementAndGet() } + } + } else pendingUiUpdates.decrementAndGet() } fun clear() { if (Looper.myLooper() == Looper.getMainLooper()) entries.clear() else mainHandler.post { entries.clear() } } + + private const val MAX_PENDING_UI_UPDATES = 512 } enum class TestState { IDLE, RUNNING, SUCCEEDED, FAILED } @@ -34,6 +43,7 @@ object TestDiagnosticLog { private const val MAX_ENTRIES = 300 private val timeFormat = DateTimeFormatter.ofPattern("HH:mm:ss.SSS") private val mainHandler = Handler(Looper.getMainLooper()) + private val pendingUiUpdates = AtomicInteger(0) val entries = mutableStateListOf() private val mutableState = androidx.compose.runtime.mutableStateOf(TestState.IDLE) private val mutableExitIp = androidx.compose.runtime.mutableStateOf(null) @@ -41,7 +51,12 @@ object TestDiagnosticLog { val exitIp: androidx.compose.runtime.State = mutableExitIp private fun onMain(action: () -> Unit) { - if (Looper.myLooper() == Looper.getMainLooper()) action() else mainHandler.post(action) + if (Looper.myLooper() == Looper.getMainLooper()) action() + else if (pendingUiUpdates.incrementAndGet() <= MAX_PENDING_UI_UPDATES) { + mainHandler.post { + try { action() } finally { pendingUiUpdates.decrementAndGet() } + } + } else pendingUiUpdates.decrementAndGet() } fun reset() = onMain { @@ -74,4 +89,6 @@ object TestDiagnosticLog { if (message != null) add(message) mutableState.value = TestState.FAILED } + + private const val MAX_PENDING_UI_UPDATES = 512 } diff --git a/app/src/main/java/net/megaproxy487/vpn/PersistentDiagnosticLog.kt b/app/src/main/java/net/megaproxy487/vpn/PersistentDiagnosticLog.kt index 5db8efe..cf5bd6f 100644 --- a/app/src/main/java/net/megaproxy487/vpn/PersistentDiagnosticLog.kt +++ b/app/src/main/java/net/megaproxy487/vpn/PersistentDiagnosticLog.kt @@ -7,7 +7,9 @@ import java.io.OutputStream import java.io.RandomAccessFile import java.time.Instant import java.util.UUID -import java.util.concurrent.Executors +import java.util.concurrent.ArrayBlockingQueue +import java.util.concurrent.ThreadPoolExecutor +import java.util.concurrent.TimeUnit object PersistentDiagnosticLog { const val DEFAULT_LIMIT_MB = 3 @@ -16,9 +18,13 @@ object PersistentDiagnosticLog { private const val CURRENT_FILE = "diagnostic.log" private const val PREVIOUS_FILE = "diagnostic.1.log" - private val executor = Executors.newSingleThreadExecutor { task -> - Thread(task, "megaproxy-diagnostic-log").apply { isDaemon = true } - } + // Native networking can emit diagnostics faster than flash storage can append them. + // Keep memory bounded under an error storm; oldest pending diagnostics are expendable. + private val executor = ThreadPoolExecutor( + 1, 1, 0L, TimeUnit.MILLISECONDS, ArrayBlockingQueue(2_048), + { task -> Thread(task, "megaproxy-diagnostic-log").apply { isDaemon = true } }, + ThreadPoolExecutor.DiscardOldestPolicy(), + ) private val lock = Any() private val sessionId = UUID.randomUUID().toString().take(8) @Volatile private var directory: File? = null @@ -97,15 +103,15 @@ object PersistentDiagnosticLog { } fun copyTo(output: OutputStream) { - executor.submit { - synchronized(lock) { - val logDirectory = directory ?: return@synchronized - listOf(PREVIOUS_FILE, CURRENT_FILE).forEach { name -> - val file = File(logDirectory, name) - if (file.isFile) file.inputStream().buffered().use { it.copyTo(output) } - } + // A bounded logger queue may discard diagnostics, but an export must never lose + // its task and then wait forever on a discarded Future. + synchronized(lock) { + val logDirectory = directory ?: return + listOf(PREVIOUS_FILE, CURRENT_FILE).forEach { name -> + val file = File(logDirectory, name) + if (file.isFile) file.inputStream().buffered().use { it.copyTo(output) } } - }.get() + } } fun clear() { @@ -182,7 +188,7 @@ object PrivacyLogSanitizer { private val privatePath = Regex("(?i)/(?:data|storage|sdcard|mnt)/[^\\s]+") private val packageName = Regex("(? @@ -203,7 +222,6 @@ class ProxyVpnService : VpnService() { getSystemService(NotificationManager::class.java).notify(NOTIFICATION_ID, notification(message)) } if (exitIp != null) TestDiagnosticLog.succeed(exitIp) else TestDiagnosticLog.fail() - testRunning.set(false) if (temporaryVpn) { stopTunnel() stopSelf() @@ -393,6 +411,7 @@ class ProxyVpnService : VpnService() { ).any(value::contains) } + @Synchronized private fun handleProbableBlocking(profileId: String, signal: BlockingSignal) { val store = ConfigStore(this) val settings = store.globalConnectionSettings() @@ -414,20 +433,22 @@ class ProxyVpnService : VpnService() { else -> emptyList() }.filter { it.id != profileId && it.id !in attemptedFailoverProfiles } val next = candidates.firstOrNull() ?: run { - failoverNotice = "$warning No eligible fallback profile remains." - store.setFailoverState(false, failoverNotice) - VpnRuntimeState.updateNetworkWarning(failoverNotice) - getSystemService(NotificationManager::class.java).notify(NOTIFICATION_ID, notification(failoverNotice!!)) + val notice = "$warning No eligible fallback profile remains." + failoverNotice = notice + store.setFailoverState(false, notice) + VpnRuntimeState.updateNetworkWarning(notice) + getSystemService(NotificationManager::class.java).notify(NOTIFICATION_ID, notification(notice)) return } attemptedFailoverProfiles += next.id store.setConnectionProfile(next.id) - failoverNotice = "Failover active: switched to ${next.displayName}. Location and exit IP may have changed." - store.setFailoverState(true, failoverNotice) - VpnRuntimeState.updateNetworkWarning(failoverNotice) + val notice = "Failover active: switched to ${next.displayName}. Location and exit IP may have changed." + failoverNotice = notice + store.setFailoverState(true, notice) + VpnRuntimeState.updateNetworkWarning(notice) VpnRuntimeState.updateSystem(isAlwaysOnMode, isLockdownMode, next.id) if (tunnel != null) stopTunnel(removeForeground = false) - getSystemService(NotificationManager::class.java).notify(NOTIFICATION_ID, notification(failoverNotice!!)) + getSystemService(NotificationManager::class.java).notify(NOTIFICATION_ID, notification(notice)) } private fun handleRuntimeDiagnostic(profileId: String, detail: String) { diff --git a/app/src/main/java/net/megaproxy487/vpn/SshHostKeyPromptState.kt b/app/src/main/java/net/megaproxy487/vpn/SshHostKeyPromptState.kt index 8450e34..01b118c 100644 --- a/app/src/main/java/net/megaproxy487/vpn/SshHostKeyPromptState.kt +++ b/app/src/main/java/net/megaproxy487/vpn/SshHostKeyPromptState.kt @@ -1,5 +1,7 @@ package net.megaproxy487.vpn +import android.os.Handler +import android.os.Looper import androidx.compose.runtime.mutableStateOf data class PendingSshHostKey( @@ -12,13 +14,19 @@ data class PendingSshHostKey( ) object SshHostKeyPromptState { + private val mainHandler = Handler(Looper.getMainLooper()) val pending = mutableStateOf(null) fun show(value: PendingSshHostKey) { - pending.value = value + update(value) } fun clear() { - pending.value = null + update(null) + } + + private fun update(value: PendingSshHostKey?) { + if (Looper.myLooper() == Looper.getMainLooper()) pending.value = value + else mainHandler.post { pending.value = value } } } diff --git a/app/src/test/java/net/megaproxy487/data/LimitedInputTest.kt b/app/src/test/java/net/megaproxy487/data/LimitedInputTest.kt new file mode 100644 index 0000000..149f816 --- /dev/null +++ b/app/src/test/java/net/megaproxy487/data/LimitedInputTest.kt @@ -0,0 +1,19 @@ +package net.megaproxy487.data + +import java.io.ByteArrayInputStream +import org.junit.Assert.assertEquals +import org.junit.Assert.assertThrows +import org.junit.Test + +class LimitedInputTest { + @Test + fun `reads a normal configuration`() { + assertEquals("config", ByteArrayInputStream("config".toByteArray()).readConfigText()) + } + + @Test + fun `rejects an oversized configuration`() { + val input = ByteArrayInputStream(ByteArray(MAX_CONFIG_FILE_BYTES + 1)) + assertThrows(IllegalArgumentException::class.java) { input.readConfigText() } + } +} diff --git a/native/mobile/bootstrap.go b/native/mobile/bootstrap.go index a70d434..6148f9f 100644 --- a/native/mobile/bootstrap.go +++ b/native/mobile/bootstrap.go @@ -38,8 +38,9 @@ func ResolveProxy(host string, protector Protector, reporter Reporter) (string, }, } transport := &http.Transport{ - Proxy: nil, - TLSHandshakeTimeout: 10 * time.Second, + Proxy: nil, + TLSHandshakeTimeout: 10 * time.Second, + MaxResponseHeaderBytes: 64 * 1024, DialContext: func(ctx context.Context, _, _ string) (net.Conn, error) { return dialer.DialContext(ctx, "tcp", bootstrapDoHIP) }, diff --git a/native/mobile/dialer.go b/native/mobile/dialer.go index 2c70aab..ccfbee4 100644 --- a/native/mobile/dialer.go +++ b/native/mobile/dialer.go @@ -30,6 +30,8 @@ type httpsConnectDialer struct { cacheMu sync.Mutex sessionCache tls.ClientSessionCache dohClient *http.Client + dohInFlight chan struct{} + connections chan struct{} } func (d *httpsConnectDialer) Close() error { @@ -43,7 +45,23 @@ func (d *httpsConnectDialer) Close() error { } func (d *httpsConnectDialer) DialContext(ctx context.Context, metadata *M.Metadata) (net.Conn, error) { - return d.connectTarget(ctx, metadata.DestinationAddress()) + d.cacheMu.Lock() + if d.connections == nil { + d.connections = make(chan struct{}, 256) + } + connections := d.connections + d.cacheMu.Unlock() + select { + case connections <- struct{}{}: + case <-ctx.Done(): + return nil, ctx.Err() + } + connection, err := d.connectTarget(ctx, metadata.DestinationAddress()) + if err != nil { + <-connections + return nil, err + } + return &slotConn{Conn: connection, release: func() { <-connections }}, nil } func (d *httpsConnectDialer) connectTarget(ctx context.Context, target string) (net.Conn, error) { @@ -109,7 +127,10 @@ func (d *httpsConnectDialer) connectTarget(ctx context.Context, target string) ( } } tlsStarted := time.Now() - if err := uconn.HandshakeContext(ctx); err != nil { + handshakeContext, cancelHandshake := context.WithTimeout(ctx, 15*time.Second) + err = uconn.HandshakeContext(handshakeContext) + cancelHandshake() + if err != nil { recordConnectionOutcome(false) reason := errorClass(err) report(d.reporter, "event=connection conn=%d mode=proxy stage=tls_handshake result=failed reason=%s elapsed_ms=%d dpi_hint=%s fingerprint=%s", connectionID, reason, time.Since(tlsStarted).Milliseconds(), tlsInterferenceHint(reason), d.config.Profile) @@ -133,7 +154,9 @@ func (d *httpsConnectDialer) connectTarget(ctx context.Context, target string) ( report(d.reporter, "event=connection conn=%d mode=proxy stage=connect_write result=failed reason=%s", connectionID, errorClass(err)) return nil, err } - reader := bufio.NewReader(uconn) + // A peer-controlled CONNECT header must not be allowed to grow the process heap + // without bound. Any tunneled bytes already buffered after the header are retained. + reader := bufio.NewReader(&limitedHeaderReader{reader: uconn, remaining: 64 * 1024}) response, err := http.ReadResponse(reader, &http.Request{Method: http.MethodConnect}) if err != nil { recordConnectionOutcome(false) @@ -209,9 +232,13 @@ func (d *httpsConnectDialer) DialUDP(metadata *M.Metadata) (net.PacketConn, erro if d.dohClient == nil { d.dohClient = newDoHHTTPClient(d.connectTarget) } + if d.dohInFlight == nil { + d.dohInFlight = make(chan struct{}, 8) + } client := d.dohClient + limiter := d.dohInFlight d.cacheMu.Unlock() - return newDoHPacketConnWithClient(d.config, d.reporter, d.connectTarget, d.config.DoHURL, client), nil + return newDoHPacketConnWithClient(d.config, d.reporter, d.connectTarget, d.config.DoHURL, client, limiter), nil } type bufferedConn struct { @@ -221,6 +248,35 @@ type bufferedConn struct { func (c *bufferedConn) Read(p []byte) (int, error) { return c.reader.Read(p) } +type limitedHeaderReader struct { + reader io.Reader + remaining int + window uint32 + done bool +} + +func (r *limitedHeaderReader) Read(p []byte) (int, error) { + if r.done { + return r.reader.Read(p) + } + if r.remaining <= 0 { + return 0, errors.New("proxy CONNECT response headers exceed 64 KB") + } + if len(p) > r.remaining { + p = p[:r.remaining] + } + n, err := r.reader.Read(p) + r.remaining -= n + for _, value := range p[:n] { + r.window = r.window<<8 | uint32(value) + if r.window == 0x0d0a0d0a { + r.done = true + break + } + } + return n, err +} + type diagnosticConn struct { net.Conn connectionID uint64 @@ -229,6 +285,18 @@ type diagnosticConn struct { transferred atomic.Uint64 } +type slotConn struct { + net.Conn + release func() + once sync.Once +} + +func (c *slotConn) Close() error { + err := c.Conn.Close() + c.once.Do(c.release) + return err +} + func (c *diagnosticConn) reportError(operation string, err error) { if err != nil && !errors.Is(err, io.EOF) && !errors.Is(err, net.ErrClosed) { c.once.Do(func() { diff --git a/native/mobile/dialer_test.go b/native/mobile/dialer_test.go index 3b06e29..094ee8d 100644 --- a/native/mobile/dialer_test.go +++ b/native/mobile/dialer_test.go @@ -1,6 +1,10 @@ package mobile -import "testing" +import ( + "bytes" + "io" + "testing" +) func TestLocalNetworkTargets(t *testing.T) { local := []string{ @@ -19,6 +23,27 @@ func TestLocalNetworkTargets(t *testing.T) { } } +func TestLimitedHeaderReaderRejectsOversizedHeaders(t *testing.T) { + raw := bytes.Repeat([]byte{'x'}, 32) + reader := &limitedHeaderReader{reader: bytes.NewReader(raw), remaining: 16} + if _, err := io.ReadAll(reader); err == nil { + t.Fatal("expected oversized CONNECT headers to fail") + } +} + +func TestLimitedHeaderReaderBecomesUnlimitedAfterHeaders(t *testing.T) { + body := bytes.Repeat([]byte{'b'}, 128) + raw := append([]byte("HTTP/1.1 200 OK\r\n\r\n"), body...) + reader := &limitedHeaderReader{reader: bytes.NewReader(raw), remaining: 64} + got, err := io.ReadAll(reader) + if err != nil { + t.Fatal(err) + } + if !bytes.Equal(got, raw) { + t.Fatalf("unexpected data length: got %d, want %d", len(got), len(raw)) + } +} + func TestPublicAndHostnameTargetsAreNotLocal(t *testing.T) { public := []string{"1.1.1.1:443", "8.8.8.8:53", "example.com:443", "[2606:4700:4700::1111]:443"} for _, target := range public { diff --git a/native/mobile/doh.go b/native/mobile/doh.go index 19c1095..0aa6de8 100644 --- a/native/mobile/doh.go +++ b/native/mobile/doh.go @@ -38,6 +38,7 @@ type dohPacketConn struct { connect func(context.Context, string) (net.Conn, error) url string replies chan dnsReply + inFlight chan struct{} closed chan struct{} closeOnce sync.Once deadlineMu sync.Mutex @@ -48,17 +49,18 @@ type dohPacketConn struct { } func newDoHPacketConn(c config, reporter Reporter, connect func(context.Context, string) (net.Conn, error), endpoint string) *dohPacketConn { - return newDoHPacketConnWithClient(c, reporter, connect, endpoint, newDoHHTTPClient(connect)) + return newDoHPacketConnWithClient(c, reporter, connect, endpoint, newDoHHTTPClient(connect), nil) } func newDoHHTTPClient(connect func(context.Context, string) (net.Conn, error)) *http.Client { transport := &http.Transport{ - Proxy: nil, - ForceAttemptHTTP2: true, - TLSHandshakeTimeout: 15 * time.Second, - MaxConnsPerHost: 2, - MaxIdleConnsPerHost: 2, - IdleConnTimeout: 90 * time.Second, + Proxy: nil, + ForceAttemptHTTP2: true, + TLSHandshakeTimeout: 15 * time.Second, + MaxConnsPerHost: 2, + MaxIdleConnsPerHost: 2, + IdleConnTimeout: 90 * time.Second, + MaxResponseHeaderBytes: 64 * 1024, DialContext: func(ctx context.Context, _, address string) (net.Conn, error) { return connect(ctx, address) }, @@ -66,11 +68,14 @@ func newDoHHTTPClient(connect func(context.Context, string) (net.Conn, error)) * return &http.Client{Transport: transport, Timeout: 20 * time.Second} } -func newDoHPacketConnWithClient(c config, reporter Reporter, connect func(context.Context, string) (net.Conn, error), endpoint string, client *http.Client) *dohPacketConn { +func newDoHPacketConnWithClient(c config, reporter Reporter, connect func(context.Context, string) (net.Conn, error), endpoint string, client *http.Client, limiter chan struct{}) *dohPacketConn { ctx, cancel := context.WithCancel(context.Background()) + if limiter == nil { + limiter = make(chan struct{}, 8) + } return &dohPacketConn{ config: c, reporter: reporter, connect: connect, url: endpoint, replies: make(chan dnsReply, 16), closed: make(chan struct{}), - client: client, context: ctx, cancel: cancel, + inFlight: limiter, client: client, context: ctx, cancel: cancel, } } @@ -92,7 +97,15 @@ func (c *dohPacketConn) WriteTo(payload []byte, addr net.Addr) (int, error) { } } query := append([]byte(nil), payload...) + select { + case c.inFlight <- struct{}{}: + case <-c.closed: + return 0, net.ErrClosed + case <-c.context.Done(): + return 0, c.context.Err() + } go func() { + defer func() { <-c.inFlight }() req, err := http.NewRequestWithContext(c.context, http.MethodPost, c.url, bytes.NewReader(query)) if err == nil { req.Header.Set("Accept", "application/dns-message") diff --git a/native/mobile/ssh_dialer.go b/native/mobile/ssh_dialer.go index e6e1ef3..2c37003 100644 --- a/native/mobile/ssh_dialer.go +++ b/native/mobile/ssh_dialer.go @@ -30,6 +30,7 @@ type sshDialer struct { sessionBytes atomic.Uint64 keepaliveStop chan struct{} dohClient *http.Client + dohInFlight chan struct{} } func (d *sshDialer) DialContext(ctx context.Context, metadata *M.Metadata) (net.Conn, error) { @@ -73,7 +74,9 @@ func (d *sshDialer) connectTarget(ctx context.Context, target string) (net.Conn, return nil, err } started := time.Now() - conn, err := client.Dial("tcp", target) + dialContext, cancelDial := context.WithTimeout(ctx, 20*time.Second) + conn, err := client.DialContext(dialContext, "tcp", target) + cancelDial() if err != nil { d.invalidate() report(d.reporter, "event=connection mode=ssh stage=direct_tcpip result=failed reason=%s", errorClass(err)) @@ -103,7 +106,7 @@ func (d *sshDialer) session(ctx context.Context) (*ssh.Client, error) { raw.Close() return nil, err } - nested, err := jump.Dial("tcp", d.config.address()) + nested, err := jump.DialContext(ctx, "tcp", d.config.address()) if err != nil { jump.Close() return nil, fmt.Errorf("jump host could not reach destination SSH host: %w", err) @@ -141,10 +144,17 @@ func newSSHClient(conn net.Conn, hostname, username, password, privateKey, trust } cfg := &ssh.ClientConfig{User: username, Auth: auth, HostKeyCallback: hostKeyCallback(trusted, acceptAny, hop), Timeout: 20 * time.Second} applySSHProfile(cfg, profile) + if err := conn.SetDeadline(time.Now().Add(20 * time.Second)); err != nil { + return nil, fmt.Errorf("set SSH %s handshake deadline: %w", hop, err) + } cc, channels, requests, err := ssh.NewClientConn(conn, net.JoinHostPort(hostname, "22"), cfg) if err != nil { return nil, fmt.Errorf("SSH %s handshake: %w", hop, err) } + if err := conn.SetDeadline(time.Time{}); err != nil { + cc.Close() + return nil, fmt.Errorf("clear SSH %s handshake deadline: %w", hop, err) + } report(reporter, "event=ssh_handshake hop=%s result=success profile=%s", hop, profile) return ssh.NewClient(cc, channels, requests), nil } @@ -224,16 +234,20 @@ func (d *sshDialer) DialUDP(metadata *M.Metadata) (net.PacketConn, error) { if metadata.DstPort != 53 { return nil, errUDPBlocked } - return newDoHPacketConnWithClient(d.config, d.reporter, d.connectTarget, d.config.DoHURL, d.sharedDoHClient()), nil + client, limiter := d.sharedDoHResources() + return newDoHPacketConnWithClient(d.config, d.reporter, d.connectTarget, d.config.DoHURL, client, limiter), nil } -func (d *sshDialer) sharedDoHClient() *http.Client { +func (d *sshDialer) sharedDoHResources() (*http.Client, chan struct{}) { d.mu.Lock() defer d.mu.Unlock() if d.dohClient == nil { d.dohClient = newDoHHTTPClient(d.connectTarget) } - return d.dohClient + if d.dohInFlight == nil { + d.dohInFlight = make(chan struct{}, 8) + } + return d.dohClient, d.dohInFlight } func (d *sshDialer) invalidate() { From 8f4e80a5a57de0dfd7d879fec39aff1caf3c7cd7 Mon Sep 17 00:00:00 2001 From: Andrey Prokopyuk Date: Tue, 1 Sep 2026 15:00:36 +0300 Subject: [PATCH 22/41] Fix possible security issues --- app/src/main/AndroidManifest.xml | 1 + .../java/net/megaproxy487/FeedbackEmail.kt | 10 +++++++++- .../net/megaproxy487/ProfileEditorActivity.kt | 4 ++++ .../net/megaproxy487/data/ConfigTransfer.kt | 6 ++++-- native/mobile/config.go | 12 ++++++++++++ native/mobile/config_test.go | 18 +++++++++++++++++- native/mobile/doh.go | 7 +++++++ 7 files changed, 54 insertions(+), 4 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index eccd068..86de312 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -22,6 +22,7 @@ android:icon="@drawable/ic_launcher" android:label="MegaProxy" android:supportsRtl="true" + android:usesCleartextTraffic="false" android:theme="@style/Theme.MegaProxy"> file.isFile && file.extension == "zip" } + .orEmpty() + .sortedByDescending(File::lastModified) + .drop(2) + .forEach(File::delete) + // Do not reuse a content URI that may still be granted to an email app: + // a stale grant must never expose diagnostics generated in the future. + val logFile = File(directory, "megaproxy-diagnostics-${UUID.randomUUID()}.zip") DiagnosticLog.add("event=feedback result=prepared") ZipOutputStream(logFile.outputStream().buffered()).use { zip -> zip.putNextEntry(ZipEntry("megaproxy-diagnostic.log")) diff --git a/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt b/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt index 35aaad6..9bda174 100644 --- a/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt +++ b/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt @@ -2,6 +2,7 @@ package net.megaproxy487 import android.app.Activity import android.os.Bundle +import android.view.WindowManager import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.layout.Arrangement @@ -54,6 +55,9 @@ import java.util.Locale class ProfileEditorActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + // This screen can display proxy passwords and SSH private keys. Keep them + // out of screenshots, screen recording and the recent-apps thumbnail. + window.addFlags(WindowManager.LayoutParams.FLAG_SECURE) setContent { MaterialTheme { ProfileEditorScreen(this) } } } diff --git a/app/src/main/java/net/megaproxy487/data/ConfigTransfer.kt b/app/src/main/java/net/megaproxy487/data/ConfigTransfer.kt index 7b7a1cf..8b4540e 100644 --- a/app/src/main/java/net/megaproxy487/data/ConfigTransfer.kt +++ b/app/src/main/java/net/megaproxy487/data/ConfigTransfer.kt @@ -140,7 +140,7 @@ object ConfigTransfer { array.optString(it).takeIf { id -> id.isNotBlank() && id.length <= 256 } } }.orEmpty(), - customJa3 = tls.limitedString("customJa3", 64 * 1024), + customJa3 = tls.limitedString("customJa3", MAX_CUSTOM_JA3_LENGTH), selectedPackages = packages, routeAllApps = routing.optBoolean("routeAllApps", true), bypassLocalNetworks = routing.optBoolean("bypassLocalNetworks", true), @@ -233,7 +233,7 @@ object ConfigTransfer { jumpAcceptAnyHostKey = jump?.optBoolean("acceptAnyHostKey", false) ?: false, allowInvalidProxyCertificate = proxy.optBoolean("allowInvalidProxyCertificate", false), profile = enumValue(tls.optString("fingerprint"), TlsProfile.DEFAULT), - customJa3 = tls.limitedString("customJa3", 64 * 1024), + customJa3 = tls.limitedString("customJa3", MAX_CUSTOM_JA3_LENGTH), dnsProvider = enumValue(dns.optString("provider"), DnsProvider.CLOUDFLARE), customDohUrl = dns.limitedString("customDohUrl", 2_048), selectedPackages = packages, @@ -251,6 +251,8 @@ object ConfigTransfer { private inline fun > enumValue(value: String, default: T): T = enumValues().firstOrNull { it.name == value } ?: default + private const val MAX_CUSTOM_JA3_LENGTH = 8 * 1024 + private fun encode(value: String): String = URLEncoder.encode(value, StandardCharsets.UTF_8.name()) .replace("+", "%20") } diff --git a/native/mobile/config.go b/native/mobile/config.go index 81f4ed8..5886edb 100644 --- a/native/mobile/config.go +++ b/native/mobile/config.go @@ -149,6 +149,9 @@ type ja3Spec struct { func parseJA3(raw string) (ja3Spec, error) { var out ja3Spec + if len(raw) > 8192 { + return out, errors.New("JA3 is too long") + } fields := strings.Split(strings.TrimSpace(raw), ",") if len(fields) != 5 { return out, errors.New("JA3 must contain five comma-separated fields") @@ -159,6 +162,9 @@ func parseJA3(raw string) (ja3Spec, error) { continue } for _, token := range strings.Split(field, "-") { + if len(values[i]) >= 256 { + return out, errors.New("JA3 field contains too many values") + } n, err := strconv.ParseUint(token, 10, 16) if err != nil { return out, fmt.Errorf("invalid JA3 number %q", token) @@ -170,6 +176,12 @@ func parseJA3(raw string) (ja3Spec, error) { return out, errors.New("JA3 TLS version is required") } out.Version, out.Ciphers, out.Extensions, out.Groups = values[0][0], values[1], values[2], values[3] + if out.Version != tls.VersionTLS12 && out.Version != tls.VersionTLS13 { + return out, errors.New("JA3 TLS version must be TLS 1.2 or TLS 1.3") + } + if len(out.Ciphers) == 0 { + return out, errors.New("JA3 must contain at least one cipher suite") + } for _, point := range values[4] { if point > 255 { return out, errors.New("EC point format exceeds 255") diff --git a/native/mobile/config_test.go b/native/mobile/config_test.go index f4ec56d..2496127 100644 --- a/native/mobile/config_test.go +++ b/native/mobile/config_test.go @@ -1,6 +1,9 @@ package mobile -import "testing" +import ( + "strings" + "testing" +) func TestParseJA3(t *testing.T) { s, err := parseJA3("771,4865-4866,0-10-11-13-16-43-51,29-23,0") @@ -12,6 +15,19 @@ func TestParseJA3(t *testing.T) { } } +func TestParseJA3RejectsUnsafeOrUnboundedInput(t *testing.T) { + for _, raw := range []string{ + "769,4865,0,29,0", + "771,,0,29,0", + strings.Repeat("1", 8193), + "771," + strings.TrimSuffix(strings.Repeat("4865-", 257), "-") + ",0,29,0", + } { + if _, err := parseJA3(raw); err == nil { + t.Fatalf("parseJA3(%q) unexpectedly succeeded", raw) + } + } +} + func TestConfigRejectsIPOrSchemeLikeHost(t *testing.T) { _, err := parseConfig(`{"host":"https://proxy.example","dialHost":"192.0.2.1","port":443,"username":"u","password":"p","profile":"CHROME_ANDROID","dohUrl":"https://dns.google/dns-query"}`) if err == nil { diff --git a/native/mobile/doh.go b/native/mobile/doh.go index 0aa6de8..2ba95c8 100644 --- a/native/mobile/doh.go +++ b/native/mobile/doh.go @@ -10,6 +10,7 @@ import ( "net" "net/http" "net/url" + "strconv" "strings" "sync" "time" @@ -23,6 +24,12 @@ func validateDoHURL(raw string) error { if u.User != nil || u.Fragment != "" { return errors.New("DoH URL must not contain credentials or fragment") } + if port := u.Port(); port != "" { + value, parseErr := strconv.Atoi(port) + if parseErr != nil || value < 1 || value > 65535 { + return errors.New("DoH URL contains an invalid port") + } + } return nil } From 649e332cb011242c39af13d432d3d11aa8062742 Mon Sep 17 00:00:00 2001 From: Andrey Prokopyuk Date: Tue, 1 Sep 2026 15:08:23 +0300 Subject: [PATCH 23/41] Fix possible UX issues --- .../megaproxy487/ConnectionTestActivity.kt | 10 +- .../java/net/megaproxy487/MainActivity.kt | 40 +++++++- .../net/megaproxy487/ProfileEditorActivity.kt | 41 +++++--- .../net/megaproxy487/SettingsActivities.kt | 98 +++++++++++-------- .../net/megaproxy487/SplitTunnelActivity.kt | 66 ++++++------- 5 files changed, 161 insertions(+), 94 deletions(-) diff --git a/app/src/main/java/net/megaproxy487/ConnectionTestActivity.kt b/app/src/main/java/net/megaproxy487/ConnectionTestActivity.kt index 87e4d90..b635e23 100644 --- a/app/src/main/java/net/megaproxy487/ConnectionTestActivity.kt +++ b/app/src/main/java/net/megaproxy487/ConnectionTestActivity.kt @@ -27,6 +27,7 @@ import androidx.compose.material.icons.automirrored.filled.ArrowBack import androidx.compose.material3.Button import androidx.compose.material3.AlertDialog import androidx.compose.material3.Card +import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.IconButton @@ -143,6 +144,9 @@ private fun ConnectionTestScreen(activity: Activity, autoStart: Boolean) { style = MaterialTheme.typography.titleLarge, color = statusColor, ) + if (state == TestState.RUNNING) { + CircularProgressIndicator(modifier = Modifier.padding(top = 8.dp)) + } exitIp?.let { Text("Proxy exit IP: $it") } } } @@ -151,7 +155,7 @@ private fun ConnectionTestScreen(activity: Activity, autoStart: Boolean) { Button(onClick = { val clipboard = activity.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager clipboard.setPrimaryClip(ClipData.newPlainText("MegaProxy connection test", TestDiagnosticLog.entries.joinToString("\n"))) - }) { Text("Copy log") } + }, enabled = TestDiagnosticLog.entries.isNotEmpty()) { Text("Copy log") } } Text( "The test uses a temporary VPN when the main connection is inactive. Credentials and traffic content are not logged.", @@ -160,7 +164,9 @@ private fun ConnectionTestScreen(activity: Activity, autoStart: Boolean) { Box(Modifier.fillMaxWidth().weight(1f)) { SelectionContainer { Text( - TestDiagnosticLog.entries.joinToString("\n").ifEmpty { "No test events yet." }, + TestDiagnosticLog.entries.joinToString("\n").ifEmpty { + if (state == TestState.RUNNING) "Waiting for the first diagnostic event…" else "No test events yet." + }, style = MaterialTheme.typography.bodySmall, modifier = Modifier.fillMaxWidth().verticalScroll(rememberScrollState()), ) diff --git a/app/src/main/java/net/megaproxy487/MainActivity.kt b/app/src/main/java/net/megaproxy487/MainActivity.kt index 9a6d40e..09e123c 100644 --- a/app/src/main/java/net/megaproxy487/MainActivity.kt +++ b/app/src/main/java/net/megaproxy487/MainActivity.kt @@ -27,6 +27,7 @@ import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.CheckCircle +import androidx.compose.material.icons.filled.ArrowDropDown import androidx.compose.material.icons.outlined.RadioButtonUnchecked import androidx.compose.material3.Button import androidx.compose.material3.AlertDialog @@ -241,7 +242,7 @@ private fun MainScreen(activity: Activity) { Column( Modifier.fillMaxSize().padding(padding).verticalScroll(rememberScrollState()).padding(20.dp), horizontalAlignment = Alignment.CenterHorizontally, - verticalArrangement = Arrangement.Center, + verticalArrangement = Arrangement.spacedBy(12.dp), ) { val connected = connection == VpnConnectionState.CONNECTED val statusColor = if (connected) Color(0xFF2E7D32) else MaterialTheme.colorScheme.onSurfaceVariant @@ -274,7 +275,7 @@ private fun MainScreen(activity: Activity) { } } } - Spacer(Modifier.height(24.dp)) + Spacer(Modifier.height(4.dp)) networkWarning?.let { Card(colors = CardDefaults.cardColors(containerColor = Color(0xFFFFE0B2)), modifier = Modifier.fillMaxWidth()) { Text(it, color = Color(0xFF7A4300), modifier = Modifier.padding(14.dp)) @@ -288,6 +289,7 @@ private fun MainScreen(activity: Activity) { val displayedProfileId = if (alwaysOn) runtimeProfileId.ifEmpty { connectionProfileId } else activeProfileId val activeProfile = profiles.firstOrNull { it.id == displayedProfileId } ?: profiles.first() val actualProfile = profiles.firstOrNull { it.id == runtimeProfileId } + val activeProfileError = store.globalConnectionSettings().applyTo(activeProfile.config).connectionValidationError() val profileColor = Color(ProfileColors.argb[Math.floorMod(activeProfile.colorIndex, ProfileColors.argb.size)]) val onProfileColor = if (profileColor.luminance() > 0.45f) Color.Black else Color.White Box(Modifier.fillMaxWidth()) { @@ -319,6 +321,7 @@ private fun MainScreen(activity: Activity) { } Text(activeProfile.displayName, style = MaterialTheme.typography.titleMedium, modifier = Modifier.weight(1f)) ProfileTypeBadge(activeProfile.config.type, onProfileColor) + Icon(Icons.Filled.ArrowDropDown, contentDescription = "Select profile", tint = onProfileColor) } if (actualProfile != null && actualProfile.id != activeProfile.id && connection != VpnConnectionState.DISCONNECTED) { Text("Connected through: ${actualProfile.displayNameWithFlag}", style = MaterialTheme.typography.bodySmall) @@ -352,7 +355,25 @@ private fun MainScreen(activity: Activity) { } } } - Spacer(Modifier.height(12.dp)) + if (connection == VpnConnectionState.DISCONNECTED && activeProfileError != null) { + Card( + colors = CardDefaults.cardColors(containerColor = MaterialTheme.colorScheme.errorContainer), + modifier = Modifier.fillMaxWidth(), + ) { + Row( + Modifier.fillMaxWidth().padding(14.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(8.dp), + ) { + Text(activeProfileError, modifier = Modifier.weight(1f), color = MaterialTheme.colorScheme.onErrorContainer) + TextButton(onClick = { + activity.startActivity(Intent(activity, ProfileEditorActivity::class.java).apply { + putExtra(ProfileEditorActivity.EXTRA_PROFILE_ID, activeProfile.id) + }) + }) { Text("Configure") } + } + } + } Button( onClick = { if (isAlwaysOnVpnActive(activity)) { @@ -363,9 +384,18 @@ private fun MainScreen(activity: Activity) { connect() } }, - enabled = connection != VpnConnectionState.CONNECTING && !alwaysOn, + enabled = connection != VpnConnectionState.CONNECTING && !alwaysOn && + (connected || activeProfileError == null), modifier = Modifier.fillMaxWidth(), - ) { Text(if (connected) "Disconnect" else "Connect") } + ) { + Text( + when (connection) { + VpnConnectionState.CONNECTED -> "Disconnect" + VpnConnectionState.CONNECTING -> "Connecting…" + VpnConnectionState.DISCONNECTED -> "Connect" + }, + ) + } FilledTonalButton( onClick = { activity.startActivity(Intent(activity, ConnectionTestActivity::class.java)) }, modifier = Modifier.fillMaxWidth(), diff --git a/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt b/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt index 9bda174..1882ebf 100644 --- a/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt +++ b/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt @@ -18,6 +18,8 @@ import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons import androidx.compose.material.icons.automirrored.filled.ArrowBack import androidx.compose.material3.AlertDialog +import androidx.compose.material3.Card +import androidx.compose.material3.CardDefaults import androidx.compose.material3.Checkbox import androidx.compose.material3.DropdownMenu import androidx.compose.material3.DropdownMenuItem @@ -257,6 +259,32 @@ private fun ProfileEditorScreen(activity: Activity) { } if (config.dnsProvider == DnsProvider.CUSTOM) OutlinedTextField(config.customDohUrl, { value -> acceptText(value, 2_048) { updateConfig(config.copy(customDohUrl = it)) } }, label = { Text("Custom DoH URL") }, singleLine = true, modifier = Modifier.fillMaxWidth()) error?.let { Text(it, color = MaterialTheme.colorScheme.error) } + if (showReconnectPrompt) { + Card(colors = CardDefaults.cardColors(containerColor = MaterialTheme.colorScheme.tertiaryContainer)) { + Column(Modifier.fillMaxWidth().padding(12.dp)) { + Text("Reconnect to apply these changes to the active VPN.", style = MaterialTheme.typography.bodyMedium) + Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.End) { + TextButton(onClick = { + showReconnectPrompt = false + connectionChangeDeferred = true + }) { Text("Next connection") } + TextButton(onClick = { + showReconnectPrompt = false + connectionChangeDeferred = true + ProxyVpnService.reconnect(activity) + }) { Text("Reconnect now") } + } + } + } + } + if (showAlwaysOnNotice) { + Card(colors = CardDefaults.cardColors(containerColor = MaterialTheme.colorScheme.tertiaryContainer)) { + Row(Modifier.fillMaxWidth().padding(12.dp), verticalAlignment = androidx.compose.ui.Alignment.CenterVertically) { + Text("Always-on is active. Changes apply on the next connection.", modifier = Modifier.weight(1f)) + TextButton(onClick = { showAlwaysOnNotice = false }) { Text("Dismiss") } + } + } + } Text("Changes are saved automatically.", style = MaterialTheme.typography.bodySmall) } } @@ -282,17 +310,4 @@ private fun ProfileEditorScreen(activity: Activity) { dismissButton = { TextButton(onClick = { unsafeHostKeyHop = null }) { Text("Cancel") } }, ) } - if (showReconnectPrompt) AlertDialog( - onDismissRequest = { showReconnectPrompt = false; connectionChangeDeferred = true }, - title = { Text("Apply profile changes?") }, - text = { Text("Reconnect now to apply the connection settings, or apply them the next time the VPN connects.") }, - confirmButton = { TextButton(onClick = { showReconnectPrompt = false; ProxyVpnService.reconnect(activity) }) { Text("Reconnect now") } }, - dismissButton = { TextButton(onClick = { showReconnectPrompt = false; connectionChangeDeferred = true }) { Text("Next connection") } }, - ) - if (showAlwaysOnNotice) AlertDialog( - onDismissRequest = { showAlwaysOnNotice = false }, - title = { Text("Profile settings saved") }, - text = { Text("Always-on VPN is active. The current tunnel is unchanged; these settings apply on its next connection, including a failover attempt.") }, - confirmButton = { TextButton(onClick = { showAlwaysOnNotice = false }) { Text("OK") } }, - ) } diff --git a/app/src/main/java/net/megaproxy487/SettingsActivities.kt b/app/src/main/java/net/megaproxy487/SettingsActivities.kt index 3ee5056..da4751c 100644 --- a/app/src/main/java/net/megaproxy487/SettingsActivities.kt +++ b/app/src/main/java/net/megaproxy487/SettingsActivities.kt @@ -21,7 +21,10 @@ import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons import androidx.compose.material.icons.automirrored.filled.ArrowBack +import androidx.compose.material.icons.automirrored.filled.ArrowForward import androidx.compose.material3.AlertDialog +import androidx.compose.material3.Card +import androidx.compose.material3.CardDefaults import androidx.compose.material3.Checkbox import androidx.compose.material3.DropdownMenu import androidx.compose.material3.DropdownMenuItem @@ -31,7 +34,6 @@ import androidx.compose.material3.ExposedDropdownMenuDefaults import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.OutlinedButton import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.Scaffold import androidx.compose.material3.Text @@ -106,20 +108,22 @@ private fun SettingsHomeScreen(activity: Activity) { } SettingsScaffold(activity, "Settings") { - SettingsButton("Profiles") { activity.startActivity(Intent(activity, ProfilesActivity::class.java)) } - SettingsButton("Always-on VPN") { activity.startActivity(Intent(activity, AlwaysOnSettingsActivity::class.java)) } - SettingsButton("Fingerprints") { activity.startActivity(Intent(activity, TlsFingerprintActivity::class.java)) } - SettingsButton("Split tunneling") { activity.startActivity(Intent(activity, SplitTunnelActivity::class.java)) } - SettingsButton("Failover") { activity.startActivity(Intent(activity, FailoverSettingsActivity::class.java)) } - SettingsButton("Visibility") { activity.startActivity(Intent(activity, VisibilityActivity::class.java)) } + Text("Connection", style = MaterialTheme.typography.titleMedium) + SettingsButton("Profiles", "Proxy servers, credentials, DNS and IPv6") { activity.startActivity(Intent(activity, ProfilesActivity::class.java)) } + SettingsButton("Always-on VPN", "Startup profile and Android VPN controls") { activity.startActivity(Intent(activity, AlwaysOnSettingsActivity::class.java)) } + SettingsButton("Fingerprints", "HTTPS JA3 and SSH client behavior") { activity.startActivity(Intent(activity, TlsFingerprintActivity::class.java)) } + SettingsButton("Split tunneling", "Choose global or per-app routing") { activity.startActivity(Intent(activity, SplitTunnelActivity::class.java)) } + SettingsButton("Failover", "Fallback profiles when blocking is suspected") { activity.startActivity(Intent(activity, FailoverSettingsActivity::class.java)) } + Text("Diagnostics", style = MaterialTheme.typography.titleMedium, modifier = Modifier.padding(top = 8.dp)) + SettingsButton("Visibility", "Check what applications can detect") { activity.startActivity(Intent(activity, VisibilityActivity::class.java)) } if (!batteryOptimizationDisabled) { - SettingsButton("Battery settings") { + SettingsButton("Battery settings", "Allow reliable background VPN operation") { activity.startActivity(Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS).apply { data = Uri.parse("package:${activity.packageName}") }) } } - SettingsButton("Diagnostic log") { activity.startActivity(Intent(activity, DiagnosticLogActivity::class.java)) } + SettingsButton("Diagnostic log", "Inspect, export or clear privacy-filtered events") { activity.startActivity(Intent(activity, DiagnosticLogActivity::class.java)) } } } @@ -194,7 +198,7 @@ private fun AlwaysOnSettingsScreen(activity: Activity) { val store = remember { ConfigStore(activity) } var expanded by remember { mutableStateOf(false) } var selected by remember { mutableStateOf(store.alwaysOnProfile()) } - var showDeferredNotice by remember { mutableStateOf(false) } + val alwaysOnActive = remember { ProxyVpnService.isAlwaysOnMode || readAlwaysOnVpnStatus(activity).enabled } SettingsScaffold(activity, "Always-on VPN") { ExposedDropdownMenuBox(expanded, { expanded = it }) { OutlinedTextField( @@ -209,24 +213,21 @@ private fun AlwaysOnSettingsScreen(activity: Activity) { selected = profile store.setAlwaysOnProfile(profile.id) expanded = false - if (ProxyVpnService.isAlwaysOnMode && ProxyVpnService.isRunning) showDeferredNotice = true + if (alwaysOnActive && ProxyVpnService.isRunning) { + ProxyVpnService.switchProfile(activity, profile.id, true) + } }) } } } Text("This profile is used when Android starts MegaProxy as an Always-on VPN.", style = MaterialTheme.typography.bodySmall) + if (alwaysOnActive) { + Text("Always-on is active. Selecting another profile reconnects immediately.", color = MaterialTheme.colorScheme.tertiary, style = MaterialTheme.typography.bodySmall) + } SettingsButton("Open Android Always-on VPN settings") { activity.startActivity(Intent(Settings.ACTION_VPN_SETTINGS)) } } - if (showDeferredNotice) { - AlertDialog( - onDismissRequest = { showDeferredNotice = false }, - title = { Text("Profile saved") }, - text = { Text("The new Always-on profile will be used the next time the VPN connects.") }, - confirmButton = { TextButton(onClick = { showDeferredNotice = false }) { Text("OK") } }, - ) - } } @OptIn(ExperimentalMaterial3Api::class) @@ -282,7 +283,7 @@ private fun TlsFingerprintScreen(activity: Activity) { if (settings.tlsProfile == TlsProfile.CUSTOM) { OutlinedTextField( settings.customJa3, - { if (it.length <= 64 * 1024) save(customJa3 = it) }, + { if (it.length <= 8 * 1024) save(customJa3 = it) }, label = { Text("JA3: version,ciphers,extensions,groups,points") }, minLines = 2, modifier = Modifier.fillMaxWidth(), @@ -333,25 +334,31 @@ private fun TlsFingerprintScreen(activity: Activity) { saveSettings(settings.copy(sshRotationMb = it)) } Text("The SSH profile controls the client banner and preferred KEX, cipher and MAC ordering.", style = MaterialTheme.typography.bodySmall) + if (showReconnectPrompt) { + Card(colors = CardDefaults.cardColors(containerColor = MaterialTheme.colorScheme.tertiaryContainer)) { + Column(Modifier.fillMaxWidth().padding(12.dp)) { + Text("Reconnect to apply these changes to the active VPN.") + Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.End) { + TextButton(onClick = { showReconnectPrompt = false; deferred = true }) { Text("Next connection") } + TextButton(onClick = { + showReconnectPrompt = false + deferred = true + ProxyVpnService.reconnect(activity) + }) { Text("Reconnect now") } + } + } + } + } + if (showAlwaysOnNotice) { + Card(colors = CardDefaults.cardColors(containerColor = MaterialTheme.colorScheme.tertiaryContainer)) { + Row(Modifier.fillMaxWidth().padding(12.dp), verticalAlignment = Alignment.CenterVertically) { + Text("Always-on is active. Changes apply on the next connection.", modifier = Modifier.weight(1f)) + TextButton(onClick = { showAlwaysOnNotice = false }) { Text("Dismiss") } + } + } + } Text("Changes are saved automatically and apply to every profile.", style = MaterialTheme.typography.bodySmall) } - if (showReconnectPrompt) { - AlertDialog( - onDismissRequest = { showReconnectPrompt = false; deferred = true }, - title = { Text("Apply fingerprint change?") }, - text = { Text("Reconnect now to apply the new HTTPS or SSH fingerprint, or apply it the next time the VPN connects.") }, - confirmButton = { TextButton(onClick = { showReconnectPrompt = false; ProxyVpnService.reconnect(activity) }) { Text("Reconnect now") } }, - dismissButton = { TextButton(onClick = { showReconnectPrompt = false; deferred = true }) { Text("Next connection") } }, - ) - } - if (showAlwaysOnNotice) { - AlertDialog( - onDismissRequest = { showAlwaysOnNotice = false }, - title = { Text("Fingerprint saved") }, - text = { Text("Always-on VPN is managed by Android. The new HTTPS or SSH fingerprint will be applied the next time the VPN connects.") }, - confirmButton = { TextButton(onClick = { showAlwaysOnNotice = false }) { Text("OK") } }, - ) - } } @Composable @@ -401,6 +408,19 @@ private fun SettingsScaffold(activity: Activity, title: String, content: @Compos } @Composable -private fun SettingsButton(label: String, onClick: () -> Unit) { - OutlinedButton(onClick = onClick, modifier = Modifier.fillMaxWidth()) { Text(label) } +private fun SettingsButton(label: String, description: String? = null, onClick: () -> Unit) { + Card(onClick = onClick, modifier = Modifier.fillMaxWidth()) { + Row( + Modifier.fillMaxWidth().padding(horizontal = 16.dp, vertical = 14.dp), + verticalAlignment = Alignment.CenterVertically, + ) { + Column(Modifier.weight(1f), verticalArrangement = Arrangement.spacedBy(2.dp)) { + Text(label, style = MaterialTheme.typography.titleSmall) + description?.let { + Text(it, style = MaterialTheme.typography.bodySmall, color = MaterialTheme.colorScheme.onSurfaceVariant) + } + } + Icon(Icons.AutoMirrored.Filled.ArrowForward, contentDescription = null) + } + } } diff --git a/app/src/main/java/net/megaproxy487/SplitTunnelActivity.kt b/app/src/main/java/net/megaproxy487/SplitTunnelActivity.kt index d20a785..40f2334 100644 --- a/app/src/main/java/net/megaproxy487/SplitTunnelActivity.kt +++ b/app/src/main/java/net/megaproxy487/SplitTunnelActivity.kt @@ -16,7 +16,8 @@ import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items import androidx.compose.material.icons.Icons import androidx.compose.material.icons.automirrored.filled.ArrowBack -import androidx.compose.material3.AlertDialog +import androidx.compose.material3.Card +import androidx.compose.material3.CardDefaults import androidx.compose.material3.Checkbox import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon @@ -101,6 +102,35 @@ private fun SplitTunnelScreen(activity: SplitTunnelActivity) { }, ) }, + bottomBar = { + if (showReconnectPrompt || showAlwaysOnDeferredNotice) { + Card( + colors = CardDefaults.cardColors(containerColor = MaterialTheme.colorScheme.tertiaryContainer), + modifier = Modifier.fillMaxWidth().padding(12.dp), + ) { + Column(Modifier.fillMaxWidth().padding(12.dp)) { + Text( + if (showAlwaysOnDeferredNotice) "Always-on is active. Routing changes apply on the next connection." + else "Reconnect to apply routing changes to the active VPN.", + ) + Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.End) { + TextButton(onClick = { + showReconnectPrompt = false + showAlwaysOnDeferredNotice = false + deferChangesUntilNextConnection = true + }) { Text(if (showAlwaysOnDeferredNotice) "Dismiss" else "Next connection") } + if (showReconnectPrompt) { + TextButton(onClick = { + showReconnectPrompt = false + deferChangesUntilNextConnection = true + ProxyVpnService.reconnect(activity) + }) { Text("Reconnect now") } + } + } + } + } + } + }, contentWindowInsets = WindowInsets.safeDrawing, ) { padding -> LazyColumn( @@ -164,38 +194,4 @@ private fun SplitTunnelScreen(activity: SplitTunnelActivity) { item { Text("Changes are saved automatically and apply to every profile.", style = MaterialTheme.typography.bodySmall) } } } - - if (showReconnectPrompt) { - AlertDialog( - onDismissRequest = { showReconnectPrompt = false; deferChangesUntilNextConnection = true }, - title = { Text("Apply routing changes?") }, - text = { Text("Reconnect now to apply the new split-tunneling settings, or apply them the next time the VPN connects.") }, - confirmButton = { - TextButton(onClick = { - showReconnectPrompt = false - ProxyVpnService.reconnect(activity) - }) { - Text("Reconnect now") - } - }, - dismissButton = { - TextButton(onClick = { - showReconnectPrompt = false - deferChangesUntilNextConnection = true - }) { - Text("Next connection") - } - }, - ) - } - if (showAlwaysOnDeferredNotice) { - AlertDialog( - onDismissRequest = { showAlwaysOnDeferredNotice = false }, - title = { Text("Routing settings saved") }, - text = { Text("Always-on VPN is managed by Android. The new split-tunneling settings will be applied the next time the VPN connects.") }, - confirmButton = { TextButton(onClick = { - showAlwaysOnDeferredNotice = false - }) { Text("OK") } }, - ) - } } From f51b346e76d68f86d6de7435a18721a5dea7f455 Mon Sep 17 00:00:00 2001 From: Andrey Prokopyuk Date: Tue, 1 Sep 2026 15:19:32 +0300 Subject: [PATCH 24/41] Fix UX more issues --- app/src/main/AndroidManifest.xml | 21 ++--- .../megaproxy487/ConnectionTestActivity.kt | 29 +++++-- .../net/megaproxy487/DiagnosticLogActivity.kt | 5 +- .../java/net/megaproxy487/MainActivity.kt | 45 ++++++---- .../net/megaproxy487/ProfileEditorActivity.kt | 81 +++++++++++------- .../net/megaproxy487/ProxySettingsActivity.kt | 59 ++++++++++--- .../net/megaproxy487/SettingsActivities.kt | 59 +++++++++---- .../net/megaproxy487/SplitTunnelActivity.kt | 83 ++++++++++++++----- .../net/megaproxy487/SshHostKeyActivity.kt | 5 +- .../net/megaproxy487/VisibilityActivity.kt | 5 +- .../megaproxy487/ui/theme/MegaProxyTheme.kt | 27 ++++++ app/src/main/res/values-night/styles.xml | 8 ++ 12 files changed, 311 insertions(+), 116 deletions(-) create mode 100644 app/src/main/java/net/megaproxy487/ui/theme/MegaProxyTheme.kt create mode 100644 app/src/main/res/values-night/styles.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 86de312..f86f1c7 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -26,23 +26,24 @@ android:theme="@style/Theme.MegaProxy"> - - - - - - - - - + + + + + + + + + - + "Ready" + TestState.RUNNING -> "Testing" + TestState.SUCCEEDED -> "Test passed" + TestState.FAILED -> "Test failed" + } + Card(Modifier.fillMaxWidth().semantics { + liveRegion = LiveRegionMode.Polite + stateDescription = statusLabel + }) { Column(Modifier.padding(16.dp), verticalArrangement = Arrangement.spacedBy(4.dp)) { val statusColor = when (state) { - TestState.SUCCEEDED -> Color(0xFF2E7D32) + TestState.SUCCEEDED -> MaterialTheme.colorScheme.primary TestState.FAILED -> MaterialTheme.colorScheme.error else -> MaterialTheme.colorScheme.onSurface } Text( - when (state) { - TestState.IDLE -> "Ready" - TestState.RUNNING -> "Testing…" - TestState.SUCCEEDED -> "Test passed" - TestState.FAILED -> "Test failed" - }, + if (state == TestState.RUNNING) "Testing…" else statusLabel, style = MaterialTheme.typography.titleLarge, color = statusColor, ) diff --git a/app/src/main/java/net/megaproxy487/DiagnosticLogActivity.kt b/app/src/main/java/net/megaproxy487/DiagnosticLogActivity.kt index a94aa67..bd32bc0 100644 --- a/app/src/main/java/net/megaproxy487/DiagnosticLogActivity.kt +++ b/app/src/main/java/net/megaproxy487/DiagnosticLogActivity.kt @@ -3,6 +3,7 @@ package net.megaproxy487 import android.app.Activity import android.os.Bundle import androidx.activity.ComponentActivity +import androidx.activity.enableEdgeToEdge import androidx.activity.compose.rememberLauncherForActivityResult import androidx.activity.compose.setContent import androidx.activity.result.contract.ActivityResultContracts @@ -52,11 +53,13 @@ import kotlinx.coroutines.withContext import kotlinx.coroutines.launch import net.megaproxy487.data.ConfigStore import net.megaproxy487.vpn.PersistentDiagnosticLog +import net.megaproxy487.ui.theme.MegaProxyTheme class DiagnosticLogActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContent { MaterialTheme { DiagnosticLogScreen(this) } } + enableEdgeToEdge() + setContent { MegaProxyTheme { DiagnosticLogScreen(this) } } } } diff --git a/app/src/main/java/net/megaproxy487/MainActivity.kt b/app/src/main/java/net/megaproxy487/MainActivity.kt index 09e123c..e3e85ca 100644 --- a/app/src/main/java/net/megaproxy487/MainActivity.kt +++ b/app/src/main/java/net/megaproxy487/MainActivity.kt @@ -8,6 +8,7 @@ import android.net.VpnService import android.os.Build import android.os.Bundle import androidx.activity.ComponentActivity +import androidx.activity.enableEdgeToEdge import androidx.activity.compose.rememberLauncherForActivityResult import androidx.activity.compose.setContent import androidx.activity.result.contract.ActivityResultContracts @@ -18,11 +19,13 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.safeDrawing +import androidx.compose.foundation.layout.widthIn import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons @@ -57,6 +60,10 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.luminance +import androidx.compose.ui.semantics.LiveRegionMode +import androidx.compose.ui.semantics.liveRegion +import androidx.compose.ui.semantics.semantics +import androidx.compose.ui.semantics.stateDescription import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.ui.unit.dp @@ -80,12 +87,14 @@ import net.megaproxy487.vpn.openAndroidVpnSettings import net.megaproxy487.vpn.OTHER_ALWAYS_ON_VPN_MESSAGE import net.megaproxy487.model.ProfileColors import net.megaproxy487.model.ProxyType +import net.megaproxy487.ui.theme.MegaProxyTheme class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + enableEdgeToEdge() BatteryOptimizationReminder.maybeRequest(this) - setContent { MaterialTheme { MainScreen(this) } } + setContent { MegaProxyTheme { MainScreen(this) } } } override fun onResume() { @@ -239,14 +248,23 @@ private fun MainScreen(activity: Activity) { topBar = { TopAppBar(title = { Text("MegaProxy") }) }, contentWindowInsets = WindowInsets.safeDrawing, ) { padding -> - Column( - Modifier.fillMaxSize().padding(padding).verticalScroll(rememberScrollState()).padding(20.dp), - horizontalAlignment = Alignment.CenterHorizontally, - verticalArrangement = Arrangement.spacedBy(12.dp), - ) { + Box(Modifier.fillMaxSize().padding(padding), contentAlignment = Alignment.TopCenter) { + Column( + Modifier.widthIn(max = 720.dp).fillMaxWidth().fillMaxHeight().verticalScroll(rememberScrollState()).padding(20.dp), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(12.dp), + ) { val connected = connection == VpnConnectionState.CONNECTED - val statusColor = if (connected) Color(0xFF2E7D32) else MaterialTheme.colorScheme.onSurfaceVariant - Card(Modifier.fillMaxWidth()) { + val statusLabel = when (connection) { + VpnConnectionState.CONNECTED -> "Connected" + VpnConnectionState.CONNECTING -> "Connecting" + VpnConnectionState.DISCONNECTED -> "Disconnected" + } + val statusColor = if (connected) MaterialTheme.colorScheme.primary else MaterialTheme.colorScheme.onSurfaceVariant + Card(Modifier.fillMaxWidth().semantics { + liveRegion = LiveRegionMode.Polite + stateDescription = statusLabel + }) { Column( Modifier.fillMaxWidth().padding(vertical = 28.dp, horizontal = 20.dp), horizontalAlignment = Alignment.CenterHorizontally, @@ -258,11 +276,7 @@ private fun MainScreen(activity: Activity) { tint = statusColor, ) Text( - when (connection) { - VpnConnectionState.CONNECTED -> "Connected" - VpnConnectionState.CONNECTING -> "Connecting…" - VpnConnectionState.DISCONNECTED -> "Disconnected" - }, + if (connection == VpnConnectionState.CONNECTING) "Connecting…" else statusLabel, style = MaterialTheme.typography.headlineSmall, color = statusColor, ) @@ -277,8 +291,8 @@ private fun MainScreen(activity: Activity) { } Spacer(Modifier.height(4.dp)) networkWarning?.let { - Card(colors = CardDefaults.cardColors(containerColor = Color(0xFFFFE0B2)), modifier = Modifier.fillMaxWidth()) { - Text(it, color = Color(0xFF7A4300), modifier = Modifier.padding(14.dp)) + Card(colors = CardDefaults.cardColors(containerColor = MaterialTheme.colorScheme.tertiaryContainer), modifier = Modifier.fillMaxWidth()) { + Text(it, color = MaterialTheme.colorScheme.onTertiaryContainer, modifier = Modifier.padding(14.dp)) } Spacer(Modifier.height(12.dp)) } @@ -430,6 +444,7 @@ private fun MainScreen(activity: Activity) { modifier = Modifier.padding(top = 12.dp), ) } + } } } diff --git a/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt b/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt index 1882ebf..5a83c94 100644 --- a/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt +++ b/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt @@ -4,17 +4,20 @@ import android.app.Activity import android.os.Bundle import android.view.WindowManager import androidx.activity.ComponentActivity +import androidx.activity.enableEdgeToEdge import androidx.activity.compose.setContent import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.heightIn import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.safeDrawing import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll +import androidx.compose.foundation.selection.toggleable import androidx.compose.material.icons.Icons import androidx.compose.material.icons.automirrored.filled.ArrowBack import androidx.compose.material3.AlertDialog @@ -26,6 +29,7 @@ import androidx.compose.material3.DropdownMenuItem import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExposedDropdownMenuBox import androidx.compose.material3.ExposedDropdownMenuDefaults +import androidx.compose.material3.MenuAnchorType import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Icon import androidx.compose.material3.IconButton @@ -42,8 +46,10 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier +import androidx.compose.ui.Alignment import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.input.PasswordVisualTransformation +import androidx.compose.ui.semantics.Role import androidx.compose.ui.unit.dp import net.megaproxy487.data.ConfigStore import net.megaproxy487.model.DnsProvider @@ -52,15 +58,17 @@ import net.megaproxy487.model.ProxyConfig import net.megaproxy487.model.ProxyType import net.megaproxy487.vpn.ProxyVpnService import net.megaproxy487.vpn.readAlwaysOnVpnStatus +import net.megaproxy487.ui.theme.MegaProxyTheme import java.util.Locale class ProfileEditorActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + enableEdgeToEdge() // This screen can display proxy passwords and SSH private keys. Keep them // out of screenshots, screen recording and the recent-apps thumbnail. window.addFlags(WindowManager.LayoutParams.FLAG_SECURE) - setContent { MaterialTheme { ProfileEditorScreen(this) } } + setContent { MegaProxyTheme { ProfileEditorScreen(this) } } } companion object { @@ -139,7 +147,7 @@ private fun ProfileEditorScreen(activity: Activity) { } ?: "No flag", {}, readOnly = true, label = { Text("Country flag") }, trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(countryExpanded) }, - modifier = Modifier.menuAnchor().fillMaxWidth(), + modifier = Modifier.menuAnchor(MenuAnchorType.PrimaryNotEditable).fillMaxWidth(), ) DropdownMenu(countryExpanded, { countryExpanded = false }) { DropdownMenuItem(text = { Text("No flag") }, onClick = { @@ -163,7 +171,7 @@ private fun ProfileEditorScreen(activity: Activity) { Text("Connection", style = MaterialTheme.typography.titleMedium) ExposedDropdownMenuBox(typeExpanded, { typeExpanded = it }) { - OutlinedTextField(config.type.title, {}, readOnly = true, label = { Text("Profile type") }, trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(typeExpanded) }, modifier = Modifier.menuAnchor().fillMaxWidth()) + OutlinedTextField(config.type.title, {}, readOnly = true, label = { Text("Profile type") }, trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(typeExpanded) }, modifier = Modifier.menuAnchor(MenuAnchorType.PrimaryNotEditable).fillMaxWidth()) DropdownMenu(typeExpanded, { typeExpanded = false }) { ProxyType.entries.forEach { type -> DropdownMenuItem(text = { Text(type.title) }, onClick = { updateConfig(config.copy(type = type, port = type.defaultPort)) @@ -182,29 +190,27 @@ private fun ProfileEditorScreen(activity: Activity) { }, label = { Text("Port") }, singleLine = true, modifier = Modifier.fillMaxWidth()) OutlinedTextField(config.username, { value -> acceptText(value, 4_096) { updateConfig(config.copy(username = it)) } }, label = { Text(if (config.type == ProxyType.HTTPS) "Basic Auth username" else "SSH username") }, singleLine = true, modifier = Modifier.fillMaxWidth()) OutlinedTextField(config.password, { value -> acceptText(value, 16_384) { updateConfig(config.copy(password = it)) } }, label = { Text(if (config.type == ProxyType.HTTPS) "Password" else "SSH password (optional)") }, singleLine = true, visualTransformation = PasswordVisualTransformation(), modifier = Modifier.fillMaxWidth()) - if (config.type == ProxyType.HTTPS) Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) { - Column(Modifier.weight(1f)) { - Text("Allow self-signed proxy certificate") - Text("Disables certificate verification only for the HTTPS proxy.", style = MaterialTheme.typography.bodySmall) - } - Checkbox(config.allowInvalidProxyCertificate, { checked -> + if (config.type == ProxyType.HTTPS) SettingCheckboxRow( + checked = config.allowInvalidProxyCertificate, + title = "Allow self-signed proxy certificate", + description = "Disables certificate verification only for the HTTPS proxy.", + onCheckedChange = { checked -> if (checked) showInvalidCertificateWarning = true else updateConfig(config.copy(allowInvalidProxyCertificate = false)) - }) - } + }, + ) if (config.type != ProxyType.HTTPS) { OutlinedTextField(config.privateKey, { value -> acceptText(value, 64 * 1024) { updateConfig(config.copy(privateKey = it)) } }, label = { Text("Private key (optional)") }, supportingText = { Text("PEM or OpenSSH format. Passphrase-protected keys are not supported.") }, minLines = 3, modifier = Modifier.fillMaxWidth()) if (config.password.isBlank() && config.privateKey.isBlank()) { Text( "No SSH password or private key is configured. Connection will only work if the server permits authentication without credentials.", - color = Color(0xFFB26A00), + color = MaterialTheme.colorScheme.tertiary, style = MaterialTheme.typography.bodySmall, ) } - Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) { - Column(Modifier.weight(1f)) { Text("Accept any destination host key"); Text("Unsafe: disables SSH server identity verification.", style = MaterialTheme.typography.bodySmall) } - Checkbox(config.acceptAnyHostKey, { checked -> if (checked) unsafeHostKeyHop = "destination" else updateConfig(config.copy(acceptAnyHostKey = false)) }) + SettingCheckboxRow(config.acceptAnyHostKey, "Accept any destination host key", "Unsafe: disables SSH server identity verification.") { checked -> + if (checked) unsafeHostKeyHop = "destination" else updateConfig(config.copy(acceptAnyHostKey = false)) } if (config.trustedHostKey.isNotBlank()) Text("Trusted destination key: ${config.trustedHostKey}", style = MaterialTheme.typography.bodySmall) } @@ -219,9 +225,8 @@ private fun ProfileEditorScreen(activity: Activity) { value.toIntOrNull()?.let { updateConfig(config.copy(jumpPort = it)) } } }, label = { Text("Jump port") }, singleLine = true, modifier = Modifier.fillMaxWidth()) - Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) { - Column(Modifier.weight(1f)) { Text("Use the same authentication"); Text("Reuse destination username, password and private key.", style = MaterialTheme.typography.bodySmall) } - Checkbox(config.sameJumpAuthentication, { updateConfig(config.copy(sameJumpAuthentication = it)) }) + SettingCheckboxRow(config.sameJumpAuthentication, "Use the same authentication", "Reuse destination username, password and private key.") { + updateConfig(config.copy(sameJumpAuthentication = it)) } if (!config.sameJumpAuthentication) { OutlinedTextField(config.jumpUsername, { value -> acceptText(value, 4_096) { updateConfig(config.copy(jumpUsername = it)) } }, label = { Text("Jump SSH username") }, singleLine = true, modifier = Modifier.fillMaxWidth()) @@ -230,29 +235,24 @@ private fun ProfileEditorScreen(activity: Activity) { if (config.jumpPassword.isBlank() && config.jumpPrivateKey.isBlank()) { Text( "No jump password or private key is configured. Connection will only work if the jump server permits authentication without credentials.", - color = Color(0xFFB26A00), + color = MaterialTheme.colorScheme.tertiary, style = MaterialTheme.typography.bodySmall, ) } } - Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) { - Column(Modifier.weight(1f)) { Text("Accept any jump host key"); Text("Unsafe: disables jump host identity verification.", style = MaterialTheme.typography.bodySmall) } - Checkbox(config.jumpAcceptAnyHostKey, { checked -> if (checked) unsafeHostKeyHop = "jump" else updateConfig(config.copy(jumpAcceptAnyHostKey = false)) }) + SettingCheckboxRow(config.jumpAcceptAnyHostKey, "Accept any jump host key", "Unsafe: disables jump host identity verification.") { checked -> + if (checked) unsafeHostKeyHop = "jump" else updateConfig(config.copy(jumpAcceptAnyHostKey = false)) } if (config.jumpTrustedHostKey.isNotBlank()) Text("Trusted jump key: ${config.jumpTrustedHostKey}", style = MaterialTheme.typography.bodySmall) } - Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) { - Column(Modifier.weight(1f)) { - Text("Enable IPv6 destinations") - Text("Enable only if this proxy can reach IPv6 destinations.", style = MaterialTheme.typography.bodySmall) - } - Checkbox(config.allowIpv6, { updateConfig(config.copy(allowIpv6 = it)) }) + SettingCheckboxRow(config.allowIpv6, "Enable IPv6 destinations", "Enable only if this proxy can reach IPv6 destinations.") { + updateConfig(config.copy(allowIpv6 = it)) } Text("DNS over HTTPS", style = MaterialTheme.typography.titleMedium) ExposedDropdownMenuBox(dnsExpanded, { dnsExpanded = it }) { - OutlinedTextField(config.dnsProvider.title, {}, readOnly = true, label = { Text("DNS over HTTPS") }, trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(dnsExpanded) }, modifier = Modifier.menuAnchor().fillMaxWidth()) + OutlinedTextField(config.dnsProvider.title, {}, readOnly = true, label = { Text("DNS over HTTPS") }, trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(dnsExpanded) }, modifier = Modifier.menuAnchor(MenuAnchorType.PrimaryNotEditable).fillMaxWidth()) DropdownMenu(dnsExpanded, { dnsExpanded = false }) { DnsProvider.entries.forEach { provider -> DropdownMenuItem(text = { Text(provider.title) }, onClick = { updateConfig(config.copy(dnsProvider = provider)); dnsExpanded = false }) } } @@ -311,3 +311,26 @@ private fun ProfileEditorScreen(activity: Activity) { ) } } + +@Composable +private fun SettingCheckboxRow( + checked: Boolean, + title: String, + description: String, + onCheckedChange: (Boolean) -> Unit, +) { + Row( + Modifier.fillMaxWidth().heightIn(min = 56.dp).toggleable( + value = checked, + onValueChange = onCheckedChange, + role = Role.Checkbox, + ), + verticalAlignment = Alignment.CenterVertically, + ) { + Column(Modifier.weight(1f)) { + Text(title) + Text(description, style = MaterialTheme.typography.bodySmall) + } + Checkbox(checked, null) + } +} diff --git a/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt b/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt index 2398f5b..629f3d2 100644 --- a/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt +++ b/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt @@ -6,17 +6,20 @@ import android.net.Uri import android.os.Bundle import android.provider.Settings import androidx.activity.ComponentActivity +import androidx.activity.enableEdgeToEdge import androidx.activity.compose.rememberLauncherForActivityResult import androidx.activity.compose.setContent import androidx.activity.result.contract.ActivityResultContracts import androidx.compose.foundation.BorderStroke -import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.widthIn import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.safeDrawing import androidx.compose.foundation.lazy.LazyColumn @@ -63,6 +66,9 @@ import androidx.compose.ui.graphics.graphicsLayer import androidx.compose.ui.zIndex import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.luminance +import androidx.compose.ui.semantics.CustomAccessibilityAction +import androidx.compose.ui.semantics.customActions +import androidx.compose.ui.semantics.semantics import androidx.compose.ui.unit.dp import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleEventObserver @@ -80,11 +86,13 @@ import net.megaproxy487.model.ProxyProfile import net.megaproxy487.model.ProxyType import net.megaproxy487.vpn.PersistentDiagnosticLog import net.megaproxy487.vpn.ProxyVpnService +import net.megaproxy487.ui.theme.MegaProxyTheme class ProfilesActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContent { MaterialTheme { SettingsScreen(this) } } + enableEdgeToEdge() + setContent { MegaProxyTheme { SettingsScreen(this) } } } } @@ -114,6 +122,14 @@ private fun SettingsScreen(activity: Activity) { profiles.clear() profiles.addAll(store.sortedProfiles()) } + fun moveProfile(profileId: String, delta: Int): Boolean { + val sourceIndex = profiles.indexOfFirst { it.id == profileId } + val targetIndex = sourceIndex + delta + if (sourceIndex < 0 || targetIndex !in profiles.indices) return false + profiles.add(targetIndex, profiles.removeAt(sourceIndex)) + store.reorderProfiles(profiles.map(ProxyProfile::id)) + return true + } fun edit(profile: ProxyProfile) { activity.startActivity(Intent(activity, ProfileEditorActivity::class.java).apply { putExtra(ProfileEditorActivity.EXTRA_PROFILE_ID, profile.id) @@ -242,12 +258,24 @@ private fun SettingsScreen(activity: Activity) { }, contentWindowInsets = WindowInsets.safeDrawing, ) { padding -> - LazyColumn( - Modifier.fillMaxSize().padding(padding).padding(horizontal = 16.dp), - state = listState, - verticalArrangement = Arrangement.spacedBy(10.dp), + Box( + modifier = Modifier.fillMaxSize().padding(padding), + contentAlignment = Alignment.TopCenter, ) { - items(profiles, key = { it.id }) { profile -> + LazyColumn( + Modifier.fillMaxHeight().fillMaxWidth().widthIn(max = 840.dp).padding(horizontal = 16.dp), + state = listState, + verticalArrangement = Arrangement.spacedBy(10.dp), + ) { + item { + Text( + "Long press and drag a profile to reorder it.", + style = MaterialTheme.typography.bodySmall, + color = MaterialTheme.colorScheme.onSurfaceVariant, + modifier = Modifier.padding(top = 4.dp), + ) + } + items(profiles, key = { it.id }) { profile -> var dragOffset by remember(profile.id) { mutableStateOf(0f) } ProfileCard( profile = profile, @@ -287,14 +315,25 @@ private fun SettingsScreen(activity: Activity) { } }, ) + } + .semantics { + customActions = buildList { + if (profiles.firstOrNull()?.id != profile.id) { + add(CustomAccessibilityAction("Move up") { moveProfile(profile.id, -1) }) + } + if (profiles.lastOrNull()?.id != profile.id) { + add(CustomAccessibilityAction("Move down") { moveProfile(profile.id, 1) }) + } + } }, onConfigure = { edit(profile) }, onClone = { store.cloneProfile(profile.id); refresh() }, onDelete = { deleteProfile = profile }, ) + } + importError?.let { message -> item { Text(message, color = MaterialTheme.colorScheme.error) } } + item { Text("Changes are saved automatically.", style = MaterialTheme.typography.bodySmall, modifier = Modifier.padding(bottom = 16.dp)) } } - importError?.let { message -> item { Text(message, color = MaterialTheme.colorScheme.error) } } - item { Text("Changes are saved automatically.", style = MaterialTheme.typography.bodySmall, modifier = Modifier.padding(bottom = 16.dp)) } } } @@ -403,7 +442,7 @@ private fun ProfileCard( val foreground = if (background.luminance() > 0.45f) Color.Black else Color.White Card( colors = CardDefaults.cardColors(containerColor = background, contentColor = foreground), - modifier = modifier.fillMaxWidth().clickable(onClick = onConfigure), + modifier = modifier.fillMaxWidth(), ) { Column(Modifier.fillMaxWidth().padding(14.dp), verticalArrangement = Arrangement.spacedBy(8.dp)) { Row(Modifier.fillMaxWidth(), verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.spacedBy(8.dp)) { diff --git a/app/src/main/java/net/megaproxy487/SettingsActivities.kt b/app/src/main/java/net/megaproxy487/SettingsActivities.kt index da4751c..93ad93a 100644 --- a/app/src/main/java/net/megaproxy487/SettingsActivities.kt +++ b/app/src/main/java/net/megaproxy487/SettingsActivities.kt @@ -7,16 +7,22 @@ import android.os.Bundle import android.os.PowerManager import android.provider.Settings import androidx.activity.ComponentActivity +import androidx.activity.enableEdgeToEdge import androidx.activity.compose.setContent import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.ColumnScope import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.safeDrawing +import androidx.compose.foundation.layout.widthIn +import androidx.compose.foundation.layout.heightIn +import androidx.compose.foundation.selection.toggleable import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons @@ -31,6 +37,7 @@ import androidx.compose.material3.DropdownMenuItem import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExposedDropdownMenuBox import androidx.compose.material3.ExposedDropdownMenuDefaults +import androidx.compose.material3.MenuAnchorType import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme @@ -47,6 +54,7 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.Alignment +import androidx.compose.ui.semantics.Role import androidx.compose.ui.unit.dp import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleEventObserver @@ -59,32 +67,37 @@ import net.megaproxy487.model.SshAuthMode import net.megaproxy487.model.FailoverMode import net.megaproxy487.vpn.ProxyVpnService import net.megaproxy487.vpn.readAlwaysOnVpnStatus +import net.megaproxy487.ui.theme.MegaProxyTheme class ProxySettingsActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContent { MaterialTheme { SettingsHomeScreen(this) } } + enableEdgeToEdge() + setContent { MegaProxyTheme { SettingsHomeScreen(this) } } } } class AlwaysOnSettingsActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContent { MaterialTheme { AlwaysOnSettingsScreen(this) } } + enableEdgeToEdge() + setContent { MegaProxyTheme { AlwaysOnSettingsScreen(this) } } } } class TlsFingerprintActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContent { MaterialTheme { TlsFingerprintScreen(this) } } + enableEdgeToEdge() + setContent { MegaProxyTheme { TlsFingerprintScreen(this) } } } } class FailoverSettingsActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContent { MaterialTheme { FailoverSettingsScreen(this) } } + enableEdgeToEdge() + setContent { MegaProxyTheme { FailoverSettingsScreen(this) } } } } @@ -141,7 +154,7 @@ private fun FailoverSettingsScreen(activity: Activity) { } SettingsScaffold(activity, "Failover") { ExposedDropdownMenuBox(expanded, { expanded = it }) { - OutlinedTextField(settings.failoverMode.title, {}, readOnly = true, label = { Text("Failover mode") }, trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(expanded) }, modifier = Modifier.menuAnchor().fillMaxWidth()) + OutlinedTextField(settings.failoverMode.title, {}, readOnly = true, label = { Text("Failover mode") }, trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(expanded) }, modifier = Modifier.menuAnchor(MenuAnchorType.PrimaryNotEditable).fillMaxWidth()) DropdownMenu(expanded, { expanded = false }) { FailoverMode.entries.forEach { mode -> DropdownMenuItem(text = { Text(mode.title) }, onClick = { expanded = false @@ -154,11 +167,19 @@ private fun FailoverSettingsScreen(activity: Activity) { Text("Fallback profiles", style = MaterialTheme.typography.titleMedium) Text("Profiles are tried in the same order as the Profiles screen.", style = MaterialTheme.typography.bodySmall) store.sortedProfiles().forEach { profile -> - Row(Modifier.fillMaxWidth(), verticalAlignment = Alignment.CenterVertically) { - Checkbox(profile.id in settings.failoverProfileIds, { checked -> - val ids = if (checked) settings.failoverProfileIds + profile.id else settings.failoverProfileIds - profile.id + val checked = profile.id in settings.failoverProfileIds + Row( + Modifier.fillMaxWidth().heightIn(min = 56.dp).toggleable( + value = checked, + onValueChange = { checkedValue -> + val ids = if (checkedValue) settings.failoverProfileIds + profile.id else settings.failoverProfileIds - profile.id save(ids = ids) - }) + }, + role = Role.Checkbox, + ), + verticalAlignment = Alignment.CenterVertically, + ) { + Checkbox(checked, null) Text(profile.displayNameWithFlag) } } @@ -205,7 +226,7 @@ private fun AlwaysOnSettingsScreen(activity: Activity) { selected.displayNameWithFlag, {}, readOnly = true, label = { Text("Profile for Always-on VPN") }, trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(expanded) }, - modifier = Modifier.menuAnchor().fillMaxWidth(), + modifier = Modifier.menuAnchor(MenuAnchorType.PrimaryNotEditable).fillMaxWidth(), ) DropdownMenu(expanded, { expanded = false }) { store.sortedProfiles().forEach { profile -> @@ -271,7 +292,7 @@ private fun TlsFingerprintScreen(activity: Activity) { settings.tlsProfile.title, {}, readOnly = true, label = { Text("HTTPS TLS / JA3 profile") }, trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(expanded) }, - modifier = Modifier.menuAnchor().fillMaxWidth(), + modifier = Modifier.menuAnchor(MenuAnchorType.PrimaryNotEditable).fillMaxWidth(), ) DropdownMenu(expanded, { expanded = false }) { TlsProfile.entries.filter { it.available }.forEach { profile -> @@ -296,7 +317,7 @@ private fun TlsFingerprintScreen(activity: Activity) { settings.sshProfile.title, {}, readOnly = true, label = { Text("SSH client profile") }, trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(sshExpanded) }, - modifier = Modifier.menuAnchor().fillMaxWidth(), + modifier = Modifier.menuAnchor(MenuAnchorType.PrimaryNotEditable).fillMaxWidth(), ) DropdownMenu(sshExpanded, { sshExpanded = false }) { SshProfile.entries.forEach { profile -> @@ -312,7 +333,7 @@ private fun TlsFingerprintScreen(activity: Activity) { settings.sshAuthMode.title, {}, readOnly = true, label = { Text("SSH authentication") }, trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(sshAuthExpanded) }, - modifier = Modifier.menuAnchor().fillMaxWidth(), + modifier = Modifier.menuAnchor(MenuAnchorType.PrimaryNotEditable).fillMaxWidth(), ) DropdownMenu(sshAuthExpanded, { sshAuthExpanded = false }) { SshAuthMode.entries.forEach { mode -> DropdownMenuItem(text = { Text(mode.title) }, onClick = { @@ -399,11 +420,13 @@ private fun SettingsScaffold(activity: Activity, title: String, content: @Compos }, contentWindowInsets = WindowInsets.safeDrawing, ) { padding -> - Column( - Modifier.fillMaxSize().padding(padding).padding(16.dp).verticalScroll(rememberScrollState()), - verticalArrangement = Arrangement.spacedBy(12.dp), - content = content, - ) + Box(Modifier.fillMaxSize().padding(padding), contentAlignment = Alignment.TopCenter) { + Column( + Modifier.widthIn(max = 840.dp).fillMaxWidth().fillMaxHeight().padding(16.dp).verticalScroll(rememberScrollState()), + verticalArrangement = Arrangement.spacedBy(12.dp), + content = content, + ) + } } } diff --git a/app/src/main/java/net/megaproxy487/SplitTunnelActivity.kt b/app/src/main/java/net/megaproxy487/SplitTunnelActivity.kt index 40f2334..58a7252 100644 --- a/app/src/main/java/net/megaproxy487/SplitTunnelActivity.kt +++ b/app/src/main/java/net/megaproxy487/SplitTunnelActivity.kt @@ -3,6 +3,7 @@ package net.megaproxy487 import android.content.Intent import android.os.Bundle import androidx.activity.ComponentActivity +import androidx.activity.enableEdgeToEdge import androidx.activity.compose.setContent import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column @@ -12,8 +13,12 @@ import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.safeDrawing +import androidx.compose.foundation.layout.heightIn import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.selection.selectable +import androidx.compose.foundation.selection.selectableGroup +import androidx.compose.foundation.selection.toggleable import androidx.compose.material.icons.Icons import androidx.compose.material.icons.automirrored.filled.ArrowBack import androidx.compose.material3.Card @@ -35,16 +40,19 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier +import androidx.compose.ui.semantics.Role import androidx.compose.ui.unit.dp import net.megaproxy487.data.ConfigStore import net.megaproxy487.model.GlobalConnectionSettings import net.megaproxy487.vpn.ProxyVpnService import net.megaproxy487.vpn.readAlwaysOnVpnStatus +import net.megaproxy487.ui.theme.MegaProxyTheme class SplitTunnelActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContent { MaterialTheme { SplitTunnelScreen(this) } } + enableEdgeToEdge() + setContent { MegaProxyTheme { SplitTunnelScreen(this) } } } } @@ -140,31 +148,53 @@ private fun SplitTunnelScreen(activity: SplitTunnelActivity) { ) { item { Text("Routing mode", style = MaterialTheme.typography.titleMedium) } item { - Row(Modifier.fillMaxWidth()) { - RadioButton(!settings.routeAllApps, { updateSettings(settings.copy(routeAllApps = false)) }) - Column(Modifier.weight(1f).padding(top = 12.dp)) { - Text("Split tunneling") - Text("Only selected applications use the proxy.", style = MaterialTheme.typography.bodySmall) + Column(Modifier.selectableGroup()) { + Row( + Modifier.fillMaxWidth().heightIn(min = 56.dp).selectable( + selected = !settings.routeAllApps, + onClick = { updateSettings(settings.copy(routeAllApps = false)) }, + role = Role.RadioButton, + ), + verticalAlignment = androidx.compose.ui.Alignment.CenterVertically, + ) { + RadioButton(!settings.routeAllApps, null) + Column(Modifier.weight(1f)) { + Text("Split tunneling") + Text("Only selected applications use the proxy.", style = MaterialTheme.typography.bodySmall) + } } - } - } - item { - Row(Modifier.fillMaxWidth()) { - RadioButton(settings.routeAllApps, { updateSettings(settings.copy(routeAllApps = true)) }) - Column(Modifier.weight(1f).padding(top = 12.dp)) { - Text("Global VPN") - Text("All applications use the proxy. This is the default mode.", style = MaterialTheme.typography.bodySmall) + Row( + Modifier.fillMaxWidth().heightIn(min = 56.dp).selectable( + selected = settings.routeAllApps, + onClick = { updateSettings(settings.copy(routeAllApps = true)) }, + role = Role.RadioButton, + ), + verticalAlignment = androidx.compose.ui.Alignment.CenterVertically, + ) { + RadioButton(settings.routeAllApps, null) + Column(Modifier.weight(1f)) { + Text("Global VPN") + Text("All applications use the proxy. This is the default mode.", style = MaterialTheme.typography.bodySmall) + } } } } item { Text("UDP and QUIC are blocked; DNS uses the profile's configured DoH endpoint.", style = MaterialTheme.typography.bodySmall) } item { - Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) { + Row( + Modifier.fillMaxWidth().heightIn(min = 56.dp).toggleable( + value = settings.bypassLocalNetworks, + onValueChange = { updateSettings(settings.copy(bypassLocalNetworks = it)) }, + role = Role.Checkbox, + ), + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = androidx.compose.ui.Alignment.CenterVertically, + ) { Column(Modifier.weight(1f)) { Text("Bypass local networks") Text("Direct TCP access to private and link-local IP addresses.", style = MaterialTheme.typography.bodySmall) } - Checkbox(settings.bypassLocalNetworks, { updateSettings(settings.copy(bypassLocalNetworks = it)) }) + Checkbox(settings.bypassLocalNetworks, null) } } if (!settings.routeAllApps) { @@ -179,15 +209,24 @@ private fun SplitTunnelScreen(activity: SplitTunnelActivity) { ) } items(visibleApps, key = { it.packageName }) { app -> - Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) { - Text(app.label, Modifier.weight(1f).padding(top = 12.dp)) - Checkbox(app.packageName in settings.selectedPackages, { checked -> + val checked = app.packageName in settings.selectedPackages + Row( + Modifier.fillMaxWidth().heightIn(min = 56.dp).toggleable( + value = checked, + onValueChange = { checkedValue -> updateSettings(settings.copy(selectedPackages = if (checked) { - settings.selectedPackages + app.packageName + if (checkedValue) settings.selectedPackages else settings.selectedPackages - app.packageName } else { - settings.selectedPackages - app.packageName + if (checkedValue) settings.selectedPackages + app.packageName else settings.selectedPackages })) - }) + }, + role = Role.Checkbox, + ), + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = androidx.compose.ui.Alignment.CenterVertically, + ) { + Text(app.label, Modifier.weight(1f)) + Checkbox(checked, null) } } } diff --git a/app/src/main/java/net/megaproxy487/SshHostKeyActivity.kt b/app/src/main/java/net/megaproxy487/SshHostKeyActivity.kt index 78a0000..4fe676f 100644 --- a/app/src/main/java/net/megaproxy487/SshHostKeyActivity.kt +++ b/app/src/main/java/net/megaproxy487/SshHostKeyActivity.kt @@ -2,17 +2,20 @@ package net.megaproxy487 import android.os.Bundle import androidx.activity.ComponentActivity +import androidx.activity.enableEdgeToEdge import androidx.activity.compose.setContent import androidx.compose.material3.AlertDialog import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.material3.TextButton +import net.megaproxy487.ui.theme.MegaProxyTheme import net.megaproxy487.data.ConfigStore import net.megaproxy487.vpn.ProxyVpnService class SshHostKeyActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + enableEdgeToEdge() val profileId = intent.getStringExtra(EXTRA_PROFILE_ID).orEmpty() val hop = intent.getStringExtra(EXTRA_HOP).orEmpty() val algorithm = intent.getStringExtra(EXTRA_ALGORITHM).orEmpty() @@ -26,7 +29,7 @@ class SshHostKeyActivity : ComponentActivity() { finish() } setContent { - MaterialTheme { + MegaProxyTheme { AlertDialog( onDismissRequest = ::reject, title = { Text(if (changed) "SSH host key changed" else "Trust SSH host key?") }, diff --git a/app/src/main/java/net/megaproxy487/VisibilityActivity.kt b/app/src/main/java/net/megaproxy487/VisibilityActivity.kt index 1e2e567..f9d9f08 100644 --- a/app/src/main/java/net/megaproxy487/VisibilityActivity.kt +++ b/app/src/main/java/net/megaproxy487/VisibilityActivity.kt @@ -7,6 +7,7 @@ import android.net.NetworkCapabilities import android.os.Build import android.os.Bundle import androidx.activity.ComponentActivity +import androidx.activity.enableEdgeToEdge import androidx.activity.compose.setContent import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column @@ -41,13 +42,15 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.dp +import net.megaproxy487.ui.theme.MegaProxyTheme import net.megaproxy487.data.ConfigStore import java.net.NetworkInterface class VisibilityActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContent { MaterialTheme { VisibilityScreen(this) } } + enableEdgeToEdge() + setContent { MegaProxyTheme { VisibilityScreen(this) } } } } diff --git a/app/src/main/java/net/megaproxy487/ui/theme/MegaProxyTheme.kt b/app/src/main/java/net/megaproxy487/ui/theme/MegaProxyTheme.kt new file mode 100644 index 0000000..47cd8d1 --- /dev/null +++ b/app/src/main/java/net/megaproxy487/ui/theme/MegaProxyTheme.kt @@ -0,0 +1,27 @@ +package net.megaproxy487.ui.theme + +import android.os.Build +import androidx.compose.foundation.isSystemInDarkTheme +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.darkColorScheme +import androidx.compose.material3.dynamicDarkColorScheme +import androidx.compose.material3.dynamicLightColorScheme +import androidx.compose.material3.lightColorScheme +import androidx.compose.runtime.Composable +import androidx.compose.ui.platform.LocalContext + +@Composable +fun MegaProxyTheme( + darkTheme: Boolean = isSystemInDarkTheme(), + dynamicColor: Boolean = true, + content: @Composable () -> Unit, +) { + val context = LocalContext.current + val colorScheme = when { + dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S && darkTheme -> dynamicDarkColorScheme(context) + dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> dynamicLightColorScheme(context) + darkTheme -> darkColorScheme() + else -> lightColorScheme() + } + MaterialTheme(colorScheme = colorScheme, content = content) +} diff --git a/app/src/main/res/values-night/styles.xml b/app/src/main/res/values-night/styles.xml new file mode 100644 index 0000000..7550247 --- /dev/null +++ b/app/src/main/res/values-night/styles.xml @@ -0,0 +1,8 @@ + + + From 397576c2528511d6ce61600a30ae0d82eb186f1b Mon Sep 17 00:00:00 2001 From: Andrey Prokopyuk Date: Tue, 1 Sep 2026 15:23:15 +0300 Subject: [PATCH 25/41] Add icons --- app/src/main/AndroidManifest.xml | 3 ++- app/src/main/res/drawable/ic_launcher.xml | 13 ------------- .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 +++++ .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 +++++ app/src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 8052 bytes .../mipmap-hdpi/ic_launcher_foreground.png | Bin 0 -> 28784 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 8052 bytes app/src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 4354 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 0 -> 15146 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 4354 bytes app/src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 12557 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 0 -> 46377 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 12557 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 23776 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 0 -> 95741 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 23776 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 38058 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 0 -> 161371 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 38058 bytes .../main/res/values/ic_launcher_colors.xml | 4 ++++ assets/branding/megaproxy-launcher-master.png | Bin 0 -> 1120504 bytes 21 files changed, 16 insertions(+), 14 deletions(-) delete mode 100644 app/src/main/res/drawable/ic_launcher.xml create mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 app/src/main/res/values/ic_launcher_colors.xml create mode 100644 assets/branding/megaproxy-launcher-master.png diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f86f1c7..b80b7dc 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -19,7 +19,8 @@ android:allowBackup="false" android:dataExtractionRules="@xml/data_extraction_rules" android:fullBackupContent="false" - android:icon="@drawable/ic_launcher" + android:icon="@mipmap/ic_launcher" + android:roundIcon="@mipmap/ic_launcher_round" android:label="MegaProxy" android:supportsRtl="true" android:usesCleartextTraffic="false" diff --git a/app/src/main/res/drawable/ic_launcher.xml b/app/src/main/res/drawable/ic_launcher.xml deleted file mode 100644 index a631e8b..0000000 --- a/app/src/main/res/drawable/ic_launcher.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..be43858 --- /dev/null +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000..be43858 --- /dev/null +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..c9dcb06ce76f65a4b176d9ac050bc77c550229f8 GIT binary patch literal 8052 zcmZ`;1xy@JlU`tfh2l~ccUasVic<=uxVsl?aV@^Z-MzRkR@~j)offB192V#L=aNe< zm&;`4OTNjMd3lpbChvu-e0qJ1pprYQ2~blfEygW4RqAiT@Z>*AGgv zsDIE9FbE+79aO9TD0){}9ajreS4&}YXUl&8;O6A!XX6xNUfBtVcZm4KY2^?xEBLhFgA#ik-2O0l<4tfQl=U@KerBe4Gaq@(j` z`EeZ%JQDUjUiX>uIs0Y}yMcX$b@1O$Mr{vE;6|t{G6qrlWV&5@;gUP&g(15#MY3De zhOt}Kg0SSZEZAAFQd`E6yV30(r2vOPGTjjnToWgJkV>wFL|b=uP#{9h18ginUM;_G z@y8q70aBE_4h0q8H_fZmDgdgu1cPh$K!dnn`O|*ooox9ciXCdMl5vsjgd^EQr#Yq7 zLFS^U^!TyHF0RKo$h03Tv(TXjPX_C`d{`L)hfK)!?W`;El8A&O(Zym-<#20~*0q%#WBkOWnUl=f`VGFR#?_@81mTWUGD4#7ovqtF&L>KLvdbpeRgJ?Z#!>HWs4@v@T8|%k4=HN+?NEq zp-p@+G1^9@VR2F3(A9%((#{!$k3v3i6)7z0BXO)CXgNe+tI3 zmRZNi_y~Ur4WusmOr3zh8;aJ`ldrNT@4la(2to`qbz(~Y;?kTYF+TjR2@1pOY zt!B3SBT_|o_ng5gMp<&(X$lDfI~vKT_Ji*buG)E5Nz^>OAj?HF3g*QM|o8I*3=GC77bVL|iTIJOopiags&2!VA3|6eYG2fc(?BMs;Y z&g?$#V898ajyC1}0OyMo<@d;+&zIJhb9x`578HC*RNWi5R;>kf$WbypHO4g9scp91 z4{xu6s{S;YR$7AkA7nC7wO|luVbht6=~!G8jrFLFeJGW4ULSMKMTT1xObCB7pq9kg zPP;OLP{}<&(*hTY-n}81J*g6{uxNEkkKody|N_xM#+U;FpXlETdE*Gn%eO>l6<;wNYv*Tp4!z zp-GP^ks#P4E|)17{L{HKVppE!k4|<%HWxR2mEPVMtszY^-gxW82bK?uXu>{;w_fC> zlWKcUX>}bV_auhp>FK$G`ycByP$Xy+pY1iE^5 z18?!LLX{Yl^q-3M-@7BtEka}T7-+Q{RFU5oVNwp{&EbxKTfxMZsvve26ZZWoHI;~i zZ6nBhFVOtA!PhEopsaQ}7tJ_3=3`-PI5-WgH(HlI@Es+nIAv~|tBR;ChZh42b*L_b z_Of1x4`Jm<(7F9Y$1aA(vLw#zk5q((W17#oo2?cAiFKM)W>zefy1JbJu}p{-z+b=@ z=bY?tY>^nu&8YufOOxiqsC86}g-RYXo@S&b10L+Gyk6w3Uhxy|dEh1(<*z?QK+EOg03aIuq`f)N&r_7?&PTzgU7@K3-ei>zknTSTy) zv$TXI?j)FqWO3VE1HQ82R_Fv_U06|3^tQmZDvL~Jvwy15dW5m1Dgqvl=)QNKjP8Mt z+6GIgJTxbMC)m0}KaktwF-Dqlc~abWS+Up!A;p>Oe#jJ4W!Hystc*?o@G`iprl3)U zi(Cvkf6_8Pn+Ode4D=PgDFS*3jvMNZ3x>4I{2Z|`Lkx-99{=Q#$l^0$m}8kt$xJ72 zPK#*b)GcJ5I#N_UP2vUY7%eMjru%53e?rvBtG72bT}~)xHd>=n^-wXGHkY67gtL?# zwD@q1!>WqvQ?V!cY1Hy)Epa+Dz|58TfMDB#U(y}(lLrQJ4mP&-)id>suWn

EcRJ zNoYIkh(&@>kOdZ2R)0-L{CJRv545{}c6MBkv4DvQW!M1dQRza8QA$3`Wf@t6)~k>n zty)JrX61A;TR&v^cU@f}m4n0BwZZ5SbI#8FKKwED>+^GD>TO@;8J|x5w6e%

-rX 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

xX@J=I6gS<`B{ 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

9qJp>rUa0h8?K|FX%j*}%w25IcBWG;( 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..c9dcb06ce76f65a4b176d9ac050bc77c550229f8 GIT binary patch literal 8052 zcmZ`;1xy@JlU`tfh2l~ccUasVic<=uxVsl?aV@^Z-MzRkR@~j)offB192V#L=aNe< zm&;`4OTNjMd3lpbChvu-e0qJ1pprYQ2~blfEygW4RqAiT@Z>*AGgv zsDIE9FbE+79aO9TD0){}9ajreS4&}YXUl&8;O6A!XX6xNUfBtVcZm4KY2^?xEBLhFgA#ik-2O0l<4tfQl=U@KerBe4Gaq@(j` z`EeZ%JQDUjUiX>uIs0Y}yMcX$b@1O$Mr{vE;6|t{G6qrlWV&5@;gUP&g(15#MY3De zhOt}Kg0SSZEZAAFQd`E6yV30(r2vOPGTjjnToWgJkV>wFL|b=uP#{9h18ginUM;_G z@y8q70aBE_4h0q8H_fZmDgdgu1cPh$K!dnn`O|*ooox9ciXCdMl5vsjgd^EQr#Yq7 zLFS^U^!TyHF0RKo$h03Tv(TXjPX_C`d{`L)hfK)!?W`;El8A&O(Zym-<#20~*0q%#WBkOWnUl=f`VGFR#?_@81mTWUGD4#7ovqtF&L>KLvdbpeRgJ?Z#!>HWs4@v@T8|%k4=HN+?NEq zp-p@+G1^9@VR2F3(A9%((#{!$k3v3i6)7z0BXO)CXgNe+tI3 zmRZNi_y~Ur4WusmOr3zh8;aJ`ldrNT@4la(2to`qbz(~Y;?kTYF+TjR2@1pOY zt!B3SBT_|o_ng5gMp<&(X$lDfI~vKT_Ji*buG)E5Nz^>OAj?HF3g*QM|o8I*3=GC77bVL|iTIJOopiags&2!VA3|6eYG2fc(?BMs;Y z&g?$#V898ajyC1}0OyMo<@d;+&zIJhb9x`578HC*RNWi5R;>kf$WbypHO4g9scp91 z4{xu6s{S;YR$7AkA7nC7wO|luVbht6=~!G8jrFLFeJGW4ULSMKMTT1xObCB7pq9kg zPP;OLP{}<&(*hTY-n}81J*g6{uxNEkkKody|N_xM#+U;FpXlETdE*Gn%eO>l6<;wNYv*Tp4!z zp-GP^ks#P4E|)17{L{HKVppE!k4|<%HWxR2mEPVMtszY^-gxW82bK?uXu>{;w_fC> zlWKcUX>}bV_auhp>FK$G`ycByP$Xy+pY1iE^5 z18?!LLX{Yl^q-3M-@7BtEka}T7-+Q{RFU5oVNwp{&EbxKTfxMZsvve26ZZWoHI;~i zZ6nBhFVOtA!PhEopsaQ}7tJ_3=3`-PI5-WgH(HlI@Es+nIAv~|tBR;ChZh42b*L_b z_Of1x4`Jm<(7F9Y$1aA(vLw#zk5q((W17#oo2?cAiFKM)W>zefy1JbJu}p{-z+b=@ z=bY?tY>^nu&8YufOOxiqsC86}g-RYXo@S&b10L+Gyk6w3Uhxy|dEh1(<*z?QK+EOg03aIuq`f)N&r_7?&PTzgU7@K3-ei>zknTSTy) zv$TXI?j)FqWO3VE1HQ82R_Fv_U06|3^tQmZDvL~Jvwy15dW5m1Dgqvl=)QNKjP8Mt z+6GIgJTxbMC)m0}KaktwF-Dqlc~abWS+Up!A;p>Oe#jJ4W!Hystc*?o@G`iprl3)U zi(Cvkf6_8Pn+Ode4D=PgDFS*3jvMNZ3x>4I{2Z|`Lkx-99{=Q#$l^0$m}8kt$xJ72 zPK#*b)GcJ5I#N_UP2vUY7%eMjru%53e?rvBtG72bT}~)xHd>=n^-wXGHkY67gtL?# zwD@q1!>WqvQ?V!cY1Hy)Epa+Dz|58TfMDB#U(y}(lLrQJ4mP&-)id>suWn

EcRJ zNoYIkh(&@>kOdZ2R)0-L{CJRv545{}c6MBkv4DvQW!M1dQRza8QA$3`Wf@t6)~k>n zty)JrX61A;TR&v^cU@f}m4n0BwZZ5SbI#8FKKwED>+^GD>TO@;8J|x5w6e%

-rX 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..43a1a9c74c48e307f8da72ee48eeec9d6ccac84d GIT binary patch literal 15146 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 JD{d0CsVhQUd@$r+;7P;SI|C>y*Sd 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..8cf6117a880cc6b56d582c3fcd117b88cae490b9 GIT binary patch literal 12557 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 Q&jJ7`F?rD{VS|AG0%-hhdH?_b literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..c149ab4e632176083ed0147a9df4ed74681ddf1a GIT binary patch literal 46377 zcmZ^K1xy@X@a8UyEZW80y|}x(YjKJ%wpej#ySQ6%cb7tOcXxMpFU4AUt928&;Z+fhN-i13<(5vQ{t)(mFF3wi)NDHRl)&V@7tp z8Uz`35D!a;pdp=*7K%kE5}cn@OuF9mncv>3I)AbHuvEG2{rc8jRU~q9-Jo%E{jn+6 z@4R9*qK5|v2EzfI@YSb>tY@_R?*2W6x(A9nGeqpZXE77+-rrJWUqb+UzX1@lAwTa%*4hFi^1p-tKtXxmx{`o~30G8q(@x8101@Wcc#?odTp6IOh>Vz%6acZB zG5)F;D5s6;(%c}4k!P&&Zhr|Ohzj(qCMj8tGB;607_|ExKn14?qXhua0L#IPPp2qF zzkx&V-ccdioGTtq%TH*bgG(fJYnENKyLr)GB+WR_3qHz0OE|K1wLvuyG-P*Kh=^PL z!RZwbiyL~X--~QN{UXopkUX%Ou{0b9PZqNH!d%#b?_`n57Pak-hmGN~{0{PO`8qWJ zv}#u(%6Kl0g#U2UZ^OmqO>w<{l|Ac9)tE!%s@Zg1O0%DT{qJV;xu7whsYMJjl;7?o ziYdK{JOUwxQhL2?(Q~N->&M%lhMN*<%4M}u`GWLtpoq-{U=_={3a|P-Oc(-R+2L_S4)ZP+nUk)Gr3+++OjuS>sPNAEU*yWjHtBK@@B4*m`~7E|Y`+*w{8 zDD^s3%kWe2Vm9_l>`5o=0iY(~5bJ;j4h@=M9V!ApD=*@wWUcJrNBjgFS|9y7SQ*}H z>_0}9Z*566ELv}wH*{R?vc{oNw4OyMCoEU{57${!1>d_q2cNdw3WJ`ytOeBjks^#Q zHqn+KugF7eyv98C#vAJNg4~>Tgu&I#P<*`yh0`<;+On72bF3B;b`v?kZNxqdJ%~p? z-y9|(C(z}0LaynGo;j$-*gqdQikw z$UuMK1{2&V2rTw+4#ECGBE{G3r;e31<$PJ06D8!jQ4+Ny%V<#TrK#1oZRIhAU2Z|W z&L1w%brL4zuJo6(DQlN_D)?f)$tKmS-;dh!ChGag>&o(r8OPdaY@<6SIMBFky}A64 zUbscbBU%uM^qDwp3NZV{wEs!4h2LWVyo~(C@5|Sz6!W`ycbUka1Z0i5@Az51hjX)^ z0$h04nM?mPhhaInpkUE_11%*SH}`*`mvO!3UxZfjYxCWet3OS&TWaUl{!h+;1dJM9%atzMM=ux+UVD2e=<)VwG8auz8b4OoO#tMBY!}Ca1 z79TFD4^jb1TK7m@B_U{dvQ%uyV2oxd6#&fdel0b$v*?%+#>d36^2uQTOFuT|G%EA0 z8Q-0XpZWQYcDs3?Fo!~y!}(@jBqNX(LpB6VMBsC4)u|H?OUGW`K4XaJD%-Y`F#lO# zt_eoyP0^DYfTo5i;W!r#SZrvOyDl|XyeYP+3o7y`EWja&;Qx9g1Qmjs!beR-vU8_7 z@Vy0<-~n;98%>3on=3h}1i%AEM<4E3Cm@wRrJ9;f4l&TQe2y?{^2HtK2XGO!>OItX zmKAWdE3!eoD4kXaz%8wTw>l!~po!5w&AyfRuq*#SSRNJd{j2wu2#VM0a&=eVPmLm6 zD_BZd(Y4A7JZ28*$>}f#KhTJZ+r7FW$)0`lCTyt8X#-xP<|_97&6N)cKr@LN$w{w@ z8VSKayD#YZvX6RRj>L^5W})Y?$OqBPS4XWtjV8nqM^6kARI; z{I$oNv=*jUr5_Z(5mZe7t|C{H41S`b5!Nk#8MezS6an<%_aWDJU)kE)*)Elrz~Qqo zDevFg?8Iqx|4Qg@)+xd>Ha`==mDy$C=AqT)AcTd2&?Y~(|0Bm>#~~3B456G7S0~e& zwX3?xb3kMQhb%s%;~c|=QK<6Swb?Y9A3?|y=zHpN*sy0qKCN0K+VHG=sF4%_j>XE^ zn1)=b()i#4T}i|jKN*r1YF+u3sq;|`#o!47B!OOZ715Pfs$UXPvY(=}|J7cr-alnE zb(mi}R)(?f5wdY&8V`KUWP`;9HW^J})Na0_bY+vDJisWOS@Ay1z;Bkz z8Cx7}U)sV_Md#FTc+&5^s@~HC8wwJz(AdYQv%IDh0=0@ul&~Sw&`wzzNPuTcM7)HN%3+}l7%TpXvcSLHWFsT2AH8#-b;|PCymqM@!Yy-;BIf7^QA`4TA zBp}@20>yf@&e6jOs>_A^DCl9DTm-8L_SamPhnZoQ+*RbR$IStJCM7x%If*KgklP=4 zBK~(ntAHPs-jag%t54}T%Y+$xQQ5@G)(K9bncu^azwpdvGQw0@m+oSENE18ixh4h$ zg_mVJ3*s7tO{bAtyqqy&0J6zp_#UFM2fWV3s@<;z2t%>NCNOS=n7&|rGYqLNZ`@?$ zmUHBmOCq&4UUWyIKaXS0+Jo#BF!Y#^#^-J*^Z8&$-mo~||5FWmxg7JD7iPssHcKN)f> z+V!^ia8BZiCSQcpgZ{14m%!Q1Kol_t8Hzd3z3EO_oNp%og?*;vD(;{~5}(*yq8oZi zGg-TnKb}^OT=OOJ;{E=akP@bn1lM;g==F+4a|f)KOj><|&pq4mdSFg#N;31o=N#kJ z`#@oaynL;^d$g8A+5ZH?t?Ci`tnF$pyMnUr1_D6?xfh9KCfQvgSTd|%gOD*+e)Jz3 zLJc#Z0k_=idKhWMc7oGH))=*7=PTsSUN@v1A%cb4ioKt(u@Nq{SJ>LQ)ed~LjU;u% z#G2DVTS-xsNNRtw{y2|Z0qmSw1kEcGti8;v5^9oRw88GUym&FsUQ>Mj#6$v&=-7Yg zvh$-ydB`4)U=)ThcSTSZ@p(ie=@r!Zi!VX5$TAJQ?!TNwj175oOg)SGSqC+3>xcDK zoZwIJBu2^GR&`y5ldfy0Xf-!6 v1)^va3LHw(Zhi%jqW(S)^mH9xBkEdrBoz6Ld zNQvqJlt+yeyN>%qk>%VfiAC?Rb<1WIA>sMbhzVupKPTHlLq<*0VP>RZQfG>eEtVe0 zEq5JqlJkKXFilWjQuB&Y+&dzNpNz>7tf$8*?lhocUOl;^UbcHjshDKlRs zrc|2r3u!Hw7sRIpO~o1f8TJ@?%RaNa)|_FMv(-ohl++H+&>q^xlgF8f%mqg8KM$IcjzZFI~{XBhT*X{|LA zjMrCNG?c#vKHhDuk{W$9Lgx7XtX1^$%eN&XL|gs60Cww{99N}RPfm55{_Qp*I`>5M z>>WhWUf0~Y%OD{K!KlD_J`1uYL<2;elAIxD<^w->?QuL$aZN{z2cx;WcI~1xp6JAa zNI~dgtcYcY5Y!#HKUH--NODB+CF$)WFH2s@ISF$=8}7Zt{IUxcsk{C9HtYUzNtw=q zS$yJX#a9CWsy6}eJpeHIv3yPx3YP>g>l~rJYs|`eG)m8K6?~TjQkTtzB(dN}bFSK1 zdCGtOJXV61)XfG|?EGlK;QG8&Aa82K%iJf<2{UCpg67O?tzi1{)Ce3HwQ8#57`w!V z2e0y%(L2;G1arc)7ON3uaTT)9661z)j~wHcV0`I6XbPP!qCOx1n&&e;mc3zB{FofE zOBL&<>9)j#t$)3P-#NrcUCk+bE)sGO3bMi>QHW&(i5zJD?jmvfX1EaR4O#)b%`hN# zzPT^YAI?wRuJ~c0?dRHcgZduiT*JTKhD zQq>M}u09)41_ohgYZeYQzVH|IV9wtUZaT#3A**|Vvh@dj@$t3>~U^fsX5{aWhKgQBWS4EBL9gK<#Yr3UkJ0Tql%5%y`aTZ(B z$-1@2RFtKC$@elg!o%<5^MPm($rA?d*{yUOLk3*lZU=rXmkvRozM6saCX9u7w6yz` zW~%ggFm;3Rn97S5w04RRA%l4mr^XZu*Y$-bseWFw!*X2b1*nxM%*ySFue z2@?DGXc^ts6U~B&#S|#SdRJKX*GG7t+qWk$wB=(it=%9O1#XLrX%Qkt#@Opnb03u8 z>g#V|=lqX*;2I_nOx|@fiqxBz)us7|gLWo^I@)p8qv~Bti3jmGAl9L#sc-4bb;{IqNR1=6vRd$hnO=Xyc~6aiJ~ND~{~B1whxZy*##43WiR z7InaMFtZq3+`_2y5v?$bF^>WDm|6fTa;=q{>=?!i`vc_S`e=g$k?05uXW!PQ+NP*g zHGZ!Jr&~;r&k+LE9)1WJ8`RPCM4UaH+$DJJfr6lmk~se@s$F*p*H}TWsef~B8V6U( z;%fcS^~n@9^D4vOJ+yc#KrP@aZ%%u8O4#~`nQC|Atq2=pEoT^&z)lF@gKJLPfiG~W zy0D*MY2cqB(RQ(Ywo@>4jpWtRK#&(R<($7cy}lGp-*-+&oI)c#BW6lTM=}fGtgYTK z!eG*2S+uA0a{&i7XZcw&Le_+(H+JsmN~HD3{h&Ev#HWPd=|$qGJv8yL>$V2Xl#e9T zXpFVhWY?j7a?+19&8gX~>&b_fb4l$rPUOl5?Y0XCfoRkw@D%b%woIqb~#H)wTt8Z(hmR3c3lwwphk z0LSu!bd3gTwi zI|Rmm33~M~ML-|gQTxi278(HkD5isjs^2^m%hbYRF$S?;3d&S+8}f~Ue3KUQuz7W8 zlWm$uz9IVutux4eqGeBX)@{$`XW&PvLt3Os7XJMX(M;NMvWE`&81df zin=_C;<#fVyCgDOC{Iul- zncQ`Wwuvw{^GX}wcT`;O&ahEH$UT#8CI9e2%9Y5qNfwXUBx#Y2F2;?v|HlW^{@9(QD+BRb6TH;|YB7Vq#cR?c z^hci>4ETJ$HlW^vke%}f$(CN%Iif}r+GEblMcMgKte(|X88i20+K*bMiwnXyEDl=L zyzis=w1I$c7ida!!kdHrKQWQ#gba$$Y)QtZG}(O4TSEZ7aFPG+wPy97O;*p;j}15U zb-lglC)6q%tj*;F#)H=)>1%e;qO6or-6-~Xa~vm1LEqY%eD<+VUf!=qw<`k2WXsx@`g}xx$!a~JF2_EY<2M_t1ve#- zz+0%+t7oxr+Xl%LfS+b{s!M14Vo0&E41TX%FkkNb=0q(RWfhm?^^|1(D#=$YBPSq$iW5Y?X>6gaNfdA`ZSH@kEUR#Ix&~5}CySijH=i^%)nd!kV?2#u zYC1A3#`2<)Ra~UT)_$v+4gg5ft#oZwzq!D|n6wSj1JQX@m`&0%O87Z-Su;lDzibqi zgk>@Fe6Br;Ge(@{Plwv6HiDLLI;Gu)Ph#w-d!0X$X}D_hucB?fQXtP61Lvo4=O&mt zv;SM-jh<+^Cmv^8T7}x^&@4VgLgLP9E6H+y06ZfcL35c20G8vVU*Eu%)rRZ(XP+d|1)7nLo_6Bsv%r_8af!b<+r2LDKyIz_g48EXllEv zgpMGZ%WvIt{&;PXv}VZ3eIMZ6z>|fD+82b~xi&KmlnEAt`_x>pRsdMzwIWZyZd`CT zkY;ZH5zxINAH4u|$fG1>FA?oEe?|iT{ZS70CmA|-o$gLxQ%Bg*I!^1l13?l$DGTWo zCgUXjAz4;>hY-u;U)#1uX0#CVRWBA3v{JpD5yOK`ZOJgY8VGRT<5pYXRbLo2=|$r; z&R;heiz!@1ck-O8ZeY=HD?3BqPT*x11z?@{(*uGpZ-f{$ujb1Y64fo9twL zSg0K^e9-T`Gfqr8tl;wlTrv5Rx~Ve%4e+XE)g&^cC)gNhm87*^0H}YRAXb ztu%#I;FQ*?B%nZ;ZAi-8bc+u24}8k8)rU~qzGNcPv-QOiJWk8$^BT8!{CGxw5zHGO ztXjk#oojRs9@@mQjUeyrNnFwUYS7!rAy6hHs+zQ{Ub+hy+h+u<=x9r$m;GdU(A9 zUqNt{J)Suu!8{v9rmw^FB!3O-XqdN*oo`+SzK*=4gOY=n%l}`JR6D^N$x$q<*F~(Q zlwn-ZXOC`Tv>DaMF#Dn4=SZ@ISkDI%$WJ@rdhHCzrN}EOq%i(mCid`Efa=o-NfFGd zQhv(WolP2#@|+_T!!9#JL{N;>O$U(vS%=77!JmaMCu76OPQd-P`>+f=ru-eljcL#pXIDsBJ3y+svCy?YW6`p=L$3FB~ zHxGR^;&ARMy}3t1`;9rp6f2HaZhn|38GU+iYKfAicmvhjParNr3I6+=WeF$Be7dov zQoe{fV!fPDD{4n4qlkI6J&R#qK$rnWW6kec6U@S?W%O7vk=%5Yi{9~h#?n0VAS!Wqch(f;Qu0=l2syQ_t4!{U)RGgmN8i&VNAY zjjMVRHsV~?$H#mj03EIedhBf_F*GtY$EaC~pH05-pTa>-LibKMComK+0InA=`1MeU zi1vwyU~QR{%)eFusgGTNH3U%GCnHz2uKa$wzo=OtlZmJ#c2o-<8u6=gMn<0Q;VVrO zsITqdwZZzreM6*v?}GnX+6ti|RW!rUc=RjD4uCOEFq}TPs$I^oawjkf%- zwjtW#w$|!pxH`MkGwEE+%*q3lJFc?q`QXw-mCtFV+}Od3>q5WTU}k?7b$S+rpP5or zQ^;YfSsWb84Y4r7thkA&Q#TFDxRv|4;K!&?jT|n1sI*=K`#i#WO9sOv8HP!j({(o+ zH_NiWMZZ$IStGy|sRy@)K9!k~xu|1}6jca2g3uejx7q)mhINzCFc^|M7kSUlPc=Yf zL%i>(ieNs*;*DQJpZ53Y9ACTqqN#1#+Io6nfzUl`pn#NfcDD zE7n5d?HGuv*R(V0b#0@w9E6cKN-}yaT2?}P(;-2~j5yuj4?jlX;jNy9eV|Y;eb{@p zJNy>#BRqr0P>SZs7+{Q2vJ zMcq99O0Se895DY$aRLjwAR;-xYKkUObJ0MoiAN$)s8>L~=SYCi;;>NXTJG9_5&gs7g+MM{bUyOq47Hp`#Yx{6&)M}PO z()77Qjt0<+*qRs4vVdwVu`+2uDguk^ceb+0uO$k7T7`~UKGFDWJC&5)UMjA`o>b~6 z0L5GQ(4hSon+<`;fk?PPmCOAK=SVT~+|@!>P&9!XSJlJw-n?+J@$~WXg#{UNItu97Tw=4uIj&NzcUaKtg1fdLwYN|w2f~y z-JV)+rYp1N(+4_ZV#c#xQ3opdZBlJ#k~Qa{TC7tug|y~{RUHl1n5euxtT=^@!9b3_ zZ0nv*YtCKAo7ZwYgeQ2@Q*53z8-kRR=$avVDlq!mjZ#RA_%?%m756_JGyfu++T+E1 z!5fTX2b>wpLbM1<%jkLJXk zek!pZ(N|;0u0;Ewl#cHUZiP2q?@)^kYBX(ME%~(J9l^&=@0u;EgpJxVXHe#5&7@WpPl1 zuRrPr_axnQ8zY)^!(WSG_J!&GGMY$X<|jXbarXw~0a1?@3T4M4ALnVjx;V(bvd&Jc4-LL0e7KA@6nNJ?IgN$(FA54WUrE$ZNamoel8K%2ZH zSE?GFa|5%(XM(($6WWlUCO!VLf5xBThTqn|X^Xk99C!2!yYO_jHAsIqhR`kUDuw7L z8~P+O-~RwNhI)0P4-sSPWas2t={V=EB*B_tf}~JU@63ADSS04XZM1x`AY!Likf5tG z>HTHBL`_2N(SLbx-Lu(wN2drCHJ*KsNLjj6DC!q}NOd|k@PxEhZp1mjPQ$MOFIr3Z zA8QQGnJ7Ba9hDz47c_D8o?l_|f?2m=sx|ExJgDt8UuSTrk`=7BMki_hF9%LKrSA-M z1$7~>4s#8(s?hg{ERy3jH^io6iU$>j&fHlVB*l_29Uu4DPPiy+{}>w0`8>k2TS3nd zG-ihFx@0xI8q}sc#3%~@!h$ll#6weMTF!xhD21Xx{!%x8)$(Uh*Z7ZCys4ytgg^ef^R!%GjnJc9fVCqeOY4z=-vY4E#w@nWw z1lL1uE>U-Ru@s4J1zlW(y0!JP%VhA-`3I{-A!{)cNrt>HZ~SZL{?Q#nXJiTiVDFL< zHaJ8)8PFTy7f>KiZ)_e{aQrdg3&_BilxUdciLXS{NGgpZ*LSb?zBf{Ns0f6^;QJ#MfvyC5`n*B?> z+kpJSrnZ7e0z6AhT_nFFB1uj87pZ4J!pHmW`wjMImU9=y=*%q?U+gF)xU=_{yC8>j z9`7@X&s zw22R^9Z@+5jH?DsBsDqB>JiG27gOs^Y&M=>>@GW2Ohi4?h$?gaATlliuy#evJ_3Iq ztqOn@9fB^C9k)erV(Wal5NEObTN|>01s(77Bdf}eFT&2!`HDWs@FyavTH6+|Ka>$9 zk2yF^a@k9M-qPWeg>{y_MQps7E_n5rNnsEt4D_yL7|*&fvEc+gwxrJf=wU?jbP|I$ zd@dfcZeq8K6qT`MM47-jnjAv+`o`x8xQ3ab>|lF(ju3%Gz4Zd zpiLJ_N(4U7bu2Q9aTT|I<@6dubi~4mPb<`7@!s9VTJORF+a4-AWgw-goZ}dg<|6WX zR)#ypsZs?r$WAOD^Wt|Zl0088;&7^Z@J--mWHc@5nR3YM9at$aWRuoslzxvD9Cyw* zz|bjKQ*Lni$>&9s3Ju-$mPz43+#yPAAdw5J(Qv_hl{&5RTF?W_B%=XnN@Rq0uAUYn z!Ds%>JDbu`bu=4SZ{4=$1f%GR@+Ny!kD`(ac2^t?CPw!Uz;(~AV8`uG7Aa{&y~6@v zaNX|gL1j4ig5lrq*FI2(sR;qViuvNUNwM*xuL}U#TxT~XZ^~Sx5z`#cBy%aOgA#+# zsFY5%^e!cr-X{}pwl?S>n2nsR-)6me@OKf!pj^ipie02)GaUOD2ypdGD@`eXCOapR z%-2#~1gGQ9#%^uPwKg9o!Ye5`QPyGzPV!D_zCF-_XP?cB)iRo-2+_xBHE{9J7=!l? zvm|0^v+^@Ug@#fuj%Oor6>`4|gQ)f#0?7*cz1S33+*bCsWy~+q>WIU?)O(1?vm1C11jWx+6melL^SKFw%jmW$Xh^y~D^8{PnICfszV_bgo&9di5XJ+}$OWXM*r z6bzDCO6eOE0~#~%1+;`Nb57Q%{R_{$Ab3y=mB3*aJ(k=hssv_U|C+(%5s@J|%qE<@ zxe*g~5;Q7OQMBv3HRS*D%~XZ1&#Brf!Nq(6;#oiRl((}()7l_Oqj6*b8w-wzqxL3r zPSAl!fw@@o0eGWT)Hjd&#F>5!uoK+mGzK8D7;y^$_xMc%oOxUA2-IhIiduyJBCdoz zNQ$4`1#V>(Ug&8i$)7ElWG7(@``K!IGsODCdEzGgj&aRls-YmwzcWnUZ{nxPHjOar)$0WY>2fzH;f z={!r=VeP9mMU8yz!5a$3M)zv1S3|t`451wkp|}EJ>#d2zWGy1$+iDnn68sTPr*Y=4 zHpGeP3UODy&AmJl*9^||Y-&H8QwX}Z20n}g9ybd+-O34qN88(t1DkK)8J8;`Q|p%1 zUyPXYt<@2=oKK(F)m%-MQAhVkvVPGNaF-&}gG<>%gTC>1bakr(5bBDZE!jOKf6Q3@ zz}G?=MPYf#=OORMo2(7gThv2PU#uElDtzv4qfET2pq*_sqD^aXfnu0O6(1#dAv2RL zFM+zkqNjcsuQP;|T>EI6G76wOW+6J5#T|8LgWxlRcBJ+c&Lgl7oA3XAAt*U#b7!ix zUm1eC_DfN<4Dkr!oA)i7ktK|!sOp%;xXHuOcQ#OdwspD({s|eOgPQE0kt4nTPRWDc zdsz33G6|MZCy@eMD4iKG6H#k!=t;61eqbL0)5HI2D%##7xCJG0#1og#eyV%_9oasG z#e|ak;^tE;$NtkqoJsIC&Hsct0AmfD8lr)#I)`z#nt8upTYi9kI;h51nV$_|adUB9 z!)^qkQ6eZZ`~1@?`}n90Fke;uE!iL#@cpGyYv8%7k!K^}9&Ckpn#s1++#Z4?PP|Y6 z#t4A}e+IO?j2^Eu;rf=O@P1!oYE7}pmoiLXdkC5R!I#qen2xMk#7Sa6lb$Gm$!$<@ zWd7?i2;u3wz>bYYg#Zh^3H$!R%W)S;-#hs_4_u5y1zHEqq|vqwsb=* zoPR>_5ArVUg!`y8O29@%0nFAaL72Hz-b?z>W;YSp9utDwoY^f&(F9@rq;7-bb7y^U9CN zxn6qo(#<_?MZfMNC5eoGd^pK+z*x|K)B^W$W=3T;8PkikbmC*%?wY)pu|}R5#bg}q z&x>Sf+NIoTCb9*i%Sw32PN@vYH`v4Uzx2XbY1a55mf(3)lg3OY>jdDhwnle1VSrTv z^h0^MC@n~ti5Iyt2WeGRTzH54l3{lpuZqa=hl<@I0!IoGsSrW~xx+B8zbQNwowG}q z20ObZ9BG&H4$h_>R|Sq>efujJnUCmThYqm}g&+PM#|TbQlsoXpXfei291z#C0lDvZ z3zf+tZYxb$%CmYZnp8ib_GK@HOk0W1Hll$Nzz8_z>RXb;vZdPmoy;YioQBASR~QG< zo=q${0)HEtE-B(V4&;-=rR zD^HV znX=PB51z6)s3DN6(!W~{H8P4J*h4KNvS$j23YXLpBdnCA+3qVg%EdSeP7DN%K@ONE zx=Ajs;^;9!$sjEem=M0r7Hqnak;JZ#&MJf7Mkhqe2w|m^h3_krb4U3%mDfd+PUxR# z1_ENLut1L#>)W%&?2!0zqYVtpI~`M8%6E8NEs=5nyCyq^uTeh{7K|8Jd>$)Qs1Lmk z2oOD_j4{Es8||i`{pmusPFjLiGv~61zsA(oYwx=P$N#h^>zQ8pWF}4@zllBPj)_g9 z=U_Qkq|p3LXx@zo{tP$2?&!Y3DIr0wH-PrrF->N32o!S3T$GAGyF`kAq<9VC@Z8X9a z)-5&x4&DZ5dJHy)+$kXffU2U3s)DE=?*YABKCb(^6gG8qx-2ixZ#X;a>eH%Cx(@|X zNASSo^l289+NsX83nf`USc3^qKv2hFHhOkH99d4Y+Q$}M!HTqr2l&nrPUz@nd^qcYlZxusCX6)1s!>`~c!2l}W+dLfGJ1jaaQR^oZxby;jp&mxqB|8oIi4m# z@(Oo*8}%YI*w1Hax(T^#x;xR;tky~&fY5q+XhYUa< zADFYqQ6a*9p|++e^07(!mNnYvH^QFg7saY6H|O11q=JB*+ej_-vLhzZ@kNI&R*Lw( zf#&2>bOH462ggv~5E^kr)el)h+cU%S6{y3j(m4#6Vj-Jhy!z$mR*Ih{;b@(Ujnv_A zFwM~iO0;^;Q;q^VkKwUGJCsD7s1cNS`%qS@ZynucSRn>7i4c=;3MTY|y0HxTmsM@% zK*q+uC=GfoWd_KOZGerv=1iR5uS+_v$u`V#NvXwq73wd>nB7}cufuS zwee?tpW^pCEI;35;AQr=5oD)Zbs0JCYI89&x(p3NnuZMBJyf)q>FUM*5k$oJ&?mD- z%bCS@1bF0)^WxJgX53=C9@KeX7e7Rp4aY(w%2}pnzYEhO>?5HyNDg*YQV8Lx4=f85 zlva_`iBIVw0$+{_FGR2_=1osj?b-kUb2+bli4)R|GzgEJN-u%ANw32PcNcVks z8BUycMqNfRjmAf7#nZoy{8UQ4fv1TYMnrk&oWvlj_@q8y zDHT~frQ*!FVOasyMyp~ISfCMVG5yRLqjE}y#*sY|Sy5&%0*w4@7tCvIQCVT8hNGN( zBnh`smMr^qUY8B?QT;enlxE&qAjcM{EUYHU*f+1bILSF(Q6Kz^nMB=(w*R!`wZ7C$ zZ7bw-IS2Ox<$VJ}0);)iF|dNG7h?I6nl6E-t(mD#oq+Rb>No_h)nS7N$G)%q4Fhqd zl0P^pMVq*x*U(IeCd*{{4KUd$IKz#X7m62P``uk{*GfEPCqe+i!n}YoI*QJ zsxY_JB%lG|G6J*l@*<#y%@k77Avkiu9W1-kLfw1Tqj)(2`NsEGE70o9j)vhTQ9G%Wz%kN0xYhJR@xP_A5kyB2kr4o>EOtI5TKb!$ zpM~PEjtOf2hC?0rAQ_cV)AMmNNVCT?7Ocv{{^?AqkmG1 zb@5jrMQxem`~TSIT*0;cwtUU0BzpLoz(^Bnep}P47!n2xtucM62w4MoLgj?CIr3Qo zm>@g=rd1=s^Mj z{t=Zoh@|qPGyvHpp9~0U%@y@5huDVSMeA0Nr8W+l;cG;bXn#MsRN5CgBIW;Rz#tt#j$9@5vvD0r_|Z>j|uyvfq$UJyA1!8=&ldEMUGbKUh-*1W?g%q!}iS z9JF3o7B_yxaqC*qgsSJzYcpHKqy85Gkar9S{8A2r=O%I$gFjYrbwb;=(b(|6d5#fE z2G1IhY9b;!8hgkX^Vq;Nu|GTCZTTU9ievF~3h3;Tf+B=5Sy@TpU@vkiX;eP<$}`!c z!ul4XAFDP-AarypEp=^=r7CI$rV&SR(S05CwgY6*20C-`j}st5{&!~YP1XIYbdMOz zW$LN_JXVp?GDUD-R%_=8E`R&rOo;qF`n|IoPaU|Zj*}6GJ>YCUq+ehs!C82Rjj+{F z9;l*QOYRf^6MiMbZym#=XqX28-I3)hN zI*R_$ZbYD)LGcj{qcl4_2yt}XPV&PqWujt3#ISiFTfNBs!T2r_T#_h6);5V&)7=g5 zPyxq`WaWP{klnl?S)%L3_e}F$lnJa*;iF2-k9dFIu0^w41Ljc>r6TuLs7~c67+SXs zt#5CTBuWTuuhu08_#lfW#tPCc=4pdXRE?}G#-gzRlN^KyQVG%erHos$|8B}|zO09H zPZ!)8`XEopyXc_rWoHRn{d3lAq*_wOnLG`msA?W1br1it=u#nuEvoyrrDi+$If#` z)f+uhHwwVqSpUo36Z@AD4pBiawy?=>fIv6|OudwkixgNu8fL*&{=22gsoH6r(ck<- zzF`QuZl?_ctNwRb?n`yf&2u}c`2MuqK|8DB7nMEy@14(1J8#=B*Ai;lTRm{^OP*EY!T{&w}H7eyUhd5|d)Ov>_Y80EK@Cmun=t{=`BFx?*f|{5o z?duhVUzR?Ift;K(`2itH???#J1ufZIUC)I{aPW{JIEmb`S!aaZmy z?_VWT5^u?GdC%9z?J*0304-&Ex`qjlz5d_dd+wdQdk!k=UUPaH{^jfhT;MvB^3xt= zyDKnLWAFW=3|r;z{_l@%5%b>o(CyRLhk}29RNk5T*a?4zO3Ej!b0sMfvZgj!Dl_$` z#nn13V_=}#7#zxd_vj>{ky6&C{G)=JDP>g>FC2s-`WFDfL$+3C!mZKxU6AA$v@m;e zL_-U}lZ1yTN`lkhZvzv=W-_I75Ph?!;Q-c8O8ivvA#cQq091+d9sOs!Gw#BpLh-sW z88qZR!an-oT7&)+d6BRv&f5`i(;kkPY5wzlBCRP*Z2qFn z+txi|jnl6W8WhBzK9BnpEm29zMjzo!P3Q`GfUA$KI!AQrqE%#xLL$ePSPmG!US4y& z&K}_Q2`Z0AfDaRF-kCD=yB&6Qy+%@cKd*d!>+%-G?)le|SJ$J05}qwGPW%9z0f!Vz zJ4b67|F+OIb?S0v1@6+AST|+eyq3Rd{F!tQ*B|NFam7^9u00%Cl(J75ll}Bb_qVKb zE4|pQ457xq*`+noh1R`^ci-idSCYiX$9z;xJ<(9jeiVD2vhPQk+k6Y2xUd*%k??uC`E>d%m<@-8fybL{MpM z?=+EUb3Dqt6uQ|2${28+XFnGgEUs(hB&q;8P(Nf21+HF zLzkz7>OC^L&%?K0qB%Yv4!eJ5Mr8&ugkU6u4XKak*hMJ`d{b*dozq6&BbE(`=0qo? z$z9HRGkq@l_gG9iQ)2%uIrBYXbRJ(?v|!xk)0xfJ*S?7~3ZLf%FL#Q^$FvC>2@KPn z6J1JwhwT7#eA7dxeLT1pKl;6)a$>Cp;AhX5n?1^xRR6emSMRcCL_6DH#k<$13ygJRev2`r7T?eeQZQ2|xmK0&yVJ4AioU zkX$Q#?FdA;NtZ;ft57l~N!p{N$ecpg>_oICyglx@`gjR8ognJd`>3>mWHd#yFiRVR zC!fH5TRHOYIi+mox)2QU?Zq2ZGtFv_lKuU3z4;d0^W}bjslF)HWUNiaRR0CY3!Dw{ zb~CP)v>fYlh{n*C72Nai5q$gYEq>iLV-#C-X#E>s6-5nN{(#I(jV^j+|DwptnRlHErnq*5Ao34c|VscU$hSwH;XD_{*8J?hBIq zti=^!r{f)(sRxb=PBVs|AHGZ63jK5adZJoshe_j`pOx46{ClSB&pe9y_U-w^fI0%Q zET^DHb2#4fd5%iL79qkWSjUybp}PO^ci8#OCq0j~OyPa06b9*8Lw8z{*+Us?c^c)4 zAB~8gTnF<$o%~GBn&(xb(We~3+O4c$FheR49$a|YdiUQ;&OgG~Ta?_S>X;y%(HcXA z6cR}6cv#@xZqlQhY2eskPZ;OK6dBor4vjV zof&1e@1;eT^$kG0J}fufK77@$J@M=lx@l8oQH^edW!f-+eDO~|?L$6s|M1EhNfQ$7 zd5cyzWi8%OK-FTa4yg-RgO;-jgF0&*p3Oh0%mgZmTGVX1OzbmiFUG2Zlv5b2A%*21 zK6l}3;!8FM49#8nnmqPi}nl;z>r4Qc_MR1$Y7}!c+COAdCulHZs

35?JZzQn;7jjiAv(xwnY5-8%~vp*C*pKy2WNZDHe}bcq zU=JbJXRo8?rT}tBpukgd|t=7VZz78e#i!a|>quIpetDTW(){?~9+A5>I6Unhp=v&;IDW zCx6IpnK)%{4RV}C07)6Akd{JWogDo>L&X)}WQ7sy5i5$j2U2p3*;a&`wzCh&+daI#SNiIxWe0U{VDKDFC@-&fsn za&(-CrHnF-QYPR@xIp3NdA(%DWg3l?D|T|Ca{2Q3b^qqZ=RRvWj+~Qa09v*^q=$?H zZ*3by*lfmeGfvY~N@4T(;>6TU8(ZjALqse3H&HnrGbG2OYx(6}Q%^&g4&P*ex4reSwj6#LEQnx;9wHYTtE-hVVeiA(8E8b)2;R}Fth&4ePIS+|d zsemBmWZ%!4?JLN|ZW4=8W+R}3cV`OzzzL?T>7if|Dw%te^Fu$BqdL&Fvre>E|vza!iSf6f;K!MHay< zS0CLx?_Zwz$6tH%c*qnGeeR|#y07`Vy;NkHpp@$0+oYKAP)pcgquQ>Bo^%@&+~i4~QyTR^x8O7g}|PZhBPO(A>Dr zDrpC7o6V~GnWYqyTIzjrdTOG)V`!-M#FTIx%afkD_s>52w&Rn{U9W#w3fCu-Y@rvb zb=zhpoJL;mci-^hXZ3@OV-c8&)UQzzA0KUQxHW&#_dgi{r!@nE6llfgb9!9ED#|#G z{LVLC>K0V%No_l~TG6m{b{yM-^++8M38^3`0Q$rO6>gHNdZDVZrIod}a(>MoM@RJz zDd~&V=ZWydx13FiL+HwN`)j7WSsuZpZiS4TaGLnjKK|V2J^#i_mo^DmrV57>D+MgT zr6x`^mB$QHKuSt{>C*VwpKuQlgYdSgK5nB$`3% z+JGTnKNgsZAV5l#Gv!Pv5fO5!^Tn`{0jshx`)t~GA_9Pa`EQ?e%WccMUia`DUU4C% z#6>W!u&;Sz8XCAf@y`7(`M#%IyL?!1DlipbCK<=l4f2KG{lxv#-O05HrRoqZeN(|( z)H$F4lt~Ej^?&xzd)|6+SdqkPruphwH2`=Oj)FG=AaqDc(-3v%BUzcMU?RQaEi`GZ z@&^7G9+p(@C0Rq z>Yc?Av2sU^RH~Yjh>s38PkZw4z29`JJ0AbgMon!4G&UHhO;~av#GI3eOdC18I9|Bt zeZv4`=Pr*Aa|rGF&(L;g*6uXtJaYcmWe;(;GvW0{2u01GlR|G+mt zZg)xJ$XTm_4F?^QyywU^g9c3CRip?|r&{AMbXPB(TzdF;)8pu3TRK>i>AxpZvl7?|bjT(ZLA-?CdO_aNGX#KH=Qwe&N#}|AgIA*o&|M z+H6hqiw{Qnk3Z}7Km6_Yz4nz4{NOjf;hTT#!&x|K6-$UOz1YixbpiqTlJ9@!``>>2 z_E%roKiyxubn@x{>h?Q7^30VBn|?`UBbX2q00|NZA`(Dqt6|A7_`!ekx_7_r%IPzM z6w9twV5@m~m}Qv}ZAd{=ifgeXCcvrIqE{#5bvHz6fceXm{fAUE;zTo*cU%I@>#4?Rgr5u?w zl$Ii;7J8LT)8)&XulmB9pZ5`aYK1j3I8^6(<}b>1ONDwfA4#~?bUC7(LNH4`2QJpM3Kt|KnS)UE071yb<0oZ-hsYnyxA$1$_8hRmKqU z=fCZ)zx>_z@14n9Ol-BJW~>K8Kob9{zFsRlY8@H@bQL;93>V$bTAJT1%tcCPfi2}_ zsk~}I?a4e)OXI*&I@Jv!Y{i?gcI3mS}2MZo?W+pYyG4UQL3yi5s?*f z0+va*2vV&kfYej&kuojzQts%1w;dDWAN}6@Kkr}u#RDHaIe)`)waTQe4upWqA>DA} z?#Y_J;miK!XMg1FDJNzhw$@tNZNKZOPNVcgy7QyX93S!i+2KdO{Y~$9^VP0P)5H)j z#7Vf8E?2&U(^$?we(|M0{ER!FbLRP`T4mlrtu@a9$9Er?TkeYd+)D>7A4k9$YE!dE4flcb(k#p0yM>b3;dj z%%UZ+Xo#rWsnLMuqX?!+_IC35)9HWy@k2Yy&Sg1|nS>dEg*hdB@ee=ort@7XLiXg= zDD`0@23Um^)GlQtqN8h@``&f={&!tDxVTOUm%Cl%0Dt?Id#@dw?4MdLmcwG`hraK- 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 Q&jJ7`F?rD{VS|AG0%-hhdH?_b literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d9adea1fa2e8bdc93872d1b24e1da0903482fa3b GIT binary patch literal 23776 zcmZ^K1xy`G@aKaMiWhfxcXui7?p9oiyIXO0cX!u^6)hBZeGi9X4|lo#bIB!_%Vo1W z$!sQ*&5q@_v(c)`GAM`yhyVZpMNU>y{U1&Gp9v5BZ?&QFfczt5=CbNa0DvzI01*5W z0C@Sw3O)e79{ zoBF>59Gom{t$hCf0xZ{x&i@4H{*MNCTL()w_wNqQ|E~-e+y7Q_)J<*)02mC)Ns4QF zZ+P_i6fx^*k-iz&LySBk1pA6j7P&a1<|IcD(53dpxX{fpxC=3+0MhYev-B^ZDsRqQ!YG-G^>1e#QI90*ZjNGP70+g!o}&tH!4D^4gqt002>oStf<}o9`)w z{KM>9Z52~+nSz)WR8pv57(l%EnOByyM$A_y--yKo4IqmRQ+V0( ztY)C&N84xV#0$YJQq3VY49Z>A&kfT$O+Rbo3W8HAS$?TMrIr7<`Rm@2Sk%UHnE&?8 zmOfc|0tpem+U{k`HGlz^Dd>j2buo7U;qc+Sjw!b{eIfbTQ3=`RQx(LVBUR~-)zN^0jbdw=Vn=TDN5{lM|)5&{&Y+}=onIk9IoC2olK9G z7WG@CYMoKiLdOP+B|7zoec68idE7hI<-2#am4FK8vPA#I4r88xzXn==R`j!aei_K& zx(O`ugvtiW5W^&e!bvc^tDY6iDm;E*WNAtsO#;L z!k`15-koM{+taj7MvINQXU@vEaJ9x!h?+1fE))7eO(T-?l^d7Mo&VHq<^D6UY~heT zHC<(=Rp)PpVV91WT%|p$LzJ75s9dXJ8x%!P7nKDsS@1€s)n?hG22BU^1C6&^F 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�mxxK(Vecp-1M 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 Eg4FpB*#H0l literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..0e7a43649e854065bb77e0d7bb85de6e662a54dc GIT binary patch literal 95741 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 Vb5o%I0-yi@002ovPDHLkV1jkKo?rj~ literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..d9adea1fa2e8bdc93872d1b24e1da0903482fa3b GIT binary patch literal 23776 zcmZ^K1xy`G@aKaMiWhfxcXui7?p9oiyIXO0cX!u^6)hBZeGi9X4|lo#bIB!_%Vo1W z$!sQ*&5q@_v(c)`GAM`yhyVZpMNU>y{U1&Gp9v5BZ?&QFfczt5=CbNa0DvzI01*5W z0C@Sw3O)e79{ zoBF>59Gom{t$hCf0xZ{x&i@4H{*MNCTL()w_wNqQ|E~-e+y7Q_)J<*)02mC)Ns4QF zZ+P_i6fx^*k-iz&LySBk1pA6j7P&a1<|IcD(53dpxX{fpxC=3+0MhYev-B^ZDsRqQ!YG-G^>1e#QI90*ZjNGP70+g!o}&tH!4D^4gqt002>oStf<}o9`)w z{KM>9Z52~+nSz)WR8pv57(l%EnOByyM$A_y--yKo4IqmRQ+V0( ztY)C&N84xV#0$YJQq3VY49Z>A&kfT$O+Rbo3W8HAS$?TMrIr7<`Rm@2Sk%UHnE&?8 zmOfc|0tpem+U{k`HGlz^Dd>j2buo7U;qc+Sjw!b{eIfbTQ3=`RQx(LVBUR~-)zN^0jbdw=Vn=TDN5{lM|)5&{&Y+}=onIk9IoC2olK9G z7WG@CYMoKiLdOP+B|7zoec68idE7hI<-2#am4FK8vPA#I4r88xzXn==R`j!aei_K& zx(O`ugvtiW5W^&e!bvc^tDY6iDm;E*WNAtsO#;L z!k`15-koM{+taj7MvINQXU@vEaJ9x!h?+1fE))7eO(T-?l^d7Mo&VHq<^D6UY~heT zHC<(=Rp)PpVV91WT%|p$LzJ75s9dXJ8x%!P7nKDsS@1€s)n?hG22BU^1C6&^F zEnM1?Bc{h!L|0o)d?bTI%)?xHPSd8}%cNizuEwILPl#Ig{#Lxl## z50yr{$}a*{?9=Nf`5cKI)$MvO&l0$iX+gO>A*YHGwt~Fli`5EhlvL^fMNqQaIT8Qt z6u!JAU6!(%-IRHzg(w^pCsrRv*Rz4z>Iq&4ASNfO{10?C12*4lPFMRcZ1`3C0=;F1TE$Bs0|eWV6L* zjM^$1d^R_5^6hy*2eMpGKj9C=VNKu1FT!s*=S!*zx^V~rp#o&pzPSr8v@7TrFNLl^t#vxXP znDPS^b8jw=xi$wUcV!T#9`AUmQBqTEWXta>u}`KsL2{X$TWMPPa^TOuhQD5zv+4xL zxE9ii2)-!cS|3k5&oQG_@*#61U{oI9#(ph^uRu7q`kv8e_08*frq#giKz_ML+tRMs z>9$zTv_7*Y==hUfaTY*dK;Jj>RokF1WS7ezbgV>so7sSTds18;em?(JDq1S$o|wby^#PiYmUzEr{z|6C()yXz3Wh@yzAW$zFmJc`UG zFO;;sR&9Rjl#1N;<*(dvmd`w^AXsUiE#4qqR|}C0nvjIORoW+=@H^L+R1VzKv_{y- zs$?_j!Kv(L4gD0{Hh9|#e`bNkub)^L^a=Gv4-wm{lGJF-zNdaP5p*Rf?2*~sNdzQZ zn*-uu`qM^Qj_k|xi@5@&Z%y1mY&CB!!E!Z_t3`A-tID5l<$ct^^wgzGI8t{si zf~$Zc2922ZTY5tYr~L4V%98WDAsFrZ9|_`Q4+^L;9lBDj6fQGT$@jb+Xkuk#y`Y^s|5MDl6;@81cNxA-5m zwnb)y%B|%1Wlu62>}@U8_|>1WU*)vge{_`nRzyz^C|XV-GEZU3h0Y^TvSS66wcm(h zVo?pla_T0Nn=Lcg6`A&hhJM#;_%hvD9fmQeHC&|x0A;aa9UxROU}|r-B!1^Ckk#hq zn5ixX84T;PNLXZ-X6)N+>3R-7Q$%1KqFbrX?KMl&669w02i_1>wy9#3^y*%@LTSY< z8)?<5vz4`7eXoFvm`^8osnJ)sHPCYX(!6k8GkKr0e5o~Ax{EvwV~b!K%cP`(g+P`! z)+L2jC&mn5iAXMukV-$O3aW}~u!KCP!OWI|&ySsurqhrg+DS<~!+GiG(Gy0^vu zeLjbNL9gVQE17Qc=XTRpiXgtq)I5Xhd0vYNN*2>ma?DhV@a#<1`F@SyPaUq!hcr(6 zJWp~#_zVKaysfDgsolA2Uj#Io`JQU~z%uUE(Tdsf<+*mP>>2?c+bIg3XXya?zSHPo?RM&!~qs>W4J)5+^Qz$Kx0xkQpkzTT9h=8j?5BUOnl}fkIw*oj#1Np-iyYd&$ zW-v;-6Gullk6#u-TSY<$(&)0)lj)=kU2cC=c6$SazEL|aOFZjNT?qK@=)vVU#;4s^ zUFOFfb|Hv;WWichrld^(qa}(YRbK2PyuJEMqJ+`~ISFe+rfR+_y&x z4YlyDAS8AaRifg+CT|*r5ldI6(DhhaY1pp>;katSY5&j6ycHu8(ND| zi+)if*zZ-Ov_*xjfWvB($~ak>p;i`(%;}{?To8oiGxc}pc~(gNk93N+7mAsp8P5ee z9PYh<5?rTiJC@vyn_97{XTvQE-}n@NYPO2pj>}lqRI?3FJza7hzd5XC_U~86-C)OJ zihaI>eKw`Ak>4oab3g4JpU}sev|#NHbA)lkwN^#=b}Tk5>cB)wp1SIHDIWV{yX{rW zyldY{%-d5q2P-Pe(r+mJ1SWN_pS+5ik3-@-JCC=i38WQZhG`ZMt&UGT>Kh2`i|r9#tF2}$NiJt-*wW%w~C zqaNU5(xc9osFU+XRmEQG-h!?nw(HlAK&xtt2D?N@!gkpNv0fmJRlXh8@{#9Rc~a}L zls@+TdQJ_UB(dPC7Ym=&jD=%b#1dUg^&5ne$p?yFT^KRv#B$8?z=YcRD9W=3Rzg&9 z*b|6f@vFt8!sahx<)Ti`9I%;Ck19t&KXqqs!>de|!yZOMi^rCywt@lr8)^N@P_6FX zK$@KaMOVlxrzG7w$z)wo9F3fAsnKE>a&}5p-fis;P)suVkJFu%qg89h zfp@b6a#(W4T0M-+`d@rF?m^lXCBjrA^hMJ%4Vf zHq`>G9#3ISUY9Ei*EVmVaw9$j-P-@`g{T4EEjJaOsTr!((GyINA2i8cI;LZ3hvEXO zzf+pva?rYVo}}}j&2DNz9tC1(^I7#a(CA9qt;Nyx9kk=p>Js7E>r;aj`hKOFHPMdP zSX_J6j+6WCYK)uW&AF7 zR*N4NbZ|wA)7IVA8na)2Q&%Ripj)HMyH@`qU9_xh)l+XipnL8Z;1$4EP%#mr$$d zfu5ZM6k^j1b>Huj$@Sk=4Y%7pwBu1V6!ERqUA@6+5fXLRdI@J2FGpAxI~0EOzS{QC zRRj@=@Kr0UY3;PMiIQ5GEKD!&lp_2@%Ido%GkC`4PPHvKxzeNdM~O5WZn0;JUl@dH zQEigG(@@qQigwnB_vUg*}?(`KtuoXFl;Bj zd-~uTmujtT?wZ<_3+S!KO9~}mURe=q8{U=epeeY~x@FnbUKqvI7n$NJFg-MWl^NfU{-f1<$U#@mjjvc!Qr6^liBzY0 z5}IGKInsP&sF{n!xjYTSP@F3>@ppO$m;w2Z<2#_O6^2fyM`ya$tOEaIg(BL2ifRjP z;1WS|P9EL59!lx3gVTQHRH-Ki4~wJRM$zO9nwjp0`T~P~-&0&BhkVkcwe495mShJ(l+iq#qWLkqBF*R5-$}LpP#SDe zbFOkTdWXmil8zrV+24mMGBn9gy>J}S)vv$*3WUAKU(3~jsrGQ{C>yK8F@ajB3#HFs z_55*krMTI)T!wFw8Mv8-gj1-~Iu-$zbO*Bvlrt`ps~=F=?PcY2`xVQR(IjDflk>=Y zwNH_+n8vVEV^4Ltk1c0uR_e=S{lWYVEgZG&96cNcr$_I_1tci==dw~ECW-8v#Snsi z+ys=}z7&TYL$qq?6+;d6KueF)6j57H(%x9*s+%~^>e(!DGk>qT9_c^`wi>W*)P99T z0p`1I$mcFcui+_>0TS5}j$uC;>RrWoBIYnxh!XbZN)jd3aO=sxWs$VP|42BBr8Pau zw}gh4Ud^y*?yfbHn9in!mXgv#f5_b8S8T89^CwzvXoLn^-$!yUvLBaYL^b-VD)n^7 z(~NNh>u1*K#-;`aa+eU6$|qPH|}9r5e;>Wj9;yA1!`rl+UHS zQ@JeAYYf6P>_WM6T7O8}^4d_g%2;8Q-jvWDl@a+skg5*3a|)SykSBg(ZGTL9uw-^b zyVfF>N4BB`Qz$8qXx6x=>jfjH>*@5a<^HX__b;hfahsg3vq~M2n+PeX)8BK1uIs5? zheP}lD^J!>e(qydbp-36Q=utsGsNsWF3U=uPRuuuh{L&mUM4R%xP@T$ZbO`Zlu7U^kvAg>Tj0U5KJK zm|FEW!jV~ydPX#q1HUBLu2(9`DA3r-8BYNuK0eqUSkGCy_kSSNZ)&ML4q54bC#jY5 z&-|I){BejS5hg0d%v9};MZQcBR#b8tm&IJB7Q0H0%}nD*yMeW<-YT)~on^fc3cbu( z_$Y{qvZ@u1IIU(UW>ua2Q;m<}0P+OeHL>pE|4S3`nt&x^y@1%955JJ2 zjybrrnnv94?m}j4LkM1oObJPo&zt>d`NT;2vH#o@=-riYP~MhiS1G1@?7K3k8BS^J z#+T+0UR{wu&HE*(@Zv;c`uN;?p1dR1i-xDPeM)*gLnp-K-Vxs&;|!{9!EUeq#cLFa zdv`s;g+4$5Xx3hLSo_U;03`L2)Yk$tXgf_*DQ$_?E zqc+!CiNob&Rwex3i9(NBg~jh8pqbh3bL4)^kGfZ~YQ0&Z8bYnCm`io(#132k-K3*n z60}1Pl@b0@8ylc-#gYwHAP!>uX((##SG5?>6rLBCjZ{r6hoBy!m1+(Df>UEn! zj<+07ml6Q~-A0R7kFBQ8)V0scIe+9IMiQ4QFWIj9h25^BPQt(ajic_Pq(*nLH>}7d zQ_$s4?P4jz zx+En7j1IdRGDNk=^Ob$92jh!~-M;Z3EIV6@^M^09n5 ze4X@PXN~34);-QdU^1yPW#0)lt&%H!dFO~`vaaWF;8yNAau-`ok_h=7D;(nHhcQ%J zZOStQEO*FO4${}rIJzrxp!tt8QR7n4rN+Kk#pc99*1e58s`3yRA6Cs2Npc8NsHGN_ zjLf!o5IwOZ^zVK=##9mTnZo$n`e=Y*afxV}8x6iy@n0-a+-Iv!T!uvVNUeGp$%`3$ zSdP_jp;d3iX+7JsbgIK1V z<8H$3wK{s(3Y3`HZYE40!7}pYOOu_1`k?Vr+|Zjs?|f==k0Sk9?EIc#0jesx6)2X! z#fY>NqyIHW(-lZ1$@Q&rZ@TBD5 zETtLGs756US7*37OsqspF@*0@>!PW5#-Sv?Vw*i}6y3)mfc85Fh>}R_@<+3Zri7`W zBZAhC7b(?NE-*zlf|HT8j>x7J*0|OsK{NN3met2@3 z`oAK&`H+Y0Q@mVpX(v6omcbrAxP=?Xua$A4cIX2nR}}a0hgW|BwGJ#cD#CyMv{UJY zLZb3m6pj^fb5w3{gFJqz!%hOo(%GuIf_dR5oCAT&*(+hIX7uP8tQ z8q(}WzSa0#8HNVv*Fw=Hs)aFVEoR%7?qAY)7eiU;G$n#<6zztnf5?kH`w zbPJ{8BP_`)ESqiBMZu6WYcv)ygxDnFuI|fOCZQbD@;6gtGHZxGpGIYzCs0{!vvA(G zmFXa&0bFo%;-tr*dFmX-%=HFq0dEus_{tTS;b~z9(>^szmA{!#7|cpWeGiHLVA-oF zRVU8!XlS;GDtu9uB1-Af7_h`iw^BD*_V){CkfW}%Vr0&?3a3<;H}w(+u`63_raao1 z;2JI*RCnixRsot6wj;jGuetXhd15=}>;1|m10cB)HkDs6)-E*N17NVA*)>MTl^$n= z+_Y2T8BT$NWdhW;(J>VksFEp}3nN^N;u?h^N+h*tVYq?{G%1Gcs-tphMKu&?a=5hE zB@3_26xHy68dEZ9a=J>RY??g0WE&T?7?FjpP_w3J4Wk?k%xW<*Vjmi!vk37-3I>K? zNtF3==@<-xZ(4mfUp-du%2Mw1eOER1CA9;%h$8>hgC zqoPVp7UNjWwiBvQ|D|kCGm+QDO~@7t*}SbVRMRRz|=I25Ad21s%? zmqn>jOQgwF$SEg`*`ldm5NRVlB#_y%{YNBT;@IiphQV#s?YcOU$?^T`lFzDF?@1np zt>gq*3U*s;95MgisGN{vk$j8`r^Yn(W;Rhlv(4ZAEO;u$Crq>XJWd5%r>EEr5_mT& z>Fh zaiCCr4vGFxR#P1-v#Gpr_eRshKwYNXN-1@dv&W;21OMdyh+L-}B`Z zm(+hb7S*u_ZStPf+xe9=aIgRKLzI+n?V`bmxZt@t_Vck&^wMW`dwU%v9@cM3)c0`V zDddsly%5~}cC>2Jeb;mefwN+rRKp)ZjwuOUOO6GhEb?dp1S4Xu?Xwf7C;^E4%;G_{=g;7uOZ;ZTi;KsN=oXRw-SsX5Yj zu~JvYNJi^F&FD9lEfCPD6I}8FpRg03PlKF2y`~q-*ySm}kDkNF{wu%iqD?;IfuAeK zkiMhk#Gn;UT(SZhr4_Dix!Y6~m?p#LaZ%gnP~3v&Emnb24AH0K)k-x99Relpa9Kp+ zh6yXYwLfk6iH%C2+S?qnEXAr+X8Q=#bu{!pyUR*KI52r}n-|N!kx4OhQjlQd=E)Rv zGU(#J#OJk%5Q~AYRH1EQ9{kSg{$v2{+?2Ix&EH)pvdnauqk?Vm#-9cT&bDp~NqEBC z3)JT-0q9C=Vd_Q4ZYyN2r8YwDWJ3e zYy&m$?858w(EDggg4SvfJz16L?zaDKsxokQWnP-S9wXzi5f$i z*jf%c1j1aYw|i9aVl_i}M{Bv}BzWovyM1z10(SZmc8pXLcjf)^+I^k=qSy6CLC!dg z-osan4{`vP5&`tU?aEouEurHDPz);y_uVdWJ(VMbTywwPLSdm!E<0*(nUS{e-S*Gw z$M00Lw3H?~XtGfFy#49xc|x%BSvcYBmh&)Z=F+bF-2a$J1K;z8j%WTSEn+l0F{x2* z|7$s^|Exg+X`T@oN40vH(}$PJOC0NllZyXNLn_2?!r>9ry{-pKE0XkhKos>W+73ER zHlgur5Coey0JOS2SKxOaa$(xYv6`py@x0B|aKl z*mlKIL`m+Ln5Y;#qK;t{>#H1y|Bt=R*tVQDIE*N-@4H0Aqz)aqwgl$f{wOX>1+`;% z41>s|Hbj2V=Q?MLrNOn^^^Bgf6(>XxbexDTHc?nP^+5YHfR4Daz0Og z?{^ELO1x6p{J=S@q_$OpKN{$v_~ar!Z7!*tam#B%0st-o-9nwdquk+9qC&i*4?8JY1|;%!kv(`bAJ*kQi{ z>E}Gwps846&)vQMBApkh%$Mlxex{b%?@xESv%b&MQjJwMBepjk?=*iG{E9hhv*?XP zCR3dg>N{xtpTU~!JW-`iL&wjBa@h(cQ3lCqBMO8)I_nJoCM%&KW9|rr)Rg#AAqc;9 z|24Hrm-pYbzg3GxE-8GraXHb*^CNSVBqWX^5A+{?{f8AT#!6Nb4F)8P$%EXBe51B8 z8IF!9X#|mUiTptY9fcNGXqx;qb^9nS#GNCZ_pSn11I3U^7G~I zY~TlI`46E7`(#xXPp*p(8S87O%4KFCA4Uz-%v7SWuX8C&%$T7>*%;su@%4uwQPqE` z9>Q)Zh<=%U30CBt9DmN#Z1N=e1(f9;ZR2nss&1ojIA$I^*4b);1>nR6_RAAL%PLtL zOg5X43E<*OsT?rnSd=_c_)fH;p=_jFl)t1q$6TSeBC4)Y7th zy~w-J@*We2$7%5MDRF9Y_bfm6%vCyaMFZbupk&*oP5Oy7^3tOE4=W4Wz5XFy<3o#N z=4scY{d;nWK6`sl3$pS8+}*wsSbVdO{!cG(;DBZmAl~SP@%)T_*_L22jJtE41((vK zy1*)y)M`h>-ZDWAF4g3SWF8IvsGO64Ga#BuM?JIAk@2-el1uqi_;Y8#pJ4(m(g7oD zvdl$2n@ny0fZw>k_jxSS$otaGGlJdM#4F*sI6INcG^YP{pKO(6L*!|9-wzz*ew`36 zNnL@r?8l3IQz6<5sSJAi@AFv{^fCqpK3=`-^rb$d(Axh=sE{joYRjK}-b4D_U4{VP z=FkLiOD*dh2AWE3qmG@7{f9pv<7~5j-d&wMISt%ZBnHfY(qAL6P*1X6P1O++&7rS2 z8{c9}heM1$IJV*fb~L^vz>~v%m#=fay9P@H8{9cK#4Xz_)vT$1OL9$|@jK3v%o{5$ z{d+6wa_v*t6qhPcn5`kD^npc{;V;aolq&L3ad z-yNzb^Z!w=$clp#Oh^U2wdKz(5(Yg}vc9Cy_Fg%G{r&m6#nNheh}M3RmCRhL^uF~C zylx22=9#ppl7ZFWok`A3M|~~seT(j9R`T*nt%DdjftF5GLDf~ZuAkihWlzA93US(E zMf^~X82Aj$KMwo>A*v9MjQ8v_S7y}J08`s5>YRaK5Nxs&$@9gu+gERmP zWF2D`hO|1xrLyIUa^4m;U2_(84#Ztz76g(XzPSmV)2A!Y+!BVq)))4_iv~gbW(!RC zT!{T;iYZAI^|g)UJY; zk7j+%t+n1F0$rWSI6bAGIema5NdqAh-Gsxxd{|4mM`nl+@LhPM5Pk(rrRsd1b&|p- z{DI@o_>ww>Ky#jX}P`86#i>34WZ13k2h1@>_ zGH1a}1IEnSf65;NKmCJV;Ti+qdEeAdw(Qocot5?Jy^K2bdqn-;g=b&y#)UrQ1lbuh z!kFM|dRjO8{@yYI1$YNzBQ+IW{*&vOf$K`Rr2Us{vReWKEG8m8^GJ`M*O>*0|8gmZW9(K4Q$5fLc*iLE0D`;h zJrWj#umm0)grJh##||clITODY45hphdup!b6momLXsbM-*U6 zt@fB6W0sj$Q=5M^W)P z(s(T`tv~MK7wLAU=|2)ITze8?#NuSusB+_S+|LcXPgqv=`WVaS_LOGo5eN57Gc972Mb35_f zkoASE_?uZGzYnW4gL_jFZ{|`m_OEKzH0;BhT7iS+s!*lmOha-F_1B^lcbsJG#f1H^ z+rZDdO+jZrxIpV!qpoV8r>+0(Sp#&L8MTtqb_PS%|I~Ij;LnR$yiSAP4;GyLFMF>-;=pe^;Yuc@shRDDZ15iFAnl(E~5gARi z>j!@<=j;g&uKCu9GZn|q$<32f{|7PZR{QqmMSwffsjoW{B5^OApb~*}^v}BVW1pwO z3W2mKmZ2|)SX{EOxw8m0d&8&uYMPcQt&Ba+znDF}+lSADJA+n8^X>&-FNe&B{XqWj zAHdF;)|0%XCfMtQF*%WASl-?P2R8q8H*$xTx%Vm@OTg1C ziAd1?%;kp}WXiQ~^HBlJYIKtCRtIg>GQ+#h56KiHNf{!LaYm-G{KA<>iCVl|v$>75 zj8_rx9ev9aQ}36g!2I)VE%@VEFzCG!a#gTTNzrNuK<;~PYy<{?jN>^N7~fAALD&7A z!p@gd3ktfbosz5MFh9j+s9SV%mA@AC&TMM!x{Z-at1MO3;CNCx9eQ$(?UxMRL z?c>SOt83hPg|k5)KraX}ljj32@HO_{ctH2L!K>fg^CZ+O!C^8}!e7W)G|h4%ZPWop)Y zSG<+OT^vD2KTNF>T|IJo74E~9*{}Y}(U=TI{f2*+D){=(fC~rc4Sl@5AqI_{ZrR#u zM1JI{k_YU(EP>aRgGPivwHT-36e$$ zCtJJ1_jyeeU_|W@<>x7?_>Nuj2938i8WBV~xU&dUf|75eTzpSHQiEQYRRTVaL1>j( z+^sgTq1mK8kb?q2Wt@Ck@(4HQkau?u;rop3!vx+q3C^=*B}%HjeqckY{J6*LyjKBiOZu*wXBe6R%au)57Fgaq9@%6;0bXjN!VUdr^hM z6C{e}GzJD;m1>DM{(<>M10WCJ>m{zSAFxVjXm9mg+BJ_^R5N8L%`o#Aj#S{|un>4L zwSMnf30^m;^8}7gdLbP{Ysfze{G7pOPPr&>s~QZWcX_uY7Q4L@N^2ez&a?3{@S#8GqV)L9x^OUpewE zjEj7~k1=_oBK0OPN7T>hD$q<5R-%2`HR-8HT1JTtdRm_Scx?2Q5kd$1Xg9P9xi+)9 z(!*INrmBUmuP#tbOP1^@sCvlH<`e)!#TUvN8M^U2)`5hxzTq!os_?0Nhq6->vaOH1 zr{ykDi>PnE>w}Jw3i}5j=4pFs#|fv&UsB<-Xi$E=gU%q&PM`Oz#ve+BEg%TZJTe!w zpvrj^o-#RCg7^v z(heJnOZ!*Wpo?+RtvPDjWepC(ngdz!&iB3L3y<|addc5PDxl{{r@)ojfLS@{r=$)&OeDh?C-Br<KO-hvVQ zQdn?5V&FMOE-+i!DkqJ$^})E>7-V5s;6?PWkwv`XIN*BPQ^fTo8hFjp8D(`8MFvoc1X~i)loSH#b%tCtlVR6K=-C``BULFYTIAoigpnN ztA55|#(g|_f{UM9tbr$}Aa4_R$DBI<1?_fC_Tq{;JG##si0_%nwu^1^Nk!D5vTj{~ zZWEFwy<=v67pfvmGJh|*hCFmUIqY`PK>uf=~E@%ShJ4FupO`M%C_A(5! zOPp-kpfx1$s~Pm{U#Y1-RyC8NlKqfQ$rkqRlBCk1Aq&X!HfwaeBwhD8gVnmRYazrw zg>CWvGH1j=_s)Dm1liqZLysSWuN?*mA#Q=~&kGmOWdoIRy~p6Ec)_5*nU{QCf&B3$ zbIXqKNDm=-v=1W%1Tlmx&JE>xT> z&2~zF>BESeRbBXch2e~xoyTP29<>5LJO-$x1C|bck*?TnTxOql;2@Dj#Czd!M$j=q#O{Xe{#Ue{rR5U> z8{eX>C6R}@r2Txywh*|8q^8AVq11xaQ<`}Yrz%*md<)vR#%u^=(>lUpM2_;{)cfHK z@8i}eZN+qV_73A2vV3CPovofzMg7JFK_2`tnOU$7mX@Q~QoQ}Qf}rd9L=qO9d_=*A zMHocqkTqu^c9->3RnG&W%01wQ9shW-{tC55rzBZ2Q+;h_hso_|&{c@&KwIZ3r?b1y zOPR{RRlewR^r%enlsy12QYF$A`{>yJKI-%`x;oGaetb`OWW4!zNjFHY!Y*V3WwwNc zPxP;>zRQ@6#scWtA@EX3s$;QL{%~rx8&vfk|K*8C=H)0`UwF5lwPm*#%M-+sIrWoM zg>ZA!vgW}-Uk2>p;nZ-#sd|q-f(S~zZ#TJLBwG;+f}Vr6uk8nJGLL5)s4!B!ww!nn zHxW5UTPldg4}>!BWU3qGDKTo7%VWGGEpkTqzvjQTc8Wfw;P!vKL;72S=9+IFR12OC z`g8^!e9mohxY}jgVi?u>j{mvKYb@B^RY~+^aGv#j<@Is)F>oSq)bW?2_!hbkg$#>x z-ofI)!*$`^-fbi<+&zOpdBg6=+);{7N?UxrUY|dI5)CQNVk&|{+*XES`uGU%oZ13_ z<(eu{7!phbhp`-IyTEyjF!+w@w8kHt)n~W1ZPb4&tP^-n3xTnTQDQaJS1iHfhVcUT z$u#;N3VM0@X?cz)CQLYWKzDF8a57mg!itkwS<$Ks&=l94|MnSIWXMvd-zalgD0{4C zI{x*V5OgI7e%1ecX{y$$z2l<{BqIINGxK(*Fh)y>%fS5D*eV�mxxK(Vecp-1M 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 Eg4FpB*#H0l literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..5e5e18fb17838b941bf46579ed28217b2e9336d4 GIT binary patch literal 38058 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 i?fMQ9Ka{}-{(k_z8T_=KyeP5&0000g6 ztc0kB_oly@X84r+h6n`1^?pqA3g9#Vs`}QKu;s<^-J(=laso91PGZunsL@U4#)D*Y#{$N^L;tZm8)=RbiMwTHVet29y zC>;z-%iWS=K_T z5^_Eo*e3y2OX1j}TdK3gF3{xFUp^+OMh1cGY`hf41c)?+YQC$3V=i{{+v&$95BM!V zv(T5e1Qwaz9WicFuFot_vsrI#A7$7Rx#WW|Piw25zR((zp0hewf#w2p1Xh$mc`yGo znYN7-xm!y(vGHY>j0W{K7a3ZZgQBQdnNrGC>%+p@eY$WAt!8<@Hm;Per2YtTU-V{) zn1|PBSrw^UN-3^`L){X%+rlf-Jt4{H=?kzqee9de3Eq!q(SjpGbC6-|slxb|*ve5|%y+WISQ)o8@37>mEquwF(aRB0@((eMM}0ClN>!Xe8|CC%KHA9Q)JCUB z3;H>8utL&fZ!&|lRGzPmCPCq%piKj6s6{Di;uIXu;CHI|_EnoP05Y7zWFEga(;Nkf z#*$6aIRBvOlR{h+=ZA6ZCo)V0^i~)NhdIrd!7D_l(R;I#5Jp%l4CMy5rhPY)c={@0 zAIkayq-+XfEhUt*j^o2A$qw{NvxiA37i&9*P2i@O-MDTEME=6BKe^oVig@L8`Z#JF zH`sDq3s@Lox(WjI6dIv}faej+J}NY3v@=Th0*2C)UALj2STyCzVZj|_YqxH*YrHar zS7KLfkSPU`q9p1}XK*zF*~|)NcK6ZDA(ALp zr~FtxW&^+HPiUK8BFz_&JW9BIvju>GtN(TjfP_L`w#U3MO@s_GWhG@`xJDWV>uv{p zQnZ;vI5H6(v;xi?HOmGTsDnk}W2xm02D*KmizO3H8)@$Xg7Y8Y#x4|D?dgXs+$inF? zxP7N?sSIz6%w6W7ww5S9aT3BXl%L4v;MZ^Hs!Sw#TZM5m>8=eAip=y-cvDd)Tu=#l zxX4%&C(ezcMPo~*e;4D;U_v~2i%lz~21VbsY_YhZHcHjTW9xvglh=t3Gi|oC*L)dm zLwwdHh>p*18Q*KGbxy*E-`VEn&;$RLO6NeKXB1IFLnu*^w%A}tOo+aQ@<9Lk0CEL< zq7j|yzFz^i_O80#$$`oV>@wjw=W3WhY~ST(PJ74vs^3X1?qI7d`;NqFDG75^`6%TH zaPE_6S~;Jn;JP&0vCDHmnBJ^7kmA6{jBqk!#b81OraCx?N>tG0F5B_!fV%rs*jM8Q zeho9Cge~-unH}a>4#wAt$jmVd1kF)TVUE+>>kx&yJs~?;N(ZiDtu^{U!m@RB0?{R} z5?6zm?eA^SlKm|gvN4-+e_!8;C+E@^a0)6qAn(9p)OYJ4wE1W4OZOTEzpIN!U%>Vn z#-^h)yHG;9+iCBC%Q-Bo#uUi9qyF69?lfB^LZ02|}}| zyfhow2oa1gFEgWSR8ZGQs4B-hrgH}AMySLfPw*s!wIp_jP&g2YaDRU~n?vEbNr*{? zWD8L8CKT1T%xwk0G0Q(X$HGF4Cu`L}1=ks`gr(S7s>uyeEVwPvGt*E`?a9z_8xeqo zkc%o;0tQFJsxyi7GJdeBH&;1O5h502agX z+YjCat)(%l^v@v$NmSu)_zaWZ$60mcE6|R_j_cSbN2jh;)6^l^asJ#JpOVSHP{#@4 z3I34>@L}oS&?|jQztVw(><9fWOpi6Iqaz^h$(sMAVfbi@!3 zA;DJhX%#ADZG#blIGc&BRv|jA>aHNH12ANfLC^5FLB&!{Rn8h!I+rZiF0}yUzR(ip z*(NAgJX{PMlQgGT`-M|Hjrx;Cd5C!&Dgagh6)q7TBy^#s^DBAL@L73_Ecu6Rr>gRl z>k^T0EMZ%SkniEbA8Z8YLTB?VM4Z96C<5nDZPcI9jkp`vbeXn45eea+AUyu0B;txgZ&Ms5Vq?Vif?>e#?)4&H*$P_~S$HPPM#O2c&nZ?ZWReLJf1(kP zpJ+Ji%5%n&J?@=~oj6gP&lYUzWuYtN!hdiOjc)~pfpK03ZBsP$N7RR-J=RxAvGJb6 zO{_3Ad)n5EW>71-mChJYr7I(oRWhn%ba9y=rGbQZE$)6N*J1IDded+uqx5mM8c|k1 zN>E5Epv@GD7fsmMmUYOBECU#aA|<{Fr1Gh(Zo_9ZXF4Fl~-PH6;EF9dwJq?#N-VYcC1g+X2epu zCpv9&A{J}gLk2nzOU0&Zrv9=L%6qi2bEHMDAeOKizG+U<50X4L!8(*wr7QOTCI1Fu zNbi~9;XkP!+)fYA_!1{7Ia`tk@|JLF7GzbB?D`=#M17NmR!llUXhKBkp9rs`RXd3q z#!<;t!aLHKZqDi3_bNGvElZx1X`}pM3TKh_G0qf+u14HkQe3Vvr%pX*U3aPvWWo4I zF3S%?Qev}ruYN@D?4XW;xe_%>#U%2+vlzDfEXKYtqn1VLjXI(`ee$;p4&j!hK2)<| zVVcE|G2{XS37tTeo?%6&x=2l1 zrIYdja*E^AD7o-ZiHbi-+|zRFPmubn-wWb@uXMP?yH=~txLJq<>QZpRuNv3FIF2CT zmHX+sONj`lZ&OFMALz0&hW%Yin*0#!;t9>XV{aruk12o>qJKr|S#5gphRGEb-i@Q* zC1eL{)zb~I>az;w(%G;au~84g2sJ9NKqN0(nYLy2D8l2$bY^Z+@`oN(UHTC;Scj6j zxp5MM_R9++kd|dUX>y{g)e8nUbM%%)(@<8<5ng+DV?vL(xq`EiY$`KK5x%aV4lS&n z`=|w}BOSxYbWzEDEC#V|z2thS#PvHl&qyx3ueRYY|H4$-gnm|9wSjJHG{3MHLS{_O}fR)Z!by8b=G9eIv}(VLh6biRfQC5OQ!ULFGD- z8n>|c*kC*Z81@k)6%#3cc6aS+4yXN)7*&Nq?Htt_W^t4p;_Vb#e`w?RRz zB8X$fUB^svG@C6PRD~i$tccC4b_vib(`l_jc(?ruy*wbeJbh|$y^s2w!_kmGPyl@h zi^4o~ObPj%*DzvgS``K432*=X#;;E$o-Vc{JlL?k-)+N&d`a$Fje>^7rXl(#w!;3P zQ;8l?ptb(;&%(GM6LWScmLUaWI&!0X%n|clDci-?Zru@y7MNS8?KwV?79dl#5|fiJub9d2|>QOzO}bS ztk|(?PCJzGP3*&@&acL!`osZN!&9+JA_B4OqZF&Ro8yL(PnPK0Vose+2t`JFjn%4ZZQ!&dkz}|z%G=R1_lh13k3RmldCcV zz3_6`8gz*B%G!2w>b3KS@tCq%(f(!{suF)XkU4_PUDSwlVBT2kJ?64&RDF<FD8}ZPUd7RuT}#-C_Lv?*oQ&lJlY_Gtb?m+EuR2 z;mi|^jUIBcB1h-uq%XO*;V=4`Ds4BYgk~+bPiN4?XaI*!O6%WOR<2_%TmBy)57jh4 z{?qLV&qW6s9ON_HIho;A2^T-_wC*^)QiBFeOnn1JsA10)d8m*TLsas>i<}}OelizB zhDH<6Ags-U{?6Y<1s9r8>Kw-5Qh=kQI5kSOfCdmT)r%=5bq866$@FHdT;zE&0k8^* zL2J^fX&P{N&n2q&jgt|JPUqFB!^nY2)~iCzCcqblf+9rFDuktUJOY`uV8B&AOZkG^!d9n5>=LHp z)kq*OGvmp`XFg~uhM=<}xTKoEfQok~#j5xnA|J)qtYx7PJ&H<}i7bmm@>C?g%4~WyZx+{ZtC%nCkt-JW&_9Qnf^=6uBsh zzP1RRw^EGkvPnE3I|JKT642a2>J%?2iPwh2-gX|kz3bNP-$Edj)~_j;<2bNp$S+mw zy69|BmDR|Vru%B{L+*hH9YsnlR1}#m!Fg)5KevS!IvFd1jMmLVN(h@>7b5H4AnXl? zR7BZKFBW%xni{Q%YaJ&w{V-%`$wSKhLciQ-G66}7TwFNeH1Nv41%Fi1B+)h%x$jC8 zm9acYLXo&uPQ0~$MaqWyGIN}%A+-alf0F){sTB$B)BX)uMe&&G!6gZHJn=;k^hy7R zDq&E~!P;s)|KkVWqA54GVu-Q`n&hS=T(C#-AUQgIoTfh9w7l%yiBEkGOnY!*oTIxF zi(72a#kIQAU74j%7H&-3^uyP^6}{7ywnM@@s8C#P1xyRyYmTZSkL zXzs`b{pV^@SyQveYC3wYdX2%D-KdV&xJAcWL6sf@5#;|UHW{Iu4<|L8tNulH9Pm8G zV=juuLKnD?UQnU%T{XqxZ}H-&>}c>YRHK!RnX-Sy7>gZ(6T-BMNy?nPM~3t7uYzv3 zJC6ku{0->0DhEA{pqsu@z;?{>((j=AylVg^{lOeRlB3J|rKTsu*= z`>5>0-wZ)hz2dlU)Xh-^M-r{ETz#byCUY2LNn_(j)1XH@5FD)*Ue+L2<86=5sKlBo z^du7OkMFQi;4<^;LT2CC?5v&kpJY}Zk>_O>dc08Kz<97Yj;dzI+tGg^IeX^*HLu{l z1w-6wmq=~TG9MfJ`W<=x_aS*)5iS(R@Hr4l>)1@bV0H4JS}O73OP}e)sdm3I(>chC zf_N~3gfqAp�d(M;81Eb+D)6cHT@z8;jt*Oq;7>Q8K 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�J1U-NF0BG-;6xEv@?a(PM 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�yRn1CqAZ>d8qt3B0UUg~ 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Ū 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..5e5e18fb17838b941bf46579ed28217b2e9336d4 GIT binary patch literal 38058 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 i?fMQ9Ka{}-{(k_z8T_=KyeP5&0000 + + #2725D9 + diff --git a/assets/branding/megaproxy-launcher-master.png b/assets/branding/megaproxy-launcher-master.png new file mode 100644 index 0000000000000000000000000000000000000000..8f5eb7cfd1eb034f2b9f776b8fca46df4f88ac2a GIT binary patch literal 1120504 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

RHNf(w$U#8S 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

Zm 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%0DI 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�i(CpFfoU1Q2N=^ij&fC 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

BiN(ibB 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

xsE@Z1 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%0A2~}0h?ObRhF=3fy%I63MsdC(HjH`A(`K+} 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 Date: Tue, 1 Sep 2026 15:29:45 +0300 Subject: [PATCH 26/41] Add i18n --- app/src/main/AndroidManifest.xml | 2 +- .../megaproxy487/ConnectionTestActivity.kt | 9 +- .../net/megaproxy487/DiagnosticLogActivity.kt | 9 +- .../net/megaproxy487/LocalizedActivity.kt | 51 +++++++++ .../java/net/megaproxy487/MainActivity.kt | 17 +-- .../net/megaproxy487/MegaProxyApplication.kt | 5 + .../net/megaproxy487/ProfileEditorActivity.kt | 2 +- .../net/megaproxy487/ProxySettingsActivity.kt | 11 +- .../net/megaproxy487/SettingsActivities.kt | 105 +++++++++++++++--- .../net/megaproxy487/SplitTunnelActivity.kt | 13 ++- .../net/megaproxy487/SshHostKeyActivity.kt | 2 +- .../net/megaproxy487/VisibilityActivity.kt | 7 +- app/src/main/res/values-ru/strings.xml | 55 +++++++++ app/src/main/res/values/strings.xml | 56 ++++++++++ 14 files changed, 295 insertions(+), 49 deletions(-) create mode 100644 app/src/main/java/net/megaproxy487/LocalizedActivity.kt create mode 100644 app/src/main/res/values-ru/strings.xml create mode 100644 app/src/main/res/values/strings.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index b80b7dc..5642d86 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -21,7 +21,7 @@ android:fullBackupContent="false" android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher_round" - android:label="MegaProxy" + android:label="@string/app_name" android:supportsRtl="true" android:usesCleartextTraffic="false" android:theme="@style/Theme.MegaProxy"> diff --git a/app/src/main/java/net/megaproxy487/ConnectionTestActivity.kt b/app/src/main/java/net/megaproxy487/ConnectionTestActivity.kt index bd3a3c9..53c2914 100644 --- a/app/src/main/java/net/megaproxy487/ConnectionTestActivity.kt +++ b/app/src/main/java/net/megaproxy487/ConnectionTestActivity.kt @@ -50,6 +50,7 @@ import androidx.compose.ui.semantics.liveRegion import androidx.compose.ui.semantics.semantics import androidx.compose.ui.semantics.stateDescription import androidx.compose.ui.unit.dp +import androidx.compose.ui.res.stringResource import net.megaproxy487.data.ConfigStore import net.megaproxy487.vpn.ProxyVpnService import net.megaproxy487.vpn.TestDiagnosticLog @@ -61,7 +62,7 @@ import net.megaproxy487.vpn.openAndroidVpnSettings import net.megaproxy487.vpn.readAlwaysOnVpnStatus import net.megaproxy487.ui.theme.MegaProxyTheme -class ConnectionTestActivity : ComponentActivity() { +class ConnectionTestActivity : LocalizedActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() @@ -120,7 +121,7 @@ private fun ConnectionTestScreen(activity: Activity, autoStart: Boolean) { Scaffold( topBar = { TopAppBar( - title = { Text("Connection test") }, + title = { Text(stringResource(R.string.connection_test)) }, navigationIcon = { IconButton(onClick = { activity.finish() }) { Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Back") @@ -162,11 +163,11 @@ private fun ConnectionTestScreen(activity: Activity, autoStart: Boolean) { } } Row(horizontalArrangement = Arrangement.spacedBy(12.dp)) { - Button(onClick = runTest, enabled = state != TestState.RUNNING) { Text("Run again") } + Button(onClick = runTest, enabled = state != TestState.RUNNING) { Text(stringResource(R.string.run_again)) } Button(onClick = { val clipboard = activity.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager clipboard.setPrimaryClip(ClipData.newPlainText("MegaProxy connection test", TestDiagnosticLog.entries.joinToString("\n"))) - }, enabled = TestDiagnosticLog.entries.isNotEmpty()) { Text("Copy log") } + }, enabled = TestDiagnosticLog.entries.isNotEmpty()) { Text(stringResource(R.string.copy_log)) } } Text( "The test uses a temporary VPN when the main connection is inactive. Credentials and traffic content are not logged.", diff --git a/app/src/main/java/net/megaproxy487/DiagnosticLogActivity.kt b/app/src/main/java/net/megaproxy487/DiagnosticLogActivity.kt index bd32bc0..1df3c56 100644 --- a/app/src/main/java/net/megaproxy487/DiagnosticLogActivity.kt +++ b/app/src/main/java/net/megaproxy487/DiagnosticLogActivity.kt @@ -44,6 +44,7 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.text.font.FontFamily import androidx.compose.ui.unit.dp +import androidx.compose.ui.res.stringResource import androidx.lifecycle.Lifecycle import androidx.lifecycle.compose.LocalLifecycleOwner import androidx.lifecycle.repeatOnLifecycle @@ -55,7 +56,7 @@ import net.megaproxy487.data.ConfigStore import net.megaproxy487.vpn.PersistentDiagnosticLog import net.megaproxy487.ui.theme.MegaProxyTheme -class DiagnosticLogActivity : ComponentActivity() { +class DiagnosticLogActivity : LocalizedActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() @@ -121,7 +122,7 @@ private fun DiagnosticLogScreen(activity: Activity) { Scaffold( topBar = { TopAppBar( - title = { Text("Diagnostic log") }, + title = { Text(stringResource(R.string.diagnostic_log)) }, navigationIcon = { IconButton(onClick = { activity.finish() }) { Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Back") @@ -155,10 +156,10 @@ private fun DiagnosticLogScreen(activity: Activity) { ) Row(Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.spacedBy(8.dp)) { Button(onClick = { exportDocument.launch("MegaProxy-diagnostic.log") }, modifier = Modifier.weight(1f)) { - Text("Export") + Text(stringResource(R.string.export_action)) } OutlinedButton(onClick = { showClearConfirmation = true }, modifier = Modifier.weight(1f)) { - Text("Clear") + Text(stringResource(R.string.clear_action)) } } Text( diff --git a/app/src/main/java/net/megaproxy487/LocalizedActivity.kt b/app/src/main/java/net/megaproxy487/LocalizedActivity.kt new file mode 100644 index 0000000..b7594ac --- /dev/null +++ b/app/src/main/java/net/megaproxy487/LocalizedActivity.kt @@ -0,0 +1,51 @@ +package net.megaproxy487 + +import android.content.Context +import android.content.res.Configuration +import android.os.LocaleList +import androidx.activity.ComponentActivity +import java.util.Locale + +enum class AppLanguage(val tag: String) { + ENGLISH("en"), + RUSSIAN("ru"), +} + +object AppLanguageManager { + private const val PREFERENCES = "app_language" + private const val KEY_LANGUAGE = "language" + + fun current(context: Context): AppLanguage { + val preferences = context.getSharedPreferences(PREFERENCES, Context.MODE_PRIVATE) + val stored = preferences.getString(KEY_LANGUAGE, null) + if (stored != null) return AppLanguage.entries.firstOrNull { it.tag == stored } ?: AppLanguage.ENGLISH + val initial = if (Locale.getDefault().language == AppLanguage.RUSSIAN.tag) { + AppLanguage.RUSSIAN + } else { + AppLanguage.ENGLISH + } + preferences.edit().putString(KEY_LANGUAGE, initial.tag).apply() + return initial + } + + fun set(context: Context, language: AppLanguage) { + context.getSharedPreferences(PREFERENCES, Context.MODE_PRIVATE) + .edit() + .putString(KEY_LANGUAGE, language.tag) + .apply() + } + + fun wrap(context: Context): Context { + val locale = Locale.forLanguageTag(current(context).tag) + val configuration = Configuration(context.resources.configuration) + configuration.setLocales(LocaleList(locale)) + configuration.setLayoutDirection(locale) + return context.createConfigurationContext(configuration) + } +} + +abstract class LocalizedActivity : ComponentActivity() { + override fun attachBaseContext(newBase: Context) { + super.attachBaseContext(AppLanguageManager.wrap(newBase)) + } +} diff --git a/app/src/main/java/net/megaproxy487/MainActivity.kt b/app/src/main/java/net/megaproxy487/MainActivity.kt index e3e85ca..5d77302 100644 --- a/app/src/main/java/net/megaproxy487/MainActivity.kt +++ b/app/src/main/java/net/megaproxy487/MainActivity.kt @@ -60,6 +60,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.luminance +import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.LiveRegionMode import androidx.compose.ui.semantics.liveRegion import androidx.compose.ui.semantics.semantics @@ -89,7 +90,7 @@ import net.megaproxy487.model.ProfileColors import net.megaproxy487.model.ProxyType import net.megaproxy487.ui.theme.MegaProxyTheme -class MainActivity : ComponentActivity() { +class MainActivity : LocalizedActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() @@ -384,7 +385,7 @@ private fun MainScreen(activity: Activity) { activity.startActivity(Intent(activity, ProfileEditorActivity::class.java).apply { putExtra(ProfileEditorActivity.EXTRA_PROFILE_ID, activeProfile.id) }) - }) { Text("Configure") } + }) { Text(stringResource(R.string.configure)) } } } } @@ -404,20 +405,20 @@ private fun MainScreen(activity: Activity) { ) { Text( when (connection) { - VpnConnectionState.CONNECTED -> "Disconnect" - VpnConnectionState.CONNECTING -> "Connecting…" - VpnConnectionState.DISCONNECTED -> "Connect" + VpnConnectionState.CONNECTED -> stringResource(R.string.disconnect) + VpnConnectionState.CONNECTING -> stringResource(R.string.connecting) + VpnConnectionState.DISCONNECTED -> stringResource(R.string.connect) }, ) } FilledTonalButton( onClick = { activity.startActivity(Intent(activity, ConnectionTestActivity::class.java)) }, modifier = Modifier.fillMaxWidth(), - ) { Text("Test") } + ) { Text(stringResource(R.string.test_connection)) } FilledTonalButton( onClick = { activity.startActivity(Intent(activity, ProxySettingsActivity::class.java)) }, modifier = Modifier.fillMaxWidth(), - ) { Text("Settings") } + ) { Text(stringResource(R.string.settings)) } FilledTonalButton( onClick = { scope.launch { @@ -432,7 +433,7 @@ private fun MainScreen(activity: Activity) { } }, modifier = Modifier.fillMaxWidth(), - ) { Text("Feedback") } + ) { Text(stringResource(R.string.feedback)) } error?.let { Text(it, color = MaterialTheme.colorScheme.error, modifier = Modifier.padding(top = 12.dp)) } diff --git a/app/src/main/java/net/megaproxy487/MegaProxyApplication.kt b/app/src/main/java/net/megaproxy487/MegaProxyApplication.kt index b21c7b8..77666fc 100644 --- a/app/src/main/java/net/megaproxy487/MegaProxyApplication.kt +++ b/app/src/main/java/net/megaproxy487/MegaProxyApplication.kt @@ -1,10 +1,15 @@ package net.megaproxy487 import android.app.Application +import android.content.Context import net.megaproxy487.data.ConfigStore import net.megaproxy487.vpn.PersistentDiagnosticLog class MegaProxyApplication : Application() { + override fun attachBaseContext(base: Context) { + super.attachBaseContext(AppLanguageManager.wrap(base)) + } + override fun onCreate() { super.onCreate() val store = ConfigStore(this) diff --git a/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt b/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt index 5a83c94..1658e6c 100644 --- a/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt +++ b/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt @@ -61,7 +61,7 @@ import net.megaproxy487.vpn.readAlwaysOnVpnStatus import net.megaproxy487.ui.theme.MegaProxyTheme import java.util.Locale -class ProfileEditorActivity : ComponentActivity() { +class ProfileEditorActivity : LocalizedActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() diff --git a/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt b/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt index 629f3d2..0361750 100644 --- a/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt +++ b/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt @@ -70,6 +70,7 @@ import androidx.compose.ui.semantics.CustomAccessibilityAction import androidx.compose.ui.semantics.customActions import androidx.compose.ui.semantics.semantics import androidx.compose.ui.unit.dp +import androidx.compose.ui.res.stringResource import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleEventObserver import androidx.lifecycle.compose.LocalLifecycleOwner @@ -88,7 +89,7 @@ import net.megaproxy487.vpn.PersistentDiagnosticLog import net.megaproxy487.vpn.ProxyVpnService import net.megaproxy487.ui.theme.MegaProxyTheme -class ProfilesActivity : ComponentActivity() { +class ProfilesActivity : LocalizedActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() @@ -233,7 +234,7 @@ private fun SettingsScreen(activity: Activity) { Scaffold( topBar = { TopAppBar( - title = { Text("Profiles") }, + title = { Text(stringResource(R.string.profiles)) }, navigationIcon = { IconButton(onClick = { activity.finish() }) { Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Back") @@ -241,9 +242,9 @@ private fun SettingsScreen(activity: Activity) { }, actions = { TextButton(onClick = { importDocument.launch(arrayOf("text/plain", "application/json", "application/octet-stream")) }) { - Text("Import") + Text(stringResource(R.string.import_action)) } - TextButton(onClick = { showExportDialog = true }) { Text("Export") } + TextButton(onClick = { showExportDialog = true }) { Text(stringResource(R.string.export_action)) } }, ) }, @@ -332,7 +333,7 @@ private fun SettingsScreen(activity: Activity) { ) } importError?.let { message -> item { Text(message, color = MaterialTheme.colorScheme.error) } } - item { Text("Changes are saved automatically.", style = MaterialTheme.typography.bodySmall, modifier = Modifier.padding(bottom = 16.dp)) } + item { Text(stringResource(R.string.changes_saved_automatically), style = MaterialTheme.typography.bodySmall, modifier = Modifier.padding(bottom = 16.dp)) } } } } diff --git a/app/src/main/java/net/megaproxy487/SettingsActivities.kt b/app/src/main/java/net/megaproxy487/SettingsActivities.kt index 93ad93a..ecf1c6d 100644 --- a/app/src/main/java/net/megaproxy487/SettingsActivities.kt +++ b/app/src/main/java/net/megaproxy487/SettingsActivities.kt @@ -52,6 +52,8 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.ui.res.stringResource import androidx.compose.ui.Modifier import androidx.compose.ui.Alignment import androidx.compose.ui.semantics.Role @@ -66,10 +68,14 @@ import net.megaproxy487.model.SshProfile import net.megaproxy487.model.SshAuthMode import net.megaproxy487.model.FailoverMode import net.megaproxy487.vpn.ProxyVpnService +import net.megaproxy487.vpn.VpnRuntimeState import net.megaproxy487.vpn.readAlwaysOnVpnStatus import net.megaproxy487.ui.theme.MegaProxyTheme +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext -class ProxySettingsActivity : ComponentActivity() { +class ProxySettingsActivity : LocalizedActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() @@ -77,7 +83,7 @@ class ProxySettingsActivity : ComponentActivity() { } } -class AlwaysOnSettingsActivity : ComponentActivity() { +class AlwaysOnSettingsActivity : LocalizedActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() @@ -85,7 +91,7 @@ class AlwaysOnSettingsActivity : ComponentActivity() { } } -class TlsFingerprintActivity : ComponentActivity() { +class TlsFingerprintActivity : LocalizedActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() @@ -93,7 +99,7 @@ class TlsFingerprintActivity : ComponentActivity() { } } -class FailoverSettingsActivity : ComponentActivity() { +class FailoverSettingsActivity : LocalizedActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() @@ -109,6 +115,9 @@ private fun SettingsHomeScreen(activity: Activity) { var batteryOptimizationDisabled by remember { mutableStateOf(powerManager.isIgnoringBatteryOptimizations(activity.packageName)) } + var showLanguageDialog by remember { mutableStateOf(false) } + var supportError by remember { mutableStateOf(null) } + val scope = rememberCoroutineScope() DisposableEffect(lifecycleOwner) { val observer = LifecycleEventObserver { _, event -> @@ -120,23 +129,87 @@ private fun SettingsHomeScreen(activity: Activity) { onDispose { lifecycleOwner.lifecycle.removeObserver(observer) } } - SettingsScaffold(activity, "Settings") { - Text("Connection", style = MaterialTheme.typography.titleMedium) - SettingsButton("Profiles", "Proxy servers, credentials, DNS and IPv6") { activity.startActivity(Intent(activity, ProfilesActivity::class.java)) } - SettingsButton("Always-on VPN", "Startup profile and Android VPN controls") { activity.startActivity(Intent(activity, AlwaysOnSettingsActivity::class.java)) } - SettingsButton("Fingerprints", "HTTPS JA3 and SSH client behavior") { activity.startActivity(Intent(activity, TlsFingerprintActivity::class.java)) } - SettingsButton("Split tunneling", "Choose global or per-app routing") { activity.startActivity(Intent(activity, SplitTunnelActivity::class.java)) } - SettingsButton("Failover", "Fallback profiles when blocking is suspected") { activity.startActivity(Intent(activity, FailoverSettingsActivity::class.java)) } - Text("Diagnostics", style = MaterialTheme.typography.titleMedium, modifier = Modifier.padding(top = 8.dp)) - SettingsButton("Visibility", "Check what applications can detect") { activity.startActivity(Intent(activity, VisibilityActivity::class.java)) } + SettingsScaffold(activity, stringResource(R.string.settings)) { + Text(stringResource(R.string.connection), style = MaterialTheme.typography.titleMedium) + SettingsButton(stringResource(R.string.profiles), stringResource(R.string.profiles_description)) { activity.startActivity(Intent(activity, ProfilesActivity::class.java)) } + SettingsButton(stringResource(R.string.always_on_vpn), stringResource(R.string.always_on_description)) { activity.startActivity(Intent(activity, AlwaysOnSettingsActivity::class.java)) } + SettingsButton(stringResource(R.string.fingerprints), stringResource(R.string.fingerprints_description)) { activity.startActivity(Intent(activity, TlsFingerprintActivity::class.java)) } + SettingsButton(stringResource(R.string.split_tunneling), stringResource(R.string.split_tunneling_description)) { activity.startActivity(Intent(activity, SplitTunnelActivity::class.java)) } + SettingsButton(stringResource(R.string.failover), stringResource(R.string.failover_description)) { activity.startActivity(Intent(activity, FailoverSettingsActivity::class.java)) } + Text(stringResource(R.string.diagnostics), style = MaterialTheme.typography.titleMedium, modifier = Modifier.padding(top = 8.dp)) + SettingsButton(stringResource(R.string.visibility), stringResource(R.string.visibility_description)) { activity.startActivity(Intent(activity, VisibilityActivity::class.java)) } if (!batteryOptimizationDisabled) { - SettingsButton("Battery settings", "Allow reliable background VPN operation") { + SettingsButton(stringResource(R.string.battery_settings), stringResource(R.string.battery_settings_description)) { activity.startActivity(Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS).apply { data = Uri.parse("package:${activity.packageName}") }) } } - SettingsButton("Diagnostic log", "Inspect, export or clear privacy-filtered events") { activity.startActivity(Intent(activity, DiagnosticLogActivity::class.java)) } + SettingsButton(stringResource(R.string.diagnostic_log), stringResource(R.string.diagnostic_log_description)) { activity.startActivity(Intent(activity, DiagnosticLogActivity::class.java)) } + Text(stringResource(R.string.appearance_and_language), style = MaterialTheme.typography.titleMedium, modifier = Modifier.padding(top = 8.dp)) + SettingsButton( + stringResource(R.string.language), + "${stringResource(R.string.language_description)} · ${if (AppLanguageManager.current(activity) == AppLanguage.RUSSIAN) stringResource(R.string.language_russian) else stringResource(R.string.language_english)}", + ) { showLanguageDialog = true } + Text(stringResource(R.string.support), style = MaterialTheme.typography.titleMedium, modifier = Modifier.padding(top = 8.dp)) + SettingsButton(stringResource(R.string.feedback), stringResource(R.string.feedback_description)) { + scope.launch { + runCatching { + val status = readAlwaysOnVpnStatus(activity) + val intent = withContext(Dispatchers.IO) { + FeedbackEmail.createIntent( + activity, + VpnRuntimeState.connection.value, + VpnRuntimeState.alwaysOn.value || status.enabled, + VpnRuntimeState.lockdown.value || status.lockdown, + ) + } + activity.startActivity(intent) + }.onFailure { supportError = it.message ?: "Could not open an email client" } + } + } + SettingsButton(stringResource(R.string.github_issues), stringResource(R.string.github_issues_description)) { + runCatching { + activity.startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("https://github.com/andre487/AndroidMegaProxy/issues"))) + }.onFailure { supportError = activity.getString(R.string.no_browser) } + } + supportError?.let { Text(it, color = MaterialTheme.colorScheme.error) } + } + + if (showLanguageDialog) { + val selected = AppLanguageManager.current(activity) + AlertDialog( + onDismissRequest = { showLanguageDialog = false }, + title = { Text(stringResource(R.string.language)) }, + text = { + Column { + AppLanguage.entries.forEach { language -> + val label = if (language == AppLanguage.RUSSIAN) { + stringResource(R.string.language_russian) + } else { + stringResource(R.string.language_english) + } + Row( + Modifier.fillMaxWidth().heightIn(min = 56.dp).toggleable( + value = selected == language, + role = Role.RadioButton, + onValueChange = { + AppLanguageManager.set(activity, language) + showLanguageDialog = false + activity.recreate() + }, + ), + verticalAlignment = Alignment.CenterVertically, + ) { + androidx.compose.material3.RadioButton(selected == language, null) + Text(label) + } + } + } + }, + confirmButton = {}, + dismissButton = { TextButton(onClick = { showLanguageDialog = false }) { Text(stringResource(android.R.string.cancel)) } }, + ) } } @@ -413,7 +486,7 @@ private fun SettingsScaffold(activity: Activity, title: String, content: @Compos title = { Text(title) }, navigationIcon = { IconButton(onClick = { activity.finish() }) { - Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Back") + Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = stringResource(R.string.back)) } }, ) diff --git a/app/src/main/java/net/megaproxy487/SplitTunnelActivity.kt b/app/src/main/java/net/megaproxy487/SplitTunnelActivity.kt index 58a7252..bf4373f 100644 --- a/app/src/main/java/net/megaproxy487/SplitTunnelActivity.kt +++ b/app/src/main/java/net/megaproxy487/SplitTunnelActivity.kt @@ -42,13 +42,14 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.semantics.Role import androidx.compose.ui.unit.dp +import androidx.compose.ui.res.stringResource import net.megaproxy487.data.ConfigStore import net.megaproxy487.model.GlobalConnectionSettings import net.megaproxy487.vpn.ProxyVpnService import net.megaproxy487.vpn.readAlwaysOnVpnStatus import net.megaproxy487.ui.theme.MegaProxyTheme -class SplitTunnelActivity : ComponentActivity() { +class SplitTunnelActivity : LocalizedActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() @@ -102,7 +103,7 @@ private fun SplitTunnelScreen(activity: SplitTunnelActivity) { Scaffold( topBar = { TopAppBar( - title = { Text("Split tunneling") }, + title = { Text(stringResource(R.string.split_tunneling)) }, navigationIcon = { IconButton(onClick = { activity.finish() }) { Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Back") @@ -146,7 +147,7 @@ private fun SplitTunnelScreen(activity: SplitTunnelActivity) { contentPadding = androidx.compose.foundation.layout.PaddingValues(16.dp), verticalArrangement = Arrangement.spacedBy(6.dp), ) { - item { Text("Routing mode", style = MaterialTheme.typography.titleMedium) } + item { Text(stringResource(R.string.routing_mode), style = MaterialTheme.typography.titleMedium) } item { Column(Modifier.selectableGroup()) { Row( @@ -159,7 +160,7 @@ private fun SplitTunnelScreen(activity: SplitTunnelActivity) { ) { RadioButton(!settings.routeAllApps, null) Column(Modifier.weight(1f)) { - Text("Split tunneling") + Text(stringResource(R.string.split_tunneling)) Text("Only selected applications use the proxy.", style = MaterialTheme.typography.bodySmall) } } @@ -198,7 +199,7 @@ private fun SplitTunnelScreen(activity: SplitTunnelActivity) { } } if (!settings.routeAllApps) { - item { Text("Applications", style = MaterialTheme.typography.titleMedium) } + item { Text(stringResource(R.string.applications), style = MaterialTheme.typography.titleMedium) } item { OutlinedTextField( value = appSearch, @@ -230,7 +231,7 @@ private fun SplitTunnelScreen(activity: SplitTunnelActivity) { } } } - item { Text("Changes are saved automatically and apply to every profile.", style = MaterialTheme.typography.bodySmall) } + item { Text(stringResource(R.string.changes_saved_automatically), style = MaterialTheme.typography.bodySmall) } } } } diff --git a/app/src/main/java/net/megaproxy487/SshHostKeyActivity.kt b/app/src/main/java/net/megaproxy487/SshHostKeyActivity.kt index 4fe676f..c53b170 100644 --- a/app/src/main/java/net/megaproxy487/SshHostKeyActivity.kt +++ b/app/src/main/java/net/megaproxy487/SshHostKeyActivity.kt @@ -12,7 +12,7 @@ import net.megaproxy487.ui.theme.MegaProxyTheme import net.megaproxy487.data.ConfigStore import net.megaproxy487.vpn.ProxyVpnService -class SshHostKeyActivity : ComponentActivity() { +class SshHostKeyActivity : LocalizedActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() diff --git a/app/src/main/java/net/megaproxy487/VisibilityActivity.kt b/app/src/main/java/net/megaproxy487/VisibilityActivity.kt index f9d9f08..c6c3c59 100644 --- a/app/src/main/java/net/megaproxy487/VisibilityActivity.kt +++ b/app/src/main/java/net/megaproxy487/VisibilityActivity.kt @@ -42,11 +42,12 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.dp +import androidx.compose.ui.res.stringResource import net.megaproxy487.ui.theme.MegaProxyTheme import net.megaproxy487.data.ConfigStore import java.net.NetworkInterface -class VisibilityActivity : ComponentActivity() { +class VisibilityActivity : LocalizedActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() @@ -79,7 +80,7 @@ private fun VisibilityScreen(activity: Activity) { Scaffold( topBar = { TopAppBar( - title = { Text("Visibility") }, + title = { Text(stringResource(R.string.visibility)) }, navigationIcon = { IconButton(onClick = activity::finish) { Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Back") @@ -98,7 +99,7 @@ private fun VisibilityScreen(activity: Activity) { style = MaterialTheme.typography.bodyMedium, ) Button(onClick = { report = buildVisibilityReport(activity) }, modifier = Modifier.fillMaxWidth()) { - Text("Run checks again") + Text(stringResource(R.string.run_checks_again)) } VisibilitySection("Globally observable signals", report.global) if (report.splitTunneling) { diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml new file mode 100644 index 0000000..43fb48e --- /dev/null +++ b/app/src/main/res/values-ru/strings.xml @@ -0,0 +1,55 @@ + + + Назад + Настройки + Подключение + Профили + Прокси-серверы, учётные данные, DNS и IPv6 + Постоянный VPN + Стартовый профиль и системные настройки VPN + Цифровые отпечатки + Поведение HTTPS JA3 и SSH-клиента + Раздельное туннелирование + Глобальная или маршрутизация отдельных приложений + Переключение при сбое + Резервные профили при вероятной блокировке + Диагностика + Видимость VPN + Проверка признаков, доступных приложениям + Настройки батареи + Надёжная работа VPN в фоновом режиме + Диагностический журнал + Просмотр, экспорт и очистка обезличенных событий + Интерфейс и язык + Язык + Язык интерфейса MegaProxy + Английский + Русский + Поддержка + Обратная связь + Отправить отзыв с диагностическим журналом + GitHub Issues + Сообщить об ошибке или посмотреть известные проблемы + Подключиться + Отключиться + Подключение… + Проверить + Настроить + Не найдено приложение для открытия ссылки. + Проверка подключения + Профиль + Настройки профиля + Режим маршрутизации + Приложения + Проверить снова + Копировать журнал + Импорт + Экспорт + Изменения сохраняются автоматически. + Отмена + Скрыть + Переподключиться сейчас + При следующем подключении + Очистить + Повторить проверку + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..5166777 --- /dev/null +++ b/app/src/main/res/values/strings.xml @@ -0,0 +1,56 @@ + + + MegaProxy + Back + Settings + Connection + Profiles + Proxy servers, credentials, DNS and IPv6 + Always-on VPN + Startup profile and Android VPN controls + Fingerprints + HTTPS JA3 and SSH client behavior + Split tunneling + Choose global or per-app routing + Failover + Fallback profiles when blocking is suspected + Diagnostics + Visibility + Check what applications can detect + Battery settings + Allow reliable background VPN operation + Diagnostic log + Inspect, export or clear privacy-filtered events + Appearance and language + Language + Language used by the MegaProxy interface + English + Russian + Support + Feedback + Send feedback and attach the diagnostic log + GitHub issues + Report a bug or follow known issues + Connect + Disconnect + Connecting… + Test + Configure + No browser is available. + Connection test + Profile + Profile settings + Routing mode + Applications + Run again + Copy log + Import + Export + Changes are saved automatically. + Cancel + Dismiss + Reconnect now + Next connection + Clear + Run checks again + From ef500343d9c9472800a06bcc977da1e38920cbcc Mon Sep 17 00:00:00 2001 From: Andrey Prokopyuk Date: Tue, 1 Sep 2026 16:02:52 +0300 Subject: [PATCH 27/41] Fix found issues --- app/build.gradle.kts | 2 + .../net/megaproxy487/SplitTunnelActivity.kt | 27 +++- .../net/megaproxy487/model/ProxyConfig.kt | 15 ++ .../megaproxy487/vpn/BootstrapAddressCache.kt | 47 +++++++ .../java/net/megaproxy487/vpn/ProxyCore.kt | 4 + .../net/megaproxy487/vpn/ProxyVpnService.kt | 128 +++++++++++++++++- .../net/megaproxy487/model/DnsProviderTest.kt | 31 +++++ native/mobile/bootstrap.go | 45 ++++-- native/mobile/bootstrap_test.go | 35 +++++ native/mobile/config.go | 66 +++++---- native/mobile/doh.go | 123 +++++++++++------ native/mobile/doh_test.go | 35 +++++ native/mobile/stats.go | 5 + native/mobile/stats_test.go | 3 + 14 files changed, 481 insertions(+), 85 deletions(-) create mode 100644 app/src/main/java/net/megaproxy487/vpn/BootstrapAddressCache.kt create mode 100644 app/src/test/java/net/megaproxy487/model/DnsProviderTest.kt create mode 100644 native/mobile/bootstrap_test.go diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 03a513f..2219a18 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -46,6 +46,8 @@ android { targetCompatibility = JavaVersion.VERSION_17 } packaging { resources.excludes += "/META-INF/{AL2.0,LGPL2.1}" } + // Both bundled locales must remain available to the in-app language selector. + bundle { language { enableSplit = false } } } kotlin { jvmToolchain(17) } diff --git a/app/src/main/java/net/megaproxy487/SplitTunnelActivity.kt b/app/src/main/java/net/megaproxy487/SplitTunnelActivity.kt index bf4373f..fd601d1 100644 --- a/app/src/main/java/net/megaproxy487/SplitTunnelActivity.kt +++ b/app/src/main/java/net/megaproxy487/SplitTunnelActivity.kt @@ -24,6 +24,7 @@ import androidx.compose.material.icons.automirrored.filled.ArrowBack import androidx.compose.material3.Card import androidx.compose.material3.CardDefaults import androidx.compose.material3.Checkbox +import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.IconButton @@ -35,6 +36,7 @@ import androidx.compose.material3.Text import androidx.compose.material3.TextButton import androidx.compose.material3.TopAppBar import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember @@ -48,6 +50,8 @@ import net.megaproxy487.model.GlobalConnectionSettings import net.megaproxy487.vpn.ProxyVpnService import net.megaproxy487.vpn.readAlwaysOnVpnStatus import net.megaproxy487.ui.theme.MegaProxyTheme +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.withContext class SplitTunnelActivity : LocalizedActivity() { override fun onCreate(savedInstanceState: Bundle?) { @@ -86,16 +90,20 @@ private fun SplitTunnelScreen(activity: SplitTunnelActivity) { } } - val apps = remember { - val launcher = Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_LAUNCHER) - activity.packageManager.queryIntentActivities(launcher, 0) - .map { AppItem(it.activityInfo.packageName, it.loadLabel(activity.packageManager).toString()) } - .distinctBy { it.packageName } - .sortedBy { it.label.lowercase() } + var apps by remember(activity) { mutableStateOf?>(null) } + LaunchedEffect(activity) { + apps = withContext(Dispatchers.IO) { + val launcher = Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_LAUNCHER) + activity.packageManager.queryIntentActivities(launcher, 0) + .map { AppItem(it.activityInfo.packageName, it.loadLabel(activity.packageManager).toString()) } + .distinctBy { it.packageName } + .sortedBy { it.label.lowercase() } + } } val visibleApps = remember(apps, appSearch) { val query = appSearch.trim() - if (query.isEmpty()) apps else apps.filter { + val availableApps = apps.orEmpty() + if (query.isEmpty()) availableApps else availableApps.filter { it.label.contains(query, ignoreCase = true) || it.packageName.contains(query, ignoreCase = true) } } @@ -200,6 +208,11 @@ private fun SplitTunnelScreen(activity: SplitTunnelActivity) { } if (!settings.routeAllApps) { item { Text(stringResource(R.string.applications), style = MaterialTheme.typography.titleMedium) } + if (apps == null) item { + Row(Modifier.fillMaxWidth().padding(16.dp), horizontalArrangement = Arrangement.Center) { + CircularProgressIndicator() + } + } item { OutlinedTextField( value = appSearch, diff --git a/app/src/main/java/net/megaproxy487/model/ProxyConfig.kt b/app/src/main/java/net/megaproxy487/model/ProxyConfig.kt index d45f08b..f6c0a19 100644 --- a/app/src/main/java/net/megaproxy487/model/ProxyConfig.kt +++ b/app/src/main/java/net/megaproxy487/model/ProxyConfig.kt @@ -118,7 +118,22 @@ enum class DnsProvider(val title: String, val url: String) { CLOUDFLARE("Cloudflare", "https://cloudflare-dns.com/dns-query"), GOOGLE("Google", "https://dns.google/dns-query"), QUAD9("Quad9", "https://dns.quad9.net/dns-query"), + YANDEX("Yandex Basic", "https://common.dot.dns.yandex.net/dns-query"), + YANDEX_SAFE("Yandex Safe", "https://safe.dot.dns.yandex.net/dns-query"), + YANDEX_FAMILY("Yandex Family", "https://family.dot.dns.yandex.net/dns-query"), CUSTOM("Custom DoH URL", ""), + + ; + + fun fallbackUrls(): List { + // Never bypass an explicitly selected content-filtering policy. + if (this == CUSTOM || this == YANDEX_SAFE || this == YANDEX_FAMILY) return emptyList() + return entries.asSequence() + .filter { it != this && it != CUSTOM && it != YANDEX_SAFE && it != YANDEX_FAMILY } + .map(DnsProvider::url) + .filter(String::isNotEmpty) + .toList() + } } enum class TlsProfile(val title: String, val available: Boolean = true) { diff --git a/app/src/main/java/net/megaproxy487/vpn/BootstrapAddressCache.kt b/app/src/main/java/net/megaproxy487/vpn/BootstrapAddressCache.kt new file mode 100644 index 0000000..f7c3dd9 --- /dev/null +++ b/app/src/main/java/net/megaproxy487/vpn/BootstrapAddressCache.kt @@ -0,0 +1,47 @@ +package net.megaproxy487.vpn + +import android.content.Context +import org.json.JSONObject +import java.security.MessageDigest + +class BootstrapAddressCache(context: Context) { + private val preferences = context.getSharedPreferences("bootstrap_address_cache", Context.MODE_PRIVATE) + + fun get(host: String, now: Long = System.currentTimeMillis()): String? { + val value = preferences.getString(key(host), null) ?: return null + return runCatching { + val json = JSONObject(value) + val address = json.getString("address") + val savedAt = json.getLong("savedAt") + address.takeIf { now - savedAt in 0..MAX_AGE_MS && isNumericIpv4(it) } + }.getOrNull() + } + + fun put(host: String, address: String, now: Long = System.currentTimeMillis()) { + if (!isNumericIpv4(address)) return + preferences.edit().putString( + key(host), + JSONObject().put("address", address).put("savedAt", now).toString(), + ).apply() + } + + private fun key(host: String): String = MessageDigest.getInstance("SHA-256") + .digest(host.trim().lowercase().toByteArray(Charsets.UTF_8)) + .joinToString("") { "%02x".format(it) } + + // Bootstrap DoH deliberately requests an A record. Keeping this parser IPv4-only + // avoids both a compatibility dependency on API 29 and accidental DNS lookups. + private fun isNumericIpv4(address: String): Boolean { + val octets = address.split('.') + return octets.size == 4 && octets.all { octet -> + octet.isNotEmpty() && + octet.length <= 3 && + octet.all(Char::isDigit) && + octet.toIntOrNull() in 0..255 + } + } + + private companion object { + const val MAX_AGE_MS = 7L * 24 * 60 * 60 * 1_000 + } +} diff --git a/app/src/main/java/net/megaproxy487/vpn/ProxyCore.kt b/app/src/main/java/net/megaproxy487/vpn/ProxyCore.kt index 9894ace..92cb6c2 100644 --- a/app/src/main/java/net/megaproxy487/vpn/ProxyCore.kt +++ b/app/src/main/java/net/megaproxy487/vpn/ProxyCore.kt @@ -4,6 +4,7 @@ import android.net.VpnService import android.os.ParcelFileDescriptor import net.megaproxy487.model.ProxyConfig import org.json.JSONObject +import org.json.JSONArray import java.lang.reflect.Proxy interface ProxyCore { @@ -20,6 +21,7 @@ data class NativeConnectionStats( val proxyLatencyAtMillis: Long, val connectionErrorRate: Double, val connectionSamples: Int, + val totalOutcomes: Long, ) object ConnectionStatsReader { @@ -33,6 +35,7 @@ object ConnectionStatsReader { proxyLatencyAtMillis = json.getLong("proxyLatencyAtMillis"), connectionErrorRate = json.getDouble("connectionErrorRate"), connectionSamples = json.getInt("connectionSamples"), + totalOutcomes = json.getLong("totalOutcomes"), ) }.getOrNull() } @@ -73,6 +76,7 @@ class NativeProxyCore( .put("profile", config.profile.name) .put("customJa3", config.customJa3.trim()) .put("dohUrl", if (config.dnsProvider.url.isNotEmpty()) config.dnsProvider.url else config.customDohUrl.trim()) + .put("dohFallbackUrls", JSONArray(config.dnsProvider.fallbackUrls())) .put("allowIpv6", config.allowIpv6) .put("bypassLocalNetworks", config.bypassLocalNetworks) .toString() diff --git a/app/src/main/java/net/megaproxy487/vpn/ProxyVpnService.kt b/app/src/main/java/net/megaproxy487/vpn/ProxyVpnService.kt index 46bb383..82a5407 100644 --- a/app/src/main/java/net/megaproxy487/vpn/ProxyVpnService.kt +++ b/app/src/main/java/net/megaproxy487/vpn/ProxyVpnService.kt @@ -8,6 +8,8 @@ import android.content.Intent import android.net.VpnService import android.net.ConnectivityManager import android.net.NetworkCapabilities +import android.net.Network +import android.net.NetworkRequest import android.os.Build import android.os.ParcelFileDescriptor import android.os.Handler @@ -33,16 +35,45 @@ class ProxyVpnService : VpnService() { @Volatile private var failoverNotice: String? = null @Volatile private var connectionBlockedForAction = false @Volatile private var reconnectAfterStart = false + @Volatile private var healthWarningActive = false + private var lastHealthBytes = 0L + private var lastHealthOutcomes = 0L private val tunnelStateLock = Any() private val startGeneration = AtomicLong(0) private val probableFailureCounts = ConcurrentHashMap() private val probableFailureTimes = ConcurrentHashMap() private val attemptedFailoverProfiles = ConcurrentHashMap.newKeySet() + private val underlyingCapabilities = ConcurrentHashMap() + @Volatile private var underlyingNetwork: Network? = null + @Volatile private var networkCallbackRegistered = false private val monitorHandler = Handler(Looper.getMainLooper()) + private val reconnectForNetworkChange = Runnable { + if (ConfigStore(this).isConnectionDesired() && tunnel != null && !testRunning.get()) { + DiagnosticLog.add("event=network_handover action=reconnect") + startService(Intent(this, ProxyVpnService::class.java).setAction(ACTION_RECONNECT) + .putExtra(EXTRA_RECONNECT_REASON, "underlying_network_changed")) + } + } + private val networkCallback = object : ConnectivityManager.NetworkCallback() { + override fun onAvailable(network: Network) { + reconsiderUnderlyingNetworks(network) + } + + override fun onCapabilitiesChanged(network: Network, capabilities: NetworkCapabilities) { + underlyingCapabilities[network] = capabilities + reconsiderUnderlyingNetworks(network) + } + + override fun onLost(network: Network) { + underlyingCapabilities.remove(network) + reconsiderUnderlyingNetworks() + } + } private val monitor = object : Runnable { override fun run() { val desired = ConfigStore(this@ProxyVpnService).isConnectionDesired() if (desired) { + updatePassiveHealthState() getSystemService(NotificationManager::class.java).notify( NOTIFICATION_ID, notification(failoverNotice ?: VpnRuntimeState.networkWarning.value ?: if (isRunning) "Connected" else "Reconnecting…"), @@ -71,6 +102,7 @@ class ProxyVpnService : VpnService() { failoverNotice = ConfigStore(this).failoverNotice() failoverNotice?.let(VpnRuntimeState::updateNetworkWarning) createChannel() + registerUnderlyingNetworkCallback() monitorHandler.post(monitor) } @@ -265,7 +297,9 @@ class ProxyVpnService : VpnService() { } val builder = Builder() .setSession("MegaProxy") - .setMtu(1500) + // Leave headroom for cellular, hotspot and nested-tunnel encapsulation. + // 1400 avoids common PMTU black holes while remaining efficient for TCP. + .setMtu(VPN_MTU) .addAddress("10.77.0.1", 30) .addAddress("fd77::1", 126) .addRoute("0.0.0.0", 0) @@ -294,9 +328,12 @@ class ProxyVpnService : VpnService() { } diagnostics("TUN established with IPv4, IPv6 and intercepted DNS") val proxyCore = NativeProxyCore(this, diagnostics) + val addressCache = BootstrapAddressCache(this) val proxyIp = proxyCore.resolveProxy(storedConfig.host) { message -> failureDetail = message getSystemService(NotificationManager::class.java).notify(NOTIFICATION_ID, notification(message)) + }?.also { addressCache.put(storedConfig.host, it) } ?: addressCache.get(storedConfig.host)?.also { + diagnostics("event=bootstrap_dns result=cached_fallback age_limit_days=7") } ?: run { establishedTunnel.close() if (!isStartCurrent(generation)) return false @@ -307,6 +344,8 @@ class ProxyVpnService : VpnService() { proxyCore.resolveProxy(storedConfig.jumpHost) { message -> failureDetail = message getSystemService(NotificationManager::class.java).notify(NOTIFICATION_ID, notification(message)) + }?.also { addressCache.put(storedConfig.jumpHost, it) } ?: addressCache.get(storedConfig.jumpHost)?.also { + diagnostics("event=bootstrap_dns result=cached_fallback target=jump age_limit_days=7") } ?: run { establishedTunnel.close() if (!isStartCurrent(generation)) return false @@ -348,6 +387,7 @@ class ProxyVpnService : VpnService() { establishedTunnel.close() return false } + underlyingNetwork?.let { setUnderlyingNetworks(arrayOf(it)) } probableFailureCounts.remove(promptProfileId) probableFailureTimes.remove(promptProfileId) if (failoverNotice == null) VpnRuntimeState.updateNetworkWarning(null) @@ -479,6 +519,83 @@ class ProxyVpnService : VpnService() { } } + private fun updatePassiveHealthState() { + if (!isRunning) return + val stats = ConnectionStatsReader.snapshot() ?: return + val bytes = stats.downloadBytes + stats.uploadBytes + val trafficProgressed = bytes > lastHealthBytes + val newConnectionOutcomes = stats.totalOutcomes > lastHealthOutcomes + when { + trafficProgressed && healthWarningActive -> { + healthWarningActive = false + if (failoverNotice == null) VpnRuntimeState.updateNetworkWarning(null) + DiagnosticLog.add("event=connection_health state=recovered") + } + newConnectionOutcomes && stats.connectionSamples >= 3 && stats.connectionErrorRate >= 0.75 && !healthWarningActive -> { + healthWarningActive = true + val warning = "Connection is degraded: most recent proxy connections failed." + VpnRuntimeState.updateNetworkWarning(warning) + DiagnosticLog.add("event=connection_health state=degraded error_rate_percent=${(stats.connectionErrorRate * 100).toInt()} samples=${stats.connectionSamples}") + } + } + lastHealthBytes = bytes + lastHealthOutcomes = stats.totalOutcomes + } + + private fun registerUnderlyingNetworkCallback() { + val manager = getSystemService(ConnectivityManager::class.java) + val request = NetworkRequest.Builder() + .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) + .addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_VPN) + .build() + runCatching { + manager.registerNetworkCallback(request, networkCallback) + networkCallbackRegistered = true + }.onFailure { + DiagnosticLog.add("event=network_monitor result=failed reason=${it.javaClass.simpleName}") + } + } + + private fun reconsiderUnderlyingNetworks(preferred: Network? = null) { + monitorHandler.post { + val validated = underlyingCapabilities.entries + .filter { it.value.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED) } + .maxWithOrNull( + compareBy> { networkPreference(it.value) } + .thenBy { if (it.key == preferred) 1 else 0 } + .thenBy { if (it.key == underlyingNetwork) 1 else 0 }, + )?.key + val captive = underlyingCapabilities.values.any { + it.hasCapability(NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL) + } + if (validated == null) { + if (captive) { + val warning = "Wi-Fi sign-in is required before the VPN can reconnect." + VpnRuntimeState.updateNetworkWarning(warning) + getSystemService(NotificationManager::class.java).notify(NOTIFICATION_ID, notification(warning)) + DiagnosticLog.add("event=network state=captive_portal") + } + return@post + } + val previous = underlyingNetwork + if (previous == validated) return@post + underlyingNetwork = validated + if (tunnel != null) setUnderlyingNetworks(arrayOf(validated)) + DiagnosticLog.add("event=network underlying=changed connected=${tunnel != null}") + if (previous != null && tunnel != null) { + monitorHandler.removeCallbacks(reconnectForNetworkChange) + monitorHandler.postDelayed(reconnectForNetworkChange, NETWORK_CHANGE_DEBOUNCE_MS) + } + } + } + + private fun networkPreference(capabilities: NetworkCapabilities): Int = when { + capabilities.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET) -> 3 + capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) -> 2 + capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) -> 1 + else -> 0 + } + private fun stopTunnel(removeForeground: Boolean = true) { startGeneration.incrementAndGet() val stopped = synchronized(tunnelStateLock) { @@ -488,6 +605,9 @@ class ProxyVpnService : VpnService() { tunnelTestOnly = false activeConfig = null isRunning = false + healthWarningActive = false + lastHealthBytes = 0L + lastHealthOutcomes = 0L result } if (stopped.first != null) { @@ -509,6 +629,10 @@ class ProxyVpnService : VpnService() { } override fun onDestroy() { monitorHandler.removeCallbacks(monitor) + monitorHandler.removeCallbacks(reconnectForNetworkChange) + if (networkCallbackRegistered) { + runCatching { getSystemService(ConnectivityManager::class.java).unregisterNetworkCallback(networkCallback) } + } stopTunnel() super.onDestroy() } @@ -571,6 +695,8 @@ class ProxyVpnService : VpnService() { private const val EXTRA_RECONNECT_REASON = "reconnect_reason" private const val MONITOR_INTERVAL_MS = 10_000L private const val FAILURE_WINDOW_MS = 60_000L + private const val NETWORK_CHANGE_DEBOUNCE_MS = 1_500L + private const val VPN_MTU = 1_400 private val testRunning = AtomicBoolean(false) private val startRunning = AtomicBoolean(false) @Volatile var isRunning: Boolean = false diff --git a/app/src/test/java/net/megaproxy487/model/DnsProviderTest.kt b/app/src/test/java/net/megaproxy487/model/DnsProviderTest.kt new file mode 100644 index 0000000..4219abc --- /dev/null +++ b/app/src/test/java/net/megaproxy487/model/DnsProviderTest.kt @@ -0,0 +1,31 @@ +package net.megaproxy487.model + +import org.junit.Assert.assertEquals +import org.junit.Assert.assertTrue +import org.junit.Test + +class DnsProviderTest { + @Test + fun `built in providers have encrypted failover`() { + listOf(DnsProvider.CLOUDFLARE, DnsProvider.GOOGLE, DnsProvider.QUAD9, DnsProvider.YANDEX).forEach { provider -> + assertTrue(provider.url.startsWith("https://")) + assertTrue(provider.fallbackUrls().size >= 2) + assertTrue(provider.url !in provider.fallbackUrls()) + } + } + + @Test + fun `custom provider never leaks queries to implicit fallback`() { + assertEquals(emptyList(), DnsProvider.CUSTOM.fallbackUrls()) + assertEquals(emptyList(), DnsProvider.YANDEX_SAFE.fallbackUrls()) + assertEquals(emptyList(), DnsProvider.YANDEX_FAMILY.fallbackUrls()) + } + + @Test + fun `Yandex modes are available`() { + assertEquals( + setOf(DnsProvider.YANDEX, DnsProvider.YANDEX_SAFE, DnsProvider.YANDEX_FAMILY), + DnsProvider.entries.filter { it.name.startsWith("YANDEX") }.toSet(), + ) + } +} diff --git a/native/mobile/bootstrap.go b/native/mobile/bootstrap.go index 6148f9f..f3d8ec1 100644 --- a/native/mobile/bootstrap.go +++ b/native/mobile/bootstrap.go @@ -14,8 +14,22 @@ import ( "time" ) -const bootstrapDoHIP = "1.1.1.1:443" -const bootstrapDoHURL = "https://cloudflare-dns.com/dns-query" +type bootstrapResolver struct { + name string + address string + url string +} + +// Each resolver is dialled by a documented IP address, while TLS still verifies +// the provider hostname. Multiple networks block individual public resolvers, so +// bootstrap must not have a single point of failure. +var bootstrapResolvers = []bootstrapResolver{ + {name: "cloudflare", address: "1.1.1.1:443", url: "https://cloudflare-dns.com/dns-query"}, + {name: "yandex_primary", address: "77.88.8.8:443", url: "https://common.dot.dns.yandex.net/dns-query"}, + {name: "yandex_secondary", address: "77.88.8.1:443", url: "https://common.dot.dns.yandex.net/dns-query"}, + {name: "google", address: "8.8.8.8:443", url: "https://dns.google/dns-query"}, + {name: "quad9", address: "9.9.9.9:443", url: "https://dns.quad9.net/dns-query"}, +} // ResolveProxy bootstraps the proxy address through protected encrypted DNS. func ResolveProxy(host string, protector Protector, reporter Reporter) (string, error) { @@ -23,8 +37,21 @@ func ResolveProxy(host string, protector Protector, reporter Reporter) (string, if err != nil { return "", err } + var failures []error + for _, resolver := range bootstrapResolvers { + ip, resolveErr := resolveProxyWithResolver(query, id, resolver, protector, reporter) + if resolveErr == nil { + return ip, nil + } + failures = append(failures, fmt.Errorf("%s: %w", resolver.name, resolveErr)) + report(reporter, "event=bootstrap_dns provider=%s result=failed reason=%s", resolver.name, errorClass(resolveErr)) + } + return "", fmt.Errorf("all bootstrap DoH resolvers failed: %w", errors.Join(failures...)) +} + +func resolveProxyWithResolver(query []byte, id uint16, resolver bootstrapResolver, protector Protector, reporter Reporter) (string, error) { dialer := net.Dialer{ - Timeout: 10 * time.Second, + Timeout: 6 * time.Second, Control: func(_, _ string, raw syscall.RawConn) error { var protectErr error if err := raw.Control(func(fd uintptr) { @@ -39,21 +66,21 @@ func ResolveProxy(host string, protector Protector, reporter Reporter) (string, } transport := &http.Transport{ Proxy: nil, - TLSHandshakeTimeout: 10 * time.Second, + TLSHandshakeTimeout: 6 * time.Second, MaxResponseHeaderBytes: 64 * 1024, DialContext: func(ctx context.Context, _, _ string) (net.Conn, error) { - return dialer.DialContext(ctx, "tcp", bootstrapDoHIP) + return dialer.DialContext(ctx, "tcp", resolver.address) }, } defer transport.CloseIdleConnections() - client := &http.Client{Transport: transport, Timeout: 15 * time.Second} - request, err := http.NewRequest(http.MethodPost, bootstrapDoHURL, bytes.NewReader(query)) + client := &http.Client{Transport: transport, Timeout: 8 * time.Second} + request, err := http.NewRequest(http.MethodPost, resolver.url, bytes.NewReader(query)) if err != nil { return "", err } request.Header.Set("Accept", "application/dns-message") request.Header.Set("Content-Type", "application/dns-message") - report(reporter, "event=bootstrap_dns stage=request result=started transport=protected_doh") + report(reporter, "event=bootstrap_dns stage=request result=started transport=protected_doh provider=%s", resolver.name) response, err := client.Do(request) if err != nil { return "", fmt.Errorf("bootstrap DoH request: %w", err) @@ -70,7 +97,7 @@ func ResolveProxy(host string, protector Protector, reporter Reporter) (string, if err != nil { return "", err } - report(reporter, "event=bootstrap_dns stage=response result=success family=ipv4") + report(reporter, "event=bootstrap_dns stage=response result=success family=ipv4 provider=%s", resolver.name) return ip, nil } diff --git a/native/mobile/bootstrap_test.go b/native/mobile/bootstrap_test.go new file mode 100644 index 0000000..3fb44ad --- /dev/null +++ b/native/mobile/bootstrap_test.go @@ -0,0 +1,35 @@ +package mobile + +import ( + "net" + "net/url" + "testing" +) + +func TestBootstrapResolversUseDirectHTTPSAddresses(t *testing.T) { + if len(bootstrapResolvers) < 3 { + t.Fatalf("bootstrap resolver count = %d, want failover", len(bootstrapResolvers)) + } + for _, resolver := range bootstrapResolvers { + parsed, err := url.Parse(resolver.url) + if err != nil || parsed.Scheme != "https" || parsed.Hostname() == "" { + t.Fatalf("invalid resolver URL %q", resolver.url) + } + host, port, err := net.SplitHostPort(resolver.address) + if err != nil || net.ParseIP(host) == nil || port != "443" { + t.Fatalf("invalid direct resolver address %q", resolver.address) + } + } +} + +func TestBootstrapIncludesYandexRedundancy(t *testing.T) { + count := 0 + for _, resolver := range bootstrapResolvers { + if resolver.name == "yandex_primary" || resolver.name == "yandex_secondary" { + count++ + } + } + if count != 2 { + t.Fatalf("Yandex resolver count = %d, want 2", count) + } +} diff --git a/native/mobile/config.go b/native/mobile/config.go index 5886edb..54a7c18 100644 --- a/native/mobile/config.go +++ b/native/mobile/config.go @@ -12,36 +12,37 @@ import ( ) type config struct { - Type string `json:"type"` - Host string `json:"host"` - DialHost string `json:"dialHost"` - Port int `json:"port"` - Username string `json:"username"` - Password string `json:"password"` - AllowInvalidProxyCertificate bool `json:"allowInvalidProxyCertificate"` - Profile string `json:"profile"` - CustomJA3 string `json:"customJa3"` - DoHURL string `json:"dohUrl"` - AllowIPv6 bool `json:"allowIpv6"` - BypassLocalNetworks bool `json:"bypassLocalNetworks"` - PrivateKey string `json:"privateKey"` - SSHProfile string `json:"sshProfile"` - TrustedHostKey string `json:"trustedHostKey"` - AcceptAnyHostKey bool `json:"acceptAnyHostKey"` - JumpHost string `json:"jumpHost"` - JumpDialHost string `json:"jumpDialHost"` - JumpPort int `json:"jumpPort"` - JumpUsername string `json:"jumpUsername"` - JumpPassword string `json:"jumpPassword"` - JumpPrivateKey string `json:"jumpPrivateKey"` - JumpTrustedHostKey string `json:"jumpTrustedHostKey"` - JumpAcceptAnyHostKey bool `json:"jumpAcceptAnyHostKey"` - SameJumpAuthentication bool `json:"sameJumpAuthentication"` - SSHAuthMode string `json:"sshAuthMode"` - SSHKeepaliveSeconds int `json:"sshKeepaliveSeconds"` - SSHMaxChannels int `json:"sshMaxChannels"` - SSHRotationMinutes int `json:"sshRotationMinutes"` - SSHRotationMB int `json:"sshRotationMb"` + Type string `json:"type"` + Host string `json:"host"` + DialHost string `json:"dialHost"` + Port int `json:"port"` + Username string `json:"username"` + Password string `json:"password"` + AllowInvalidProxyCertificate bool `json:"allowInvalidProxyCertificate"` + Profile string `json:"profile"` + CustomJA3 string `json:"customJa3"` + DoHURL string `json:"dohUrl"` + DoHFallbackURLs []string `json:"dohFallbackUrls"` + AllowIPv6 bool `json:"allowIpv6"` + BypassLocalNetworks bool `json:"bypassLocalNetworks"` + PrivateKey string `json:"privateKey"` + SSHProfile string `json:"sshProfile"` + TrustedHostKey string `json:"trustedHostKey"` + AcceptAnyHostKey bool `json:"acceptAnyHostKey"` + JumpHost string `json:"jumpHost"` + JumpDialHost string `json:"jumpDialHost"` + JumpPort int `json:"jumpPort"` + JumpUsername string `json:"jumpUsername"` + JumpPassword string `json:"jumpPassword"` + JumpPrivateKey string `json:"jumpPrivateKey"` + JumpTrustedHostKey string `json:"jumpTrustedHostKey"` + JumpAcceptAnyHostKey bool `json:"jumpAcceptAnyHostKey"` + SameJumpAuthentication bool `json:"sameJumpAuthentication"` + SSHAuthMode string `json:"sshAuthMode"` + SSHKeepaliveSeconds int `json:"sshKeepaliveSeconds"` + SSHMaxChannels int `json:"sshMaxChannels"` + SSHRotationMinutes int `json:"sshRotationMinutes"` + SSHRotationMB int `json:"sshRotationMb"` } func parseConfig(raw string) (config, error) { @@ -89,6 +90,11 @@ func parseConfig(raw string) (config, error) { if err := validateDoHURL(c.DoHURL); err != nil { return c, err } + for _, fallbackURL := range c.DoHFallbackURLs { + if err := validateDoHURL(fallbackURL); err != nil { + return c, fmt.Errorf("invalid fallback DoH URL: %w", err) + } + } if c.Type == "HTTPS" { if _, err := c.helloID(); err != nil { return c, err diff --git a/native/mobile/doh.go b/native/mobile/doh.go index 2ba95c8..b642b9c 100644 --- a/native/mobile/doh.go +++ b/native/mobile/doh.go @@ -40,19 +40,21 @@ type dnsReply struct { } type dohPacketConn struct { - config config - reporter Reporter - connect func(context.Context, string) (net.Conn, error) - url string - replies chan dnsReply - inFlight chan struct{} - closed chan struct{} - closeOnce sync.Once - deadlineMu sync.Mutex - readDeadline time.Time - client *http.Client - context context.Context - cancel context.CancelFunc + config config + reporter Reporter + connect func(context.Context, string) (net.Conn, error) + endpoints []string + endpointMu sync.Mutex + activeEndpoint int + replies chan dnsReply + inFlight chan struct{} + closed chan struct{} + closeOnce sync.Once + deadlineMu sync.Mutex + readDeadline time.Time + client *http.Client + context context.Context + cancel context.CancelFunc } func newDoHPacketConn(c config, reporter Reporter, connect func(context.Context, string) (net.Conn, error), endpoint string) *dohPacketConn { @@ -80,8 +82,14 @@ func newDoHPacketConnWithClient(c config, reporter Reporter, connect func(contex if limiter == nil { limiter = make(chan struct{}, 8) } + endpoints := []string{endpoint} + for _, fallback := range c.DoHFallbackURLs { + if fallback != endpoint { + endpoints = append(endpoints, fallback) + } + } return &dohPacketConn{ - config: c, reporter: reporter, connect: connect, url: endpoint, replies: make(chan dnsReply, 16), closed: make(chan struct{}), + config: c, reporter: reporter, connect: connect, endpoints: endpoints, replies: make(chan dnsReply, 16), closed: make(chan struct{}), inFlight: limiter, client: client, context: ctx, cancel: cancel, } } @@ -113,37 +121,76 @@ func (c *dohPacketConn) WriteTo(payload []byte, addr net.Addr) (int, error) { } go func() { defer func() { <-c.inFlight }() - req, err := http.NewRequestWithContext(c.context, http.MethodPost, c.url, bytes.NewReader(query)) - if err == nil { - req.Header.Set("Accept", "application/dns-message") - req.Header.Set("Content-Type", "application/dns-message") - var response *http.Response - response, err = c.client.Do(req) + var lastErr error + for _, candidate := range c.endpointOrder() { + body, err := c.queryEndpoint(candidate.url, query) if err == nil { - defer response.Body.Close() - if response.StatusCode != http.StatusOK { - err = fmt.Errorf("DoH returned %s", response.Status) - } else if !strings.HasPrefix(response.Header.Get("Content-Type"), "application/dns-message") { - err = errors.New("DoH returned an unexpected content type") - } else { - var body []byte - body, err = io.ReadAll(io.LimitReader(response.Body, 65536)) - if err == nil { - c.deliver(dnsReply{payload: body, addr: addr}) - } - } + c.setActiveEndpoint(candidate.index) + c.deliver(dnsReply{payload: body, addr: addr}) + report(c.reporter, "event=doh result=success provider_index=%d", candidate.index) + return } + lastErr = err + report(c.reporter, "event=doh result=failed provider_index=%d reason=%s", candidate.index, errorClass(err)) } - if err != nil { - report(c.reporter, "event=doh result=failed reason=%s", errorClass(err)) - c.deliver(dnsReply{addr: addr, err: err}) - } else { - report(c.reporter, "event=doh result=success") - } + c.deliver(dnsReply{addr: addr, err: fmt.Errorf("all DoH providers failed: %w", lastErr)}) }() return len(payload), nil } +type indexedDoHEndpoint struct { + index int + url string +} + +func (c *dohPacketConn) endpointOrder() []indexedDoHEndpoint { + c.endpointMu.Lock() + start := c.activeEndpoint + c.endpointMu.Unlock() + result := make([]indexedDoHEndpoint, 0, len(c.endpoints)) + for offset := range len(c.endpoints) { + index := (start + offset) % len(c.endpoints) + result = append(result, indexedDoHEndpoint{index: index, url: c.endpoints[index]}) + } + return result +} + +func (c *dohPacketConn) setActiveEndpoint(index int) { + c.endpointMu.Lock() + c.activeEndpoint = index + c.endpointMu.Unlock() +} + +func (c *dohPacketConn) queryEndpoint(endpoint string, query []byte) ([]byte, error) { + requestContext, cancel := context.WithTimeout(c.context, 3*time.Second) + defer cancel() + req, err := http.NewRequestWithContext(requestContext, http.MethodPost, endpoint, bytes.NewReader(query)) + if err != nil { + return nil, err + } + req.Header.Set("Accept", "application/dns-message") + req.Header.Set("Content-Type", "application/dns-message") + response, err := c.client.Do(req) + if err != nil { + return nil, err + } + defer response.Body.Close() + if response.StatusCode != http.StatusOK { + return nil, fmt.Errorf("DoH returned %s", response.Status) + } + if !strings.HasPrefix(response.Header.Get("Content-Type"), "application/dns-message") { + return nil, errors.New("DoH returned an unexpected content type") + } + body, err := io.ReadAll(io.LimitReader(response.Body, 65537)) + if err != nil { + return nil, err + } + if len(body) > 65536 { + return nil, errors.New("DoH response exceeds 64 KB") + } + return body, nil +} + func emptyAAAAResponse(query []byte) ([]byte, bool, error) { if len(query) < 12 || binary.BigEndian.Uint16(query[4:6]) != 1 { return nil, false, nil diff --git a/native/mobile/doh_test.go b/native/mobile/doh_test.go index eaf018a..05ac58f 100644 --- a/native/mobile/doh_test.go +++ b/native/mobile/doh_test.go @@ -1,7 +1,9 @@ package mobile import ( + "context" "encoding/binary" + "net" "testing" ) @@ -37,3 +39,36 @@ func TestEmptyAAAAResponseLeavesAQueryUntouched(t *testing.T) { t.Fatalf("unexpected A-query result: response=%x isAAAA=%v err=%v", response, isAAAA, err) } } + +func TestDoHEndpointOrderStartsWithLastSuccessfulProvider(t *testing.T) { + c := newDoHPacketConnWithClient( + config{DoHFallbackURLs: []string{"https://two.example/dns-query", "https://three.example/dns-query"}}, + nil, + func(context.Context, string) (net.Conn, error) { return nil, nil }, + "https://one.example/dns-query", + nil, + nil, + ) + defer c.Close() + c.setActiveEndpoint(1) + + order := c.endpointOrder() + if len(order) != 3 || order[0].index != 1 || order[1].index != 2 || order[2].index != 0 { + t.Fatalf("unexpected endpoint order: %#v", order) + } +} + +func TestDoHEndpointsIgnoreDuplicatePrimary(t *testing.T) { + c := newDoHPacketConnWithClient( + config{DoHFallbackURLs: []string{"https://one.example/dns-query", "https://two.example/dns-query"}}, + nil, + func(context.Context, string) (net.Conn, error) { return nil, nil }, + "https://one.example/dns-query", + nil, + nil, + ) + defer c.Close() + if len(c.endpoints) != 2 { + t.Fatalf("expected two unique endpoints, got %#v", c.endpoints) + } +} diff --git a/native/mobile/stats.go b/native/mobile/stats.go index 353004f..e2f07b8 100644 --- a/native/mobile/stats.go +++ b/native/mobile/stats.go @@ -12,6 +12,7 @@ const connectionSampleWindow = 50 type connectionStats struct { downloadBytes atomic.Uint64 uploadBytes atomic.Uint64 + totalOutcomes atomic.Uint64 mu sync.Mutex latencyMillis float64 @@ -31,11 +32,13 @@ type statsSnapshot struct { ProxyLatencyAtMillis int64 `json:"proxyLatencyAtMillis"` ConnectionErrorRate float64 `json:"connectionErrorRate"` ConnectionSamples int `json:"connectionSamples"` + TotalOutcomes uint64 `json:"totalOutcomes"` } func resetStats() { telemetry.downloadBytes.Store(0) telemetry.uploadBytes.Store(0) + telemetry.totalOutcomes.Store(0) telemetry.mu.Lock() telemetry.latencyMillis = 0 telemetry.latencySamples = 0 @@ -61,6 +64,7 @@ func recordProxyLatency(elapsed time.Duration) { } func recordConnectionOutcome(success bool) { + telemetry.totalOutcomes.Add(1) telemetry.mu.Lock() telemetry.outcomes[telemetry.outcomeNext] = success telemetry.outcomeNext = (telemetry.outcomeNext + 1) % connectionSampleWindow @@ -74,6 +78,7 @@ func snapshotStats() statsSnapshot { result := statsSnapshot{ DownloadBytes: telemetry.downloadBytes.Load(), UploadBytes: telemetry.uploadBytes.Load(), + TotalOutcomes: telemetry.totalOutcomes.Load(), } telemetry.mu.Lock() result.ProxyLatencyMillis = telemetry.latencyMillis diff --git a/native/mobile/stats_test.go b/native/mobile/stats_test.go index 4b7bb0a..8c9b5e5 100644 --- a/native/mobile/stats_test.go +++ b/native/mobile/stats_test.go @@ -14,6 +14,9 @@ func TestConnectionStatsRollingWindow(t *testing.T) { if snapshot.ConnectionSamples != connectionSampleWindow { t.Fatalf("samples = %d, want %d", snapshot.ConnectionSamples, connectionSampleWindow) } + if snapshot.TotalOutcomes != connectionSampleWindow+10 { + t.Fatalf("total outcomes = %d, want %d", snapshot.TotalOutcomes, connectionSampleWindow+10) + } if snapshot.ConnectionErrorRate != 0.5 { t.Fatalf("error rate = %f, want 0.5", snapshot.ConnectionErrorRate) } From ad60aa399a9b2ece9870bbb6a6d8b998a71e3140 Mon Sep 17 00:00:00 2001 From: Andrey Prokopyuk Date: Tue, 1 Sep 2026 16:43:40 +0300 Subject: [PATCH 28/41] Support more protocol options --- .../java/net/megaproxy487/MainActivity.kt | 21 ++ .../net/megaproxy487/vpn/BlockingDetection.kt | 18 +- .../megaproxy487/vpn/BootstrapAddressCache.kt | 4 + .../java/net/megaproxy487/vpn/ProxyCore.kt | 1 + .../net/megaproxy487/vpn/ProxyVpnService.kt | 45 +++- .../net/megaproxy487/vpn/VpnRuntimeState.kt | 26 +- app/src/main/res/values-ru/strings.xml | 3 + app/src/main/res/values/strings.xml | 3 + .../megaproxy487/vpn/BlockingDetectionTest.kt | 12 + .../megaproxy487/vpn/TransportProtocolTest.kt | 23 ++ native/go.mod | 4 +- native/go.sum | 10 +- native/mobile/dialer.go | 151 ++++++++++++ native/mobile/http2_connect.go | 224 ++++++++++++++++++ native/mobile/http2_connect_test.go | 125 ++++++++++ native/mobile/ssh_dialer.go | 50 +++- native/mobile/ssh_profile_test.go | 35 +++ native/mobile/test_connection.go | 3 +- 18 files changed, 733 insertions(+), 25 deletions(-) create mode 100644 app/src/test/java/net/megaproxy487/vpn/TransportProtocolTest.kt create mode 100644 native/mobile/http2_connect.go create mode 100644 native/mobile/http2_connect_test.go create mode 100644 native/mobile/ssh_profile_test.go diff --git a/app/src/main/java/net/megaproxy487/MainActivity.kt b/app/src/main/java/net/megaproxy487/MainActivity.kt index 5d77302..cef6f29 100644 --- a/app/src/main/java/net/megaproxy487/MainActivity.kt +++ b/app/src/main/java/net/megaproxy487/MainActivity.kt @@ -82,6 +82,7 @@ import net.megaproxy487.data.ConfigStore import net.megaproxy487.vpn.ProxyVpnService import net.megaproxy487.vpn.VpnConnectionState import net.megaproxy487.vpn.VpnRuntimeState +import net.megaproxy487.vpn.VpnTransportProtocol import net.megaproxy487.vpn.readAlwaysOnVpnStatus import net.megaproxy487.vpn.hasOtherProvider import net.megaproxy487.vpn.openAndroidVpnSettings @@ -136,6 +137,7 @@ private fun MainScreen(activity: Activity) { val runtimeLockdown by VpnRuntimeState.lockdown val runtimeProfileId by VpnRuntimeState.connectionProfileId val networkWarning by VpnRuntimeState.networkWarning + val transportProtocol by VpnRuntimeState.transportProtocol val store = remember { ConfigStore(activity) } var error by remember { mutableStateOf(null) } var profileMenuExpanded by remember { mutableStateOf(false) } @@ -288,6 +290,25 @@ private fun MainScreen(activity: Activity) { color = MaterialTheme.colorScheme.onSurfaceVariant, ) } + if (connected && transportProtocol != VpnTransportProtocol.UNKNOWN) { + val transportLabel = when (transportProtocol) { + VpnTransportProtocol.HTTP_1_1 -> stringResource(R.string.transport_http_1_1) + VpnTransportProtocol.HTTP_2 -> stringResource(R.string.transport_http_2) + VpnTransportProtocol.SSH_MULTIPLEXED -> stringResource(R.string.transport_ssh_multiplexed) + VpnTransportProtocol.UNKNOWN -> "" + } + Surface( + color = MaterialTheme.colorScheme.secondaryContainer, + contentColor = MaterialTheme.colorScheme.onSecondaryContainer, + shape = RoundedCornerShape(999.dp), + ) { + Text( + transportLabel, + style = MaterialTheme.typography.labelLarge, + modifier = Modifier.padding(horizontal = 12.dp, vertical = 6.dp), + ) + } + } } } Spacer(Modifier.height(4.dp)) diff --git a/app/src/main/java/net/megaproxy487/vpn/BlockingDetection.kt b/app/src/main/java/net/megaproxy487/vpn/BlockingDetection.kt index 86943c5..0f88bbd 100644 --- a/app/src/main/java/net/megaproxy487/vpn/BlockingDetection.kt +++ b/app/src/main/java/net/megaproxy487/vpn/BlockingDetection.kt @@ -1,13 +1,27 @@ package net.megaproxy487.vpn -enum class BlockingSignal { TCP_TIMEOUT, HANDSHAKE_TIMEOUT, CONNECTION_RESET, SILENT_DROP } +enum class BlockingSignal { + TCP_TIMEOUT, + TLS_HANDSHAKE_TIMEOUT, + TLS_HANDSHAKE_RESET, + CONNECT_RESPONSE_TIMEOUT, + CONNECT_RESPONSE_RESET, + SSH_HANDSHAKE_TIMEOUT, + CONNECTION_RESET, + SILENT_DROP, +} object BlockingDetection { fun classify(message: String): BlockingSignal? { val value = message.lowercase() if (listOf("authenticate", "credentials", "host_key", "certificate", "x509", "invalid ", "refused").any(value::contains)) return null return when { - "handshake" in value && "timeout" in value -> BlockingSignal.HANDSHAKE_TIMEOUT + "stage=tls_handshake" in value && "reason=timeout" in value -> BlockingSignal.TLS_HANDSHAKE_TIMEOUT + "stage=tls_handshake" in value && ("reason=reset" in value || "reason=eof" in value) -> BlockingSignal.TLS_HANDSHAKE_RESET + "stage=connect_response" in value && "reason=timeout" in value -> BlockingSignal.CONNECT_RESPONSE_TIMEOUT + "stage=connect_response" in value && ("reason=reset" in value || "reason=eof" in value) -> BlockingSignal.CONNECT_RESPONSE_RESET + "ssh" in value && "handshake" in value && ("timeout" in value || "timed out" in value) -> BlockingSignal.SSH_HANDSHAKE_TIMEOUT + "handshake" in value && "timeout" in value -> BlockingSignal.TLS_HANDSHAKE_TIMEOUT "reset" in value || "broken pipe" in value -> BlockingSignal.CONNECTION_RESET "i/o timeout" in value || "timed out" in value -> BlockingSignal.TCP_TIMEOUT "unexpected eof" in value || "silent" in value -> BlockingSignal.SILENT_DROP diff --git a/app/src/main/java/net/megaproxy487/vpn/BootstrapAddressCache.kt b/app/src/main/java/net/megaproxy487/vpn/BootstrapAddressCache.kt index f7c3dd9..003fdfa 100644 --- a/app/src/main/java/net/megaproxy487/vpn/BootstrapAddressCache.kt +++ b/app/src/main/java/net/megaproxy487/vpn/BootstrapAddressCache.kt @@ -25,6 +25,10 @@ class BootstrapAddressCache(context: Context) { ).apply() } + fun remove(host: String) { + preferences.edit().remove(key(host)).apply() + } + private fun key(host: String): String = MessageDigest.getInstance("SHA-256") .digest(host.trim().lowercase().toByteArray(Charsets.UTF_8)) .joinToString("") { "%02x".format(it) } diff --git a/app/src/main/java/net/megaproxy487/vpn/ProxyCore.kt b/app/src/main/java/net/megaproxy487/vpn/ProxyCore.kt index 92cb6c2..e1517db 100644 --- a/app/src/main/java/net/megaproxy487/vpn/ProxyCore.kt +++ b/app/src/main/java/net/megaproxy487/vpn/ProxyCore.kt @@ -110,6 +110,7 @@ class NativeProxyCore( val reporter = callback(reporterType, "report") { val message = it!![0] as String diagnostics(message) + VpnRuntimeState.observeDiagnostic(message) if ("SSH_HOST_KEY_" in message || "dpi_hint=possible" in message) status(message) null } diff --git a/app/src/main/java/net/megaproxy487/vpn/ProxyVpnService.kt b/app/src/main/java/net/megaproxy487/vpn/ProxyVpnService.kt index 82a5407..b26623c 100644 --- a/app/src/main/java/net/megaproxy487/vpn/ProxyVpnService.kt +++ b/app/src/main/java/net/megaproxy487/vpn/ProxyVpnService.kt @@ -43,6 +43,7 @@ class ProxyVpnService : VpnService() { private val probableFailureCounts = ConcurrentHashMap() private val probableFailureTimes = ConcurrentHashMap() private val attemptedFailoverProfiles = ConcurrentHashMap.newKeySet() + private val freshDnsRecoveryProfiles = ConcurrentHashMap.newKeySet() private val underlyingCapabilities = ConcurrentHashMap() @Volatile private var underlyingNetwork: Network? = null @Volatile private var networkCallbackRegistered = false @@ -130,6 +131,7 @@ class ProxyVpnService : VpnService() { if (intent?.action == ACTION_START_MANUAL) { store.setConnectionProfile(store.activeProfileId()) probableFailureCounts.clear(); probableFailureTimes.clear(); attemptedFailoverProfiles.clear(); failoverNotice = null + freshDnsRecoveryProfiles.clear() connectionBlockedForAction = false store.setFailoverState(false, null) VpnRuntimeState.updateNetworkWarning(null) @@ -329,24 +331,26 @@ class ProxyVpnService : VpnService() { diagnostics("TUN established with IPv4, IPv6 and intercepted DNS") val proxyCore = NativeProxyCore(this, diagnostics) val addressCache = BootstrapAddressCache(this) - val proxyIp = proxyCore.resolveProxy(storedConfig.host) { message -> - failureDetail = message - getSystemService(NotificationManager::class.java).notify(NOTIFICATION_ID, notification(message)) - }?.also { addressCache.put(storedConfig.host, it) } ?: addressCache.get(storedConfig.host)?.also { - diagnostics("event=bootstrap_dns result=cached_fallback age_limit_days=7") - } ?: run { + fun resolveHost(host: String, target: String): String? { + if (!testOnly) { + addressCache.get(host)?.let { + diagnostics("event=bootstrap_dns result=cache_hit target=$target age_limit_days=7") + return it + } + } + return proxyCore.resolveProxy(host) { message -> + failureDetail = message + getSystemService(NotificationManager::class.java).notify(NOTIFICATION_ID, notification(message)) + }?.also { addressCache.put(host, it) } + } + val proxyIp = resolveHost(storedConfig.host, "proxy") ?: run { establishedTunnel.close() if (!isStartCurrent(generation)) return false handleStartFailure(testOnly, "Proxy bootstrap DNS failed", failureDetail, promptProfileId) return false } val jumpIp = if (storedConfig.type == net.megaproxy487.model.ProxyType.SSH_JUMP) { - proxyCore.resolveProxy(storedConfig.jumpHost) { message -> - failureDetail = message - getSystemService(NotificationManager::class.java).notify(NOTIFICATION_ID, notification(message)) - }?.also { addressCache.put(storedConfig.jumpHost, it) } ?: addressCache.get(storedConfig.jumpHost)?.also { - diagnostics("event=bootstrap_dns result=cached_fallback target=jump age_limit_days=7") - } ?: run { + resolveHost(storedConfig.jumpHost, "jump") ?: run { establishedTunnel.close() if (!isStartCurrent(generation)) return false handleStartFailure(testOnly, "Jump host bootstrap DNS failed", failureDetail, promptProfileId) @@ -457,6 +461,23 @@ class ProxyVpnService : VpnService() { val settings = store.globalConnectionSettings() val warning = "Proxy probably blocked (${signal.name.lowercase().replace('_', ' ')})." VpnRuntimeState.updateNetworkWarning(warning) + // DNS failover may move a hostname away from a filtered or stale address. Give + // the current profile one fresh resolution attempt before changing exit IP or + // location through profile failover. + if (freshDnsRecoveryProfiles.add(profileId)) { + store.profile(profileId)?.config?.let { profile -> + BootstrapAddressCache(this).apply { + remove(profile.host) + if (profile.type == net.megaproxy487.model.ProxyType.SSH_JUMP) remove(profile.jumpHost) + } + } + val notice = "$warning Retrying this profile with fresh encrypted DNS before failover." + VpnRuntimeState.updateNetworkWarning(notice) + DiagnosticLog.add("event=blocking_recovery action=refresh_dns profile_type=${store.profile(profileId)?.config?.type?.name?.lowercase() ?: "unknown"}") + getSystemService(NotificationManager::class.java).notify(NOTIFICATION_ID, notification(notice)) + if (tunnel != null) stopTunnel(removeForeground = false) + return + } if (settings.failoverMode == FailoverMode.DISABLED) { val notice = "$warning Failover is disabled; the connection may remain unavailable." VpnRuntimeState.updateNetworkWarning(notice) diff --git a/app/src/main/java/net/megaproxy487/vpn/VpnRuntimeState.kt b/app/src/main/java/net/megaproxy487/vpn/VpnRuntimeState.kt index 2a6f4d4..8c29564 100644 --- a/app/src/main/java/net/megaproxy487/vpn/VpnRuntimeState.kt +++ b/app/src/main/java/net/megaproxy487/vpn/VpnRuntimeState.kt @@ -6,6 +6,17 @@ import androidx.compose.runtime.State import androidx.compose.runtime.mutableStateOf enum class VpnConnectionState { DISCONNECTED, CONNECTING, CONNECTED } +enum class VpnTransportProtocol { UNKNOWN, HTTP_1_1, HTTP_2, SSH_MULTIPLEXED } + +fun transportProtocolFromDiagnostic(message: String): VpnTransportProtocol? = when { + "event=connection" in message && "protocol=http2" in message && + "stage=tunnel" in message && "result=established" in message -> VpnTransportProtocol.HTTP_2 + "event=connection" in message && "mode=proxy" in message && + "stage=tunnel" in message && "result=established" in message -> VpnTransportProtocol.HTTP_1_1 + "event=transport_capability" in message && "transport=ssh" in message && + "multiplexed=true" in message -> VpnTransportProtocol.SSH_MULTIPLEXED + else -> null +} object VpnRuntimeState { private val mainHandler = Handler(Looper.getMainLooper()) @@ -21,10 +32,21 @@ object VpnRuntimeState { val connectionProfileId: State = mutableConnectionProfileId private val mutableNetworkWarning = mutableStateOf(null) val networkWarning: State = mutableNetworkWarning + private val mutableTransportProtocol = mutableStateOf(VpnTransportProtocol.UNKNOWN) + val transportProtocol: State = mutableTransportProtocol fun update(value: VpnConnectionState) { - if (Looper.myLooper() == Looper.getMainLooper()) mutableConnection.value = value - else mainHandler.post { mutableConnection.value = value } + val update = { + mutableConnection.value = value + if (value != VpnConnectionState.CONNECTED) mutableTransportProtocol.value = VpnTransportProtocol.UNKNOWN + } + if (Looper.myLooper() == Looper.getMainLooper()) update() else mainHandler.post(update) + } + + fun observeDiagnostic(message: String) { + val protocol = transportProtocolFromDiagnostic(message) ?: return + val update = { mutableTransportProtocol.value = protocol } + if (Looper.myLooper() == Looper.getMainLooper()) update() else mainHandler.post(update) } fun updateNetworkWarning(value: String?) { diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 43fb48e..e2b0fec 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -52,4 +52,7 @@ При следующем подключении Очистить Повторить проверку + HTTP/1.1 + HTTP/2, мультиплексирование + SSH, мультиплексирование diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 5166777..4b2ffd0 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -53,4 +53,7 @@ Next connection Clear Run checks again + HTTP/1.1 + HTTP/2 multiplexed + SSH multiplexed diff --git a/app/src/test/java/net/megaproxy487/vpn/BlockingDetectionTest.kt b/app/src/test/java/net/megaproxy487/vpn/BlockingDetectionTest.kt index a92ee18..da3c6d0 100644 --- a/app/src/test/java/net/megaproxy487/vpn/BlockingDetectionTest.kt +++ b/app/src/test/java/net/megaproxy487/vpn/BlockingDetectionTest.kt @@ -8,6 +8,18 @@ class BlockingDetectionTest { @Test fun classifiesTimeoutAndReset() { assertEquals(BlockingSignal.TCP_TIMEOUT, BlockingDetection.classify("dial tcp: i/o timeout")) assertEquals(BlockingSignal.CONNECTION_RESET, BlockingDetection.classify("connection reset by peer")) + assertEquals( + BlockingSignal.TLS_HANDSHAKE_RESET, + BlockingDetection.classify("event=connection stage=tls_handshake result=failed reason=reset"), + ) + assertEquals( + BlockingSignal.CONNECT_RESPONSE_TIMEOUT, + BlockingDetection.classify("event=connection stage=connect_response result=failed reason=timeout"), + ) + assertEquals( + BlockingSignal.SSH_HANDSHAKE_TIMEOUT, + BlockingDetection.classify("SSH destination handshake: i/o timeout"), + ) } @Test fun doesNotTreatAuthenticationOrCertificateErrorsAsBlocking() { diff --git a/app/src/test/java/net/megaproxy487/vpn/TransportProtocolTest.kt b/app/src/test/java/net/megaproxy487/vpn/TransportProtocolTest.kt new file mode 100644 index 0000000..07c2a49 --- /dev/null +++ b/app/src/test/java/net/megaproxy487/vpn/TransportProtocolTest.kt @@ -0,0 +1,23 @@ +package net.megaproxy487.vpn + +import org.junit.Assert.assertEquals +import org.junit.Assert.assertNull +import org.junit.Test + +class TransportProtocolTest { + @Test fun recognizesEstablishedTransportsOnly() { + assertEquals( + VpnTransportProtocol.HTTP_2, + transportProtocolFromDiagnostic("event=connection mode=proxy protocol=http2 stage=tunnel result=established"), + ) + assertEquals( + VpnTransportProtocol.HTTP_1_1, + transportProtocolFromDiagnostic("event=connection mode=proxy stage=tunnel result=established"), + ) + assertEquals( + VpnTransportProtocol.SSH_MULTIPLEXED, + transportProtocolFromDiagnostic("event=transport_capability transport=ssh multiplexed=true"), + ) + assertNull(transportProtocolFromDiagnostic("event=transport_capability transport=https_proxy h2_negotiated=true")) + } +} diff --git a/native/go.mod b/native/go.mod index 34f3aaa..1b86f91 100644 --- a/native/go.mod +++ b/native/go.mod @@ -5,6 +5,8 @@ go 1.26.3 require ( github.com/refraction-networking/utls v1.8.2 github.com/xjasonlyu/tun2socks/v2 v2.7.0 + golang.org/x/crypto v0.55.0 + golang.org/x/net v0.58.0 gvisor.dev/gvisor v0.0.0-20260701204157-69c2d17aea96 ) @@ -16,12 +18,12 @@ require ( go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.28.0 // indirect - golang.org/x/crypto v0.53.0 // indirect golang.org/x/exp v0.0.0-20260611194520-c48552f49976 // indirect golang.org/x/mobile v0.0.0-20260821190718-4776eadac327 // indirect golang.org/x/mod v0.39.0 // indirect golang.org/x/sync v0.22.0 // indirect golang.org/x/sys v0.47.0 // indirect + golang.org/x/text v0.41.0 // indirect golang.org/x/time v0.15.0 // indirect golang.org/x/tools v0.49.0 // indirect ) diff --git a/native/go.sum b/native/go.sum index 74718fe..52055f8 100644 --- a/native/go.sum +++ b/native/go.sum @@ -28,18 +28,24 @@ go.uber.org/zap v1.28.0 h1:IZzaP1Fv73/T/pBMLk4VutPl36uNC+OSUh3JLG3FIjo= go.uber.org/zap v1.28.0/go.mod h1:rDLpOi171uODNm/mxFcuYWxDsqWSAVkFdX4XojSKg/Q= go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= -golang.org/x/crypto v0.53.0 h1:QZ4Muo8THX6CizN2vPPd5fBGHyogrdK9fG4wLPFUsto= -golang.org/x/crypto v0.53.0/go.mod h1:DNLU434OwVakk9PzuwV8w62mAJpRJL3vsgcfp4Qnsio= +golang.org/x/crypto v0.55.0 h1:+KWHjbgOaAQ66dh/YlkZKHlz9ZUlq61AFirAR9ntP8M= +golang.org/x/crypto v0.55.0/go.mod h1:uq0V9dE/fzQuJtbnL+2EhWOE63vo164FY8xqEnV9xis= golang.org/x/exp v0.0.0-20260611194520-c48552f49976 h1:X8Hz2ImujgbmetVuW+w2YkyZChE3cBpZi2P158rTG9M= golang.org/x/exp v0.0.0-20260611194520-c48552f49976/go.mod h1:vnf4pv9iKZXY58sQE1L86zmNWJ4159e1RkcWiLCkeEY= golang.org/x/mobile v0.0.0-20260821190718-4776eadac327 h1:D/wiQ6AoTYjDtSD0HMPhU8O40NUP8EF0UmDhIYCnG4I= golang.org/x/mobile v0.0.0-20260821190718-4776eadac327/go.mod h1:D9q8rgXu13Q3uuM+Vuy6F/DG1WF/giTPLtqQ9on5B1M= golang.org/x/mod v0.39.0 h1:UF5zwQdCRRUpHfyPwr7d4UrGiVeldIsogtzWVnczL74= golang.org/x/mod v0.39.0/go.mod h1:bvIbwjQ0HUFFf5AKukeeYQG4ZBUG9yxQbR9aEweIwYY= +golang.org/x/net v0.58.0 h1:ynWG7rqYi4ccpTEuPZ2QGWHktVEM9DMCj9yzDE0Q7To= +golang.org/x/net v0.58.0/go.mod h1:YwCddHnFlT7eLQqVprV19OnhLGtc5xOKgE0RyqgfWAU= golang.org/x/sync v0.22.0 h1:SZjpbeLmrCk4xhRSZFNZW5gFUeCeFgjekvI/+gfScek= golang.org/x/sync v0.22.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= golang.org/x/sys v0.47.0 h1:o7XGOvZQCADBQQ4Y7VNq2dRWQR7JmOUW8Kxx4ZsNgWs= golang.org/x/sys v0.47.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/term v0.45.0 h1:NwWyBmoJCbfTHpxrWoZ9C6/VxOf7ic219I8xZZFdrf0= +golang.org/x/term v0.45.0/go.mod h1:9aqxs0blBcrm/n0L9QW0aRVD+ktan8ssZromtqJC43w= +golang.org/x/text v0.41.0 h1:vz/seA0lnX87Othu2f/0L24RcgrXD9/YFTSuGjj3rH8= +golang.org/x/text v0.41.0/go.mod h1:jvf1O8ajNzZqhSrQBPbutR/EB83Cc0CFrezNQIwbb5M= golang.org/x/time v0.15.0 h1:bbrp8t3bGUeFOx08pvsMYRTCVSMk89u4tKbNOZbp88U= golang.org/x/time v0.15.0/go.mod h1:Y4YMaQmXwGQZoFaVFk4YpCt4FLQMYKZe9oeV/f4MSno= golang.org/x/tools v0.49.0 h1:3NI7VXzL9+1WZD52Dx2ttoPwD5DWrFGpl9mFZDlmisI= diff --git a/native/mobile/dialer.go b/native/mobile/dialer.go index ccfbee4..ea774e7 100644 --- a/native/mobile/dialer.go +++ b/native/mobile/dialer.go @@ -9,6 +9,7 @@ import ( "io" "net" "net/http" + "strings" "sync" "sync/atomic" "syscall" @@ -32,6 +33,8 @@ type httpsConnectDialer struct { dohClient *http.Client dohInFlight chan struct{} connections chan struct{} + h2Session *http2ConnectSession + h2Disabled bool } func (d *httpsConnectDialer) Close() error { @@ -41,6 +44,10 @@ func (d *httpsConnectDialer) Close() error { d.dohClient.CloseIdleConnections() d.dohClient = nil } + if d.h2Session != nil { + _ = d.h2Session.close() + d.h2Session = nil + } return nil } @@ -89,6 +96,19 @@ func (d *httpsConnectDialer) connectTarget(ctx context.Context, target string) ( report(d.reporter, "event=connection conn=%d mode=direct stage=tcp_connect result=success elapsed_ms=%d", connectionID, time.Since(directStarted).Milliseconds()) return &diagnosticConn{Conn: connection, connectionID: connectionID, reporter: d.reporter}, nil } + if session := d.currentHTTP2Session(); session != nil { + connection, err := d.openHTTP2Tunnel(ctx, session, target, connectionID, totalStarted, true) + if err == nil { + return connection, nil + } + if shouldFallbackToHTTP1(err) { + d.disableHTTP2(session) + report(d.reporter, "event=http2_session result=unsupported action=fallback_http1") + return d.connectTarget(ctx, target) + } + d.invalidateHTTP2Session(session) + report(d.reporter, "event=http2_session result=stale action=reconnect reason=%s", errorClass(err)) + } report(d.reporter, "event=connection conn=%d mode=proxy stage=tcp_connect result=started fingerprint=%s", connectionID, d.config.Profile) dialStarted := time.Now() raw, err := d.protectedDialer().DialContext(ctx, "tcp", d.config.address()) @@ -126,6 +146,12 @@ func (d *httpsConnectDialer) connectTarget(ctx context.Context, target string) ( return nil, err } } + if d.isHTTP2Disabled() { + if err := forceHTTP11ALPN(uconn); err != nil { + recordConnectionOutcome(false) + return nil, fmt.Errorf("configure HTTP/1.1 ALPN fallback: %w", err) + } + } tlsStarted := time.Now() handshakeContext, cancelHandshake := context.WithTimeout(ctx, 15*time.Second) err = uconn.HandshakeContext(handshakeContext) @@ -139,6 +165,24 @@ func (d *httpsConnectDialer) connectTarget(ctx context.Context, target string) ( } tlsState := uconn.ConnectionState() report(d.reporter, "event=connection conn=%d mode=proxy stage=tls_handshake result=success elapsed_ms=%d version=0x%04x cipher=0x%04x alpn=%q certificates=%d", connectionID, time.Since(tlsStarted).Milliseconds(), tlsState.Version, tlsState.CipherSuite, tlsState.NegotiatedProtocol, len(tlsState.PeerCertificates)) + h2Negotiated := tlsState.NegotiatedProtocol == "h2" + report(d.reporter, "event=transport_capability transport=https_proxy tls_version=0x%04x outer_alpn=%s h2_negotiated=%t h2_connect_supported=true connect_protocol=%s session_resumed=%t", tlsState.Version, normalizedALPN(tlsState.NegotiatedProtocol), h2Negotiated, connectProtocol(h2Negotiated), tlsState.DidResume) + if h2Negotiated { + session, sessionErr := newHTTP2ConnectSession(uconn) + if sessionErr != nil { + recordConnectionOutcome(false) + return nil, fmt.Errorf("initialize HTTP/2 proxy session: %w", sessionErr) + } + closeOnError = false // The HTTP/2 session now owns the outer TLS connection. + session = d.installHTTP2Session(session) + connection, connectErr := d.openHTTP2Tunnel(ctx, session, target, connectionID, totalStarted, false) + if shouldFallbackToHTTP1(connectErr) { + d.disableHTTP2(session) + report(d.reporter, "event=http2_session result=unsupported action=fallback_http1") + return d.connectTarget(ctx, target) + } + return connection, connectErr + } deadline := time.Now().Add(15 * time.Second) if contextDeadline, ok := ctx.Deadline(); ok && contextDeadline.Before(deadline) { deadline = contextDeadline @@ -185,6 +229,113 @@ func (d *httpsConnectDialer) connectTarget(ctx context.Context, target string) ( return &diagnosticConn{Conn: connection, connectionID: connectionID, reporter: d.reporter}, nil } +type http2ConnectStatusError struct{ status int } + +func (e *http2ConnectStatusError) Error() string { + return fmt.Sprintf("HTTP/2 proxy CONNECT returned status %d", e.status) +} + +func shouldFallbackToHTTP1(err error) bool { + var statusError *http2ConnectStatusError + return errors.As(err, &statusError) && (statusError.status == http.StatusMethodNotAllowed || statusError.status == http.StatusNotImplemented) +} + +func connectProtocol(h2 bool) string { + if h2 { + return "http2" + } + return "http1_1" +} + +func (d *httpsConnectDialer) currentHTTP2Session() *http2ConnectSession { + d.cacheMu.Lock() + defer d.cacheMu.Unlock() + if d.h2Session != nil && d.h2Session.canTakeRequest() { + return d.h2Session + } + return nil +} + +func (d *httpsConnectDialer) installHTTP2Session(candidate *http2ConnectSession) *http2ConnectSession { + d.cacheMu.Lock() + defer d.cacheMu.Unlock() + if d.h2Session != nil && d.h2Session.canTakeRequest() { + _ = candidate.close() + return d.h2Session + } + if d.h2Session != nil { + _ = d.h2Session.close() + } + d.h2Session = candidate + report(d.reporter, "event=http2_session result=established multiplexed=true") + return candidate +} + +func (d *httpsConnectDialer) invalidateHTTP2Session(session *http2ConnectSession) { + d.cacheMu.Lock() + defer d.cacheMu.Unlock() + if d.h2Session == session { + d.h2Session = nil + _ = session.close() + } +} + +func (d *httpsConnectDialer) disableHTTP2(session *http2ConnectSession) { + d.cacheMu.Lock() + defer d.cacheMu.Unlock() + d.h2Disabled = true + if d.h2Session == session { + d.h2Session = nil + _ = session.close() + } +} + +func (d *httpsConnectDialer) isHTTP2Disabled() bool { + d.cacheMu.Lock() + defer d.cacheMu.Unlock() + return d.h2Disabled +} + +func (d *httpsConnectDialer) openHTTP2Tunnel(ctx context.Context, session *http2ConnectSession, target string, connectionID uint64, totalStarted time.Time, reused bool) (net.Conn, error) { + auth := "Basic " + base64.StdEncoding.EncodeToString([]byte(d.config.Username+":"+d.config.Password)) + started := time.Now() + tunnel, status, err := session.openTunnel(ctx, target, auth) + if err != nil { + recordConnectionOutcome(false) + if status != 0 { + report(d.reporter, "event=connection conn=%d mode=proxy protocol=http2 stage=connect_response result=rejected status=%d status_class=%dxx reused_session=%t", connectionID, status, status/100, reused) + return nil, &http2ConnectStatusError{status: status} + } + report(d.reporter, "event=connection conn=%d mode=proxy protocol=http2 stage=connect_response result=failed reason=%s reused_session=%t", connectionID, errorClass(err), reused) + return nil, fmt.Errorf("HTTP/2 proxy CONNECT: %w", err) + } + recordProxyLatency(time.Since(started)) + recordConnectionOutcome(true) + report(d.reporter, "event=connection conn=%d mode=proxy protocol=http2 stage=tunnel result=established stream_multiplexed=true reused_session=%t total_ms=%d", connectionID, reused, time.Since(totalStarted).Milliseconds()) + return &diagnosticConn{Conn: tunnel, connectionID: connectionID, reporter: d.reporter}, nil +} + +func normalizedALPN(value string) string { + if value == "" { + return "none" + } + return strings.ReplaceAll(value, " ", "_") +} + +func forceHTTP11ALPN(connection *tls.UConn) error { + if err := connection.BuildHandshakeState(); err != nil { + return err + } + for _, extension := range connection.Extensions { + if alpn, ok := extension.(*tls.ALPNExtension); ok { + alpn.AlpnProtocols = []string{"http/1.1"} + return nil + } + } + connection.Extensions = append(connection.Extensions, &tls.ALPNExtension{AlpnProtocols: []string{"http/1.1"}}) + return nil +} + func (d *httpsConnectDialer) clientSessionCache() tls.ClientSessionCache { d.cacheMu.Lock() defer d.cacheMu.Unlock() diff --git a/native/mobile/http2_connect.go b/native/mobile/http2_connect.go new file mode 100644 index 0000000..2cff3c5 --- /dev/null +++ b/native/mobile/http2_connect.go @@ -0,0 +1,224 @@ +package mobile + +import ( + "context" + "errors" + "io" + "net" + "net/http" + "net/url" + "os" + "sync" + "time" + + "golang.org/x/net/http2" +) + +type http2ClientConn interface { + RoundTrip(*http.Request) (*http.Response, error) + CanTakeNewRequest() bool + Close() error +} + +type http2ConnectSession struct { + client http2ClientConn + raw net.Conn +} + +func newHTTP2ConnectSession(raw net.Conn) (*http2ConnectSession, error) { + transport := &http2.Transport{ + ReadIdleTimeout: 45 * time.Second, + PingTimeout: 10 * time.Second, + } + client, err := transport.NewClientConn(raw) + if err != nil { + return nil, err + } + return &http2ConnectSession{client: client, raw: raw}, nil +} + +func (s *http2ConnectSession) canTakeRequest() bool { + return s != nil && s.client != nil && s.client.CanTakeNewRequest() +} + +func (s *http2ConnectSession) close() error { + if s == nil { + return nil + } + if s.client != nil { + _ = s.client.Close() + } + if s.raw != nil { + return s.raw.Close() + } + return nil +} + +func (s *http2ConnectSession) openTunnel(ctx context.Context, target, authorization string) (net.Conn, int, error) { + reader, writer := io.Pipe() + streamContext, cancelStream := context.WithCancel(context.Background()) + request := &http.Request{ + Method: http.MethodConnect, + URL: &url.URL{Scheme: "https", Host: target}, + Host: target, + Header: make(http.Header), + Body: reader, + ContentLength: -1, + } + request = request.WithContext(streamContext) + request.Header.Set("Proxy-Authorization", authorization) + + type result struct { + response *http.Response + err error + } + resultChannel := make(chan result, 1) + go func() { + response, err := s.client.RoundTrip(request) + select { + case resultChannel <- result{response: response, err: err}: + case <-streamContext.Done(): + if response != nil { + _ = response.Body.Close() + } + } + }() + + var outcome result + select { + case outcome = <-resultChannel: + case <-ctx.Done(): + cancelStream() + _ = writer.CloseWithError(ctx.Err()) + _ = reader.CloseWithError(ctx.Err()) + return nil, 0, ctx.Err() + } + if outcome.err != nil { + cancelStream() + _ = writer.CloseWithError(outcome.err) + _ = reader.CloseWithError(outcome.err) + return nil, 0, outcome.err + } + if outcome.response.StatusCode != http.StatusOK { + _ = outcome.response.Body.Close() + cancelStream() + _ = writer.Close() + _ = reader.Close() + return nil, outcome.response.StatusCode, errors.New("HTTP/2 proxy rejected CONNECT") + } + return newHTTP2StreamConn(s.raw, outcome.response.Body, writer, cancelStream), outcome.response.StatusCode, nil +} + +// http2StreamConn exposes one HTTP/2 CONNECT stream as a net.Conn. A deadline +// closes only this stream, never the shared outer TLS connection. +type http2StreamConn struct { + raw net.Conn + reader io.ReadCloser + writer *io.PipeWriter + cancel context.CancelFunc + closeOnce sync.Once + deadlineMu sync.Mutex + readTimer *time.Timer + writeTimer *time.Timer + readExpired bool + writeExpired bool +} + +func newHTTP2StreamConn(raw net.Conn, reader io.ReadCloser, writer *io.PipeWriter, cancel context.CancelFunc) *http2StreamConn { + return &http2StreamConn{raw: raw, reader: reader, writer: writer, cancel: cancel} +} + +func (c *http2StreamConn) Read(p []byte) (int, error) { + n, err := c.reader.Read(p) + c.deadlineMu.Lock() + expired := c.readExpired + c.deadlineMu.Unlock() + if expired && err != nil { + return n, os.ErrDeadlineExceeded + } + return n, err +} + +func (c *http2StreamConn) Write(p []byte) (int, error) { + n, err := c.writer.Write(p) + c.deadlineMu.Lock() + expired := c.writeExpired + c.deadlineMu.Unlock() + if expired && err != nil { + return n, os.ErrDeadlineExceeded + } + return n, err +} + +func (c *http2StreamConn) Close() error { + var closeErr error + c.closeOnce.Do(func() { + c.deadlineMu.Lock() + if c.readTimer != nil { + c.readTimer.Stop() + } + if c.writeTimer != nil { + c.writeTimer.Stop() + } + c.deadlineMu.Unlock() + c.cancel() + _ = c.writer.Close() + closeErr = c.reader.Close() + }) + return closeErr +} + +func (c *http2StreamConn) LocalAddr() net.Addr { return c.raw.LocalAddr() } +func (c *http2StreamConn) RemoteAddr() net.Addr { return c.raw.RemoteAddr() } + +func (c *http2StreamConn) SetDeadline(deadline time.Time) error { + c.setReadDeadline(deadline) + c.setWriteDeadline(deadline) + return nil +} + +func (c *http2StreamConn) SetReadDeadline(deadline time.Time) error { + c.setReadDeadline(deadline) + return nil +} + +func (c *http2StreamConn) SetWriteDeadline(deadline time.Time) error { + c.setWriteDeadline(deadline) + return nil +} + +func (c *http2StreamConn) setReadDeadline(deadline time.Time) { + c.deadlineMu.Lock() + defer c.deadlineMu.Unlock() + c.readExpired = false + if c.readTimer != nil { + c.readTimer.Stop() + c.readTimer = nil + } + if !deadline.IsZero() { + c.readTimer = time.AfterFunc(time.Until(deadline), func() { + c.deadlineMu.Lock() + c.readExpired = true + c.deadlineMu.Unlock() + _ = c.Close() + }) + } +} + +func (c *http2StreamConn) setWriteDeadline(deadline time.Time) { + c.deadlineMu.Lock() + defer c.deadlineMu.Unlock() + c.writeExpired = false + if c.writeTimer != nil { + c.writeTimer.Stop() + c.writeTimer = nil + } + if !deadline.IsZero() { + c.writeTimer = time.AfterFunc(time.Until(deadline), func() { + c.deadlineMu.Lock() + c.writeExpired = true + c.deadlineMu.Unlock() + _ = c.Close() + }) + } +} diff --git a/native/mobile/http2_connect_test.go b/native/mobile/http2_connect_test.go new file mode 100644 index 0000000..fde231c --- /dev/null +++ b/native/mobile/http2_connect_test.go @@ -0,0 +1,125 @@ +package mobile + +import ( + "context" + "crypto/tls" + "fmt" + "io" + "net" + "net/http" + "net/http/httptest" + "sync" + "testing" + "time" +) + +func TestHTTP2ConnectSessionMultiplexesStreams(t *testing.T) { + var mu sync.Mutex + authorities := make([]string, 0, 2) + server := httptest.NewUnstartedServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodConnect { + t.Errorf("method = %q, want CONNECT", r.Method) + return + } + if r.Header.Get("Proxy-Authorization") != "Basic test" { + t.Errorf("authorization was not forwarded") + } + mu.Lock() + authorities = append(authorities, r.Host) + mu.Unlock() + controller := http.NewResponseController(w) + if err := controller.EnableFullDuplex(); err != nil { + t.Errorf("enable full duplex: %v", err) + return + } + w.WriteHeader(http.StatusOK) + _ = controller.Flush() + buffer := make([]byte, 1024) + for { + count, err := r.Body.Read(buffer) + if count > 0 { + _, _ = w.Write(buffer[:count]) + _ = controller.Flush() + } + if err != nil { + return + } + } + })) + server.EnableHTTP2 = true + server.StartTLS() + defer server.Close() + + raw, err := tls.Dial("tcp", server.Listener.Addr().String(), &tls.Config{ + InsecureSkipVerify: true, // Test server certificate. + NextProtos: []string{"h2"}, + }) + if err != nil { + t.Fatal(err) + } + session, err := newHTTP2ConnectSession(raw) + if err != nil { + t.Fatal(err) + } + defer session.close() + + for index := 0; index < 2; index++ { + target := fmt.Sprintf("target-%d.example:443", index) + stream, status, err := session.openTunnel(context.Background(), target, "Basic test") + if err != nil || status != http.StatusOK { + t.Fatalf("open stream %d: status=%d err=%v", index, status, err) + } + payload := []byte(fmt.Sprintf("stream-%d", index)) + if _, err := stream.Write(payload); err != nil { + t.Fatal(err) + } + if err := stream.SetReadDeadline(time.Now().Add(2 * time.Second)); err != nil { + t.Fatal(err) + } + response := make([]byte, len(payload)) + if _, err := io.ReadFull(stream, response); err != nil { + t.Fatal(err) + } + if string(response) != string(payload) { + t.Fatalf("response = %q, want %q", response, payload) + } + _ = stream.Close() + } + + mu.Lock() + defer mu.Unlock() + if len(authorities) != 2 || authorities[0] != "target-0.example:443" || authorities[1] != "target-1.example:443" { + t.Fatalf("unexpected CONNECT authorities: %#v", authorities) + } +} + +func TestHTTP2StreamDeadlineDoesNotCloseSharedConnection(t *testing.T) { + left, right := net.Pipe() + defer left.Close() + defer right.Close() + reader, writer := io.Pipe() + stream := newHTTP2StreamConn(left, io.NopCloser(reader), writer, func() {}) + if err := stream.SetReadDeadline(time.Now().Add(10 * time.Millisecond)); err != nil { + t.Fatal(err) + } + buffer := make([]byte, 1) + if _, err := stream.Read(buffer); err == nil || !isTimeout(err) { + t.Fatalf("Read error = %v, want timeout", err) + } + rawRead := make(chan error, 1) + go func() { + _, err := left.Read(buffer) + rawRead <- err + }() + if _, err := right.Write([]byte{1}); err != nil { + t.Fatalf("shared raw connection was closed by stream deadline: %v", err) + } + if err := <-rawRead; err != nil { + t.Fatalf("shared raw connection read failed: %v", err) + } +} + +func isTimeout(err error) bool { + value, ok := err.(interface{ Timeout() bool }) + return ok && value.Timeout() +} diff --git a/native/mobile/ssh_dialer.go b/native/mobile/ssh_dialer.go index 2c37003..e292a1e 100644 --- a/native/mobile/ssh_dialer.go +++ b/native/mobile/ssh_dialer.go @@ -156,6 +156,7 @@ func newSSHClient(conn net.Conn, hostname, username, password, privateKey, trust return nil, fmt.Errorf("clear SSH %s handshake deadline: %w", hop, err) } report(reporter, "event=ssh_handshake hop=%s result=success profile=%s", hop, profile) + report(reporter, "event=transport_capability transport=ssh hop=%s client_family=%s server_family=%s direct_tcpip=true multiplexed=true rekey_mb=%d", hop, sshClientFamily(profile), sshServerFamily(string(cc.ServerVersion())), sshRekeyBytes/(1024*1024)) return ssh.NewClient(cc, channels, requests), nil } @@ -207,13 +208,52 @@ func applySSHProfile(c *ssh.ClientConfig, profile string) { case "TERMIUS_ANDROID": c.ClientVersion = "SSH-2.0-Termius" default: - c.ClientVersion = "SSH-2.0-OpenSSH_9.9" + // OpenSSH 8.4 is a better claim than a newer banner whose mandatory/default + // post-quantum proposal cannot be reproduced byte-for-byte by this stack. + c.ClientVersion = "SSH-2.0-OpenSSH_8.4" } - // x/crypto exposes ordering, but not every packet-level extension used by the - // named clients. Keep modern algorithms only and use the preset for stable ordering/banner. - c.Config.KeyExchanges = []string{ssh.KeyExchangeCurve25519, ssh.KeyExchangeECDHP256, ssh.KeyExchangeDHGEXSHA256} - c.Config.Ciphers = []string{"chacha20-poly1305@openssh.com", "aes128-gcm@openssh.com", "aes256-gcm@openssh.com", "aes128-ctr", "aes256-ctr"} + // This is the common modern OpenSSH-style order supported by x/crypto. It + // avoids the distinctive Go defaults and weak legacy algorithms while keeping + // compatibility with ordinary servers and dynamic forwarding (`ssh -D`). + c.Config.KeyExchanges = []string{ + ssh.KeyExchangeCurve25519, + ssh.KeyExchangeECDHP256, + ssh.KeyExchangeECDHP384, + ssh.KeyExchangeECDHP521, + ssh.KeyExchangeDHGEXSHA256, + ssh.KeyExchangeDH16SHA512, + ssh.KeyExchangeDH14SHA256, + } + c.Config.Ciphers = []string{"chacha20-poly1305@openssh.com", "aes128-gcm@openssh.com", "aes256-gcm@openssh.com", "aes128-ctr", "aes192-ctr", "aes256-ctr"} c.Config.MACs = []string{ssh.HMACSHA256ETM, ssh.HMACSHA512ETM, ssh.HMACSHA256, ssh.HMACSHA512} + c.Config.RekeyThreshold = sshRekeyBytes +} + +const sshRekeyBytes = 1 << 30 + +func sshClientFamily(profile string) string { + switch profile { + case "CONNECTBOT": + return "connectbot" + case "JUICESSH": + return "juicessh" + case "TERMIUS_ANDROID": + return "termius" + default: + return "openssh" + } +} + +func sshServerFamily(version string) string { + value := strings.ToLower(version) + switch { + case strings.Contains(value, "openssh"): + return "openssh" + case strings.Contains(value, "dropbear"): + return "dropbear" + default: + return "other" + } } func (d *sshDialer) protectedDialer() *net.Dialer { diff --git a/native/mobile/ssh_profile_test.go b/native/mobile/ssh_profile_test.go new file mode 100644 index 0000000..5738c72 --- /dev/null +++ b/native/mobile/ssh_profile_test.go @@ -0,0 +1,35 @@ +package mobile + +import ( + "slices" + "testing" + + "golang.org/x/crypto/ssh" +) + +func TestOpenSSHProfileUsesOrdinaryDynamicForwardingFingerprint(t *testing.T) { + c := &ssh.ClientConfig{} + applySSHProfile(c, "OPENSSH_TERMUX") + if c.ClientVersion != "SSH-2.0-OpenSSH_8.4" { + t.Fatalf("unexpected client banner %q", c.ClientVersion) + } + if c.RekeyThreshold != sshRekeyBytes { + t.Fatalf("unexpected rekey threshold %d", c.RekeyThreshold) + } + if len(c.KeyExchanges) < 5 || c.KeyExchanges[0] != ssh.KeyExchangeCurve25519 { + t.Fatalf("unexpected KEX order %#v", c.KeyExchanges) + } + if !slices.Contains(c.Ciphers, ssh.CipherAES192CTR) { + t.Fatalf("OpenSSH-compatible AES-192 CTR is missing: %#v", c.Ciphers) + } +} + +func TestSSHProfilesDoNotExposeImplementationName(t *testing.T) { + for _, profile := range []string{"OPENSSH_TERMUX", "CONNECTBOT", "JUICESSH", "TERMIUS_ANDROID"} { + c := &ssh.ClientConfig{} + applySSHProfile(c, profile) + if c.ClientVersion == "" || c.ClientVersion == "SSH-2.0-Go" { + t.Fatalf("profile %s exposes an invalid implementation banner %q", profile, c.ClientVersion) + } + } +} diff --git a/native/mobile/test_connection.go b/native/mobile/test_connection.go index 6f0c712..f9926ed 100644 --- a/native/mobile/test_connection.go +++ b/native/mobile/test_connection.go @@ -71,7 +71,8 @@ func testHTTPSGet(ctx context.Context, connect func(context.Context, string) (ne if err := connection.HandshakeContext(ctx); err != nil { return "", fmt.Errorf("destination TLS handshake: %w", err) } - report(reporter, "event=connection_test stage=destination_tls result=success certificate=verified") + tlsState := connection.ConnectionState() + report(reporter, "event=connection_test stage=destination_tls result=success certificate=verified version=0x%04x cipher=0x%04x alpn=%s h2_negotiated=%t session_resumed=%t", tlsState.Version, tlsState.CipherSuite, normalizedALPN(tlsState.NegotiatedProtocol), tlsState.NegotiatedProtocol == "h2", tlsState.DidResume) request, err := http.NewRequestWithContext(ctx, http.MethodGet, "https://"+host+path, nil) if err != nil { From 5d6c4fef9cd0b7ec5ac7261d055055bdd2ea7203 Mon Sep 17 00:00:00 2001 From: Andrey Prokopyuk Date: Tue, 1 Sep 2026 17:00:23 +0300 Subject: [PATCH 29/41] Add release scripts --- .gitignore | 1 + README.md | 15 ++++ app/build.gradle.kts | 6 ++ app/proguard-rules.pro | 2 + scripts/build-release-apks.sh | 156 ++++++++++++++++++++++++++++++++++ 5 files changed, 180 insertions(+) create mode 100644 app/proguard-rules.pro create mode 100755 scripts/build-release-apks.sh diff --git a/.gitignore b/.gitignore index 95b59a8..847df0e 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ local.properties *.aab *.jks *.keystore +/dist/ .externalNativeBuild/ .cxx/ native/*.aar diff --git a/README.md b/README.md index 6d8dbc4..10848cf 100644 --- a/README.md +++ b/README.md @@ -124,6 +124,21 @@ adb install -r app/build/outputs/apk/debug/app-debug.apk adb shell am start -n net.megaproxy487/.MainActivity ``` +### Signed release APKs + +Build R8-optimized, resource-shrunk and signed APKs for every supported Android ABI: + +```shell +./scripts/build-release-apks.sh +``` + +By default the script uses `$HOME/AndroidApkKey`, alias `key0`, and reads the shared keystore/key +password from `$HOME/.my-tokens/android-key-password`. These locations can be overridden with +`MEGAPROXY_KEYSTORE_PATH`, `MEGAPROXY_KEY_ALIAS`, `MEGAPROXY_KEY_PASSWORD_FILE`, and +`MEGAPROXY_KEY_PASSWORD`. Outputs and their SHA-256 checksums are written to `dist/release`. +Separate APKs are produced for `arm64-v8a`, `armeabi-v7a`, `x86_64`, and `x86`; each APK contains +only its matching native library. + ### VS Code workflow Open the repository in VS Code and install the workspace recommendations from diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 2219a18..b95e115 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -37,6 +37,12 @@ android { buildTypes { getByName("release") { signingConfig = signingConfigs.findByName("release") + isMinifyEnabled = true + isShrinkResources = true + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro", + ) } } diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 0000000..410fd0a --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,2 @@ +# Project-specific release rules. The gomobile AAR supplies its own keep rules +# for the generated Go and JNI bridge classes. diff --git a/scripts/build-release-apks.sh b/scripts/build-release-apks.sh new file mode 100755 index 0000000..4d84f8f --- /dev/null +++ b/scripts/build-release-apks.sh @@ -0,0 +1,156 @@ +#!/usr/bin/env bash +set -euo pipefail + +project_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" + +if [[ -f "$HOME/.zshrc.extra" ]]; then + # VS Code and non-interactive shells may not inherit the Android toolchain. + source "$HOME/.zshrc.extra" +fi + +: "${JAVA_HOME:=/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home}" +: "${ANDROID_HOME:=$HOME/Library/Android/sdk}" +: "${ANDROID_NDK_HOME:=$ANDROID_HOME/ndk/29.0.14206865}" +: "${MEGAPROXY_KEYSTORE_PATH:=$HOME/AndroidApkKey}" +: "${MEGAPROXY_KEY_PASSWORD_FILE:=$HOME/.my-tokens/android-key-password}" +: "${MEGAPROXY_KEY_ALIAS:=key0}" +: "${MEGAPROXY_RELEASE_DIR:=$project_dir/dist/release}" + +export JAVA_HOME ANDROID_HOME ANDROID_NDK_HOME +export PATH="$JAVA_HOME/bin:$HOME/go/bin:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$PATH" + +for command in go gomobile java keytool; do + if ! command -v "$command" >/dev/null 2>&1; then + echo "Required command is unavailable: $command" >&2 + exit 1 + fi +done + +if [[ ! -x "$project_dir/gradlew" ]]; then + echo "Gradle wrapper is missing or not executable: $project_dir/gradlew" >&2 + exit 1 +fi +if [[ ! -f "$MEGAPROXY_KEYSTORE_PATH" ]]; then + echo "Release keystore is missing: $MEGAPROXY_KEYSTORE_PATH" >&2 + exit 1 +fi +if [[ ! -f "$MEGAPROXY_KEY_PASSWORD_FILE" ]]; then + echo "Keystore password file is missing: $MEGAPROXY_KEY_PASSWORD_FILE" >&2 + exit 1 +fi +if [[ ! -d "$ANDROID_NDK_HOME" ]]; then + echo "Android NDK is missing: $ANDROID_NDK_HOME" >&2 + exit 1 +fi + +keystore_password="$(<"$MEGAPROXY_KEY_PASSWORD_FILE")" +if [[ -z "$keystore_password" ]]; then + echo "Keystore password file is empty" >&2 + exit 1 +fi +: "${MEGAPROXY_KEY_PASSWORD:=$keystore_password}" + +keytool -list \ + -keystore "$MEGAPROXY_KEYSTORE_PATH" \ + -storepass:file "$MEGAPROXY_KEY_PASSWORD_FILE" \ + -alias "$MEGAPROXY_KEY_ALIAS" >/dev/null + +version_name="$(sed -nE 's/^[[:space:]]*versionName = "([^"]+)"/\1/p' "$project_dir/app/build.gradle.kts" | head -n 1)" +if [[ -z "$version_name" ]]; then + echo "Unable to determine versionName from app/build.gradle.kts" >&2 + exit 1 +fi + +mkdir -p "$MEGAPROXY_RELEASE_DIR" "$project_dir/app/libs" + +temporary_dir="$(mktemp -d "${TMPDIR:-/tmp}/megaproxy-release.XXXXXX")" +original_aar="$project_dir/app/libs/megaproxy.aar" +had_original_aar=false +if [[ -f "$original_aar" ]]; then + cp "$original_aar" "$temporary_dir/megaproxy.aar" + had_original_aar=true +fi +restore_workspace() { + if [[ "$had_original_aar" == true ]]; then + cp "$temporary_dir/megaproxy.aar" "$original_aar" + else + rm -f "$original_aar" + fi + rm -rf "$temporary_dir" +} +trap restore_workspace EXIT + +export MEGAPROXY_KEYSTORE_PATH +export MEGAPROXY_KEYSTORE_PASSWORD="$keystore_password" +export MEGAPROXY_KEY_ALIAS +export MEGAPROXY_KEY_PASSWORD + +echo "Running native tests" +( + cd "$project_dir/native" + go test ./... +) + +echo "Running Android unit tests" +( + cd "$project_dir" + ./gradlew testReleaseUnitTest +) + +# gomobile architecture names and their corresponding Android ABI names. +targets=( + "arm64:arm64-v8a" + "arm:armeabi-v7a" + "amd64:x86_64" + "386:x86" +) + +for target in "${targets[@]}"; do + go_arch="${target%%:*}" + android_abi="${target##*:}" + output_apk="$MEGAPROXY_RELEASE_DIR/mega-proxy-v${version_name}-${android_abi}.apk" + + echo "Building optimized native AAR for $android_abi" + ( + cd "$project_dir/native" + gomobile bind \ + -target="android/$go_arch" \ + -androidapi 26 \ + -trimpath \ + -ldflags="-s -w -buildid=" \ + -o ../app/libs/megaproxy.aar \ + ./mobile + ) + + echo "Building and signing $android_abi APK" + ( + cd "$project_dir" + ./gradlew clean assembleRelease + ) + built_apk="$project_dir/app/build/outputs/apk/release/app-release.apk" + if [[ ! -f "$built_apk" ]]; then + echo "Gradle did not produce the expected APK: $built_apk" >&2 + exit 1 + fi + cp "$built_apk" "$output_apk" + + apksigner="$ANDROID_HOME/build-tools/35.0.0/apksigner" + if [[ ! -x "$apksigner" ]]; then + apksigner="$(find "$ANDROID_HOME/build-tools" -type f -name apksigner -perm -u+x | sort -V | tail -n 1)" + fi + if [[ -z "$apksigner" || ! -x "$apksigner" ]]; then + echo "Android apksigner is unavailable" >&2 + exit 1 + fi + "$apksigner" verify --verbose --print-certs "$output_apk" >/dev/null +done + +( + cd "$MEGAPROXY_RELEASE_DIR" + shasum -a 256 ./*.apk > SHA256SUMS +) + +echo +echo "Signed release APKs:" +ls -lh "$MEGAPROXY_RELEASE_DIR"/*.apk +echo "Checksums: $MEGAPROXY_RELEASE_DIR/SHA256SUMS" From 5f447c368974ccc62d1a3ced62560fc2e61ba486 Mon Sep 17 00:00:00 2001 From: Andrey Prokopyuk Date: Tue, 1 Sep 2026 17:05:16 +0300 Subject: [PATCH 30/41] Fix keyboard height issues --- .../main/java/net/megaproxy487/DiagnosticLogActivity.kt | 7 ++++++- .../main/java/net/megaproxy487/ProfileEditorActivity.kt | 8 +++++++- app/src/main/java/net/megaproxy487/SettingsActivities.kt | 9 ++++++++- .../main/java/net/megaproxy487/SplitTunnelActivity.kt | 6 +++++- 4 files changed, 26 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/net/megaproxy487/DiagnosticLogActivity.kt b/app/src/main/java/net/megaproxy487/DiagnosticLogActivity.kt index 1df3c56..65b2dae 100644 --- a/app/src/main/java/net/megaproxy487/DiagnosticLogActivity.kt +++ b/app/src/main/java/net/megaproxy487/DiagnosticLogActivity.kt @@ -13,6 +13,7 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.imePadding import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.safeDrawing @@ -133,7 +134,11 @@ private fun DiagnosticLogScreen(activity: Activity) { contentWindowInsets = WindowInsets.safeDrawing, ) { padding -> Column( - Modifier.fillMaxSize().padding(padding).padding(horizontal = 16.dp), + Modifier + .fillMaxSize() + .padding(padding) + .imePadding() + .padding(horizontal = 16.dp), verticalArrangement = Arrangement.spacedBy(8.dp), ) { OutlinedTextField( diff --git a/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt b/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt index 1658e6c..e068413 100644 --- a/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt +++ b/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt @@ -11,6 +11,7 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.imePadding import androidx.compose.foundation.layout.heightIn import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.WindowInsets @@ -133,7 +134,12 @@ private fun ProfileEditorScreen(activity: Activity) { contentWindowInsets = WindowInsets.safeDrawing, ) { padding -> Column( - Modifier.fillMaxSize().padding(padding).padding(16.dp).verticalScroll(rememberScrollState()), + Modifier + .fillMaxSize() + .padding(padding) + .imePadding() + .padding(16.dp) + .verticalScroll(rememberScrollState()), verticalArrangement = Arrangement.spacedBy(10.dp), ) { OutlinedTextField(profile.name, { name -> acceptText(name, 256) { diff --git a/app/src/main/java/net/megaproxy487/SettingsActivities.kt b/app/src/main/java/net/megaproxy487/SettingsActivities.kt index ecf1c6d..6a0f797 100644 --- a/app/src/main/java/net/megaproxy487/SettingsActivities.kt +++ b/app/src/main/java/net/megaproxy487/SettingsActivities.kt @@ -22,6 +22,7 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.safeDrawing import androidx.compose.foundation.layout.widthIn import androidx.compose.foundation.layout.heightIn +import androidx.compose.foundation.layout.imePadding import androidx.compose.foundation.selection.toggleable import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll @@ -495,7 +496,13 @@ private fun SettingsScaffold(activity: Activity, title: String, content: @Compos ) { padding -> Box(Modifier.fillMaxSize().padding(padding), contentAlignment = Alignment.TopCenter) { Column( - Modifier.widthIn(max = 840.dp).fillMaxWidth().fillMaxHeight().padding(16.dp).verticalScroll(rememberScrollState()), + Modifier + .widthIn(max = 840.dp) + .fillMaxWidth() + .fillMaxHeight() + .imePadding() + .padding(16.dp) + .verticalScroll(rememberScrollState()), verticalArrangement = Arrangement.spacedBy(12.dp), content = content, ) diff --git a/app/src/main/java/net/megaproxy487/SplitTunnelActivity.kt b/app/src/main/java/net/megaproxy487/SplitTunnelActivity.kt index fd601d1..c585fa9 100644 --- a/app/src/main/java/net/megaproxy487/SplitTunnelActivity.kt +++ b/app/src/main/java/net/megaproxy487/SplitTunnelActivity.kt @@ -14,6 +14,7 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.safeDrawing import androidx.compose.foundation.layout.heightIn +import androidx.compose.foundation.layout.imePadding import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items import androidx.compose.foundation.selection.selectable @@ -151,7 +152,10 @@ private fun SplitTunnelScreen(activity: SplitTunnelActivity) { contentWindowInsets = WindowInsets.safeDrawing, ) { padding -> LazyColumn( - Modifier.fillMaxSize().padding(padding), + Modifier + .fillMaxSize() + .padding(padding) + .imePadding(), contentPadding = androidx.compose.foundation.layout.PaddingValues(16.dp), verticalArrangement = Arrangement.spacedBy(6.dp), ) { From 53bf44d859b08bac6ab40788ff902779d353c37e Mon Sep 17 00:00:00 2001 From: Andrey Prokopyuk Date: Tue, 1 Sep 2026 17:07:49 +0300 Subject: [PATCH 31/41] Add GH tests --- .github/workflows/ci.yml | 82 ++++++++++++++++++++++++++++++++++++++++ README.md | 2 + 2 files changed, 84 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..2520411 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,82 @@ +name: CI + +on: + pull_request: + push: + branches: + - main + +permissions: + contents: read + +concurrency: + group: ci-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + native-tests: + name: Native Go tests + runs-on: ubuntu-latest + timeout-minutes: 20 + steps: + - name: Check out repository + uses: actions/checkout@v6 + + - name: Set up Go + uses: actions/setup-go@v7 + with: + go-version-file: native/go.mod + cache-dependency-path: native/go.sum + + - name: Run native tests with the race detector + working-directory: native + run: go test -race ./... + + android-tests: + name: Android tests and checks + runs-on: ubuntu-latest + timeout-minutes: 45 + steps: + - name: Check out repository + uses: actions/checkout@v6 + + - name: Set up JDK 17 + uses: actions/setup-java@v5 + with: + distribution: temurin + java-version: "17" + cache: gradle + + - name: Set up Go + uses: actions/setup-go@v7 + with: + go-version-file: native/go.mod + cache-dependency-path: native/go.sum + + - name: Install Android SDK components + run: | + yes | sdkmanager --licenses >/dev/null || true + sdkmanager \ + "platforms;android-35" \ + "build-tools;34.0.0" \ + "ndk;29.0.14206865" + echo "ANDROID_NDK_HOME=$ANDROID_HOME/ndk/29.0.14206865" >> "$GITHUB_ENV" + + - name: Install gomobile + run: | + go install golang.org/x/mobile/cmd/gomobile@v0.0.0-20260821190718-4776eadac327 + gomobile init + + - name: Build arm64 Android AAR + working-directory: native + run: | + mkdir -p ../app/libs + gomobile bind \ + -target=android/arm64 \ + -androidapi 26 \ + -trimpath \ + -o ../app/libs/megaproxy.aar \ + ./mobile + + - name: Run Android unit tests, lint, and debug build + run: ./gradlew --no-daemon testDebugUnitTest lintDebug assembleDebug diff --git a/README.md b/README.md index 10848cf..8fc001e 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # MegaProxy +[![CI](https://github.com/andre487/AndroidMegaProxy/actions/workflows/ci.yml/badge.svg)](https://github.com/andre487/AndroidMegaProxy/actions/workflows/ci.yml) + An Android client that selectively tunnels TCP traffic from chosen applications through an HTTPS proxy (`TLS -> HTTP CONNECT`) with Basic Auth and a configurable TLS ClientHello. From 369c86c5a908661ce436bf1ee0ef6f4f1341710b Mon Sep 17 00:00:00 2001 From: Andrey Prokopyuk Date: Tue, 1 Sep 2026 17:25:30 +0300 Subject: [PATCH 32/41] Fix CI --- .github/workflows/ci.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2520411..4efcf2f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -55,8 +55,13 @@ jobs: - name: Install Android SDK components run: | - yes | sdkmanager --licenses >/dev/null || true - sdkmanager \ + sdkmanager="$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager" + if [[ ! -x "$sdkmanager" ]]; then + echo "sdkmanager is unavailable at $sdkmanager" >&2 + exit 1 + fi + yes | "$sdkmanager" --licenses >/dev/null || true + "$sdkmanager" \ "platforms;android-35" \ "build-tools;34.0.0" \ "ndk;29.0.14206865" From cad8338d42db07c3e56b94b257bbe03f738829ff Mon Sep 17 00:00:00 2001 From: Andrey Prokopyuk Date: Tue, 1 Sep 2026 17:31:36 +0300 Subject: [PATCH 33/41] Add version --- app/build.gradle.kts | 16 +++++++++++++++- .../java/net/megaproxy487/SettingsActivities.kt | 6 ++++++ app/src/main/res/values-ru/strings.xml | 3 ++- app/src/main/res/values/strings.xml | 3 ++- 4 files changed, 25 insertions(+), 3 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index b95e115..7a43fbf 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -8,6 +8,16 @@ val releaseKeystorePath = providers.environmentVariable("MEGAPROXY_KEYSTORE_PATH val releaseKeystorePassword = providers.environmentVariable("MEGAPROXY_KEYSTORE_PASSWORD").orNull val releaseKeyAlias = providers.environmentVariable("MEGAPROXY_KEY_ALIAS").orNull val releaseKeyPassword = providers.environmentVariable("MEGAPROXY_KEY_PASSWORD").orNull +val gitCommitHash = providers.environmentVariable("GITHUB_SHA") + .orElse(providers.environmentVariable("MEGAPROXY_GIT_COMMIT")) + .orElse(providers.exec { + commandLine("git", "rev-parse", "--short=8", "HEAD") + isIgnoreExitValue = true + }.standardOutput.asText) + .map { value -> + value.trim().take(8).takeIf { it.matches(Regex("[0-9a-fA-F]{7,8}")) } ?: "unknown" + } + .get() android { namespace = "net.megaproxy487" @@ -19,6 +29,7 @@ android { targetSdk = 35 versionCode = 1 versionName = "0.0.1" + buildConfigField("String", "GIT_COMMIT_HASH", "\"$gitCommitHash\"") testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } @@ -46,7 +57,10 @@ android { } } - buildFeatures { compose = true } + buildFeatures { + compose = true + buildConfig = true + } compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 diff --git a/app/src/main/java/net/megaproxy487/SettingsActivities.kt b/app/src/main/java/net/megaproxy487/SettingsActivities.kt index 6a0f797..1f689a3 100644 --- a/app/src/main/java/net/megaproxy487/SettingsActivities.kt +++ b/app/src/main/java/net/megaproxy487/SettingsActivities.kt @@ -175,6 +175,12 @@ private fun SettingsHomeScreen(activity: Activity) { }.onFailure { supportError = activity.getString(R.string.no_browser) } } supportError?.let { Text(it, color = MaterialTheme.colorScheme.error) } + Text( + stringResource(R.string.version_and_commit, BuildConfig.VERSION_NAME, BuildConfig.GIT_COMMIT_HASH), + style = MaterialTheme.typography.bodySmall, + color = MaterialTheme.colorScheme.onSurfaceVariant, + modifier = Modifier.align(Alignment.CenterHorizontally).padding(top = 8.dp), + ) } if (showLanguageDialog) { diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index e2b0fec..6d65f12 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -30,6 +30,7 @@ Отправить отзыв с диагностическим журналом GitHub Issues Сообщить об ошибке или посмотреть известные проблемы + Версия %1$s · %2$s Подключиться Отключиться Подключение… @@ -42,7 +43,7 @@ Режим маршрутизации Приложения Проверить снова - Копировать журнал + Копировать Импорт Экспорт Изменения сохраняются автоматически. diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 4b2ffd0..1015acb 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -31,6 +31,7 @@ Send feedback and attach the diagnostic log GitHub issues Report a bug or follow known issues + Version %1$s · %2$s Connect Disconnect Connecting… @@ -43,7 +44,7 @@ Routing mode Applications Run again - Copy log + Copy Import Export Changes are saved automatically. From 0c91d41830014937116e71815d366a381c5f9fb9 Mon Sep 17 00:00:00 2001 From: Andrey Prokopyuk Date: Tue, 1 Sep 2026 17:35:29 +0300 Subject: [PATCH 34/41] Add reconnect --- .../java/net/megaproxy487/MainActivity.kt | 31 +++++++++++++++++++ .../net/megaproxy487/ProfileEditorActivity.kt | 3 ++ .../net/megaproxy487/ProxySettingsActivity.kt | 1 + .../net/megaproxy487/SettingsActivities.kt | 1 + .../net/megaproxy487/SplitTunnelActivity.kt | 1 + .../java/net/megaproxy487/data/ConfigStore.kt | 15 +++++++++ .../net/megaproxy487/vpn/ProxyVpnService.kt | 9 ++++-- app/src/main/res/values-ru/strings.xml | 2 ++ app/src/main/res/values/strings.xml | 2 ++ 9 files changed, 62 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/net/megaproxy487/MainActivity.kt b/app/src/main/java/net/megaproxy487/MainActivity.kt index cef6f29..de33823 100644 --- a/app/src/main/java/net/megaproxy487/MainActivity.kt +++ b/app/src/main/java/net/megaproxy487/MainActivity.kt @@ -149,6 +149,7 @@ private fun MainScreen(activity: Activity) { var vpnPermissionRequestedAt by remember { mutableStateOf(0L) } var showCrashReport by remember { mutableStateOf(CrashHandler.hasPendingReport()) } var showAlwaysOnConflict by remember { mutableStateOf(false) } + var pendingReconnect by remember { mutableStateOf(store.hasPendingReconnect()) } val alwaysOn = runtimeAlwaysOn || systemVpnStatus.enabled val lockdown = runtimeLockdown || systemVpnStatus.lockdown val lifecycleOwner = LocalLifecycleOwner.current @@ -164,11 +165,15 @@ private fun MainScreen(activity: Activity) { } else { store.connectionProfile().id } + pendingReconnect = store.hasPendingReconnect() } } lifecycleOwner.lifecycle.addObserver(observer) onDispose { lifecycleOwner.lifecycle.removeObserver(observer) } } + LaunchedEffect(connection) { + pendingReconnect = store.hasPendingReconnect() + } LaunchedEffect(lifecycleOwner, connection) { if (connection != VpnConnectionState.CONNECTED) { connectionStats = null @@ -432,6 +437,32 @@ private fun MainScreen(activity: Activity) { }, ) } + if (connected) { + FilledTonalButton( + onClick = { ProxyVpnService.reconnect(activity) }, + modifier = Modifier.fillMaxWidth(), + ) { + Row( + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(8.dp), + ) { + Text(stringResource(R.string.reconnect)) + if (pendingReconnect) { + Surface( + color = MaterialTheme.colorScheme.tertiaryContainer, + contentColor = MaterialTheme.colorScheme.onTertiaryContainer, + shape = RoundedCornerShape(999.dp), + ) { + Text( + stringResource(R.string.apply_new_settings), + style = MaterialTheme.typography.labelSmall, + modifier = Modifier.padding(horizontal = 8.dp, vertical = 3.dp), + ) + } + } + } + } + } FilledTonalButton( onClick = { activity.startActivity(Intent(activity, ConnectionTestActivity::class.java)) }, modifier = Modifier.fillMaxWidth(), diff --git a/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt b/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt index e068413..ca7bb1f 100644 --- a/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt +++ b/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt @@ -110,6 +110,9 @@ private fun ProfileEditorScreen(activity: Activity) { profile = profile.copy(config = updated) saveProfile() error = store.globalConnectionSettings().applyTo(updated).connectionValidationError() + if (ProxyVpnService.isRunning && profile.id == store.connectionProfile().id) { + store.markPendingReconnect() + } if (ProxyVpnService.isRunning && !connectionChangeDeferred && profile.id == store.connectionProfile().id) { if (ProxyVpnService.isAlwaysOnMode || readAlwaysOnVpnStatus(activity).enabled) { connectionChangeDeferred = true diff --git a/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt b/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt index 0361750..172365b 100644 --- a/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt +++ b/app/src/main/java/net/megaproxy487/ProxySettingsActivity.kt @@ -146,6 +146,7 @@ private fun SettingsScreen(activity: Activity) { } fun applyJsonImport(configuration: PortableConfiguration) { val added = store.importConfiguration(configuration) + if (ProxyVpnService.isRunning) store.markPendingReconnect() PersistentDiagnosticLog.setLimitMb(store.diagnosticLogLimitMb()) refresh() val missingPasswords = added.count { it.config.password.isEmpty() } diff --git a/app/src/main/java/net/megaproxy487/SettingsActivities.kt b/app/src/main/java/net/megaproxy487/SettingsActivities.kt index 1f689a3..a89cd93 100644 --- a/app/src/main/java/net/megaproxy487/SettingsActivities.kt +++ b/app/src/main/java/net/megaproxy487/SettingsActivities.kt @@ -347,6 +347,7 @@ private fun TlsFingerprintScreen(activity: Activity) { fun saveSettings(updated: net.megaproxy487.model.GlobalConnectionSettings) { settings = updated store.saveGlobalConnectionSettings(settings) + if (ProxyVpnService.isRunning) store.markPendingReconnect() if (ProxyVpnService.isRunning && !deferred) { if (ProxyVpnService.isAlwaysOnMode || readAlwaysOnVpnStatus(activity).enabled) { deferred = true; showAlwaysOnNotice = true diff --git a/app/src/main/java/net/megaproxy487/SplitTunnelActivity.kt b/app/src/main/java/net/megaproxy487/SplitTunnelActivity.kt index c585fa9..2749e5d 100644 --- a/app/src/main/java/net/megaproxy487/SplitTunnelActivity.kt +++ b/app/src/main/java/net/megaproxy487/SplitTunnelActivity.kt @@ -80,6 +80,7 @@ private fun SplitTunnelScreen(activity: SplitTunnelActivity) { val affectsActiveRouting = !(settings.routeAllApps && updated.routeAllApps && selectedPackagesOnly) settings = updated store.saveGlobalConnectionSettings(updated) + if (ProxyVpnService.isRunning && affectsActiveRouting) store.markPendingReconnect() if (ProxyVpnService.isRunning && affectsActiveRouting && !deferChangesUntilNextConnection) { val alwaysOn = ProxyVpnService.isAlwaysOnMode || readAlwaysOnVpnStatus(activity).enabled if (alwaysOn) { diff --git a/app/src/main/java/net/megaproxy487/data/ConfigStore.kt b/app/src/main/java/net/megaproxy487/data/ConfigStore.kt index c141cef..9b147c2 100644 --- a/app/src/main/java/net/megaproxy487/data/ConfigStore.kt +++ b/app/src/main/java/net/megaproxy487/data/ConfigStore.kt @@ -113,6 +113,20 @@ class ConfigStore(context: Context) { }.apply() } + fun hasPendingReconnect(): Boolean = pendingReconnectToken() != null + + fun pendingReconnectToken(): String? = prefs.getString(PENDING_RECONNECT, null) + + fun markPendingReconnect() { + prefs.edit().putString(PENDING_RECONNECT, UUID.randomUUID().toString()).apply() + } + + fun clearPendingReconnect(appliedToken: String?) { + if (appliedToken != null && pendingReconnectToken() == appliedToken) { + prefs.edit().remove(PENDING_RECONNECT).apply() + } + } + @Synchronized fun globalConnectionSettings(): GlobalConnectionSettings { ensureMigrated() @@ -511,5 +525,6 @@ class ConfigStore(context: Context) { const val DIAGNOSTIC_LOG_LIMIT_MB = "diagnostic_log_limit_mb" const val GLOBAL_CONNECTION_SETTINGS = "global_connection_settings_v1" private const val IPV6_PROFILE_MIGRATED = "ipv6_profile_migrated_v1" + private const val PENDING_RECONNECT = "pending_reconnect" } } diff --git a/app/src/main/java/net/megaproxy487/vpn/ProxyVpnService.kt b/app/src/main/java/net/megaproxy487/vpn/ProxyVpnService.kt index b26623c..4d64ace 100644 --- a/app/src/main/java/net/megaproxy487/vpn/ProxyVpnService.kt +++ b/app/src/main/java/net/megaproxy487/vpn/ProxyVpnService.kt @@ -267,9 +267,11 @@ class ProxyVpnService : VpnService() { suppliedConfig: net.megaproxy487.model.ProxyConfig? = null, generation: Long = startGeneration.get(), ): Boolean { - val storedProfile = ConfigStore(this).connectionProfile() - val storedConfig = suppliedConfig ?: ConfigStore(this).globalConnectionSettings().applyTo(storedProfile.config) - val promptProfileId = if (testOnly) ConfigStore(this).activeProfileId() else storedProfile.id + val configStore = ConfigStore(this) + val pendingReconnectToken = if (testOnly) null else configStore.pendingReconnectToken() + val storedProfile = configStore.connectionProfile() + val storedConfig = suppliedConfig ?: configStore.globalConnectionSettings().applyTo(storedProfile.config) + val promptProfileId = if (testOnly) configStore.activeProfileId() else storedProfile.id val diagnostics = if (testOnly) TestDiagnosticLog::add else DiagnosticLog::add var failureDetail = "" diagnostics( @@ -397,6 +399,7 @@ class ProxyVpnService : VpnService() { if (failoverNotice == null) VpnRuntimeState.updateNetworkWarning(null) else VpnRuntimeState.updateNetworkWarning(failoverNotice) VpnRuntimeState.updateSystem(isAlwaysOnMode, isLockdownMode, promptProfileId) + if (!testOnly) configStore.clearPendingReconnect(pendingReconnectToken) VpnRuntimeState.update(VpnConnectionState.CONNECTED) return true } diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 6d65f12..49b7846 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -50,6 +50,8 @@ Отмена Скрыть Переподключиться сейчас + Переподключиться + Применить новые настройки При следующем подключении Очистить Повторить проверку diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1015acb..0e0a11d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -51,6 +51,8 @@ Cancel Dismiss Reconnect now + Reconnect + Apply new settings Next connection Clear Run checks again From dd756abe289d291052bf751e30b4ef80cb15dc4d Mon Sep 17 00:00:00 2001 From: Andrey Prokopyuk Date: Tue, 1 Sep 2026 17:50:49 +0300 Subject: [PATCH 35/41] Add release flow --- .github/workflows/release.yml | 106 ++++++++++++++++++++++++++++++++++ README.md | 9 +++ 2 files changed, 115 insertions(+) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..5041f13 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,106 @@ +name: Release APKs + +on: + push: + tags: + - "v*" + +permissions: + contents: write + +concurrency: + group: release-${{ github.ref }} + cancel-in-progress: false + +jobs: + release: + name: Build and publish signed APKs + runs-on: ubuntu-latest + timeout-minutes: 90 + steps: + - name: Check out release tag + uses: actions/checkout@v6 + with: + fetch-depth: 0 + + - name: Set up JDK 17 + uses: actions/setup-java@v5 + with: + distribution: temurin + java-version: "17" + cache: gradle + + - name: Set up Go + uses: actions/setup-go@v7 + with: + go-version-file: native/go.mod + cache-dependency-path: native/go.sum + + - name: Install Android SDK components + run: | + sdkmanager="$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager" + if [[ ! -x "$sdkmanager" ]]; then + echo "sdkmanager is unavailable at $sdkmanager" >&2 + exit 1 + fi + yes | "$sdkmanager" --licenses >/dev/null || true + "$sdkmanager" \ + "platforms;android-35" \ + "build-tools;34.0.0" \ + "ndk;29.0.14206865" + echo "ANDROID_NDK_HOME=$ANDROID_HOME/ndk/29.0.14206865" >> "$GITHUB_ENV" + + - name: Install gomobile + run: | + go install golang.org/x/mobile/cmd/gomobile@v0.0.0-20260821190718-4776eadac327 + gomobile init + + - name: Validate release tag + run: | + version_name="$(sed -nE 's/^[[:space:]]*versionName = "([^"]+)"/\1/p' app/build.gradle.kts | head -n 1)" + expected_tag="v${version_name}" + if [[ -z "$version_name" || "$GITHUB_REF_NAME" != "$expected_tag" ]]; then + echo "Release tag $GITHUB_REF_NAME does not match app version $expected_tag" >&2 + exit 1 + fi + + - name: Restore Android signing key + env: + SIGNING_KEY_BASE64: ${{ secrets.ANDROID_SIGNING_KEY_BASE64 }} + KEYSTORE_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }} + run: | + if [[ -z "$SIGNING_KEY_BASE64" || -z "$KEYSTORE_PASSWORD" ]]; then + echo "Android signing secrets are not configured" >&2 + exit 1 + fi + keystore="$RUNNER_TEMP/megaproxy-release.p12" + password_file="$RUNNER_TEMP/megaproxy-keystore-password" + printf '%s' "$SIGNING_KEY_BASE64" | base64 --decode > "$keystore" + printf '%s' "$KEYSTORE_PASSWORD" > "$password_file" + chmod 600 "$keystore" "$password_file" + echo "MEGAPROXY_KEYSTORE_PATH=$keystore" >> "$GITHUB_ENV" + echo "MEGAPROXY_KEY_PASSWORD_FILE=$password_file" >> "$GITHUB_ENV" + + - name: Build optimized signed APKs + env: + MEGAPROXY_KEY_ALIAS: ${{ secrets.ANDROID_KEY_ALIAS }} + MEGAPROXY_KEY_PASSWORD: ${{ secrets.ANDROID_KEY_PASSWORD }} + MEGAPROXY_GIT_COMMIT: ${{ github.sha }} + run: ./scripts/build-release-apks.sh + + - name: Publish GitHub Release + env: + GH_TOKEN: ${{ github.token }} + run: | + assets=(dist/release/*.apk dist/release/SHA256SUMS) + if gh release view "$GITHUB_REF_NAME" --repo "$GITHUB_REPOSITORY" >/dev/null 2>&1; then + gh release upload "$GITHUB_REF_NAME" "${assets[@]}" \ + --repo "$GITHUB_REPOSITORY" \ + --clobber + else + gh release create "$GITHUB_REF_NAME" "${assets[@]}" \ + --repo "$GITHUB_REPOSITORY" \ + --verify-tag \ + --generate-notes \ + --title "MegaProxy ${GITHUB_REF_NAME}" + fi diff --git a/README.md b/README.md index 8fc001e..3911b6b 100644 --- a/README.md +++ b/README.md @@ -141,6 +141,15 @@ password from `$HOME/.my-tokens/android-key-password`. These locations can be ov Separate APKs are produced for `arm64-v8a`, `armeabi-v7a`, `x86_64`, and `x86`; each APK contains only its matching native library. +Pushing a tag whose name starts with `v` runs the GitHub release workflow. It builds the same four +APK variants with the repository signing key stored in GitHub Actions Secrets, verifies every +signature, and publishes the APKs and `SHA256SUMS` to a new GitHub Release. For example: + +```shell +git tag v0.0.1 +git push origin v0.0.1 +``` + ### VS Code workflow Open the repository in VS Code and install the workspace recommendations from From 3922e3bf8825a13daa2198654e5274af9a7de3cc Mon Sep 17 00:00:00 2001 From: Andrey Prokopyuk Date: Tue, 1 Sep 2026 17:53:32 +0300 Subject: [PATCH 36/41] Improve README --- README.md | 342 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 194 insertions(+), 148 deletions(-) diff --git a/README.md b/README.md index 3911b6b..ac6d42c 100644 --- a/README.md +++ b/README.md @@ -1,75 +1,144 @@ # MegaProxy [![CI](https://github.com/andre487/AndroidMegaProxy/actions/workflows/ci.yml/badge.svg)](https://github.com/andre487/AndroidMegaProxy/actions/workflows/ci.yml) - -An Android client that selectively tunnels TCP traffic from chosen applications through an -HTTPS proxy (`TLS -> HTTP CONNECT`) with Basic Auth and a configurable TLS ClientHello. - -## Design guarantees - -- The proxy does not perform MITM. Application TLS remains end-to-end between the application - and the destination website. -- The proxy certificate is verified against the Android system trust store, hostname and - validity period. Certificate pinning is not used, so regular Let's Encrypt rotation works. -- Only selected packages enter the TUN interface (`VpnService.Builder.addAllowedApplication`). -- UDP is blocked. In particular, QUIC/HTTP3 falls back to TCP. -- IPv4-only destination mode is enabled by default for HTTPS proxies without IPv6 CONNECT - support. IPv6 destinations can be enabled from the split-tunneling screen. -- DNS from selected applications is intercepted inside the TUN, converted to DoH and sent - through the proxy. Cloudflare, Google, Quad9 and a custom HTTPS endpoint are supported. -- Always-on VPN support is declared in the manifest. The foreground service returns - `START_STICKY`. -- The UI links to the system Always-on VPN settings and requests exemption from battery - optimization. No Android application can survive an explicit user force-stop. -- The Basic Auth password is encrypted with an AES-GCM key stored in Android Keystore. - -## Implementation status - -The Android project includes configuration UI, application selection, manual JA3 validation, -secure credential storage and the per-app VPN lifecycle. The native data plane is implemented -in Go with uTLS and the gVisor network stack. - -The main screen provides a connection test that uses the configured HTTPS proxy and TLS profile, -verifies an end-to-end HTTPS request to `example.com`, and obtains the proxy exit IP from -`ifconfig.me`. The test runs in a dedicated screen with an isolated per-run diagnostic log; -credentials and traffic content are never logged. The compact main screen contains connection -status and Connect/Disconnect, Test and Settings actions. Proxy, JA3, DoH, split tunneling, -Always-on VPN and battery controls are available from Settings. - -The foreground VPN service persists whether a normal connection is desired. While desired, it -monitors tunnel state, retries failed startup and republishes its ongoing notification every ten -seconds. Android Always-on remains the authority that restarts the service after reboot or process -termination; an explicit system force-stop cannot be overridden by an application. - -Every physical upstream socket must be passed to `VpnService.protect()` before `connect()` to -prevent recursive routing into the TUN interface. - -## JA3 profiles - -A browser name is not a permanent fingerprint. Every profile must be versioned and backed by -a captured ClientHello fixture. uTLS provides Chrome, Firefox, Edge and randomized profiles. -Manual mode accepts the canonical JA3 string: - -`TLSVersion,CipherSuites,Extensions,SupportedGroups,ECPointFormats` - -Edge Android, Samsung Internet and Yandex Browser remain disabled until verified ClientHello -fixtures are available for specific Android browser versions. The application intentionally -does not relabel a generic desktop or Chromium profile as one of these browsers. - -## Build - -Use JDK 17 to build the Android application. Building the Go AAR additionally requires Go and -`gomobile`; see `native/README.md` for details. - -## Development - -English is the project language. Use English for source code, comments, documentation, commit -messages, UI copy, logs and developer tooling. - -### Prerequisites - -The command-line build requires JDK 17, Go 1.26 or newer, gomobile, Android SDK Platform 35, -Build Tools 34.0.0 and NDK 29.0.14206865. The expected environment is: +[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) +[![Android 8+](https://img.shields.io/badge/Android-8.0%2B-3DDC84?logo=android&logoColor=white)](https://developer.android.com/about/versions/oreo) + +

+ MegaProxy app icon +

+ +MegaProxy is an open-source Android VPN client for reliable, secure connections through proxy +servers you control or trust. It supports HTTPS and SSH transports, per-app routing, encrypted DNS, +connection diagnostics, and automatic failover in one privacy-focused application. + +MegaProxy contains no advertising, analytics SDKs, tracking, or remote telemetry. Connection +statistics and diagnostic logs stay on the device unless you explicitly choose to share them. + +> MegaProxy is under active development. Review the current limitations before relying on it for +> critical connectivity. + +## Why MegaProxy + +- **Private by design.** No account, ads, analytics, tracking identifiers, or background telemetry. +- **Your infrastructure.** Connect to HTTPS, SSH, or SSH-with-jump servers that you configure. +- **End-to-end application encryption.** HTTPS proxying uses CONNECT without intercepting or + decrypting application traffic. +- **Flexible routing.** Route the whole device or only selected applications through the VPN. +- **Resilient connections.** Profile failover, encrypted DNS fallback, SSH keepalives, and + connection health reporting help recover from network and server failures. +- **Fully open source.** The Android application and Go network core are available under the MIT + License. + +## Features + +### Connection profiles + +- Multiple named, colored, reorderable profiles. +- HTTPS proxies over TLS with Basic authentication. +- HTTP/2 CONNECT multiplexing when supported by the proxy, with automatic HTTP/1.1 fallback. +- SSH `direct-tcpip` transport and SSH through a jump host. +- SSH password and unencrypted private-key authentication. +- SSH host-key verification with trust-on-first-use confirmation. +- Profile cloning, import, export, and configurable failover. +- Import from MegaProxy JSON, ProxyList, FoxyProxy JSON, and supported SuperProxy text files. + +### VPN and routing + +- Global VPN and per-app split tunneling. +- Local-network bypass enabled by default. +- Per-profile IPv6 support; IPv4-only operation is the default. +- Android Always-on VPN integration and a persistent foreground-service notification. +- Automatic reconnect when the active profile or pending connection settings change. +- Approximate upload speed, download speed, proxy latency, and recent connection-error rate. + +### DNS and transport + +- DNS-over-HTTPS through the configured transport. +- Cloudflare, Google, Quad9, Yandex Basic, Yandex Safe, Yandex Family, and custom DoH endpoints. +- DNS-provider fallback where it does not weaken an explicitly selected filtering policy. +- HTTPS ClientHello profiles powered by uTLS, plus manual JA3 configuration. +- Configurable SSH client profiles, keepalives, channel limits, and session rotation. +- Arbitrary UDP is intentionally not forwarded; QUIC/HTTP/3 clients normally fall back to TCP. + +### Diagnostics + +- A staged connection test for proxy setup, `example.com`, and the observed exit IP. +- Local, size-limited, rotating diagnostic and crash logs designed to omit credentials and traffic + content. +- On-device connection visibility checks and actionable connection warnings. +- Optional feedback or crash reports opened in the user's email client; nothing is submitted + automatically. +- English and Russian interfaces with an in-app language selector. + +## Privacy and security + +MegaProxy does not operate a proxy service and does not send configuration or usage data to the +project author. Network traffic is sent only where required by the selected profile, destination, +and DNS configuration. The explicit connection test additionally contacts `example.com` and +`ifconfig.me`. + +- HTTPS proxy certificates are checked against the Android trust store, including hostname and + validity. Normal CA certificate renewal does not require certificate pinning. +- Application TLS remains between the application and its destination. MegaProxy does not install + a CA certificate and does not perform TLS interception. +- Proxy passwords and imported private keys are encrypted with AES-GCM using a key held by Android + Keystore. +- Android cloud backup and device-to-device transfer are disabled for application data. +- Every upstream socket is protected from recursive routing through the VPN. +- SSH host keys are verified and unknown keys require explicit user confirmation. + +Two compatibility options deliberately reduce these protections: accepting an invalid HTTPS +proxy certificate and accepting any SSH host key. MegaProxy displays a warning before enabling +them. Use either option only when you understand and control the associated risk. + +The proxy or SSH server can observe connection metadata and the destinations it is asked to reach, +even though it cannot read end-to-end encrypted application content. The operator of that server +must therefore be trusted. No application can override an explicit Android force-stop, and device +vendors may impose additional background-execution restrictions. + +## Installation + +Download an APK for your device architecture from +[GitHub Releases](https://github.com/andre487/AndroidMegaProxy/releases). Most modern Android +phones use `arm64-v8a`. Android 8.0 (API 26) or newer is required. + +Release APKs are signed by the project's release key. SHA-256 checksums are published alongside +the APK files. Android will preserve application data across upgrades only when the package name +and signing key remain unchanged. + +After installation: + +1. Create or import a connection profile. +2. Choose global routing or select applications for split tunneling. +3. Review DNS and fingerprint settings if the defaults are not appropriate for your server. +4. Tap **Test** to validate the connection, then tap **Connect**. +5. Optionally enable Always-on VPN in Android settings. + +## Current limitations + +- Only TCP application traffic is forwarded. General SOCKS5 UDP and QUIC forwarding are not + implemented. +- SSH private keys protected by a passphrase are not supported yet. +- Browser and SSH fingerprint presets are version-specific approximations. A preset name is not a + permanent guarantee of an exact client fingerprint. +- Edge Android, Samsung Internet, and Yandex Browser TLS presets remain unavailable until verified + Android ClientHello fixtures are added. +- Always-on behavior ultimately depends on Android and the device vendor. An explicit force-stop + cannot be recovered from programmatically. + +## Building from source + +The command-line build does not require Android Studio. It requires: + +- JDK 17 +- Go 1.26 or newer +- `gomobile` +- Android SDK Platform 35 +- Android Build Tools 34.0.0 +- Android NDK 29.0.14206865 + +Example environment on macOS: ```shell export JAVA_HOME="/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home" @@ -78,119 +147,96 @@ export ANDROID_NDK_HOME="$ANDROID_HOME/ndk/29.0.14206865" export PATH="$JAVA_HOME/bin:$HOME/go/bin:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/emulator:$ANDROID_HOME/platform-tools:$PATH" ``` -The project pins Gradle 8.9 through the checked-in wrapper. Use `./gradlew`, not a globally -installed Gradle version. +Build the Go core and Android AAR: + +```shell +cd native +go test ./... +gomobile bind -target=android -androidapi 26 -o ../app/libs/megaproxy.aar ./mobile +cd .. +``` + +Build and test the Android application: -### Create and start the emulator +```shell +./gradlew testDebugUnitTest assembleDebug +``` -Create the API 35 Google APIs ARM64 emulator once: +Install the debug APK on a connected device: ```shell -./scripts/create-android-emulator.sh +adb install -r app/build/outputs/apk/debug/app-debug.apk +adb shell am start -n net.megaproxy487/.MainActivity ``` -The script installs the emulator and system image when needed. It is idempotent and uses -`MegaProxy_API_35` by default. It also enables the host physical keyboard and configures -the mouse as multi-touch input, including for an existing AVD. Override the name with -`MEGAPROXY_AVD_NAME` if necessary. Restart a running emulator after changing its AVD -configuration. +The project pins Gradle 8.9 through the checked-in wrapper. Use `./gradlew` rather than a globally +installed Gradle version. See [native/README.md](native/README.md) for Go data-plane details. + +## Development workflow -The startup script always uses a cold boot because stale Quick Boot snapshots can leave the guest -visible but permanently offline in ADB. It attempts to reconnect an existing offline emulator and, -if that fails, terminates only that AVD process before restarting it. ADB and Android boot waits -have finite timeouts. +English is the project language for source code, comments, documentation, commit messages, UI +copy, logs, and tooling. -Start it from the terminal: +### Emulator + +Create the API 35 Google APIs ARM64 emulator: ```shell -emulator @MegaProxy_API_35 -gpu auto +./scripts/create-android-emulator.sh ``` -### Build from the terminal +The script installs missing components, configures host keyboard and mouse input, and can be run +more than once. It creates `MegaProxy_API_35` by default; set `MEGAPROXY_AVD_NAME` to override the +name. -Build and test the Go core, then produce the AAR: +Start the application without a debugger: ```shell -cd native -go test ./... -gomobile bind -target=android -androidapi 26 -o ../app/libs/megaproxy.aar ./mobile -cd .. +./scripts/run-without-debugging.sh ``` -Build, test and install the Android application: +The repository also includes VS Code tasks and launch configurations for creating and starting the +emulator, building, installing, viewing app-specific Logcat output, running tests, and attaching a +JDWP debugger. Select **Run MegaProxy on Emulator** for `Ctrl+F5` or **Attach MegaProxy (JDWP)** for +`F5`. + +Run all native and Android unit tests from VS Code with **Tasks: Run Test Task**, or from a shell: ```shell -./gradlew testDebugUnitTest assembleDebug -adb wait-for-device -adb install -r app/build/outputs/apk/debug/app-debug.apk -adb shell am start -n net.megaproxy487/.MainActivity +(cd native && go test ./...) +./gradlew testDebugUnitTest ``` -### Signed release APKs +JDWP covers Kotlin and Java code only. Debug the Go core with its tests and privacy-safe diagnostic +logging. + +### Signed release builds -Build R8-optimized, resource-shrunk and signed APKs for every supported Android ABI: +Build optimized and signed APKs for `arm64-v8a`, `armeabi-v7a`, `x86_64`, and `x86`: ```shell ./scripts/build-release-apks.sh ``` -By default the script uses `$HOME/AndroidApkKey`, alias `key0`, and reads the shared keystore/key -password from `$HOME/.my-tokens/android-key-password`. These locations can be overridden with -`MEGAPROXY_KEYSTORE_PATH`, `MEGAPROXY_KEY_ALIAS`, `MEGAPROXY_KEY_PASSWORD_FILE`, and -`MEGAPROXY_KEY_PASSWORD`. Outputs and their SHA-256 checksums are written to `dist/release`. -Separate APKs are produced for `arm64-v8a`, `armeabi-v7a`, `x86_64`, and `x86`; each APK contains -only its matching native library. +The script reads its default signing key from `$HOME/AndroidApkKey` and its password from +`$HOME/.my-tokens/android-key-password`. Override these with `MEGAPROXY_KEYSTORE_PATH`, +`MEGAPROXY_KEY_ALIAS`, `MEGAPROXY_KEY_PASSWORD_FILE`, and `MEGAPROXY_KEY_PASSWORD`. Outputs and +`SHA256SUMS` are written to `dist/release`. -Pushing a tag whose name starts with `v` runs the GitHub release workflow. It builds the same four -APK variants with the repository signing key stored in GitHub Actions Secrets, verifies every -signature, and publishes the APKs and `SHA256SUMS` to a new GitHub Release. For example: +Pushing a version tag runs the GitHub release workflow, builds and verifies every APK, and attaches +the artifacts to a GitHub Release. The tag must match `versionName` exactly: ```shell git tag v0.0.1 git push origin v0.0.1 ``` -### VS Code workflow - -Open the repository in VS Code and install the workspace recommendations from -`.vscode/extensions.json`. Run tasks through `Tasks: Run Task`: - -- `Android: Create emulator` creates the required AVD. -- `Android: Start emulator` starts `MegaProxy_API_35`. -- `Android: Run on emulator` creates or starts the emulator, builds, installs and launches the app. -- `Android: Build native AAR` builds the Go bridge. -- `Android: Build debug APK` builds the AAR and debug APK. -- `Android: Install debug APK` builds and installs the application. -- `Android: Launch app` builds, installs and launches the application. -- `Android: Logcat (app)` follows logs from the MegaProxy process only. -- `Android: Prepare JDWP` restarts the app in debugger-wait mode and forwards port 8700. -- `Android: Clear JDWP` removes the debugger setting and port forwarding. -- `Test: Go core` runs all tests in the native Go module. -- `Test: Android unit tests` runs the debug JVM unit-test suite. -- `Test: All` runs both suites in parallel and is the default VS Code test task. - -Run the default test task with `Tasks: Run Test Task`. Test reports from the Android suite are -written to `app/build/reports/tests/testDebugUnitTest/index.html`. - -For breakpoints, select `Attach MegaProxy (JDWP)` in the Run and Debug view and press F5. -The pre-launch task creates or starts the emulator, waits for Android to boot, builds and -installs the app, restarts it in debugger-wait mode and configures JDWP forwarding automatically. -The task remains active for the lifetime of the debug session so the ADB server and forwarding -socket are not torn down before the debugger attaches. - -For a regular run, select `Run MegaProxy on Emulator` in the Run and Debug view and use -`Run Without Debugging` (`Ctrl+F5`). The configuration creates the AVD when missing, starts it, -waits for Android to boot, builds the native AAR and APK, installs the APK and launches the app. -It runs `scripts/run-without-debugging.sh`, which also clears stale JDWP application state and -port forwarding left by an interrupted debug session. The same script can be run directly: +## Contributing -```shell -./scripts/run-without-debugging.sh -``` +Bug reports and focused pull requests are welcome. Please avoid including proxy credentials, +private keys, destination history, or other personal data in issues and logs. Run both the Go and +Android unit-test suites before opening a pull request. -Both regular and debug launch scripts terminate an existing MegaProxy application or JDWP -session before starting a new one. They keep the emulator itself running. +## License -JDWP debugging covers the Kotlin/Java layer. It cannot step into Go code inside -`libgojni.so`; debug that layer with Go tests and logging. Direct Go debugging on Android -would require a separate Delve-based workflow. +MegaProxy is released under the [MIT License](LICENSE). From d11771ee8172f618d18b79bc775015a87dc73c21 Mon Sep 17 00:00:00 2001 From: Andrey Prokopyuk Date: Tue, 1 Sep 2026 18:01:12 +0300 Subject: [PATCH 37/41] Add docs --- README.md | 3 + docs/en/index.md | 403 ++++++++++++++++++++++++++++++++++++++++++++++ docs/ru/index.md | 406 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 812 insertions(+) create mode 100644 docs/en/index.md create mode 100644 docs/ru/index.md diff --git a/README.md b/README.md index ac6d42c..febd0d2 100644 --- a/README.md +++ b/README.md @@ -115,6 +115,9 @@ After installation: 4. Tap **Test** to validate the connection, then tap **Connect**. 5. Optionally enable Always-on VPN in Android settings. +For production-ready HTTPS, SSH, and SSH-with-jump server configurations, see the +[English server guide](docs/en/index.md) or [Russian server guide](docs/ru/index.md). + ## Current limitations - Only TCP application traffic is forwarded. General SOCKS5 UDP and QUIC forwarding are not diff --git a/docs/en/index.md b/docs/en/index.md new file mode 100644 index 0000000..efe01b0 --- /dev/null +++ b/docs/en/index.md @@ -0,0 +1,403 @@ +# MegaProxy server setup + +[Русская версия](../ru/index.md) + +This guide describes production-oriented servers for MegaProxy on a current Ubuntu or Debian VPS. +It covers three transports: + +1. HTTPS proxy with TLS, Basic authentication, and HTTP/2. +2. Direct SSH transport. +3. SSH through a dedicated jump host. + +The examples favor standard protocols, a small attack surface, automatic certificate renewal, and +predictable recovery after a reboot. Replace every value written as `EXAMPLE_VALUE` before using a +configuration. + +## Choose the topology + +| Profile type | Public servers | Public ports | Best use | +| --- | ---: | --- | --- | +| HTTPS | 1 | TCP 443 and TCP 80 for certificate issuance | Efficient HTTP/2 multiplexing and simple credentials | +| SSH | 1 | TCP 22, or another chosen SSH port | Standard OpenSSH deployment and key authentication | +| SSH with Jump | 2 | Jump: TCP 22; destination: SSH reachable from jump | Separating the public entry point from the egress server | + +Use different providers or networks for failover profiles. A second profile on the same VM does +not protect against a VM, provider, route, or datacenter failure. + +## Common server baseline + +The commands below assume a fresh server and a sudo-capable administrator account. Keep the +existing administrator SSH session open until a second session has successfully connected. + +```shell +sudo apt update +sudo apt full-upgrade +sudo apt install --yes ca-certificates curl openssl ufw unattended-upgrades +sudo systemctl enable --now unattended-upgrades +``` + +Set an accurate clock; TLS and SSH diagnostics become confusing when it is wrong: + +```shell +timedatectl status +sudo systemctl enable --now systemd-timesyncd +``` + +Apply a default-deny inbound firewall policy and open only the ports required by the selected +topology. Check the provider's network firewall as well as the OS firewall. + +```shell +sudo ufw default deny incoming +sudo ufw default allow outgoing +sudo ufw allow 22/tcp +sudo ufw enable +sudo ufw status verbose +``` + +Before changing the SSH port, first open the new port and verify a new connection. Never remove the +only working administrative path to the server. + +## HTTPS with HTTP/2 + +This setup uses [GOST v3](https://v3.gost.run/en/), whose HTTP/2 proxy mode accepts CONNECT streams +over TLS. MegaProxy negotiates `h2` with ALPN and reuses the HTTP/2 connection for multiple tunnels. + +### 1. Prepare DNS and the firewall + +Create an `A` record such as `proxy.example.com` pointing to the server. Add an `AAAA` record only +if the server has working public IPv6. Wait until public DNS returns the new address. + +```shell +sudo ufw allow 80/tcp +sudo ufw allow 443/tcp +``` + +Port 80 is used only for the ACME HTTP challenge. Keep it available so certificates can renew. + +### 2. Obtain a public certificate + +Install Certbot and request a certificate while port 80 is unused: + +```shell +sudo apt install --yes certbot +sudo certbot certonly --standalone \ + --domain proxy.example.com \ + --agree-tos \ + --email admin@example.com \ + --no-eff-email +sudo certbot renew --dry-run +``` + +Certbot installations normally configure automatic renewal. MegaProxy validates the system CA, +hostname, and validity dates but does not pin a particular certificate, so routine renewal works +without changing the profile. + +### 3. Install GOST + +Use a versioned GOST v3 binary or container from the +[official releases](https://github.com/go-gost/gost/releases). Verify its published checksum and +avoid unversioned third-party packages. The container example below keeps the installation easy to +audit: + +```shell +sudo apt install --yes docker.io +sudo systemctl enable --now docker +sudo install -d -m 0700 /opt/megaproxy +``` + +Generate a long random password locally and store it in a password manager: + +```shell +openssl rand -base64 32 +``` + +Create `/opt/megaproxy/gost.yml`: + +```yaml +services: + - name: megaproxy-h2 + addr: ":443" + handler: + type: http2 + auth: + username: EXAMPLE_USERNAME + password: EXAMPLE_LONG_RANDOM_PASSWORD + listener: + type: http2 + tls: + certFile: /etc/letsencrypt/live/proxy.example.com/fullchain.pem + keyFile: /etc/letsencrypt/live/proxy.example.com/privkey.pem + options: + minVersion: VersionTLS12 + maxVersion: VersionTLS13 + alpn: + - h2 +``` + +Protect the configuration because it contains the Basic Auth password: + +```shell +sudo chmod 600 /opt/megaproxy/gost.yml +``` + +Do not configure GOST's `mitm`, protocol sniffing, Web API, metrics endpoint, or profiling endpoint. +MegaProxy needs only CONNECT forwarding, and these features are unnecessary for this deployment. + +Start a pinned GOST release. Replace `EXAMPLE_GOST_VERSION` with a reviewed v3 release tag: + +```shell +sudo docker run --detach \ + --name megaproxy-gost \ + --restart unless-stopped \ + --network host \ + --volume /opt/megaproxy/gost.yml:/etc/gost/gost.yml:ro \ + --volume /etc/letsencrypt:/etc/letsencrypt:ro \ + --env GOST_LOGGER_LEVEL=warn \ + gogost/gost:EXAMPLE_GOST_VERSION \ + -C /etc/gost/gost.yml +``` + +Inspect startup without publishing credentials: + +```shell +sudo docker ps --filter name=megaproxy-gost +sudo docker logs --tail 100 megaproxy-gost +``` + +Reload the renewed certificate by restarting the small container. Create +`/etc/letsencrypt/renewal-hooks/deploy/restart-megaproxy-gost`: + +```shell +#!/bin/sh +exec /usr/bin/docker restart megaproxy-gost +``` + +Then secure and test the hook: + +```shell +sudo chmod 750 /etc/letsencrypt/renewal-hooks/deploy/restart-megaproxy-gost +sudo certbot renew --dry-run +``` + +### 4. Verify and add the profile + +Confirm certificate verification and HTTP/2 ALPN from another machine: + +```shell +openssl s_client \ + -connect proxy.example.com:443 \ + -servername proxy.example.com \ + -alpn h2 \ + -verify_return_error Date: Tue, 1 Sep 2026 19:00:24 +0300 Subject: [PATCH 38/41] Fix real devices issues --- .../java/net/megaproxy487/MainActivity.kt | 34 +++++ .../net/megaproxy487/ProfileEditorActivity.kt | 130 +++++++++++++++--- .../net/megaproxy487/data/PrivateKeyImport.kt | 41 ++++++ app/src/main/res/mipmap-hdpi/ic_launcher.png | Bin 8052 -> 7330 bytes .../mipmap-hdpi/ic_launcher_foreground.png | Bin 28784 -> 28792 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 8052 -> 7330 bytes app/src/main/res/mipmap-mdpi/ic_launcher.png | Bin 4354 -> 3786 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 15146 -> 14441 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 4354 -> 3786 bytes app/src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 12557 -> 11879 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 46377 -> 47754 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 12557 -> 11879 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 23776 -> 23598 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 95741 -> 101813 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 23776 -> 23598 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 38058 -> 38766 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 161371 -> 179096 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 38058 -> 38766 bytes app/src/main/res/values-ru/strings.xml | 2 + app/src/main/res/values/strings.xml | 2 + .../megaproxy487/data/PrivateKeyImportTest.kt | 51 +++++++ artwork/launcher-icon.png | Bin 0 -> 1063548 bytes native/mobile/ssh_dialer.go | 40 ++++-- 23 files changed, 271 insertions(+), 29 deletions(-) create mode 100644 app/src/main/java/net/megaproxy487/data/PrivateKeyImport.kt create mode 100644 app/src/test/java/net/megaproxy487/data/PrivateKeyImportTest.kt create mode 100644 artwork/launcher-icon.png diff --git a/app/src/main/java/net/megaproxy487/MainActivity.kt b/app/src/main/java/net/megaproxy487/MainActivity.kt index de33823..7405a30 100644 --- a/app/src/main/java/net/megaproxy487/MainActivity.kt +++ b/app/src/main/java/net/megaproxy487/MainActivity.kt @@ -80,6 +80,7 @@ import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import net.megaproxy487.data.ConfigStore import net.megaproxy487.vpn.ProxyVpnService +import net.megaproxy487.vpn.SshHostKeyPromptState import net.megaproxy487.vpn.VpnConnectionState import net.megaproxy487.vpn.VpnRuntimeState import net.megaproxy487.vpn.VpnTransportProtocol @@ -138,6 +139,7 @@ private fun MainScreen(activity: Activity) { val runtimeProfileId by VpnRuntimeState.connectionProfileId val networkWarning by VpnRuntimeState.networkWarning val transportProtocol by VpnRuntimeState.transportProtocol + val pendingHostKey by SshHostKeyPromptState.pending val store = remember { ConfigStore(activity) } var error by remember { mutableStateOf(null) } var profileMenuExpanded by remember { mutableStateOf(false) } @@ -553,6 +555,38 @@ private fun MainScreen(activity: Activity) { }, ) } + + pendingHostKey?.takeIf { !it.testOnly }?.let { pending -> + fun dismissHostKeyPrompt() { + SshHostKeyPromptState.clear() + ProxyVpnService.dismissHostKeyPrompt(activity) + } + AlertDialog( + onDismissRequest = ::dismissHostKeyPrompt, + title = { Text(if (pending.changed) "SSH host key changed" else "Trust SSH host key?") }, + text = { Text(buildString { + if (pending.changed) { + append("Warning: the previously trusted key for the ${pending.hop} host has changed. This may indicate a server reinstall or a man-in-the-middle attack. Verify it through a trusted channel before replacing it.\n\n") + } else { + append("This is the first connection to the ${pending.hop} SSH host. Verify its fingerprint through a trusted channel.\n\n") + } + append("Algorithm: ${pending.algorithm}\nFingerprint: ${pending.fingerprint}") + }) }, + confirmButton = { + TextButton(onClick = { + if (store.trustSshHostKey(pending.profileId, pending.hop, pending.fingerprint)) { + SshHostKeyPromptState.clear() + ProxyVpnService.reconnect(activity) + } else { + error = "The SSH host key could not be saved to this profile" + } + }) { Text(if (pending.changed) "Replace trusted key" else "Trust and connect") } + }, + dismissButton = { + TextButton(onClick = ::dismissHostKeyPrompt) { Text("Cancel") } + }, + ) + } } private fun isAlwaysOnVpnActive(activity: Activity): Boolean = diff --git a/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt b/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt index ca7bb1f..ca5c236 100644 --- a/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt +++ b/app/src/main/java/net/megaproxy487/ProfileEditorActivity.kt @@ -1,23 +1,25 @@ package net.megaproxy487 import android.app.Activity +import android.net.Uri import android.os.Bundle import android.view.WindowManager -import androidx.activity.ComponentActivity import androidx.activity.enableEdgeToEdge +import androidx.activity.compose.rememberLauncherForActivityResult +import androidx.activity.result.contract.ActivityResultContracts +import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.imePadding import androidx.compose.foundation.layout.heightIn import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.safeDrawing -import androidx.compose.foundation.rememberScrollState -import androidx.compose.foundation.verticalScroll +import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.selection.toggleable import androidx.compose.material.icons.Icons import androidx.compose.material.icons.automirrored.filled.ArrowBack @@ -45,14 +47,17 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.Alignment import androidx.compose.ui.graphics.Color +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.input.PasswordVisualTransformation import androidx.compose.ui.semantics.Role import androidx.compose.ui.unit.dp import net.megaproxy487.data.ConfigStore +import net.megaproxy487.data.readPrivateKeyText import net.megaproxy487.model.DnsProvider import net.megaproxy487.model.ProfileColorMatcher import net.megaproxy487.model.ProxyConfig @@ -61,13 +66,14 @@ import net.megaproxy487.vpn.ProxyVpnService import net.megaproxy487.vpn.readAlwaysOnVpnStatus import net.megaproxy487.ui.theme.MegaProxyTheme import java.util.Locale +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext class ProfileEditorActivity : LocalizedActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() - // This screen can display proxy passwords and SSH private keys. Keep them - // out of screenshots, screen recording and the recent-apps thumbnail. window.addFlags(WindowManager.LayoutParams.FLAG_SECURE) setContent { MegaProxyTheme { ProfileEditorScreen(this) } } } @@ -122,6 +128,29 @@ private fun ProfileEditorScreen(activity: Activity) { } } } + val coroutineScope = rememberCoroutineScope() + fun importPrivateKey(uri: Uri, jump: Boolean) { + coroutineScope.launch { + val result = runCatching { + withContext(Dispatchers.IO) { + activity.contentResolver.openInputStream(uri)?.use { it.readPrivateKeyText() } + ?: throw IllegalArgumentException("Unable to open the selected file") + } + } + result.onSuccess { imported -> + updateConfig(if (jump) config.copy(jumpPrivateKey = imported) else config.copy(privateKey = imported)) + error = null + }.onFailure { failure -> + error = failure.message ?: "Unable to import the private key" + } + } + } + val destinationKeyPicker = rememberLauncherForActivityResult(ActivityResultContracts.OpenDocument()) { uri -> + uri?.let { importPrivateKey(it, jump = false) } + } + val jumpKeyPicker = rememberLauncherForActivityResult(ActivityResultContracts.OpenDocument()) { uri -> + uri?.let { importPrivateKey(it, jump = true) } + } Scaffold( topBar = { @@ -136,19 +165,20 @@ private fun ProfileEditorScreen(activity: Activity) { }, contentWindowInsets = WindowInsets.safeDrawing, ) { padding -> - Column( + LazyColumn( Modifier .fillMaxSize() - .padding(padding) - .imePadding() - .padding(16.dp) - .verticalScroll(rememberScrollState()), + .padding(padding), + contentPadding = PaddingValues(horizontal = 16.dp, vertical = 8.dp), verticalArrangement = Arrangement.spacedBy(10.dp), ) { + item { OutlinedTextField(profile.name, { name -> acceptText(name, 256) { profile = profile.copy(name = name) saveProfile() } }, label = { Text("Profile name (optional)") }, supportingText = { Text("Defaults to the proxy host") }, singleLine = true, modifier = Modifier.fillMaxWidth()) + } + item { ExposedDropdownMenuBox(countryExpanded, { countryExpanded = it }) { OutlinedTextField( profile.countryCode.takeIf(String::isNotEmpty)?.let { code -> @@ -177,8 +207,12 @@ private fun ProfileEditorScreen(activity: Activity) { } } } + } + item { Text("Connection", style = MaterialTheme.typography.titleMedium) + } + item { ExposedDropdownMenuBox(typeExpanded, { typeExpanded = it }) { OutlinedTextField(config.type.title, {}, readOnly = true, label = { Text("Profile type") }, trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(typeExpanded) }, modifier = Modifier.menuAnchor(MenuAnchorType.PrimaryNotEditable).fillMaxWidth()) DropdownMenu(typeExpanded, { typeExpanded = false }) { @@ -190,16 +224,25 @@ private fun ProfileEditorScreen(activity: Activity) { }) } } } + } + item { OutlinedTextField(config.host, { value -> acceptText(value, 253) { updateConfig(config.copy(host = it)) } }, label = { Text(if (config.type == ProxyType.HTTPS) "HTTPS proxy hostname" else "Destination SSH hostname") }, singleLine = true, modifier = Modifier.fillMaxWidth()) + } + item { OutlinedTextField(portText, { value -> portText = value val port = value.toIntOrNull() if (port == null) error = "Port must be between 1 and 65535" else updateConfig(config.copy(port = port)) }, label = { Text("Port") }, singleLine = true, modifier = Modifier.fillMaxWidth()) + } + item { OutlinedTextField(config.username, { value -> acceptText(value, 4_096) { updateConfig(config.copy(username = it)) } }, label = { Text(if (config.type == ProxyType.HTTPS) "Basic Auth username" else "SSH username") }, singleLine = true, modifier = Modifier.fillMaxWidth()) + } + item { OutlinedTextField(config.password, { value -> acceptText(value, 16_384) { updateConfig(config.copy(password = it)) } }, label = { Text(if (config.type == ProxyType.HTTPS) "Password" else "SSH password (optional)") }, singleLine = true, visualTransformation = PasswordVisualTransformation(), modifier = Modifier.fillMaxWidth()) - if (config.type == ProxyType.HTTPS) SettingCheckboxRow( + } + if (config.type == ProxyType.HTTPS) item { SettingCheckboxRow( checked = config.allowInvalidProxyCertificate, title = "Allow self-signed proxy certificate", description = "Disables certificate verification only for the HTTPS proxy.", @@ -208,67 +251,113 @@ private fun ProfileEditorScreen(activity: Activity) { else updateConfig(config.copy(allowInvalidProxyCertificate = false)) }, ) + } if (config.type != ProxyType.HTTPS) { - OutlinedTextField(config.privateKey, { value -> acceptText(value, 64 * 1024) { updateConfig(config.copy(privateKey = it)) } }, label = { Text("Private key (optional)") }, supportingText = { Text("PEM or OpenSSH format. Passphrase-protected keys are not supported.") }, minLines = 3, modifier = Modifier.fillMaxWidth()) + item { + OutlinedTextField(config.privateKey, { value -> acceptText(value, 64 * 1024) { updateConfig(config.copy(privateKey = it)) } }, label = { Text("Private key (optional)") }, supportingText = { Text("PEM or OpenSSH format. Passphrase-protected keys are not supported.") }, minLines = 3, visualTransformation = PasswordVisualTransformation(), modifier = Modifier.fillMaxWidth()) + } + item { + OutlinedButton( + onClick = { destinationKeyPicker.launch(arrayOf("*/*")) }, + modifier = Modifier.fillMaxWidth(), + ) { Text(stringResource(R.string.import_destination_key)) } + } if (config.password.isBlank() && config.privateKey.isBlank()) { + item { Text( "No SSH password or private key is configured. Connection will only work if the server permits authentication without credentials.", color = MaterialTheme.colorScheme.tertiary, style = MaterialTheme.typography.bodySmall, ) + } } + item { SettingCheckboxRow(config.acceptAnyHostKey, "Accept any destination host key", "Unsafe: disables SSH server identity verification.") { checked -> if (checked) unsafeHostKeyHop = "destination" else updateConfig(config.copy(acceptAnyHostKey = false)) } - if (config.trustedHostKey.isNotBlank()) Text("Trusted destination key: ${config.trustedHostKey}", style = MaterialTheme.typography.bodySmall) + } + if (config.trustedHostKey.isNotBlank()) item { Text("Trusted destination key: ${config.trustedHostKey}", style = MaterialTheme.typography.bodySmall) } } if (config.type == ProxyType.SSH_JUMP) { + item { HorizontalDivider() + } + item { Text("Jump host", style = MaterialTheme.typography.titleMedium) + } + item { OutlinedTextField(config.jumpHost, { value -> acceptText(value, 253) { updateConfig(config.copy(jumpHost = it)) } }, label = { Text("Jump SSH hostname") }, singleLine = true, modifier = Modifier.fillMaxWidth()) + } + item { OutlinedTextField(jumpPortText, { value -> if (value.length <= 5 && value.all(Char::isDigit)) { jumpPortText = value value.toIntOrNull()?.let { updateConfig(config.copy(jumpPort = it)) } } }, label = { Text("Jump port") }, singleLine = true, modifier = Modifier.fillMaxWidth()) + } + item { SettingCheckboxRow(config.sameJumpAuthentication, "Use the same authentication", "Reuse destination username, password and private key.") { updateConfig(config.copy(sameJumpAuthentication = it)) } + } if (!config.sameJumpAuthentication) { + item { OutlinedTextField(config.jumpUsername, { value -> acceptText(value, 4_096) { updateConfig(config.copy(jumpUsername = it)) } }, label = { Text("Jump SSH username") }, singleLine = true, modifier = Modifier.fillMaxWidth()) + } + item { OutlinedTextField(config.jumpPassword, { value -> acceptText(value, 16_384) { updateConfig(config.copy(jumpPassword = it)) } }, label = { Text("Jump SSH password (optional)") }, singleLine = true, visualTransformation = PasswordVisualTransformation(), modifier = Modifier.fillMaxWidth()) - OutlinedTextField(config.jumpPrivateKey, { value -> acceptText(value, 64 * 1024) { updateConfig(config.copy(jumpPrivateKey = it)) } }, label = { Text("Jump private key (optional)") }, minLines = 3, modifier = Modifier.fillMaxWidth()) + } + item { + OutlinedTextField(config.jumpPrivateKey, { value -> acceptText(value, 64 * 1024) { updateConfig(config.copy(jumpPrivateKey = it)) } }, label = { Text("Jump private key (optional)") }, minLines = 3, visualTransformation = PasswordVisualTransformation(), modifier = Modifier.fillMaxWidth()) + } + item { + OutlinedButton( + onClick = { jumpKeyPicker.launch(arrayOf("*/*")) }, + modifier = Modifier.fillMaxWidth(), + ) { Text(stringResource(R.string.import_jump_key)) } + } if (config.jumpPassword.isBlank() && config.jumpPrivateKey.isBlank()) { + item { Text( "No jump password or private key is configured. Connection will only work if the jump server permits authentication without credentials.", color = MaterialTheme.colorScheme.tertiary, style = MaterialTheme.typography.bodySmall, ) + } } } + item { SettingCheckboxRow(config.jumpAcceptAnyHostKey, "Accept any jump host key", "Unsafe: disables jump host identity verification.") { checked -> if (checked) unsafeHostKeyHop = "jump" else updateConfig(config.copy(jumpAcceptAnyHostKey = false)) } - if (config.jumpTrustedHostKey.isNotBlank()) Text("Trusted jump key: ${config.jumpTrustedHostKey}", style = MaterialTheme.typography.bodySmall) + } + if (config.jumpTrustedHostKey.isNotBlank()) item { Text("Trusted jump key: ${config.jumpTrustedHostKey}", style = MaterialTheme.typography.bodySmall) } } + item { SettingCheckboxRow(config.allowIpv6, "Enable IPv6 destinations", "Enable only if this proxy can reach IPv6 destinations.") { updateConfig(config.copy(allowIpv6 = it)) } + } + item { Text("DNS over HTTPS", style = MaterialTheme.typography.titleMedium) + } + item { ExposedDropdownMenuBox(dnsExpanded, { dnsExpanded = it }) { OutlinedTextField(config.dnsProvider.title, {}, readOnly = true, label = { Text("DNS over HTTPS") }, trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(dnsExpanded) }, modifier = Modifier.menuAnchor(MenuAnchorType.PrimaryNotEditable).fillMaxWidth()) DropdownMenu(dnsExpanded, { dnsExpanded = false }) { DnsProvider.entries.forEach { provider -> DropdownMenuItem(text = { Text(provider.title) }, onClick = { updateConfig(config.copy(dnsProvider = provider)); dnsExpanded = false }) } } } - if (config.dnsProvider == DnsProvider.CUSTOM) OutlinedTextField(config.customDohUrl, { value -> acceptText(value, 2_048) { updateConfig(config.copy(customDohUrl = it)) } }, label = { Text("Custom DoH URL") }, singleLine = true, modifier = Modifier.fillMaxWidth()) - error?.let { Text(it, color = MaterialTheme.colorScheme.error) } + } + if (config.dnsProvider == DnsProvider.CUSTOM) item { OutlinedTextField(config.customDohUrl, { value -> acceptText(value, 2_048) { updateConfig(config.copy(customDohUrl = it)) } }, label = { Text("Custom DoH URL") }, singleLine = true, modifier = Modifier.fillMaxWidth()) } + error?.let { message -> item { Text(message, color = MaterialTheme.colorScheme.error) } } if (showReconnectPrompt) { + item { Card(colors = CardDefaults.cardColors(containerColor = MaterialTheme.colorScheme.tertiaryContainer)) { Column(Modifier.fillMaxWidth().padding(12.dp)) { Text("Reconnect to apply these changes to the active VPN.", style = MaterialTheme.typography.bodyMedium) @@ -285,16 +374,21 @@ private fun ProfileEditorScreen(activity: Activity) { } } } + } } if (showAlwaysOnNotice) { + item { Card(colors = CardDefaults.cardColors(containerColor = MaterialTheme.colorScheme.tertiaryContainer)) { Row(Modifier.fillMaxWidth().padding(12.dp), verticalAlignment = androidx.compose.ui.Alignment.CenterVertically) { Text("Always-on is active. Changes apply on the next connection.", modifier = Modifier.weight(1f)) TextButton(onClick = { showAlwaysOnNotice = false }) { Text("Dismiss") } } } + } } + item { Text("Changes are saved automatically.", style = MaterialTheme.typography.bodySmall) + } } } diff --git a/app/src/main/java/net/megaproxy487/data/PrivateKeyImport.kt b/app/src/main/java/net/megaproxy487/data/PrivateKeyImport.kt new file mode 100644 index 0000000..cee2182 --- /dev/null +++ b/app/src/main/java/net/megaproxy487/data/PrivateKeyImport.kt @@ -0,0 +1,41 @@ +package net.megaproxy487.data + +import java.io.ByteArrayOutputStream +import java.io.InputStream + +const val MAX_PRIVATE_KEY_FILE_BYTES = 64 * 1024 + +private val supportedPrivateKeyTypes = setOf( + "OPENSSH PRIVATE KEY", + "PRIVATE KEY", + "RSA PRIVATE KEY", + "EC PRIVATE KEY", + "DSA PRIVATE KEY", +) + +fun InputStream.readPrivateKeyText(): String { + val output = ByteArrayOutputStream(8 * 1024) + val buffer = ByteArray(8 * 1024) + var total = 0 + while (true) { + val count = read(buffer) + if (count < 0) break + total += count + require(total <= MAX_PRIVATE_KEY_FILE_BYTES) { "Private key file is larger than 64 KiB" } + output.write(buffer, 0, count) + } + + val text = output.toString(Charsets.UTF_8.name()).removePrefix("\uFEFF").trim() + require(text.isNotEmpty()) { "Private key file is empty" } + require(!text.contains("BEGIN ENCRYPTED PRIVATE KEY") && + !text.contains(Regex("Proc-Type:\\s*4,ENCRYPTED", RegexOption.IGNORE_CASE))) { + "Passphrase-protected private keys are not supported" + } + + val begin = Regex("^-----BEGIN ([A-Z0-9 ]+)-----", RegexOption.MULTILINE).find(text) + ?: throw IllegalArgumentException("File does not contain a PEM or OpenSSH private key") + val type = begin.groupValues[1] + require(type in supportedPrivateKeyTypes) { "Unsupported private key format: $type" } + require(text.contains("-----END $type-----")) { "Private key footer is missing" } + return "$text\n" +} diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png index c9dcb06ce76f65a4b176d9ac050bc77c550229f8..4e5afda3495a2046fbfd8a6b64379544232f61d4 100644 GIT binary patch literal 7330 zcmV;T99`pyP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91NT34%1ONa40RR91NB{r;0FW_8?*ITC3`s;mRA>cNn`z81XIaK)`ET!g zx*?R778Miz;WJp3a%`%rnnCb6@v$-S@Nnr)~GqLo+tx zer)-77@I@W9>?Z5P}3a7h8iv{G*qTMShi(ujZ>R;7{?(EXg`d0LYr}<-s3p7DR;-F zX~u3C`u)Ir+lGT?Lr0$tZJPc_k2Dx5SVMKwaM@L}v002QWqQL5+ArFsql>ZW#xVyE zjcvPMP}T4<-XaFd<4BLG@o_OU8lB44%QkJOq>Efy399q5m$^k@I@+T~@CaRb%l=zY zVFYGit8gf!nP(w+%d<~)I-yH5@lr`Yo!;*Y)9zcXAx@4Oa3+#lW)%{B87m7Um*Dg~2`oaLD~rR(ERblUwDeZH==!c(KmrFUiodlr zkSHKauyG8>=6GxlhvslBkOhE#f+t`Qm@q_Dm0ZGG`2rD6g}NK$uuRJUn_M1+6qrIq z`A`w1iYA;<-6SfSRa{|xw`{v!!B2P$B*CB)&qPsCk#kfelU>^`dkkqocsz{5K~0z4 z#>_WD^0I0?)24VMAd9rPK(Z9W7+`|=206hPHFXpo8x(t&k*X?|VGCwHj{PMuY@+5j=H zn!X3#@wm5*(Ik>k! z8;DR~s2cB1+H-W8N21Wob-m0Ux@=OofIs+zfWDir+NkIaJZR#9U z$=aGV!NX`0(Rv`g412v$MoUP&F}#VnWEqtzMswq08fVYby$Jt*jA5TSP+Mhbv9=KK z+L}WXbC58mBoX(AWNuX!Nm?%?)jn;YD4a)Qb(c44oUQ@evR$k?#&fAl3|W~}NwaDL z;$&cNS1y6E1Vh;uElsvoO<2-sOP)TKdK;sHl$AGGspsO)HtF^MV@HG0OWWn$y8)utg& z6j3pYHk0XOA`+mR8>K@6*OcHx&O%*`S4 z!Zx0?%R}4jjysx`3mnseDh1u-E&Bl&wicvo*v>%;6;Cwl6MGQVwOi+?YP{kuHN2)r zILv*LCpyx7yb3Cvs>S7OhHyq#&eR?UMlc64r-|Ix_acm;K@~Qr9M=S0$7rydYt&?+ z@?3!Fa+-PIFLFjrY6~Q9D2-8A1{F>%=cRs1<&q#pdb;oXMIT6xT9}2vD$!w(^0QCV zl2mB4cg59oB*1Q5V8QWt7zQWhScq}qt?c$Glg8L=+69B=?zlCs?5bK$F)3*iup-Lj z5illqY@O#BD3G3I)dtq{7{*~)P-z^Px&>kr?HpPOo22!`q4;6XSLQ)MYUqqG){`Xq zejFBu!ww@N&T7C@7Q%@^wQiw$wV&cGnhI(=q<=?P(|xHcGNY`;GsxxIxSD2Fvj}J1 zN)&U@<%&2mE6k9BU%TT4VN5lW7O19^lGy}IGU6#rXMVNn*2iJLKeBL2io<2x#lh$T zg6L!%$zy#x90r1}U~{fiS!ZG_lZ?u8^Js%90}~|=QAI^`op);`7&wTM_0rcMyfQRd z#BvTF^lwt|XPTIwG+=(;TbZ(9s#~NpYg#-*JkXiO2kx=5PYyp$UBe}0* zI)8}#k{B>+f)vgHtXcr+f?r3JAdADvK@t;stEK(xZ{vQVT2z=wL*^0d%GbBbT%dDUil=_d(m<%jS zlNhQ~CqlHlUnK`dc$3%)^Nd`0O|$Hm3uhjotA=2`6Cc%B#M#V|9MCQK_c$;#Gk>QI z7N|Gwiqpq4e3|##({{NXxBA*ShSpanB*&9xadkW}nK7^M2rJ)o7gR(SnULO9pd+$W z%t|A)T*=RuX&{rKnga40nC&e24}*Xjvn)8=)hr~YXsZUzR8VeL?Sf%`=eUdmCTt-P z`}I4OJhEZy&H3d4w$q6)*vt`(@>($atXpt8OA!p_%u15%F~-NjPplxn+%mFWzCdaM7;zqjQe55{wKcVNB$V&4qS(nJ6tj zLoC3cuW#GU*q=23^D$m@p6+qu!b%eZZz}66YYz)XOPS2AX>P?UV_bkOkRQGi;RH;N z6fn;89Z^{mcx;>2xFo_5sPCF_*)FqBd%zOwGd3Hja-x4>mQ-;dRWLaXjj$2eBL2qmGKg`Cr7ahY(E1RHeC09|TwY}RAHyKdK_2)mSLMIPr%Z$MG;+OG!sO=Nv^#I2pQfJhvjkinl3p5?8om zN$eGkxS-@$s#9Z$t}1|>0@zFjGYlElqjhL{0I&r|0_2uXpAMRt>%ayfCoJS9V3j!p zNp4(cbF*$ayVo)lTLoW#9w+q0y3VoHyAx^gdN3^9PIP`$uQxL5@d;8cwTxDd+Pt!Y zDqQLQvR(jz7eQLN)To|4R8(f;S*SGNay7R5=vD=au+Btavl=^gB*SfTI^CAzIjbcF z34j47<=s&iokpCo-mo#WAUtV}%5dUS80r!EVUt=?h8c&s>5(#bf{jZ6$1fFiwkO!) z2wxrRr#J)#Ld`yzAn}MpKWDN8VJ1#1Yq&TH~N|gL>&fRSPe_Dz<^n;)5Nwk+HgFOiV=}m~nH( zMhT@^by!~q*@8T=ZA^g9o5dCxw=%Yc0Oo}b#};Hv$%QE1s{8W*NEAQ`6>Kzc9br=0 z?}nd!)#)q0Z}U(8diLHATtd#g7-t{0!!vJQyye%Pe#3R`J@-8P#V>4s>vwK>*0(O9 z5Fg7Df5+xapWA-;-iLquwNHJ)T_>OV$IE~E-iIOLupOWGT_<?-f6oP76$#AcZuV(Hz+H1%%`H zJ>R*0@e5WQXIF+l{LrOS=Fj`#x=r`HZ@u{?cd@O|Jmc2>u}8WeeZ_TTPu_JPTP z@UGL7P4}@6KlaMk+ys~>E*?Jqfv?~8Ez8%v^VZwGef`fLz4W!u?bl0x6T=<6P7LZF zYeyF#WEw9$=B#6Zu^ygD9;}5I6*lHQdXb{Qz)@yW%aW#>z2zAJB`Wp|s3GBvKY!!J zhxUK@@h2~=+PA&=X+fnHj30g;J@B64&Ao7~y({XclaFZ}wgcf4@(?*F** zzPCR3hIc&Ur{41Pum8{C2Y%v4P<{4au6*dN4-)G96hp`)#>$&hq!CwW-|>nmi>Wd= zok^L{m<}f^W*orWkW;I`#2A!Km7?`7XMtfafkD{-!1_lYJATtm-P_;v)JHBJUiRH5 zulS)0XIBS)?!9oK^0MH0^#1#{U%G$0>6^pV<89AiYu-Pno8}XL_Qrh17KTM46P{D&sq2^5E4Fh!Q}~CDf4^A(I}(v+7GuCsehuhbV>pdtqt$PlJ)jEe#xDop0mfDS6`V@u_? z-|@&d-_pPQrKeo}-aTLYtG|BYwLkL|%Dfys(~wEQD_(8Q`5*9q{3DO+k!A%giSkLz5WH7DY=la}YmU4^N)gf){T!-zq$KQC{#rM7E)=&NWl@EUK(Hlfb(b>HTl` z%1eLv#@FBb%vZkg=11<|efsa7Y*Bz<7)n$l=fn~TL$2t)5PB}OHCQ_}6B1$rUa&Dg zGzaQtHj-x8F-{XXrg%F?7+RQiVQ6!9*|8gs`e4Z9(xn4_?V8oHBfp<++S4_Kenq=u z^V4s-<@ql@ec&_OKmN@Jmwo%GzkU2;zyB}+dH1_+z5R}j1AWn@ts#W5E7=ZbiMH~G zcY}>W>f7b3Ki9V`xYn{HDuES;=Fom!@{I^H&1KraQpFATC2{}k+xy#Y?jQK_{-K9< z*jYUoS3~ps=dN$KuDkEkSGHG%JHO)uBkudJE6!A~AfA?iv3>3fPfsuO7w_Lb{@{MI zZ2O}mJm*Cxr>FhJPj4?idWMrobZjBy?0kyEfK`{qExa+e;=S-sP1;=pq)3_^hM<|oD-+c-fh z9&cs(`*nVeX}Lr&Y$LOk0JX6!lTo#2eakwW2vX>3HB^{@T?m@}nNDqdGU{@Q{mz-c$02EYb zbP^SW4!CoKK#oHepM2Pf{fK02t~%wj#)(qYh|y3%17^U<7L+-n#$evNf;OZVl`3Q` zOR|h$(p4t1^-CMAOikz&JT+*|DQN0vcqQ7xnX{h+0f71fnc=A51&pL+Jk+=xF;`T_ zhP~e-6F&@<99R3L2vRXKk`SIe!7T~b3v32COO$66f^m#8U@T_Drs+Q4@H@>>VACO` zCI+Z?RCfQ>{kCgIbV!@*z&IFC4z|!PMN{L@QW7#ap+b9lZkrr&FNJ|{g zt;kF~p#_T_pfHi1**v@kHL&Xvy>b6wW=CN>X!et_tW&mR1Or%4Qy+35_rMl$nP}Ih z^+dl@26kB4a}QL>328~5MCg%Czzvx!sw=z26K1HKl0*o^I8mXrurv{spilk)mB=6G z$4D(RZSY9!4ifT*8HL!ExG6}d_i#9TSkHWdl>g;&2YktY$I=&8@i&s zSWl%e>g)jJWopP40~#Z0og#^fY>V))Qdgsr8+svQz6CvCXn}_bu(+-z~ zrzlk_SKH&RF~_3DvTzT_>)x6zNaA+mXLBut5O2}^QjTP zj~rRcMrI*Lo^3x9TV>AVNqiZ=#*ZRQXem5Kq|~tB=MvZ8W_Z^3oGmyKFmmk|{2CUq z6%}a-4D`0cP`;B05+2l%VJw<-q|zgF#c!v4?F%rZwPedMebWyiLK|P^iJS)Pj8y0| zgButGGtDH5+Xf+Qn*$4M@rc2|qrhMVnU_uAh%k9Skaz=^0+To2W|tY@->IWZ;F{cmcc93=ool(Y%0h*6*3yb{EV%l}S2yP#tpuftgWM5q9UyEvNI8 z4W}~{-tJW9QM#+dpa9q;MHzGa(Qs}LeD33m(TGr~_m)0#jG_ijva&ycx}q!nghQ-Es5Fxb z@d(L+Lm?Xn6DkuRWs^z;m}7LXB`lucbM@x95^AARe$a)*9^nd|qfh0)k=Ua?z^)C@ zv-J~o@^BcpeY<7>Yb*&^X>p&kk?GfNhqF;^3x1-wHs!^>2^C%kRj?^MREkX*$B-5n zOc-esEhz!1BdE45lQ=$3G3pXj4#eNG9%^1Pm%DPaS_>ByYW&N(S5Vl)NBNs3>) zB@xC{-BfQOnxq+%u`B+696hrt_G3tNPzpbV3IKEF;C%&Ba^y#-zJ?hfixK8K=nbOa zglPxD<8vCz%FnTw^Z*@Kocct8+%2LcQ`qPbY@}t-;&@}GU|5hh&oSK`xo^(;ZbjsP zB)|$Dk0jorQXV8EuJD6d(=jyjrQ^yxPP$Wa3Qux`ibrdglf52>HHK*t0HzQvXv1j~ z%mBukf;6GxK|T|`qRXhCLW`DQ7LU}?xn+SxV zZqp+^9?ZhVr~Gt}#oOfW{1y&Kg9>sCPM*-4Zgn9`VAtqWE(cYzwx}@Fd^6GFki}NN z4KfxBgEk~db`Yj!W=M8*!dPOac;JO{719K3XiZQ7XNu?hNW3W+O{5L0_keK!0M3WOizFc2M#0XXqlL5Szgx8z#3W-CqH=Nmba`EuZ2yu9EI)%n%n%xBt*qw}zoxA+@S9w)|VGsP8PLX>EYggOe|d=^z{k~4c?XAK{<_AJ0in2{gM zNEa@ckOUqWWHloXZh)?sC>{)QG7)}?E6m+94WA~m?xh4(&M{YJqTW1ptY?8Yqmne0 ztkI6e0yNmBc;gzx--o<>g%5=Hoxl+6mIw(ZFBglIBESejR2<_7D9$G*G(=J6MU zR3Ou2CfDQfjG3G-g`7l`fWuN^$p`C*u!WRetrUzd?(+2pau8U@cUA12z!&gll$Jpl zu);H=s76^eQ}aBmQXpl!xMX0Zmm|~gw!7dr#jK#gW+u`XDyN1W{oeP`RB%gNYdx7$Lx34U#D&>~YNaf6QhADz68rA^-pY07*qo IM6N<$f(n7bp8x;= literal 8052 zcmZ`;1xy@JlU`tfh2l~ccUasVic<=uxVsl?aV@^Z-MzRkR@~j)offB192V#L=aNe< zm&;`4OTNjMd3lpbChvu-e0qJ1pprYQ2~blfEygW4RqAiT@Z>*AGgv zsDIE9FbE+79aO9TD0){}9ajreS4&}YXUl&8;O6A!XX6xNUfBtVcZm4KY2^?xEBLhFgA#ik-2O0l<4tfQl=U@KerBe4Gaq@(j` z`EeZ%JQDUjUiX>uIs0Y}yMcX$b@1O$Mr{vE;6|t{G6qrlWV&5@;gUP&g(15#MY3De zhOt}Kg0SSZEZAAFQd`E6yV30(r2vOPGTjjnToWgJkV>wFL|b=uP#{9h18ginUM;_G z@y8q70aBE_4h0q8H_fZmDgdgu1cPh$K!dnn`O|*ooox9ciXCdMl5vsjgd^EQr#Yq7 zLFS^U^!TyHF0RKo$h03Tv(TXjPX_C`d{`L)hfK)!?W`;El8A&O(Zym-<#20~*0q%#WBkOWnUl=f`VGFR#?_@81mTWUGD4#7ovqtF&L>KLvdbpeRgJ?Z#!>HWs4@v@T8|%k4=HN+?NEq zp-p@+G1^9@VR2F3(A9%((#{!$k3v3i6)7z0BXO)CXgNe+tI3 zmRZNi_y~Ur4WusmOr3zh8;aJ`ldrNT@4la(2to`qbz(~Y;?kTYF+TjR2@1pOY zt!B3SBT_|o_ng5gMp<&(X$lDfI~vKT_Ji*buG)E5Nz^>OAj?HF3g*QM|o8I*3=GC77bVL|iTIJOopiags&2!VA3|6eYG2fc(?BMs;Y z&g?$#V898ajyC1}0OyMo<@d;+&zIJhb9x`578HC*RNWi5R;>kf$WbypHO4g9scp91 z4{xu6s{S;YR$7AkA7nC7wO|luVbht6=~!G8jrFLFeJGW4ULSMKMTT1xObCB7pq9kg zPP;OLP{}<&(*hTY-n}81J*g6{uxNEkkKody|N_xM#+U;FpXlETdE*Gn%eO>l6<;wNYv*Tp4!z zp-GP^ks#P4E|)17{L{HKVppE!k4|<%HWxR2mEPVMtszY^-gxW82bK?uXu>{;w_fC> zlWKcUX>}bV_auhp>FK$G`ycByP$Xy+pY1iE^5 z18?!LLX{Yl^q-3M-@7BtEka}T7-+Q{RFU5oVNwp{&EbxKTfxMZsvve26ZZWoHI;~i zZ6nBhFVOtA!PhEopsaQ}7tJ_3=3`-PI5-WgH(HlI@Es+nIAv~|tBR;ChZh42b*L_b z_Of1x4`Jm<(7F9Y$1aA(vLw#zk5q((W17#oo2?cAiFKM)W>zefy1JbJu}p{-z+b=@ z=bY?tY>^nu&8YufOOxiqsC86}g-RYXo@S&b10L+Gyk6w3Uhxy|dEh1(<*z?QK+EOg03aIuq`f)N&r_7?&PTzgU7@K3-ei>zknTSTy) zv$TXI?j)FqWO3VE1HQ82R_Fv_U06|3^tQmZDvL~Jvwy15dW5m1Dgqvl=)QNKjP8Mt z+6GIgJTxbMC)m0}KaktwF-Dqlc~abWS+Up!A;p>Oe#jJ4W!Hystc*?o@G`iprl3)U zi(Cvkf6_8Pn+Ode4D=PgDFS*3jvMNZ3x>4I{2Z|`Lkx-99{=Q#$l^0$m}8kt$xJ72 zPK#*b)GcJ5I#N_UP2vUY7%eMjru%53e?rvBtG72bT}~)xHd>=n^-wXGHkY67gtL?# zwD@q1!>WqvQ?V!cY1Hy)Epa+Dz|58TfMDB#U(y}(lLrQJ4mP&-)id>suWn

EcRJ zNoYIkh(&@>kOdZ2R)0-L{CJRv545{}c6MBkv4DvQW!M1dQRza8QA$3`Wf@t6)~k>n zty)JrX61A;TR&v^cU@f}m4n0BwZZ5SbI#8FKKwED>+^GD>TO@;8J|x5w6e%

-rX zk&5NluYNDAMmN5UU)tF>;N9B-epkInaE_M;ZHMQ-+F3#_!kT8BxftFj99kY5wf;+} zw+9uDw$=$eK5zOWl#MojKx=-^A%iVt;(&ntlz5KRmXtRA4yTjDK%loCA~HSr9w~N? zP(T2*XrSR1OgI!*V0wDnFtzC8eE7MUKVWZH78BkMo{+lVIv5XrH}1!Lij|FaEmh!#+U9@UQJaCHZYh;*{Zd>T~*P zfj70JNcJap=^~0~T)Ucnk8lUEx#>gv4}3~n}Dq6@${EL(#!8tXA@RDZ<2Op**#UAQXL;6UNSp(#tX3jZn+H&9RFDB zx`+RG*4*;GWa--5z0Z8WZa?m&`wo!nv&~V?+QIHT4oUS}J7wb#cRP)2jeS`fdL*D> z4MG5!08l-tqIBi#xaTct`3cfh&?hIKBC9|F4>CO0;YD|FzemljCreUg!*3a0RieX@ zsZx84KSZB?YoB%A?ME++KE_yq5CB>%M&7o@%yK#lE)4`oL8f5zT*~JG(rOG(hMd*|xm*BM$n5?-BRS+Z4of zGS^Uu*c`LtV+vbIb?bf{Ht^*|%;PDJi`d~BWqwR7Cy z;5E1MF_sW&Z2C4?#4xUUT4W-#T~5J(rI%gISmR|R92#j0rWX(Yb6w+$CUtfr0&Tfiw5b$1k(EP!d?IdW`j>*woo3D(4k zf9LD(Gyertqbo5=&n+Jc^d36saKiJLk^61!5WD|jEQO*Wq-Z2=>G{%S(%`G{^W_GS z|HA2}G*b2{;<^6U&VzVV_~SbbVnPWd+LgW_aPJ#`x=*dO-ql6#?bh85Mb{}iFI#Sv zrqaKiKchNli)Oa-!=uy4f-1d;1I95ALFEB;?zZn#I0?3^j=r^Y&aL zJ$tIs-VjWe8`(R2IG?Q+_vMDO4}|ydu7sc6M?Y@96t`6iw(#Bfjk3?sfQNyII(c9l zHYQ3wM(Bwf3_5G|oBY+`#ky(A|B)!?Zk%zST8AeLse7vZcVy$kfO)LZ)9u#`-vgFU zdj@8?P-eR=IOV(N@HI-G>p4`PSnLhfYZ0eb(w9TA*pIC*qjM#bCpp3`KHGo0zHL2m z4$VX0EgXUu%YBdH_ZhK>R3D^?pH6;SYqz_$z8*T>?Q(`6^_}@$FZo^LYoB~kYR`no z)}~A$fFw|X!+Iil#Sd;B>sr_*%#2am*=ISgv(d+2v({fuOG1}4o9dmC<5f4~fDyXxR?P(FjhLCE9F+zk zjVyIo<7pR#o8BTlEOMZ_OE^c+oN)?z{IbeRzj@!qj?aJ!1%rMqZ2A86f4SjU*;Ei} zBVNZf^Ze8M+xqm|_R5r)&-T219WKMqG^t_f72&1q&c?PUi*V}x;gTG1=iNQyR8D5{ zHXXp=+qWZ^9FewXeQ}qwzh{2D#VQ7L>(5V14t}O*zYaFf;{~BS&-=y7KE+o(5786cTr%&&RZ1Onsikm%$=%IZHMJ- z?yN%Xs=}OtqS&c}zPr5je-$vxRRpfnd+bQf3jw=S)1jJIw*zC@9h zZH48TYfDA-U{v%}cUtXuY+mts_+B#+cHE7*o1-rnFn#X}{vCYgW5FM78S~@rFVWW1 zUdg43R4$-k<1wbBTB!E<&r-*EcGE^`Bdpv8sZtLE%wi|keV58o;YMFw$1H-MBSa`A zCB9=Z*XYrAk z7pZN0RNW9f;z_&4Y)|7O3cn)s9nB&kKk$B^JC%=;NfZ3ji-@{;L=a=Kz0bdl& zXnQF@G>Cw@VgsVz)E_b4!S<*5QDrixW`2&wY$#4}<=5P!B1aZSZ|v**hJ>L!AUsR< zvhm03^80sBcj4JE8b_oQ9U=xPy6Dq#xt}IsMn;gp|36Au_Suy&FbFWR=;)&1$;M$%8{qy9)1=dDU6^ta+@ z)lA>lm44?j3z#LqlS0I!=&ILY_j;JWrF=dcd%b{D#Po#pq$-}Zo?nRjY{R--;VbI; z?+Wvn%Rne`pq}yZjp*jgX%O|Y?a?cIa%k%=L&R@4nNqa9u=;MbV)L$1AMoKk zfByS>@g{h&_7>OHSl5-vkA8wVb*?YEM#(UiNBu4DIU0_i*eYD3zffcw8*O%5m&%-e z*FVr1_Bk$;VFKvJO%MR=qMdOx?cyyW_xDYrcfFY&U;H-t0~m93o~E&V(@t7>3pheG z*?#ExWbnR8K|L$kSljeoI(uI15D=gza_WUM`LiMTD&rh)HhH~>J+PF#V@5R;@{CtNfBpc?S zPMN#cJJSjcFc}0(EqDScJ73R#jWFu=(hVk(GBW5J;zWjYtGK!Rp$YJR9u=W@+1+fg zR=$z;-yR46h?4@T4CXA+TVsmI8sbI`Hq!O?Ri2861dI`-2wDtI&DOwEgDH0%Nh1L zD=U~qk)Uid=SZmAm`D3w&%t_KhmSjV->8JvXIY>H!sUV-#J~Z{>67iroxc~%~Qz+h-`TpXDOLS3>T@I;VPna3X2-F?+PWt zUmkwyy93`{mMDK)ViBK(uNkiAgs>@`BJmBQ5?V{TqB#D$lvdJSk(cwaCG_*!DRDpe zkU0E_$gt~Y+fA&o)1&VXos%#2j7q{Gbc$wipS@mxnYgc3`@USqPZ{`K2HsEJy3ScM z+Ve}J2S{y_-f~pmPIZ00y8L!O&B$Tc(c%(9+LkrRjD!;}NH$vTnYMY}3JAf`DQRqv zF_161?xFOya61@cH}qY68~GIay3X|$rv6msTw5Zrb7hO+D7Y0;U&?{~>*%hhcpV-tVkLk?3AISdIO3|;9THTdy* zEtwU%0gDcQAfM!)z5#_}Y||~Xejmf0@2V*fhE&F)4G;pOWS%s7_p{($JJPaW6GKJknjQvc-sA50+ zo63F0VEKAUgPi%%jMxB4`HRDC#wUkWE*Y*KVLd!rGUo!+V6@;=3eyN)$-{0S7@5GF zxW;=`yQ4SC#?}e(R-#Z?qN*bciB(N)1RSB8`9P}Oj0qa`GqY2tw*gl*Bf9bw1<2z# z!}Fx|V)bj-43LS}y`0zDuUl9JlpPvzTr9R*v<4GmR*0q|UGW1KxKw8-NWOQSv zXYhyzKy=ekii^6MjZUcnvRn|*3>jN0fJQbc-_&HO;ZycldkWQz${`asjTgBwk0Tk_ zlwF!zZh%j zS0Fi{EI`bxP?%XV{-cHEfEu$@tlI!uUw51!)?odSB;KbH^F!)ta!OK;Qej&m)?lT4 z$ovRi6Mrab&1KDJ?m&$IWNJWolm&9)FwnII)g;4LYJ(*vTrtaB#Mi;&2d zg{a8MNXVWV(X#P_ExY5`mW5{pv7%e8IZ=qeWdY0I^w3C3jEQ0|G6GxHmNQW*pF>ei zJ3f*PKH3SOGjOBf9!jR}gAu_{c?}n22$*&nft@W0A2*Ddn+7+U0lT|*qf`Rg`c4jk zoib&H;r&h}yIsl*C#!mzgn2~?d#w}!8hR%r(!_U2FQJ<8EQ(-b(S=?!;5}z}eAJE? z9-dGst11nvRQ$>32BRno0vdwuNU%;%+zdGHbC?R<;piz7=f8(`t@o(N7)VmwtAa6F zp=hSLsRo>`VPx-p9N3Nq0Kwnli7c`p$jD{$l=keHX#`LS8LApDRlNK-38^nzBVsq3TA9(G2(C;zU2T(G#zg=jk?9xFv1XoB)gV+zaUx{7-K^-$y=uJAo*H8 zc^NZ<*ph$iJZmzVSt!mLdePFrLIX^11MApUEd?bh%HCwD(}7)&i;+u;JbmvGoWP}m zE3Z;FLyFKGVo9P>KNwB3(8s)2pK)DkxV`L!>h7#VM7c%iZ6G{`sNMpHHA>#RV6`g~9GiiD<=vF8YB#FzW2jl2V>5t7Q~*hw}xp&XLWG zfx#-&c1#?+YkqEH>n6nJQ!6>H#X8i8QrFPcT6qZq{ApD-qCO7WBM3RME;+WUf<``K z{P2K^!5>5<(@OJA%(O)>uXfd4Q(SeI7N_c<#jmKCsLX4oB&ujN!gRWtV}hd6EqO6$ z^B5svtDdS*dd~c!1_e@D1ZH${&Kl9^!1I{WeI*ThRK$hAqPsXT5)9By#c20=a|($& zFA1jCWW^qx`!Tu$*;(}*hnB|eWe)=*zRc*Fe4Gz?BO2hlgx!>KDXk=K)S$`{*73PH zlm_R!ysHH8HvRyNxWE^kFQaUMDkE))J3=HKjt~e^DH@X3RXJCnc<+)8OIN75E4Oe> zflx9=uJw~4)8P31x(aFztP1YY@8oBau7{)08mx6{+adAKa#_EA zRfNF)M%&=ShMWz_5vS2xAX5Vr{F-UqG_0lR^ilKHh`*5PWtfr*z=U>|d}_v5!ugA| z@ewMB7{Ufv5=D}HqXAP7@A8N!|fsoKl!}vmzGD=||y8*E(P+^J7=RAo&G*W!=WyL!HY^7!< zwc|R=thNE3I<3rN6b#l;#e0I8ZY%l)T}l$NoviHNrE3OoPyocO(Tgkr-L7HA(|(sX zro5@hr0BMVhAXL#bs(U83n}>|3>!(KW9EQtKfPU3;TVyg5?BO0xLPR0 zxWsR4Zdb4B)w^0p`0vc_V}pB@%(;WY$Y>bQ9$Fb2BL()HFpJM+;{>n`ueg}ZiU%pO zp#?Xng56i$uXDCk2(ToCV+#Z=AuEG+;wF|-Clkfd@?>PB*xZoSIkEv&AU>gHWJTjN z$!}cdDlevf5<(hWjJ!NsdsPQ;1#2-X)naz4!Pg1BuSES2|Dg#F{?4~a^ymb_(3_M< zCn5^8@3qAk4pjB4p}1j-L9iB@bY=w52srbMdf3qK7dumJBOZ=jwiJD1Hcj9cM{}{S z>?FCZHBe@YHL!3@qMxDFJScN$SuMCuMHp&C9pw|8Az0b1!&P6okkMeWi+hIZ8Kf7; zDk~kJFf+T+L6Fq93Hq?M2|{9A7ZkoPx#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91qM!o+1ONa40RR91q5uE@00|JP07*naRCob&y?M~B+g8@M*4OTR z&b{Z}b8ZWi5(yD0F(Aeg6HKg9VkwrGA|QWQxk_m?L9hX(g7iWpfIy5uz|u;hXc9|G z6jM=%rIw;mKx{C8(napMeRu9TyZO46-|uaDuaS_FU(f#y(hKX+g+uU zfkm(Cq%Y=R$|{5W`+|sRGt3yQYS_xqiVV90m?v?{KHRrFoZf(gZ>1@wNVdo#6=n;z z=-nft_WfQn11{R>E&anUFY?On2giU5ZgWXdJ3X+=8v5?U&blL)bj;rEPJr1{sYd8( z6fNQ1W6MHNjNt6A&LrX*C?e{wG36f}N22k96gGI+=w1B!qo9W1u$=N_r?9@iQ%gW( zvl4|e-_x!}ZKf}~P)n%-5sd6eEh5@tE$y%^`htpu615plPX6DC32lt3ES8jD zr;O=UEd2$6h0f_60bAu6Um`m^c172K++$usn!{W%Ie|gHwymbbB7`nZ*v3cgs=X~o zk0L>!KtR_bh53RnuIN$SktCa;-B^_MU-tT5s3pXTqKYK}Z}BP5oLHT{nTW%b2(PJ$ z>=H#M)%0pb*;c2rTEX014sSNftt|h-G7Lq^II%zIz{4YGC?QhI%$CJ1Dj~)&KIPP! zEL?o7Oh~sk{AC`I_FzVWOF!<@m8D`yDQgh?pv*E5q%x#C?bL<{Au6<~%!>s=dG6(S z`lP#BC``3%R#O`(S{XDE&j_ehYA<7qM6APcQ200`%>g$_v-4p+%P*Cr-AB43~Bvp*DMDUN%QC)SyI7DMW;EnHq|wY_R44tU8O?t($6F*F_5TiLur|*Adhv5lnBiIZrV{ah}f;`xCN4x!xqx&^_&99%osb zHADB3;Es~WgM zQ_ICxac1+8Ftt)Bw>{x*6YWB5U9|6w4{ckyfrm_EO#+oLtuBefDIMR^T*e6=ehq2} zs&aACBB>{*`~9h(OkMJd2$sm-o%)z+S8@0Z1NajQyVRx>{6INWPQ9{$%6^-C-;#2( zj-j5W4YDFg%O;IV0v)1h2&VLKh1qJh$}YW-5?GOml5mYce8H~FUp}_%ZfNa7qFqIA zsWlmb$76GBjY(*kS(xTA$12Y9o=T#SL-OLUt-7};Flw_O2vU#pu_0c`nH(n*5tNtZ zRJvVW_)@W{r~9*$3$sg_lUl=+US^?@mJLcqUUhBaboS^gg}Q|sVGU;nO2soK2F;|O z?N81$(}{k2NXlbRtpZ~M+>$p$x&Ti~!h<^Uq1qatQ`l2u%6YGMjEoB*Zv{RUWZ?)X zC1~lAuzWnD&wAV2yp$5sl(y#hU5Lp|>~M&0hE7TVEO7;0v8H5MD5tRKX(cM*31#c0 zn>lt$tam48j%pa1MWeIyE}vG&>W_{ZJJdvx70rmh$kKqWX%Z8aBQecJ%^>mLneOqy z6B?3zcXz|?sW`c+S5dpwM|<(LFnevVUR^N>o>-z%DgX{;dZj861q+bRVp`e6Z8&6& zPB?)+b43lbIBZ*{5rd6?&{w?+vYbpEX1P1Ph7vaUZO*=;DMN_qz_sBI(axlbPHoKx z+!1jJy*M|)ROoSCiPGvqApCmBZZl)CvvValy~_Y}l}-HUO@I^(zZFf$%;tl({E@Pm zExI^Xob4|Tr{{Nf$@i^C@fCE{Sx>WSc5VDBY3HpyVch{)rx4JFspA=0ET#Ljgw`43b#Wn~a6VNFBKLRqmj5sxB4 znYg>tB$#?Jt80!RHWotUWy>rdBPVKDl@O~I26s7=J}G+7Mq9IE%ogP~qkXYOI94u6zKVTv?0Kr|+>HE(cc3q4+}W*C+w5I3}~QqDFD zH~w_RIJ1W*&X0#-D7~YHaMPRtn_4-^a29}M8h06Z=ex5D z7f8hk+4w^ykf;qQ3$iSvFC(C~!7!QA@(!smXaXR@5(l%LN)jVmDIIod>5|~5{B3Fm z?fBA4dO5IM>`%^b@2+oeukQ}GisKI4ZdRfZ?NX)5kUrP^sYr~j;gKv?7^kdsDZ@PG zZET5uhK~B3%?60u1$3-H(2?7aAqGv|&0N`rLF2MFF6CL1e({g}Nm5`cg&h3U`A2TF zvk4{$GctlupDLL8=07r>Sdfc(oRKkD)2B-n8p4Jy1zS&(I82x(0x(Zl#gTKw9Ukp+ zRrdfI7upMBo-3T6pYr75=9a_u;Z||8I5`#y=%}MYRm-zQV+)jMZW>$X@GVoNE6#^; ziZS7>6lDbr*J190SsQZZmf{l^Ja@&m7fR}UHmn$vN@UBgKW&CzsqC?UIu1uXf|{uR zyYut?`6WtwZY6JR%w%fQP&OH>tj#r`aU5Ndt^bj#k;Sy$-F9rl;DC%%L&uuYIHuAR zINI%M-Dc{nxAQ5^`N`SE$r+ixxxG@Z{GLF9uu@)r6&Y`~6kFA9C=7W}U8W4@V;?(FDsqrE;lPhYX7nPN9w>>0MR=99gVPz_Na@((NuT zIkt&kLHTBj8}ThR#CjCSOWoUt(n&+}lo4b9W^Fi!B2I*3#u`AusbNC7cMEegQi!k8 z>6Hvc*)UsnDMorBkdE{H+4ioim zT1qel9exdp7Nm?r>O+wydmNJ?6v~NX`2%H_mGCssBg=0HbG(qE8GgD+ zY$bAbi5$M@$n)klDS!Un$x0S;{%CsEzi}@j4OYa{Z4{yZ)n4$pxr;0F(P zr`}Y`ppmhh^6+1~g`r45r4_;EKuvGxxS^7DI+lDek_Of;^$J^@(HM1-j8{}7c{Go* z8%V4YAtu!@ais7;cdVrqO1jjjX~V;L5O)AhAFzhs-uZG#nF}HY8(tL8UTXnY=`Y{P8Fl5l_*Nu zqz5x*4BLt-Cd&!KDq4k@!6BK=dRP+Vd%A){(1AHUxxC%oUfo?KxS5@TWT#avp)5>+ z=?ITe9p>oMD)UIM450}Xk<~oxybA^^KE{nWGKR)V>hvWg@-$n7&H6A;#AB##uEcmn zEG(Z;_q&S+b0p3%Qp(M^sCxDwQ-{aSF@1PcVM;WKdJ&>R&+A1XsdpE)7y3a{Diy+= zijBz5m9!egPtc7Dd8wx$~NI*G@*hO0hjNOtb0UuI6>@(ji&JXvOSNr|-;W`2o6(55K z^WRSAVhb>xNEwZiJCZ2zT9SoUac1DWF=|;tF82gz z86$7l#W6r>7Q7wN+tFrkVao}_pf$J(16G`2?mSb4%xsq@yo`7H^zJDXmGa*W1Vxn% zhUxSW7#Jzkax&JiL`#c+w6FFHh*)lRDpBbgJ|_WtmkE?r>tmeH#V-MJUN-(Px0z4(_Dy~%_? zF?7Qu(2?EpBugWuKf)#<@y*OcW4fp#l^qYu%y8#AMrLY;&({Hnqk@irsaWS42SqI7 zxE)2NBbaSgkwmsc87YBndk$!$t&}P)aTyt2UC5>!JP<8;TygsFgiJr>y#+gv_TTsp zZ@iEutWtcg-WeHqsIExqY)n&`b#HdcA8Ru9SAw@pkD*Fn0K1lyn2PjKz$b`i58chN zFWK0yp{c;#4j-u6%ow80{`k^K=w93VD-cy-cFX)r(c@wIR`Ha-N_8 zL9RU#)s^RpT<~x!Lq*uX3=r=aK6@P%Zjm*xs*?b&^?VxN5N*v>9~2XrT@lSQ(|1p~ zwhllgDmVy9VKKQ7SHF}Er-MM{AYxHvW72wbk-nN`8ON~7#P`q`V(kyxtMXCg;;Q1r zgYik;YY$o-PWp`qq0c}|NR%OQ@9BMpov~BIuDoGlYERFS*St(3gFLd` zV@8C{$fZ{mrcgzWTBou>5p8$MP~oaaoXqdr+nc*vvfjCl0Pex2761fUoA_=)6MWe( zP5hXVMJ4Lgo=QN(e0Xy4^uS3OnJ%tE8?4pfK#8e#rf!FnVUMRZ0~VM#L0Y-gi0n~8 zy*Z94ucD(Wxyk3$HPoH|``v>F2f~zj94#%(&B93?a-RKw*>n7~scRlcYzGiV-Zn{RYmd!hw?)lA!bQ0Qu%!kz0p` z%=b51F*`VR#9;NNXWW5av6$eYBoRY0d7^Xw;N*fu;+i=vXT7M5m`lFas%HtNvccL@ zfYgqsU^HQJ?*LzcfYRedyA1SVGa0GRGEU=U#~m&Xi5((hZv0z43B!o{T{R{tY^umdLiJ|$@zYN zPMUd~e0%UABUv#KD+^+Zyv?xmj3Y51s^H1H1F%(i1tgj&$TZ{l`i`d^*%)rZ9uYLV zP%{qFga|d3m)SZsLT8$-r9tTmwk0@5Cxvh}cEdR$6-+~{eb?&4Z38X(Y$j>6Y*15? zBLmCyBmv4LVbGVM#Pa0q?1c515Op*NSVcjI?4&kQ6Pl`)W!V!!n~R`S7%bhUt4(nt zTW}5#XQ!9DlZ(5%>l@Z{7QKiIhF)ZB`q{0sjk*+=_==nPg{MAlY*xl*GkuOaGM(;w zXi;$w+^+1bJbaEzG9(BQhvDA0F5>w_yel@|p-h1WWy+w{`6**Q=UgYJy;jllYAl1= zbWAhWEi#zaP=92m3x6G zB|Tu8C0!n?QlSWcw2O1HKR-X?MXB1QAjhJuvCH^nl&lmr`mdD zCew!-oh^`+fhrzlMA8b(G&e477S;Ta0uwx15q(=+e(Yp9gI)f=lKB2Of?OB$pLwYs7rv53Jj zM%mbg_aX!&1hw1M?tT^lis$BQQ!+z=$Mq*?ClBuSXE)rr>-(W^g2XcG(<~ipPR@A$;yhB(0>knA{ME>@0W^2D zfYHneUSxA@m-O=3tZ~Z>?Fmtl4y+PV&KjV2U?&I}`n>#da(aGvcyr*LKi(A~*=*`j z1yKU7;5Ajf(y%8yu{>*TWsoXAP0zjWyq>16@m?}JY_cW1)`Fv5=?i@Aj2ih#GxcyL zZKyUVvW^kdtS*~cS!@UAF%O+G@8QzE$`vGKh{2@kSec}jKI-gpxOo8PolYiC?9sR7 zb}UJ%V$TtFvoP8x3gM~cOQW`r|M5BqV=(k_v-aytA{R^%RR1dPpmZ0P7lU|LI<%GZb+q z735f3S=}?}Y?PU!!CVpH6ZNHYFy=PMij?w^Q+BH_WnmMux17@KycAJ77c3VSTnab$ zNxX1IJb0l9%)Zs@jQ$9cUOuc0Y>Ds>4xA1l0!PV~S`gY5WDbnn1J61IyHc-YGc*?nK;|zdI@!%3h9YK~4S8_8P z^K!00GlBz{-YD#Q+6dC^uDJiG=b=+$(Jl>JK8x^xcQHL3t5ol8p)yc{H#*jkG@x@T zH}%n&Ky$ByIUv`aV~EYOJlo2$S+}_nsaT&b>1nF|9;Z_AeC2XPyuXq0RD`1zq>(w5 z+z3{{G^m2o2$?cI(p2_UmQ*m8zvp@Sw63tVE8_i7k$Qv?TFek=vsG8>+R7{cyjpd= zPRGKjg<;kGp6YvuH%jqW%xvo}n8}3|&+*fSP0KMwtu|vuBrmykJmuSh0i{?BaLgX= zz^+w6X%)*rZ&nK^7Z=>pDg_&0(8}<%2|wD$VtW@49j^4Fs1x3zihMfSrdcTc!us`$#wAUgw*QltJ-FGg%w z>P9bIm%IbwiS8)c80gx7>5L*xp&~C7pN_}qWlV%eEp<7DX zmMvK`IGy6-wa1Z%y9@8HjEagRCfXbWGJ`2jvWgq4P(0u95a@V9T8V0a8cMYR81MX|8xR*h)p0p^>M2)@`~=F|HbBSglyhm}s-~xy}yYGdz7d zaHpC>HIWF2H5e77+M#An0&9AXZ0Je{vET1`(~1*sq?TYSmNiM)APOv-jO)<_pvF*E z@w?NnN%xx6xq?D+jf{xYZXLk5h>NziRo4OPjtHItnPY%5KSo`YCVACZ!3F}ul5Al^ z33CLeDT9_N>qWMej*rQ1Q>6{*%ICBcA(Y`4Bv55UTPgAoX!Y`6cs9FQi9Kyv!js&r z&>tS`F8Rv+Q!+&0HNpSGF9g~J>ZzZ#sKdS^PXPIz)*ZiK#&c2=xO!uSFcC~kE!Bg@ z-W~}_%W%Q<)?C4&Ke4BEQoGIgZ1sV8c#58S&_iltdYfP8f$j?3xN@dIf2e17dTNQZQ_0 z%MsA#5Mc{)aWvA9$H?7*Yb~<)8sQ()K-$z~p%&V;`r=Z0 zG=XDfnsGzAm2^cBI9RV!rl+chrSYOL3b z!l|hNg6{esv^HTFOouc7E31~!N6KUfnJied!FK4J-akD&)xvCp4~LYvAO6S&R`MVe z^m2E~yJNmo1U(k4ft9hcsjGs{W>|aqtC|ML95hmVM)BF{&KuX!7ndl&S5}5FYfUSO zk<51UVODa^P#sSvtoQ3Opf{-!b!{qVF7gu6RbJf<-F|&^OML*< z2fslpRE%$kxXJu@_tc@5$0}Cr4IxnWWTUdZ@@K^7c9`xa0g1w>zyE@!{kk*(osgv& zB3%tP88xgi?)37)BaJ!EVa4QSDTX5olNH_Sd6@{JjTS1>^}qZKqPS#p3%wQ#8#YRh z5xFp7ZZ(}40NwHGB`C6#?g5QDsIhspZ#LLg)U81c<05H;b+y+p`DlkIaxHf`+1-&O z;^O;2__QF*Wk43e9)lK^24uSOBd&e}j~gb7JD&+!`4=wqoN05{EHe)vW1FZ^Q>B66 zCJI+R$9KE56XWfYIU?muY1|8GBxTV+3 zWfO09U?Uqvt2a{GoIOGhcbE9Y7v5n{H+}QDAm!u#q6XRK&{(>8P&vkzGsuhIMiv6o zjPd%ZY*D?%Wde?SCLG)7O=_LJ8!nM<)DYQz^)r7+}EmwN9W1^e^UOiM$ceQ^~(=jML2 z2;!cbomLD-b_$~(3gQx35_np6a)Bv)doe#R5&M+`#Ry`jh2<3XDIS2yjh&&4gZ70- z$vrpE_s{GvU%7jtH}VeiLQJaCKq~6WqmKMPaDmHfh#YjJB=@XmYC$U=v5CtqaoJ-$ zM71T#cDXw}&U-VGX4n!49iq3kNpF|XO0kP6(YFIq2}O`;S_x*7s#qv7OJwaH20w;b zy%`E1=k+ii2hGWF_+eYaA1O&2&Q^iyU`lB{j@Z=fY$}we^BW&{Wq>!R9azI$Mr>}% zM=(^7LkwE^D6>cD%;$>SUF=S7dHS^T1-~%YY^!NfZdz)ybQCyV{oIr3YkxjQQ`$8K z6vK+(HGqq-GlX8{TG9^od;pDuBujZH?RPovHCb6JuaD$uR>@ouod=ctM@#G_a0YQ3n(&k*uBea~Oy0(M@2p4d*0Ju&IBVq{Mc@pJR zW}K-{3hC?`J8ZFDO2y-8IkCY<$O&u14L!P=Fx{3jqo?#xpv6SHMrk>D4D8o}d4EWN zbd5Tk30lgjcjO@%+w|WM@Q=Z+cqp1J3oSkp%4l~&OnmK=KS&Tcnx3CtGN+&3Ugz+! ziBkzoKBpe3K-iZ6j3U}#YKHD`?BqlsOSen9I>lOc!r_=(*)`J$S|+J3Hs>CpV|HXM zvwLDu1}wph1Sqj66jg(zu`*C8U@96fj`8wS@zyAd z20^R%X&eq2c}2@}A7hdpVS{ZR*et;rs+`*%@HXW<>>lhcSR`;@@t8&BH%=;=FJf{` z#d`v9k$7HVxOPITISl2DH9gbT3@>40E*}g#>ik9_&m5^G(_rb0`-=Y5^*`xsm%Zrn z{8zy;kE|9;3D1HOS!eDu+ZQLz1XAbuDh+~d))MNW9Es9_Q@Xo#MIa}4Ub&^BB|)}} zs>sDb1e#6zWm|x)s6h&+;?Mf!HhwaO>lrV&_!m`1kKG_h@jn}_DzzS14S;OjjMC3R z`mr}bwP3a-t(1bE6;jD{T?|eW`sLw-hgSR+SY^XJ7^v8;n}vvhF%dKSoz>(RKJC`` zIAf$bv+G;**_D*DvhjpN7JGq3+)AtrCCxez`r_P}3zd>_%4N54s1|uz2WsBXURp+% zn%6UIm8yCSh*ifBU;{ChA?f!dsIwvJHjQ$zB^feX0TIDx_7}XM#XSmr%!YO5JSHhK zfSUn94&c@m1H|N6GGE)d$!T+bylsqu)8mKnEBFipGgoH&QrF7lGN8PH%M%K}QAn>7I&-?Y3BS@oXtrz=p}oEJ z2tOOvpL5c4l5DC47yPe#=C~^6=IDm$MdU;o1Yn}E&O@JyCldy)M+cUAgBbh@#5oBD zv7f4*#(ZkQ1AZjf*LM^LqzsCT!4fohxo2{uI3ZIJHOx9iriWNlqbL;cD_Y>Dh|nmPyj6zX&DO(s~Nz0^gZ%`p<#uJJuysA!xtk1(x%qB zDMX)Di&VuCIo;$cHay@r2X?z_{>ejMxt5@9vDoz8-r*P`O=?lgh`HD?q5U2nG?}y7 zFOlL5h$f;jh=hv^=%?D?g%mBmRaK zkvf8)2khb0og;k=6I_EApcVc*nEbTnwJ(>BeCNWGpis&Wp5RD_Q*I*@w+vml=?gJ~ zc+b*(&K=NLl66@b7?QT2EUGRe0RbSag=MkO0(xoTT+6|+%o6+69ZXn z!;PI;)e}u;K<7{&GpJWY<)L$DO0WC=VFY8YOqCjbx=bo`?YM_P-6fZcV_i&)WXjT7 zi$^NrnnbKLU{wrV5+7n1nmLGa9rac_WnxW_UQmi4TD3=MF*!gk1lVZRyow)84=(u( zc;x+vfa0l}&_aw(wa_EmFwO}2)Z z^@hIKT4jwpbxyFAYUY-=@-#7wgkv4zigi5a=BRA(Yej!}V$kA8s`z5&C>sh5PX72| z>Rc&M4}akd2Ncr~rFzT2TImd3yJOGbD~`unT${%-DS}Jv(FCr9V@m^q)}@EJm8ce6 z568S!HA2K7#q6v9J`bnwhpv`i>Wd|km#3wOF&&Q@(W|`$T zns}S-2A&Y|GjH`k5$Bc0q*hbl;YKUQ#7>sbXSxZ!*XBPaA_=ax>8=QngFnPq! z4z2D;4oK-~mM54nE1O3V+|Rm_xhBTI#Th0ouupxKj*C$@;0JD%Jmpa|*U;ip2)30d zvc4f~O&?M4v%h<8zDGycbfgNVBOyVTHIc*MS&eULs;s!1UX4A9y z2T&i1oG$BS$CPxHKQUnf@ieh#g~qyy!k;vZtgHGxMdCM1P{k47GOb$dr7f4Luw}buUiDO~8_}S0U#U$7$a7QqB=o1l7V5Ce3T|B(T_;>9SRe)0eM1 z0O91O&t5B3BdEcm1w9~kLm_$m{f(^KGnFGr`oq1Q2D4%UWN22Tv=2BbRGKr&?)T`V zN4JKJj+mn4Ah0B;Yc9CUNz(xEkp<(79~)O7|3|OZ#63$639XA6)9poZ^n?(e)`B#> z;fY8Cq>@dQbS?KY^>CxY*e;6v*&=GVsTi!zHrrBsukVy^JaYvsCM@=^EwX8(OFj0x zQyGI5xZLyQO5P0Ftb#xGS<2wf*C~{0MoZzXl+!1k3EE_{+eMqxuAX7pM8e6Gy`GnQ zrApyrU8{_O6t9)BV8%h{W;C7)xZJQpvlRI^bu8DMsPh7c!ICYUm}HaxTEeGh-@6bh zGab;av!#?x!BFmXHI$_iFF523g9z=|n(8ftocvoMj=FG{ve=X-^j!Wv+PQXWQ#2HO zF~g-Ro)QNZKBK1rNg+pBPmy>fyX&^0uq&rj$I~t#LMgcP+#ctvb^Ynv(owO!xD&nb z0Up(fvPQB;UIyy9ri#OJ`kmBb04q(Hg~kPXJtucn51m@FzLxzh!OKK$tMG;iIS!x> zE0U(s2V`QN!^9?@&^sfFBVGHCDOq_8nwUVrEdOjVJN5LEC%VHaQMr7y68udzN`Xs; zz=@q`=MQdkd`-kgEcnMl1JYBdt&CZs5pzzt5m*6nCFj&6w$=Vs>bq#}o*yuwkzP|g zMA}V5r-%vlaH|C=VYfm%D9J(c*92IaNNlL3!>@7o1clOEdlL&|KL}yF>tl)bjxIB? zKqDGYV%5C>!R)5G7E?#EsZ!DKz;e_cp`fK#e))nTr7ay-thSg+=Yw+zkhN zgB4h*VT2_v*pMb?KEf~2R86nry-e+pw>W7>8xYGX6poIeRP{(mt4WK0jiiDl#KfHk z{=EJJ)OZvdQ0!T5jF(>T#uwWnhm%R^%lk+1aH|;}-2sP>*dRsBSk3qHsCQGve7Oc5 z!0tdb)&`3$w(6{@&3Sdm>D_qb1I9aF>X0)=fJ}W+q&ev!VaKo;)9~YVPT#7rf}&O` zrdY&VM6wS))JCek)u^k@@8DM&sv9(WtyxUT$MpNDVRAY%vgIQz#yCo&rM=j|nrSz^ z*q_qj&O0Z(zC*2m!_5a?AS1I&adKnRJcS}u7|1jaBp}mehzDQyswG#LiE8*sJ7`?j zvFGrt1g3ckh9$L9kj__YLlhCSq?i>soy~n<5DI@zmv%-&7!nD6hAqw~1W~AmZ1Sg* zW-j17edFIfx{O$SPkR9?C<3VY9}2+~K@hiC7>349T5nH{U3w=mDuOVDHrNASz>X#@ z5ykAsJaZ8@OH-BuXgZA^H-0(mzVhckqfV?GMB|Dnkv|!&r_2`_)L;6=;e^+Ja=HX% z@u#<*YJsvX!?3@@0+s=PRBUa;7(mk&?L1Y zU?_@O@6J><$pVfzBh;p;TEwjaf`IaN5NH@(Fp2C?rl3=)pi;)Xv;{O+ zGTYmhHHhM*RHX9dv3_K*;ih5Eys(<5T6&LDw6IzVHBD<;OA{Hx$~iNCVYtn*-4hvG zprDSD#e0l+!0 zxbcO~crcNUEt(PV=;C(Xp5OE$pcfB#F*H{lQ4SYUt^~C_dJ()ok6qysW|v>@#>zT8 z(X#3ouL%Nb1D~aE+pE5&*EAbrrvi^y!mRmP;Agrrfpjv>H4Y}_>N9$9%B)nj4Iwx} z5q~!6@GX3QoKXVno3i}$>1Y3jXFmDk&;1tI-QjQk-6wzlho3z2fX?7A591PQBnEJI z^YremZ#w^+&wB24&+V_S?p}WB@IBx2(tF-Zc;z`g*?szd_WUpX1a6hnV)f>~S0;|U zh1m*26!4cmc=u0!;FW**LyzvVTz=YTy#5nD`59j7ty7Fxmq(vi#vG#tO#4K*8fPbCgY4duCrLf$H2fCa|_NS}MjS z6O=honz(_U96((|WC6yXh_6%hsNnasKJnu&zVVA*r|lZC|IAN&=JUS%1AqUA9y2x7 z8|0J}rmBn#h!>te`}(ha^Cx{G-`PZvZU35QPrmN!-}B&N_w>o#=YH-BU+@Rs6gq{- ztN#D{`P+Zb3qSDvFMr$Dy!)LmUjOo6{p_#%t+TQoiZWrlNQL#P#3#iyz!ybvReC7P5RGkxFuT1Y)KF%A zTQTAp6VwwIZSbnPJgR0HV4N9ob#MX%U-pim5OaE!)H=8_j~y>%gW`EpOo5o3V592N zHEdxp$HiCM5}~p%eLh`IOgrq}_&Wa5xtZ4^q+|&Ei-|*b$ zf5ltQPwu|;t6%)FA9*Awa15!pUVP!VeB=wypYn51ofXaxj)Ql*&;4q1EQpK${=@IR z{mwu5&f6!u3m)n?ON~*@u3?iNFO3`r#KOSJl~^S*exan3`(9U8^@QG(yHO5E(E1na zi6sfcfMP9ZjGk6@D|*T~3Lybxb&#oi6%7(E2zZW~5oP zV=$cxQ@rU7C*S;KFMQOS&u(tAnyF$|U77fj@6GP_|JQH$wV!Hm^)|j!p{YZ6hco`R zaw3tKT2t@8wfQo{Mv_52hr_4*x@UjofBfA0-gEaYU-GUGyf?pQ9;jdV@ee-t%iqGG zm-rA+SnsY6pZWQ3{1u<}8uezoxw`wVFMH2V|FcJ@r`+WxFNp-5@ywL3#1KQ2n_zQ> zu;zma4^>Vu=+YVi$obF#a#|~sB7uXyJ4YM#)y$&{vr4(l_`m;>cYf)g`Y2Dnz&-4K^{2n~vwz}+zx=K5XWm~u-hb+E zdG5FTS1%AFKos2X|Jt{_@BjYZ4?cX>Qz4$}Bt1sSysU8dQ+HOl?9wxROmK38(|%k(b>^-SAZWinP`t!Xu9VU^Ol3TL-3rZ~Q~daIq|>R=-( z6}POgWN)h2OkF5ADN3=UCSt~~{GpUT|T@22Y>6O@A{Ju-u6Xrq^BA`^9$be?w`H+{{QuZ|NejU+TZb&Z|N@-M#cUg zeD{a`kMDRNzdcQ4n5mrTIwRxJnsEQ;!rlPo7q;AYI0_Rql{9T=}9HMlZhcFb3s@B4_E%B?|9co{i3s9|Cz5tA|1Q8 zeZ`w!e*f)f|B*L7`}zWC_fP%slfUp)?byUJ-Ou55_#61A#FAi;#@{I z*!mEJz~*|UK=H(0Oo?EjRJ}B%Lvldij5pia(SP~2*S+ntp1XQ-d-de-i~rrrulce! zyyi6yXg0je$(+Jte`18vu9h+ltFZDkh^2e3=5*m=H#p7`p|pWW>5GHr^zJ+V*w6jM zKY1Jk&$C|h{K*&nnUDHKpTL4M6BI?;qQCl zKmAW$^ZM7G{)w-B^IP7`AGnks_Z~eu{LR1d;iO~bhmL?XD7227=XzfMu%27G_omA3 zhTlJZ;yvV?HmKIFThB&O&zCSCzkK)~zWBxWzmt<}eD#EyzgGYo)}rX?D|dh955M!p zpL*QyBe-DDrGegLM!;OIfYctF?v8?{BqGKTdRKL2#c_uRG;lg<=s0Q-f7syknkv14 zWgsV51cf|#9+b0djc`nxfVG>#SM32UCyd!O&IHp{=3tokFz9m~Tc#sc2OJ{VXmDG=;_#LK%^Uyhw}0fvehhya7(;`y+keA1zUOcJpC8V^9%(-k zKCLL+>Us9rlQ+Hj?2T_ed&3*fUU5@O)lL>^NIY|C^0u6EO zjYT${T^cv0C5yN!!4t98D!8IFnJ%%V1IRH!nmdvLh-!{U<~Sz@D*@W*9X;R`i zFg-A6R`(iV5A^;C$QhUs*Me4vm23N?Gw9&hoiX93>L64ENLB0)4=#TxN`!5VZwi*K0#9#6? zAHn4rQ5Z#Zl$93_&rY6uy?EsHGWI8t4$sU;b*au7AD0ru5^E5k&VCnxfCSFSE+*Mfq8*{x zaNES=Oev#_hD`o{_BFeI^h1xn=quj)$|G)BK=WWss^rI={mEbY%P)WXcf9|CdqvJ= zHgHGSAjgmy66uEa-0MzXcms3y?0I&ka_TnUc>dh$2@c>y#DnycN4Njz@4Up{6dzz$ z%iZNN_&pmp}Mrzvki1V@|ldh+=nc8Ae?u&2ia!28>~`o`$)x zITQr#0VJ|QCE1ltX`hHH%BaF(2+|C-=@&7(vZ8A%ePU;Ls=%zoCM!y(D@*|jWY+mj z1fJkjd_Xj%Io^gyDK)V-N@W-oS}_}z@duwS&-dT=w_pBmzv)BVo6>ayfGya)|Ng)A z%GZ6vyU$MP(8z4@rd8AHRHzg*N2;5)Yqet+qM}pbLwGkT|J%2{@8A5Zr#!0|83y|u z%gM#(eZyPd^3hECh=mh|htKVQ$A9Qo|ND2orzcY@h&-Lx{mw6c>o5M~ zXGWblU{f{vpa017|KjW4`s_3OtZ8$QfY6bko0uewipy!64%et`l)_3|9#UAgIACnq znV@!UBBMxfb{JBwGhZhJmi4NWaiA$tk#G|r4ex$02WpZvZi86nu)(bkp#tqXPe-&) zC0hC_Md*!9^+p}SRZHm>K;COID5tw``_u1#?K7vp^KGxik)Qm@r(g1=?|kW{8<%S= z;*e31trWHqF<9G1NdL^Ae8<23@h2A-zL=B*X;+S3ia`6|`>ucH|9Sk<`+SG*dbVb9)3P17%?JSOlx7 zw;`cCdg$bn68^H|=2q$J<^x7V|US-|}tmeg1`$ zkN>!Ha{P{WTuqLXPPi6ys&S-5s@XDYcDo<^ftUaB54`-~VZJ<2)jhCxSa>^vhYcqW z9yov|;=GLUc=v05(+mIk?|Ty_7ZAAb{U6`==f3X6cmM3w@BQYF%3Ux!f7NHb?p^=- z$@l%K_n$tav^F&Em@!sLw3^{1Q=-t4!Pn$b5+9D!VK7?`x`5H3ndxqI&0R6ON7gJT z!n)}o894${qc8Rocegt9M_VbVvN+7qe%CvYg^jk!Gkk$%%DjQ8n`fr)7j=z50n!l zLSdEb>5u({*Zi)pev5yuflwrNKkz*t_^aRkzSlp0{`ddN2Y%tlJ^am|_W~zn26eal zO<(xtcm2fEAN@WaOKUn1u?6Mmkb$iv{OXjooV8jCB4#nOp9oR+0d}RZN`~5Oy>ZxZ z4BAQrf>a}kYO_+slVd6DWYN@SuW@q18)yI~M~YJ~v!gvM7Sb0&__5|5F$n6a_Vkn? z#_>i#uj2_pRWPuwu6#FxX7TN!hL%@vu4YiP(L(|>%xz>vFfIN^50UkjLYhHyAhPje zGS9zo{&`>j5wCrLpjBr7)Bo(rpZ&5I`MaPj{g)3;zWbZr`H#Q%C7-KC3tv+HoUi}L zU+_yVpFZKQ|EU5GXHYiU^|zLrP9uN~UQ9U1>e|?u7)grDC}<^~gcGHvHn##*2AX+} zV#s=z)1Q@z33{5XyO^77)vsiWpYi=4rM_&VfkXzVyUJ>jSIYE?3=w+d=l z@??FSao(e)XUa?qzVFBLU{r9E(x-=cs2i{Amr9K08lB^MIWjpMIC~x>f6niJ^RNDN z?!E9R!Zn1+{Xc*CyMOk_9`W<<&L0gpT%4V}^8V{T_eb9G^851(ngJ#-+0WW?_ywQz z%;$X5NAhq*cVp`K68|Eo{n<@ZHwpgB9w|(#Tlc-zxNNF|c|yTpb$GJl`37Y_zZ(Dm zFV;y!K~%z94H}W?Gwe}45ezZ%7RP*S^^szta{{0adCc6hZ<@wYAyoR2UPlNjJ(BhL zkh1)RfVaQ>>PP!Qc;`Hr5 z`Gf&Snz?@azrO23KluG0dhkq^)-_|8hUP@VE)D!FDto&nb1~=N%ybrrDm2wd0V}Jfz{}nORri+KU z1c(kID_i)cG^CBM;j0};`BP5kWDI^#0G-}6H8IT5m(d`nYaf*SoLk=VS_cI(L9)r& zIbWH(&E+!8c(C|2S%^V8eH9K&=#!H`PCnrxH z`yzx#M{ zr_|ZW&7=H8#L3A^{!O?6$ERxXb%W;Bqp}G$$3x+6noltC>;s3V#1_u&p_2%tt*2(W zcP*gqREksA{Rer|b)TO+*z&EiRTtmww$9G~-QoJ0PsbLqKIeydS63>NGZ{HR zFi!b?vClPj*W9`>2Pf#oCPHsgjf1lg)$qf{Kj`YUZl;s$@tqq#vK@)4TgHSr!P)G0 z{J~+oK@bG_d$&gj61;)1M40|nhIuswQL&$(F)UIm#k?xsG-uk0=@!h;Q)iISt(I)? zl#LHL+pHpa0xKteCeUzX8igcm#TE3w*x^vrgKg=?tC7k9IFnfROc#0h&o%}`QA3=> zCp}I(Mc`rccw)07#w=#KB%MZ_P~<&rc#=+;9b2ZHisC{mrP3fSd`7C@eXYL|!x;mY zxPrCWQ3yw^_j8Qru-Dro#E56GxAT*4$8L#;mX6-r%$$2*m8I{P zPP^iU41CiyK@&tL^+ZKe4`}KG7{RcGGp34G%!RBuOG;+!iw&(p$=D}81yLnYL&$NC z1=4YtaZn!VHkD5@0#2t_*p}uvaqr4mekiWzsOE`wdsQv|mVS_ zf~%*Tno&z482;c-GpX@8l4$YA)jk^>u9Zya#6y}%@{=wqJ^D_wAL+Hj;f7UkW(1^S zE!mP6sB9)90ZJ*6hqRu)W)LK}!yL4#9yb(Gc8vfNAVN6}7tI8sDr%48k3ksygPD|1 zG?fa1(H38BcSD-pW=^MPv4tlg&bbeD*5n{0*_xUhh(?zsBRMA{iFmCgV^m~zulQsx zf|-=!z-Dk6Sf+Lk-V*JCLe+Z%$!h?$76`id3VrYekz zikAcp00T2`dGAQhMv5vl1=&@W&GbOAX>Yh)wRyjJY=A*4>pUM}wi)L1BCIj)S|wOT z!mNy|&JdeI6$#>gbgk1UT_sWt(=rnNL|H9HGik`+ps9||PM29Hjk7bv(M3F@cr4%L zS4gBMF_WPYNk$ncTbJina7GXwQ$lktNMv)5=kP_Uwt1H0q#p(}_lp|imZxAzK;rJ< z87+p`J^m!7HVn5Dbm~ZXV0JR!`Wpw5vo*D8igmAoENF-fQPmk+i3rR!COi|bSYy17 zNs_Hb`eAJi2wFo4okm7O43<(5SW+3O^vVfYdJ-V>G!xAdnN^q)%!YeQf5A0|JyR{& zqP5>$dH=*2ypYQ#gQH+E)2n=k+6z}ft=4|i% z3kQ&7|EI~PRqKmFMJRaSiiI{&TtQ2>BfniDC^k@OEkNj61qNGPwqFgzeQ=70d3H!N z6M1ooN_fmS^3s=7>bvV6m=PQLhM8=+>LQY8!x3K=f((4?FG{P0vQjoXEHZ-;lOAK{ zER5OHwFfr(n9Y>YjTkKnzsu)Fk;lx4(xBnnoT=no6;ytIR`$bBKwnCO1HmH=f3NN>jd# zd$lxTO=PE91RcugvOcQ!{)lE}4adZpiYbvYXu*$Qe21Q#afo$NCa@xwzg;SV5{+7t z-kb~)38&9c63sc&uDrJ-%tdf1Q?X=7Syx@%pc?gM$-3=VP9e$=;m=P}748TUuVRByn=bRmmf_pbS7TKNLWT*7$Ib?>QZb;;%0zHH!4Xs9@C;NP zNfzt%D1u^Goi0=~EIcO3F2}?G@>1wkzRUS!K zB=%<+KBQdcNGXDqW*P(`GXliHrnr*&9e>r*@4C1}RxOMg>#!jnOuHu~Vp*32gO;R{ zrbRgOIXuw@LBlkqTf7SqQv9XtLaOC9LPyGQx1^G~T?s3KP-sfOw?EpGXhPq!baeIB zuGTi|jxY@wU!X4#ZV{ebG3#b9B@VSj)sxQZjmE?(45+&$k1-<*p2rbfhZI!xag@Ei z^DeMgR*4j!E5}X?$s)QYCxL zXx$GSXnL(a-!anq#VtC&7~y_-Ljq1;;8o(-9;1t2VigDnks&JQhD8N`i~*$eXl{ zo#H>{Q4AMF+81%U+-MqMwKuh09-4J;q2w|>=lo^UQ_@T%n-XJ|<IG21T>ASXi;}>2PyFt{TvHV-LcW|o z+8bS3i%G8M&9s9iN*z*FVRJ){Rs5AXh#h}=mw`yxY05Fh!%9RJ#hIl za>wWRo5@AS=6rjaNE*Tvh}Iw-5GWf5a&wOywk3#MPY*vIY>GEj^U7cVsA0b-atH6_J&NSuzHh*UQ@R-+vkg4_<09q)hh%Q0I z-_V?zyq0+QJ2 zZAcAcL=scsl59Sm(EN}tof5;Yt%^9mTWM$nS9BXpkg4x|UVL|b>1A{@Ss>>fH!5Og zqvCi<)F_vh=#2;r2_;EOGMfJICw!tL=p=HBc&FD)GF8NDlXOf&RE+h`b`GDvM)A2g*k0GP1_zCiql4{TBm0kvJx>;8`2sD2FiO;a}A5ld}P-(b}SLBCcz(sc1>xZXCck=1At6nMN9?^ zGr8eRm*GC{oX~z~?_YxQ?#D6-!Q$lDJj`lDw&EUBk01a(VZkO==_UT!fRCOBbT=Tb z;gmc(ORwX=RB^%L!XA$dM6`?0_q2_S;p;~5Ip6kc*iFx(Bj;h*W-wDpypn^;^Zq37 zwDLA{m6<<9Y$jm}CDYZ|NhY9nqCw_67N4sV{=O4GO=_F%UN7Fxiwsqfu5i`8O0=F* zHX))VScuTX|5h3-gOc<}T+;|PGnyP5uk9xQ;!Z*tSZXiruX9LN#BDSNJoTj03F_^t zr9!U}NT})Jkj#OZ#XkmsnsnwhAaiCIkWvLj;&IY5_ndy8hX)nDRkIG@GF2fcXz!bCPOy6x(gMNbUC!Ta>_=-UN$i~NVA+~ zPDds>^&vbhWzDYkF{%_0s7Qhy&xaGbVXB~Aa&|U!Rw1S1)pBpXhONvC&|v`-J%^Y0 z9l`u%pdteZveP=?DV35=3I{gH_QFIq^?Dt}lUeDWXVu75HWAna5ka%=`6 zf@Dun>FL5_d{Hmw)4M19tu!*NQW?VEdV;GpmCkz<-(*Bn8B*ZI)T%9}hQ31u#&;$rlgaF!%4K;(?UQhS8 zCK#SB%jUaDjU`GM&#nhaxfY;;n{L;+Q5`pHyj|Tr1tUn^Cxj0V8O7{0sk9D!365%(2s#u4P*RF(ny%<&<=&R{mY%^&!efFh#PAGJ&=pmWkV&XQw?m*2fcEp z`Pd(nojV)S5zHU?C8@z7XNYH~V*U)1nEdBbif@M~rGqmLZ2CA7eK|He4%}dYm|zl0 zW+wM9T`*^dD-9@132f=5o{+b!Tq@n6|^7%(V?hJRQ5 zx!e8S<&KxSmoX6zvJ`_752dJXV~h6SlnuG^MC4w*i8tta6lNEOH0y%IZV<2bcdzWO zIlIYec?<|b547IUP*yjAV@frhp_u!2g(x_yA80IJRjvIZL>y)l+z~)UqB{=9P3liM z@y%C9(N4r7dr#a`FtY_c4l_R@nV55oCI5K=sLrK#@}U$W6cG$VL6Rx+b$ffw>+d{J zlWA0lk6E!#rOoSnsv266`w71kB(Av?dboY)EBC}uDjTJ{(|TMGe7a`R*T^!b?0Hkn z@T?#+LlANKR|G2Hq@GwO?x6_J>dHNkBf}(k#7$oQG)%LY9AmH}CQ0%RQe}gW4FdK` z%p4g%*VWhu(J)V21O7{|5IV-4IaK5p&{*^ zPIS3Ll&zJDP(N<0LRV+}t=btA0S|wJsJPNcaA8pt{nlQkl!Fg9n4a>N1=vNnExWGo!*&t^^KNm1Pl1U%_Vy?LeGiOQs<)N&ujNimgHt9)* znpD_KPZFF=Ygj46@Psq3to$m~s`hFjJLhq+b3mG@jSWRle4OR?`69SREg-H3BIJU~ zP)?2wYsLt;Yzlh+^2R?G$2Pt4tY)ZbIhf#R=A?+px!BF#2gx-qUX(|$&O(&1p-a=H zTEd?+)gCzP5T6C=aDBVGd9Xh}=esga68=>rnU_WJq##{e&N}Dp70V*$!vNR{TQa9% z#cZ+-7QXEFPxf9lVMSMF>5)ag^^{4EneKQpJ-xERB!0j~Dl2~Yxt_Z^-SZRo#!jh$56G)B5s*mF zkP2^rqOMwH5a-sb)f=wvxdDF3Hy33I{*+yTRho+>0;lH2j*8K*3x*?IO+zenoycpj zB>39<>9m=P>L7wH&dK72*2V0YV-<-%ds3qN$&j9>>lMC5+jA=e*NK?add6U?5cj?t z7JAYi?=sMr-SM_w{wg}0!GvFgxn}Fk zOH4@sFbOVDLaHl!64Sa`Rx`$PrOQo~#pwxPM_#j=O$#bBFjOYA<&`k zSfQ814?oS!uFPf})47xc*!)YdE!`?7>|8_p)M(7YnM%>Ek2dI8+pqk+7#4F@DtM9u zD)Btt9T(f61&WJx-vr_9Ww?MiC4mxRKdkmdG- zVum&p__;b_P4!@gj1`G`*3Xz|9C#lr4hfhU(-{`BaZt zfo;{cvo&1`MIx1BFX|>4Fw@}r zD(?mQo3+WC5aFNYT6%IXR5fH)r77-~QR|~LVVz81olt;cFrQ9MILB>cx2c$lOC`CS zo!oF#rptuM9C|C1CU0fBJTkcW!%Y4n=yiEAM;9Q;gk4rpM2^69iro}K&kb-v zB#IFFsLKhLp>T)cileg6mO|IOf~OaeS^qKCIKc0p3)EpE)3U>wkrtPTRC@g+(f%X= z>pbon$^@E<@eG0ix2;Hml20fGj-CJ4hbN5I^WLLQMy02BRWwe>7ywM^;i@r|0i$qE z`!ADBBJskkP9&XN$XRuDSPGj)H8f3df@?3|&xCH;!fY=hmRc*|N>3}nJgx!3$v4{& z@1u*@5KMjIS=KcN1y8J$O0tjqnrD)d8+&a=g>`d=H7wVUd`C8PdShysHIG39kAnC} z$s>lmR-ke=IJSgY=YP^*pDmegI2Ypw7i>jl7z~6WdZBt+Z5kS?2~dc3k!fyGpYx0n z1LVWu@Mj&aq5x{NIn=!}rc6D)q#MXm%A;e|E;DH1WYljJEh;jfh9e@BtLc3YVg%dj zwIb;K8`r`xR2pUKS_@m|^cMOE+GQ{2>o4uD`Sx3M(Piea){+b5EZxLn&X8j_g5l|- z5o}WS6=#|JY&2(gaOm$eGlq<8GUc&3<|1O|tZR`Fp({$I8|Pv-cTX=kXOQFV!|q#0S#sY?a0W)DqRa3@s4$m$K;r2S>lhPEYa|L zz{UnK2Sno{h^@(-W{Amh%?n?ndL^~S)JHG&pyO%*W1@db?wC{~*oYr%C~MkG2~V#0 z#k0fB88ULtk5x-NZWL#(m|_zbS0?*QV~2a_{B))Xzr5)YIMn27npr4*QNo%wb;x!kmznujEpDYao>_h7lxRK zCuq7cn-q4FD`*(3aH8mCvgP%fRLn@;Lbfo|VGfj(;9Td&bsli`9XFJ!1F=(G zsgyq=wxz>wCNz)uMzC~wD@gyWy-+6K8qvLZU3CK?g}6AG#6&f{5+l;`)%;7!G33aY zdnP@sPKfE^cWs=<1Os-=FBiftP2w7J8P50f+V1s zom*FiMR1yfd!>T_jd@)w4o`Zb!liOeYb@X&H_^CdtyN);wdSumHj$a!S;?{72TkV8 zg*ut;u*)FeZ=~{eaI7-@Y)iHFAh;PEGb%0)^Z$6W6Z_m&EU0RjF3m=>d4=NT)$LP$ zt#YH34S{es2h_Fah(LlT$CwzueF%2@c=!0ht}g?Px=7WRCcZcwB3oUE#fe6}joJ6I z(pbb7%}AI~9jRFuNlh}Xo#_$>R~K@k*`R}Cd>j*5T?OKw;*J}QZ{}dYQEq^6Cp^hO zWF8U1U{W(p%_UH+4`sSQ-sUt`@h4OsdCM#+;x@XpSc=0UU7`iE6#99i-VxyQX4so! zeIQcFl=W7MmNFDI3BWz~1230kprBZ0vzyKsAS}$r%l359Ttrnz?7)M8C;Xou2OAnhbBJI@J@l~$X6Q*+Cikq^WRdViZ>M`< zla*SMWn)4N8aT|~m-FXwG+@hLCb4&EdRApKbFP&sV`pBlGIW_09MoUFWwn-B%QfFb z1{veg*jPh4j5K-!^emtH5e0crx8 zBr{a>NtGfhEfL!|DZA#-^B}*~ClkH3NK81723U6v#alsiW{AN=Hi_97Oq+l}xf=_D z-zdoJl@c+Uvf>Hi>37p3ZADo~~7ilvutkO@sU3!0-CiQ`7}ER%uOz+jAnzLP$E1TN(H2bxQR+HBsaci zz|T>hT&x$V95|&L7envXY^4ru5!(gVSg9cIhdkarxj699=>m(9)RI6RP0}~O>VsZc zcTbGscJE}tlpXqXr734edQ!^-NY*;4RjP4RFRHjbb-JTidBooe0#q4ZZ5 z1Bk|GvFtj3Zz*;pZGveHHy z=ik?TABdY}_IiNPHMn(Bic;)xazNrXNHSz^;GFZ5x#)^^0VahG3q=smO>ZmSy{Am( z=)}6z4Sn)0vY4G!SqV7DV3mICtC?mlre>bWso)%da{{5bgTR{}oxxD*V25nAAjOSq ze(E!~%mC5QZ7K`v674P>1jEdK6Q8bXF=Tn=ul~!_Ep7R;10X~i_8@i4O7K~|pYTLE zjOvRR#UN@yFrYNbja_maiV8-kRqnPw+CAaf;sbtE)ey00$r2n&r*cA*x^%3Xx@kj^ zzUN?OpxLD=A|1}|P;8bVqhVl2WKGuchls&RHfT9_BNn_DMuK~(L;eDYYL}3sh|4m{ zk{GYPGV=sUGB9fU9GIBT<6S*%krxR87qh$-lE#xlfHg$%c!8660z0tu6pUd!l#r5dY6RJNPL?W5ge zUIuz_;76(Z7zPY5jUW{ggCzgECubFn@v%-$&2UaH&c~| z642_(?!dct9Ell}^scEH@GUF8Nr-ADE;ckJzKfIDTr=kJa7O?plVd6!ps_1aBK-~;Vw&^h4Jg4i2j&IIU?jT+FDmV7lGN^|DUL;cV)*GL zmspA#)+8VqtzZUYaEx741S0q`AyT4&s;hU&%VRsv6)bSEea&Fw^sB0Hh>JJ3eNjl?AsKw9niV z^6l|{f)t_o8enu97-}~>%`40GI85o3W)jCo&sEJbW75Nl`;c%|4CS=PgjGYRnBS-Q z)x85$jWJYxb4#B%NI|^mIPvspxvzdAs-(6H44OqGV*zCPR@#)=Sz$>L+Z|~e?$2f&W<|PD=;}9OI1{k{% zd`K1N4ua-4YMEHrYmI)*cqmX)`ss=5ih%7QM8v`@$xue!{~uOX14(oG{ri~4 z_?XRhlpj0}1UDo8T_Gq3HayZ;c;cKcMZf<2`=3wV(8ABwbB)F=U=(53M1(EtC~s)5 zI;InHUFt;4bm%%oiF?EL9uF=K{6;yq{INKvxf8HB=sS;%eT(y|ul%x}q;aq@5qVD8 zqhrdahD-VTzy40aBB#r!bVOrnG1s9wB&p64@f=Ks1GM+bX)xc;mG(FzH-u{3qT~Jw zky|)5(^=0`{iEjig6ZEs-@kK@UrXx;n&{esq|kk(r}Z=p(Jo~O4bql$dsya3r`81l zUkL6E#W#Le?8{g00`sRfFxsnUazC$>q|mWT0H+We2YKQwgDc)n?C14;JE9O%j(bep zViEM(x5UH~>y*w#q8TRHG~CQ&CWck;$DE|@we&aNvX*$+Qq!bpT z{ex7ILFl6-LD1h8tTR{y&&MwN6bcOhk=V#qO(hjQ7pmdVJ)6JWVhrpJ0Wo(9@O^Gg zF52Z)Sgl6+W_DIc&PR>94*51*V@|u5Td=k7Q0a-s^4UH~QsgHZb5>QqBN$1I4|7xu zeFfyJ=)9lGP4kaojU0WLSlLY66JI`T3-!{K&SKae9RoOW4H}LL42#z}+^osk>z_^! zInB<^4oLM_Z>oqzk3uK9lm1l7LtN}|n&+hca2aPGy!PVih3Ti_G$dX$F_kk$`Qb(1 z=Q;yRUv}ZWanQ8M`xb@}AUic*h!1LLA#XsmhA(odg60Y}bPLNP;*iiJc|9w&QZz`? z>Kms4v3qPgw8KVG(*5__FUD`5Nl?AbLOQdZrp-LSsJL444;>yH3~>1@47u0HofA%r zFol8`(dxSU!`Ti;ByH`6V8w6AZsBzOD&HYdJ;E+?R#t#$z{g#*w^lEVSP3?r4O~+D z%>7c{)y2y*Ni`oIR>Qg%pO{b{^6=G+U1$H+140d9G3c~H%+{6HpMU%Bj1j;2+Ox$F z_FA4vY@gE7coYop$kvz+_f9Za|NZkbf7)?I%fbWGS=tBcAdoD9Iix~Y^KLxLj{#6y zYk``Fd24*Ex2^yxu?S96OJlpk?Z=#5j~vZ2S2kInE^N>AomDfBf>!!-MRt^raE@4G z)gfpvl??vJyYH@$zrqHh@{P#yA}NQ?|8E32A?bkQmUr{F(L%khtKi)uG6Q`m?V(d* zvBXE_b81R1)9d@#-`X7%54FR9NLW9Ay#M&azwdUg1|D{UPBSds<_mM6LXb}3+NE`< zor21lRD;(fY{~0_6IV5y9-BUH~I?_!uqOQb3!tV zrTDbv|9=@ZnnU69bofY9UUO^1$K40o;P6!a_8X?D>A@%&4%}X;+F&XQRTo$;jBSFI z?^r3cnsgVyIXr2v_u<|~+vPY%z8({KUF{nL6^_Ga-mGi9b{3ZgPVI!U`u3s-oaTMe zZo&!9)e4iCaxaG55uWVUwo%t}xOmL7@Qwmw*TY=j8ElY?6Tq_p%0=j=&SfyFNB9bT znN=C}gj1%Okj2$T?T9{_=_5UA78)%Ua85>ixs4aQDJHEokjo-~)_xvu*W+lgVz$|+ zH1ee7rb1^gj;hYFt*yjqx)FoMISqqDnd)t-RlW@!i|!Sy^G_%d@Ukk4ChM7#@H|#% z)0ZJk;P(4(zM6G-;@WR($>G%@vMe+q4==U!s297a$MQ184Kn5HRbj+G1UGJwQx29; z&uVGkv>)2eWEE>{sfKVPAfX@?%O~~yUo@q*VWEzjIz2P3`JrEaPNbR^>qbK$aj@f{)x=4%lOen-#Kkb)PrIPPps1qk4p zK%5|MCm5an-=b|LN%$$Khlgy17#l!LAFPCHPeC0)rk%;v;rVI~giCOK%!*H+zW&kY zjP_P{-HZT&u{!C~v?6R2T8?kx9niA?9VF zKJRuptu=99iBD7suY^_lhkrTH(xqttQR3bh*yp0Qwk#OI-T;C{^0GBkrI0JKKuGyj zp~&lc_~r!_8kI8c45$aN=cM~c5Pi(xJ7jKeU25D18A%X>tKy1BjymQ+ag;VZ(P$0l zOR-=1v#fSajh5lCbUk&{%R{h0xd5{~oroB7$nGiJ4uulXuna7fi4pm=F@ zr4bY9A8s!996A~b&q%N-azI#|`2>QiEkf*CTELuc^hCf$(#SrP8=HO^gFtP37`Xbn zyIbqL5tf~mSmPvH%(Zdn!n{wYtk=iG_C3DO6BwwKWh;&pJ@kQ*UeUC7hPHLX!>)Ez zK@EhO92}H>zVUs@&ywxXpMLv5@~E9#=0&pnb?%0oax8#KGr8mypmV)mBu%el)r%`b z0rO0+L7n36^!dV2^6CzPrJNP+`Y4*OAn~n-^bIUBye?CMmuGJn*H)puJ0-7x7-qXL z98!D9mU{zdzjp@VOcPB{j99UT( zof*99d~kfd_-?lda%0e#Q=CZ9H- zwKFGlzpW%%wB1YG3a5UBU~E+;5S;oJ+Is1=svUN17cf%Z4dC8mKDBfNgfs8i<|X9S zA=;o};l1vM{3@}n_lIDIMYaMOPm9wD>|pxK^+0{}Qf(G(Lh^sLqw+MXKf9jK9;F_> z2dS^s9UT*6Z)aoE!#zAyZ3t_ucl)Jn0nKDF&^|0;)tAuusR=$&-t9pJX#y#~7*;zC zP4$UwY8+POtj?J0ggTJJ?h4v|I?fg9RW+??bFLCwdR*~=*l+%*IMbJQ1473kT+F?I zwnQi9!b9!odw5LL$s-b#b8Uo$N=U8{jnU_-%{Z^}lS{Uenn$2uhS@AZBWY}Gl3l`{ zf*!6ef#Z+fD*3vwD-*iMG3QB1($k2}j5V149TvyRRPE$)<|n@^^7hVeOEACrP?<04 zk>SlmHT2B6hP58k0GjZ+ZsRGz^PyQobo`v{@}#^Nm}~`KORi zW50ai7tQ|ARfHp6a7AAEfvHlc9HuztM+3DXY<28yAmok4T|e$w>JfU z3b3S|cEzA3ClP-5$68p^?nV=z$ih#LLk-x_DE_0t#L)i$oS-K%ZewvF%m{qvHSyqCO8b|;z5 zCzI^#>}+OcBa{`TQ4k3c0RR9BNCv3-A20Zy0T21#tPmF<{~seakx^9u06b{`0RLbB z;O#$={|Nx#!Uh1G{R996(f|NF`>b{qq5l?Ojpd|)0Pz1%URO!te-b!nkb)%K83F_{ zF5ZtP1FHW-)XtJWoK20Ke+ig4{`!vrIM_INnA!N5+1S_}XCE_fQ09QQkXf0{33@(0YkSpn!}k`pk+UKfD~htHG{Wti~g!FOTm`~j-I zQ6CI>cLlHW<-(Zi22`R_`LA{%flVSv(XMUc9Q*lyvYv{Q-~{gP+!H zV!(@<-=YlL^fh{ZtmwwCD*u+g2o{*k4dcY`ldHPzzA%yv>2o8zH}B{Je6R-DGOFOm z$Q19J)B+jk%gT=!Eo#bKfftY}PLP1n&{`!m()8R4sxJk~$)_nYe|W?=vL<6o3JvOa zl2L<(EZFz1vVRz6sRafQ*yqRA`CkH)NNe=+Bmfp|jPt zMHIW(cRnGL%F4{ExA%VSQ`%Yw=A zpd_)ogQV3=rIPI&d#Y zqcs$vG*bp}Vk84(29AEljK~7;iawk%s3bA7F%!tCF$3V$@9BB_XAnf6!j0P+gq3ti z)s%Rw_6qkZ)65+jj9<-~>QZEEa)RC`GO}+@QA#s=;=%KH^v17p*7ZaC;GqJx@lp+LP3`Sgj zLuhSiiTkrdwXR!?updlcMuna9L+y8F@<@aKt1Uui#;5$biI9Du*)}V!m@x8+(|z5I zf3Bz>mT395mb~mFT-4)y4|~J65Wlx?`=fVQrEbSs0O50Uh)l4TYnVFA^(1 z^)oW;`J+79pNR54h3I_Hd&+&O7Eejr=3>I1!mcFe_-3!6@ukXF>xtsN?)?bm~masp@M&c^=X>8>n;$34Av*D$ATs{5h1Q zCYds&Lg0f1!XKAaI8^0p>c>(?X%&mzyML06k_hs+EkNbO#(J(NlEn^$EgXtph#A^3 z8OBuw#j!!Tla3h_9J8ZV>-UWmH6KZ#B=wDgQH-v9goVO2RwD_gl^Krx;}b){OA(n- zj&o1TlD{X&;(QvlLe(;k2uk9S_Nebj?M3=Co)7m3l1Tl0wv`!YqF*ihO=ue@KuR&}aHnj6JT$ds)2H zXNn-<4vBU#)`0_Q#Un5T%hF#dh_MRV0@QQY)GUvL-0!ueAqEqPZj4tDY(&g!xfTik zccFIB(X`lx;17Q^j7^Pu1oV&>_TEx{E|yhJx4Cj>Fj{onYSHtCrTSm6y0u+DE9F_g z1@1w#U?cAmAykH(9Yuy%9q4vgKblVIm;D+r!isY#W^H|u(v{)zZEbw5P~zG!o387_Q7}Y&sw7f5 zytAPYUj{o-8Oh#^zxAKw`EYP3TY3q&IovAH={}(BpD(p$gW(%J5DP%~Z$t@!UWJ94 zsCl*8;JaRY>$z6M`(&%4<(LrY{bviYi5V$}w|c+Se>;I^T{Dw13;T2teYCYf>S0If z^_B!qmEIG$*c4K=cCX>$#+si(eI$XFIg2rdn`)c066fBS8S;i&RCvz^RiNxx?A=88 z=SEZ=m2f{#`~SHwTZ~}tNW*igK#=PZ@h4xkk ze+pOOkjK{aIT`MQ6spLf-~3U>ez~ z5Ggs`>d5#VQiAzzwi4P=L2-o?EDVwwj4elT+-4RxJpQ2z3p9N5Olj81so_hZ4zDZ5 z0bL9jR(h7kt>$U~i-Wn}KU3 zcPw`Fxf~e9&@)$&VHARO{Cci=JepcHHlU@mq{oCNnW~{1o;YQ!C%Fu4G||adfDVyh z*CDmbrwW!hqt~z71_cjIdi3wwm%S+Wl?(yy-G(HwnUjqy*BTO>@xH{?IO}TB=r-Rl zrMy#2^4FHkRA%*NXqG0v43%^?nH>s>?`j%cG=e1#vT?-45+>5!Bbm$j$16PpQEWaq zN|ZH}2hWm`OYWwnc8-%uw9a7C`wfN-2y(0$?yM4hh^npQ_rtX^EA&1DQ_B_1+w;jw zeGMTloF$~ag{pCk|D<7-HIb++ARg7{$U0^(4&CDl_xKqKn%)-9tLq;joO`-Rm3~He z#7XZT0umfWZ>BI2<@e%OMOd1Y>?DNq3LE_O{#~oA5k>8_wuByfL~N|dccGbq)`&;R ziCVfjbo$>l<|j<)duCQudMbOWcD9upoix6F;*f~r^@i;Wj1C-lhc`zS=x}I&m&&1- zq@&H)|8j9zYAWN{sxnw)d?tbdVV$xmeXNTFc;eV^j6aW$O|W z^bd6XOr=Xcgc+SAHO7`T&I*k!2R$s6deZcz9fnqr*tmJCoy*qV1x{sf2;v2V5qO)+ zJzX_4fJbVdcRxEwe<73htj~>jB*=EnR(j7lqB9k6bw?fDb+yYtHLN?%=hxFEnKjo) z8<;=A-fl&{p(ctc5=Rk0+Km+RM_JZe(GDGF5AZ~0jGOJZz3`XN(a=;Tdy}GGt9zHlHFLAxwG7NHD&fnLC3Mz1?7}* z5#@OaOU>CcArapRo+7x1c!m1sQmIxdO7GwUj$)Kp0}x16#HElylUzu;wI12%ZDn^Q z;I7JboJTnKvl%>t2AsS?6m#20_jg%ilh-w{Pf52qIxHquE%`1K*+>gj3TZ%=z}96J zq}I5mk$L0N_wyBfiE-Oo~u%9%SR!rYQT^jzl#)jHN5rNoj4sVen z%MNwSvNzFPcQHWWA2Z)R_ao=JOrgITHS_lGMf~4aWU=!}1@t9;gvVQOVq!A{=k=xk zhyeO>|Mi}j`X#T#LPIlU8@G6=9zx-{yM< zVPrKA%TL6y0izRRG6`g0Qjz$XsrmjDZdR4Crv1CseFL{0X>M=;BpaRMNryjQc;RL1 zsx7Y?A;oHuRgqd9FL$!ipmkLu{WNhMDF&c|4c%VI2Jx%l38F!5uGq#(NyGYx0n>_E zAgX8~uySZfVQGSAYa1dmS~o)(h4dUm!K|3Ev5MJ`r!y7c_$NQME^0ttr^;Gkj=*Fs zfk;8cV4t!$vrw(>Q-0_W^L{V~#qg z9NcI|jn7r)j#OTc<*7-mK*WR9a1K4OBBH1@fCO{zHK{MErY<=1ZJ_bDXJ=T2=tD1|sZ3-e zV9cZ)eTvD=wPe>qucpNs1K}X07&1&KR?mFZnCEV`Oq;thE}QS9R5u+mW2Bnqnl?xu zg(J+treVXoUf<4j(fAarFYif=4!g5kg5oD;W^~#ka|W(m^e*iHBxcwB9=P-7^8z=WE4RW#g8Xoc|9m?p|Fr-8TH@tHZ6<7+w2h2k^*^%Kg z_a_@E8bSrts`9HK^iJiUO`>jqY_Pb{n^FBuDzsEnfhV$h(_AnpN(o+i2PZL(Gqx`^ z+5^q!PWp*?dU}VOID`J9@X$~d2P}>p>yy;d#$1vySfF(JE2chlh&jmRD6j_I&(hYx zvxXWYK%WxYA8c!Umv{U^8i*yz&&sOz*Kf>;DQhieVH35^#8b?!yk*_({IZtykurCT zbq)CklvZiGI8_DPTa6!AKre?@o+=zwlGHy!HQ&-r7xC09j&t**$C5MBrK|6MVvA@? zdbH)`_fr+SHZMQw)DDT=Nr~GS^vdcsIGl9&x{*)a8XiHwM#HzP{fLhJE$UhqC&S-* z*sl(+-Nn;UEE&izyv0Ro#-8`(_g&ppK||6X=DDAe)OHze9|PF6Ho4p#UDQN(BQdX< z`J@&iRq)BDm$_uhRmPk5d#&8HY+MP2&eT(=`3)u8eAuIM$?BA92?!SEEOd}_71LXWQ@?7+{<;4JHXw#|Jb>jIXw~-wt zt32)TZv=PJHi?ZSWgAy_OOo_nN8L}45d{8pAw6DldT3Mka>?n<9(4=Ecvdy;n33#P zD8y+ArJ2eTK`3ZPCFsg(9sXytSq&wy3zH2R_x$KhS^H!ru6c_r+TRTx$re)-R4a=D zGSkP{<&dsI56c+W`}ZA4#9;3$e{IZ_Sf!0|s)K5qP&Jcrq%}6jxUk@k{0%XAJlM61 zuf|MfcqmEyCeeJWvMg<&3c82xQz$y2y#ATO z+?N=Q78~k%wOAX(kaw7Eqk&hGn%vx*Zn42jH)TAkL2NM%48If*5qe&Yt_edb)+IEJ zGZooEwpg?0jI9lUMEYW1j;Zg~44~l2_sqYW#%G#qTCl|BzIgL7S6^T zUVowi-EQ02N=-NhdIBSJj1&?eH;6j;ez&wLgyYq>-o!{cKcjr`S8`Svnfy5@7mnf? z=x6^g92c7?P+wR6{1;JU+fquKEK{npK()Y4@?}6qf?U&K&tgzu7nw(Z76A*Sdb)FJ zn00;i@DxOI-L{1;;gCNev|xUGMZkz~Iv4do46cOAc|?%G`3-O3uzV&j68<31=2yad zY2raK~TAvqPuEb`}id zQjWeY9mWrocRGwX=QRYM?Q4BvG$1$r{4B1xzgyDyuNob2=#8qRQsbU`QuD?G?Z({K zYbI1VU~mID&FGZ>>1hYrY)jirmqAf%+se|W8n3dIL4~kLYdhP((X>#HB8w?nW+T#9 zUT44rk46pM$ z-moJA`vhdFBCLPpVx;Knb(W3% zMy?KKB8{3f?=3*V-6AHwJ2g8$1#lR{@WIriQxfrJS(NoeT)q zmHe*BMYkCyp<$bJh1r)Q4kr6}e=FqntWb>{b__NdD}aJ16A9rgPMNvdYPxf-HDwgX z1}CO0*&|w?%0lh&3EfG-*r6pQ&K+YJ3gsl<`z==qP@HM$#D94F_ko^;|Y0)hWf#vuL_>H ze^vw+Tv&Mp8ihyE*{=A_bxkDkp&>Lf+CD~q{w7Ps+$^Y>VbQ_^K!Dt+j@W1|$pPZF zo$4_;A~zJSziN~5#y=%*#fCqyi?v_u+VOxhEBM6={8eeB<=BwSq0JDB?KKRoB>iQL z1^Y%~W$U{3$TD-}=2eSYHblIcFy)%HbnqXM?_5svOl1$|U;0qt>HPL16@A!}kLJB% ziE)vUVvO!O6RhTiNMtS;fua z&DL#aOV-9skKSARiw5t{($I%CFx`b7xGuH_!-W;XA{C>JpV9$SIqA!1XUKssUrx*f zBSt|1#f+{Aw{XWY+;v

xX@J=I6gS<`B{ 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

9qJp>rUa0h8?K|FX%j*}%w25IcBWG;( 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 diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png index c9dcb06ce76f65a4b176d9ac050bc77c550229f8..4e5afda3495a2046fbfd8a6b64379544232f61d4 100644 GIT binary patch literal 7330 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 IM6N<$f(n7bp8x;= literal 8052 zcmZ`;1xy@JlU`tfh2l~ccUasVic<=uxVsl?aV@^Z-MzRkR@~j)offB192V#L=aNe< zm&;`4OTNjMd3lpbChvu-e0qJ1pprYQ2~blfEygW4RqAiT@Z>*AGgv zsDIE9FbE+79aO9TD0){}9ajreS4&}YXUl&8;O6A!XX6xNUfBtVcZm4KY2^?xEBLhFgA#ik-2O0l<4tfQl=U@KerBe4Gaq@(j` z`EeZ%JQDUjUiX>uIs0Y}yMcX$b@1O$Mr{vE;6|t{G6qrlWV&5@;gUP&g(15#MY3De zhOt}Kg0SSZEZAAFQd`E6yV30(r2vOPGTjjnToWgJkV>wFL|b=uP#{9h18ginUM;_G z@y8q70aBE_4h0q8H_fZmDgdgu1cPh$K!dnn`O|*ooox9ciXCdMl5vsjgd^EQr#Yq7 zLFS^U^!TyHF0RKo$h03Tv(TXjPX_C`d{`L)hfK)!?W`;El8A&O(Zym-<#20~*0q%#WBkOWnUl=f`VGFR#?_@81mTWUGD4#7ovqtF&L>KLvdbpeRgJ?Z#!>HWs4@v@T8|%k4=HN+?NEq zp-p@+G1^9@VR2F3(A9%((#{!$k3v3i6)7z0BXO)CXgNe+tI3 zmRZNi_y~Ur4WusmOr3zh8;aJ`ldrNT@4la(2to`qbz(~Y;?kTYF+TjR2@1pOY zt!B3SBT_|o_ng5gMp<&(X$lDfI~vKT_Ji*buG)E5Nz^>OAj?HF3g*QM|o8I*3=GC77bVL|iTIJOopiags&2!VA3|6eYG2fc(?BMs;Y z&g?$#V898ajyC1}0OyMo<@d;+&zIJhb9x`578HC*RNWi5R;>kf$WbypHO4g9scp91 z4{xu6s{S;YR$7AkA7nC7wO|luVbht6=~!G8jrFLFeJGW4ULSMKMTT1xObCB7pq9kg zPP;OLP{}<&(*hTY-n}81J*g6{uxNEkkKody|N_xM#+U;FpXlETdE*Gn%eO>l6<;wNYv*Tp4!z zp-GP^ks#P4E|)17{L{HKVppE!k4|<%HWxR2mEPVMtszY^-gxW82bK?uXu>{;w_fC> zlWKcUX>}bV_auhp>FK$G`ycByP$Xy+pY1iE^5 z18?!LLX{Yl^q-3M-@7BtEka}T7-+Q{RFU5oVNwp{&EbxKTfxMZsvve26ZZWoHI;~i zZ6nBhFVOtA!PhEopsaQ}7tJ_3=3`-PI5-WgH(HlI@Es+nIAv~|tBR;ChZh42b*L_b z_Of1x4`Jm<(7F9Y$1aA(vLw#zk5q((W17#oo2?cAiFKM)W>zefy1JbJu}p{-z+b=@ z=bY?tY>^nu&8YufOOxiqsC86}g-RYXo@S&b10L+Gyk6w3Uhxy|dEh1(<*z?QK+EOg03aIuq`f)N&r_7?&PTzgU7@K3-ei>zknTSTy) zv$TXI?j)FqWO3VE1HQ82R_Fv_U06|3^tQmZDvL~Jvwy15dW5m1Dgqvl=)QNKjP8Mt z+6GIgJTxbMC)m0}KaktwF-Dqlc~abWS+Up!A;p>Oe#jJ4W!Hystc*?o@G`iprl3)U zi(Cvkf6_8Pn+Ode4D=PgDFS*3jvMNZ3x>4I{2Z|`Lkx-99{=Q#$l^0$m}8kt$xJ72 zPK#*b)GcJ5I#N_UP2vUY7%eMjru%53e?rvBtG72bT}~)xHd>=n^-wXGHkY67gtL?# zwD@q1!>WqvQ?V!cY1Hy)Epa+Dz|58TfMDB#U(y}(lLrQJ4mP&-)id>suWn

EcRJ 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%0Dt?Id#@dw?4MdLmcwG`hraK- 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 Q&jJ7`F?rD{VS|AG0%-hhdH?_b diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png index d9adea1fa2e8bdc93872d1b24e1da0903482fa3b..abb52ab8be567a5301624d2c9bb8b1e8fdb08b61 100644 GIT binary patch literal 23598 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€s)n?hG22BU^1C6&^F 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�mxxK(Vecp-1M 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 Eg4FpB*#H0l diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png index 0e7a43649e854065bb77e0d7bb85de6e662a54dc..79bfcc7e7c610f5ea5c9659c510b73efe6b183ee 100644 GIT binary patch literal 101813 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 z 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

    7@hT2>STbtgVTDEy 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

    QgX^sS;L?gq- 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 literal 95741 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 Vb5o%I0-yi@002ovPDHLkV1jkKo?rj~ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png index d9adea1fa2e8bdc93872d1b24e1da0903482fa3b..abb52ab8be567a5301624d2c9bb8b1e8fdb08b61 100644 GIT binary patch literal 23598 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€s)n?hG22BU^1C6&^F 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�mxxK(Vecp-1M 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 Eg4FpB*#H0l diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png index 5e5e18fb17838b941bf46579ed28217b2e9336d4..39e3331dacdf45bb70689e6372b4a33b04f30c58 100644 GIT binary patch literal 38766 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 Qx&QzG07*qoM6N<$f~}pfzyJUM literal 161371 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�d(M;81Eb+D)6cHT@z8;jt*Oq;7>Q8K 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�J1U-NF0BG-;6xEv@?a(PM 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�yRn1CqAZ>d8qt3B0UUg~ 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Ū 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 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png index 5e5e18fb17838b941bf46579ed28217b2e9336d4..39e3331dacdf45bb70689e6372b4a33b04f30c58 100644 GIT binary patch literal 38766 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 i?fMQ9Ka{}-{(k_z8T_=KyeP5&0000HTTP/1.1 HTTP/2, мультиплексирование SSH, мультиплексирование + Импортировать ключ назначения из файла + Импортировать ключ jump host из файла diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 0e0a11d..29d2240 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -59,4 +59,6 @@ HTTP/1.1 HTTP/2 multiplexed SSH multiplexed + Import destination key from file + Import jump key from file diff --git a/app/src/test/java/net/megaproxy487/data/PrivateKeyImportTest.kt b/app/src/test/java/net/megaproxy487/data/PrivateKeyImportTest.kt new file mode 100644 index 0000000..d4ad2cb --- /dev/null +++ b/app/src/test/java/net/megaproxy487/data/PrivateKeyImportTest.kt @@ -0,0 +1,51 @@ +package net.megaproxy487.data + +import java.io.ByteArrayInputStream +import org.junit.Assert.assertEquals +import org.junit.Assert.assertThrows +import org.junit.Test + +class PrivateKeyImportTest { + @Test + fun importsOpenSshKeyAndNormalizesTrailingNewline() { + val input = """ + -----BEGIN OPENSSH PRIVATE KEY----- + example + -----END OPENSSH PRIVATE KEY----- + """.trimIndent() + + assertEquals("$input\n", ByteArrayInputStream(input.toByteArray()).readPrivateKeyText()) + } + + @Test + fun rejectsPublicKey() { + val input = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA example" + + assertThrows(IllegalArgumentException::class.java) { + ByteArrayInputStream(input.toByteArray()).readPrivateKeyText() + } + } + + @Test + fun rejectsEncryptedPemKey() { + val input = """ + -----BEGIN EC PRIVATE KEY----- + Proc-Type: 4,ENCRYPTED + example + -----END EC PRIVATE KEY----- + """.trimIndent() + + assertThrows(IllegalArgumentException::class.java) { + ByteArrayInputStream(input.toByteArray()).readPrivateKeyText() + } + } + + @Test + fun rejectsOversizedKeyBeforeGrowingWithoutBound() { + val input = ByteArray(MAX_PRIVATE_KEY_FILE_BYTES + 1) { 'A'.code.toByte() } + + assertThrows(IllegalArgumentException::class.java) { + ByteArrayInputStream(input).readPrivateKeyText() + } + } +} diff --git a/artwork/launcher-icon.png b/artwork/launcher-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..e40247901feadc333f1e1261e0107195f29819ee GIT binary patch literal 1063548 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

    )ILd<s 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℞4TJP6i9!b1oX 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%0Dv3KaoV_nbIsTOK3KEq)dy$a2E+< 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

    ml?)$mPb(bX8$T*XPcd0iK1{w? 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

-rX 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 AI{*Lx literal 4354 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 diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png index 43a1a9c74c48e307f8da72ee48eeec9d6ccac84d..d1c5c4088b05e202f012365e08035c3c74a18165 100644 GIT binary patch literal 14441 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 literal 15146 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 AI{*Lx literal 4354 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 diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png index 8cf6117a880cc6b56d582c3fcd117b88cae490b9..17cc7ad6e27c6d8118c911886fda39156986a876 100644 GIT binary patch literal 11879 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 Q&jJ7`F?rD{VS|AG0%-hhdH?_b diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png index c149ab4e632176083ed0147a9df4ed74681ddf1a..fa349ec383d6fa82c10d3ebe376aff41663603ba 100644 GIT binary patch literal 47754 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 v1)^va3LHw(Zhi%jqW(S)^mH9xBkEdrBoz6Ld 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

SoiV`%|2=bmQ{L>(AZ#)Nj1>!C$`g@Pk)% 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%0A$^|Lq(>aE2jX_A^x}=95DCM3 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 P&X3a4tdUCLDX^YcWBEFkr6iG@3mZ)* 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