26 lines
1.3 KiB
Markdown
26 lines
1.3 KiB
Markdown
# 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`.
|