# RemoteDesk Android Controller The Android controller is a standalone Flutter application. It supports: - Linux Agent connections over pinned WSS, explicit Edge relay, and automatic direct-to-Edge fallback. - Windows Agent TOTP and bounded SDP/ICE signaling on TCP `39501`, with H.264 video and input carried by WebRTC and automatic BGRA+zlib/TCP fallback when WebRTC is unavailable. Windows connections intentionally do not require TLS or a certificate fingerprint. TOTP is still mandatory, but it does not encrypt the connection. Expose the Windows Agent only on a trusted LAN or through a private VPN/AnyTLS tunnel. On Android, `flutter_webrtc` keeps RTP, jitter handling, H.264 decode, and Texture rendering in the native WebRTC stack. Dart only exchanges bounded SDP/ICE and small DataChannel input messages. The BGRA fallback is bounded but slower because it inflates full frames in Dart. ## Local verification ```sh flutter pub get --enforce-lockfile dart format --output=none --set-exit-if-changed lib test flutter analyze flutter test flutter build apk --release ``` Without release-signing environment variables, Gradle uses the Android debug certificate so local release-mode builds remain installable for testing. Production tag builds must run through the Drone signing flow documented in `docs/ci-drone.md`.