Add HTTPS with Jump using two HTTPS proxies - #29
Merged
Merged
Conversation
andre487
enabled auto-merge
September 7, 2026 12:55
APK artifacts
Built from commit |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
MegaProxy can now connect through two ordinary HTTPS CONNECT proxies using HTTPS with Jump: phone → jump proxy → destination proxy → website. Each hop has its own TLS verification and Basic Auth credentials, with optional shared credentials. HTTP/1.1 and HTTP/2 CONNECT work independently at both hops.
Only the jump proxy is bootstrapped and dialed locally; the destination proxy hostname is resolved by the jump. Failed hops do not fall back to a direct connection. Connection tests and DoH use the same chain, and intermediate TLS traffic does not inflate application traffic counters. Existing local-network bypass behavior remains applicable to application destinations.
The profile editor, persistence, import review, and native configuration now support the mode. Profile selectors use smaller single-line type badges and fade overlapping profile names beneath them. The connection statistics panel shows the session start date/time and elapsed duration, rounded down in 10-second, 30-second, one-minute, and one-hour steps at the requested 1-minute, 10-minute, and 24-hour boundaries; elapsed time uses a monotonic clock and survives screen recreation. New UI labels and connection validation messages have English and Russian resources. JSON exports use schema version 8 so older clients reject chain configurations instead of treating them as a single proxy; ProxyList continues to export only single HTTPS proxies.
Validation:
bundle exec fastlane android teston JDK 21, including Go race tests, Android JVM tests, lint, debug APK, and verified unsigned release APK. Integration coverage exercises all four HTTP/1.1–HTTP/2 hop combinations, separate and shared credentials, certificate and CONNECT failures at either hop, and traffic/outcome accounting. The 60 JVM tests cover validation, JSON round trips, secret omission, defaults, resource parity, session transitions, and duration precision boundaries. The final UI changes passedbundle exec fastlane android android_checksand were visually checked on the running emulator at normal and 2× font scale; normal scale was restored. No emulator is required in CI.