mirror of
git://f0xx.org/android_cast
synced 2026-07-29 04:18:09 +03:00
BE sync
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# Android Cast — implementation roadmap
|
||||
|
||||
Last updated: 2026-05-23. Living document — refine as alpha and commercial tracks progress.
|
||||
Last updated: 2026-06-04. Living document — refine as alpha and commercial tracks progress.
|
||||
|
||||
---
|
||||
|
||||
@@ -22,6 +22,8 @@ Last updated: 2026-05-23. Living document — refine as alpha and commercial tra
|
||||
- [libvpx / Opus / Speex](#libvpx-opus-speex)
|
||||
- [Transports & protocols](#transports-protocols)
|
||||
- [Receiver / sender UX](#receiver-sender-ux)
|
||||
- [Remote access (alpha — RSSH)](#remote-access-alpha--rssh)
|
||||
- [Auth & email (alpha)](#auth--email-alpha)
|
||||
- [Deferred / post-alpha](#deferred-post-alpha)
|
||||
- [Related docs](#related-docs)
|
||||
<!-- /toc -->
|
||||
@@ -35,7 +37,7 @@ Last updated: 2026-05-23. Living document — refine as alpha and commercial tra
|
||||
| Track | Goal | Status |
|
||||
|-------|------|--------|
|
||||
| **Android app** | Stable, feature-rich, **demo-ready** on LAN (discover → PIN → cast → stop; soak two devices) | Core path done; polish UX/docs and gate experimental options for show |
|
||||
| **Backend** | Deployed **OTA channel** + **crash ingest** (+ optional MQTT per `docs/OTA.md`) | WIP — examples under `examples/`; deployment blocked |
|
||||
| **Backend** | Deployed **OTA channel** + **crash ingest** + **on-demand remote access (RSSH, prod/hidden)** | WIP — examples under `examples/`; WireGuard v1 lab path done; RSSH implementation in progress |
|
||||
|
||||
**Alpha app** can ship before backend is live if the demo is LAN-only. **Full alpha** includes OTA/crash URLs configured in developer settings or `local.properties`.
|
||||
|
||||
@@ -58,6 +60,44 @@ Last updated: 2026-05-23. Living document — refine as alpha and commercial tra
|
||||
- [ ] Host `examples/ota/v0/` channel JSON + APK artifacts
|
||||
- [ ] Deploy `examples/crash_reporter/backend/` (see `nginx.conf`, `README.md`)
|
||||
- [ ] Set `ota.channel.url` and crash upload URL in dev settings / `local.properties`
|
||||
- [ ] **RSSH remote access (alpha essential):** device opt-in via `heartbeat.php` (`type: ra`, `opt_in_mode: rssh`); outbound SSH reverse tunnel to bastion; **no VPN permission / no status-bar key**; operator whitelist + session open in BE UI; E2E validation per [REMOTE_ACCESS_VALIDATION.md](REMOTE_ACCESS_VALIDATION.md) (RSSH path TBD)
|
||||
- [ ] WireGuard v1 remains available for lab/E2E; not required for alpha sign-off if RSSH meets owner criteria
|
||||
- [ ] **Email infra (alpha essential):** `info@` / `admin@` / `root@` on `apps.f0xx.org` → Gmail forward; SPF/DKIM/DMARC — [20260607-2FA-email-mobile-auth-flow.md §9](20260607-2FA-email-mobile-auth-flow.md#9-email-addresses-agent-config)
|
||||
- [ ] **Registration + 2FA (alpha essential):** email verify + TOTP + mobile-friendly login/register — [§10](20260607-2FA-email-mobile-auth-flow.md#10-registration-2fa-mobile-auth)
|
||||
|
||||
---
|
||||
|
||||
## Remote access (alpha — RSSH)
|
||||
|
||||
**Owner agreement:** production **RSSH** (reverse SSH, hidden — no `VpnService`) is an **essential part of the alpha release**, not post-alpha. WireGuard v1 is implemented for infra/E2E lab work; alpha remote-debug UX targets RSSH.
|
||||
|
||||
| Item | Status |
|
||||
|------|--------|
|
||||
| BE control plane (`heartbeat.php` `type: ra`, admin UI, RBAC, purge cron) | Done |
|
||||
| WireGuard v1 (device `VpnService`, UDP DNAT, `WireGuardPeerProvisioner`) | Done (lab) |
|
||||
| BE `opt_in_mode: rssh` + bastion/session provisioning | TODO |
|
||||
| Android RSSH mode selectable (no VPN prompt) | TODO |
|
||||
| Outbound reverse SSH client + foreground service | TODO |
|
||||
| Operator E2E (whitelist → open session → shell/file on bastion) | TODO |
|
||||
|
||||
Implementation notes: [REMOTE_ACCESS_IMPL.md](REMOTE_ACCESS_IMPL.md) · proposal: [20260602_REVERSE_SSH_proposals_summary.md](20260602_REVERSE_SSH_proposals_summary.md).
|
||||
|
||||
---
|
||||
|
||||
## Auth & email (alpha)
|
||||
|
||||
**Owner agreement:** public email aliases + **registration with email verification and 2FA (TOTP)** are **alpha must-have** for the crashes/build consoles.
|
||||
|
||||
| Item | Status |
|
||||
|------|--------|
|
||||
| DNS forward `info@` / `admin@` / `root@` → Gmail | Ops TODO |
|
||||
| BE SMTP outbound (`noreply@apps.f0xx.org`) | TODO |
|
||||
| Migration `008_auth_email_2fa` | TODO |
|
||||
| Register + verify + TOTP enroll/login | TODO |
|
||||
| WebAuthn / passkeys (optional alpha) | TODO |
|
||||
| Admin: recovery email, clear lockouts, audit | TODO |
|
||||
|
||||
Full spec: [20260607-2FA-email-mobile-auth-flow.md](20260607-2FA-email-mobile-auth-flow.md).
|
||||
|
||||
---
|
||||
|
||||
@@ -143,7 +183,8 @@ Enable in **Settings → Stream protection (UDP)** on both sender and receiver,
|
||||
| `LibvpxVideoEncoderSink` (surface + buffer) | Done |
|
||||
| libvpx decoder on receiver (`LibvpxCapableVideoDecoder`) | Done |
|
||||
| Surface → libvpx without MediaCodec passthrough on cast | Done (ImageReader) |
|
||||
| Opus / Speex build + sinks | TODO |
|
||||
| Opus / Speex cross-compile + CMake autolink (`build-native-codecs.sh`) | Done |
|
||||
| Opus / Speex JNI encode/decode sinks | TODO |
|
||||
|
||||
See [ndk/README.md](../ndk/README.md).
|
||||
|
||||
|
||||
Reference in New Issue
Block a user