(public) Whitelabel branding for deployment app builds: when the application-builder passes SOS_BRANDING_TITLE and/or SOS_BRANDING_ICON_PATH, the packed WGTs get a custom application name and icon, and the home-menu label and wgt file name follow a filename-safe slug of the title. Without these variables the build is unchanged. The icon must be a PNG
(public) Screen orientation can now be set from Box in cloud-control mode (landscape and portrait) without a device reboot; it is re-applied after host re-renders and restored on restart. Note: the host app's own video is not rotated, and the device OSD/setup menu keeps its default orientation.
(public) The cloud-control snippet can initialize without an organization (init() with no autoVerification): the device registers unverified for later bulk-provisioning by hardware serial.
(public) The Node.js server now runs in cloud-control mode, so the node-backed sos.* features (downloads, checksums, archives, MDC, UDP) work in an injected application. Servlets remain unavailable.
(public) The snippet artifact is published as the dist/snippet/ directory (snippet.js, polyfill.js, js/, nodeserver/) rather than a single dist/snippet.js, so it needs an application-builder that reads the directory layout.
(public) sendUdp/sendWakeOnLan no longer fail with "this is not a typed array." on firmware with embedded Node.js < 6 (e.g. Tizen 4)
(public) MDC sendOne/sendOneRaw failures report the error text instead of a postMessage DataCloneError in custom scripts
(public) Tolerate a missing productinfo Pepper plugin: getRealModel() and isUdPanelSupported() can throw synchronously on firmware / passenger contexts where the native library is unavailable, which previously propagated uncaught into the management saga and blocked device registration — both now catch and fall back (model Unknown, 4K unsupported)
(public) Enable 4K video playback on Tizen 8 (was always reported as unsupported)
(public) Avoid blue-screen at boot caused by filesystem.listStorages racing dbus USB registration — listStorageUnits now calls systeminfo.getPropertyValue('STORAGE') first so dbus has settled before listStorages runs
(public) Cache getModel() and getSerialNumber() results in TizenSystemInfo so each underlying productinfo / b2bcontrol call happens at most once per process (supersedes the previous per-driver isKiosk() cache in Tizen4Driver)
(public) Cache isNTPEnabled() result in TizenKernelTime to avoid repeated getNTPUse b2bcontrol calls within a single time query
(public) Pass custom headers in screenshotUpload() for Tizen 6+ devices (regression from aHash refactor)
(public) Restore the correct z-index when the AV player area becomes visible again (background videos no longer pop above foreground content) and remove a redundant visibility toggle in gapless video playback
(public) Report display power on telemetry when proprietary timers trigger display on/off
(public) Fixed issue with calling postResult in Custom Scripts on Tizen 4.
(public) sos.sync.wait returns data from the master instead of always returning undefined.
(public) Tizen starts to re-enforce Lamp schedule more aggresively than once a day to ensure any manual intervention is fixed in a given Brightness telemetry interval
(public) Issue with detecting active interface network on default device screens
(public) Side by side videos with resolution 960x1080 plays without bezel compensation that is used to prevent "border bug" on Tizen displays
(public) Reliably report active network interfaces. Before you got both (Wi-Fi and Ethernet) marked as Active and you had to roll the dice to figure out which one is actually active.
(public) Fix weinre, which was broken in 2.7.0
(public) Tizen 2.4 RTP & UDP streams plays and shows on the screen correctly in every case
(public) Auto reconnecting (autoReconnect: boolean) stream edge cases and race conditions. 1) Some platforms and streams can emit events error and ended at the same time. This case was fixed. 2) Multiple streams with reconnect enabled is fixed now.
(public) Wipe-out action will remove also all node.js server data
(public) Tizen 7 automatically sets the OSD orientation to Auto to avoid visual issues with portrait app rendered in landscape
(public) Actions are correctly delivered to server, when connection is on HTTP
(public) Tizen 2.4 supports extracting zip files even if cannot detect it's extracted size
(public) New alternative bridge function for delete proprietary timer (keep old one for backward compatibility)
(public) Base URL for /time endpoint to configuration server (instead of platform server)
(public) Hardware barcode scanner start (propage scannerId to native API)
(public) Remove unused volume from proprietary timers management, policy and telemetry
(public) Tizen syncs OSD time at every init/reboot to prevent any manual misconfiguration done by a user
(public) Switching to the next video in the playlist when the current video is finished is now truly instant, if the video was prepared while the previous video was playing
(public) Changing orientation when using bundled applet is now correctly handled
(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) The built-in browser now loads websites that enforce same origin policy
(public) When proprietary timers are disabled while the display and content are off, the display and content will be turned on
(public) Reboot device automatically when App or FW upgrade is performed in open management
(public) When device is offline, increase the interval between reconnect attempts progressively from 5s up to 5 mins
(public) Device registration occasionally failing during first boot
(public) Make longer and configurable check interval on platform configuration (30s -> 60s)
(public) Native debug will always do the configuration check interval 30s
(public) Removed dependency on navigator.onLine for websocket connections management. Navigator.onLine doesn't provide accurate information if the device can access internet or not. Especially it doesn't work as previously assumed when Tizen devices are daisy chained via ethernet cables.
(public) Handle a case when the device doesn't have access to the internet but is daisy chained with other devices. In this case the websocket didn't behave as expected and emitted "disconnect" event without ever emitting "connect" event. That wasn't expected behavior, and the websocket state management logic got stuck.
(public) Possible memory leak in video player when one gapless video is playing in infinite loop
(public) Applet reload sometimes caused the applet to freeze instead of reloading it
(public) Native browser is used to open new window instead of iFrame so we can display website which would be blocked in iFrame
(public) Default PIN code is 0000 until device is connected to internet
(public) PIN code set/get support for JS management API
(public) 4K videos are now detected automatically so "4k" option in video API is now ignored and will be probably removed in future versions
(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) Support UDP and RTP streams in sos.stream.play()
(public) Major internal changes in a communicataion APIs (socket connections uses new API /v2/ which is not backward compatible)
(public) New internal FileSystem API (File system file names can contain any character except specials (same as Win FS) & can has folders separated by slash /)
(public) Updated setting of device DateTime according to changed interface
(public) Moved getNetworkInfo() as network.getActiveInfo()
(public) Low level file system support for front applet
(public) Applet DISABLE/ENABLE power actions
(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
(public) Ability to play 2 videos side by side
(public) Ability to play video in the background with HTML content in the foreground
(public) Ability to play 4K video
(public) Video API acceptance tests
(public) When acceptance tests are running, mute applet so it doesn't conflict with the tests
(public) getTimers method in management API
(public) New capability to set/get timezone and time
(public) Handle deprovisioning directly on device
(public) New capability to set/get NTP server
(public) New capability to reset basic settings of the device as means of recovery from breaking external changes
(public) Test Frameworks tests are now able to be skipped
(public) Management get application version in front-applet sos.management.app.getVersion()
(public) Management API for network set manual, set DHCP
(public) File system methods copyFile and moveFile allow to optionally overwrite destination path