0% found this document useful (0 votes)
131 views

Android Pie

Pie

Uploaded by

Yash Saraswat
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
131 views

Android Pie

Pie

Uploaded by

Yash Saraswat
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 17

Running Android on the Raspberry Pi

Android Pie meets Raspberry Pi

Chris Simmonds

FOSDEM 2019

Running Android on the Raspberry Pi 1 Copyright © 2011-2019, 2net Ltd


License

These slides are available under a Creative Commons Attribution-ShareAlike 4.0 license. You can read the full
text of the license here
http://creativecommons.org/licenses/by-sa/4.0/legalcode
You are free to

• copy, distribute, display, and perform the work

• make derivative works

• make commercial use of the work

Under the following conditions

• Attribution: you must give the original author credit

• Share Alike: if you alter, transform, or build upon this work, you may distribute the resulting work only
under a license identical to this one (i.e. include this page exactly as it is)

• For any reuse or distribution, you must make clear to others the license terms of this work

Running Android on the Raspberry Pi 2 Copyright © 2011-2019, 2net Ltd


About Chris Simmonds
• Consultant and trainer
• Author of Mastering Embedded Linux Programming
• Working with embedded Linux since 1999
• Android since 2009
• Speaker at many conferences and workshops

"Looking after the Inner Penguin" blog at http://2net.co.uk/

@2net_software

https://uk.linkedin.com/in/chrisdsimmonds/

Running Android on the Raspberry Pi 3 Copyright © 2011-2019, 2net Ltd


Why?

• Porting Android to a dev board is a great way to learn about Android


• It’s a good testing ground for new ideas
• It’s fun! No, really it is!

Running Android on the Raspberry Pi 4 Copyright © 2011-2019, 2net Ltd


What do you need to run Android?

• Hardware from one of the supported architectures


• ARM, x86 or MIPS, in 32 or 64 bit varieties

• Has a recent version of Linux kernel (v4.4 or later)


• At least 512 MiB RAM
• At least 1 GiB flash storage - e.g. eMMC, SD card
• Touchscreen or external display - e.g. HDMI
• GPU with OpenGL ES 2.0 libraries (more about this later)

Running Android on the Raspberry Pi 5 Copyright © 2011-2019, 2net Ltd


Android on dev boards

DragonBoard, Hikey, BeagleBone, WandBoard, Raspberry Pi, Digi ConnectCore ...

Running Android on the Raspberry Pi 6 Copyright © 2011-2019, 2net Ltd


Why Raspberry Pi?

• It’s cheap
• Easy to get hold of
• Hackable
• Because it is there

Running Android on the Raspberry Pi 7 Copyright © 2011-2019, 2net Ltd


Hasn’t it been done already?
Sure! Here are some notable projects
• Android RPi: https://github.com/android-rpi
• LineageOS: (unofficial build from KonstaKang)
https://konstakang.com/devices/rpi3/LineageOS15.1
• RTAndroid: https://embedded.rwth-aachen.de/doku.php?id=en:
tools:rtandroid
• based on research by Igor Kalkov, now merged into emteria.os

• emteria.os: https://emteria.com (not open source)


• Android Things:
https://developer.android.com/things/hardware/raspberrypi
(not open source)
Running Android on the Raspberry Pi 8 Copyright © 2011-2019, 2net Ltd
What do you need?

• A copy of the Android Open Source Project (AOSP)


• A Linux kernel with Android extensions
• A fair knowledge of the hardware
• All the help you can get from existing projects
• A fairly fast computer
• Time and patience

Running Android on the Raspberry Pi 9 Copyright © 2011-2019, 2net Ltd


AOSP and RPi

• What follows is based on Konsta’s port of LineageOS


• My version of the code is at
https://github.com/csimmonds/a4rpi-local-manifest
• Challenges posed by the Raspberry Pi
• Graphics

• Lack of USB OTG port

Running Android on the Raspberry Pi 10 Copyright © 2011-2019, 2net Ltd


Graphics: OpenGL

• We need OpenGL ES 2.0 libraries with Android extensions


• Three options
• Get a copy of the OpenGLES binaries from the vendor, if they exist (they
don’t for Broadcom BCM2708/2835)
• Use Soft GPU, Swiftshader

• Use Mesa and drm_hwcomposer

Running Android on the Raspberry Pi 11 Copyright © 2011-2019, 2net Ltd


Graphics: Swiftshader
App 3-D graphics HWUI Surface Flinger
android.opengl.* 2-D graphics

libEGL.so
Framework OpenGLES libGLESv1_cm.so
libGLESv2.so

SwiftShader libEGL_swiftshader.so
HAL libGLESv1_CM_swiftshader.so
OpenGLES libGLESv2_swiftshader.so

FBDEV
Kernel

Running Android on the Raspberry Pi 12 Copyright © 2011-2019, 2net Ltd


Graphics: Mesa3d
App 3-D graphics HWUI Surface Flinger
android.opengl.* 2-D graphics

libEGL.so
Framework OpenGLES libGLESv1_cm.so
libGLESv2.so

mesa libEGL_mesa.so
HAL libGLESv1_CM_mesa.so
OpenGLES libGLESv2_mesa.so

drm_hwcomposer gralloc

libdrm

DRM
Kernel VC4

Running Android on the Raspberry Pi 13 Copyright © 2011-2019, 2net Ltd


ADB
• Raspberry Pi only has USB host ports, but ADB needs a USB
peripheral port
• Usually provided by a dual mode USB "On The Go" (OTG) port

• (Actually, the BCM283x has OTG hardware but it is used internally to


bridge the USB host controller, Ethernet, and so on)
• But, we can use ADB over Ethernet instead
$ adb connect Android.local
connected to Android.local:5555
$
$ adb shell
rpi3:/ #

Running Android on the Raspberry Pi 14 Copyright © 2011-2019, 2net Ltd


Current status

• Code for Android for


Raspberry Pi is at https:
//github.com/csimmonds/
a4rpi-local-manifest
• Android Pie 9.0 r 30
• Using Swiftshader
• Early stages: still many things to
do

Running Android on the Raspberry Pi 15 Copyright © 2011-2019, 2net Ltd


Delving deeper

• If you would like to discover more about building Android platforms,


visit http://www.2net.co.uk/training.html and enquire about
training classes for your company
• 2net training is available world-wide

Running Android on the Raspberry Pi 16 Copyright © 2011-2019, 2net Ltd


Relevant links:
Android 4 RPi
https://github.com/csimmonds/a4rpi-local-manifest

My web site
http://www.2net.co.uk

Any questions?

Running Android on the Raspberry Pi 17 Copyright © 2011-2019, 2net Ltd

You might also like