fix: Leerzeichen im Geraetenamen + alte Agenten aus der Liste entfernbar
1) 'adb shell' haengt seine Argumente zu EINER Kommandozeile zusammen, die auf dem Geraet nochmal von der Shell zerlegt wird — '-e name Wohnzimmer Fire TV' kam als 'Wohnzimmer' an, der Rest fiel weg. Alle Werte werden jetzt mit shlex.quote gequotet. 2) Umbenennen erzeugt eine neue hostId, der alte Eintrag blieb fuer immer in der Diagnostic stehen (nach 5 min nur rot, nie weg). Neuer ✕-Button je Agent (host_forget) mit Rueckfrage; laeuft der Agent noch, meldet er sich von selbst wieder — das Entfernen stoppt ihn also nicht. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -1301,18 +1301,23 @@ def _do_adb_provision(params: dict) -> dict:
|
||||
return {"ok": False, "error": f"'{package}' ist nicht installiert — "
|
||||
"erst adb.install ausfuehren."}
|
||||
|
||||
# WICHTIG: 'adb shell' haengt die Argumente zu EINER Kommandozeile zusammen,
|
||||
# die auf dem Geraet nochmal von der Shell zerlegt wird. Werte mit Leerzeichen
|
||||
# ("Wohnzimmer Fire TV") wuerden dabei abgeschnitten -> jeden Wert quoten.
|
||||
import shlex
|
||||
q = shlex.quote
|
||||
args = ["-s", target, "shell", "am", "start",
|
||||
"-n", f"{package}/.MainActivity",
|
||||
"-a", f"{package}.PROVISION",
|
||||
"-e", "host", rvs_host,
|
||||
"-e", "token", rvs_token,
|
||||
"-e", "host", q(rvs_host),
|
||||
"-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"]
|
||||
if params.get("name"):
|
||||
args += ["-e", "name", str(params["name"])]
|
||||
args += ["-e", "name", q(str(params["name"]))]
|
||||
if params.get("reply_mode"):
|
||||
args += ["-e", "reply_mode", str(params["reply_mode"])]
|
||||
args += ["-e", "reply_mode", q(str(params["reply_mode"]))]
|
||||
|
||||
rc, out, err = _adb_run(args, timeout=60)
|
||||
if rc != 0 or "Error" in f"{out} {err}":
|
||||
|
||||
Reference in New Issue
Block a user