Skip to main content

Android Changelog

Latest Beta Version​

Removed​

  • (public) Devices running Android 4.4 are no longer supported (e.g. BenQ SL, Philips 10BDL3051, Philips BDL4050, Sharp PN-B)
  • (public) Data migration from pre-CAv4 is no longer possible (update to CAv4+ before updating to CAv5+)
  • (public) Crosswalk implementation of WebView is no longer available
  • (public) Core App is no longer signed by OEMs and can no longer leverage platform permissions directly

Added​

Fixed​

  • (public) Disable Low Power Standby and Auto shut-off on supported devices
  • (public) TCL: Update firmware

[4.17.0] - 2026-09-08​

Added​

  • (public) Telemetry: Report system and Core App uptime
  • (public) Hash screenshots before upload (aHash, dHash, pHash)

Fixed​

  • (public) Update OkHttp from 4.12.0 to 5.5.0, including Android 4.4
  • (public) Powered by library 14.41.1
  • (public) Updated to Front-OSD 1.0.0
  • (public) Power timers now reject new and drop old timers with non-positive integer keys
  • (public) Native power timers silently ignore sync failures for keys outside supported range (typically 1-7)
  • (public) Don't report one-off screenshots twice (since 4.16.2)
  • (public) Improve reporting supported screen orientations
  • (public) Philips BDL4550D: Support flipped screen orientations
  • (public) Display ON now works on Android 14 for TV and newer
  • (public) Improve manual a11y setup process on Android 13+ with Enhanced Confirmation Mode enabled
  • (public) Improve reporting Firmware Upgrade capability on Android 10+ when not supported
  • (public) JS API: Native timers now have correct number (since 4.15.3)
  • (public) JS API: Scheduled Reboot API now works as expected
  • (public) Hisense DM66D: Disable video prepare by default, disable MediaCodec async API by default, apply MediaCodec.setOutputSurface workaround, matching other Hisense devices
  • (public) TCL: Report correct firmware version

[4.16.3] - 2026-07-23​

Fixed​

  • (public) Philips BDL3650Q: Predictably apply and persist screen rotation setting
  • (public) Critical: Prevent crash loop when system font size isn't set to Normal on Android 11+ (since 4.16.1)

[4.16.2] - 2026-07-21​

Fixed​

  • (public) Report failure to take instant screenshot
  • (public) Sony BRAVIA settings import: Improve enabled apps handling
  • (public) Sony BRAVIA settings import: Synchronize access on Android 14
  • (public) Sony BRAVIA: Prefer AOSP WebView M113 on Android 14
  • (public) Looma: Always enable ability to toggle screen off (fixes boot loop)

[4.16.1] - 2026-07-03​

Fixed​

  • (public) Sony BRAVIA settings import: Support more settings
  • (public) Sony BRAVIA settings import: Fix app filter for enabled apps in Pro mode
  • (public) Sony BRAVIA settings import: Fix Wake-up on signal on Android 13
  • (public) Support Reapply Policy power action
  • (public) Fix loading recent versions of custom WebView on Android 10+
  • (public) J2JS: Background WebView no longer stops responding after 1 minute (M139+) or 5 minutes (M88+) when Keep applet running in the background experimental developer option is set

[4.16.0] - 2026-06-22​

Added​

  • (public) Sony BRAVIA: Import settings using policy
  • (public) SDK: Query display/content power settings
  • (public) Remotely clear application user data

Fixed​

[4.15.5] - 2026-06-18​

