Developer ports LineageOS 17.1 based on Android 10 to the Raspberry Pi 4 B, 3 B+, and 3 B
Ever since its release in 2012, the Raspberry Pi has become synonymous with single board computers (SBCs). The latest iteration of this credit card-sized computer, the Raspberry Pi 4, comes with up to 8GB of RAM and ARM64 support. The Raspberry Pi Foundation provides Raspberry Pi OS (formerly called Raspbian) as the default operating system, while various IoT focused distributions such as Windows 10 IoT Core are officially supported as well. Now, XDA Senior Member KonstaT has been able to compile a full-fledged build of Android 10 in the form of LineageOS 17.1 for both the Raspberry Pi 4 (B) and the Raspberry Pi 3 (B/B+).
Peter Yoon, better known as peyo-hd in the android-rpi community, and several other contributors originally started the effort to port Android to the Raspberry Pi boards. To ensure stability, KonstaT further took bits and pieces from the Android Things firmware while building LineageOS. On top of that, Eric Anholt‘s open-source Linux graphics driver stack for the Broadcom VideoCore 4 GPU (present in the Raspberry Pi) made the whole porting process less troublesome.
The complete list of working features includes the following:
- Audio (HDMI, 3.5mm jack, USB microphones, bluetooth speakers/headsets, etc)
- Audio DAC (using PCM512x DACs e.g. Hifiberry DAC+)
- Camera (using official Pi camera modules & UVC USB webcams with SwiftShader software renderer)
- GPS (using external USB modules e.g. U-Blox 7)
- Hardware accelerated graphics (V3D/VC4)
- HDMI display
- IR remotes (using external GPIO IR modules e.g. TSOP4838)
- RTC (using external GPIO I2C modules e.g. DS3231)
- Serial console (using external GPIO serial console adapters e.g. PL2303)
- Touchscreen/multi-touch (using official 7” display with SwiftShader software renderer)
- USB (mouse, keyboard, storage, etc)
- Wi-Fi tethering
Unlike typical Android smartphones, the concept of bootloader unlocking isn’t applicable to the Pi. You need to download the model-specific LineageOS image file, write it to a microSD card (>=8GB), insert the card into the Pi, and just boot it. Due to the fact that you don’t need a custom recovery to flash the ZIP file at the beginning, there is no separate recovery to download, although TWRP comes as the pre-configured recovery environment.
LineageOS on the Raspberry Pi 4/3 runs in 32-bit mode, thus you have to opt for ARM variants of Google apps packages. Moreover, the aforementioned builds require HDMI displays that report supported resolutions using Extended Display Identification Data (EDID). In case you have an incompatible display and can’t see the Android boot animation after the bootup screen, then you may need to manually change the value of
debug.drm.mode.force property in