v2rayV 2.3.4 - connects in seconds
Same version, corrected. versionName stays 2.3.4; versionCode moves to 745, so an existing install accepts this as an update. Signed with the same key as 2.3.4.
Connecting no longer means waiting
The first run on a fresh install took about eighty seconds, because it measured your line, fetched the lists, imported, probed, then timed real downloads one at a time. That work is right and it still happens. What changed is the order: the first server proved to carry a real request now connects immediately, and the run keeps going and replaces it once something has actually been measured.
Seconds to an internet, the full run to a good one.
Changing servers now changes servers
NEXT on the dashboard did not move a running tunnel. The daemon refuses to start a core that is already running, so the selection changed and the connection did not. It restarts properly now, which also makes the upgrade above work.
When the phone's clock is the problem
VMess and VLESS authenticate with a timestamp, and servers refuse handshakes outside a couple of minutes. A drifted clock therefore fails against every server, and the run reports hundreds of dead ones with nothing pointing at the cause. That case is now detected and named, from the Date header of requests the app already makes.
Adverts are gone from the app's own surfaces
Server names came from whoever published the subscription, which in public lists is overwhelmingly an advert. Servers are now named by what was measured: rank, throughput, latency, and the country the traffic actually left from. The header above the status card, which carried the same text, is gone.
Privacy
- Android's auto-backup is off. It was copying the subscription URLs and the whole server list into the user's Google account.
- Mirrors are off unless you turn them on, and only the one you pick is ever contacted. Each is listed by who runs it.
- A screen under About lists every host the app talks to, why, and when.
Also
- Give this app to someone: shares the installed APK, which is how it reaches people who need it.
- A drawer entry to ask Android not to suspend the app in the background, the usual reason a tunnel dies in a pocket.
- Per-ABI files are named for this app rather than upstream.
- Two long-broken unit tests fixed, one of which was a real bug:
[::1]:80was not recognised as an IP address. - A logger that could throw from inside a
catchblock, turning a handled error into a crash.
Most phones want arm64-v8a. Each APK ships with a detached GPG signature and the public key.