Fixed​

  • (public) Hisense: Don't rotate screen during deprovisioning if it would cause a reboot
  • (public) Sharp PN-HM1: Improve middleware service connection recovery
  • (public) Add API to programmatically pre-confirm EULA (adb shell content call --uri content://io.signageos.android --method eula.preconfirm)
  • (public) No longer cache configuration endpoint responses by a false positive heuristic
  • (public) J2JS: Suspected deadlock no longer causes an app restart after 5 minutes (since 4.11.0)

[4.15.4] - 2026-06-04​

Fixed​

  • (public) Sony BRAVIA running Android 12 now prefers REST API screenshooter if it has HD support (requires firmware version 6.8196 or newer)
  • (public) Philips BDL3650Q: Don't disable built-in launcher responsible for switching input sources (since 4.5.0)
  • (public) Hisense DM66D: Disable Idle TV standby
  • (public) Proprietary power timer policy is no longer falsely flagged as violated
  • (public) BenQ SL2K: Prevent main activity rotation loop (since 4.15.0)

[4.15.3] - 2026-04-30​

Fixed​

  • (public) Improve accessibility service support on Android 13+
  • (public) Improve support for Sony BRAVIA with Android 14
  • (public) Critical: Philips 10BDL3051T generates correct device identifiers after an app update (since 4.3.0)
  • (public) JS API: Get screen orientation API now works as expected
  • (public) JS API: Screenshot capture and upload returns image hash when requested
  • (public) JS API: Timers API now works as expected
  • (public) Powered by library 14.37.3
  • (public) Updated to Front-OSD 0.16.3

[4.15.2] - 2026-04-16​

Fixed​

  • (public) Sync device name to bluetooth adapter no longer crashes on Android 12+
  • (public) Powered by library 14.33.0
  • (public) Always-on applet now initializes correctly after app starts (since 4.13.0)
  • (public) Developer Option: Don't hide "Android" from WebView User-Agent (since 4.11.0)
  • (public) BenQ SL2K: Support root shell (Custom Scripts)
  • (public) Report locally assigned or invalid MAC address if universally assigned MAC address isn't available
  • (public) Troubleshooting: Support interactive local/online app updates

[4.15.0] - 2026-04-04​

Added​

  • (public) Target Android 16
  • (public) Sync device name to system on supported devices
  • (public) Telemetry: Report RAM
  • (public) Remote Desktop: Input event dispatching now works with ADB shell

Fixed​

  • (public) Powered by library 14.32.0
  • (public) Updated to Front-OSD 0.16.2
  • (public) Giada DN75: Correctly apply and persist portrait and reverse portrait screen orientation
  • (public) Report bundled applet to Box (since 4.9.0)
  • (public) BenQ SL2K: Support stop package

[4.14.10] - 2026-03-25​

Fixed​

  • (public) Gracefully handle more corner cases wrt kiosk and a11y framework
  • (public) Browser should no longer crash on start in kiosk mode due to a race condition

[4.14.9] - 2026-03-09​

Fixed​

  • (public) Critical: Correctly load Content Module and custom WebView (since 4.14.7)
  • (public) Novastar: Support devices with updated firmware and changed system service interface
  • (public) Novastar: Report firmware version
  • (public) Novastar: Core App should no longer cause a boot loop on broken firmware (missing KeyChain service)

[4.14.8] - 2026-02-27​

Fixed​

  • (public) Core App should no longer crash on unsupported Novastar devices
  • (public) Improve compatibility with Google Play Protect
  • (public) Recognize more Grocery TV devices
  • (public) Sony BRAVIA: REST API screenshooter reports logical display size
  • (public) Hisense DM66D: Fix Application Not Responding

[4.14.7] - 2026-02-18​

Fixed​

  • (public) Improve support for Android 14 and newer

[4.14.6] - 2026-01-30​

Fixed​

  • (public) Critical: Correctly load Content Module and custom WebView (since 4.14.4)
  • (public) Improve IPC handling
  • (public) Report Wi-Fi SSID on more supported devices that require GMS network location opt-in (since 4.14.1)
  • (public) Improve compatibility with Google Play Protect on Android 8.1 and older (since 4.13.3)

[4.14.5] - 2026-01-29​

Fixed​

  • (public) TCL TM43N: Support remote power off and power timers (since 4.11.0)
  • (public) Correctly recognize more Grocery TV devices (since 4.14.3)
  • (public) Improve rounding error handling when calculating screenshot perceptual hashes
  • (public) Re-enabling remote control no longer requires app restart on certain devices (since 4.3.5)
  • (public) Sony BRAVIA: Developer Option: Prefer REST API to take screenshots
  • (public) Hisense DM66D: Improve support
  • (public) Grocery TV: Employ "fake rotation"
  • (public) ExoPlayer: Address https://github.com/androidx/media/issues/2667 (since 4.8.0)
  • (public) Support screenshot analysis feature flag
  • (public) Screenshot perceptual hashing now works on Android 4.4 (since 4.14.0)
  • (public) Report ADB/root shell management capabilities
  • (public) Report Wi-Fi SSID on supported devices that require GMS network location opt-in
  • (public) Correctly recognize Hisense WF25E (since 4.5.0)
  • (public) Correctly recognize Grocery TV (since 4.14.0)

[4.14.0] - 2026-01-14​

Added​

  • (public) Cloud connection URL is now dynamically assigned
  • (public) Compensate for "fake rotation" in reported screenshots and remote desktop

Fixed​

[4.13.7] - 2025-11-22​

Fixed​

  • (public) Sony BRAVIA: App no longer crashes when working with local REST API under some conditions (since 2.13.6)

[4.13.6] - 2025-11-18​

Fixed​

  • (public) Improve support for BenQ SL04
  • (public) Improve support for Sharp PN-ME2
  • (public) Improve support for Sony BRAVIA
  • (public) Powered by library 14.26.0
  • (public) JS API: Support headers in screenshot upload requests

[4.13.5] - 2025-10-07​

Fixed​

  • (public) Disable Google Play Protect more reliably on supported devices
  • (public) Prevent long buffering of stream with undeclared Closed Captions
  • (public) Don't update WebView packages that have been disabled in the system
  • (public) Secrets: Gracefully handle more edge cases
  • (public) Lock Task Mode: Gracefully handle more edge cases
  • (public) Disable Idle Mode more reliably on some devices
  • (public) Assume Device Owner more reliably on some devices
  • (public) Improve compatibility with Google Play Protect

[4.13.0] - 2025-09-23​

Added​

Fixed​

  • (public) Don't crash when attempting to start disabled Remote Desktop
  • (public) Install common root CA certificates on Kitkat on some devices (since 4.7.0)
  • (public) Support encrypted applet and script configuration on Android 4.4-7.1 (since 4.12.0)
  • (public) Correctly advertise support for encrypted applet and script configuration on Android 4.4-5.1 (since 4.12.0)
  • (public) Correctly evaluate Display Power Actions when power state has been altered locally
  • (public) Improve reporting supported display orientations
  • (public) Pre-install WebView M85 on all OS versions including Kitkat (requires custom WebView loader)
  • (public) Package install policy will not be enforced unless all package names resolve to a valid APK
  • (public) Don't immediately report Applet Power Actions as failed (since 4.10.0)
  • (public) Fallback/Activity screenshots on unsupported devices now work when applet runs in a separate process (since 4.6.0)

[4.12.3] - 2025-08-14​

Fixed​

  • (public) Always report correct Ethernet adapter MAC address after provisioning Sony Bravia running Android 12+ (since 4.12.0)
  • (public) Improve compatibility with Google Play Protect on Android 13+

[4.12.1] - 2025-08-14​

Fixed​

  • (public) Provision WebView from shared storage (since 4.12.0)

[4.12.0] - 2025-08-14​

Added​

  • (public) Target Android 15
  • (public) Download and execute Custom Scripts (requires root shell)
  • (public) Remotely force-stop apps
  • (public) Hash screenshots before upload (aHash, dHash)
  • (public) Provision WebView from shared storage (Android 10+ Trichrome architecture isn't supported yet)

Fixed​

  • (public) Gracefully handle unsupported Novastar devices (since 4.8.0)
  • (public) Fix Remote Desktop input event injection using shell on Android 4.4 (since 4.11.0)
  • (public) HTML5 acceptance test is now working again (since 4.8.0)
  • (public) Report Ethernet adapter MAC address after provisioning Sony Bravia running Android 12+
  • (public) Support encrypted applet configuration on all devices

[4.11.0] - 2025-06-26​

Added​

  • (public) Target Android 13
  • (public) Support Navori StiX 3800
  • (public) Support TCL TM43N
  • (public) Support encrypted applet configuration (Android 6+ only)
  • (public) Developer Option: Don't hide "Android" from WebView User-Agent

Fixed​

  • (public) Powered by library 14.19.0
  • (public) Updated to Front-OSD 0.14.2
  • (public) HTML5 acceptance test is now working again (since 4.8.0)
  • (public) Improve app restart handling while the browser is open
  • (public) Run legacy applet file tree migration long before using FS API
  • (public) No longer attempt to load Google Chrome (Monochrome) as WebView provider on Android 10+ (fixes crash loop on some devices)
  • (public) Don't participate in Auto Backup for Apps
  • (public) Report initial audio volume (since 3.13.0)
  • (public) Improve binding app process lifecycles together
  • (public) JS API: Serial port API works again (since 4.6.0)
  • (public) Correctly dispatch key events when in Hotel Mode (since 4.3.0)
  • (public) Screen capture using MediaProjection now works on Android 10 and newer (since 4.8.2)
  • (public) Correctly stream HDMI after screen turns on on some devices
  • (public) Package install policy now works
  • (public) Report/set resolution on Giada
  • (public) Gracefully handle NTP server addresses that specify invalid schemes
  • (public) Power action timer no longer schedules removed power actions

[4.10.8] - 2025-02-28​

Fixed​

  • (public) Fix race condition in video player resulting in video getting stuck (since 4.10.6)
  • (public) Remove some false positive error logs during app startup

[4.10.7] - 2025-02-26​

Fixed​

  • (public) Improve cancellation handling of internal processes
  • (public) J2JS: Get screen orientation API now works as expected (since 4.10.0)

[4.10.6] - 2025-02-20​

Fixed​

  • (public) Limited support for MediaMood Harmony A1 and MVP195
  • (public) Skip firmware update device compatibility check if we're lacking privileges
  • (public) Pre-confirm EULA based on external storage metadata (limited support)
  • (public) Fail fast if there's not enough space to download a firmware update
  • (public) Don't reconnect service socket immediately after provisioning
  • (public) Don't start main activity twice after a reboot when content runs in a separate process
  • (public) Kill separate content process during deprovisioning
  • (public) Content correctly loads after app restart (since 4.10.0)

[4.10.5] - 2025-02-14​

Fixed​

  • (public) Critical: App no longer crashes on non-Philips devices (since 4.10.4)
  • (public) Philips, BenQ SL: Backlight no longer remains off after a system-triggered hard reboot following a display power command or timer event (since 4.5.0)

[4.10.4] - 2025-02-12​

Fixed​

  • (public) Improve Philips SICP reliability further (since 4.1.0)

[4.10.3] - 2025-02-11​

Fixed​

  • (public) Philips: Improve SICP reliability resulting in better reporting capabilities

[4.10.2] - 2025-02-07​

Fixed​

  • (public) Improve lock task mode handing on Android 10 and newer
  • (public) Improve persisting display power state before a system-triggered hard reboot
  • (public) Philips 24BDL4151T: ADB/TCP toggle now works as expected
  • (public) TPV: Improve scalar service connection reliability

[4.10.1] - 2025-01-31​

Fixed​

  • (public) App no longer restarts early in app's lifecycle after a reboot
  • (public) Gracefully handle IPC dying during app restart
  • (public) Improve MAC address reporting on some devices

[4.10.0] - 2025-01-21​

Added​

  • (public) Support Videri Spark
  • (public) Support File System Wipeout power action

Fixed​

  • (public) Powered by library 14.10.0
  • (public) Correctly handle cancellation during an ADB-to-self connection attempt
  • (public) Content should no longer get stuck disabled after setup wizard in some cases
  • (public) Unsupported devices no longer spam configuration endpoint before enabling Demo Mode
  • (public) JS API: Correctly support FrontCapability.FILE_SYSTEM_ARCHIVE_EXTRACT_INFO
  • (public) JS API: Correctly pass headers to File Upload API

[4.9.0] - 2025-01-14​

Added​

  • (public) Support Philips 10BDL5051T
  • (public) Report supported device feature flags
  • (public) Report bundled applet to Box

Fixed​

  • (public) Powered by library 14.9.1
  • (public) Display service socket status and verification code in debug UI
  • (public) Read serial number on unsupported Philips tablets

[4.8.17] - 2025-01-14​

Fixed​

  • (public) Philips BDL4050D: Remote Desktop

[4.8.16] - 2025-01-13​

Fixed​

  • (public) Declare unsupported LED on Philips 10BDL3351T
  • (public) Support devices where display from an activity context doesn't match the default display in terms of declared dimensions (observed on Redmi 12 running Android 15)

[4.8.15] - 2025-01-11​

Fixed​

  • (public) Philips 10BDL3051T: Remote Desktop

[4.8.14] - 2025-01-08​

Fixed​

  • (public) Critical: Correctly start applet after boot, when running in a separate process, which has been the default since 4.8.0 (since 4.6.0)

[4.8.13] - 2025-01-07​

Fixed​

  • (public) Gracefully handle IPC dying during app restart
  • (internal) BenQ SL2K: Factory reset API now works as expected

[4.8.12] - 2025-01-06​

Fixed​

  • (public) App no longer restarts when checking foreground status on some devices

[4.8.11] - 2025-01-02​

Fixed​

  • (public) Gracefully handle IPC dying during app restart
  • (public) Correctly parse running system task info using root
  • (public) More reliable access checks for system cache partition

[4.8.10] - 2025-01-02​

Fixed​

  • (public) App no longer restarts when switching input source on Hisense BM66AE (since 4.7.0)
  • (public) Gracefully handle potential issues during Wi-Fi API calls

[4.8.9] - 2025-01-02​

Fixed​

  • (public) Set time using root
  • (public) Report network interfaces with IPv6 link and prefix length greater than 32
  • (public) BenQ SL: Display power telemetry is reported correctly after a boot

[4.8.8] - 2024-12-16​

Fixed​

  • (public) BenQ SL: Remote Desktop

[4.8.7] - 2024-12-12​

Fixed​

  • (public) Don't install Google WebView 85 if Android WebView 85 or newer is already installed
  • (public) Prevent app restart when main activity recreates in some cases
  • (public) App should no longer get stuck on Starting... after boot on some devices

[4.8.6] - 2024-12-05​

Fixed​

  • (public) Home app should now resolve to signageOS instead of fallback launcher on Android 4.4 (since 4.8.5)

[4.8.5] - 2024-11-21​

Fixed​

  • (public) Home app should now resolve to signageOS instead of fallback launcher (since 4.8.0)

[4.8.4] - 2024-11-07​

Fixed​

  • (public) Philips, BenQ SL: Correctly persist display power state before a system-triggered hard reboot following a display power command or timer event (since 2.7.0)

[4.7.9] - 2024-11-07​

Fixed​

  • (public) Philips, BenQ SL: Correctly persist display power state before a system-triggered hard reboot following a display power command or timer event (since 2.7.0)

[4.8.3] - 2024-10-31​

Fixed​

  • (public) Novastar: Persist Wi-Fi AP/STA mode set on device (outside of ViPlex)

[4.8.2] - 2024-10-30​

Fixed​

  • (public) Screen capture using MediaProjection now works on Android 10 and newer
  • (public) Report package install results (since 2.7.0)
  • (public) Gracefully handle too big telemetry intervals provided by configuration endpoint

[4.7.8] - 2024-10-30​

Fixed​

  • (public) Screen capture using MediaProjection now works on Android 10 and newer
  • (public) Report package install results (since 2.7.0)
  • (public) Prevent crash when using Preferred Network Manager on unsupported devices
  • (public) Sleep and wake up using wake locks should work as expected (since 2.7.3)
  • (public) Gracefully handle too big telemetry intervals provided by configuration endpoint

[4.8.1] - 2024-10-29​

Fixed​

  • (public) Prevent crash when using Preferred Network Manager on unsupported devices
  • (public) Sleep and wake up using wake locks should work as expected (since 2.7.3)

[4.8.0] - 2024-10-25​

Added​

  • (public) Developer Option: Applet lifecycle may continue to run while the screen is turned off
  • (public) Support NovaStar TB50
  • (public) Screenshot telemetry and API can be disabled by a remote-controlled feature flag
  • (public) Report app modules

Fixed​

  • (public) Stream JS API: Detect undeclared closed captions in TS data stream
  • (public) Stream JS API: Add trackSelection.selectUndeterminedTextLanguage option
  • (public) Powered by library 14.6.0
  • (public) Updated to Front-OSD 0.13.0
  • (public) Gracefully handle low-level file system API failures to close files downloaded to flash drives
  • (public) Home app should now resolve to signageOS instead of Home app picker
  • (public) Gracefully handle invalid telemetry intervals provided by configuration endpoint

[4.7.7] - 2024-10-11​

Fixed​

  • (public) Critical: Correctly provision Hisense DM66D and WF25E (since 4.7.0)

[4.7.5] - 2024-10-11​

Fixed​

  • (public) Critical: Correctly provision Hisense BM66AE (since 4.5.0)
  • (public) Ethernet toggle persists state correctly on Philips 24BDL4151T (since 4.6.1)

[4.6.5] - 2024-10-11​

Fixed​

  • (public) Critical: Correctly provision Hisense BM66AE (since 4.5.0)
  • (public) Ethernet toggle persists state correctly on Philips 24BDL4151T (since 4.6.1)

[4.5.5] - 2024-10-11​

Fixed​

  • (public) Critical: Correctly provision Hisense BM66AE (since 4.5.0)

[4.7.4] - 2024-09-09​

Fixed​

  • (public) App no longer crashes when loading bundled applet from invalid URL
  • (public) App no longer crashes when checking denied permissions on Android 12 (since 2.0.0)
  • (public) App no longer crashes when managing screenshot requests (since 2.7.0)
  • (public) Improve binding app process lifecycles together

[4.7.3] - 2024-09-04​

Fixed​

  • (public) Display ON now reliably works on Android 11 for TV and newer

[4.7.2] - 2024-09-04​

Fixed​

  • (public) Critical: Fix alarm-related crash on Android 13 and newer (since 2.7.0)

[4.7.1] - 2024-09-04​

Fixed​

  • (public) Critical: Correctly bind app process lifecycles together (since 4.5.0)

[4.6.4] - 2024-09-04​

Fixed​

  • (public) Critical: Correctly bind app process lifecycles together (since 4.5.0)

[4.5.4] - 2024-09-04​

Fixed​

  • (public) Critical: Correctly bind app process lifecycles together (since 4.5.0)

[4.7.0] - 2024-09-03​

Added​

  • (public) Support Philips 10BDL3351T
  • (public) Install APKs from arbitrary URLs
  • (public) New deployments default to appassets.android.signageos.io origin instead of an opaque origin. Use JS API v6.5.7 or newer for best results.
  • (public) Target Android 12L

Fixed​

  • (public) Telemetry: Report Device Owner and Accessibility Service status, which can be used to remotely gauge device management capabilities.
  • (public) Telemetry: Report process metadata, which can be used to remotely gauge device management capabilities.
  • (public) Optimize screenshot delivery for remote desktop
  • (public) Set auto/time/zone using Philips API, alternatively
  • (public) Validate time zone instead of defaulting to GMT

[4.6.3] - 2024-08-02​

Fixed​

  • (public) Fix in-app inter-process permission checks affecting the browser process (since 4.4.0)
  • (public) Setup should no longer get stuck on Installing Device Management... on supported devices
  • (public) JS API: Browser domain ACL now applies to clicked links on Android 5+

[4.6.2] - 2024-07-12​

Fixed​

  • (public) Sharp: Reject placeholder serial number 8A012345K

[4.6.1] - 2024-07-12​

Fixed​

  • (public) Apps obtained from https://a.signageos.io/sharp before and including v4.1.1 will be able to update to v4.7.0 or newer.
  • (public) Apps obtained from https://a.signageos.io/sharp after and including v4.1.2 must update to v4.6.x before updating to v4.7.0 or or newer.
  • (public) JS API: Browser timeout is now reset with each user interaction (since 3.12.0)
  • (public) JS API: Browser domain ACL now correctly matches domains (since 3.2.0)
  • (public) JS API: Screenshot upload API returns correct URL (since 4.3.3)
  • (public) Telemetry: Report actual display power (since 4.6.0)
  • (public) Telemetry: Allow reporting multiple connected network interfaces
  • (public) Developer Option: Disable Ethernet restart on connection error
  • (public) Ethernet restart should no longer cause permanent network loss
  • (public) Don't allow Ethernet restart optimistically on untested devices
  • (public) Auto-verification: Wait for user setup complete before enforcing policies
  • (public) Revert "New deployments default to appassets.android.signageos.io origin instead of an opaque origin" until we address CORS issues. First-time deployments of v4.6.0 will need to switch the developer option manually.
  • (public) Philips 24BDL4151T: Fix "Application Not Responding"
  • (public) Philips 24BDL4151T: Fix disabled content due to stuck SELinux checks

[4.6.0] - 2024-06-19​

Added​

  • (public) Support Auto-verification from Android Provisioning
  • (public) Telemetry: Report actual display power
  • (public) Updated to Front-OSD 0.12.0
  • (public) Developer Options: Run applet in a separate process
  • (public) Allow custom WebView build on Kitkat
  • (public) New deployments default to appassets.android.signageos.io origin instead of an opaque origin

[4.5.3] - 2024-06-19​

Fixed​

  • (public) Report battery status when device isn't plugged in (since 4.3.3)

[4.5.2] - 2024-06-19​

Fixed​

  • (public) Fix Wi-Fi MAC address reporting in some cases (since 4.3.0)
  • (public) Only deprovision verified devices; don't interfere with setup

[4.5.1] - 2024-06-19​

Fixed​

  • (public) Critical: Applets now correctly switch on Android 4.4 with WebView M30

[4.5.0] - 2024-05-14​

Added​

  • (public) Developer options: Applets can use appassets.android.signageos.io origin instead of an opaque origin
  • (public) Troubleshooting: Toggle high-priority privileged launcher, e.g. on Android TV, for non-CMS applications
  • (public) Support Philips BDL3650Q
  • (public) Support hisense DM66D
  • (public) Support hisense WF25E

Fixed​

  • (public) Improve high-priority privileged launcher recognition (since 4.3.5)
  • (public) Unify immersive mode behavior across platform versions
  • (public) P2P synchronizer now works on Android 4.4
  • (public) Powered by library 13.8.0
  • (public) Target Android 11
  • (public) Setup wizard: Run in lock task mode on Android 9+ to avoid interrupting automated flows
  • (public) Improve Ethernet adapter MAC address extraction
  • (public) hisense BM66AE: Use native portrait mode
  • (public) hisense BM66AE: Default to TextureView for video in portrait mode
  • (public) ExoPlayer: TS exposes fallback CEA-608 closed captions if undeclared in PMT
  • (public) ExoPlayer: Pass DRM configuration and track selection options when sos.video.prepare API isn't fully supported
  • (public) Correctly report Wi-Fi on most devices (since 4.3.0)
  • (public) JS API: P2P video synchronization now works on Android 4.4
  • (public) Philips, BenQ SL: Backlight no longer remains off after a system-triggered hard reboot following a display power command or timer event
  • (public) Fix backported shell commands on Kitkat (since 4.4.0-rc.3)
  • (public) Remotely installed packages are started automatically, once again (since 4.5.0-alpha.1)
  • (public) Additionally load developer options from all files matching sos.dev. + .jar file name on a flash drive

[4.4.4] - 2024-04-03​

Fixed​

  • (public) Improve a11y service compatibility with Android 7+ devices
  • (public) Setup wizard: Ask for a11y service permission on Android 4.4–6 devices (since 4.0.0)
  • (public) Avoid potential crash on null response message using WebView older than M73 (https://issues.chromium.org/issues/41437689)
  • (public) Powered by library 13.6.4

[4.4.3] - 2024-03-21​

Fixed​

  • (public) Critical: Correctly report app upgrade (since 4.4.0)

[4.4.2] - 2024-03-20 [YANKED]​

Fixed​

  • (public) JS API: Correctly report Serial API support (sos.display.supports("SERIAL"))
  • (public) JS API: Serial API now works on Android 10 or newer (since 4.4.0)
  • (public) Elo Backpack 4: Set as default home

[4.4.1] - 2024-03-14 [YANKED]​

Fixed​

  • (public) BenQ SL: Match emulated Lock Task Mode behavior with pre-v4.4.0

[4.4.0] - 2024-03-14 [YANKED]​

Added​

  • (public) Expose location & tags, as seen in Box, to third party apps (requires runtime permission)
  • (public) Support Philips BDL4650D
  • (public) Troubleshooting: Local & online app update options
  • (public) Support package install/uninstall policy
  • (public) JS API: Stream options
  • (public) JS API: Stream DRM
  • (public) JS API: Stream track selection
  • (public) JS API: Stream pause/resume
  • (public) Experimental Remote Desktop

Fixed​

  • (public) Sony Bravia: Suppress IR remote control keys when Kiosk Mode is active (as was always intended) (since 4.3.0)
  • (public) ExoPlayer: Gracefully handle transport streams containing no packets for an H.264 or AAC elementary stream that is declared in the PMT
  • (public) File System JS API: Read correct mime type from files of popular image formats with a suffixed file extension (e.g. .png_w800_h600 is now image/png instead of application/octet-stream)
  • (public) Update EULA to version 3.0
  • (public) Setup wizard should no longer get stuck on Starting... in certain conditions
  • (public) Correctly report proprietary timer settings
  • (public) Proprietary timers can now be controlled using JS API
  • (public) Use ADB to perform device management even on devices running Android 11+ with ADB-over-TCP enabled (previously limited to Android 7–10)
  • (public) Connection should no longer switch from Ethernet to Wi-Fi as a fallback measure (since 4.0.0)
  • (public) Vestel: Don't recreate main activity whenever IR lock state changes
  • (public) Pick valid WebView implementation provider during setup on Android 7+

[4.3.12] - 2024-01-09​

Fixed​

  • (public) Fix crash on Sharp PN-B series regarding Ethernet Restart (since 4.3.0)
  • (public) Fix crash regarding Browser (since 4.3.11)

[4.3.11] - 2023-12-15​

Fixed​

  • (public) Clicking on a <select> element no longer causes a crash

[4.3.10] - 2023-12-06​

Fixed​

  • (public) App no longer crashes on Android 12 when granting permissions during setup
  • (public) App no longer crashes on some devices when attempting to play <video> element

[4.3.9] - 2023-11-15​

Fixed​

  • (public) Fallback Android TV launcher shows Notifications, Settings, and clock in the top right corner
  • (public) Lenovo: Work around issues when using Browser JS API with Smart Rotate enabled
  • (public) Improve startup time
  • (public) Support Proprietary power timer policy (since 3.10.0)

[4.3.8] - 2023-11-03​

Fixed​

  • (public) Taking full screenshots using a11y framework on API 30 now works again (since 4.3.3)
  • (public) Improved process management during setup

[4.3.7] - 2023-10-31​

Fixed​

  • (public) Fix crash on boot affecting Sony Bravia BPK provisioning (since 4.3.6)

[4.3.6] - 2023-10-30​

Fixed​

  • (public) Sony Bravia BPK: App restart is no longer required to pick up provisioned content module and developer options

[4.3.5] - 2023-10-30​

Fixed​

  • (public) IR lock no longer gets stuck when enabled on Sony Bravia (since 4.3.3)

[4.3.4] - 2023-10-29​

Fixed​

  • (public) Background app setup doesn't end prematurely (since 4.3.3)
  • (public) Correctly report service connection status

[4.3.3] - 2023-10-26​

Fixed​

  • (public) Provision Content Module from flash drive
  • (public) Correctly provision developer options from flash drive
  • (public) Disable battery optimizations or disable Idle Mode
  • (public) Devices without a battery no longer report battery stats
  • (public) YOX: Correctly report display brightness (since 4.0.0)

[4.3.2] - 2023-10-05​

Fixed​

  • (public) Starting applet in offline (when was already downloaded earlier)

[4.3.1] - 2023-10-02​

Fixed​

  • (public) Critical: App no longer restarts when uploading crash reports (since 4.3.0)

[4.3.0] - 2023-10-01​

Added​

  • (public) Sony Bravia: Suppress IR remote control keys when Kiosk Mode is active (as was always intended)
  • (public) Developer Option: Hotel Mode (enables IR RC and user power control in Kiosk Mode)
  • (public) Developer Option: Video Scaling Mode

Fixed​

  • (public) Critical: Correctly migrate Demo Mode Device UID from Core App 3.x (since 4.0.0)
  • (public) JS API: Support MEDIA_NEXT, MEDIA_PREVIOUS, MEDIA_RECORD, INFO, GUIDE, CAPTIONS, MEDIA_AUDIO_TRACK key codes
  • (public) Philips 10BDL3051T: Manage network adapters in order to keep connectivity
  • (public) Setup: Improve process stability
  • (public) Setup: Correctly handle android.permission.POST_NOTIFICATIONS on Android 13
  • (public) Persist device name and organization name across app restarts and reboots
  • (public) Sony Bravia: Wi-Fi MAC address contributes to device UID for new installations
  • (public) BenQ SL: Report correct Android firmware type in case the scaler chip firmware doesn't match
  • (public) Report Wi-Fi SSID and signal strength on Android 9+
  • (public) Correctly report storage volumes after first run
  • (public) JS API: Always report internal0 volume backed by app-private storage
  • (public) Revert "Transitioning between videos should be faster on most devices" as unreliable (since 4.2.0)

[4.2.8] - 2023-10-02​

Fixed​

  • (public) Critical: Correctly migrate Demo Mode Device UID from Core App 3.x (since 4.0.0)
  • (public) Correctly report storage volumes after first run (since 4.0.0)
  • (public) Revert "Transitioning between videos should be faster on most devices" as unreliable (since 4.2.0)

[4.1.4] - 2023-10-02​

Fixed​

  • (public) Critical: Correctly migrate Demo Mode Device UID from Core App 3.x (since 4.0.0)
  • (public) Correctly report storage volumes after first run (since 4.0.0)

[4.0.2] - 2023-10-02​

Fixed​

  • (public) Critical: Correctly migrate Demo Mode Device UID from Core App 3.x (since 4.0.0)
  • (public) Correctly report storage volumes after first run (since 4.0.0)
  • (public) Re-enable JS API OSD (since 3.17.0)
  • (public) Video: Retry playback once after decoder initialization error
  • (public) Video: Video prepare API no longer gets stuck sporadically (since 3.13.0)
  • (public) Respect Extract video size developer option (since 3.11.0)

[4.2.6] - 2023-08-10​

Fixed​

  • (public) ExoPlayer: Replaying the same video works again (since 4.2.0)

[4.2.5] - 2023-07-26​

Fixed​

  • (public) ExoPlayer: Display correctly videos with non-square pixels

[4.2.4] - 2023-07-24​

Fixed​

  • (public) Remove dependency on BatteryManager
  • (public) Setup: Improve ADB connection handling
  • (public) ExoPlayer: Improve behavior on devices lacking video prepare support

[4.2.2] - 2023-06-29​

Fixed​

  • (public) Critical: Using browser API no longer causes a crash (since 4.2.0)

[4.2.1] - 2023-06-27​

Fixed​

  • (public) Setup process is now slightly faster

[4.2.0] - 2023-06-26​

Added​

  • (public) Expose public key for ADB authentication for automation
  • (public) Update Core App using Content Module
  • (public) Provision Developer Options using an external file

Fixed​

  • (public) Developer Options: Allow cleartext traffic now affects WebView
  • (public) Allow android.permission.SYSTEM_ALERT_WINDOW for remotely installed apps on Android 10+
  • (public) Transitioning between videos should be faster on most devices
  • (public) JS API, USB Serial: Support Prolific HXN
  • (public) Geolocation HTML permission requests are now automatically approved for applets on Android 4.4
  • (public) Setup process is now more resilient to lowmemorykiller system daemon

[4.1.2] - 2023-06-07​

Fixed​

  • (public) Video: Retry playback once after decoder initialization error
  • (public) Video: Video prepare API no longer gets stuck sporadically (since 3.13.0)

[4.1.1] - 2023-06-05​

Fixed​

  • (public) Re-enable JS API OSD (since 3.17.0)
  • (public) Vestel: Disable automatic system update dialog
  • (public) Respect Extract video size developer option (since 3.11.0)
  • (public) JS API: Support HOME, CHANNEL_UP, and CHANNEL_DOWN key codes
  • (public) Sony Bravia: Disable the system launcher in order to intercept the HOME button

[4.1.0] - 2023-05-10​

Added​

Fixed​

  • (public) Setup: Manage more permissions interactively on unsupported devices
  • (public) Setup: Offer to enable Philips SICP
  • (public) Setup: Offer to set Sharp's Monitor Control Select to Application

[4.0.0] - 2023-04-20​

Added​

  • (public) Support YOX75IR
  • (public) QR code provisioning: Setup content module
  • (public) QR code provisioning: Setup developer options
  • (public) Use ADB to perform device management on devices running Android 7-10 with ADB-over-TCP enabled
  • (public) Set self as device owner on devices with root or ADB-over-TCP enabled
  • (public) EULA confirmation during setup
  • (public) Interactive HTML permission requests are now automatically approved (excl. browser, requires Origin)

Changed​

  • (public) Implement interactive step-by-step setup wizard ensuring proper configuration after first run

Fixed​

  • (public) Correctly recognize Ethernet connection on Philips
  • (public) Improve UDP stream compatibility
  • (public) Package installer rejects WebView packages intended for other architectures
  • (public) Abort setup when the system WebView package is missing on some unsupported devices
  • (public) Deprovisioning now keeps Wi-Fi profiles
  • (public) Deprovisioning no longer undoes the app setup process
  • (public) IR lock works more reliably
  • (public) Sony Bravia: Brightness settings now work (requires advanced setup)
  • (public) Elo: Disable Auto idlemode
  • (public) Elo: Support setting brightness

[3.17.4] - 2023-03-13​

Fixed​

  • (public) Improve setup reliability

[3.17.3] - 2023-03-10​

Fixed​

  • (public) Support Elo I-Series 4 Value
  • (public) More secret ways to show Kiosk Unlock dialog are now supported
  • (public) JS API: Screen resize now works
  • (public) Offer reloading main activity once the content module is installed or updated

[3.17.2] - 2022-12-06​

Fixed​

  • (public) Critical: Don't crash after setting the app as Device Owner (since 3.17.1)

[3.17.1] - 2022-12-01​

Fixed​

  • (public) Add missing files useful for Elo I-Series 4 and Elo Backpack 4 provisioning
  • (public) Prepare for Sony Bravia X80J provisioning (requires alternative setup method)

[3.17.0] - 2022-11-25​

Added​

Fixed​

  • (public) Allow cleartext traffic in ExoPlayer-backed video player
  • (public) Gracefully handle disconnected Wi-Fi when reporting network info
  • (public) Better report video capabilities
  • (public) Check native library compatibility before installing packages
  • (public) Automatically dismiss empty password prompt on older Philips tablets (since 3.15.0)
  • (public) Use DevicePolicyManager API to change system settings
  • (public) Using certain device management APIs on BenQ SL2K no longer restarts the app
  • (public) Android PIN is no longer set as it was sometimes required on boot, breaking unattended use

Security​

[3.16.0] - 2022-07-07​

Added​

  • (public) Local Developer Option: Use Crosswalk 23 (Chromium 53) instead of WebView (Chromium 30) on Android 4 (experimental)

Fixed​

  • (public) Fix memory leak in JS video player when looping the same video file
  • (public) Fix display off using root on Android 4.4 (since 3.13.0)
  • (public) Fix reporting default values through telemetry

[3.15.3] - 2022-06-14​

Fixed​

  • (public) Report Wi-Fi signal strength and SSID along network interfaces
  • (public) Show verification hash when serial number isn't needed to generate device UID (since 3.15.0)

[3.15.2] - 2022-06-04​

Fixed​

  • (public) Fix development permission grant check on some devices running Android 4–5.1 (since 3.15.0)

[3.15.1] - 2022-06-04​

Fixed​

  • (public) Critical fix: Fatal error when attempting to grant permissions on some devices running Android 4–5.1 (since 3.15.0)

[3.15.0] - 2022-06-03​

Added​

  • (public) Support Vestel PN series
  • (public) Local Developer Options for adjusting stream buffer (ExoPlayer only)
  • (public) Toggle ADB from local Developer Options
  • (public) Automatically attempt to install at least Google Chrome 85.0.4183.127 on Android 7+ if Google WebView couldn't be installed

Fixed​

  • (public) Fix potential crash when fetching time from NTP server (since 3.14.0)
  • (public) Fix potential crash when entering Admin Mode on Philips tablets without password (since 3.14.0)
  • (public) Browser: Using PDF viewer with ACL no longer requires allowing empty domain
  • (public) Display on/off/timer work more reliably on Philips BDL4051D
  • (public) Fix single video loop playback (since 3.13.0)
  • (public) Fix false negative package install results
  • (public) Prefer Google Chrome as WebView implementation on debuggable system builds with incorrectly signed Google WebView package
  • (public) Use ExoPlayer to play videos by default on Android 10 and newer
  • (public) No more crashes when attempting to pause/resume unmanaged videos
  • (public) No more ANRs while waiting for currently unavailable device IDs in debug UI
  • (public) Enable APK minification
  • (public) Fix root recognition on some devices

[3.14.2] - 2022-03-28​

Fixed​

  • (public) Critical fix: Attempt to fix time on devices which don't preserve time across reboots (since 3.14.0)

[3.14.1] - 2022-03-21​

Fixed​

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

[3.14.0] - 2022-03-17​

Added​

  • (public) File upload JS API
  • (public) BenQ, Philips: Restore display power state after a power outage
  • (public) Automatically attempt to update to at least WebView 85.0.4183.120

Fixed​

  • (public) Use ExoPlayer to play video on Technovare OPS by default
  • (public) Don't restart content when opening in-app browser
  • (public) Don't crash on devices without a USB stack (e.g. Windows Subsystem for Android)
  • (public) Read serial number after provisioning as Device Owner
  • (public) Interactive package install now works on Android 11
  • (public) Taking screenshots should now work on supported devices running Android 12 or newer
  • (public) Taking screenshots is now supported on Android 11 using Accessibility Service API
  • (public) Improved attempt to fix time on devices which don't preserve time across reboots

[3.13.2] - 2022-02-15​

Fixed​

  • (public) Fixed regression in video playback, most notably on MBX (since 3.11.0)

[3.13.1] - 2022-02-02​

Fixed​

  • (public) On-demand screenshot reporting works again (since 3.13.0)

[3.13.0] - 2022-02-02​

Added​

  • (public) Support CRC32 checksum in File System JS API
  • (public) Support appending text to files using JS API
  • (public) Allow parametrize bundled applet with configuration
  • (public) Support for Giada DN75
  • (public) Support arbitrary phones (Android 7+, requires advanced setup)
  • (public) Allow taking screenshots using Media Projection API (requires advanced setup)
  • (public) Bundle support for recent TLS cipher suites
  • (public) Install packages and firmware updates from absolute URLs
  • (public) Support firmware update on Android 10+ with Device Owner

Fixed​

  • (public) Fix crash when opening certain links in browser
  • (public) Fix crash when leaving browser
  • (public) Fix screenshots on BenQ not being reported reliably
  • (public) Report package install failure immediately on BenQ SL2K
  • (public) Improved telemetry stability
  • (public) Improved platform socket stability
  • (public) Report framerate
  • (public) Read temperature on more devices
  • (public) Report correct screen resolution on Android 4.4 and 5.x
  • (public) Support scheduled app restart (since 3.11.0)

[3.12.0] - 2021-10-14​

Added​

Fixed​

  • (public) Report precise model number on Philips BDL4550D and BDL3550Q

[3.11.1] - 2021-09-02​

Fixed​

  • (public) Service socket no longer reconnects every two minutes (since 3.11.0)

[3.11.0] - 2021-08-31​

Added​

Fixed​

  • (public) Support installing custom packages
  • (public) Correctly load content in offline mode (since 3.8.0)
  • (public) Support scheduled app restart

[3.10.0] - 2021-06-30​

Added​

  • (public) Device Policy

[3.9.1] - 2021-06-21​

Fixed​

  • (public) Support LEDs on Philips 10BDL4551T

[3.9.0] - 2021-06-09​

Added​

Fixed​

  • (public) Fix regression in screenshots on some devices running Android 5.0 - 8.1 (since 3.7.0)
  • (public) Improve compatibility with Android 7.1 and newer
  • (public) System PIN synchronizes properly when toggling kiosk mode (since 3.8.0)
  • (public) Don't ask for Admin PIN when kiosk mode is disabled on Philips 10BDL4551T
  • (public) Browser Theme: Apply address bar text color to non-editable address bar

[3.8.0] - 2021-06-04​

Added​

  • (public) JS API: Listen for when the custom browser closes

Fixed​

  • (public) WebView can once again be remotely updated (since 3.7.0)
  • (public) Correctly set Admin PIN on Philips tablets when outside of app
  • (public) Firmware updates work again on Philips TVs (since 3.7.0)

[3.7.0] - 2021-05-13​

Added​

  • (public) Support ELO I-Touch 3.0 with Android 8.1 AOSP
  • (public) Report supported resolutions on MBX and Giada DN72
  • (public) Set resolution on MBX and Giada DN72
  • (public) Support screenshots on Android 10 with only Device Owner (requires special setup)
  • (public) Read temperature on Philips TVs
  • (public) Report more device settings

Fixed​

  • (public) Correctly report management capabilities to JS API
  • (public) Fix file system JS API rules for overwriting files and merging directories
  • (public) Support sos.stream.prepare
  • (public) Clean up temporary screenshot files on Philips
  • (public) USB serial API now works correctly across applet reloads and app restarts
  • (public) Gracefully handle NTP server addresses that specify invalid schemes

[3.6.0] - 2021-03-03​

Added​

  • (public) JS API: USB Serial
  • (public) Support Prestigio tablets with Android 10 and Device Owner status
  • (public) Preliminary support for Allwinner DRCC-D88
  • (public) Preliminary support for WF1412T
  • (public) Read temperature on BenQ SL
  • (public) Enable kiosk mode from the debug dialog

Fixed​

  • (public) More reliable timer scheduling
  • (public) Native power timers should now work more reliably on Vestel
  • (public) Screen should now always turn on after a native power timer on event on BenQ SL and Philips TVs
  • (public) Scheduled reboot should now work on Mobipintech
  • (public) JS API: Time management API should now work as expected
  • (public) JS API: Set timer API should now work as expected
  • (public) JS API: Allow time format without leading zero, e.g. 8:00
  • (public) JS API: Changing display orientation should now work as expected
  • (public) Support device management on more rooted devices

[3.5.0] - 2020-12-19​

Added​

  • (public) Internal refactor, improved maintainability
  • (public) Attempt to reconnect disconnected video streams automatically
  • (public) Support setting NTP server
  • (public) Allow cleartext traffic developer option for downloading files over HTTP during development
  • (public) Press Shift+F8 quickly 5 times and enter PIN to disable Kiosk Mode for maintenance.
  • (public) Basic support for Hannspree HSG1351
  • (public) Preliminary support for Allwinner A33 y3

Fixed​

  • (public) Don't set red LED color on Philips tablets on app start
  • (public) JS API: getBrightness should report correct brightness timer settings
  • (public) JS API: File copy and move now overwrite target file
  • (public) JS API: Time management API should now work as expected
  • (public) Better recognize video stream formats on some devices
  • (public) Don't restart Ethernet adapter with static IP configuration
  • (public) Pressing admin shortcut on Philips 10BDL3051T while in kiosk mode should no longer force-stop the app
  • (public) Report installed packages at most once per 10 seconds
  • (public) In-app browser timeout should now work as expected
  • (public) Power on and power off on Vestel should behave more reliably
  • (public) Don't play content unless enabled by Power on action or by Native timer
  • (public) Video on MBX should now display correctly in portrait orientation

[3.4.1] - 2020-10-08​

Fixed​

  • (public) Video orientation should be correct after an orientation change (since 3.4.0)
  • (public) If screen is off before a reboot, it should turn off again shortly after the reboot
  • (public) Power actions on some Philips TVs should be more reliable
  • (public) IR lock on Sharp PN-HM1 series now works (since 3.4.0)
  • (public) Support setting orientation on FrameXX sign3

[3.4.0] - 2020-10-05​

Added​

  • (public) Basic support for Sharp PN-HM1 series
  • (public) Basic support for Vestel PDH series
  • (public) Report installed packages
  • (public) Enable or disable ADB whenever native debug is enabled or disabled, respectively
  • (public) Basic support for FrameXX sign3
  • (public) Basic support for Geniatech ATV329A, ATV495X, ATV195X

Fixed​

  • (public) New launcher icon on Android TV
  • (public) ANR dialog should no longer show when processing touch gestures in WebView
  • (public) sos.fileSystem.isDirectory and sos.fileSystem.getFileChecksum should now work as expected
  • (public) Reboot on Philips xxBDL4051D should work more reliably
  • (public) Re-enable reboot on Mobipintech DP600 - fix requires a board replacement
  • (public) Display Off power action should work more reliably on BenQ SL2K
  • (public) Firmware update now works on BenQ SL2K
  • (public) Allow app.upgrade JS API to install Open Applet APKs
  • (public) Reset DEMO mode during deprovisioning

[3.3.1] - 2020-07-29​

Fixed​

  • (public) Video playback no longer gets stuck after applet refresh, applet reload or a timing change
  • (public) Support gapless video playback on BenQ SL2K (since 3.3.0)
  • (public) Prevent sporadic restarts during app startup

[3.3.0] - 2020-07-27​

Added​

  • (public) Multi-file applets designed for Open users can now be used by Platform users.
  • (public) Support browser themes (light/dark theme, colors, corner size, close button style)
  • (public) Support browser window coordinates
  • (public) Support volume option in video.prepare

Fixed​

  • (public) Package installs no longer require user consent in some conditions on some devices
  • (public) App will no longer fail to start after an update (using new bundled app called Kickstarter)
  • (public) Disable content while backlight is off on BenQ SL2K

[3.2.4] - 2020-07-16​

Fixed​

  • (public) Application version reporting should now work reliably in all cases (since 3.0.0)

[3.2.3] - 2020-07-15​

Fixed​

  • (public) Fix battery status reporting, part 2 (since 3.0.0)
  • (public) Fix sporadic crashes related to in-app browser

[3.2.2] - 2020-07-09​

Fixed​

  • (public) Critical error loop when using certain DM features (since 3.2.1)

[3.2.1] - 2020-07-01​

Fixed​

  • (public) Developers can temporarily enable WebView debug via ADB
  • (public) Fix Ethernet adapter reset on BenQ SL2K

[3.2.0] - 2020-06-13​

Added​

  • (public) Can use Google WebView on Android 7+ even if it's not whitelisted by system
  • (public) Can use bundled root CA certificates without installing them system-wide
  • (public) Better support for managing Philips devices (using bundled companion apps)
  • (public) Support installing third-party non-system applications
  • (public) Support launching third-party applications
  • (public) Basic support for Philips 32BDL4051D
  • (public) Basic support for Benq SL5502K
  • (public) Basic support for Geniatech APC390R
  • (public) Basic support for Geniatech ATV1660K

Fixed​

  • (public) Bundled "USERTrust RSA Certification Authority" root certificate
  • (public) Bundled "COMODO RSA Certification Authority" root certificate
  • (public) Use Google Security Provider on Google-enabled devices (support stronger SSL ciphers)
  • (public) Support setting PIN on Android 10
  • (public) Fix app restart on Android 9+
  • (public) Fix taking screenshots on some devices (since 3.1.0)
  • (public) Fix setting signageOS as Custom App on Philips 10BDL4151T and CRD50 (launch on boot)
  • (public) Minimum font size in WebView has been lowered from 8px to 1px
  • (public) In-app browser ACL in domain-mode now affects sub-domains
  • (public) Fix battery status reporting (since 3.0.0)
  • (public) Fixed potential crash when installing packages on Android 4
  • (public) Fixed potential crash when binding vendor service on Android 7-8
  • (public) Fixed crash reporting issues
  • (public) Video prepare works more reliably
  • (public) Support reading temperature on more devices
  • (public) Fixed memory leak when looping single video
  • (public) Removed experimental support for Realtek Kylin 32-bit device (since 3.0.0-beta4)
  • (public) File info will no longer contain mime type - it was either unreliable or unsupported by the device
  • (public) Fixed setting volume on Philips 24BDL4151T
  • (public) Safer kiosk mode on Philips tablets
  • (public) Disabled reboot on Mobipintech DP600 - renders device unusable until several minutes without power
  • (public) Get serial number on Philips 24BDL4151T reliably
  • (public) Fix keyguard sometimes being displayed over content after reboot while in kiosk mode
  • (public) Better time synchronization on start-up on Philips

[2.13.1] - 2020-06-13​

Fixed​

  • (public) Fixed potential crash when installing packages on Android 4
  • (public) Fixed potential crash when binding vendor service on Android 7-8
  • (public) Fixed crash reporting issues
  • (public) Video prepare works more reliably
  • (public) Report battery and storage status more often
  • (public) Support reading temperature on more devices
  • (public) Fixed memory leak when looping single video
  • (public) Removed experimental support for Realtek Kylin 32-bit device (since 2.8.0)
  • (public) Fixed potential crash loop when using scheduled power actions before updating to 2.12.0+ (since 2.12.0)
  • (public) Fixed setting volume on Philips 24BDL4151T
  • (public) Safer kiosk mode on Philips tablets
  • (public) Disabled reboot on Mobipintech DP600 - renders device unusable until several minutes without power
  • (public) Get serial number on Philips 24BDL4151T reliably
  • (public) Fix keyguard sometimes being displayed over content after reboot while in kiosk mode
  • (public) Better time synchronization on start-up on Philips

[2.13.0] - 2020-05-01​

Added​

  • (public) Support installing third-party non-system applications
  • (public) Support launching third-party applications
  • (public) Basic support for Philips 32BDL4051D

Fixed​

  • (public) Minimum font size in WebView has been lowered from 8px to 1px
  • (public) Reduce APK size (since 2.12.0)

[2.12.1] - 2020-04-07​

Fixed​

  • (public) Fix setting signageOS as Custom App on Philips 10BDL4151T and CRD50 (launch on boot)

[2.12.0] - 2020-04-07​

Added​

  • (public) Can use Google WebView on Android 7+ even if it's not whitelisted by system
  • (public) Can use bundled root CA certificates without installing them system-wide

Fixed​

  • (public) Bundled "USERTrust RSA Certification Authority" root certificate
  • (public) Bundled "COMODO RSA Certtification Authority" root certificate
  • (public) Use Google Security Provider on Google-enabled devices (support stronger SSL ciphers)
  • (public) Fix app restart on Android 9+
  • (public) Fix taking screenshots on some devices (since 2.10.1)

[2.11.1] - 2020-03-05​

Fixed​

  • (public) Make timers and scheduled power actions work on Mobipintech DP600

[3.1.1] - 2020-03-05​

Fixed​

  • (public) Fix crash loop on Panasonic with disabled LAN Control
  • (public) Make timers and scheduled power actions work on Mobipintech DP600

[3.1.0] - 2020-02-27​

Added​

  • (public) Support Mobipintech DP600 player board

Fixed​

  • (public) Improve SICP reliability after app start on Philips, BenQ, and Sharp
  • (public) Support installing Google WebView v75+
  • (public) Visual improvements in PDF viewer
  • (public) Support hiding DEMO watermark on unsupported devices
  • (public) Disable video prepare on Philips QL (hardware limitation)
  • (public) Support setting brightness on Philips QL
  • (public) Report correct firmware version on Philips QL
  • (public) Reject blank serial numbers
  • (public) Automatically disable battery optimizations on supported devices
  • (public) Correct file migration script from signageOS for Android v2.x.x to v3.x.x
  • (public) Support Open content modules on de-provisioned devices

[2.11.0] - 2020-02-27​

Added​

  • (public) Support Mobipintech DP600 player board

Fixed​

  • (public) Reject blank serial numbers
  • (public) Automatically disable battery optimizations on supported devices

[2.10.2] - 2020-02-27​

Added​

  • (public) Support Mobipintech DP600 player board

Fixed​

  • (public) Reject blank serial numbers
  • (public) Automatically disable battery optimizations on supported devices

[2.10.1] - 2020-02-26​

Fixed​

  • (public) Serial number couldn't be read on Sharp, failing first run (since 2.10.0)
  • (public) Improve SICP reliability after app start on Philips, BenQ, and Sharp
  • (public) Support installing Google WebView v75+
  • (public) Visual improvements in PDF viewer
  • (public) Support hiding DEMO watermark on unsupported devices
  • (public) Disable video prepare on Philips QL (hardware limitation)
  • (public) Support setting brightness on Philips QL
  • (public) Report correct firmware version on Philips QL

[3.0.1] - 2020-02-09​

Fixed​

  • (public) Fix SICP commands on BenQ, Philips, and Panasonic

[3.0.0] - 2020-02-08​

Added​

  • (public) Support Philips 10BDL4151T tablet and Philips CRD50 OPS

Fixed​

  • (public) Everything from version 2.10.0
  • (public) Serial number couldn't be read on Sharp, failing first run (since 3.0.0-beta5)
  • (public) Safely handle deprovisioning

[2.10.0] - 2020-01-23​

Added​

  • (public) In-app browser now supports viewing PDF files (requires a recent version of WebView)
  • (public) Support Philips 10BDL4151T tablet and Philips CRD50 OPS

Fixed​

  • (public) Report correct serial number, firmware version, and precise model number on Sharp
  • (public) Reporting success of ResizeDevice action now works (really, this time)
  • (public) Reset system-wide PIN, if possible

[3.0.0-beta5] - 2020-01-08​

Removed​

  • (public) Service socket no longer supports API v1
  • (public) Service socket no longer supports Socket.IO protocol

Added​

  • (public) Support signageOS Open subscription with sideloaded applet
  • (public) In-app browser now supports viewing PDF files (requires a recent version of WebView)
  • (public) Support video playback behind HTML content

Fixed​

  • (public) Report correct serial number and precise model number on Sharp
  • (public) Everything from versions 2.9.0-2.9.2

[2.9.2] - 2019-12-11​

Fixed​

  • (public) Reporting success of ResizeDevice action now works
  • (public) MBX will no longer reboot automatically on screen off after 6+ hours of uptime

[2.9.1] - 2019-11-28​

Fixed​

  • (public) Critical: "Delete file" and other commands should no longer fail (since 2.9.0)
  • (public) Browser ACL no longer matches the exact string automatically (use ^ and $)

[2.9.0] - 2019-11-28​

Added​

  • (public) Preliminary support for Shuttle NS02 devices

Fixed​

  • (public) Disabling native timers now works on Philips TVs
  • (public) Guard against Path Traversal Vulnerability
  • (public) Proprietary timers weren't properly applied after reboot
  • (public) Setting time is now performed despite enabled auto-time in Android settings
  • (public) Setting time now works on rooted Android 4.4
  • (public) Video player performs better over long periods of time (fixed memory leak)

[2.8.0] - 2019-09-11​

Added​

  • (public) Preliminary support for Realtek Kylin 32-bit device

Fixed​

  • (public) Fixed volume and brightness setting on Philips TVs
  • (public) Fixed volume and brightness reporting in JS
  • (public) Recreate activity only if its size changed due to orientation change

[3.0.0-beta4] - 2019-09-11​

Added​

  • (public) Preliminary support for Realtek Kylin 32-bit device

Fixed​

  • (public) Recreate activity only if its size changed due to orientation change

[3.0.0-beta3] - 2019-07-30​

Fixed​

  • (public) Included all features and fixes from 2.7.1-2.7.2

[2.7.2] - 2019-07-29​

Fixed​

  • (public) Fixed potential hang-up during startup on rooted devices (such as Giada)
  • (public) Non-zero values don't set zero volume anymore (plain Android volume)
  • (public) Resetting reported volume doesn't result in decreased volume (plain Android volume)
  • (public) Support updating pre-installed com.android.webview package
  • (public) Support updating com.google.android.webview package on x64 devices

[2.7.1] - 2019-06-28​

Fixed​

  • (public) Reboot on Giada with enabled kiosk mode will now work
  • (public) Allow XHR to content uris (since 2.6.1, PDF.js may crash when loading images until WebView 71+)
  • (public) Enable video tag autoplay

[3.0.0-beta2] - 2019-06-07​

Added​

  • (public) Implemented read file as text API in JS

Fixed​

  • (public) Included all features and fixes from 2.6.1-2.7.0
  • (public) Implemented get/set brightness API in JS
  • (public) Implemented get/set volume API in JS
  • (public) Implemented power on/off API in JS
  • (public) Implemented battery info API in JS
  • (public) Implemented set logging enabled API in JS
  • (public) Implemented set orientation API in JS
  • (public) Implemented set time/zone API in JS
  • (public) Implemented package install API in JS
  • (public) Implemented app upgrade API in JS
  • (public) Implemented firmware upgrade API in JS
  • (public) Implemented screenshot API in JS

[2.7.0] - 2019-06-07​

Added​

  • (public) All sockets can now use WebSockets for communication with server

Fixed​

  • (public) Fixed video playback issues on Giada
  • (public) Preliminary support for Alps Pegasus Ultra-stretch
  • (public) Handle cases when video completes before registering callbacks
  • (public) Fixed installing CA certs on some devices running Android 4
  • (public) Faster screenshots on Philips 24BDL4151T (requires OTA Installer 1.5.0)

[2.6.3] - 2019-05-21​

Fixed​

  • (public) Fixed taking screenshots on Android 5+ (since 2.6.0)

[2.6.2] - 2019-05-17​

Fixed​

  • (public) Correctly report device time
  • (public) Support reporting more network info (IP address, network mask, gateway, DNS)

[2.6.1] - 2019-05-10​

Fixed​

  • (public) App will no longer stop working in some cases when using PDF.js
  • (public) Safer checks if the device is a supported Philips device
  • (public) Set Debug API can be used to disable Android logging at runtime

[3.0.0-beta1] - 2019-05-02​

Fixed​

  • (public) Support setting Android PIN on more devices (without a companion app)
  • (public) Included all features and fixes from 2.6.0

[2.6.0] - 2019-05-02​

Added​

Fixed​

  • (public) Auto-grant runtime permissions where available
  • (public) Compress screenshots on client before sending to server - save bandwidth, ensure acceptance
  • (public) CA certificate installing available on more platforms
  • (public) Bundled ISRG Root X1 CA certificate to future-proof support for Let's Encrypt
  • (public) Ethernet reset should longer need a companion app on BenQ
  • (public) More reliable screenshot delivery on Philips

[3.0.0-alpha1] - 2019-03-25​

Changed​

  • (public) Sockets now use V2 API for communication with server - on-premise customers will need updated server app

Added​

Fixed​

  • (public) Philips tablets are now able to set PIN code remotely (matching PIN in Box)
  • (public) Android PIN may only be required when kiosk mode is enabled (i.e. control is disabled)

[2.5.7] - 2019-03-25​

Fixed​

  • (public) Screenshot reporting works again on Giada

[2.5.6] - 2019-03-18​

Fixed​

  • (public) Application package is now significantly smaller
  • (public) App should start displaying content faster on BenQ

[2.5.5] - 2019-02-26​

Fixed​

  • (public) No more crash loop when disabling auto-time (Philips, since 2.5.3)

[2.5.4] - 2019-02-25 [YANKED]​

Fixed​

  • (public) Fixed incorrect video orientation and position after start-up on some devices
  • (public) Better time synchronization on start-up on BenQ

[2.5.3] - 2019-02-21 [YANKED]​

Fixed​

  • (public) Backup reboot feature is now implemented natively and is available even with suspended content
  • (public) Android auto-time is automatically disabled (except Philips) in favor of alternative methods
  • (public) NTP server is checked every 1 hour
  • (public) Reverted NTP server to time.google.com

[2.5.2] - 2019-02-01​

Fixed​

  • (public) Fetch time from NTP server on BenQ and Sharp every 1 hour
  • (public) Pre-confirm fullscreen mode will not cause a reboot on TVs
  • (public) Switch NTP server to pool.ntp.org

[2.5.1] - 2019-01-29​

Fixed​

  • (public) Fixed potential crash loop when boot process takes longer than 60 seconds
  • (public) Always set precise time from NTP server even if auto-time is enabled

[2.5.0] - 2019-01-11 [YANKED]​

Added​

Fixed​

  • (public) Don't report invalid screenshots
  • (public) Support OTA updates on more devices
  • (public) Pre-confirm fullscreen mode (this causes a reboot on non-TV Android 4 when first installed)

[2.4.8] - 2018-12-19 [YANKED]​

Fixed​

  • (public) Content and timers should start after system clock is properly synchronized on BenQ and MBX
  • (public) BenQ default launcher should no longer show up after boot for perceptible amount of time
  • (public) signageOS now sets itself as "Custom App" on Philips - previously this had to be done manually
  • (public) Fixed media access on WebView M63+
  • (public) Optimized service connection
  • (public) MBX will no longer restart app immediately after reboot (since 2.3.0)

[2.4.7] - 2018-12-11​

Fixed​

  • (public) Socket connection in WebView is more reliable
  • (public) signageOS app sets itself as launcher, this will no longer cause a reboot after each app update

[2.4.6] - 2018-12-05​

Fixed​

  • (public) When there are multiple applet timings, the next applet is pre-loaded correctly and allows to preload static assets and setup the environment
  • (public) Native debugging control now works

[2.4.5] - 2018-11-23​

Fixed​

  • (public) BenQ can reset the Ethernet adapter using OTA Installer 1.4.1
  • (public) BenQ, Lenovo, Panasonic and Technovare should no longer require a companion app to install firmware updates
  • (public) More reliable timer event processing and scheduling

[2.4.4] - 2018-11-19 [YANKED]​

Fixed​

  • (public) BenQ, Lenovo, Panasonic and Technovare should no longer require a companion app to install firmware updates

[2.4.3] - 2018-11-17 [YANKED]​

Fixed​

  • (public) Regression when determining device ready state

[2.4.2] - 2018-11-15 [YANKED]​

Fixed​

  • (public) Allow access to downloaded files from JavaScript
  • (public) Native debugging control now works
  • (public) Fix video stuttering on Philips P-Line (requires OTA Installer 1.2.0+)
  • (public) Lenovo now correctly sets display off after reboot
  • (public) Package install should now correctly report errors
  • (public) Ethernet adapter resets when there should be a connection but isn't
  • (public) Brightness setting on Philips DL & PL now works as expected
  • (public) Brightness settings take effect immediately
  • (public) Fixed simultaneous downloading of the same file from applets

[2.4.1] - 2018-09-10​

Fixed​

  • (public) Correctly enable app components after resolving a setup error
  • (public) Correctly report BRAND instead of BOARD

[2.4.0] - 2018-09-06 [YANKED]​

Added​

  • (public) Support for Philips P line and D line
  • (public) Demo Mode on unsupported devices
  • (public) Locally stored applets can now request camera and microphone access

Fixed​

  • (public) Improved package install result reporting
  • (public) signageOS app sets itself as launcher on MBX (this may cause a reboot after first run and each app update)
  • (public) MBX now correctly sets display off after reboot
  • (public) Restart app after installing Google WebView for the first time
  • (public) Clear old app update files from disk cache when signageOS starts
  • (public) Disable firmware update prompts on BenQ
  • (public) Setup error resolution dialog does not loop anymore

[2.3.0] - 2018-08-01 [YANKED]​

Added​

  • (public) Stable: Support for Sharp PN line
  • (public) Remote firmware update on Sharp
  • (public) Remote firmware update on BenQ, Lenovo, Panasonic and Technovare OPS for NEC using a companion app

Fixed​

  • (public) Enabled support for TLSv1.2 on Android 4, dropped support for older protocols
  • (public) Faster applet switching
  • (public) Reliable handling of postponed actions
  • (public) Scheduled reboot will no longer cause boot loops on BenQ
  • (public) MBX now supports automatic time from network

[2.2.0] - 2018-07-12 [YANKED]​

Added​

  • (public) Scheduled power actions: app restart, reboot, display ON/OFF
  • (public) MBX now supports setting display orientation remotely

[2.1.0] - 2018-07-12 [YANKED]​

Added​

  • (public) <s>Experimental: Support for Sharp PN line - content, volume, brightness, restart, reboot, display ON/OFF, proprietary and emulated native timers</s>

Fixed​

  • (public) Registration of new devices broken in version 2.0.0.

[2.0.0] - 2018-06-13 [YANKED]​

Added​

  • (public) Changelog file containing all changes in current project.
  • (public) Report firmware version to server.
  • (public) <s>Experimental: Basic support for Sharp PN line - content, volume, brightness, restart, reboot. No backlight or standby settings.</s>
  • (public) Support reverse portrait display orientation.
  • (public) Integrators can now manually set io.signageos.android/.dpc.AdminReceiver component as Device Owner to unlock device management features on newly deployed devices (based on Android version).

Changed​

  • (public) NFC deployment process has changed. Blue Agent Writer can no longer be used. Manual provisioning data preparation (using e.g. NFC Tools) is now required.

Fixed​

  • (public) MBX now plays first video with correct aspect ratio.
  • (public) Deployment on MBX doesn't require manually turning on Wi-Fi adapter anymore. It's done automatically (this can take up to 10 seconds).
  • (public) Ensure that soft keyboard is hidden on BenQ when the app starts.
  • (public) Will not crash on devices with time set before May 1, 2018.
  • (public) Setting portrait orientation now results in one stable orientation on devices without an accelerometer.
  • (public) Scheduled power off and power on BenQ now works correctly.