1.7 KiB
1.7 KiB
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.
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/
scperst nach../root/scripts/host/install_sftp.sh(statischer OpenSSH-sftp-server, Test 2222 → 22). Vorher:ssh+base64/tar/File.download. - PTY-Gotcha:
/devist statisch-ro (kein devtmpfs).mount -t devptsauf/dev/shm/pts+bind /dev/pts;/etc/passwd-Bindmount nötig (Root-Home/basicro).
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)
HiBrowser.System.startApp(":am,<app>,:start=<val>");
HiBrowser.System.startApp(":am,opera4x,:URL=http://<host>:9000/recon.html");
HiBrowser.System.startApp(":am,opera4x,:stop=opera4x");
- UI-Kontext:
Hisense_StartApp(...)(SignaturUNVERIFIED, im DevTools prüfen). startAppkennt kein exec/run/args (Dead End).
Siehe: ../root/ROOT-GUIDE.md, ../modding/02-boot.md, ../modding/06-toolchain-deploy.md.