How to install Android TV on Raspberry Pi (Android 9)

Introduction

Here's how you can install Android TV on Raspberry Pi 3 and 4. It is a fairly straightforward job and can be done by pretty much anyone.

By the end of this article, you'll see that you've changed your Raspberry Pi into a media centre if not a streaming box. Atleast, I use it only for streaming though.

The streaming is certainly isn't the best, although is very usable. You can not only do streaming but also various stuffs like playing games, writing articles (No, I haven't done that yet), keep an eye on your inbox and more. 

Summing it up, you can do everything that you'll do on an android TV, if that makes sense.

However, I wouldn't recommend you to use this as your mainstream Smart TV since the limitations are too high if you are using on the Raspberry Pi 3, 3B and 3B+.

From the Raspberry Pi4, everything seems to be in the right place. 

I will be discussing it at a later part of this article, so stay tuned. Make sure you have a good internet connection for download and install this.

I am sure you wouldn't wanna control your Android TV with a wireless keyboard and mouse. That would, for sure, spoil the experience for you. So, I will be discussing few ways to control your Raspberry Pi.


Android TV on Raspberry Pi


Items Required

You'll need the following components in order to continue with the installation:
  • Raspberry Pi 3/3B/3B+
  • A Keyboard and Mouse (Preferably Wireless)
  • A Thumb Drive
  • 5V 2.5A or more rated Power adaptor with micro USB Type-B Cable 
  • A Micro SD Card
  • A Computer with active Internet connection for installation.

Prelims for Android TV (ATV)

Now, by installing Android TV, I mean to install the TV launcher and additional functionalities by ourselves along with the Lineage OS. Now, some of you might want the official AOSP project but I can tell you that this is far better. 

Now most of the AOSP builds are outdated and are not supported by the dev. And even if you try installing it the old school way, it won't work due to firmware being too new for the OS to get loaded by Raspberry Pi. For more about the firmware issues listed here, check out the link here

And our version of ATV is the most optimized for Raspberry Pi than those AOSP builds. And there's this huge draw-back: Most of the AOSP Builds do not have DRM certification. How's that gonna hurt you? 

Well you can't watch Netflix or Amazon Prime Video! Most of us would probably install the Android TV for streaming apps. So downloading this is the only option we have, at least for now. 

And, obviously ours has the DRM Certification and you can watch TV Shows and movies on it.

These functionalities can be installed as a package by installing the TV-Stock Package for Android 9 suitable for ARM Architecture. Which is one of the methods to install Android  TV on the Raspberry Pi.

Now, if you're planning to connect the Pi to a bigger screen, say a TV of 55 inch, then you'd certainly lose some performance. The performance was far better in a 32 inch than TV in a 55 inch LED TV Screen.

Speaking of resolutions and screens, the default resolution is 1280x720. Now this isn't hardcoded resolution unlike the previous builds. You can change it by changing the value in /boot/resolution.txt ( I would highly recommend you not to mess up with the values)

Now you need to have heatsinks and fans for this build as the OS is highly resource hungry.

I've found both the products in an affordable price. Check it out on Amazon:

https://amzn.to/2RHxebX - Raspberry Pi heatsink for 2 A/A+, B/B+ and 3 B/B+
https://amzn.to/3aiFBBe - Raspberry Pi 3 B/B+ Cooling Fan

Why do you need a high wattage rated charger?

Running Android TV is a very power consuming one. To meet its power requirements, you'd have to provide Raspberry Pi more power. Increasing its power input can increase the Pi's performance and streaming. Doing so will also save your Raspberry Pi in the long run.

This issue is being considered light, but this is a very vital one. You'd also need a lot of ventilation for running this OS, since streaming will consume more power, so more heat generated.

How to install Android TV 

So finally let's get our hands dirty.



