Skip to content

sudoaanish/pakflix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PAKFLIX for Android TV & Fire TV

Release Platform License

PAKFLIX is a Jellyfin Android TV fork customized for Pakflix. It keeps the upstream Android TV base and adds Pakflix branding, Fire TV and Android TV sideload install support, GitHub Releases based in-app updates, and release signing checks.


Key Features

  • Android TV / Fire TV UI: Leanback-based TV navigation with Compose-backed screens where the upstream app uses them.
  • Media3 Playback: Jellyfin playback modules on Media3 ExoPlayer, with HLS, okhttp datasource, ffmpeg decoder, and subtitle support.
  • Playback Info Diagnostics: In-player Playback Info report for Direct Play, Direct Stream, Transcode status, video/audio/subtitle stream details, safe transcode reason data when available, and logcat diagnostics via PAKFLIX_PLAYBACK_DIAGNOSTICS.
  • GitHub Releases Updater: In-app update checks against GitHub Releases, versioned APK asset selection, release notes in the prompt, and APK package/version/signer validation before installer launch.
  • Pakflix Branding: Pakflix app name, launcher banner, icon assets, package ID, and release/debug package separation.
  • Server Session Persistence: Stored server/session state for reconnecting without re-entering credentials.
  • TV Home Integration: Android TV channels, Watch Next integration, and launcher metadata inherited from the Jellyfin Android TV base.
  • Pakflix Theme: Dark green/obsidian resource palette with Pakflix launcher and card/focus styling.

Architecture & Technology Stack

  • Language: Kotlin 2.4.0
  • Build: Android Gradle Plugin 9.2.1, Gradle 9.6.1, JDK 17
  • Android Target: minSdk 23, targetSdk 36, compileSdk 36
  • UI: AndroidX Leanback, AppCompat Leanback theme, ViewBinding, and AndroidX Compose
  • Playback: Jellyfin playback modules with AndroidX Media3 ExoPlayer, Session, HLS, okhttp datasource, ffmpeg decoder, and libass subtitles
  • API Client: Jellyfin Kotlin SDK
  • Dependency Injection: Koin
  • Async / State: Kotlin Coroutines, StateFlow, AndroidX Lifecycle
  • Background Work: AndroidX WorkManager
  • Images: Coil 3
  • Serialization: kotlinx.serialization JSON
  • Logging / Crash Reporting: Timber, SLF4J Timber bridge, ACRA
  • Release Pipeline: GitHub Actions release builds with Gradle caching, Pakflix release signing, APK verification, and GitHub Release asset upload

Playback Diagnostics

Pakflix v0.2.8 adds a Playback Info button to the TV playback controls. The report helps identify whether an item is playing through Direct Play, Direct Stream, or server transcoding, and shows available video, audio, subtitle, and session details.

When available, the report can show safe transcode metadata such as TranscodeReasons and subtitle method without displaying full stream URLs or tokenized query strings. Opening Playback Info also writes a diagnostics block to logcat with the marker:

PAKFLIX_PLAYBACK_DIAGNOSTICS

Installation

Direct Sideload via ADB

Download the latest release APK from GitHub Releases. Release APKs use names like pakflix-v0.3.0-release.apk.

# Connect to your Android TV / Fire TV device over Wi-Fi
adb connect <DEVICE_IP_ADDRESS>:5555

# Install PAKFLIX APK
adb install -r pakflix-v0.3.0-release.apk

# Launch PAKFLIX
adb shell am start -n com.pakflix.tv/org.jellyfin.androidtv.ui.startup.StartupActivity

After the first install, Pakflix can check GitHub Releases from inside the app and offer in-place updates. Release APKs install as com.pakflix.tv; debug APKs install separately as com.pakflix.tv.debug.

Release Signing

Release APKs are signed with the Pakflix release certificate. GitHub Actions verifies the package name, version code, signer fingerprint, and non-debuggable release status before uploading release assets.

Current public release signer SHA-256:

359dde3161d91c47a020d2ed40a2b2a223272ac5cfc23cba8d35636759830c51

This fingerprint is public verification data, not a secret. Do not publish keystore files, passwords, or base64-encoded signing secrets.


Building from Source

Prerequisites

  • JDK 17
  • Android SDK 36 (Android 15 target API)
  • Gradle 8.x+

Build Debug APK

./gradlew :app:assembleDebug

Build Production Release APK

./gradlew :app:assembleRelease

The compiled APKs will be generated in app/build/outputs/apk/.


Author & Maintainer

Maintainer: Aanish Farrukh (@sudoaanish).

License

PAKFLIX is distributed under the terms of the GNU General Public License v2.0, consistent with its upstream Jellyfin Android TV lineage.

About

An Android TV and Fire TV media client for Jellyfin-powered home libraries, focused on a polished 10-foot interface and Fire TV usability.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors