- A Raspberry Pi 4 or 5 with a good microSD card and stable power supply offers the best base for building a homemade Smart TV.
- There are two main paths: Android/Android TV with LineageOS and Kodi-centric distros like LibreELEC or OSMC.
- Installing GApps and adjusting density, orientation, and launcher settings are key to a usable Android TV experience.
- The limitations of DRM, certifications, and performance mean that it remains a maker project, not a perfect replacement for an official Android TV.
Turning a Raspberry Pi into a kind of Smart TV with Android It's one of those projects that really gets you hooked: you learn, you recycle hardware you had lying around, and you end up with a pretty neat media center for your TV. It's not the most convenient or polished solution in the world compared to a Chromecast or a Fire TV Stick, but if you enjoy tinkering, you'll find plenty to work with here.
In this guide you will see how to run Android, Android TV or alternatives like Kodi. to your Raspberry Pi, what exactly you need, what operating system options you have (LineageOS, LibreELEC, Plasma Bigscreen, Plex, Jellyfin, etc.), the general steps to get it up and running, and also the real limitations you'll encounter, especially with Google apps and the most demanding streaming platforms.
What you need to turn your Raspberry Pi into an Android Smart TV
Choosing the right motherboard is key to ensuring the experience isn't a disaster.Although historically all sorts of devices have been used (including the Raspberry Pi 3), nowadays, if you want a smooth experience, it's reasonable to opt for a Raspberry Pi 4 or, if you already have one, a Raspberry Pi 5, with at least 2 GB of RAM; 4 or 8 GB is even better. It's also possible with earlier models, but performance drops considerably and Android feels much slower.
In addition to the Raspberry Pi, you will need a number of basic accessoriesYou will need: an official or equivalent power supply (3A for Pi 4/5), a case to protect the board from the elements, an HDMI cable (for the Pi 4 you will need to use a micro HDMI to HDMI cable), a TV or monitor with an HDMI input, and, during the initial setup, a USB keyboard and mouse for easy navigation through the menus and viewing ways to use the TV's USB port.
The microSD card significantly impacts system performanceAndroid on the Raspberry Pi isn't installed on fast internal storage like on a phone or tablet, but on a microSD card, so don't skimp on storage. Ideally, you'd use a Class 10 or higher card from a reputable brand, with at least 16 GB; if you plan on adding a lot of apps and content, 32 or 64 GB is better. With old or slow cards, the system becomes sluggish, with stutters and forced shutdowns during setup.
On the software side, you will need at least three types of tools: an Android/Android TV image for Raspberry Pi (usually modified versions of LineageOS, such as those from KonstaKANG), a program to write that image to the microSD (Balena Etcher, Raspberry Pi Imager, Win32DiskImager, Apple Pi Baker, etc.) and, if you want Google services, a compatible GApps package such as MindTheGapps on the appropriate version of Android.
Finally, you will need a computer to prepare the cardWhether you're using Windows, macOS, or Linux, you'll download system images, flashing tools, and, in some advanced cases, the Android Platform Tools to use ADB (Android Debug Bridge), connect to the Raspberry Pi over the network, and send files or run commands from the terminal.
Operating system options: Android TV, Kodi, and other media centers
There is no single way to turn your Raspberry Pi into a media center.You can opt for an Android system that's as similar as possible to the one used in a TV. Android TVOr you can opt for Kodi-centric distributions that turn the device into a very pure media center with a much simpler learning curve for the family.
One of the most popular solutions for having Android/Android TV on the Pi These are LineageOS builds adapted by developers like KonstaKANG. These images run stock Android or specific versions of Android TV for Raspberry Pi 4 and, in recent versions, also for Raspberry Pi 5. They are usually based on Android 9, Android 12L, Android 13, or higher, depending on the build you choose.
Keep in mind that many of these builds do not include Google apps. Due to licensing issues, they start without the Play Store, Google Play services, and the usual apps. In these cases, if you want an environment more similar to a commercial Android TV, you have to flash a separate GApps package specifically for Android TV (for example, by selecting ARM architecture, version 9.0 or the appropriate version, and a "pico" package or similar).
Another approach is to forget about Android and opt for Kodi as your media center.For this purpose, there are lightweight distributions such as LibreELEC, OpenELEC, or OSMC, designed specifically to turn the Raspberry Pi into a media center with a simple interface, support for a large number of formats, and an add-on store that multiplies the possibilities: online TV channels, weather, add-ons for services such as Plex, YouTube, SoundCloud, or even Netflix through unofficial add-ons.
Among Kodi-based distributions, LibreELEC is usually the most balanced option.It's derived from OpenELEC but boasts a very active community, frequent updates, and good stability. Installation is quite straightforward: you download the image for your model (Pi 3, Pi 4, etc.), write it to the SD card, and upon booting, you'll be taken directly to the Kodi interface without having to struggle with advanced settings.
If you prefer an approach closer to a modern TV interface but without GooglePlasma Bigscreen is another interesting alternative. It's an adaptation of the KDE Plasma desktop for the living room, with large menus controllable with a remote, pre-installed streaming applications like Firefox and YouTube, and the option to enhance its power by installing Kodi from the terminal to combine both worlds.
Don't forget about other solutions designed to manage your own library like Plex or Jellyfin. Plex can be used as an app on Raspberry Pi OS, as a dedicated system like RasPlex (although somewhat outdated for the latest boards), or embedded within Kodi as an add-on. Jellyfin, on the other hand, works as an open-source media server that you host on another computer and connect to from the Pi via a client or the JellyCon add-on for Kodi.
Install Android / Android TV on Raspberry Pi with LineageOS
If what you want is something that is as close as possible to a commercial Android TVThe most common approach is to use LineageOS adapted to Raspberry Pi and follow a series of relatively similar steps in all guides, with slight variations depending on the version (Android 9, 12L, 13…).
The first step is to download the exact image for your Raspberry Pi model.For a Raspberry Pi 4, you'll need to find the specific build (for example, LineageOS 16.0 based on Android 9, or newer versions like Android TV 12L/13). Save the .zip file to your computer in a convenient folder, such as Downloads.
Next, you need to flash that image onto the microSD card.To do this, you use tools like Balena Etcher, Raspberry Pi Imager, Apple Pi Baker (on macOS), or Win32DiskImager (on Windows). In all cases, the process is similar: choose the image file or the .zip file, select the microSD card as the destination (be careful not to select the wrong drive, as this will erase everything), and confirm that you want to write the image. The process will take a few minutes, and when it's finished, you can safely eject the card.
Once the system is programmed, insert the microSD card into the Raspberry Pi and connect it. Connect the device to your TV via HDMI, to the power adapter, and to any peripherals you plan to use (mouse, keyboard, and even a Bluetooth controller if you have it configured). The first boot is usually the slowest: you'll see a black screen with the LineageOS logo and you'll have to wait for it to finish initializing.
When you first boot up, LineageOS guides you through a setup wizard where you choose your language, time zone, and Wi-Fi network. Some guides recommend not configuring the wireless connection yet or not entering Google keys to speed up the process, but if you're going to install Google Apps packages or download things from the device itself, you'll end up needing an active connection.
At this point you have a functional but bare-bones Android, without the official Google storeYou'll find a basic browser and minimal system apps, but you won't be able to easily install Netflix, Prime Video, the official YouTube channel, or other apps that rely on Google Play Services. To compensate, you can install alternative app stores like Aptoide, Aurora Store, or K-Droid, or flash a GApps Android TV package to add official support.
Enable developer options, root, and ADB on Android for Raspberry Pi

