How to Install Android on Raspberry Pi in 2024 (+Play Store)

Installing Android on Raspberry Pi has always been a challenge. But thanks to the work of several developers, this task has become simpler over the years. In this article, I share with you the latest and easiest method to get it running on your Raspberry Pi (including the Play Store you’ll use to install any app you like).

To install Android on a Raspberry Pi, a custom image is required, since Google doesn’t have any version available for the Raspberry Pi. Additionally, accessing the Play Store requires a custom Google Apps build.

This process is very different from what you might be used to when installing new operating systems on your Pi, but don’t worry, I’ll explain all the steps in details, with illustrations to make sure you follow along.

If you’re looking to quickly progress on Raspberry Pi, you can check out my e-book here. It’s a 30-day challenge where you learn one new thing every day until you become a Raspberry Pi expert. The first third of the book teaches you the basics, but the following chapters include projects you can try on your own.

Key challenges in running Android on Raspberry Pi

I don’t want to start with something too boring, but there are some few important things to have in mind before starting the technical installation of Android itself.

Proprietary vs open-source

The core of the Android system is open-source, but main applications like Play Store and other Google apps are proprietary applications.

Android is a Google product, created for smartphones and tablets. Only partners (manufacturers) can get the full version and install it on their products, after being approved by Google. The Raspberry Pi support is clearly not Google’s priority.

It’s not only a problem for the Raspberry Pi, but also for many other devices. Some people are also interested in an open-source version of Android. That’s why projects like Emteria and LineageOS have been created.

LineageOS is a free and open-source version of Android, created for tablets and smartphones. It comes with a few basic applications (browser, calendar, calculator, etc.), but it doesn’t come with any Google applications or any useless preinstalled software.

Does LineageOS work on Raspberry Pi?

There is a way to make LineageOS work on your Pi, but it’s not with the official release.

As you can see on the download page here, LineageOS is available for many devices (Samsung, Huawei, Sony, etc.), but not for anything other than smartphones and tablets.

Download Your Essential Linux Commands Guide!
It's a free PDF guide containing every Raspberry Pi Linux command you should know!
Download now

However, there is an unofficial version available on this website, built especially for Raspberry Pi devices (3 or 4). That’s the image we’ll use in this tutorial.

I hope this introduction made the process clearer. We are not installing the official Android from Google (not open-source), nor the one from LineageOS (not supported), but a custom image created from LineageOS for the Raspberry Pi.

Installing Android on Raspberry Pi

Here are the required steps to install Android on Raspberry Pi:

  • Download the LineageOS version for Raspberry Pi from Konstakang.
  • Download Google Apps and save it on a USB key.
  • Flash the custom image to an SD card and start the Raspberry Pi.
  • Reboot in recovery mode to install the Google Apps.

I will now explain each step in detail.

Hardware requirements

Here is the recommended hardware to follow this tutorial and get the most of your new system:

  • A Raspberry Pi 4: Smartphones are pretty powerful these days, and if you want to get similar performances as on your phone or tablet, a Raspberry Pi 4 with enough RAM is recommended.
    If you don’t have one, you can try with a Raspberry Pi 3B+ and download the corresponding image, but it’s better if you can use a Pi 4.
  • A good SD card: Try to get a good one with enough space for your goals (32 GB would be the minimum). The link goes to the best one available currently, and you can read my benchmarks here if you want to know why.
    Alternatively, you can also use an SSD drive, for better performance, reliability or space, but it’s not mandatory.
  • A USB key: You need a USB drive to install Google Apps, a USB stick will be perfect for this.
    Any model is fine, the file is pretty small. Here is the one I use for your information.
  • A monitor: If the goal is to build a compact table, a product like the RasPad 3 I tested here would be perfect. For a media-center, you can plug your Pi to your TV, or simply use a Raspberry Pi monitor like the one I use.

Edit: I recently tested this Android version with this touchscreen from SunFounder, and it works very well. Android is designed for touch devices, so it makes sense :).

Preliminary downloads

You’ll need to download several things before starting the installation process. It’s not always easy to download it directly from Raspberry Pi, so I recommend downloading it from your computer. I will explain what to do with each file later.

