Document capture controls and explicit shell privileges
- Add bilingual guidance for the screen-capture security setting.
- Align shell password and session lifecycle documentation with explicit privilege use.
8239d3b
Add start-app shell password support to session launch path
- Add `startAppShellPassword` to `ScrcpyConfig` and thread it through dialog state so it is part of persisted session configuration.
- Extend add/edit-session UI flow to capture and edit `startApp` + optional shell password, including remote app selection and display-mode interaction behavior.
- Pass configured shell password into ADB connection setup (`setShellPassword`) during scrcpy session bring-up.
- Update shell execution path to support a privileged retry path: when a start-app shell command fails with permission/root-style errors and is not already an `su` command, retry as `echo <password> | su -c <command>` with password redaction in logs.
- Clear shell password from active `AdbConnection` in teardown/cleanup to avoid session-to-session carry-over.
- Keep URL deep-link parameter support unchanged in behavior, i.e., `startApp` remains the launch parameter in query contracts.
Screen-Remote-Review: confirmed
bff114b
Align compatibility scaling and add streaming ADB fallback
- Reworked compatibility capture scaling behavior to percentage-based presets and direct `maxSize` mapping in the capture strategy (`10%..90%`, `Original/0`, values above `100` as max-pixel cap, `jpegQuality = maxSize` clamped `1..100`).
- Updated compatibility capture persistence and validation path via `CompatibilityCaptureSettings` tests (`native mode`, `1..99` mapping, upper-range clamping behavior) to lock in the new runtime rules.
- Added ADB transport resilience: `AdbConnection.streamingDadb()` now falls back to the primary route on streaming lane creation/handshake failures, updates delayed-ACK capability reporting accordingly, and hardens helper-stream error logging/closure handling in compatibility mode paths.
- Added overflow-safe behavior to compatibility touch queue (`CompatibilityLiveTouchQueue`) and session lifecycle recovery handling so queue saturation drops oldest MOVE first while preserving pointer lifecycle boundaries.
- Made build ABI scope configurable through `TARGET_ABI` (comma-separated list) instead of fixed hard-coded sets in `app/build.gradle.kts` while preserving current defaults.
Screen-Remote-Review: confirmed
c274eb3
Add QR pairing auto-connect and improve compatibility/codec selection
- Add a QR pairing workflow in the device pairing UI, including generated temporary QR credentials, method switching (QR vs pairing code), and automatic pairing when the target pairing service is discovered over mDNS.
- Update pairing entrypoints so both QR and pairing-code paths share a single validation/connection flow, support discoverable host+port prefill from nearby services, and improve pairing-state transitions.
- Refine compatibility-mode session behavior by removing forced clipboard-sync disablement while preserving the existing audio-disable invariant; allow multiple connection candidates to surface explicitly.
- Update automatic video codec selection to prefer Google VP8 over Google H264 in the constrained Google-only fallback path when no user codec is selected, with VP8 fallback handling to H264 if VP8 decode is not available.
- Add/update targeted unit tests for pairing, compatibility mode, and codec selection behavior, and keep runtime/build contract updates aligned with the new behavior.
Screen-Remote-Review: confirmed
5c671c1
Add Nearby ADB TCP discovery to session pairing workflow
- Added Nearby ADB discovery pipeline with new scanner orchestration and mDNS presence parsing for `_adb._tcp` services.
- Added a nearby scan action in the session screen and integrated scan-driven address prefill in Add Session dialog (primary/backup addresses).
- Updated session pairing UI utilities and texts for scan states, empty/error messaging, and action wiring.
- Hardened mdns service filtering to isolate Android ADB TCP entries and prevent duplicate/non-relevant service selection.
- Added targeted unit tests for scanner logic, mDNS presence parsing/selection, and session dialog scan interactions.
- Included related app-update and downloader adjustments present in the same app commit (rotation policy rename and proxy URL handling) as code changes.
Screen-Remote-Review: confirmed
4d312e3
Enhance session discovery, management, and telemetry behaviors
- Refactor mDNS session discovery into a shared manager with explicit acquire/release lifecycle, retry/backoff control, and periodic refresh triggered by monitor/network/foreground changes to stabilize wireless pairing and reduce stale service rows.
- Introduce and propagate a `confirming` session/service state through mDNS resolution and pairing UI (`DevicePairingDialog`, session badges, and session list logic).
- Expand session management app operations with running-state rendering, selection-mode bulk actions (enable/disable/force-stop/uninstall/export), and improved app-cache replacement semantics.
- Add robust command completion tracking in the command page with cancellation/request-id safety and explicit completion-loading state.
- Improve URL/deep-link handling via `ScrcpyConfig` parameter serialization round-trip coverage, asynchronous session URL copying, and reuse of stored launch options.
- Extend startup telemetry and upload behavior (start ping timing, identity header propagation on restored installs, and explicit today/yesterday manual upload path).
Screen-Remote-Review: confirmed
17a2b4f
- fix remote-session exit orientation restore to `SCREEN_ORIENTATION_USER` when prior policy is unspecified.
- Add regression tests for remote orientation reapply behavior and increment app version code for this change set.
Screen-Remote-Review: confirmed
529310c
Harden compatibility input and video recovery
- Stream compatibility-mode touch events through the bundled helper with bounded MOVE coalescing and interrupted-stream recovery.
- Expand video recovery through maxSize 540, cancel conflicting reconnects, and show actionable session-aware failures.
- Move management dashboards and icon caching to typed helper snapshots and version metadata.
- Update AGP to 9.3.1 and add focused coverage for connection display, helper caching, touch queues, runtime state, and video recovery.
Screen-Remote-Review: confirmed
fed9201
## Add URL automation and compatibility recovery
- Add screen-remote URLs for navigation, transient scrcpy overrides, management, and settings.
- Add an ADB screenshot compatibility mode with user-confirmed video capture and decoder-size recovery.
- Add opt-out telemetry, debug diagnostics, media hardening, remote volume-key forwarding, and regression coverage.
## Add legacy shell fallback and remote device helpers
- Fall back from shell_v2 to legacy shell when unsupported or rejected, and remember rejected connection features.
- Add a remote JPEG screenshot stream with DisplaySurface and SurfaceControl capture backends.
- Add helper APIs for directory listing, process inspection, application metadata, icons, and remote text injection.
- Extend compatibility to older Android runtimes and replace unavailable platform APIs with portable implementations.
- Add regression and integration coverage for legacy shell, management helpers, screenshots, and platform compatibility.
1db283c
Refine session management and modernize Android APIs
- Prefetch session-scoped management data and query device and application metadata through the dadb helper.
- Add reversible app sorting, terminal completion and separators, unified management layouts, and accessible video taps.
- Remove obsolete compatibility and monitoring code, move blocking operations to IO dispatchers, and pin Gradle 9.5.0.
- Add app-sort and terminal regression coverage and update pre-push reviews to gpt-5.6-sol.
Screen-Remote-Review: confirmed
944502f
## Standardize runtime diagnostics in English
- Replace Chinese and locale-dependent internal diagnostics across logging, ADB, media, scrcpy, session, control, and foreground-service paths with fixed English text.
- Align reconnect permanence matching and stream-closure detection with the translated error messages while preserving runtime flow.
## Unify ADB routing and improve management and decoder recovery
- Separate primary and delayed-ACK streaming routes in DadbSession, isolating resource ownership between scrcpy forwarding and regular management operations
- Preload and cache app and file data, improve terminal interruption, history, and semantic highlighting, unify semantic colors across themes, and normalize an empty game-mode bitrate to 2 Mbps
- Replay a bounded complete GOP after decoder switches and add regression tests, introduce the manual pre-push Wiki review gate, and bump the version code to 7
7798548
Document game mode and remote session improvements
8103ba6
Document scrcpy 4.1, codec, and connection improvements
e233a99
Update Scrcpy Remote documentation
001f958
Create Scrcpy Remote documentation
0b75633