2.8 KiB
Upstream/API research snapshot
Checked 2026-09-23.
Flet
Current Flet publishing docs describe a generated Flutter shell and support
[tool.flet.app] path/module, local developer packages and Flutter user extensions.
The bridge uses a Flet Service control and a Dart FletService, then a standard
Flutter MethodChannel for the Android plugin. It is intentionally not a Python
subprocess bridge.
Android
Current Android docs require VpnService.prepare(), protect() for upstream sockets,
Builder.establish(), and a foreground service on API 26+. Android 14+ foreground
services require a declared type; this project uses the documented specialUse type and
an explanatory property. Android has one active VPN service per user/profile.
Builder.addDisallowedApplication() is valid for DIRECT, but it makes traffic bypass
the VPN and therefore cannot implement VOID. VOID needs a UID-aware native packet
path and a fail-closed drop policy; the Python model exists now, while enforcement is a
device-tested native milestone.
LocalOnlyHotspot is the public API for an app-created local network. Android 13+
requires NEARBY_WIFI_DEVICES; older targets use location permission. The reservation
returns SSID/password but the interface address must be discovered at runtime. The
implementation does not assume a fixed 192.168.43.1 address and does not enable
system tethering.
FreeTurn
The current samosvalishe/free-turn-proxy mobile README documents the gomobile API:
Start, StartTunnel, StartDirectTunnel, Restart, Stop, GetState,
TunnelStats, ParseTunnelConfig, SetProtect, SetEventSink, ValidateConfig and
OnCaptcha. The Android AAR is built with the upstream task build:android target.
The Android reference app is GPL-3.0 and is used only as lifecycle/API evidence.
SignBox / sing-box-lx
The selected fork is Leadaxe/sing-box-lx, pinned to v1.14.1-lx.8. Its release AAR
is verified against upstream SHA256SUMS; it exposes CommandServer, CommandClient,
PlatformInterface, VLESS and AmneziaWG 3.x features. LxBox confirms Android lifecycle
uses CommandServer and manages the live core through an in-process CommandClient,
without a public management port.
The fork registers tun, mixed, socks, and http inbounds. Because this UI exposes
separate ports, the client emits separate SOCKS and HTTP inbounds instead of forcing
both protocols onto one mixed port.
FreeTurn and libbox AARs ship different go.Seq/go.Universe implementations. Android
rejects the duplicate classes, and sharing one version across independently built JNI
libraries is unsafe. The libbox-first APK excludes FreeTurn until namespace isolation
or another proven isolation design is implemented.
Removed scope
iOS and NetworkExtension are not implemented. macOS is omitted from the first build; desktop target is Linux/Windows proxy-only.