So, download all these files on your computer:

  • Balena Etcher or Raspberry Pi Imager.
    Pick the one you prefer.
    We’ll use it to flash the SD card. It’s available on any operating system.
  • LineageOS for Raspberry Pi 4 or LineageOS for Raspberry Pi 3.
    Download it from the Konstakang website, and select the latest version available for your device:

    Important: If you are interested in Android TV, the procedure is not exactly the same. Read this article instead.
  • NikGapps.
    This is to add Google Apps after the installation.
    It looks like OpenGapps is no longer updating their packages (or at least they are always very late after a new Android release), so I now recommend using NikGapps instead.

    Click on the link above, then scroll down and click on “Download Now”.
    On SourceForge, go to “Releases” and open the latest folder with the “NikGapps” prefix.

    Download the version you want, the “Core” package is enough for a Raspberry Pi, the important part is Google Play Store, anything else can be added later.

I recommend copying the “NikGapps” or “OpenGapps” file to your USB key right away.
It’s easier than downloading it from the Android system. I’ll show you in the last part how to install them.

Warning: make sure the USB key is formatted in FAT32. It won’t work with another file format.

Flash the SD card

Next, we need to prepare the SD card and as usual. You can use Raspberry Pi Imager or Balena Etcher for this, it doesn’t matter.

Here are the steps with Etcher:

  • Start Balena Etcher, the interface looks like this:
    etcher menu
  • On the left, pick the LineageOS image file from your Downloads directory.
  • Then insert your SD card into your computer, and Etcher should select it automatically.

    And finally, click on “Flash!” to start the copy.

A few minutes later, your SD is ready, and you can insert it into your Raspberry Pi.

Boot on LineageOS

Start your Raspberry Pi. The first boot will take a bit longer, as the system initialize the configuration in the background.

Depending on the version you downloaded, you may have a welcome wizard to adjust the settings.

Note: With the latest version, my display was not adjusted correctly. Use the keyboard arrows to reach the start button on the first screen. Almost all the following steps were working fine, just have to do the same thing once or twice after that.

Download Your Essential Linux Commands Guide!
It's a free PDF guide containing every Raspberry Pi Linux command you should know!
Download now

Then, you’ll access directly the Android desktop.

Depending on your goal, you can start working with the basic apps (browser, file browse, etc.).
To access them, scroll up the bottom bar.

But you’re probably not here to only use the email and browser apps, there is not much you can do with only the default apps. That’s why we’ll quickly move to the Google Play Store installation.

Android Configuration

Before going further, now is a good time to adjust the default configuration if needed. As there is no wizard anymore to guide you with the configuration, you can go to the “Settings” app if needed to configure your Internet connection, language, date/time, etc.

I’m using my Raspberry Pi 4 with the Ethernet cable plugged in, but it doesn’t work and I have no network. If you are in the same situation, start by configuring the Wi-Fi network. It will then synchronize with the time server and fix the date/time for you.

Installing Google Play Store on Android

Now that the Android system is installed and configured, we need to install NikGapps to allow us to use the Play Store and install all the usual applications.

You’ll feel like a hacker doing this, as it’s not a common process, but don’t worry, I explain all the steps in details.

Reboot in recovery mode

We first need to boot in recovery mode to install Google Apps.
To do this, we need to unlock access to this mode by enabling the advanced restart.

Here is how to do this:

  • Open the “Settings” app.
  • Go to “System” > “Advanced settings”.
  • Enable the first option “Reboot to recovery”:

    On some versions, it’s under another submenu, search for “recovery” in the search engine if you can’t find it there.
  • Scroll down the notification bar and click on the power icon.
    Then click on Restart and then Recovery:

    In theory, F5 should work to display this screen, but it doesn’t work anymore once the reboot to recovery is enabled.

Plug your USB key with Google Apps on it, and wait a few seconds for the recovery mode to start.

The system will now reboot on recovery mode.
The main interface looks like that:

We can now start the Google Apps installation.

Install Google Apps

Once in recovery mode, follow this procedure:

  • Click on “Mount”.
    This is where you can choose which partition to mount (= making the USB drive accessible).
    We need to mount the USB key, so check the USB item in the list.
  • Then, back on the main menu, click on “Install”.
  • Click on “Select Storage” and choose the USB key.
  • Finally, your files appear.
    Click on the NikGapps file to install it:

    Swipe to confirm, there is nothing else to change.
  • Don’t reboot after the installation, as it will come back to recovery mode.

If everything is OK, you can now restart in normal mode, choose “System” in the menu when you click on Reboot.

That’s it, your Raspberry Pi will now restart in normal mode.
Once on the Android desktop, you can see that Play Store is available in the apps.

Sign in to the Play Store

The last step is to sign in on Google Play, as you would for any Android device.
Open the Play Store app and try to sign in with your Google account:


You may get some error messages during this process, asking if you want to close or wait:



Keep choosing “Wait” until you manage to log in.

Once logged in, you can close the app and reboot the device. After the reboot, everything should be fine.

