Skill Level | Area of Focus | Operating System |
---|---|---|
Intermediate | Embedded, Smart Home | Android |
This project attempts to build Android TV on the DragonBoard™ 410c from Arrow Electronics. The main objective was to utilize the Android TV Input Framework, and this was done by running the built-in reference LiveTv App and Sample Input Apps.
The Android TV Input Framework implementation includes the TV Input Manager, which allows the communication between the TV App and the Inputs. The TV Input Framework allows different kind of inputs including External STB, Built-in Tuner Input, HDMI Input etc.
To start, we used the Reference LiveTv App built for ARM64 as a TV App and the Sample Input apk for the TV Input. The Sample Input allows the user to configure the Channels in two different ways:
- Simple Input, which consists of local video files that act as different channels.
- Rich TV Input consists of 4 Channels served from Google Cloud Storage, which are comprised of MP4 Videos, HLS Stream, MPEG - DASH Stream.
We have also implemented the Custom Launcher to provide the look and feel of the TV Launcher and integrated the IR Sensor onto DragonBoard 410c for controlling TV Activities with Universal Remote.
Dependencies:
An Exo player is built and installed in order to play the videos.
Further Work in Progress:
Fine tuning the performance and built-in tuner implementation.
Objective
It is very interesting to know that we can watch Live TV on a small form factor device like DragonBoard 410c. Also, TV Input Framework is a Robust framework which provides many features with multiple Input methods.
Setup for Android TV with the DragonBoard™ 410c
Build / Assembly Instructions
Materials Required / Parts List / Tools
Source Code / Source Examples / Application Executable
Additional Resources
Build / Assembly
- Download the latest Source Code for DragonBoard 410c
- Add the below two lines in the device/qcom/msm8916_64.mk file PRODUCT_CHARACTERISTICS := tv
- Build your Android DragonBoard 410c source code on Linux Platform
- Download and Build Live Tv app for arm64 tapas LiveTv arm64
- Build the Sample Input Apk and its dependencies (Exo player) using the Gradle scripts: mkdir -p apps/
- Building apps and dependencies git clone https://github.com/googlesamples/androidtv-sample-inputs
$(call inherit-product,
device/google/atv/products/atv_base.mk)
make LiveTv
cp -r out/target/product/generic_arm64/system//priv-app/LiveTv/ /system/priv-app/
rm -rf out/target
cd –
cd apps/
export ANDROID_HOME=
export JAVA_HOME=
echo "count=0" >
/home/buildslave/.android/repositories.cfg
rm -rf ExoPlayer androidtv-sample-inputs
cd androidtv-sample-inputs/
sed -i "s/23.0.3/25.0.2/g" app/build.gradle
library/build.gradle ./gradlew assembleDebug cp
app/build/outputs/apk/app-debug.apk
../out/target/product/msm8916_64/data/app/
cd -
git clone https://github.com/google/ExoPlayer
cd ExoPlayer
sed -i "s/23.0.3/25.0.2/g" build.gradle
./gradlew assembleDebug
cp ./demo/buildout/outputs/apk/demo-withExtensions-debug.apk
../out/target/product/msm8916_64/data/app/
cd -
git clone https://github.com/GlobalEdgeSoftware/AndroidTV/tree/atv
cd TvLauncher
sed -i "s/23.0.3/25.0.2/g" build.gradle
./gradlew assembleDebug
cp app/build/outputs/apk/app-debug.apk
../out/target/product/msm8916_64/data/app/
cd -
Prepare Image Again
Channel Sources on Android TV
Rich TV Input & The Durian Open Movie Project
![]() | ![]() |
Live TV Applications Screenshots
![]() | ![]() |