Skip to main content

webOS Changelog

Latest Beta Version​

Added​

  • (public) Support for SUPRA controller applet playback
  • (public) Whitelabel branding for deployment app builds: when the application-builder passes SOS_BRANDING_TITLE and/or SOS_BRANDING_ICON_PATH environment variables, the packaged app gets a custom title (appinfo.json) and icon; without them the build is unchanged
  • (public) webOS 6.1 devices (XE3P, XE4P, UL3Q & UL5Q) are now officially supported
  • (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.

Fixed​

  • (public) Assigned runners and plugins now resume from the last known device configuration when a display boots without a network connection.
  • (public) MDC sendOne and sendOneRaw failures now report the Luna service error text instead of [object Object].
  • (public) File downloads now fall back to the LG firmware SCAP path in cloud-control mode (where the signageOS management service is not installed), instead of failing. crc32 and archive-extract-size are skipped in that mode.

[2.11.1] - 2026-06-12​

Fixed​

  • (public) Orientation on webOS 8 UP5Q now rotates correctly while maintaining the target resolution
  • (public) P2P synchronizer: reconnect cycle was a no-op because the local WebSocket to ws://localhost:8082 was never closed nor re-opened on close() → connect(). Applet retries surfaced as "Unable to properly connect for synchronized playback after 3 tries" with empty lastError.
  • (public) P2P synchronizer: connect() now awaits the WebSocket open handshake (10 s timeout) so initial group-status messages from the native service are not dropped.
  • (public) P2P synchronizer: WebSocket error/close drive exponential-backoff reconnect (1/2/4/8/16 s) and emit SynchronizerEvent.Closed once retries are exhausted or close() completes so the polymorphic layer can tear down cleanly.
  • (public) P2P synchronizer: SynchronizerServiceHelper no longer rejects with an empty Error('') when the luna service returns blank errorCode/errorText; a labeled fallback message is used instead.
  • (public) P2P synchronizer: initService() rejects on onFailure instead of hanging forever.

[2.11.0] - 2026-06-01​

Added​

  • (public) Samsung MDC binary protocol support via management service — enables sending MDC commands to Samsung displays over TCP from webOS devices
  • (public) Support for new configuration endpoints
  • (public) webOS 8 now supports up to 4 FHD videos playing simultaneously
  • (public) Importing certificates via IDCAP for Wi-Fi Enterprise connect methods for EAP-TLS, EAP-PEAP & EAP-TTLS
  • (public) sendUdp support for sending raw UDP datagrams via Luna service (enables Wake-on-LAN)

Fixed​

  • (public) Restore Content-Type: image/jpeg header in screenshot upload and merge with custom headers
  • (public) Fix double rotation on webOS 8/9 UP5Q — delegate to inherited setOrientation() to prevent CSS rotation when native IDCAP rotation is active
  • (public) PMMode is enforced from webOS 4.0 and above during startup and initial configuration
  • (public) Toggling debug mode multiple times no longer produces a com.lg.app.signage.debug.debug.ipk URL launcher address that fails to install; existing devices stuck in this state self-heal on the next toggle

[2.10.3] - 2026-04-07​

Fixed​

  • (public) Restore sos.config for archive custom scripts — addConfigToSos()
  • (public) Handle hug.ping messages in custom script message handler to prevent DataCloneError when front-applet sends periodic ping messages

[2.10.2] - 2026-01-29​

Fixed​

  • (public) Issue with content guard extension, when device is on portrait orientation

[2.10.1] - 2026-01-08​

Fixed​

  • (public) Issue with building app with smart builder (missing zip)

[2.10.0] - 2025-12-16​

Added​

  • (public) Added CPU and MEMORY usage telemetries in percentage
  • (public) Support for devices running webOS 9.0.0
  • (public) On device content guard extension
  • (public) Support for creating scheduled power actions via applet JS API
  • (public) Support for secret values in applet configuration
  • (public) Support for setup Wi-Fi via Applet JS API
  • (public) Initial Support for Plugins and Runner
  • (public) Support for Enterprise Wi-Fi networks (EAP-TLS, EAP-TTLS, EAP-PEAP)
  • (public) Method screenshotUpload() now supports headers to be set for the upload request
  • (public) Building debug and production build always to be able to switch in Troubleshooting tab in Box.
  • (public) Support resolution change on LG UP5Q displays
  • (public) RemoteDesktop capability

Fixed​

  • (public) Formating timers result so minutes have 2 digits
  • (public) Failure when driver throws an error during telemetry gathering
  • (public) Missing key in broadcasted values in P2P content synchronization
  • (public) Archive info now returns uncompressed size as zero if saving archive failed
  • (internal) Modified the GitLab pipeline to use the common ts-display base
  • (public) Context for IDCAP in custom-scripts
  • (public) Synchronizer issue preventing applet refresh
  • (public) Incorrectly returned capabilities for display orientation
  • (public) Upgrade IDCAP version to 1.1.0

[2.9.0] - 2024-10-30​

Added​

  • (public) Implementation of Front capabilities

Fixed​

  • (public) Acceptance tests for file system
  • (public) timezone offset is now calculated from WebOS's real offset and not from moment's offset which accounted for DST, but WebOS did not
  • (public) File system wipeout() method deletes content of data folder

[2.8.0] - 2024-09-23​

Added​

  • (public) Build with esbuild
  • (public) Add support for cloud control
  • (internal) Pipeline check for .ipk size
  • (public) Support for AutoRecovery on WebOS 6

[2.7.0] - 2024-04-25​

Added​

  • (public) Add support for keepAppletRunning in proprietary timers

Fixed​

  • (public) Upgraded LG APIs to the latest version to support new FW version on weboOS 6
  • (public) Typo in stream prepare options: autoReconnectInternal -> autoReconnectInterval
  • (public) Applet downloads on older devices (webOS 3)
  • (public) Fixed miscellaneous issues on older devices (WebOS 3)

[2.6.2] - 2023-10-24​

Fixed​

  • (public) Building via App Builder

[2.6.1] - 2023-10-05​

Fixed​

  • (public) Incorrect detection of stream protocol type
  • (public) Starting applet in offline (when was already downloaded earlier)

[2.6.0] - 2023-09-13​

Added​

  • (public) Switchable check that compares device and server time and when differ a lot it prevents socket from connection
  • (public) Device can handle data about remote debug and sent to FA
  • (public) Device has new handler for refreshing applet from FA
  • (public) UDP synchronizer for webOs version 4 and 6
  • (public) Missing implementations for device brand info
  • (public) Handler for sending info about remote debug to FA
  • (public) Handler for refreshing applet from FA
  • (public) Polymorphic synchronizer that can be used for both P2P and server synchronizer
  • (public) IPv4 address to Peer info at Peer discovery service
  • (public) Applet Management API support for setProprietaryTimer() and getProprietaryTimers()
  • (public) Device reporting Firmware type and OS version
  • (public) P2P Synchronizer uses TCP instead of UDP
  • (public) Support for new wipeout power action

Fixed​

  • (public) ZoneOffset is correctly send to the server from device site
  • (public) Actions are correctly delivered to server are when connection is on HTTP
  • (public) Downloading files if server blocks HEAD requests
  • (public) Correct telemetry and settings types split
  • (public) Time correction is correctly parsed from response
  • (public) Succeed actions for PowerActions are send before restarting
  • (public) Downloading files if server blocks HEAD requests
  • (public) Base URL for /time endpoint to configuration server (instead of platform server)
  • (public) Hardware barcode scanner start (propage scannerId to native API)
  • (public) New alternative bridge function for delete proprietary timer (keep old one for backward compatibility)
  • (public) Issues with downloading zip files on Webos 2 and 3
  • (public) Proxy setting errors when proxy is not supported
  • (public) Incorrect setup timezone on Webos 3 if NTP server is set

[2.5.2] - 2023-03-21​

Fixed​

  • (public) ZoneOffset is correctly send to the server from device site

[2.5.1] - 2023-03-15​

Fixed​

  • (public) Downloading files if server blocks HEAD requests

[2.5.0] - 2023-01-31​

Added​

  • (public) File System with reserved space

Fixed​

  • (public) File System method getFile now returns correctly size
  • (public) OSD working on older devices (webOS 3)
  • (public) New TimeManager provides better stability of time, zone and NTP-related features
  • (public) On webOS 6 is not supported LANDSCAPE FLIPPED orientation

[2.4.0] - 2022-10-04​

Added​

  • (public) OS version info (WebOS 3.2 -> 3.2, WebOS 6 -> 6.0)
  • (public) CPU & Memory monitoring
  • (public) Proxy monitoring
  • (public) Wifi SSID and signal level
  • (public) Support for timed peer recovery
  • (public) Support for CRC32 hashing algorithm on webOS 6 devices
  • (public) Device reports manufacturer brand

Fixed​

  • (public) Watchdog is enabled/disabled with PEER_RECOVERY
  • (public) New app icon
  • (public) Only get video file duration for videos, skip other files to prevent unexpected behavior
  • (public) HDMI and UDP streams

[2.3.1] - 2022-03-18​

Fixed​

  • (public) User defined applet preferred over bundled applet when both are set at the same time

[2.3.0] - 2022-03-08​

Added​

  • (public) Support for CRC32 hashing algorithm
  • (public) Initialize webos devices with default digital signage settings (dpmMode=off, pmMode=networkReady, enableWakeOnLan=true, automaticStandbyMode=off, tileInfo=false, failoverMode=off, powerOnStatus=power_on)
  • (public) WatchDog for checking if signageOS Core App is running for webOS 3.2, 4.0 and 4.1
  • (public) Absolute firmware upgrade URLs
  • (public) Saving applet actions to local file, when device is offline and uploading after connection is fixed
  • (public) Update Front-OSD version
  • (public) Setting autoSet parameter to 'off' on webOs > 4

Fixed​

  • (public) Video orientation landscape on webOS 6

[2.2.0] - 2021-11-24​

Added​

  • (public) Video orientation landscape flipped
  • (public) Automatic streams reconnection and connected/disconnected events
  • (public) Volume option for video
  • (public) 4K support for WebOS 4.1
  • (public) Video duration for FS getFile() API
  • (public) Support for more than 10KB files in readFile/writeFile
  • (public) Device policy full support
  • (public) Device telemetry
  • (public) WebOS 6 support
  • (public) Front-OSD support
  • (public) Building bundled applet with prebuilt subscriptionType
  • (public) AppendFile method to File System
  • (public) Allow parametrize bundled applet with configuration

Fixed​

  • (public) return null on FW type because it has to be supported on upgrade FW
  • (public) Background option for video
  • (public) Setting of device time and timezone returns success (platform needs reboot/restart, do it after 1s)
  • (public) Videos playback on WebOS 4 when using more then 2 videos in same applet (seamless and no black blinking)
  • (public) On webOS 4 there is no longer a first frame of the last played video visible
  • (public) appUpgrade function from JS API sets correct URL (Open)
  • (public) All actions are correctly bound
  • (public) Setting NTS on all versions of webOS
  • (public) Orientation getter and setter now works with SCAPv15 and newer
  • (public) Device policy and telemetry action exceptions are displayed with enabled debug only
  • (public) Device Policy: Allow enforcing only NTP server or only timezone (or both)
  • (public) Don't enforce previously set devive policies under Open subscription
  • (public) Support APPLET_ENABLE and APPLET_DISABLE scheduled power actions
  • (public) Correctly report active network interface
  • (public) Fixed display off/on behavior when timers are not set
  • (public) Upgrade firmware version
  • (public) Provisioning delay for platform devices
  • (public) FS readFile will correctly throw error when file doesn't exist.
  • (public) Stalled or differently corrupted video won't emit ended event

[2.1.0] - 2020-08-12​

Fixed​

  • (public) Longer deprovisioning timeout before reboot to give the display enought 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) Default PIN code is 0000 until device is connected to internet
  • (public) PIN code set/get support for JS management API
  • (public) Removed dependency on navigator.onLine for websocket connections management. Navigator.onLine in certain edge cases doesn't provide accurate information if the device can access internet or not.
  • (public) Possible memory leak in video player when one gapless video is playing in infinite loop

