August 5th OS update

:red_exclamation_mark: Important: Starting August 5th 2025, Appstore app submissions must be built using Kepler SDK v0.20 or newer, or the submission will be rejected.

As in the July 29th release, this release has no updates to the installed SDK itself, but there are many OS level improvements and bug fixes.

Key improvements include:

  • Playback: Improved the stream parser implementation for more stable playback, and fixed live video stuttering, and random freezes in encrypted playback. Resolved various subtitle and closed-caption display issues, particularly for DRM content.
  • System stability: Improved device responsiveness and resource management, including proper memory cleanup of interactive components. Fixed service registrar crashes as well as critical issues in logging control system and app switching scenarios.
  • App lifecycle: Implemented early splash screen dismissal to prevent application not responding (ANR) errors, enhanced system update behavior for safe app termination during display power off, and resolved navigation issues related to heads-up display (HUD) interactions.
  • Developer tooling: Enabled inputd-cli automation tools in dev-mode and fixed update request timing issues to improve development workflow and testing capabilities.
  • Thread safety: Implemented mutex lock guards properly to prevent data races in message handling, and resolved race conditions in updated policy management.

This release requires OS 1.1 (201010440450) on your Kepler Fire TV Stick, which is compatible with Kepler. You can check your device software version by navigating to My Fire TV > About.

To validate, run kepler -v in in your terminal to confirm that version 0.20.3207 is returned.

OS improvements and bug fixes

  1. Implemented early splash screen dismissal during an app launch to prevent ANR by meeting 16s frame presentation requirement when using Fast Refresh.

  2. Implemented system update to safely stop apps when the display display disconnected, e.g. HDMI hot plug, TV powered off or TV input change

  3. Enabled inputd-cli automation tools in dev-mode for release builds, allowing developers to write scripts and test app performance through tools such as Flashlight without depending on Appium.

  4. Fixed a crash due to app switching during active playback.

  5. Fixed logging control system crashes.

  6. Fixed live video playback stuttering for local channels in an app by optimizing buffer management where multiple seeks falling outside buffered range caused freezes.

  7. Fixed random freezes during encrypted live video playback in an app by fixing a Shaka Player issue.

  8. Fixed WebSocket connection issues causing page load failures in an app.

  9. Fixed memory retention issue where interactive component’s resources (~30MB graphics memory) weren’t being released after execution completion when running alongside background service.

  10. Fixed Fire TV launcher when pressing the back button. It would crash when pressing back after navigating through HUD options. This was triggered by long-pressing the Home button during playback.

  11. Fixed closed-caption display issues in an app by improving metadata transfer between demuxer and video pipeline for DRM content.

  12. Fixed text alignment issues in an app’s subtitles by respecting screen border spacing.

  13. Fixed subtitle positioning by implementing proper handling of individual cue properties instead of using the first cue’s properties for all.

  14. Fixed red screen issues for flat contents in Shaka mode.

  15. Fixed device sluggishness and service registrar crash by addressing resource management issue.

  16. Fixed an inconsistent app crash issue caused by incorrect stream parser implementation during live playback initialization.

  17. Fixed potential data races in message handling by implementing mutex lock guards during message property construction to ensure thread-safe operations.

  18. Fixed an issue where update requests were incorrectly timing out after 1 hour due to a race condition between updatePolicy and Installer threads. This occurred even when apps were actively running in the foreground and hadn’t reached their specified update-timeout period.

  19. Added troubleshooting articles to improve developer support:

  20. New section in “Explore Kepler Studio” explains how to use Fast Refresh while developing in Kepler Studio.