ZapretKVN-android/app
Repository files (latest commit first)
Filename Latest commit message Latest commit date
loop-uh 51cc70aa93
All checks were successful
Android CI / build (push) Successful in 7m37s
Classify link parameters instead of refusing unknown names
The importer rejected every query parameter outside a whitelist built from the
sing-box schema, so ordinary links from Marzban, Remnawave and 3x-ui failed to
import: a REALITY link carries spx and headerType, a Hysteria2 link carries fp
and security, and a Shadowsocks link carries type. No reference client refuses
those, and the URI specification explicitly allows third-party parameters.

The verdict now follows the class of a parameter, not the parser's familiarity
with its name. Executable parameters are converted; a parameter that changes
authentication, encryption, certificate validation or the presence of TLS is
still refused; a parameter that cannot be executed but touches neither
cryptography nor trust is dropped and named in the preview. An unknown name
stays an unknown class, so it is still refused. Names are normalised before
classification, which also fixes allow_insecure, SNI= and congestion-controller.

Certificate pinning gets its own message: sing-box pins the public key rather
than the certificate, so a silent drop would quietly restore plain CA
validation. salamander without a password is refused as well, instead of
building a server that cannot connect.

uTLS and REALITY can no longer reach QUIC outbounds: the core accepts such a
configuration and then fails every connection with "unsupported usage for uTLS".

The Happ profile now sends exactly what the real client sends. X-App-Version
does not exist in Happ at all, Happ sends no Accept header, and its locale is
short, so those differences identified our requests as an imitation to panels
that match subscription requests by header rules.

The installation id no longer travels to another host after a redirect, and
non-ASCII header values are refused with our own message instead of surfacing
through the platform exception, which printed the value itself.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-20 18:02:41 +03:00
..
src Classify link parameters instead of refusing unknown names 2026-08-20 18:02:41 +03:00
build.gradle.kts Add read-only relay and ICMP latency probes 2026-08-20 02:34:36 +03:00
proguard-rules.pro Initial Zapret KVN Android MVP 2026-07-22 14:44:50 +03:00