Added​

  • (public) ACL domains support for the built-in browser
  • (public) New OSD dark blue design
  • (public) Front applet debug isEnabled API support
  • (public) Remote management of multi-file applets (applet packages). Applets originally designed for Open users can be used by Platform users now as well.

[2.0.2] - 2020-02-28​

Fixed​

  • (public) Provisioning splash screen for Open apps (not visible now)
  • (public) added sandbox to Browser iframe to prevent hostile JS within iframe affecting parent document
  • (public) FILE_SYSTEM_LINK capability (not supported for webos)

[2.0.1] - 2020-02-21​

Fixed​

  • (public) HTML over video (some of the recent changes broke it)

[2.0.0] - 2020-02-19​

Changed​

Added​

Fixed​

  • (public) Suspend videos/streams when a proprietary timer is triggered
  • (public) Switch between applet timings fast and gapless
  • (public) Fix tap/double tap touch detection 600 ms delay on an every tap
  • (public) Fixed playing more videos on devices which supports only 1 video tag (1 resource)
  • (public) Stabilize a network connection using better WebSocket low level libraries
  • (public) Fix videowall synchronization not in sync on WebOS 2
  • (public) Weinre debugging is back compatible working with appletEnabled flag
  • (public) Fixed casual not sending of the current FW version
  • (public) Changing of the orientation will not do more reboots than 1
  • (public) Gapless playing of videos on WebOS 3+ in fake portrait (videoOrientation=LANDSCAPE)
  • (public) Upgraded internal libraries (react, typescript etc.)
  • (public) Casually not loading of applet after restart app
  • (public) Better user information durring register, verify process (including offline page)
  • (public) Fixed removing non-exiting scheduled actions that can be deleted by factory resets
  • (public) Invocations from front-applet has much better & descriptive error messages with links to docs
  • (public) Switching between multiple applet timings would freeze the second applet
  • (public) Redesign verification pages
  • (public) Return device time on all device
  • (public) Set time with timezone and offset when online
  • (public) Internal port video is displayed properly
  • (public) Remove firmware cache to fix reading FW version after manual upgrade

Removed​

  • (public) timers holidays settings in native timers

[1.1.0] - 2018-05-14​

Added​

  • (public) Changelog file containing all changes in current project