add stuff

This commit is contained in:
angryzero committed 2026-10-27 15:56:27 +01:00
commit 26cd15d899
65 files changed
+4820

No files matched your search

+43
View File
@@ -0,0 +1,43 @@
# Templates — kurz erklärt
| Datei | Ziel |
|---|---|
| `developer.sh` | früher Root-Boot-Hook (`/3rd_rw/developer.sh`), Beispiele für Binds/Stubs/Services |
| `custom-app.json` | `AppInfo`-Eintrag für eine eigene App-Tile (`Appinfo.json`) |
| `hide-preset.json` | `deletedPresetApp.txt`-Beispiel (Tiles ausblenden) |
| `custom-ui.html` | minimale Custom-UI-Seite (`/3rd_rw/UI/custom.html`) |
| `start-UI-custom.sh` | `start-UI.sh`-Klon, lädt `custom.html` |
## Nutzung
```sh
# 1) developer.sh (optional, früh)
cp developer.sh /3rd_rw/developer.sh
chmod 755 /3rd_rw/developer.sh
# Beispiele in der Datei einkommentieren; reboot
# 2) App-Tile
# custom-app.json-Inhalt in /3rd_rw/appdata/launcher/Appinfo.json mergen
# (bestehende AppInfo-Einträge behalten!)
# UI neu starten / reboot
# 3) Tiles ausblenden
cp hide-preset.json /3rd_rw/appdata/launcher/deletedPresetApp.txt
# anpassen; UI neu starten / reboot
# 4) Custom-UI
cp custom-ui.html /3rd_rw/UI/custom.html
cp start-UI-custom.sh /3rd_rw/patch/start-UI-custom.sh
chmod 755 /3rd_rw/patch/start-UI-custom.sh
# in /3rd_rw/developer.sh:
# mount --bind /3rd_rw/patch/start-UI-custom.sh /3rd/opera4x/hisenseUI/start-UI.sh
# reboot
```
## Wichtig
- **Backup** vor jeder Änderung: `/3rd_rw/backup/`.
- **SSH/Root-Loop** als Rettungsweg behalten; bei schwarzem Bildschirm `UI/index.html`-Backup zurück, `hisenseUI` neu starten.
- **API-Namen** (`Hisense_StartApp`, `TVAPI`, `guijs`) sind `UNVERIFIED`; im UI-DevTools (9223) / Web-Browser (9224) prüfen.
- **Kein Flash**: alles in `/3rd_rw`/Bind-Mounts; Rollback per Datei/`umount`/Reboot.
- **`hide-preset.json`** ist ein Vollbeispiel (inkl. `TV Browser`/`vidaa-plus`); kürze es auf das, was du wirklich ausblenden willst. `VidaaRecon` nicht ausblenden, wenn du die Recon-Seite brauchst.
+19
View File
@@ -0,0 +1,19 @@
{
"AppInfo": [
{
"AppId": "MyApp",
"Thumb": "file:///3rd_rw/appdata/custom/icon.png",
"Icon_96": "file:///3rd_rw/appdata/custom/icon.png",
"Image": "file:///3rd_rw/appdata/custom/icon.png",
"URL": "file:///3rd_rw/appdata/custom/index.html",
"AppName": "MyApp",
"Title": "MyApp",
"IconURL": "file:///3rd_rw/appdata/custom/icon.png",
"StartCommand": "file:///3rd_rw/appdata/custom/index.html",
"InstallTime": "2026-10-26",
"RunTimes": 0,
"StoreType": "foxxum",
"PreInstall": false
}
]
}
+76
View File
@@ -0,0 +1,76 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=1280,height=720">
<title>My TV</title>
<style>
html, body { margin:0; width:100%; height:100%; background:#0b0b0b; color:#eee;
font-family: -apple-system, "Segoe UI", Roboto, sans-serif; overflow:hidden; }
.wrap { padding:2.2vw; }
h1 { font-size:2.8vw; margin:0 0 1.2vw 0; font-weight:300; letter-spacing:.04em; }
.row { display:flex; gap:1vw; flex-wrap:wrap; }
button { font-size:1.25vw; padding:1vw 1.5vw; border-radius:.55vw;
border:1px solid #444; background:#1b1b1b; color:#eee; cursor:pointer; }
button:hover { background:#2a2a2a; }
pre { margin-top:1.5vw; font-size:.95vw; color:#8f8; white-space:pre-wrap; }
.hint { color:#888; font-size:1vw; margin-top:1.5vw; }
</style>
</head>
<body>
<div class="wrap">
<h1>My TV</h1>
<div class="row">
<button onclick="launch('dtv_app_mtk')">TV</button>
<button onclick="launch('netflix')">Netflix</button>
<button onclick="launch('youtube')">YouTube</button>
<button onclick="launch('opera4x')">TV Browser</button>
<button onclick="launch('factory_lite')">Factory</button>
<button onclick="probe()">APIs</button>
</div>
<pre id="out">ready.</pre>
<div class="hint">
Custom-UI-Template. API-Namen/Signaturen sind UNVERIFIED — im UI-DevTools (9223)
bzw. im Web-Browser (9224) prüfen. Kein Shell-Zugriff aus JS; dafür Root-Loop/SSH.
</div>
</div>
<script>
function out(o){ document.getElementById('out').textContent = JSON.stringify(o,null,2); }
function launch(id){
var o = {app:id};
try {
// UI context (hisenseUI / UI_jsplugins)
if (typeof Hisense_StartApp === 'function') {
Hisense_StartApp(':am,' + id + ',:start=' + id);
o.via = 'Hisense_StartApp';
} else if (typeof HiBrowser !== 'undefined' && HiBrowser && HiBrowser.System) {
// web-browser context (hisense_browser / libhspdk-jsx)
HiBrowser.System.startApp(':am,' + id + ',:start=' + id);
o.via = 'HiBrowser.System.startApp';
} else if (typeof TVAPI !== 'undefined' && TVAPI && TVAPI.StartApp) {
TVAPI.StartApp(id);
o.via = 'TVAPI.StartApp';
} else if (typeof guijs !== 'undefined' && guijs && guijs.StartApp) {
guijs.StartApp(id);
o.via = 'guijs.StartApp';
} else {
o.via = 'none';
o.note = 'No start API found; see 03-ui.md / DevTools.';
}
} catch(e) { o.err = String(e); }
out(o);
}
function probe(){
var o = {};
['Hisense_StartApp','HiBrowser','TVAPI','guijs','model','UI'].forEach(function(k){
try { o[k] = (typeof window[k] !== 'undefined') ? typeof window[k] : 'undefined'; }
catch(e){ o[k] = String(e); }
});
o.href = location.href;
out(o);
}
</script>
</body>
</html>
+63
View File
@@ -0,0 +1,63 @@
#!/bin/sh
# /3rd_rw/developer.sh
#
# EARLY root boot hook. Called by /basic/autorun.sh at line ~90, i.e. BEFORE:
# ms_service (162) -> hisenseUI (168) -> app_man (177) -> delayrun (190)
#
# Use it for:
# - bind-mounting modified /basic/am_start.ini, am_config, delayrun.sh
# - stubbing unwanted services (ms_service, start-UI.sh, ...)
# - starting your own root service
# - starting root_loop/sshd earlier than the late HamService wrapper
#
# Keep it idempotent and log everything. If it breaks the UI/AM, remove it via
# SSH/root_loop and reboot.
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/basic/bin
export PATH
# Everything to a log (comment out for serial/debug)
exec >>/3rd_rw/developer.log 2>&1
echo "=== developer.sh $(date) boot=$(cat /proc/sys/kernel/random/boot_id 2>/dev/null) ==="
# set -x
# ---------------------------------------------------------------------------
# 1) Your own root service
# ---------------------------------------------------------------------------
# mkdir -p /3rd_rw/bin
# /3rd_rw/bin/mydaemon &
# echo "mydaemon started: $!"
# ---------------------------------------------------------------------------
# 2) Replace a ro config BEFORE app_man reads it (am_start/am_config)
# Put modified copies under /3rd_rw/etc/.
# ---------------------------------------------------------------------------
# mount --bind /3rd_rw/etc/am_start.ini /basic/am_start.ini
# mount --bind /3rd_rw/etc/am_config /basic/am_config
# echo "am configs bound"
# ---------------------------------------------------------------------------
# 3) Replace a ro service script/binary BEFORE autorun runs it.
# Example: stub ms_service (autorun line 162)
# ---------------------------------------------------------------------------
# mkdir -p /3rd_rw/stubs
# printf '#!/bin/sh\nexit 0\n' > /3rd_rw/stubs/true
# chmod 755 /3rd_rw/stubs/true
# mount --bind /3rd_rw/stubs/true /3rd/ms-screen/ms_service
# echo "ms_service stubbed"
# Example: custom UI start script (autorun line 168)
# mount --bind /3rd_rw/patch/start-UI-custom.sh /3rd/opera4x/hisenseUI/start-UI.sh
# echo "custom start-UI bound"
# Example: modified delayrun (autorun line 190)
# mount --bind /3rd_rw/etc/delayrun.sh /basic/delayrun.sh
# echo "delayrun bound"
# ---------------------------------------------------------------------------
# 4) Start root loop / SSH earlier (optional; the HamService wrapper also does)
# ---------------------------------------------------------------------------
# /bin/sh /3rd_rw/appdata/root_loop.sh &
# [ -x /3rd_rw/sshd/start_sshd.sh ] && /bin/sh /3rd_rw/sshd/start_sshd.sh &
echo "=== developer.sh done ==="
exit 0
+27
View File
@@ -0,0 +1,27 @@
[
"netflix",
"amazon",
"youtube",
"browser",
"vidaa-plus",
"accuweather",
"https://cd-dmgz.bamgrid.com/bbd/hisense_tv/index.html",
"http://8577004de253-ott-tv.maxdome.de",
"https://prod-hisense-ui40-app.rakuten.tv/",
"https://tvapp.rlaxxtv.com/r/no-animations/720/?customer=Hisense",
"https://hisense.chili.com",
"https://smarttv.uefa.tv",
"https://app.hisense.rtl-smart.tv/",
"https://ctv-vewd.kidoodle.tv",
"http://www.yupptv.com/hisense/index.html",
"http://plex.tv/web/tv/hisense?mixedContent=1",
"https://smarttv3.videociety.de",
"http://apps.tvgam.es/tv_games/hisense_portal/production/portal/index.html",
"http://2897431816.fxm3751860294.com/?category=apps",
"http://2897431816.fxm3751860294.com/?category=movies",
"http://2897431816.fxm3751860294.com/?category=catchup",
"http://2897431816.fxm3751860294.com/?category=news",
"http://2897431816.fxm3751860294.com/?category=music",
"http://2897431816.fxm3751860294.com/?category=sport",
"http://2897431816.fxm3751860294.com/?category=search"
]
+42
View File
@@ -0,0 +1,42 @@
#!/bin/sh
# custom start-UI: same runtime as the stock start-UI.sh, but loads
# /3rd_rw/UI/custom.html instead of /3rd_rw/UI/index.html.
#
# Install (safe, file-level bind mount) via /3rd_rw/developer.sh:
# mkdir -p /3rd_rw/patch
# cp this file /3rd_rw/patch/start-UI-custom.sh
# chmod 755 /3rd_rw/patch/start-UI-custom.sh
# mount --bind /3rd_rw/patch/start-UI-custom.sh /3rd/opera4x/hisenseUI/start-UI.sh
#
# Or use the vendor full overlay /3rd_rw/patch/opera4x (see 04-modding.md, E.2).
set -e
cd /3rd/opera4x/hisenseUI
. ./opera_env.sh
export MEMORY_LIMIT=$(( 500*1024*1024 ))
STARTPAGE="file:///3rd_rw/UI/custom.html"
if [ -x /etc/scripts/ins_arm_mali_mod.sh ]; then
/etc/scripts/ins_arm_mali_mod.sh
fi
export LD_PRELOAD="/3rd/opera4x/lib/libcurl.so.4.4.0"
cmd="./bin/hisenseUI"
cmd+=" --hw-gles"
cmd+=" --js-flags=\"--expose-gc\""
cmd+=" --jsplugins-dir=/3rd/UI_jsplugins"
cmd+=" --enable-gpu-rasterization"
cmd+=" --force-gpu-rasterization"
cmd+=" --force-gpu-mem-available-mb=512"
cmd+=" --disable-software-rasterizer"
cmd+=" --disable-web-security"
cmd+=" --http-cache-size=30"
cmd+=" -u ${STARTPAGE}"
if [ -e /3rd_rw/appdata/enable_developer_tools ]; then
cmd+=" --remote-debugging-port=9223"
fi
cmd+=" $@"
exec $cmd