# Skill: Root-Ausführung & Persistenz ## Root-Loop (Kommando-Kanal) `/3rd_rw/appdata/root_loop.sh` läuft als root, pollt `root_cmd.sh`, führt aus, schreibt `root_out.txt`. ```js HiBrowser.File.write("root_cmd.sh", "id; cat /proc/self/status | grep -E '^(Uid|Gid|CapEff):'\n", 1); // ~2-5 s warten: fileXHR("file:///3rd_rw/appdata/root_out.txt"); // uid=0(root), CapEff=0000003fffffffff ``` Fertiges Snippet: `../root/scripts/host/run_root_cmd.js`. ## SSH (Rettungsweg) - Dropbear, **key-only** root, Port 22. `ssh root@192.168.188.94`. - SFTP/`scp` erst nach `../root/scripts/host/install_sftp.sh` (statischer OpenSSH-sftp-server, Test 2222 → 22). Vorher: `ssh`+`base64`/`tar`/`File.download`. - PTY-Gotcha: `/dev` ist statisch-ro (kein devtmpfs). `mount -t devpts` auf `/dev/shm/pts` + `bind /dev/pts`; `/etc/passwd`-Bindmount nötig (Root-Home `/basic` ro). ## Persistenz (Boot-Hooks) | Hook | Zeitpunkt | Datei | |---|---|---| | Früher Root-Hook | vor ms_service/hisenseUI/app_man/delayrun | `/3rd_rw/developer.sh` (Zeile 90) | | Später Wrapper | nach ~15 s | `/3rd_rw/hamservice/HamService` (`hamservice-wrapper.sh`) | Fehler in `developer.sh` kann Boot/UI stören → `set -x`+Log, SSH als Fallback. ## App-/Service-Steuerung (AM) ```js HiBrowser.System.startApp(":am,,:start="); HiBrowser.System.startApp(":am,opera4x,:URL=http://:9000/recon.html"); HiBrowser.System.startApp(":am,opera4x,:stop=opera4x"); ``` - UI-Kontext: `Hisense_StartApp(...)` (Signatur `UNVERIFIED`, im DevTools prüfen). - `startApp` kennt **kein** exec/run/args (Dead End). Siehe: `../root/ROOT-GUIDE.md`, `../modding/02-boot.md`, `../modding/06-toolchain-deploy.md`.