You can now install any app or game you want on your Raspberry Pi :).

Download Your Essential Linux Commands Guide!
It's a free PDF guide containing every Raspberry Pi Linux command you should know!
Download now

Video demonstration

I have a video on my YouTube channel guiding you through the installation of Android 12. You can watch it here for an example of the whole process:

Subscribe to the RaspberryTips YouTube channel to receive new videos directly in your feed:

Download Your Essential Linux Commands Guide!
It's a free PDF guide containing every Raspberry Pi Linux command you should know!
Download now

🛠 This tutorial doesn't work anymore? Report the issue here, so that I can update it!

Want to chat with other Raspberry Pi enthusiasts? Join the community, share your current projects and ask for help directly in the forums.

Related questions

❤️ Love Raspberry Pi & writing?
Combine your passions and get paid. Write for RaspberryTips!

Can you run AndroidTV on a Raspberry Pi?

Android TV only works on a Raspberry Pi 4, with a custom image of LineageOS from Konstakang. It can’t run on Raspberry Pi 3B+ and lower with this method.

If you have a Raspberry Pi 4 or 400, you can follow the same steps and pick AndroidTV instead of Android while downloading the image. The other steps are very similar (the interface is slightly different, but you’ll find your way thanks to the developer website).

I have a full-tutorial about Android TV I recommend reading if you are interested. And you can also watch this other video I did a while ago:

That’s it! We finally found a way to have Android working better than ever on Raspberry Pi. And it’s not very difficult to install, we don’t need any account (except Google), and it’s free.

Whenever you’re ready, here are other ways I can help you:

The RaspberryTips Community: If you want to hang out with me and other Raspberry Pi fans, you can join the community. I share exclusive tutorials and behind-the-scenes content there. Premium members can also visit the website without ads.

Master your Raspberry Pi in 30 days: If you are looking for the best tips to become an expert on Raspberry Pi, this book is for you. Learn useful Linux skills and practice multiple projects with step-by-step guides.

The Raspberry Pi Bootcamp: Understand everything about the Raspberry Pi, stop searching for help all the time, and finally enjoy completing your projects.

Master Python on Raspberry Pi: Create, understand, and improve any Python script for your Raspberry Pi. Learn the essentials step-by-step without losing time understanding useless concepts.

You can also find all my recommendations for tools and hardware on this page.

Similar Posts

