Skip to content

Releases: mouldybread/DisplayLauncher

v0.3.3

Choose a tag to compare

@github-actions github-actions released this 23 Aug 03:51

Display Launcher v0.3.3

🚀 Reliability & Boot Enhancements

  • BootReceiver Self-Healing Mechanism: Added a self-healing check in LauncherService.onCreate() to combat aggressive Smart TV/Display OS power management. Certain Android implementations (such as Hisense/Android TV sets) silently place background broadcast receivers into disabledComponents after reboots, breaking the BOOT_COMPLETED broadcast. The service now checks PackageManager on startup and dynamically forces BootReceiver back to ENABLED, guaranteeing that the launcher daemon and local web server survive cold reboots and hard power cuts.

    • Ported from adb-auto-enable PR #17 (Credit: @andornaut).
  • Automated Web Server Watchdog: Introduced a background monitoring handler that checks the local web server every 60 seconds. If the server drops offline or encounters an unexpected exception, it is automatically re-initialized without needing manual intervention.

  • Enhanced Background Service Persistence: Strengthened onTaskRemoved handling using system AlarmManager fallbacks, ensuring the background service immediately revives itself if the launcher task is cleared from memory by the OS.

  • Android 13+ Notification Resilience: Improved foreground service handling when running on modern Android versions. If notification permissions are suppressed or denied, the service now continues executing safely in the background without triggering system crash timeouts.

Full Changelog: v0.3.2...v0.3.3

v0.3.2

Choose a tag to compare

@github-actions github-actions released this 11 Nov 14:34

Update ci/cd to output signed APKs

Full Changelog: v0.3.1...v0.3.2

Release v0.3.1: Intent Extras Support & Stream Viewer Integration

Choose a tag to compare

@mouldybread mouldybread released this 23 Oct 20:43

🎯 Major Features

Intent Extras Support

  • Pass custom parameters to apps via extra_string or individual extra_* parameters
  • Enable deep integration with apps like Android Stream Viewer
  • Launch apps with specific configurations (e.g., specific camera selection)
  • Support for both comma-separated format and individual parameters

Stream Viewer Integration

  • Launch Stream Viewer directly to a specific camera
  • Perfect for automated camera switching via Home Assistant
  • Complete ADB-free camera control workflow

✨ Enhancements

  • Enhanced documentation with intent extras examples
  • Complete Home Assistant integration guide with camera automation examples
  • Added foreword explaining the ADB-free ecosystem vision
  • Updated API documentation with intent extras format and usage

📚 Documentation Updates

  • API Reference updated with complete intent extras documentation
  • Home Assistant guide with camera rotation examples
  • Intent format specification (comma-separated and individual parameters)
  • Troubleshooting section for intent-based launches

🔗 ADB-Free Ecosystem

This release is part of a three-app ecosystem designed to eliminate ADB dependency:

💡 Usage Examples

Launch camera app with specific camera:

// Comma-separated format
POST /api/launch-intent
{
"packageName": "com.tpn.streamviewer",
"action": "android.intent.action.MAIN",
"data": "",
"extra_string": "camera_name:FRONTDOOR"
}

// Individual parameter format
{
"packageName": "com.tpn.streamviewer",
"action": "android.intent.action.MAIN",
"extra_camera_name": "FRONTDOOR"
}

Launch YouTube video:

{
"packageName": "com.google.android.youtube",
"action": "android.intent.action.VIEW",
"data": "vnd.youtube://dQw4w9WgXcQ"
}

Launch app with multiple parameters:

{
"packageName": "com.example.app",
"action": "android.intent.action.MAIN",
"extra_string": "mode:fullscreen,theme:dark"
}

📦 Installation

Download app-release.apk from the assets below.

Requirements:

  • Android 7.0+ (API 24+)
  • Device must be set as default launcher
  • Network access for REST API control

🔄 Upgrading

This is a minor update with no breaking changes. Simply install over the existing version.

Display Launcher v0.3 - APK Management Update

Choose a tag to compare

@mouldybread mouldybread released this 18 Oct 15:06

🎯 What's New

APK Installation via Web UI

  • Upload APK files directly through the web interface
  • Install apps remotely without needing ADB access
  • Automatic cleanup of temporary files after installation

App Uninstall Support

  • Uninstall apps directly from the web interface
  • One-click uninstall button for each installed app
  • Confirmation dialogs appear on device for safety

