38 lines
2 KiB
Markdown
38 lines
2 KiB
Markdown
# Текущий статус MVP
|
|
|
|
## Проверено локально
|
|
|
|
- Flet web shell starts; Linux desktop bundle builds.
|
|
- ARM64 Android APK builds with current Flet/Gradle toolchain.
|
|
- FreeTurn `freeturn.aar` from the pinned upstream commit is embedded as
|
|
`classes.jar + jniLibs`; Kotlin reflection calls the documented mobile API,
|
|
installs `EventSink`/`Protector`, and keeps its state in the foreground service.
|
|
- FastAPI backend, one-file admin UI, encrypted-at-rest secrets, device enrollment,
|
|
User-Agent binding and subscription response pass tests and a local HTTP smoke test.
|
|
- Python lifecycle, conflict rules, serialization, billing date, proxy settings,
|
|
enrollment URL and port-selection tests pass.
|
|
|
|
## Deliberately unavailable until the missing native work is supplied
|
|
|
|
- SignBox VLESS/AmneziaWG 3.1: the exact private AAR/API was not supplied. The
|
|
native adapter and Android VPN modes report `UNSUPPORTED`; no generic sing-box
|
|
artifact is guessed.
|
|
- Android SOCKS5/HTTP listener, Wi-Fi QR sharing and `Both`: the current adapter
|
|
does not report actual bound listeners, so hotspot sharing fails closed instead
|
|
of showing ports that do not exist.
|
|
- `DIRECT`/`VOID` application routing: models and UI boundary exist, but UID
|
|
ownership, `addDisallowedApplication` for DIRECT and native fail-closed packet
|
|
dropping for VOID are not implemented.
|
|
- Backend sync is a reusable client contract with injected secret storage; wiring
|
|
it to Android Keystore, an enrollment screen and automatic profile refresh remains.
|
|
|
|
These are functional blockers, not cosmetic polish. A successful APK build is only a
|
|
build/integration milestone; it is not evidence that the missing data path works.
|
|
|
|
## Device acceptance still required
|
|
|
|
Use `docs/android-manual-tests.md` on a physical Android API 26+ device after the
|
|
SignBox artifact and listener implementation are added. In particular test VPN
|
|
consent, screen lock/UI death, service conflict, backend crash, hotspot permissions,
|
|
actual interface address, laptop SOCKS/HTTP traffic and the aggressive VPN-detection
|
|
VOID case.
|