46 lines
1.7 KiB
Markdown
46 lines
1.7 KiB
Markdown
# 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,<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(...)` (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`.
|