Some advanced Android TV settings on Raspberry Pi require accessing hidden settings. such as developer options, USB debugging, or even enabling root access. This allows, among other things, connecting via ADB from a computer, changing the screen density, or installing Google Apps packages more easily.
To activate developer options, the procedure is the classic Android one.Go to Settings, scroll down to System, tap on "About device" or "Tablet information," and then locate the "Build number" or "Android TV OS version" line. Tap it several times in a row (usually seven) until a message appears indicating that you have enabled Developer options.
Once you've done this, go back to the System menu and you should see a new section. It's called "Developer options" or something similar. Inside, you can enable "USB debugging" and, if your build allows it, "ADB over network" to connect wirelessly from your PC. This same section displays the IP address and port you'll need to use with the "adb connect" command on your computer.
If the LineageOS build offers the root access optionIt's usually found in these developer options under a menu called "Root access" or something similar. It will be disabled by default, and you'll need to choose a mode like "Applications and ADB" so that both apps and the ADB connection can execute commands with elevated privileges.
Another interesting option that sometimes appears is the activation of a "Local Terminal"This adds a shortcut to a console within Android. From there, you can launch internal commands without relying on a PC, although for moving large files and flashing packages you'll usually still use ADB from your computer.
With ADB now operational on the network, the workflow improves considerably.From your PC terminal you can run "adb connect IP:PORT" to link to the Raspberry Pi. You will accept the dialog box on the TV to allow debugging, and from there you can send files with "adb push file.zip /sdcard" or modify system parameters, such as screen density, without touching anything in the graphical interface.
Installing Google Apps and Android TV services
If you want to add Google services to your Android on Raspberry Pi You need to install a Google Apps package compatible with the specific LineageOS version you're using. Many guides recommend packages like MindTheGapps or specific Android TV builds, always choosing the correct ARM architecture and Android version (for example, 9.0 or 12L).
The typical process involves downloading the GApps package to your computercopy it to the Raspberry Pi (for example with "adb push" to the /sdcard path) and then access the recovery mode to flash it. Some builds include a TWRP-type recovery adapted for the Pi, accessible by rebooting with "Advanced reboot" and choosing "Recovery" from the menu.
To use advanced restart, you will first need to enable it in Settings.By going to System, then to "Advanced Buttons" or a similar section, and selecting the "Advanced Restart" option, you can choose "Recovery" directly from the restart menu instead of just shutting down or restarting the system normally.
Once in the recovery environment, you will need to have a mouse connected.Since the simulated touch interface or keyboard control can sometimes be unwieldy, especially if you've changed the screen density, you can flash the Google Apps .zip file from the TWRP or recovery menu. Navigate to the file you uploaded to /sdcard, select it, and swipe to flash it.
After flashing the GApps, it is quite common for the documentation itself to recommend Perform a data wipe or "factory reset" from recovery mode. This clears the previous settings to avoid conflicts between the base system and the Google app suite. In the recovery menu, go to "Wipe," select the factory reset option, and confirm the process before rebooting back into the system.
When you restart, Android will behave as if it were the first time.But this time, it comes with the Play Store, Google Play Services, and other Google apps available. The setup wizard will ask you to connect to Wi-Fi, check for updates, and even offer to restore data from a cloud backup, although you can skip that part if you're setting up this system only as a set-top box.
During this second configuration, "forced closure" errors may appear. In some system apps, if the Raspberry Pi is experiencing performance limitations or the microSD card isn't responding as quickly as you'd like, you can usually just close the notification, continue from where you left off, and be patient, avoiding repeatedly pressing the same buttons.
Screen settings, density, and Android TV launchers
Once you have Android with GApps up and running, it's time to fine-tune the user experience. to make it feel more like a traditional Android TV than a tablet stuck in the TV. This includes adjusting the orientation, screen density (DPI), and choosing a launcher optimized for use with a remote.
The first thing to do is make sure that the system is locked in landscape orientation.which is how you'll use it on the TV. Some builds allow you to do this directly from Display settings by disabling automatic rotation. If that option doesn't appear, you can use an app like Set Orientation, available as an APK, which lets you force the orientation you want.
Screen density also greatly influences browsing comfortUsing ADB, you can run something like "adb shell wm density 320" to set a pixel density of 320 dpi, which makes the Android TV interface look good on a Full HD or 4K TV. However, this density can make the recovery menu practically unusable, so if you need to return to recovery mode, it's advisable to reset the density with "adb shell wm density reset" before rebooting.
To achieve a look and function more similar to a genuine Android TVMany people install specific Android TV service packages and then add a TV launcher from the Play Store or via APK. There are launchers of all kinds, some very minimalist and others that almost exactly replicate the Google TV interface.
Once the TV launcher is installed, you need to go to Android SettingsTo do this, go to the applications menu and set that app as the default launcher, so it starts automatically when the system boots. From then on, the home screen will adopt the typical layout of content rows, shortcuts, and recommendations adapted for controller use.
If your TV supports HDMI-CEC, you can even control the Raspberry Pi with your TV remote.Once the installation is complete, no keyboard or mouse is needed. Alternatively, you can use a wireless mouse, a compact keyboard, or Android TV-compatible remote control apps installed on your mobile device.
Media center with Kodi, LibreELEC, Plex and Jellyfin
If you find pure Android or Android TV too heavy or cumbersomeYou have the alternative of setting up a more traditional media center based on Kodi and other tools designed to manage your local or network content.
Kodi is probably the most popular solution for turning a Raspberry Pi into a home Smart TVIt is an open-source multimedia center capable of playing virtually any video, audio or image format (AVI, MP4, MKV, MP3, FLAC, JPEG, PNG, etc.), with a very visual interface designed to be operated with a remote control.
Its main strength lies in the add-ons or plugins, which extend its functionality. allowing you to watch TV channels online, check the weather, listen to online radio, connect to services like Plex, SoundCloud, YouTube, or even access Netflix through unofficial add-ons, for example install OctoStream on Smart TV.
To use Kodi as the main operating system on the Raspberry Pi, the usual approach is to install a dedicated distribution. LibreELEC, OpenELEC, or OSMC. All of them integrate Kodi by default and boot directly into their interface as soon as you finish the initial setup, making them ideal for the living room or for users who don't want to complicate things.
The initial setup of LibreELEC includes selecting the language, Wi-Fi network, and some basic settings.Although it starts in English, when connected to the Internet it downloads additional language packs, so you can switch to Spanish by following the typical Kodi path: Interface settings, Regional section, Languages option, and select Spanish.
Once in Kodi, installing add-ons from official repositories is straightforward.Go to the Add-ons main menu, tap the open box icon in the upper left corner, and select "Install from repository." From there, browse through categories (video, music, programs, personalization, etc.) to find the add-on you want, install it, and wait for the notification that it has been successfully added.
If you want to install external plugins in .zip format, you will need to allow unknown sources.Go to System Settings, Add-ons section, enable the corresponding option, and then, again from the open box menu, select "Install from .zip file". Choose the file from local storage or a USB drive, and Kodi will install it like any other add-on.
To control Kodi without a keyboard or mouse from your mobile device, you have official apps like Kore., available for Android and iOS; you can also Control your smart TV from your mobile phone Without installing any extra apps. To make it work, in Kodi you need to go to Settings, Services, Control and enable remote control via HTTP. With the Raspberry Pi powered on and on the same Wi-Fi network, Kore will detect the device and you can use your phone as an advanced remote control with information about content, playlists, and more.
If instead of Kodi you want something focused on media libraries like a home NetflixPlex and Jellyfin are two strong options. Plex offers several installation methods on Raspberry Pi: as an app on Raspberry Pi OS, in dedicated distributions like RasPlex (although somewhat outdated for recent models), or as an add-on within Kodi, integrating the best of both worlds.
Jellyfin, for its part, functions as a 100% open and free media serverYou install it on another computer (Windows, Linux or macOS) where you have your movies, series, music and photos, and then access it from the Raspberry Pi with a client or through Kodi with the JellyCon add-on, which offers a fairly complete integration with the core library.
Performance, limitations, and common problems
However powerful your Raspberry Pi may seem, you have to be realistic about your expectations.Android isn't natively designed for this hardware, and the experience won't be identical to that of a TV with Google TV or a modern Chromecast. There are very polished builds, but there will always be some minor bugs, lag, or occasional incompatibilities.
One of the factors that most impacts performance is the quality of the microSD card.With older, lower-quality cards or those lagging in read/write speeds, it's common to experience lag when opening settings, slow screen transitions, or freezes during Google setup. Switching to a modern, fast, and reputable microSD card usually transforms the experience from frustrating to reasonably smooth.
Another major limitation in the field of streaming is DRM issues.Many official Android TV devices have Widevine L1 certification and other protections that allow them to play content from Netflix, Disney+, Prime Video, and similar services in high resolution. On the Raspberry Pi, without these certifications, some apps may not install, others may only work at low resolutions, or they may refuse to play protected content altogether.
Even when you manage to install popular services via APKIt's common for certain apps to be so closely tied to Google mobile services and device certification that they don't behave as they should. For example, Netflix might open but then display playback errors, or certain platforms might only work from a web browser with limited quality.
Regarding Raspberry Pi's specific hardware support, such as HDMI, audio, and GPIOSerious builds of LineageOS and Android TV usually include patches to ensure HDMI video and audio output works correctly, but if you want to take advantage of GPIO, home automation projects, or more advanced uses, it's advisable to check the developer's documentation (such as KonstaKANG's notes) to see what is supported and what is not.
Finally, it is important to consider the user experience as a lightweight console or gaming platform. It's an interesting extra, but not the main focus. Simple games and retro emulators usually run well, but demanding titles designed for high-end mobile phones may struggle. Where the Raspberry Pi truly shines is as a device for streaming local content, legal IPTV, YouTube, music, and lightweight applications.
Given all this, how do I set up a homemade Android TV with a Raspberry Pi? It becomes a very effective project for a Saturday morning: it requires some patience with downloads, flashing, and minor fine-tuning, but in the end you get a hybrid between Android TV, a media center with Kodi, and a personal streaming center with Plex or Jellyfin that can be quite useful before you even consider buying a commercial device, and you can extend the life of your Smart TV.