feat(android-agent): Bildschirm-Aufnahme nach Neustart automatisch scharf schalten
Die BERECHTIGUNGEN bleiben dauerhaft (pm grant / appops in appops.xml), die MediaProjection-SITZUNG aber nicht — Android laesst sie nicht speichern. Nach Reboot/App-Neustart war der Agent also verbunden, konnte aber keinen Screenshot machen, bis jemand am Fernseher 'Bildschirm-Zugriff erlauben' drueckt. - CaptureActivity: unsichtbarer Helfer (Theme.Translucent, noHistory, excludeFromRecents), fordert die Projektion an und reicht das Ergebnis an den Dienst. Mit gesetztem AppOp PROJECT_MEDIA laeuft das OHNE Dialog durch. - AgentService startet sie beim Dienststart automatisch nach (2,5s Verzoegerung), aber nur wenn captureEnabled gesetzt ist — wer die Aufnahme nie wollte, bekommt auch keinen Dialog. - AgentConfig.captureEnabled: wird gesetzt, sobald die Aufnahme einmal lief, und kann beim Fern-Einrichten mitgegeben werden (nur wenn der Satellit PROJECT_MEDIA wirklich erteilen konnte). Android-Version 0.0.1.3. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -1362,7 +1362,10 @@ def _do_adb_provision(params: dict) -> dict:
|
||||
"-e", "token", q(rvs_token),
|
||||
"--ei", "port", str(int(params.get("rvs_port") or 443)),
|
||||
"--ez", "tls", "true" if _as_bool(params.get("rvs_tls"), True) else "false",
|
||||
"--ez", "control", "true" if _as_bool(params.get("control"), True) else "false"]
|
||||
"--ez", "control", "true" if _as_bool(params.get("control"), True) else "false",
|
||||
# Nur wenn die Bildschirm-Berechtigung wirklich sitzt: dann darf sich
|
||||
# die Aufnahme nach jedem Neustart selbst scharf schalten (dialogfrei).
|
||||
"--ez", "capture", "true" if "Bildschirmaufnahme" in perms.get("granted", []) else "false"]
|
||||
if params.get("name"):
|
||||
args += ["-e", "name", q(str(params["name"]))]
|
||||
if params.get("reply_mode"):
|
||||
|
||||
Reference in New Issue
Block a user