30 Comments

  1. I really like how well you laid out the instructions. I was going along just fine until I hit one of those “you can’t fix stupid” situations. Stupid, of course meaning me. I cannot determine how to configure the “USB key with Google Apps on it”. I feel that it needs a boot partition. Oh heck, rather rambling along, please detail if time avails. I’m really liking the install.

    Thanks for any assistance.
    Mr. Lost-In-The-Dark

    1. No, just copy the OpenGapps archive on a USB Key (FAT32 for example)
      Nothing complicated 🙂

  2. can i run this version of LineageOS in Pi 4B, on two different monitors showing two different apps? dual monitor supports exists in Pi 4B, will Lineage OS support that also?

  3. Thank you very much for your detailed tutorial,
    I was able to setup a raspberry pi 4B (4GByte RAM) with an industrial touchscreen monitor,
    used as HMI in kioskmode (showing a webinterface)!
    Thank you very very much for your nice work!

    One usecase works on my solution based on “Raspbian Buster Desktop”, chromium in kioskmode and chromium-extension “Virtual Keyboard”. But this didn’t work with our second usecase (also a webinterface), where the on-screeen-keyboard didn’t show up…

    Some details I had to handle:
    -edit “config.txt” with SD-card-reader on bootpartition for getting screen output on my PC-HDMI-monitor, as close as possible to our used screen resolution of 1920×1080:
    hdmi_group=2
    hdmi_mode=85 (it’s only 1280×720, also 16:9, so scaling our webinterface works well)

    -reboot of Android / LineageOS: long press on “F5”

    -showing all installed apps: gesture from down into screen over Android-circle

    -“Reboot in normal mode”
    in “Mount” I had to select “Boot” AND “System”,
    otherwise “rpi4-recovery.sh” wasn’t found

    -additional apps via Playstore:
    -TeamViewer Host (only screen sharing is possible, there’s no addon for remote control…)
    -Fully Kiosk Browser
    (autostart with Android/LineageOS works well)

    =>background image had a weird problem, setting fullscreen picture in LineageOS doesn’t work, it seems that it has problems with screen width/height. App “Image 2 Wallpaper” helped to scale and setup the image, but I couldn’t manage to center it… But that’s peanuts. 😉

    1. Some tests further showed three showstoppers (ordered by priority):

      1) configuration of static IP address on ethernet port
      It’s not available on Android user interface, and it seems that it’s a widespread problem…
      Has anyone found a simple and persistent solution?

      2) screen resolution
      Website-scaling in “Fully Kiosk Browser” works well, but after userinputs with on-screen-keyboard the user has to manually zoom out (nativ resolution of our webinterface is 1920×1080). It would be very cool, if Android on Raspberry Pi 4B could provide full-HD resolution…

      3) remote access to Android
      TeamViewer Host is accessible as on other Android-based tablets, but only screen mirroring works. There’s no TeamViewer-Addon for sending mouse or keyboard events.

      Well, perhaps one day there will be a solution. 🙂

      @Patrick: Thank you for your good documentation.

  4. Dam its works in the beginning but is really slow when i tried to fix it it never loaded do u think u could do another tutorial on how to run it faster

  5. Hi,

    I just updated this post as many people on YouTube told me that they were unable to reboot in normal mode after the Gapps installation.

    If you are trying this tutorial with Android 10, there is a small change at the end:

    Note: From Android 10 and over, the rpi4-recovery.sh script is no longer available in the terminal, you need to download this file from Konstagang.
    Put it on the same USB key with Gapps, and install it just after Gapps.
    It will reboot in normal mode.

    1. Hello,
      After installing the script from https://www.androidfilehost.com/?fid=8889791610682901035, I can’t find the new script. The rpi-recovery.sh command is still the original one.
      If I unzip and run directly the script, the raspberry stay on a black screen at next startup.

      lineage-17.1-20210122-UNOFFICIAL-KonstaKANG-rpi4-atv.zip and
      open_gapps-arm-10.0-tvstock-20210131.zip

  6. Thx for this article.

    I have a question: if you install LineageOS on the Raspi 4 is it then a normal Android (smarthpone) without a touch-screen?
    Or can it work 100% as a Android TV, where no touch screen is working?

    I just bought a chinese Android TV Box (xgody T95) – and it says it’s a phone.
    So all the app are thinking, they are on a smartphone and not on a TV .

    I want to avoid the same with the raspberry pi.
    can you tell me, how it reacts (without a touch screen?)

    1. Sorry, I don’t really know the difference
      You can ask on the LineageOS website, or maybe the fastest is to test 🙂

  7. Superb, thank you for that. I’ve just installed it on my Raspberry Pi 3 Model B (not +).
    The whole process was very glitchy, I’d even say super slow. I assume it’s because I’m using Model B and not Model B+, so and it has only 1GB Ram :\

    Bottom line – it works, thank you very much!

  8. got to installing opengapps and I’m getting insufficient disk space. I’ve verified the file download, open_gapps-arm-9.0-pico-20201031. I’m using a 64g sd card. I’ve expanded the data partition but no luck. any ideas?

      1. Hi Tim,

        I’m running into the same issue, but I’m not quite sure how to expand the system partition. Any tips/info??

  9. The main question — how about at least 1080p video playback, Is there any hardware acceleration?

  10. Thanks, great tutorial!
    I’m using a Pi3 with a touchscreen.

    I tried using android V10 and Gapps V10, the Gapps zip file installed but on reboot everything became really slow, with several “wait for reply” errors, and finally the apps application never showed up.
    Nice thing was, setting the “Advanced restart” option worked nicely, and allowed rebooting into recovery mode without having recourse to the rpi3_recovery.sh script.

    So went down to V9 versions, but I can’t get the terminal app to show up on the desktop. I’ve enabled root access “Apps and ADB” and “Local Terminal”, but the application icon doesn’t show up on the desktop.

    Any ideas?

    Cheers, RobR

    1. Hi,

      Thanks for your feedback.
      System slowness with Google Apps is “normal”.

      For the terminal, try to check the video, you probably miss one step in the procedure.
      Also, it’s not on the desktop, but in the apps list.

      1. Great, got it, wasn’t looking in the right place for the terminal app. Got it all working now, thanks a lot for these instructions.

  11. Please … with the version of lineageOS 18.1 (android 11) of konstagang, in the developer settings there is no longer the root access entry but only the one to enable the terminal, so I can’t give the command to access the recovery … some idea please? thank you !

  12. I kept rebooting into a black screen also. What finally worked for me was to not install the kong recovery file but to instead go to reboot and choose power off then power cycle voila.

  13. I use Pi4 with android 11 installed on a USB disk, but I don’t know what to do to make android see the real disk memory because it sees 8gb and the disk is 1tb will someone help me? thanksm

Comments are closed.