Repository navigation
v0.25.1 — audit fixes
English
Audit round (security + robustness), no new features. Companion: ha-pipup v1.24.1.
- A failed port bind no longer leaves the TV offline: the service stays up and the 30 s watchdog retries
:7979until it binds (it used to stop itself, whichSTART_STICKYdoes not undo). - Install button keeps its "Installing PiPup vX" popup (0.24.0 regression).
- Re-sending a popup with a new callback URL updates it in place again, so a camera stream with buttons no longer restarts on every re-send.
- Re-send during the 180 ms exit animation keeps the popup instead of removing it right after answering 200.
- Push queue is bounded (16, oldest dropped, no retry on 4xx or when a newer push waits): a controller outage no longer causes minutes of stale, in-order pushes afterwards.
- Self-update cleanup: failed or abandoned installs drop their PackageInstaller session; a truncated download is refused instead of committed; every refusal is visible in
/state.update.error. - Service stop removes its popups;
/stateis corrected when abringToFrontredraw fails; the update announcement is only marked shown once it is on screen. - Multipart
/notifylimits: bodies > 32 MB and images > 32 MP are refused, larger images are downsampled (a crafted image could take the whole process down). - WebView: no file or content-provider access from
web/wheppages. Callback URL (single-use token) is redacted in logcat and the/notifyreply.
Nederlands
Auditronde (security + robuustheid), geen nieuwe functies. Hoort bij ha-pipup v1.24.1.
- Een mislukte poortbinding laat de tv niet meer offline: de service blijft draaien en de 30 s-watchdog probeert
:7979opnieuw tot het lukt (hij stopte zichzelf, en dat maaktSTART_STICKYniet ongedaan). - De Install-knop houdt zijn "Installing PiPup vX"-popup (regressie uit 0.24.0).
- Opnieuw sturen met een nieuwe callback-URL werkt weer in-place bij, dus een camerastream met knoppen herstart niet meer bij elke herhaling.
- Opnieuw sturen tijdens de 180 ms-uitanimatie houdt de popup in plaats van hem direct na de 200 te verwijderen.
- Push-wachtrij is begrensd (16, oudste vervalt, geen herhaling bij 4xx of als er al een nieuwere push wacht): een storing van de controller geeft daarna geen minutenlange stroom verouderde pushes meer.
- Zelf-update opruimen: mislukte of opgegeven installaties laten hun PackageInstaller-sessie los; een afgebroken download wordt geweigerd in plaats van gecommit; elke weigering staat in
/state.update.error. - Stoppen van de service haalt de popups weg;
/stateklopt weer als eenbringToFront-herteken mislukt; de update-aankondiging telt pas als getoond zodra hij op het scherm staat. - Limieten voor multipart
/notify: bodies > 32 MB en beelden > 32 MP worden geweigerd, grotere beelden worden verkleind (een geprepareerd beeld kon het hele proces neerhalen). - WebView: geen bestands- of content-provider-toegang vanuit
web/whep-pagina's. Callback-URL (eenmalig token) is weggelaten uit logcat en het/notify-antwoord.