8.8 KiB
Phase 1 – System-, Security-, Kernel- und SoC-Inventar
Stand: 2026-08-25. Ziel: Philips 43PUS7394/12 unter
<TV_IP>:5555. Alle Geräteabfragen waren lesend; APK-, Fstab-, Init-
und Kernel-Config-Pulls schrieben nur Kopien in den Host-Workspace. Es gab
keinen Reboot, keine Property-/Settings-Änderung, kein adb root, keinen
Fastboot-/Recovery-Wechsel und keine Exploit-Ausführung.
Bewertung: CONFIRMED = direkt beobachtet, LIKELY = starke Indizkette, POSSIBLE = offen/vereinbar, DISPROVED = im untersuchten Build direkt widerlegt.
Identität und Build
| Merkmal | Wert | Bewertung |
|---|---|---|
| Modell | Philips 43PUS7394/12; Android-Modellproperty TPM191E |
CONFIRMED |
| ADB-Produkt / Device | PH9M_EA_5599 |
CONFIRMED |
| Firmware | TPM191E_R.211.000.103.000 |
CONFIRMED |
| Android / SDK | Android TV 12 / API 31; First API Level 28 | CONFIRMED |
| Security Patch Level | 2025-11-01 |
CONFIRMED als Property, nicht als Binärbeweis jedes Vendor-Backports |
| Build-ID / Incremental | STT2.230526.001 / 4215 |
CONFIRMED |
| Buildzeit | 2025-12-09 11:16:50 CST | CONFIRMED |
| Fingerprint | Philips/PH9M_EA_5599/PH9M_EA_5599:12/STT2.230526.001/4215:user/release-keys |
CONFIRMED |
| Buildtyp / Tags | user / release-keys |
CONFIRMED |
| Debug/Secure | ro.debuggable=0, ro.secure=1, ro.adb.secure=1 |
CONFIRMED |
| Priv-App-Permissions | ro.control_privapp_permissions=enforce |
CONFIRMED |
| Treble / VNDK | Treble true, Framework-VNDK 31, Vendor-VNDK 26 |
CONFIRMED |
Seriennummern, Netzwerkadressen und andere eindeutige Gerätekennungen aus der vollständigen Propertyliste werden in diesem Bericht bewusst nicht wiederholt.
CPU, SoC und ABI
| Ebene | Befund | Bewertung |
|---|---|---|
| CPU | vier ARMv8-Cortex-A53-Kerne (CPU part 0xd03) |
CONFIRMED |
| Kernelarchitektur | ARM64/AArch64 (CONFIG_ARM64=y, CONFIG_64BIT=y) |
CONFIRMED |
| Android-Userspace | ausschließlich 32-Bit ARM: armeabi-v7a,armeabi, zygote32, keine 64-Bit-ABI |
CONFIRMED |
| Android-/Kernelplattform | mt5887; CONFIG_MACH_MT5887=y, CONFIG_SOC_MEDIATEK_MT53XX=y |
CONFIRMED |
| Android-SoC-Property | Hersteller Mediatek, Modell MT5690 |
CONFIRMED als Property |
| TPV-OEM-Chipproperty | MT5599 |
CONFIRMED als OEM-Kennung |
| Physische Aliasbeziehung MT5887/MT5690/MT5599 | nicht durch Chip-ID oder Herstellerunterlage bewiesen | POSSIBLE, nicht gleichsetzen |
Die belastbare Formulierung lautet daher: MediaTek-TV-Plattform mit
mt5887-BSP und den zusätzlichen TPV/Android-Kennungen MT5599/MT5690.
Kernel und Härtung
Linux localhost 4.9.310-ab4215 #1 SMP PREEMPT
Tue Dec 9 11:04:39 CST 2025 armv8l
Compiler: Linaro GCC 5.5.0 (2017.10)
Der 32-Bit-armv8l-Maschinenstring kommt vom 32-Bit-Userspace; die gesicherte
/proc/config.gz beweist einen ARM64-Kernel.
| Merkmal | Befund | Bewertung |
|---|---|---|
| SELinux | Enforcing; Development-/Disable-Code einkompiliert, aber nicht aktiv |
CONFIRMED |
| User namespaces | nicht einkompiliert | CONFIRMED |
| Userfaultfd | nicht einkompiliert | CONFIRMED |
Kexec, /dev/mem, /dev/kmem |
nicht einkompiliert | CONFIRMED |
| PAN / SW-TTBR0-PAN | aktiv | CONFIRMED |
| KASLR / relocatable kernel | CONFIG_RANDOMIZE_BASE=y; kein nokaslr in der beobachteten Commandline, tatsächliche Entropie nicht separat gemessen |
CONFIRMED als Buildoption / LIKELY zur Laufzeit |
| Stack protector / hardened usercopy | stark / aktiv | CONFIRMED |
| Seccomp / Filter | einkompiliert; ADB-Shell-Prozess meldete aktuell Seccomp: 0 |
CONFIRMED |
| Perf | /proc/sys/kernel/perf_event_paranoid=3 |
CONFIRMED |
| Module | Laden/Entladen einkompiliert; CONFIG_MODULE_SIG nicht gesetzt |
CONFIRMED; Shell besitzt dennoch weder CAP_SYS_MODULE noch einen nachgewiesenen Ladepfad |
| BPF | BPF und BPF-Syscall einkompiliert; Runtimewert für unprivilegiertes BPF durch SELinux verborgen | CONFIRMED / offen |
| Debugfs | einkompiliert und gemountet; sensible Bereiche durch SELinux begrenzt | CONFIRMED |
Geladene proprietäre Module umfassen unter anderem dtv_driver, mtk_core,
mali_kbase, fusion, tpvinput, Audio-, WLAN- und Videomodule. Das aktive
Mali-Kernelmodul enthält r32p0-Buildpfade als starkes Basisindiz und den
Vermagic-String
4.9.310-ab4215 ... aarch64; SurfaceFlinger meldet separat einen Mali-G51-
Userspace-Stack r32p1. Die separate Sicherheits-/CVE-Triage ist aus dieser
kuratierten Veröffentlichung ausgeschlossen.
Aktueller ADB-/Privilegkontext
| Merkmal | Befund | Bewertung |
|---|---|---|
| Transport | <TV_IP>:5555 device |
CONFIRMED |
| UID/GID | UID/GID 2000 shell |
CONFIRMED |
| Gruppen | unter anderem shell, input, log, adb, inet, readproc, uhid; kein root/system |
CONFIRMED |
| SELinux-Domain | Shellkommando u:r:shell:s0; adbd u:r:adbd:s0 |
CONFIRMED |
| Shell-Capabilities | Effective/Permitted/Inheritable/Ambient jeweils 0; Bounding Set 0xc0 |
CONFIRMED |
| adbd | UID/GID 2000, keine effektiven/permitted Capabilities | CONFIRMED |
| PID 1 | UID/GID 0 und voller Capabilitysatz; nur Statuslesbarkeit, keine Kontrolle durch Shell | CONFIRMED |
su |
nicht in den geprüften üblichen System-/Vendorpfaden gefunden | CONFIRMED als begrenzter Nichtfund |
| ADB liefert derzeit einen Root-Kontext | nein | DISPROVED |
Die Init-Definition startet adbd mit der Option
--root_seclabel=u:r:su:s0, und service.adb.root=1 würde USB zurücksetzen
und adbd neu starten. Das ist noch kein Rootpfad: der Production-Build hat
ro.debuggable=0, und adbd läuft tatsächlich als Shell ohne Capabilities.
adb root wurde nicht ausgeführt, weil die lokale Init-Datei einen
Verbindungs-/Daemon-Neustart belegt und der Test damit nicht garantiert rein
beobachtend ist.
Boot- und Verified-Boot-Kurzbild
| Merkmal | Befund | Bewertung |
|---|---|---|
| aktiver Slot | _a |
CONFIRMED |
| A/B | physische A/B-Partitionen, ro.build.ab_update=true |
CONFIRMED |
| System-as-root | /dev/dm-0 auf /, ext4 read-only |
CONFIRMED |
| AVB | AVB 1.2; vbmeta 1.0; Device State locked; Verified Boot green |
CONFIRMED |
| dm-verity | enforcing; System/Vendor sowie mehrere TPV-Images verifiziert |
CONFIRMED |
| Dynamic Partitions | kein super, feste physische Partitionen |
DISPROVED |
separate recovery, cache, metadata, persist |
keine entsprechenden Partitionsnamen | DISPROVED für dieses Layout |
| Recovery-Infrastruktur | uncrypt, RecoverySystem-Service, BCB/misc, UpdateEngine, factory_a/b vorhanden |
CONFIRMED; genaue Recovery-Startart offen |
| Fastboot/Fastbootd | keine entsprechenden Binaries im gemounteten laufenden Android-System gefunden und kein Transport sicher getestet | POSSIBLE / unbekannt im Bootloader; fastbootd-basierter Dynamic-Partition-Pfad nicht belegt |
| öffentliches OEM-Unlock | keine OEM-Lock-Binderinstanz, keine Unlock-Properties, keine offizielle Methode belegt | POSSIBLE, aber aktuell nicht nachgewiesen |
Die vollständige 63-Partitionen-Tabelle, Fstab-Auswertung und Mountmatrix steht in boot-inventory-agent.md.
Aktueller Speicher- und eMMC-Snapshot
| Bereich | Befund | Bewertung |
|---|---|---|
/data |
5.089.920 KiB gesamt, 3.832.452 KiB benutzt, 1.136.332 KiB verfügbar, 78 % | CONFIRMED |
| Android DeviceStorageMonitor | NORMAL; low 260.603.904 Byte |
CONFIRMED |
| adoptierter USB | 117.749.032 KiB gesamt, 116.529.664 KiB verfügbar, 1 % | CONFIRMED |
| Installationsmodus | 0[auto]; adopted private Volume gemountet |
CONFIRMED |
| Philips-Lifetime-Property | 0x0a 0x0a |
CONFIRMED |
| unabhängiger Android-Wert | storaged_emmc_info: [emmc 5.1,1,10,10] |
CONFIRMED |
| eMMC-Gesundheit | eMMC 5.1; PRE_EOL 0x01 normal; Lifetime A/B 0x0a/0x0a = je 90–100-%-Bucket |
CONFIRMED |
Der neue Storaged-Wert beweist: Der hohe Lifetime-Bucket ist kein bloßer Philips-Cache, aber der Reserveblockindikator steht noch auf Normal. Das ist kein Beweis eines unmittelbar bevorstehenden Hardwareausfalls. Details: emmc-analysis.md.
Phase-1-Grenzen
- Direkte Reads von EXT_CSD, CID/CSD,
/proc/partitions, Kernel-Dmesg und mehreren sysfs-/procfs-Sicherheitswerten werden durch DAC/SELinux blockiert. - SUID-/SGID-/world-writable-Scans liefen nur in für die Shell durchsuchbaren
Bereichen; viele Executable-Labels verweigern bereits
getattr. Es wurde kein nutzbarer SUID-/SGID-Pfad gefunden, eine mathematisch vollständige Abwesenheitsbehauptung ist aber nicht zulässig. - Kein echter Exploit und kein schreibender IOCTL-Test wurde durchgeführt.
- Das späte Framework-SPL ist ein starkes nominelles Patchindiz, aber kein Binärnachweis des proprietären Kernel-/Mali-/MediaTek-Backportstands.