Instructions

  • Go to Konsta's page for downloading Lineage OS 16.0 (Android 9) by clicking here
  • Now download the zip file by clicking on the link. It will route you to androidfilehost.com (Don't worry, it's a safe website)
  • After downloading the zip, Unzip it using your favourite software. 
  • Now to flash the .iso file to your SD card, we need Balena Etcher, the most amazing and fast software to flash images onto disks and SD card. I would highly recommend to use it.
  • If you have Balena Etcher, go ahead, select the iso by clicking the Flash from file, then select the target device, which is the SD card, and flash it. It took me just a minute to complete the flashing.
  • If you don't have Etcher, go to the Etcher download page by clicking here.
  • Then download it and follow the instructions above.
  • Then insert the SD card into the Pi and wait for a few minutes. The Lineage boot animation will be seen for a few moments.
  • You'll have the setup wizard next. Fill it with appropriate details and complete the installation. 
The job isn't over yet. This doesn't really look like an Android TV. 
There are two ways to make it look like an Android TV:

Download a Launcher

This is how Leanback launcher looks. Via XDA


To make it look like that, we need to install something called a TV Launcher. What a launcher does is that it controls the look and feel of you device's home screen So, by installing a TV launcher, we can achieve the look and feel of an Android TV in our device.

Here's the catch: You do not have access to Google Apps (short named GApps) if you follow this method. Skip to the next method, if you'd like to get all the features of the stock Android TV.

To do that:
  • Download the Leanback Launcher (erstwhile Official launcher for Android TVs) from here.
  • Copy it in a Thumb Drive and plug it in, in any of the USB ports of the Pi.
  • Go to Files > Click on yourUSBdevicename in the side menu located on the left.
  • Double click the apk file.
  • Allow all permissions from all dialog boxes that pop up.
  • Click on install and wait for a few moments.
  • After the installation is complete, click on the home button and the Home dialog box appears. 
  • Click on just once for setting Home as Home.
  • You'll see the amazing TV Launcher experience with no apps installed.
You can install ATV Launcher otherwise, if you want a fast UI. You can follow the same steps above.

Using the TV-stock or TV-mini Open Gapps Package

So here's it, the otherwise method. The biggest plus point of this method is that it can give you the exact Android TV functionalities available.

So this is one step closer to the Android TV experience. Select your Android version which is 9, Select the architecture, in our case ARM and select either TV-STOCK or TV-MINI and Click on install. 

If you want to have a custom launcher and Google Apps, then select the pico package as it provides the bare minimum functionality of gapps. Which is just Google Play store and play services.



Click here to know how to install Gapps in your Raspberry Pi device.

Long story short, Install the Gapps package for your architecture and your Android version. Then, copy it to a thumb drive. Enable root options and local terminal and then go to TWRP menu with the help of couple of commands. 

After entering the TWRP menu, insert the thumb drive and mount the USB partitions. Flash the zip file with the help of the Install button and Wipe Dalvik after flashing. Wipe the data using wipe button and mount the system and boot partition after basic wipe. 

Get access to the terminal with the help of Advanced button. Type in a couple of commands and you're good to go with the Android TV. Your data will be wiped off if you install Gapps.

If TV-Stock or TV-mini doesn't work install pico, the bare minimum functionality to get Google Play Store and follow the above steps.

Repeating, the catch here is that you'll see your device slow down a bit.

But, in my case I got few errors while flashing. So I decided to stick with the 1st method.

The article isn't over yet. If you want the complete android TV experience, I am sure you wouldn't control your TV with large Keyboard and mouse!

For Raspberry Pi 4

The process is different for the Raspberry pI 4 though. It is much simpler and easy to do if you have a Raspberry Pi 4. The experience is also much stable in the Pi 4.

Because with the Raspberry Pi 4, you get higher RAM, improved thermals and other good stuff. So, if you want to have a full fledged android tv experience, you should consider buying the Raspberry Pi 4.

Head over to https://konstakang.com/devices/rpi4/LineageOS17.1-ATV/ and download the Android TV 10 image. Yes, this image has the complete Android TV package except for the Gapps which we'll install in a jiffy.

Flash it on a thumb-drive, just like we did for the Raspberry Pi 3:
  • Download Balena Etcher from https://etcher.io
  • Flash the image to the thumb drive using Balena Etcher.
  • To do that, Click on Flash from image and choose the Android TV 10 image.
  • Click on the Flash device and choose the flash device which is the SD Card.
  • Click on Flash and you'll be good to go.
Now that you have a SD Card with Android TV 10, insert it on the SD Card slot of the bottom of Raspberry Pi. Now, turn the Pi and the external display on.

After a while or so, you can see the Android TV setup screen. You can install Google Apps thorough the way I mentioned above. Use the TV Gapps package for this build.

As far sideloading is concerned, it might work the old-school way. The hassle-free way is to use a file explorer with File transfer by FTP enabled. A quick google search can help you in this.


Controlling the Raspberry Pi

To complete the Android TV experience, you'll need to have a remote to get the gist of it.

Now, there are various ways to do this. I'll mention a few ways here.

Get a small keyboard with touchpad embedded.

Getting a controller like this can be really useful. Infact, this is the one I would prefer. This device comes with a small keyboard and touchpad with all required basic controls. Some of the generic ones comes with a D Pad too. Overall, it can be really good deal if you can buy it real cheap.

Use a bluetooth remote*

This is by far the most realistic way to get the complete TV experience. Just the old school way. Go to settings > Bluetooth > Pair your Raspberry Pi with the remote. Now, for most of you, this will work if you just pair it. For others, just check out the remote menu and follow the on-screen instructions.

EXPERIMENTAL: Use the Android TV remote app*

This may or may not work, but I am sure it won't hurt to try this. Launch the Google Play Store > Type in Android TV Remote > Install the app. 

Connect the Pi and your phone in the same WiFi network or connect both through Bluetooth, After connecting you'll have to do some setup. Enjoy the experience later.

*- Works only when used the 2nd method to install Android TV

And that's how you recreate the Android TV experience. 

If you want to sideload apps, here's an article that shows you how to do it.

Is it really worth it?



Why should you install Android TV?

If you have a Raspberry Pi lying unused, and you probably want to change your dumb TV into a Smart TV, then installing Android TV is the perfect choice.

You can either use it as a media center or as a streaming device or both at the same time is also possible. I personally use it as a streaming device rather than a media center. 

If you are using Raspberry Pi 3B+ or lower, then the performance isn't very remarkable. But it is completely usable though.

What should you expect?

If you are using it for lightweight Binge-watching, I can easily recommend it to you. This build is not suited for huge displays( 32 inches works well whereas 55 inches isn't suited well). 

The streaming isn't the best but certainly works better than what I expected. I haven't used it as a media center yet, but I am sure it could perform well.

How is the user experience?

Streaming is very decent, certainly do not expect much. I've tested with a few popular streaming apps. As of now, I've found these limitations. The limitations are as follows:
  • In pretty much all streaming apps, streaming is smooth until Medium video quality preset. When selected HD, the video starts to stutter.

  • In SUN NXT, Live TV with the high-quality setting works fine whereas, for streaming movies, HD starts to stutter.

  • Similarly, for Hotstar medium preset is the maximum quality you can get without any stutters.

  • As for Prime Video, it doesn't work. We are not aware of the reason but I will come up with the fix real soon. The app works but the videos don't play. Not even trailers.
If there are any bugs and problems in other streaming apps, leave a comment below.

Conclusion

The Android TV on Raspberry Pi is the cheap, and perfect device for lightweight binge watching. There were so many errors while flashing this and this was a very amazing experience for me. It's not got the best of stability but it is very usable. 

This opens up the potential of Raspberry Pi, How a small computer can give really good performance considering the fact that the Raspberry Pi's got only a gig of ram. 

This is not a first impressions review, In fact, I've tested it for about a couple of weeks and it's got no other flaws. 

Overall, it was a decent user experience and is really fun to use. However, with Raspberry Pi 4 and above, the performance is expected to be improved.

Stay tuned for more updates.

Comments

  1. Very nice post. Very keen to know why prime video doesn't work. It says "something went wrong. Try again later". Very frustrating. Hope there is a solution

    ReplyDelete
  2. Very nice post ��. But prime video gives error "something went wrong". Hope there is a solution

    ReplyDelete

Post a Comment