Eine neue MuPiBox NG Alpha ist verfügbar: 0.2.0-alpha.25. Hier findest du die Änderungen und Fehlerbehebungen dieser Version.
Was ist neu?
MuPiBox-NG 0.2.0-alpha.25 – Secure photo storage and optional wired headphones
NEW: PERSISTENT PHOTO API
- Introduces the opt-in photo-save permission for community apps such as FotoSpaß, independent of camera access.
- Adds local-touchscreen-only photos.save(), photos.list(), photos.get() and photos.delete() methods through the trusted host bridge.
- PNG and JPEG images are stored persistently in app-isolated storage with generated timestamped identifiers; photos survive app updates and uninstallation.
- Strict limits: 8 MiB per image, 16 megapixels, 250 MiB and 1,000 images per app. Full image validation and binary upload bypass the 128 KiB JSON bridge limit.
- An app-scoped short-lived local session protects the operations. Plugins receive no filesystem paths or privileged tokens; other plugins and remote Admin previews cannot access photos.
- Concurrency limits protect Raspberry Pi resources.
COMPATIBILITY
- Existing apps, music, data, parental controls and camera behavior are unchanged.
- FotoSpaß must bundle the updated public MuPiBox-NG-Plugins SDK and request photo-save in its manifest.
- No automatic global Gallery import, photo printing or higher-resolution camera capture in this release.
VALIDATION
- Integration tests for image types, quotas, persistence, app isolation, authentication and binary endpoints.
- Tests for browser bridge and SDK methods.
- Strict ARM64 packaging, full test suites and signed distribution are required before release publication.
NEW: OPTIONAL SECOND LOCAL HEADPHONE OUTPUT
- A second wired ALSA/PipeWire output can be enabled under Hardware -> Audio when an independent device exists beside the primary speakers (MuPiHAT+, for example).
- Boxes using only one sound card are unchanged and are not shown an unnecessary second-output configuration.
- The optional wired Headphones target appears in the child's existing output picker only when enabled and detected; no reboot or provider restart is needed to switch.
- GPIO button / rotary encoder push action can toggle between primary speakers and the enabled headphone output; the existing Bluetooth and Music Assistant targets and parental restrictions continue to work.
- Separate software headphone volume limit (default 30, range 1..50) applied before route changes and on cold boot, with primary-speaker fallback when a removable DAC disconnects.
- Raspberry Pi 4 onboard analog output is discoverable if already enabled; enabling its firmware audio interface may require a separate, hardware-specific one-time reboot. Pi 5 has no onboard headphone jack. Firmware is not modified automatically.
AUDIO TESTS AND SAFETY
- Go regression tests cover independent hardware detection, invalid/disconnected outputs, persistence and hardware switching; Python tests cover primary sink selection, fallback and non-HDMI routing.
- Verified full Go tests, go vet, frontend Node tests, shell syntax, Python selector tests, localization and strict package boundary checks.
- A headphone volume limit is a software ceiling, not a certified safe sound-pressure level.