🔧 Improvements

  • Enhanced web UI with install/uninstall controls for each app
  • More reliable app management using dedicated activities
  • Better error handling for install and uninstall operations
  • Improved compatibility across Android versions

🐛 Bug Fixes

  • Fixed context issues preventing uninstall dialogs from appearing
  • Resolved file cleanup after APK installations

📝 Notes

  • Install and uninstall actions require confirmation on the device screen (Android security requirement)
  • APK upload size limited by device storage
  • Requires REQUEST_INSTALL_PACKAGES and REQUEST_DELETE_PACKAGES permissions

⚠️ Security Note

This release adds APK installation capabilities. Only use on trusted networks as there is no authentication (coming in future release).

Display Launcher v0.2 - Intent Support & Home Assistant Integration

Choose a tag to compare

@mouldybread mouldybread released this 18 Oct 14:07

Display Launcher v0.2 - Intent Support & Home Assistant Integration

🎯 What's New

This release adds intent-based launching capabilities and comprehensive Home Assistant integration.

✨ New Features

Intent-Based App Launching

  • New API Endpoint: /api/launch-intent for advanced app launching with Android intents
  • Deep Link Support: Open specific YouTube videos, URLs, or app-specific content
  • Intent Actions: Support for VIEW, MAIN, SEARCH, and custom intent actions
  • Data URIs: Pass data to apps (e.g., vnd.youtube://VIDEO_ID for YouTube)

Home Assistant Integration

  • Complete Integration Guide: New HOME_ASSISTANT.md documentation
  • REST Commands: Pre-configured YAML for easy setup
  • Input Selects: Device and app selection helpers
  • Scripts: Ready-to-use launcher scripts for single or multi-device control
  • Automation Examples: 6+ real-world automation examples included

🔧 Improvements

  • GitHub Actions: Fixed CI/CD workflow to only trigger on published releases
  • Better Error Handling: Improved error messages for intent launching
  • Documentation: Extensive API reference and troubleshooting guide

📦 API Changes

New Endpoint: POST /api/launch-intent

Request:

{
  "packageName": "com.google.android.youtube",
  "action": "android.intent.action.VIEW",
  "data": "vnd.youtube://dQw4w9WgXcQ"
}

Response:

{
  "success": true,
  "message": "App launched successfully with intent"
}

🏠 Home Assistant Examples

Open YouTube Video

service: rest_command.launch_app_with_intent
data:
  device_ip: "192.168.1.101"
  package_name: "com.google.android.youtube"
  action: "android.intent.action.VIEW"
  data: "vnd.youtube://{{ youtube_video_id }}"

Launch App on All Displays

service: script.launch_display_app
data:
  device: "All Devices"
  app: "YouTube (com.google.android.youtube.tv)"

📝 Use Cases

  • Digital Signage: Rotate content based on time of day or events
  • Smart Home: Launch apps when motion detected or doors open
  • Entertainment: Auto-start Netflix when "movie mode" activated
  • Live Streams: Open specific YouTube streams on schedule
  • URL Content: Display web content via browser intents

🚀 Upgrade Instructions

  1. Download the latest APK from this release
  2. Install over existing version (settings preserved)
  3. For Home Assistant users: Follow the HOME_ASSISTANT.md guide
  4. Test intent launching with curl or Home Assistant Developer Tools

📚 Documentation

  • Full Home Assistant Guide: See HOME_ASSISTANT.md
  • API Reference: Included in Home Assistant guide
  • Package Name Finder: Use adb shell pm list packages

🐛 Bug Fixes

  • Fixed GitHub Actions workflow triggering twice on release
  • Corrected release asset upload permissions

⚠️ Known Limitations

  • No HTTPS support (local network only)
  • No authentication (use on trusted networks)
  • System apps hidden by default
  • Requires Android 7.0+

Display Launcher v0.1

Display Launcher v0.1 Pre-release
Pre-release

Choose a tag to compare

@mouldybread mouldybread released this 18 Oct 12:10

Display Launcher v0.1

Initial release of Display Launcher - a headless Android TV launcher with web API control.

Features

  • Web-based API for remote app launching (port 9091)
  • Browser interface for manual control
  • TV remote support with D-pad navigation
  • Triple center-button press to access settings
  • Dark theme optimized for TV displays
  • Persistent background service
  • Support for Android 7.0+

Installation

  1. Download app-debug.apk
  2. Install on your Android TV device
  3. Set as default launcher via ADB: