4.4 KiB
4.4 KiB
Dead Ends — kurz, damit sie niemand wiederholt
Diese Wege wurden untersucht und verworfen. Sie sind nicht nötig für den finalen Root-/SSH-/Modding-Weg. Details/History: alter Run-Ordner docs/re/20261025-vidaa-takeover/ (Evidence).
Factory / AM / Keys
Builtin Video(Factory): baut den Pfad aus demStoreModeDemo[Backup]-Präfix neu; Suffix-Injection wird ignoriert → „can not find built-in video“.Write Keys(Factory): feste Dateinamen + File-API, keinsystem()/popen()mit Angreifer-Input.- AM
startApp::am,<app>,:<verb>=<val>für start/stop/pause/resume/URL/backgm/foregm/shutdown/suspend/wakeup; keinargs/exec/run. Shell-Injection-Versuche (startApp("id>…"),sh -c) negativ. - FAT32-USB-/Factory-Injection:
factory_lite-USB-Callback/Copy-Pfad nicht auslösbar; kein Root-Exec. checker.sh/file_upgrading/.pkg/bspatch: nicht als Root-Trigger genutzt; kein Flash/OTA-Weg.
V8 / FileReader
- Engine ist Chromium 59.0.3071.115 / V8 5.9.211.38 (nicht 63/6.3, nicht 43/4.3 — das sind UA-Presets).
- Kein öffentlicher ARM32-Exploit für diese Kombination; Eigenbau wäre nötig. Nicht benötigt, weil der Loader-Shadow-Weg sauber root liefert.
navigator.requestMediaKeySystemAccessist in diesem Build nicht verfügbar → Widevine-/EME-CDM-Trigger als Root-Pfad tot.
liblogLevel-Shadow
/3rd_rw/loglevel/libist Index 17 (erste schreibbare LD-Position), aberliblogLevel.soexistiert dort → kann per Symlink-Trick nicht überschrieben werden (Ziel existiert →realpath-Prüfung schlägt zu).libIQQILib(RPATH/3rd/iqqi/lib),libota/libhisensefileutils(spätere LD-Positionen) als Shadow-Ziele verworfen; nurlibtvsysinfo.soist ein direktesNEEDEDund an Index 17 frei.liblogLevel-/ota-/hisensefileutils-Payload-Varianten und die/3rd_rw/ms-screen/lib-Variante (lib-Symlink) sind nicht im aktiven Loader-Pfad; nicht nötig.
Schreib-/JS-API
File.writemit Binärdaten →EINVAL(22); Text geht, Binary nicht. Binary-Write überFile.download(curl) durch den Symlink funktioniert.HiBrowser.loadLibrary/jsplugins-Tricks: Lib wird aus${OPERA_DIR}/jsplugins/<name>gebaut, aber nicht in den Prozess geladen; tot.- Whitelist
IsSubDentry: kein Trailing-Slash,realpath+ Präfix; nur der dangling Symlink auf ext4-USB ist der Bypass.
USB
- Whole-Disk-ext4 (Superfloppy, kein
sdX1) wird vom TV nicht gemountet; MBR + Partition nötig. - FAT32 kann keine Symlinks → kein Symlink-Bypass; ext4 nötig.
- Der
pwn-Symlink war nur der Proof des Bypasses; der finale Weg nutzttvi.
SSH
- Dropbear-Option
-sexistiert in diesem Build nicht („Invalid option -s“); Passwort-Auth ist compile-time aus (DROPBEAR_SVR_PASSWORD_AUTH=0). Startskript ohne-s. - PTY:
/devist statisches ro squashfs (kein devtmpfs);mount -t devptsdirekt auf/dev/ptsscheitert. Nur der Umweg devpts auf/dev/shm/pts+ bind/dev/ptsfunktioniert;/dev/ptmx(5,2) bleibt statisch. /etc/passwd-Bindmount ist nötig, weil Root-Home/basicro ist;/etc/shadowwird nicht angefasst (key-only).- SFTP/SCP: Dropbear allein hat keinen sftp-server — das war der Grund für
sh: /usr/libexec/sftp-server: No such file. Kein Dead End mehr: der finale Ordner liefert einen statischen OpenSSH-9.9p1-sftp-server + Dropbear mitSFTPSERVER_PATH=/3rd_rw/sshd/sftp-server; Installationroot/scripts/host/install_sftp.sh(Test auf 2222, dann 22). Danach funktionierensftpund modernesscp.
UI-Experimente
/3rd_rw/launcherund/3rd_rw/VIDAAU2Launchersind Alt-/Alternativ-Skins; die aktive UI ist/3rd_rw/UI/index.html(hisenseUI). Die alten Launcher-HTML/JS sind nicht der aktive Einstieg.- Die
preset-/deleted-Probe-URLs (data:, javascript:, 127.0.0.1;cd…) sind unsere alten Experimente; im finalen Ordner nicht enthalten. Der TV-deletedPresetApp.txtwurde beim Cleanup geleert ([], Stand 2026-10-26). ms_service/swrc/runlog/Seriallog/HamServicesind für den Root-Weg nicht nötig; nur derHamService-Wrapper wird als Boot-Hook für SSH/Root-Loop genutzt.
Was stattdessen gilt
USB-ext4 + tvi → libtvsysinfo-Shadow → DT_INIT-Root → Root-Loop → Dropbear/PTY → HamService-Wrapper.
Das ist der finale, live bestätigte Weg. Alles andere ist optionales Modding (siehe modding/).