(public) Script to check if the signageOS application is sound and solid - signageos system healthCheck
(public) Enabled WebGL support in chromium on RPi devices running Raspbian OS
(public) Compatibility for Fedora 44 and Ubuntu 26
(public) Support for running plugins and runners natively in Node.js via the management driver
(public) Support for the nodejs custom-script runtime. Node.js custom scripts now run in-process and can call the sos.management.* API (model, firmware, network, brightness, …) via postResult.
(public) Native Node.js runners are notified about configuration changes without a reload (sos.configChange over IPC) and are torn down cleanly when unassigned or reloaded
(public) Electron based package with integrated key components needed by signageOS application
(public) Support custom Supra controller applets and report the active controller applet in Supra connection telemetry
(public) A device whose auto-verification configuration is missing the organization ID now asks for manual verification instead of registering without it, which could pair it to an unrelated organization
(public) Installation script for Debian/Raspbian operating systems
(public) Installation script for Ubuntu 18
(public) In some cases the system does not have an important locale for the signageOS scripts. This fix checks it and generate it upon installation process if needed
(public) Fixed installation process for older Ubuntu distributions (18, 20)
(public) RPi 5 WebGL support in Chromium now runs on Vulkan
(public) Wayland full support
(public) Application upgrade on RPi 4 from version 2.0.0 to 2.7.2
(public) Automatic accept option (-y) was missing on several places in install script file.
(public) Chromium installation on Ubuntu newer than 21.04 - the version check always selected the savoury1 PPA branch (unassigned variable), and chromium was not installed when its repository was already registered
(public) Installation script aborts with a clear error when the ffmpeg swap (Fedora) or chromium installation (Ubuntu) fails, instead of failing later on dependency errors
(public) Re-running the installation script no longer duplicates configuration lines (autoVerification, disable_frontend) in signageos.conf — values are replaced instead of appended
(public) The --log option now captures the complete installation output; previously most command output never reached the log file due to redirection ordering
(public) The installation script no longer reboots immediately when run without a terminal (e.g. from automation); the reboot is skipped with a warning unless --assume-yes is given
(public) Fixed a stray character in the lightdm X server command on Debian/Raspbian that broke screen blanking options (-s 0 -dpms)
(public) Fixed typos in the help output and error messages (--skip-update, kiosk, --package-file)
(public) Compatibility fixes for ubuntu 26
(public) Wayland screenshots now work on GNOME (via Mutter ScreenCast over PipeWire) and on wlroots/sway (via grim)
(public) Some Ethernet network drivers do not register the device under its bus and the slot they use. Instead of that, just simply mark it as an onboard Ethernet card. This fix includes those cards as a reliable source for fetching the serial number.
(public) Serial number on devices with multiple named interfaces (e.g. RPi CM5) is now deterministic — prioritised interface lookup prevents MAC flipping between boots
(public) WiFi adapter is now correctly enabled from OSD menu
(public) Reconnection to known wifi now works as expected
(public) Application update didn't install the package correctly on old installations due to dependency on built-in c/c++ code. This fix addresses this issue
(public) Removed duplicates from the list of available Wi-Fi networks
(public) Wi-Fi handling on connected devices could cause an infinite wait for command to be completed
(public) Static network configuration through OSD is properly saved
(public) Backend service responds to the client with the actual error message so that the client can log it instead of a generic error message "Bridge message XYZ failed"
(public) When applet called sos.sync.connect and then app restart happened, applet would call sos.sync.connect again and it would fail with error "PeerNetwork already started"
(public) FlexOS resolution fix for the screen turn on fix
(public) Service unit signageos-debug starts properly on boot
(public) Wi-Fi Access Point stopped working in 1.3.0 due to a bug in new RPi firmware - reverted back to previous version of RPi firmware
(public) When screen rotates clockwise, videos will also rotate clockwise
(public) Webview would sometimes randomly restart when the NTP client suddenly adjusted the system clock
(public) When Wi-Fi client is disabled, device will remember the last configuration so when client is re-enabled, it would automatically connect to the Wi-Fi that was configured last
(public) Prevent sending some actions from device to server (optimize traffic)
(public) Fixed getting schedules list on new NEC displays with CM4
(public) It's possible to connect to an open Wi-Fi (Wi-Fi without a password)
(public) List network interfaces even when they're not connected with an IP address
(public) Network active info returned to applet correctly determines active interface based on which interface has an IP address
(public) If the device is CM4 in the new line of NEC displays, a second ethernet port is available and it's MAC address is identical to the first ethernet port, generate a new MAC address on boot and change the second port's address manualy
(public) Holding a keyboard key for a long time will now repeatedly type that key on Raspberry Pi 4
(public) Functional keys (i.e. shift) work on Raspberry Pi 4 for typing capital letters and special characters
(public) Screen resolution on Raspberry Pi 4 is limited to Full HD even when the connected screen is 4K to ensure good performance
(public) Fixed firmware upgrade on Raspberry Pi 4 that previously ended with unresponsive device
(public) Setting of device time and timezone returns success (platform needs reboot/restart, do it after 1s)
(public) Connecting to a websocket server that sends the first message really quickly after the connection is established sometimes caused a deadlock of the networking process in the webview, which caused all subsequent network requests to never resolve and eventually time out
(public) When ethernet cable is unplugged, the IP address will be released
(public) Application upgrade on Raspberry Pi 4 works now
(public) Enable USB ports on Compute Module 4 (disabled by default)
(public) Use "quick" input change on new NEC displays with CM4 instead of "super quick" which isn't supported anymore
(public) If quick video change is not supported, fall back to normal input change (normal is the only option on new IML models)
(public) New audio codec and bitrate value in video file details API
(public) Remote management of multi-file applets (applet packages). Applets originally designed for Open users can be used by Platform users now as well.
(public) Browser open link method optionally accepts theme option
(public) Support for Raspberry Pi 4
(public) Upgrade kernel in Raspberry Pi 3 system from 5.4.12 to 5.4.34
(public) Wi-Fi Access Point capability that when enabled, serves a configuration web page to the local network that allows to configure the device remotely
(public) Emit useful Wi-Fi events to applet
(public) Wi-Fi connection promise resolves/rejects only once it actually connects or fails to connect
(public) If running as Raspberry Pi compute module inside NEC display, rotate display's OSD to match system's orientation on every boot
(public) Fixed a bug in the process of installing a different system in place, where in certain circumstances it would fail and end up with a corrupted disk
(public) Casually not loading of applet after restart app
(public) Better user information durring register, verify process (including offline page)
(public) Couldn't stop server because several child processes wouldn't close properly
(public) Proper processing of remote key presses; no more weird delays, ignored key presses in fast succession, etc.
(public) Didn't report it's current firmware version
(public) Fixed crash when trying to stop same stream multiple times
(public) Test Framework now handles errors properly
(public) Ping period issue for open and platform
(public) Device Audio test fixed
(public) Device test framework malfunctions and misbehaving fixed
(public) Applet commands to device (timing commands) for Open builds
(public) sandbox embedded browser to prevent hostile JS within iframe affecting parent document
(public) First start of display when the applet is bundled inside app (Open)
(public) Open app installed to deprovisioned device
(public) Bug when collecting temperature and battery status on startup (critical when native methods throws error after boot)
(public) Longer deprovisioning timeout before reboot to give the display enough time to delete all cached data and files
(public) Use smaller resolution videos in acceptance tests that play multiple videos side by side because some platforms struggle to process more than one full HD video at a time
(public) File System API supports copyFile, writeFile
(public) Applet DISABLE/ENABLE power actions
(public) Node.js servlets - scripts or services that can be pushed to the device from the server and run in the background, extending device's capabilities with custom logic, as long as the device supports it
(public) Support for controlling NEC display settings (brightness, volume, schedule, etc.) through internal RS232 communication when Raspberry Pi is a built-in compute module
(public) It's possible now to configure the application build to use a local applet file instead of getting applet timings from the cloud
(public) signageOS Open - build with an applet bundled inside the package and make the device automatically verify against the owner's organization on the server
(public) Always save applet and front applet binaries to internal memory to improve performance and stability