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
2.7.4 - 2024-09-09
Fixed
- 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
2.7.3 - 2024-09-04
Fixed
- Display ON now works on Android 11 for TV and newer
2.7.2 - 2024-09-04
Fixed
- Critical: Fix alarm-related crash on Android 13 and newer (since 2.7.0)
2.7.1 - 2024-09-04
Fixed
- Critical: Correctly bind app process lifecycles together (since 2.5.0)
2.6.4 - 2024-09-04
Fixed
- Critical: Correctly bind app process lifecycles together (since 2.5.0)
2.5.4 - 2024-09-04
Fixed
- Critical: Correctly bind app process lifecycles together (since 2.5.0)
2.7.0 - 2024-09-03
Added
- Support Philips 10BDL3351T
- Install APKs from arbitrary URLs
- Allow cleartext traffic developer option for downloading files over HTTP during development
- 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
- Read Wi-Fi MAC address on more devices running Android 11+
2.6.3 - 2024-08-02
Fixed
- Fix in-app inter-process permission checks (since 4.4.0)
- Setup should no longer get stuck on Installing Device Management... on supported devices
2.6.2 - 2024-07-12
Fixed
- SELinux checks should no longer get stuck on some devices
- Sharp: Reject placeholder serial number 8A012345K
2.6.1 - 2024-07-10
Fixed
- 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
2.6.0 - 2024-06-19
Added
-
Support Auto-verification from Android Provisioning
-
Telemetry: Report actual display power
2.5.3 - 2024-06-19
Fixed
- Report battery status when device isn't plugged in (since 2.3.1)
2.5.2 - 2024-06-19
Fixed
- Only deprovision verified devices; don't interfere with setup
- Correctly load developer options from QR code/NFC provisioning (since 2.3.0)
2.5.1 - 2024-06-18
Fixed
- Additionally load developer options from all files matching
sos.dev.
+.jar
file name on a flash drive - Fix Wi-Fi MAC address reporting in some cases (since 2.3.0)
- Correctly report proprietary timer settings (since 2.4.0)
2.5.0 - 2024-05-13
Added
- 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 a11y service compatibility with Android 7+ devices
- Setup wizard: Ask for a11y service permission on Android 4.4–6 devices (since 2.0.1)
- Setup wizard: Run in lock task mode on Android 9+ to avoid interrupting automated flows
- Improve high-priority privileged launcher recognition (since 2.3.3)
- Expose
authHash
in API - Target Android 11
- hisense BM66AE: Use native portrait mode
- Correctly report Wi-Fi on most devices (since 2.3.0)
- Philips, BenQ SL: Backlight no longer remains off after a system-triggered hard reboot following a display power command or timer event
- Remotely installed packages are started automatically, once again (since 2.5.0-alpha.1)
2.4.1 - 2024-03-21
Fixed
- Critical: Correctly report app upgrade (since 2.4.0)
2.4.0 - 2024-03-14
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
- Experimental Remote Desktop
Fixed
- Update EULA to version 3.0
- Setup wizard should no longer get stuck on Starting... in certain conditions
- Correctly report proprietary timer settings
- 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 2.0.0)
- Pre-install Google Chrome M85 as WebView provider if Android System WebView by Google LLC M85 can't be pre-installed on Android 7+
2.3.10 - 2024-01-09
Fixed
- Fix crash on Sharp PN-B series regarding Ethernet Restart (since 2.3.0)
2.3.9 - 2023-12-14
Fixed
- Critical: App no longer gets stuck on "Unsupported device" error after deprovisioning
- Work around possible crashes on obscure devices while deprovisioning
2.3.8 - 2023-12-05
Fixed
- App no longer crashes on Android 12 when granting permissions during setup
2.3.7 - 2023-11-15
Fixed
- Improve startup time
- Support Proprietary power timer policy (since 2.3.0)
2.3.6 - 2023-11-07
Fixed
- Fallback Android TV launcher shows Notifications, Settings, and clock in the top right corner
2.3.5 - 2023-11-03
Fixed
- Taking full screenshots using a11y framework on API 30 now works again (since 2.3.1)
- Improved process management during setup
2.3.4 - 2023-10-31
Fixed
- Fix potential deadlock affecting Sony Bravia BPK provisioning (since 2.3.1)
- Avoid potential DoS attack denying cloud connection by starting exported components
2.3.3 - 2023-10-30
Fixed
- IR lock no longer gets stuck when enabled on Sony Bravia (since 2.3.1)
- Attempt to disable preinstalled high-priority Android TV launcher (so other apps can become the launcher)
2.3.2 - 2023-10-29
Fixed
- Background app setup doesn't end prematurely (since 2.3.1)
- Correctly report service connection status
2.3.1 - 2023-10-26
Fixed
- Correctly provision developer options from flash drive
- Disable battery optimizations or disable Idle Mode
- Devices without a battery no longer report battery stats
2.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)
- Support Proprietary power timer
Fixed
- Remove dependency on
BatteryManager
- Setup: Improve ADB connection handling
- 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
2.2.3 - 2023-06-27
Fixed
- Setup process is now slightly faster
2.2.2 - 2023-06-26
Fixed
- Setup process is now more resilient to
lowmemorykiller
system daemon
2.2.1 - 2023-06-26
Fixed
- Vestel: Disable automatic system update dialog
2.2.0 - 2023-06-23
Added
- Expose public key for ADB authentication for automation
Fixed
- Allow
android.permission.SYSTEM_ALERT_WINDOW
for remotely installed apps on Android 10+ - ADB: Confirmation dialog doesn't flicker
- ADB: Confirmation dialog is only shown on subsequent attempts
2.1.0 - 2023-05-10
Added
- Support hisense BM66AE
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
- Panasonic: Support IR lock
2.0.1 - 2023-04-20
Fixed
- Report correct model to cloud (since 2.0.0)
- Improve setup experience on some TVs
- Gracefully handle missing WebView package
- Deprovisioning: Coerce volume between 10 % and 50 %
- Deprovisioning: Reset screen orientation
- Deprovisioning: Clear app cache
- Status: Added option to Rerun Setup Wizard under new Troubleshooting dialog
- Public API: Auto Start SDK works again (since 2.0.0)
2.0.0 - 2023-03-21
Added
- 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
- Report management capabilities
- Experimental: Support separate frontend app
- Experimental: Allow running on unsupported devices
- Support Panasonic SQE2
Changed
- Implement interactive step-by-step setup wizard ensuring proper configuration after first run
Fixed
- Correctly recognize Ethernet connection on Philips
- Vestel: Report correct firmware version
1.7.1 - 2023-03-10
Fixed
- Gracefully handle if we can't toggle Do Not Disturb mode along volume
- Don't ask to enable Accessibility Service on platforms that don't support it
- Philips: Reliably check external storage lock
- Support Elo I-Series 4 Value
1.7.0 - 2022-11-02
Added
- Report device brand separately
- Report OS version
- Support Elo I-Series 4
- Support Elo Backpack 4 Standard and Value
- Support QR code and NFC provisioning on Android 12
Fixed
- Using certain device management APIs on BenQ SL2K no longer restarts the app
Security
- Update
OkHostnameVerifier
, fix CVE-2021-0341 - Update Google Play services SDK, fix CVE-2022-1799
- Update Guava, fix CVE-220-8908
1.6.1 - 2022-09-05
Fixed
- Remove surrounding quotation marks from reported Wi-Fi SSID
- Check native library compatibility before installing packages
1.6.0 - 2022-07-04
Added
- Support Vestel PN series
Fixed
- Fix false negative package install results
- Fix display off using root on Android 4.4
- Fix setting time using root
1.5.1 - 2022-05-04
Fixed
- Fix potential crash when fetching time from NTP server (since 1.5.0)
- Display on/off/timer work more reliably on Philips BDL4051D
- Fix Device Owner feature check on Sony Bravia
1.5.0 - 2022-03-17
Added
- BenQ, Philips: Restore display power state after a power outage
- Automatically attempt to update to at least WebView 85.0.4183.120
Fixed
- 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
- Sharp PN-HM1 should no loner get stuck on black screen after display ON command
1.4.1 - 2022-02-03
Fixed
- Open status page after provisioning
1.4.0 - 2022-02-02
Added
- Support Philips BDL3550Q (Android 8.0)
- Support Philips BDL4550D (Android 8.0)
- Support Philips BDL4551T (Android 8.1)
- Support ELO I-Touch 3.0 (Android 8.1 AOSP)
- Support ProDVX APPC-10X (Android 8.1)
- Support Sony Bravia (Android 10, requires advanced setup)
- Support arbitrary phones (Android 7+, requires advanced setup)
- Allow taking screenshots using Media Projection API (requires advanced setup)
- Report screen resolution
- Report firmware type
- Report temperature
- Device Policy
- Bundle support for recent TLS cipher suites
- Install packages and firmware updates from absolute URLs
- Support firmware update on Android 10+ with Device Owner
- Re-apply last set display power after reboot
Fixed
- Report correct serial number on BenQ
- Throttle installed package reports
- Correctly reschedule timer events
- Report package install failure immediately on BenQ SL2K
- Automatically grant runtime permissions for installed packages on more devices
- Send all types of telemetry reports on app start
- Improved telemetry stability
- Improved platform socket stability
- Report framerate
- Support firmware update on BenQ SL2K
- Set orientation on Philips tablets
- Read temperature on more devices
- Report correct screen resolution on Android 4.4 and 5.x
- Display on/off should be more reliable on Philips BDL3550Q and BDL4550D
- Schedule app restart
1.3.0 - 2020-12-11
Added
- Support Sharp PN-HM1 series.
- Support setting NTP server.
Fixed
- Philips xxBDL4051D should no longer get stuck during reboot.
- Screen will no longer be forced on if there are no proprietary timer rules set.
- Setting brightness should use correct range on tablets.
- Disable Smart Power on Philips TVs before setting brightness.
- Report last charging time on Android 6+.
- Support Ethernet restart on BenQ SL2K.
- Don't attempt Ethernet restart when using static IP.
1.2.2 - 2020-08-25
Fixed
- Temporarily enable Wi-Fi adapter to get WLAN MAC address, if needed.
1.2.1 - 2020-08-21
Fixed
- Support
rk3399_mid
devices when running as Device Owner.
1.2.0 - 2020-08-19
Added
- Support BenQ SL2K (Android 8) series.
- Support Philips DL (Android 7) series.
- Support recent SSL ciphers via unbundled signageOS Conscrypt APK.
- Expose preferred kiosk state through a
ContentProvider
(requires runtime permission or shell). - Support pre-verification for Open subscription type.
- Report more info about OS to server.
- Report installed packages to server.
- Allow Lock Task Mode for all apps installed via Cloud Control when running as Device Owner app.
- Start apps after installation.
- Support uninstalling Android apps via remote action.
Fixed
- Bundle some recent root CA certificates.
- Support setting brightness on Philips QL.
- Correctly report battery status to server.
- Handle corner cases in interactive package installer.
- Persist preferred kiosk state.
- Sharp will not change monitor button lock anymore (lock mode may change to accommodate RC lock).
- Fix Ethernet restart on BenQ SL2K series.
- Disable system package verifier for silent package installs on some devices.
- Grant runtime permissions to apps installed via Cloud Control.
1.1.0 - 2020-02-07
Added
- Support BenQ SL series.
- Support Sharp PN series.
- Support Philips DL (Android 4), PL, QL, TL (10" Android 4, 24") series.
- Support Open subscription type.
- Support launching Android apps via remote action.
- Support controlling screen orientation.
- Automatically install required system companion apps.
Fixed
- Unrecognized power commands are no longer treated as failed.
- UpdateDeviceTimeSettings command now reports success correctly.
- SetDeviceVolume and SyncRemoteControlSettings now report failure correctly.
- Backup restart power action is confirmed to server.
- Socket config URL is never changed at runtime.
- App doesn't crash when restarting on Android 9+.
- Various fixes in service socket connection.
- Re-compress large screenshots before upload.
1.0.2 - 2019-10-01
Fixed
- Restart Cloud Control on uncaught exception.
- Prevent potential error when web socket fails to connect.
1.0.1 - 2019-10-01
Fixed
- Added missing ping to server every 30 seconds.
- Unlock RC and ensure power on after deprovisioning.
1.0.0 - 2019-09-20
This is the initial release of the Cloud Control app.
Added
- Device registration & verification.
- Remote device management.
- Socket health checking and Backup restart
- Status screen.
- Restart Ethernet if necessary.