[2.5.0] - 2024-08-20
Added
- Custom script execution (Fedora 37/39, RPi4, Ubuntu 22.04)
- Add VPN support to Ubuntu devices
- Add Kiosk mode for ubuntu 22.04
- Simplify installation process o ubuntu 22.04
- Improved display identification in screen control scripts
Fixed
- 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"
- When applet called
sos.sync.connect
and then app restart happened, applet would callsos.sync.connect
again and it would fail with error "PeerNetwork already started" - FlexOS resolution fix for the screen turn on fix
- Service unit signageos-debug starts properly on boot
[2.4.0] - 2024-06-04
Added
- Extends script provision.sh to create a kiosk user
- Support for Fedora 39
- Add VPN support to RPi4 devices
- Improved telemetry reports
- Fallback process activating a VPN and sshd services in case signageos-server fails to start
- Improved VPN service behavior after restart
Fixed
- Conditional package dependecies
- Better sytemd service management
- Optimized usage of privileged rights
[2.3.0] - 2024-03-05
Added
- Support OpenVPN for fedora linux
[2.2.0] - 2024-02-15
Added
- Add signageos ubuntu package
Fixed
- Target in chromium service
- Open widget in smill
- Configuration files handling during package update
[2.1.1] - 2023-10-20
Fixed
- Navigation on settings page. Wifi settings
[2.1.0] - 2023-10-18
Added
- File System with reserved space
- More robust time manager to get/set timezone or/and NTP server
- Switchable check that compares device and server time and when differ a lot it prevents socket from connection
device
key for opening serial port is not required now- Missing implementations for device brand info
- Wi-Fi settings are persisted on factory reset
- Wi-Fi settings can be configured via a file in the boot partition during first boot
- Support for Fedora 35-37 x86-64
- Handler for sending info about remote debug to FA
- Handler for refreshing applet from FA
- Synchronizer support of broadcastValue
- Synchronizer supports both sync-server and p2p-local type synchronization
- Applet Management API support for
setProprietaryTimer()
andgetProprietaryTimers()
- Get and set Auto recovery from FA
- p2p-local Synchronizer uses TCP instead of UDP (except for network discovery)
- Synchronizer method
cancelWait()
- Synchronizer emits event
closed
- Stream
prepare()
function now supports options - New file system method
createArchive
for creating zip archive from files - Chromium service for GNU-linux
- Display priority switched from last one to first one on GNU-linux
- Proprietary timer removal
- Support for Ubuntu 20.04 amd64
Fixed
- Correct telemetry and settings types split
- Time correction is correctly parsed from response
- Succeed actions for PowerActions are send before restarting
- Downloading files if server blocks HEAD requests
- Base URL for
/time
endpoint to configuration server (instead of platform server) - Hardware barcode scanner start (propage
scannerId
to native API) - Remove unused
volume
from proprietary timers management, policy and telemetry - New alternative bridge function for delete proprietary timer (keep old one for backward compatibility)
- Device policy, broken from 11.3.0 - powerActionTimer passed to policy as dependency
- Input issues on some platforms with keyUp listener
- Fixed kernel header in Ubuntu image build
[2.0.0] - 2022-12-04
Changed
- Transition from 32-bit to 64-bit architecture on Raspberry Pi 4
- Replace omxplayer with in-house built software for video playback on Raspberry Pi 4
Added
- Support for device policies and telemetry
- Applet shortAppletFilesUrl flag
- Upgrade kernel to 5.10.36
- Upgrade Raspberry Pi firmware to 20211216
- Upgrade many other libraries and programs
- Upgrade Front-OSD version
- Building bundled applet with prebuilt subscriptionType
- Allow parametrize bundled applet with configuration
- File System appendFile method
- Network disableInterface
- Connect to a hidden Wi-Fi network
- Bundled servlet/s config
- Support for HEVC codec on Raspberry Pi 4
- AppletPings, DeviceAlive and actions about rebooting device are logged online/offline
- onStatus method in AppletSync pass data about connected devices in group to FA
- Device location and organization tags can be requested from server, saved in property storage and send to applet when requested
- Device reports wifi signal strength
- Device methods for getting cpu/ memory usage
- Device File system wipeout - clear files from applets
- Device reporting OS Version
- Device now implement new SystemInfo method for informing about brand
Fixed
- FS API downloadFile follows redirection Location headers when status code is 3xx
- Proprietary timers not shutting down the applet properly
- Fixed potential race condition when generating initial PIN
- User defined applet preferred over bundled applet when both are set at the same time
- Weinre debug of applet after applet refresh/reload
- Connnecting to Wi-Fi from OSD won't get stuck on loader if the passphrase was wrong
[1.4.2] - 2021-05-06
Fixed
- Don't return IPv6 address for eth1 in network interfaces list on NEC compute module 4, when it's not connected
[1.4.1] - 2021-04-22
Fixed
- Temporarily disable licensing algorithm due to issues
[1.4.0] - 2021-04-21
Fixed
- 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
- When screen rotates clockwise, videos will also rotate clockwise
- Webview would sometimes randomly restart when the NTP client suddenly adjusted the system clock
- 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
- Prevent sending some actions from device to server (optimize traffic)
- Fixed getting schedules list on new NEC displays with CM4
- It's possible to connect to an open Wi-Fi (Wi-Fi without a password)
- List network interfaces even when they're not connected with an IP address
- Network active info returned to applet correctly determines active interface based on which interface has an IP address
- 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
Added
- Download applet files from computer in the local network
- Current screen orientation can be obtained from front-applet
- Stream can be prepared in the background to allow gapless transitions similarly to videos
- Get firmware type
- Messages about setting debug applet propagated into applet iframe
- Handle sos.management.network.listInterfaces() call from applet
- Handle the new version of sos.management.network.setManual()
- Handle the new version of sos.management.network.setDHCP()
- Device socket connection can be optionally replaced with REST based API instead of WebSockets
- Licensing algorithm
- Reporting firmware type of device (e.g.: rpi, rpi4, benq_sl550 etc.)
- Reporting supported resolutions (currently FULL_HD only)
[1.3.0] - 2020-12-09
Added
- Network stream automatically tries to reconnect when connection is lost
- Network stream emits "disconnected" event when connection is lost and "connected" event it successfully reconnects
- Support for auto rotation on NEC displays with Compute Module 4, using the built-in G sensor
- It's possible to query device capabilities for supported screen orientations
- Support two ethernet ports, if present (mainly because of new NEC displays with Compute Module 4)
Fixed
- Holding a keyboard key for a long time will now repeatedly type that key on Raspberry Pi 4
- Functional keys (i.e. shift) work on Raspberry Pi 4 for typing capital letters and special characters
- Screen resolution on Raspberry Pi 4 is limited to Full HD even when the connected screen is 4K to ensure good performance
- Fixed firmware upgrade on Raspberry Pi 4 that previously ended with unresponsive device
- Setting of device time and timezone returns success (platform needs reboot/restart, do it after 1s)
- 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
- When ethernet cable is unplugged, the IP address will be released
- Application upgrade on Raspberry Pi 4 works now
- Enable USB ports on Compute Module 4 (disabled by default)
- Use "quick" input change on new NEC displays with CM4 instead of "super quick" which isn't supported anymore
- If quick video change is not supported, fall back to normal input change (normal is the only option on new IML models)
[1.2.0] - 2020-09-25
Added
- Serial ports capability
[1.1.1] - 2020-09-08
Fixed
- Wi-Fi settings unavailable in OSD menu since 1.1.0
- Even longer deprovisioning timeout before reboot to give the display enough time to delete all cached data and files
[1.1.0] - 2020-09-04
Added
- New audio codec and bitrate value in video file details API
- Remote management of multi-file applets (applet packages). Applets originally designed for
Open
users can be used byPlatform
users now as well. - Browser open link method optionally accepts theme option
- Support for Raspberry Pi 4
- Upgrade kernel in Raspberry Pi 3 system from 5.4.12 to 5.4.34
- Wi-Fi Access Point capability that when enabled, serves a configuration web page to the local network that allows to configure the device remotely
- Emit useful Wi-Fi events to applet
- Wi-Fi connection promise resolves/rejects only once it actually connects or fails to connect
Fixed
- Possible memory leak in video player when one gapless video is playing in infinite loop
- Open application refresh stuck when internet is reconnected
- Wi-Fi froze and remained in invalid state when connecting with wrong password
[1.0.2] - 2020-06-23
Fixed
- If running as Raspberry Pi compute module inside NEC display, rotate display's OSD to match system's orientation on every boot
- 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
- Fixed
sos.management.security.setPinCode()
[1.0.1] - 2020-06-02
Fixed
- Reduce collecting data from GPU
[1.0.0] - 2020-05-29
Added
- Video API acceptance tests
- When acceptance tests are running, mute applet so it doesn't conflict with the tests
- getTimers method in management API
- Support get/set system time, both manual and via NTP server
- Support PIP (only fullscreen)
- Support proximity sensor on NEC displays (there it's called "human sensor")
- Support reset NEC display settings as means of recovery from breaking external changes
- Internal client-server communication re-implemented using websocket instead of HTTP requests
- Manage compute module fan based on cpu temperature in NEC displays
- Support Network set manual & DHCP
- Support open browser window with an optional whitelist/blacklist of domains
- Handle deprovisioning directly on device
- New capability to get information about connected monitors
- Management get application version in front-applet
sos.management.app.getVersion()
- Optional videoThumbnailUriTemplate in file properties
- File system methods copyFile and moveFile allow to optionally overwrite destination path
- FILE_SYSTEM_LINK capability
Fixed
- Casually not loading of applet after restart app
- Better user information durring register, verify process (including offline page)
- Couldn't stop server because several child processes wouldn't close properly
- Proper processing of remote key presses; no more weird delays, ignored key presses in fast succession, etc.
- Didn't report it's current firmware version
- Fixed crash when trying to stop same stream multiple times
- Test Framework now handles errors properly
- Ping period issue for open and platform
- Device Audio test fixed
- Device test framework malfunctions and misbehaving fixed
- Applet commands to device (timing commands) for Open builds
- sandbox embedded browser to prevent hostile JS within iframe affecting parent document
- First start of display when the applet is bundled inside app (Open)
- Open app installed to deprovisioned device
- Bug when collecting temperature and battery status on startup (critical when native methods throws error after boot)
- Longer deprovisioning timeout before reboot to give the display enough time to delete all cached data and files
- 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
Changed
- Updated setting of device DateTime according to changed interface
- Moved
getNetworkInfo()
asnetwork.getActiveInfo()
Deprecated
- Open browser in front-applet via method
sos.browser.openLink()
. Replaced bysos.browser.open()
.
[0.4.0] - 2019-06-10
Added
- File System API supports copyFile, writeFile
- Applet DISABLE/ENABLE power actions
- 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
- Support for controlling NEC display settings (brightness, volume, schedule, etc.) through internal RS232 communication when Raspberry Pi is a built-in compute module
- It's possible now to configure the application build to use a local applet file instead of getting applet timings from the cloud
- signageOS Open - build with an applet bundled inside the package and make the device automatically verify against the owner's organization on the server
- Always save applet and front applet binaries to internal memory to improve performance and stability
Fixed
- If device took many screenshots that failed to upload, they wouldn't cleanup but stay in RAM until device ran of out RAM and crashed
- Invocations from front-applet has much better & descriptive error messages with links to docs
- Switching between multiple applet timings would freeze the second applet
[0.3.2] - 2019-03-22
Fixed
- Accidently not changing orientation on management request
- Crashing when downloading large files
- Videos and other content now stop on application restart
- Set screen orientation sometimes didn't take effect
[0.3.0] - 2019-01-23
Added
- Support CEC (Consumer Electronics Control, i.e. remote control over HDMI)
- Support USB external storage
- Restart frontend if it stops responding
- Restart application won't reload the page anymore, instead it will restart whole frontend to force purge all browser cache
- Notify when storage units change
- Get extended file details (mime type, video duration)
- Support WiFi
- OSD
- Support setting volume
Fixed
- Uploading screenshots
- When there are multiple requests to download a file, allow only one at a time to prevent running out of RAM
- Stop video doesn't throw error anymore if the video wasn't playing, only logs a warning
- Fixed video coordinates when not fullscreen
- Fixed video prepare/play returning a promise that never resolves at certain situations
- Fixed memory leaks when playing a single video in a loop
[0.2.0] - 2018-12-14
Added
- Update front display to version 5
- New improved file system management
- Out-of-the-box handling of overlay HTML elements
[0.1.0] - 2018-11-21
Added
- First version with all important functions implemented