ADB (Android Debug Bridge) is a command-line tool that allows you to communicate with Android devices. It is bundled with Android Studio or available as standalone download.
The steps to enable developer mode might vary depending on your device and Android version. If the instructions below do not match your device, please search online for specific instructions for your device model.
- Go to
Settingson your Android TV. - Navigate to
Device Preferences>About. - Scroll down to
Buildand click it repeatedly (about 7 times) until you see a message saying "You are now a developer!" - Go back to
Device Preferencesand you will now see a new option calledDeveloper options. - Open
Developer optionsand enableUSB DebuggingandNetwork Debugging.
- Go to
Settingson your Fire TV. - Navigate to
My Fire TV>Aboutand click onBuildrepeatedly (about 7 times) until Developer options are enabled. - Go back to
My Fire TVand openDeveloper options. - Enable
ADB DebuggingandApps from Unknown Sources.
- Find the IP address of your Android TV. Go to
Settings>Network & Internetand select your network to see the IP address. - On your computer, open a terminal or command prompt.
- Connect to the Android TV using the IP address:
adb connect <ANDROID_TV_IP_ADDRESS>
- You will see a prompt on your Android TV asking for permission to connect. Allow it.
-
Ensure your device is connected via ADB:
adb devices
Your device should be listed.
-
Install the APK file:
adb install <PATH_TO_APK_FILE>
-
Ensure your device is connected via ADB:
adb devices
Your device should be listed.
-
Use
adb logcatto read all logs from your device:adb logcat
If you're testing changes from a specific pull request (PR), you can download the APK generated by the build workflow. You'll be able to sideload this along with the stable version of the app. Follow these steps to download and install the APK:
-
Navigate to the Pull Request:
- Go to the Jellyfin for Android TV GitHub repository.
- Find the pull request that you want to test under the "Pull requests" tab. Click on the relevant PR to open it.
-
Open the Build Workflow:
- In the PR page, scroll down to the "Checks" section. This section contains details of the automated tests and build workflows that run for the pull request.
- If the section is collapsed click on "Show all checks".
- Look for the workflow labeled "App / Build / Build." Click on "Details" next to the successful build.
-
Locate the APK Artifact:
- In the workflow page, go to the "Summary" tab.
- Scroll down to the "Artifacts" section. This section lists the files generated by the build, including the APKs.
- You should see an artifact named
build-artifacts. Click on the artifact to download it.
-
Unpack the ZIP file:
- Unpack the
jellyfin-androidtv-v0.0.0-dev.1-debug.apkfile from the downloaded ZIP file
- Unpack the
-
Install the APK on Your Android TV:
- Follow the instructions above to install the debug version of the app.
Still not working with 0.19.4 :(
Here are the logs when playing liveTV :
11-17 20:40:38.293 10197 10197 I NavigationRepositoryImpl: Navigating to Fragment(fragment=class org.jellyfin.androidtv.ui.playback.CustomPlaybackOverlayFragment (Kotlin reflection is not available), arguments=Bundle[{Position=0}]) (via navigate function) 11-17 20:40:38.783 663 12041 I MediaFocusControl: requestAudioFocus() from uid/pid 10125/10197 AA=USAGE_MEDIA/CONTENT_TYPE_MUSIC clientId=android.media.AudioManager@7998951org.jellyfin.androidtv.ui.playback.CustomPlaybackOverlayFragment$6@9dc55b6 callingPack=org.jellyfin.androidtv req=1 flags=0x0 sdk=36 11-17 20:40:57.274 663 1758 W NotificationService: Toast already killed. pkg=org.jellyfin.androidtv token=android.os.BinderProxy@83d3043 11-17 20:41:01.394 663 1758 W NotificationService: Toast already killed. pkg=org.jellyfin.androidtv token=android.os.BinderProxy@eb80dd8 11-17 20:41:09.395 663 663 D MediaSessionService: Media button session is changed to org.jellyfin.androidtv/androidx.media3.session.id.1 (userId=0) 11-17 20:41:09.407 7441 7441 D WargMsAppMgr: A new media session detected: org.jellyfin.androidtv 11-17 20:41:09.476 1280 1280 I MediaPlayerList: onMediaKeyEventSessionChanged: token=org.jellyfin.androidtv 11-17 20:41:09.517 1280 1280 D MediaPlayerList: setActivePlayer(): setting player to org.jellyfin.androidtv 11-17 20:41:09.568 663 1157 I MediaSessionService: tempAllowlistTargetPkgIfPossible callingPackage:com.google.android.bluetooth targetPackage:org.jellyfin.androidtv reason:MediaSessionRecord:android.support.v4.media.session.command.GET_EXTRA_BINDER [WIU] [FGS] 11-17 20:41:09.606 1280 1280 D MediaPlayerList: onActiveSessionsChanged: controller: org.jellyfin.androidtv