Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog
and this project adheres to Semantic Versioning.
Unreleased
4.7.4 - 2024-09-09
Fixed
- App no longer crashes when loading bundled applet from invalid URL
- App no longer crashes when checking denied permissions on Android 12 (since 2.0.0)
- App no longer crashes when managing screenshot requests (since 2.7.0)
- Improve binding app process lifecycles together
4.7.3 - 2024-09-04
Fixed
- Display ON now reliably works on Android 11 for TV and newer
4.7.2 - 2024-09-04
Fixed
- Critical: Fix alarm-related crash on Android 13 and newer (since 2.7.0)
4.7.1 - 2024-09-04
Fixed
- Critical: Correctly bind app process lifecycles together (since 4.5.0)
4.6.4 - 2024-09-04
Fixed
- Critical: Correctly bind app process lifecycles together (since 4.5.0)
4.5.4 - 2024-09-04
Fixed
- Critical: Correctly bind app process lifecycles together (since 4.5.0)
4.7.0 - 2024-09-03
Added
- Support Philips 10BDL3351T
- Install APKs from arbitrary URLs
- 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. - Target Android 12L
Fixed
- Telemetry: Report Device Owner and Accessibility Service status, which can be used to remotely gauge device management capabilities.
- Telemetry: Report process metadata, which can be used to remotely gauge device management capabilities.
- Optimize screenshot delivery for remote desktop
- Set auto/time/zone using Philips API, alternatively
- Validate time zone instead of defaulting to GMT
4.6.3 - 2024-08-02
Fixed
- Fix in-app inter-process permission checks affecting the browser process (since 4.4.0)
- Setup should no longer get stuck on Installing Device Management... on supported devices
- JS API: Browser domain ACL now applies to clicked links on Android 5+
4.6.2 - 2024-07-12
Fixed
- Sharp: Reject placeholder serial number 8A012345K
4.6.1 - 2024-07-12
Fixed
- 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.
- 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.
- JS API: Browser timeout is now reset with each user interaction (since 3.12.0)
- JS API: Browser domain ACL now correctly matches domains (since 3.2.0)
- JS API: Screenshot upload API returns correct URL (since 4.3.3)
- Telemetry: Report actual display power (since 4.6.0)
- Telemetry: Allow reporting multiple connected network interfaces
- Developer Option: Disable Ethernet restart on connection error
- Ethernet restart should no longer cause permanent network loss
- Don't allow Ethernet restart optimistically on untested devices
- Auto-verification: Wait for user setup complete before enforcing policies
- 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. - Philips 24BDL4151T: Fix "Application Not Responding"
- Philips 24BDL4151T: Fix disabled content due to stuck SELinux checks
4.6.0 - 2024-06-19
Added
-
Support Auto-verification from Android Provisioning
-
Telemetry: Report actual display power
-
Updated to Front-OSD 0.12.0
-
Developer Options: Run applet in a separate process
- Allow custom WebView build on Kitkat
- New deployments default to
appassets.android.signageos.io
origin instead of an opaque origin
4.5.3 - 2024-06-19
Fixed
- Report battery status when device isn't plugged in (since 4.3.3)
4.5.2 - 2024-06-19
Fixed
- Fix Wi-Fi MAC address reporting in some cases (since 4.3.0)
- Only deprovision verified devices; don't interfere with setup
4.5.1 - 2024-06-19
Fixed
- Critical: Applets now correctly switch on Android 4.4 with WebView M30
4.5.0 - 2024-05-14
Added
- Developer options: Applets can use
appassets.android.signageos.io
origin instead of an opaque origin - Troubleshooting: Toggle high-priority privileged launcher, e.g. on Android TV, for non-CMS applications
- Support Philips BDL3650Q
- Support hisense DM66D
- Support hisense WF25E
Fixed
- Improve high-priority privileged launcher recognition (since 4.3.5)
- Unify immersive mode behavior across platform versions
- P2P synchronizer now works on Android 4.4
-
Powered by library 13.8.0
- Setup wizard: Run in lock task mode on Android 9+ to avoid interrupting automated flows
- Improve Ethernet adapter MAC address extraction
- hisense BM66AE: Use native portrait mode
- hisense BM66AE: Default to
TextureView
for video in portrait mode - ExoPlayer: TS exposes fallback CEA-608 closed captions if undeclared in PMT
- ExoPlayer: Pass DRM configuration and track selection options when
sos.video.prepare
API isn't fully supported - Correctly report Wi-Fi on most devices (since 4.3.0)
- JS API: P2P video synchronization now works on Android 4.4
- Philips, BenQ SL: Backlight no longer remains off after a system-triggered hard reboot following a display power command or timer event
- Fix backported shell commands on Kitkat (since 4.4.0-rc.3)
- Remotely installed packages are started automatically, once again (since 4.5.0-alpha.1)
- Additionally load developer options from all files matching
sos.dev.
+.jar
file name on a flash drive
4.4.4 - 2024-04-03
Fixed
- Improve a11y service compatibility with Android 7+ devices
- Setup wizard: Ask for a11y service permission on Android 4.4–6 devices (since 4.0.0)
- Avoid potential crash on
null
response message using WebView older than M73 (https://issues.chromium.org/issues/41437689) - Powered by library 13.6.4
4.4.3 - 2024-03-21
Fixed
- Critical: Correctly report app upgrade (since 4.4.0)
4.4.2 - 2024-03-20 [YANKED]
Fixed
- JS API: Correctly report Serial API support (
sos.display.supports("SERIAL")
) - JS API: Serial API now works on Android 10 or newer (since 4.4.0)
- Elo Backpack 4: Set as default home
4.4.1 - 2024-03-14 [YANKED]
Fixed
- BenQ SL: Match emulated Lock Task Mode behavior with pre-v4.4.0
4.4.0 - 2024-03-14 [YANKED]
Added
- Expose location & tags, as seen in Box, to third party apps (requires runtime permission)
- Support Philips BDL4650D
- Troubleshooting: Local & online app update options
- Support package install/uninstall policy
- JS API: Stream options
- JS API: Stream DRM
- JS API: Stream track selection
- JS API: Stream pause/resume
- Experimental Remote Desktop
Fixed
- Sony Bravia: Suppress IR remote control keys when Kiosk Mode is active (as was always intended) (since 4.3.0)
- ExoPlayer: Gracefully handle transport streams containing no packets for an H.264 or AAC elementary stream that is declared in the PMT
- 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 nowimage/png
instead ofapplication/octet-stream
) - Update EULA to version 3.0
- Setup wizard should no longer get stuck on Starting... in certain conditions
- Correctly report proprietary timer settings
- Proprietary timers can now be controlled using JS API
- Use ADB to perform device management even on devices running Android 11+ with ADB-over-TCP enabled (previously limited to Android 7–10)
- Connection should no longer switch from Ethernet to Wi-Fi as a fallback measure (since 4.0.0)
- Vestel: Don't recreate main activity whenever IR lock state changes
- Pick valid WebView implementation provider during setup on Android 7+
4.3.12 - 2024-01-09
Fixed
- Fix crash on Sharp PN-B series regarding Ethernet Restart (since 4.3.0)
- Fix crash regarding Browser (since 4.3.11)
4.3.11 - 2023-12-15
Fixed
- Clicking on a
<select>
element no longer causes a crash
4.3.10 - 2023-12-06
Fixed
- App no longer crashes on Android 12 when granting permissions during setup
- App no longer crashes on some devices when attempting to play
<video>
element
4.3.9 - 2023-11-15
Fixed
- Fallback Android TV launcher shows Notifications, Settings, and clock in the top right corner
- Lenovo: Work around issues when using Browser JS API with Smart Rotate enabled
- Improve startup time
- Support Proprietary power timer policy (since 3.10.0)
4.3.8 - 2023-11-03
Fixed
- Taking full screenshots using a11y framework on API 30 now works again (since 4.3.3)
- Improved process management during setup
4.3.7 - 2023-10-31
Fixed
- Fix crash on boot affecting Sony Bravia BPK provisioning (since 4.3.6)
4.3.6 - 2023-10-30
Fixed
- 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
- IR lock no longer gets stuck when enabled on Sony Bravia (since 4.3.3)
4.3.4 - 2023-10-29
Fixed
- Background app setup doesn't end prematurely (since 4.3.3)
- Correctly report service connection status
4.3.3 - 2023-10-26
Fixed
- Provision Content Module from flash drive
- Correctly provision developer options from flash drive
- Disable battery optimizations or disable Idle Mode
- Devices without a battery no longer report battery stats
- YOX: Correctly report display brightness (since 4.0.0)
4.3.2 - 2023-10-05
Fixed
- Starting applet in offline (when was already downloaded earlier)
4.3.1 - 2023-10-02
Fixed
- Critical: App no longer restarts when uploading crash reports (since 4.3.0)
4.3.0 - 2023-10-01
Added
- Sony Bravia: Suppress IR remote control keys when Kiosk Mode is active (as was always intended)
- Developer Option: Hotel Mode (enables IR RC and user power control in Kiosk Mode)
- Developer Option: Video Scaling Mode
Fixed
- Critical: Correctly migrate Demo Mode Device UID from Core App 3.x (since 4.0.0)
- JS API: Support
MEDIA_NEXT
,MEDIA_PREVIOUS
,MEDIA_RECORD
,INFO
,GUIDE
,CAPTIONS
,MEDIA_AUDIO_TRACK
key codes - Philips 10BDL3051T: Manage network adapters in order to keep connectivity
- Setup: Improve process stability
- Setup: Correctly handle
android.permission.POST_NOTIFICATIONS
on Android 13 - Persist device name and organization name across app restarts and reboots
- Sony Bravia: Wi-Fi MAC address contributes to device UID for new installations
- BenQ SL: Report correct Android firmware type in case the scaler chip firmware doesn't match
- Report Wi-Fi SSID and signal strength on Android 9+
- Correctly report storage volumes after first run
- JS API: Always report
internal0
volume backed by app-private storage - Revert "Transitioning between videos should be faster on most devices" as unreliable (since 4.2.0)
4.2.8 - 2023-10-02
Fixed
- Critical: Correctly migrate Demo Mode Device UID from Core App 3.x (since 4.0.0)
- Correctly report storage volumes after first run (since 4.0.0)
- Revert "Transitioning between videos should be faster on most devices" as unreliable (since 4.2.0)
4.1.4 - 2023-10-02
Fixed
- Critical: Correctly migrate Demo Mode Device UID from Core App 3.x (since 4.0.0)
- Correctly report storage volumes after first run (since 4.0.0)
4.0.2 - 2023-10-02
Fixed
- Critical: Correctly migrate Demo Mode Device UID from Core App 3.x (since 4.0.0)
- Correctly report storage volumes after first run (since 4.0.0)
- Re-enable JS API OSD (since 3.17.0)
- Video: Retry playback once after decoder initialization error
- Video: Video prepare API no longer gets stuck sporadically (since 3.13.0)
- Respect Extract video size developer option (since 3.11.0)
4.2.6 - 2023-08-10
Fixed
- ExoPlayer: Replaying the same video works again (since 4.2.0)
4.2.5 - 2023-07-26
Fixed
- ExoPlayer: Display correctly videos with non-square pixels
4.2.4 - 2023-07-24
Fixed
- Remove dependency on
BatteryManager
- Setup: Improve ADB connection handling
- ExoPlayer: Improve behavior on devices lacking video prepare support
4.2.2 - 2023-06-29
Fixed
- Critical: Using browser API no longer causes a crash (since 4.2.0)
4.2.1 - 2023-06-27
Fixed
- Setup process is now slightly faster
4.2.0 - 2023-06-26
Added
- Expose public key for ADB authentication for automation
- Update Core App using Content Module
- Provision Developer Options using an external file
Fixed
- Developer Options: Allow cleartext traffic now affects WebView
- Allow
android.permission.SYSTEM_ALERT_WINDOW
for remotely installed apps on Android 10+ - Transitioning between videos should be faster on most devices
- JS API, USB Serial: Support Prolific HXN
- Geolocation HTML permission requests are now automatically approved for applets on Android 4.4
- Setup process is now more resilient to
lowmemorykiller
system daemon
4.1.2 - 2023-06-07
Fixed
- Video: Retry playback once after decoder initialization error
- Video: Video prepare API no longer gets stuck sporadically (since 3.13.0)
4.1.1 - 2023-06-05
Fixed
- Re-enable JS API OSD (since 3.17.0)
- Vestel: Disable automatic system update dialog
- Respect Extract video size developer option (since 3.11.0)
- JS API: Support
HOME
,CHANNEL_UP
, andCHANNEL_DOWN
key codes - Sony Bravia: Disable the system launcher in order to intercept the HOME button
4.1.0 - 2023-05-10
Added
- Support hisense
Fixed
- Setup: Manage more permissions interactively on unsupported devices
- Setup: Offer to enable Philips SICP
- Setup: Offer to set Sharp's Monitor Control Select to Application
4.0.0 - 2023-04-20
Added
- Support YOX75IR
- QR code provisioning: Setup content module
- QR code provisioning: Setup developer options
- Use ADB to perform device management on devices running Android 7-10 with ADB-over-TCP enabled
- Set self as device owner on devices with root or ADB-over-TCP enabled
- EULA confirmation during setup
- Interactive HTML permission requests are now automatically approved (excl. browser, requires Origin)
Changed
- Implement interactive step-by-step setup wizard ensuring proper configuration after first run
Fixed
- Correctly recognize Ethernet connection on Philips
- Improve UDP stream compatibility
- Package installer rejects WebView packages intended for other architectures
- Abort setup when the system WebView package is missing on some unsupported devices
- Deprovisioning now keeps Wi-Fi profiles
- Deprovisioning no longer undoes the app setup process
- IR lock works more reliably
- Sony Bravia: Brightness settings now work (requires advanced setup)
- Elo: Disable Auto idlemode
- Elo: Support setting brightness
3.17.4 - 2023-03-13
Fixed
- Improve setup reliability
3.17.3 - 2023-03-10
Fixed
- Support Elo I-Series 4 Value
- More secret ways to show Kiosk Unlock dialog are now supported
- JS API: Screen resize now works
- Offer reloading main activity once the content module is installed or updated
3.17.2 - 2022-12-06
Fixed
- Critical: Don't crash after setting the app as Device Owner (since 3.17.1)
3.17.1 - 2022-12-01
Fixed
- Add missing files useful for Elo I-Series 4 and Elo Backpack 4 provisioning
- Prepare for Sony Bravia X80J provisioning (requires alternative setup method)
3.17.0 - 2022-11-25
Added
- Support Lenovo and MBX devices running Android 9+ (generate correct device UID)
- Report device brand separately
- Support Elo I-Series 4
- Support Elo Backpack 4 Standard and Value
- Support QR code and NFC provisioning on Android 12
- Support iiyama ProLite TW1023ASC-B1P
- Support MINIX X68-i
Fixed
- Allow cleartext traffic in ExoPlayer-backed video player
- Gracefully handle disconnected Wi-Fi when reporting network info
- Better report video capabilities
- Check native library compatibility before installing packages
- Automatically dismiss empty password prompt on older Philips tablets (since 3.15.0)
- Use
DevicePolicyManager
API to change system settings - Using certain device management APIs on BenQ SL2K no longer restarts the app
- Android PIN is no longer set as it was sometimes required on boot, breaking unattended use
Security
- Update
OkHostnameVerifier
, fix CVE-2021-0341 - Update Google Play services SDK, fix CVE-2022-1799
3.16.0 - 2022-07-07
Added
- Local Developer Option: Use Crosswalk 23 (Chromium 53) instead of WebView (Chromium 30) on Android 4 (experimental)
Fixed
- Fix memory leak in JS video player when looping the same video file
- Fix display off using root on Android 4.4 (since 3.13.0)
- Fix reporting default values through telemetry
3.15.3 - 2022-06-14
Fixed
- Report Wi-Fi signal strength and SSID along network interfaces
- Show verification hash when serial number isn't needed to generate device UID (since 3.15.0)
3.15.2 - 2022-06-04
Fixed
- Fix development permission grant check on some devices running Android 4–5.1 (since 3.15.0)
3.15.1 - 2022-06-04
Fixed
- 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
- Support Vestel PN series
- Local Developer Options for adjusting stream buffer (ExoPlayer only)
- Toggle ADB from local Developer Options
- Automatically attempt to install at least Google Chrome 85.0.4183.127 on Android 7+ if Google WebView couldn't be installed
Fixed
- Fix potential crash when fetching time from NTP server (since 3.14.0)
- Fix potential crash when entering Admin Mode on Philips tablets without password (since 3.14.0)
- Browser: Using PDF viewer with ACL no longer requires allowing empty domain
- Display on/off/timer work more reliably on Philips BDL4051D
- Fix single video loop playback (since 3.13.0)
- Fix false negative package install results
- Prefer Google Chrome as WebView implementation on debuggable system builds with incorrectly signed Google WebView package
- Use ExoPlayer to play videos by default on Android 10 and newer
- No more crashes when attempting to pause/resume unmanaged videos
- No more ANRs while waiting for currently unavailable device IDs in debug UI
- Enable APK minification
- Fix root recognition on some devices
3.14.2 - 2022-03-28
Fixed
- 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
- 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
- File upload JS API
- BenQ, Philips: Restore display power state after a power outage
- Automatically attempt to update to at least WebView 85.0.4183.120
Fixed
- Use ExoPlayer to play video on Technovare OPS by default
- Don't restart content when opening in-app browser
- Don't crash on devices without a USB stack (e.g. Windows Subsystem for Android)
- Read serial number after provisioning as Device Owner
- Interactive package install now works on Android 11
- Taking screenshots should now work on supported devices running Android 12 or newer
- Taking screenshots is now supported on Android 11 using Accessibility Service API
- Improved attempt to fix time on devices which don't preserve time across reboots
3.13.2 - 2022-02-15
Fixed
- Fixed regression in video playback, most notably on MBX (since 3.11.0)
3.13.1 - 2022-02-02
Fixed
- On-demand screenshot reporting works again (since 3.13.0)
3.13.0 - 2022-02-02
Added
- Support CRC32 checksum in File System JS API
- Support appending text to files using JS API
- Allow parametrize bundled applet with configuration
- Support for Giada DN75
- Support arbitrary phones (Android 7+, requires advanced setup)
- Allow taking screenshots using Media Projection API (requires advanced setup)
- Bundle support for recent TLS cipher suites
- Install packages and firmware updates from absolute URLs
- Support firmware update on Android 10+ with Device Owner
Fixed
- Fix crash when opening certain links in browser
- Fix crash when leaving browser
- Fix screenshots on BenQ not being reported reliably
- Report package install failure immediately on BenQ SL2K
- Improved telemetry stability
- Improved platform socket stability
- Report framerate
- Read temperature on more devices
- Report correct screen resolution on Android 4.4 and 5.x
- Support scheduled app restart (since 3.11.0)
3.12.0 - 2021-10-14
Added
- Headless browser
- Basic support for ProDVX APPC-10X
Fixed
- Report precise model number on Philips BDL4550D and BDL3550Q
[3.11.1] - 2021-09-02
Fixed
- Service socket no longer reconnects every two minutes (since 3.11.0)
3.11.0 - 2021-08-31
Added
- Basic support for Philips BDL4550D
- Basic support for Philips BDL3550Q
- Local Developer Options for debugging video playback issues
Fixed
- Support installing custom packages
- Correctly load content in offline mode (since 3.8.0)
- Support scheduled app restart
3.10.0 - 2021-06-30
Added
- Device Policy
3.9.1 - 2021-06-21
Fixed
- Support LEDs on Philips 10BDL4551T
3.9.0 - 2021-06-09
Added
- Support Philips 10BDL4551T
Fixed
- Fix regression in screenshots on some devices running Android 5.0 - 8.1 (since 3.7.0)
- Improve compatibility with Android 7.1 and newer
- System PIN synchronizes properly when toggling kiosk mode (since 3.8.0)
- Don't ask for Admin PIN when kiosk mode is disabled on Philips 10BDL4551T
- Browser Theme: Apply address bar text color to non-editable address bar
3.8.0 - 2021-06-04
Added
- JS API: Listen for when the custom browser closes
Fixed
- WebView can once again be remotely updated (since 3.7.0)
- Correctly set Admin PIN on Philips tablets when outside of app
- Firmware updates work again on Philips TVs (since 3.7.0)
3.7.0 - 2021-05-13
Added
- Support ELO I-Touch 3.0 with Android 8.1 AOSP
- Report supported resolutions on MBX and Giada DN72
- Set resolution on MBX and Giada DN72
- Support screenshots on Android 10 with only Device Owner (requires special setup)
- Read temperature on Philips TVs
- Report more device settings
Fixed
- Correctly report management capabilities to JS API
- Fix file system JS API rules for overwriting files and merging directories
- Support
sos.stream.prepare
- Clean up temporary screenshot files on Philips
- USB serial API now works correctly across applet reloads and app restarts
3.6.0 - 2021-03-03
Added
- JS API: USB Serial
- Support Prestigio tablets with Android 10 and Device Owner status
- Preliminary support for Allwinner DRCC-D88
- Preliminary support for WF1412T
- Read temperature on BenQ SL
- Enable kiosk mode from the debug dialog
Fixed
- More reliable timer scheduling
- Native power timers should now work more reliably on Vestel
- Screen should now always turn on after a native power timer on event on BenQ SL and Philips TVs
- Scheduled reboot should now work on Mobipintech
- JS API: Time management API should now work as expected
- JS API: Set timer API should now work as expected
- JS API: Allow time format without leading zero, e.g.
8:00
- JS API: Changing display orientation should now work as expected
- Support device management on more rooted devices
3.5.0 - 2020-12-19
Added
- Internal refactor, improved maintainability
- Attempt to reconnect disconnected video streams automatically
- Support setting NTP server
- Allow cleartext traffic developer option for downloading files over HTTP during development
- Press Shift+F8 quickly 5 times and enter PIN to disable Kiosk Mode for maintenance.
- Basic support for Hannspree HSG1351
- Preliminary support for Allwinner A33 y3
Fixed
- Don't set red LED color on Philips tablets on app start
- JS API:
getBrightness
should report correct brightness timer settings - JS API: File copy and move now overwrite target file
JS API: Time management API should now work as expected- Better recognize video stream formats on some devices
- Don't restart Ethernet adapter with static IP configuration
- Pressing admin shortcut on Philips 10BDL3051T while in kiosk mode should no longer force-stop the app
- Report installed packages at most once per 10 seconds
- In-app browser timeout should now work as expected
- Power on and power off on Vestel should behave more reliably
- Don't play content unless enabled by Power on action or by Native timer
- Video on MBX should now display correctly in portrait orientation
3.4.1 - 2020-10-08
Fixed
- Video orientation should be correct after an orientation change (since 3.4.0)
- If screen is off before a reboot, it should turn off again shortly after the reboot
- Power actions on some Philips TVs should be more reliable
- IR lock on Sharp PN-HM1 series now works (since 3.4.0)
- Support setting orientation on FrameXX sign3
3.4.0 - 2020-10-05
Added
- Basic support for Sharp PN-HM1 series
- Basic support for Vestel PDH series
- Report installed packages
- Enable or disable ADB whenever native debug is enabled or disabled, respectively
- Basic support for FrameXX sign3
- Basic support for Geniatech ATV329A, ATV495X, ATV195X
Fixed
- New launcher icon on Android TV
- ANR dialog should no longer show when processing touch gestures in WebView
-
sos.fileSystem.isDirectory
andsos.fileSystem.getFileChecksum
should now work as expected - Reboot on Philips xxBDL4051D should work more reliably
- Re-enable reboot on Mobipintech DP600 - fix requires a board replacement
- Display Off power action should work more reliably on BenQ SL2K
- Firmware update now works on BenQ SL2K
- Allow
app.upgrade
JS API to install Open Applet APKs - Reset DEMO mode during deprovisioning
3.3.1 - 2020-07-29
Fixed
- Video playback no longer gets stuck after applet refresh, applet reload or a timing change
- Support gapless video playback on BenQ SL2K (since 3.3.0)
- Prevent sporadic restarts during app startup
3.3.0 - 2020-07-27
Added
- Multi-file applets designed for Open users can now be used by Platform users.
- Support browser themes (light/dark theme, colors, corner size, close button style)
- Support browser window coordinates
- Support
volume
option invideo.prepare
Fixed
- Package installs no longer require user consent in some conditions on some devices
- App will no longer fail to start after an update (using new bundled app called Kickstarter)
- Disable content while backlight is off on BenQ SL2K
3.2.4 - 2020-07-16
Fixed
- Application version reporting should now work reliably in all cases (since 3.0.0)
3.2.3 - 2020-07-15
Fixed
- Fix battery status reporting, part 2 (since 3.0.0)
- Fix sporadic crashes related to in-app browser
3.2.2 - 2020-07-09
Fixed
- Critical error loop when using certain DM features (since 3.2.1)
3.2.1 - 2020-07-01
Fixed
- Developers can temporarily enable WebView debug via ADB
- Fix Ethernet adapter reset on BenQ SL2K
3.2.0 - 2020-06-13
Added
- Can use Google WebView on Android 7+ even if it's not whitelisted by system
- Can use bundled root CA certificates without installing them system-wide
- Better support for managing Philips devices (using bundled companion apps)
- Support installing third-party non-system applications
- Support launching third-party applications
- Basic support for Philips 32BDL4051D
- Basic support for Benq SL5502K
- Basic support for Geniatech APC390R
- Basic support for Geniatech ATV1660K
Fixed
- Bundled "USERTrust RSA Certification Authority" root certificate
- Bundled "COMODO RSA Certification Authority" root certificate
- Use Google Security Provider on Google-enabled devices (support stronger SSL ciphers)
- Support setting PIN on Android 10
- Fix app restart on Android 9+
- Fix taking screenshots on some devices (since 3.1.0)
- Fix setting signageOS as Custom App on Philips 10BDL4151T and CRD50 (launch on boot)
- Minimum font size in WebView has been lowered from 8px to 1px
- In-app browser ACL in domain-mode now affects sub-domains
- Fix battery status reporting (since 3.0.0)
- Fixed potential crash when installing packages on Android 4
- Fixed potential crash when binding vendor service on Android 7-8
- Fixed crash reporting issues
- Video prepare works more reliably
- Support reading temperature on more devices
- Fixed memory leak when looping single video
- Removed experimental support for Realtek Kylin 32-bit device (since 3.0.0-beta4)
- File info will no longer contain mime type - it was either unreliable or unsupported by the device
- Fixed setting volume on Philips 24BDL4151T
- Safer kiosk mode on Philips tablets
- Disabled reboot on Mobipintech DP600 - renders device unusable until several minutes without power
- Get serial number on Philips 24BDL4151T reliably
- Fix keyguard sometimes being displayed over content after reboot while in kiosk mode
- Better time synchronization on start-up on Philips
2.13.1 - 2020-06-13
Fixed
- Fixed potential crash when installing packages on Android 4
- Fixed potential crash when binding vendor service on Android 7-8
- Fixed crash reporting issues
- Video prepare works more reliably
- Report battery and storage status more often
- Support reading temperature on more devices
- Fixed memory leak when looping single video
- Removed experimental support for Realtek Kylin 32-bit device (since 2.8.0)
- Fixed potential crash loop when using scheduled power actions before updating to 2.12.0+ (since 2.12.0)
- Fixed setting volume on Philips 24BDL4151T
- Safer kiosk mode on Philips tablets
- Disabled reboot on Mobipintech DP600 - renders device unusable until several minutes without power
- Get serial number on Philips 24BDL4151T reliably
- Fix keyguard sometimes being displayed over content after reboot while in kiosk mode
- Better time synchronization on start-up on Philips
2.13.0 - 2020-05-01
Added
- Support installing third-party non-system applications
- Support launching third-party applications
- Basic support for Philips 32BDL4051D
Fixed
- Minimum font size in WebView has been lowered from 8px to 1px
- Reduce APK size (since 2.12.0)
2.12.1 - 2020-04-07
Fixed
- Fix setting signageOS as Custom App on Philips 10BDL4151T and CRD50 (launch on boot)
2.12.0 - 2020-04-07
Added
- Can use Google WebView on Android 7+ even if it's not whitelisted by system
- Can use bundled root CA certificates without installing them system-wide
Fixed
- Bundled "USERTrust RSA Certification Authority" root certificate
- Bundled "COMODO RSA Certtification Authority" root certificate
- Use Google Security Provider on Google-enabled devices (support stronger SSL ciphers)
- Fix app restart on Android 9+
- Fix taking screenshots on some devices (since 2.10.1)
2.11.1 - 2020-03-05
Fixed
- Make timers and scheduled power actions work on Mobipintech DP600
3.1.1 - 2020-03-05
Fixed
- Fix crash loop on Panasonic with disabled LAN Control
- Make timers and scheduled power actions work on Mobipintech DP600
3.1.0 - 2020-02-27
Added
- Support Mobipintech DP600 player board
Fixed
- Improve SICP reliability after app start on Philips, BenQ, and Sharp
- Support installing Google WebView v75+
- Visual improvements in PDF viewer
- Support hiding DEMO watermark on unsupported devices
- Disable video prepare on Philips QL (hardware limitation)
- Support setting brightness on Philips QL
- Report correct firmware version on Philips QL
- Reject blank serial numbers
- Automatically disable battery optimizations on supported devices
- Correct file migration script from signageOS for Android v2.x.x to v3.x.x
- Support Open content modules on de-provisioned devices
2.11.0 - 2020-02-27
Added
- Support Mobipintech DP600 player board
Fixed
- Reject blank serial numbers
- Automatically disable battery optimizations on supported devices
2.10.2 - 2020-02-27
Added
- Support Mobipintech DP600 player board
Fixed
- Reject blank serial numbers
- Automatically disable battery optimizations on supported devices
2.10.1 - 2020-02-26
Fixed
- Serial number couldn't be read on Sharp, failing first run (since 2.10.0)
- Improve SICP reliability after app start on Philips, BenQ, and Sharp
- Support installing Google WebView v75+
- Visual improvements in PDF viewer
- Support hiding DEMO watermark on unsupported devices
- Disable video prepare on Philips QL (hardware limitation)
- Support setting brightness on Philips QL
- Report correct firmware version on Philips QL
3.0.1 - 2020-02-09
Fixed
- Fix SICP commands on BenQ, Philips, and Panasonic
3.0.0 - 2020-02-08
Added
- Support Philips 10BDL4151T tablet and Philips CRD50 OPS
Fixed
- Everything from version 2.10.0
- Serial number couldn't be read on Sharp, failing first run (since 3.0.0-beta5)
- Safely handle deprovisioning
2.10.0 - 2020-01-23
Added
- In-app browser now supports viewing PDF files (requires a recent version of WebView)
- Support Philips 10BDL4151T tablet and Philips CRD50 OPS
Fixed
- Report correct serial number, firmware version, and precise model number on Sharp
- Reporting success of
ResizeDevice
action now works (really, this time) - Reset system-wide PIN, if possible
3.0.0-beta5 - 2020-01-08
Removed
- Service socket no longer supports API v1
- Service socket no longer supports Socket.IO protocol
Added
- Support signageOS Open subscription with sideloaded applet
- In-app browser now supports viewing PDF files (requires a recent version of WebView)
- Support video playback behind HTML content
Fixed
- Report correct serial number and precise model number on Sharp
- Everything from versions 2.9.0-2.9.2
2.9.2 - 2019-12-11
Fixed
- Reporting success of
ResizeDevice
action now works - MBX will no longer reboot automatically on screen off after 6+ hours of uptime
2.9.1 - 2019-11-28
Fixed
- Critical: "Delete file" and other commands should no longer fail (since 2.9.0)
- Browser ACL no longer matches the exact string automatically (use
^
and$
)
2.9.0 - 2019-11-28
Added
- Preliminary support for Shuttle NS02 devices
Fixed
- Disabling native timers now works on Philips TVs
- Guard against Path Traversal Vulnerability
- Proprietary timers weren't properly applied after reboot
- Setting time is now performed despite enabled auto-time in Android settings
- Setting time now works on rooted Android 4.4
- Video player performs better over long periods of time (fixed memory leak)
2.8.0 - 2019-09-11
Added
- Preliminary support for Realtek Kylin 32-bit device
Fixed
- Fixed volume and brightness setting on Philips TVs
- Fixed volume and brightness reporting in JS
- Recreate activity only if its size changed due to orientation change
3.0.0-beta4 - 2019-09-11
Added
- Preliminary support for Realtek Kylin 32-bit device
Fixed
- Recreate activity only if its size changed due to orientation change
3.0.0-beta3 - 2019-07-30
Fixed
- Included all features and fixes from 2.7.1-2.7.2
2.7.2 - 2019-07-29
Fixed
- Fixed potential hang-up during startup on rooted devices (such as Giada)
- Non-zero values don't set zero volume anymore (plain Android volume)
- Resetting reported volume doesn't result in decreased volume (plain Android volume)
- Support updating pre-installed
com.android.webview
package - Support updating
com.google.android.webview
package on x64 devices
2.7.1 - 2019-06-28
Fixed
- Reboot on Giada with enabled kiosk mode will now work
- Allow XHR to content uris (since 2.6.1, PDF.js may crash when loading images until WebView 71+)
- Enable video tag autoplay
3.0.0-beta2 - 2019-06-07
Added
- Implemented read file as text API in JS
Fixed
- Included all features and fixes from 2.6.1-2.7.0
- Implemented get/set brightness API in JS
- Implemented get/set volume API in JS
- Implemented power on/off API in JS
- Implemented battery info API in JS
- Implemented set logging enabled API in JS
- Implemented set orientation API in JS
- Implemented set time/zone API in JS
- Implemented package install API in JS
- Implemented app upgrade API in JS
- Implemented firmware upgrade API in JS
- Implemented screenshot API in JS
2.7.0 - 2019-06-07
Added
- All sockets can now use WebSockets for communication with server
Fixed
- Fixed video playback issues on Giada
- Preliminary support for Alps Pegasus Ultra-stretch
- Handle cases when video completes before registering callbacks
- Fixed installing CA certs on some devices running Android 4
- Faster screenshots on Philips 24BDL4151T (requires OTA Installer 1.5.0)
2.6.3 - 2019-05-21
Fixed
- Fixed taking screenshots on Android 5+ (since 2.6.0)
2.6.2 - 2019-05-17
Fixed
- Correctly report device time
- Support reporting more network info (IP address, network mask, gateway, DNS)
2.6.1 - 2019-05-10
Fixed
- App will no longer stop working in some cases when using PDF.js
- Safer checks if the device is a supported Philips device
- Set Debug API can be used to disable Android logging at runtime
3.0.0-beta1 - 2019-05-02
Fixed
- Support setting Android PIN on more devices (without a companion app)
- Included all features and fixes from 2.6.0
2.6.0 - 2019-05-02
Added
- Support for Philips 24BDL4151T
Fixed
- Auto-grant runtime permissions where available
- Compress screenshots on client before sending to server - save bandwidth, ensure acceptance
- CA certificate installing available on more platforms
- Bundled ISRG Root X1 CA certificate to future-proof support for Let's Encrypt
- Ethernet reset should longer need a companion app on BenQ
- More reliable screenshot delivery on Philips
3.0.0-alpha1 - 2019-03-25
Changed
- Sockets now use V2 API for communication with server - on-premise customers will need updated server app
Added
-
Enable applets to get file/content uids (https://docs.signageos.io/api/sos-applet-api/#List_all_files)
-
Enable applets to delete files/contents (https://docs.signageos.io/api/sos-applet-api/#Delete_file)
-
Enable applets to verify file checksum (https://docs.signageos.io/api/sos-applet-api/#Checksum_file_md5)
-
Support for ELO I-Series 2.0 for Android (https://www.elotouch.com/touchscreen-signage.html)
- File System API supports writeFile (text (string) value only)
- File System API supports copyFile
Fixed
- Philips tablets are now able to set PIN code remotely (matching PIN in Box)
- Android PIN may only be required when kiosk mode is enabled (i.e. control is disabled)
2.5.7 - 2019-03-25
Fixed
- Screenshot reporting works again on Giada
2.5.6 - 2019-03-18
Fixed
- Application package is now significantly smaller
- App should start displaying content faster on BenQ
2.5.5 - 2019-02-26
Fixed
- No more crash loop when disabling auto-time (Philips, since 2.5.3)
2.5.4 - 2019-02-25 [YANKED]
Fixed
- Fixed incorrect video orientation and position after start-up on some devices
- Better time synchronization on start-up on BenQ
2.5.3 - 2019-02-21 [YANKED]
Fixed
- Backup reboot feature is now implemented natively and is available even with suspended content
- Android auto-time is automatically disabled (except Philips) in favor of alternative methods
- NTP server is checked every 1 hour
- Reverted NTP server to
time.google.com
2.5.2 - 2019-02-01
Fixed
Fetch time from NTP server on BenQ and Sharp every 1 hour- Pre-confirm fullscreen mode will not cause a reboot on TVs
- Switch NTP server to
pool.ntp.org
2.5.1 - 2019-01-29
Fixed
- Fixed potential crash loop when boot process takes longer than 60 seconds
- Always set precise time from NTP server even if auto-time is enabled
2.5.0 - 2019-01-11 [YANKED]
Added
- Support for Philips Q-Line
- Support for Giada DN72
- Support for FrameXX HOME131
Fixed
- Don't report invalid screenshots
- Support OTA updates on more devices
- Pre-confirm fullscreen mode (this causes a reboot on non-TV Android 4 when first installed)
2.4.8 - 2018-12-19 [YANKED]
Fixed
- Content and timers should start after system clock is properly synchronized on BenQ and MBX
- BenQ default launcher should no longer show up after boot for perceptible amount of time
- signageOS now sets itself as "Custom App" on Philips - previously this had to be done manually
- Fixed media access on WebView M63+
- Optimized service connection
- MBX will no longer restart app immediately after reboot (since 2.3.0)
2.4.7 - 2018-12-11
Fixed
- Socket connection in WebView is more reliable
- signageOS app sets itself as launcher, this will no longer cause a reboot after each app update
2.4.6 - 2018-12-05
Fixed
- When there are multiple applet timings, the next applet is pre-loaded correctly and allows to preload static assets and setup the environment
- Native debugging control now works
2.4.5 - 2018-11-23
Fixed
- BenQ can reset the Ethernet adapter using OTA Installer 1.4.1
- BenQ, Lenovo, Panasonic and Technovare should no longer require a companion app to install firmware updates
- More reliable timer event processing and scheduling
2.4.4 - 2018-11-19 [YANKED]
Fixed
BenQ, Lenovo, Panasonic and Technovare should no longer require a companion app to install firmware updates
2.4.3 - 2018-11-17 [YANKED]
Fixed
- Regression when determining device ready state
2.4.2 - 2018-11-15 [YANKED]
Fixed
- Allow access to downloaded files from JavaScript
Native debugging control now works- Fix video stuttering on Philips P-Line (requires OTA Installer 1.2.0+)
- Lenovo now correctly sets display off after reboot
- Package install should now correctly report errors
- Ethernet adapter resets when there should be a connection but isn't
- Brightness setting on Philips DL & PL now works as expected
- Brightness settings take effect immediately
- Fixed simultaneous downloading of the same file from applets
2.4.1 - 2018-09-10
Fixed
- Correctly enable app components after resolving a setup error
- Correctly report
BRAND
instead ofBOARD
2.4.0 - 2018-09-06 [YANKED]
Added
- Support for Philips P line and D line
- Demo Mode on unsupported devices
- Locally stored applets can now request camera and microphone access
Fixed
- Improved package install result reporting
- signageOS app sets itself as launcher on MBX (this may cause a reboot after first run and each app update)
- MBX now correctly sets display off after reboot
- Restart app after installing Google WebView for the first time
- Clear old app update files from disk cache when signageOS starts
- Disable firmware update prompts on BenQ
- Setup error resolution dialog does not loop anymore
2.3.0 - 2018-08-01 [YANKED]
Added
- Stable: Support for Sharp PN line
- Remote firmware update on Sharp
- Remote firmware update on BenQ, Lenovo, Panasonic and Technovare OPS for NEC using a companion app
Fixed
- Enabled support for TLSv1.2 on Android 4, dropped support for older protocols
- Faster applet switching
- Reliable handling of postponed actions
- Scheduled reboot will no longer cause boot loops on BenQ
- MBX now supports automatic time from network
2.2.0 - 2018-07-12 [YANKED]
Added
- Scheduled power actions: app restart, reboot, display ON/OFF
- MBX now supports setting display orientation remotely
2.1.0 - 2018-07-12 [YANKED]
Added
Experimental: Support for Sharp PN line - content, volume, brightness, restart, reboot, display ON/OFF, proprietary and emulated native timers
Fixed
- Registration of new devices broken in version 2.0.0.
2.0.0 - 2018-06-13 [YANKED]
Added
- Changelog file containing all changes in current project.
- Report firmware version to server.
Experimental: Basic support for Sharp PN line - content, volume, brightness, restart, reboot. No backlight or standby settings.- Support reverse portrait display orientation.
- 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
- 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
- MBX now plays first video with correct aspect ratio.
- Deployment on MBX doesn't require manually turning on Wi-Fi adapter anymore. It's done automatically (this can take up to 10 seconds).
- Ensure that soft keyboard is hidden on BenQ when the app starts.
- Will not crash on devices with time set before May 1, 2018.
- Setting portrait orientation now results in one stable orientation on devices without an accelerometer.
- Scheduled power off and power on BenQ now works correctly.