The Raspberry Pi is a popular single-board computer used by hobbyists and developers for projects ranging from home media centers to advanced robots. With a quad-core ARM processor, the Raspberry Pi 3 Model B+ packs decent performance in a tiny form factor along with full support for Linux operating systems.
While Raspbian is the officially recommended Linux distro for the Raspberry Pi, many developers wish to run Android for easier app development or to port their existing Android apps. Thanks to active development by the LineageOS team, we can now install Android 7.1 and Android 8.1 on the Raspberry Pi 3.
In this comprehensive guide, we will walk through:
- Downloading and preparing the LineageOS image
- Flashing the image onto a microSD card
- Configuring and booting the Raspberry Pi 3 into LineageOS
- Initial Android setup and usage
- Performance and compatibility impressions
- Options for installing Google Apps (GApps)
So if you‘re ready to transform your Raspberry Pi 3 into an Android development device, read on for full instructions.
Downloading and Preparing the LineageOS Image
The first step is to download the latest build of LineageOS for the Raspberry Pi 3 from the official website. As of this writing, they offer two versions – LineageOS 14.1 based on Android 7.1 Nougat and LineageOS 15.1 based on Android 8.1 Oreo.
While the Oreo build is newer, Nougat has been reported to perform better on the Raspberry Pi hardware. But feel free to try out both and decide for yourself.
Here are the download links:
The downloads are in tar.xz archived format containing the main system image file (lineage-*.img). We need to decompress this archive first.
On Linux or macOS, open a terminal and run:
xz -d lineage-*.tar.xz
tar xf lineage-*.tar
This will extract the main .img file needed to flash to the SD card.
On Windows, you can use a utility like 7-zip to extract .tar.xz files.
The extracted disk image is what we will write onto the microSD card in the next step.
Writing the LineageOS Image with Etcher
To flash the LineageOS image onto a microSD card, we will use a tool called Etcher. Etcher provides a simple, cross-platform interface for burning disk images onto SD cards safely and reliably.
The steps to write your LineageOS image to a microSD card are:
-
Insert your SD card into your computer‘s card reader and note the device path. On Linux and macOS, it will be like
/dev/mmcblk0. On Windows, it will show up as a mounted drive letter likeE:in Explorer. -
Download and install Etcher for your operating system from balena.io/etcher. Open Etcher once installed.
-
Select the LineageOS image you extracted earlier using the "Select image" button.
-
Select your SD card‘s path using the "Select drive" button. This is important to ensure you don‘t overwrite your hard disk partitions.
-
Review your selections to ensure the proper source image and target drive are set.
-
Finally click Flash to begin writing LineageOS onto the SD card. This may take 5-10 minutes depending on your card‘s speed.
Once completed, Etcher will automatically eject/unmount the SD card. You can now remove the card from your card reader.
We‘re now ready to boot the Raspberry Pi 3 using this LineageOS microSD card.
Configuring the Raspberry Pi and Booting Into LineageOS
With the SD card flashed, we‘ll now configure the Raspberry Pi 3, insert the card, and power it on to boot into Android.
Follow these steps carefully:
-
Ensure your Raspberry Pi 3 board is powered off and place it on a non-conductive surface.
-
Insert the LineageOS microSD card into the slot beneath the board. Push it all the way in until it clicks.
-
Connect your Raspberry Pi to a monitor via the HDMI port, and attach a keyboard + mouse to the USB ports for setup.
-
Supply power to the board using a 5.1V USB-C power adapter. Do not use an inadequate phone charger, or boot issues may result.
-
If all connections are proper, the Raspberry Pi 3 will immediately boot into LineageOS, indicated by the splash screen. First boot may take 2-3 minutes.
Let‘s look at the Android setup process once booted.
Initial Setup of LineageOS on First Boot
On first boot of LineageOS on the Raspberry Pi 3, we are greeted with the basic welcome wizard to configure core Android settings:
-
Select your preferred language from the list.
-
Choose your timezone by country and city so time displays properly.
-
Optionally connect to a WiFi network and enter the password to setup internet access.
-
Select Date & Time settings if not fetched automatically via WiFi.
-
Choose device lock security mode – PIN, pattern or password. This guards access if your device is lost/stolen.
Once you complete these steps and confirm, LineageOS will finish setting up Android then boot directly into the home screen on subsequent restarts.
Initial Impressions of Performance
So with LineageOS installed on the Raspberry Pi 3, how does Android actually perform? Here were my first impressions:
-
The Nougat 7.1 build feels smooth with decent app launch speeds. UI navigation has some minor lag but is respectable overall considering the Raspberry Pi‘s hardware constraints.
-
Gaming performance is hit-or-miss. Casual 2D games seem to work alright, but most 3D games I tested struggled with poor framerates making them unplayable. Not surprising given the lack of GPU acceleration.
-
The Oreo 8.1 build generally feels more sluggish than 7.1. There is noticeable lag when opening apps and switching between screens. Simple app usage is fine, but the experience suffers in heavier use cases.
Of course app performance depends much on their optimization and targeting of lower-end hardware. But in my tests, LineageOS 14.1 (Nougat) gave a smoother overall experience that I would recommend for most users.
Now with the basics covered, let‘s move on to some more advanced topics for customizing your device.
Installing Google Apps and Services on LineageOS
LineageOS by itself lacks any Google services or apps. So that means no Play Store for installing apps easily, no Push Notifications through Google services, no cast capabilities or location services tied to Google Maps.
Luckily the open-source community has ported Google Apps like Play services, Play Store etc. to work with LineageOS and other custom ROMs. These are bundled into different variants of GApps packages that we can conveniently flash.
Here is the full process to install Open GApps to enable more functionality:
- Download the ARM build of Open GApps from OpenGApps.org. Ensure you pick the platform, Android version and variant matching your LineageOS build:
For example for Lineage 14.1 on ARM, I would use:
Platform: ARM
Android: 7.1
Variant: Pico
-
Just like the LineageOS image earlier, write the GApps zip onto your SD card using Etcher.
-
With your LineageOS Pi already booted, insert the GApps SD card. Open the LineageOS Settings -> Storage menu and select the SD card.
-
Click the GApps
.zippackage visible under SD card storage. When prompted choose to Install the package. -
Let the process complete, then reboot. The Play Store and Google apps will be automatically set up!
And that covers the full setup. You now have an inexpensive Raspberry Pi running a customized build of Android with full Google services enabled.
The open nature of Android allows tons of possibilities like gaming emulators for old school consoles or running exclusive apps like Dex for Samsung. Have fun exploring and tinkering!
I hope you found this guide helpful for installing and setting up LineageOS on your Raspberry Pi 3. Let me know if you have any other questions!


