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
- (public) Support ViewSonic CDE14 series
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
MediaCodecasync API by default, applyMediaCodec.setOutputSurfaceworkaround, 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
- (public) Sony BRAVIA: Disable Idle TV standby
- (public) Bundle Amazon Root CA 1–4 certificates
- (public) Powered by library 14.39.1
[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
KeyChainservice)
[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
- (public) Hisense DM66D: Correctly read serial number (since 4.11.0)
- (public) Bundle some recent root CA certificates, typically used with Elliptic Curve Cryptography.
- (public) Screenshot perceptual hashes are now more consistent with other platforms
- (public) Powered by library 14.30.0
[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
- (public) Support BenQ SL04
- (public) Support Sharp PN-ME2
- (public) Support Elo I-Series 5
- (public) Support Elo Backpack 5
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
MediaProjectionnow 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
MediaProjectionnow 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
MediaProjectionnow 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.selectUndeterminedTextLanguageoption - (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.ioorigin 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.ioorigin 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.ioorigin 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.ioorigin 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
TextureViewfor 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.prepareAPI 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.+.jarfile 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
nullresponse 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_h600is nowimage/pnginstead ofapplication/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_TRACKkey codes - (public) Philips 10BDL3051T: Manage network adapters in order to keep connectivity
- (public) Setup: Improve process stability
- (public) Setup: Correctly handle
android.permission.POST_NOTIFICATIONSon 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
internal0volume 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_WINDOWfor 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
lowmemorykillersystem 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, andCHANNEL_DOWNkey codes - (public) Sony Bravia: Disable the system launcher in order to intercept the HOME button
[4.1.0] - 2023-05-10
Added
- (public) Support hisense
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
- (public) Support Lenovo and MBX devices running Android 9+ (generate correct device UID)
- (public) Report device brand separately
- (public) Support Elo I-Series 4
- (public) Support Elo Backpack 4 Standard and Value
- (public) Support QR code and NFC provisioning on Android 12
- (public) Support iiyama ProLite TW1023ASC-B1P
- (public) Support MINIX X68-i
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
DevicePolicyManagerAPI 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
- (public) Update
OkHostnameVerifier, fix CVE-2021-0341 - (public) Update Google Play services SDK, fix CVE-2022-1799
[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
- (public) Headless browser
- (public) Basic support for ProDVX APPC-10X
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
- (public) Basic support for Philips BDL4550D
- (public) Basic support for Philips BDL3550Q
- (public) Local Developer Options for debugging video playback issues
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
- (public) Support Philips 10BDL4551T
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:
getBrightnessshould 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.isDirectoryandsos.fileSystem.getFileChecksumshould 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.upgradeJS 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
volumeoption invideo.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
ResizeDeviceaction 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
ResizeDeviceaction 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.webviewpackage - (public) Support updating
com.google.android.webviewpackage 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
- (public) Support for Philips 24BDL4151T
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
-
(public) Enable applets to get file/content uids (https://docs.signageos.io/api/sos-applet-api/#List_all_files)
-
(public) Enable applets to delete files/contents (https://docs.signageos.io/api/sos-applet-api/#Delete_file)
-
(public) Enable applets to verify file checksum (https://docs.signageos.io/api/sos-applet-api/#Checksum_file_md5)
-
(public) Support for ELO I-Series 2.0 for Android (https://www.elotouch.com/touchscreen-signage.html)
-
(public) File System API supports writeFile (text (string) value only)
-
(public) File System API supports copyFile
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
- (public) Support for Philips Q-Line
- (public) Support for Giada DN72
- (public) Support for FrameXX HOME131
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
BRANDinstead ofBOARD
[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.AdminReceivercomponent 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.