SlideShare a Scribd company logo
1
Open source Android 10 on Orange Pi: Meth
or Reality?
Stanislav Goncharov
Roman Stratiienko
Maksym Prymierov
2
1. Overview available environment
2. Android OS
3. Requirements
4. Configuration customization
5. PoC timeline
6. Worktree structure
7. Main components structure
8. Results
9. Supported platforms
10.Demo
Agenda
3
Single-board computers (SBC)
4
Boards SoC GPU Price Available
RASPBERRY PI 4
MODEL B
Broadcom BCM2711
Cortex-A72 Quad core
VideoCore VI $52.97 Android 7.1.2
BANANA PI M2 ULTR
Allwinner R40 ARM
Cortex A7 Quad core
Mali-400MP2 $56.99 Android 7.1.2
ODROID-C2
Amlogic S905 Cortex-
A53 Quad core
Mali-450 $85.40 Android 8.1
NANOPI K2
Amlogic S905 Cortex-
A53 Quad core
Mali-450MP $53 Android 8.1
PINE A64+
ARM Cortex A53 Quad-
Core
Mali-400MP2 $29 Android 7.0
Orange Pi 3
Allwinner H6 Cortex-
A53 Quad core
Mali-720 $34.90 Android 7.0
HiKey 960 Kirin 960 ARM Mali G71 MP8 $239.00 Android 9.0
SanCloud BeagleBone
Enhanced
AM3358 SGX530 $69.00 Custom Android for BBB
HW Comparison Table, 2Gb DDR3
5
Most Popular Mobile OS 2019
6
Android Structure
https://source.android.com/setup
7
Project requirements
1. Use the last actual version of Android
2. Take cheap Single Board Computer
3. Use Open Source Projects only
4. Have an Open Source Solution
5. Have a solution from the box
6. Have fun
8
Project requirements
1. Use the last actual version of Android
2. Take cheap Single Board Computer
3. Use Open Source Projects only
4. Have an Open Source Solution
5. Have a solution from the box
6. Have fun
9
Android Structure
https://source.android.com/setup
10
Theory of Configuration customization
1. Create Build Layers
2. Build variants
3. Build customization over Resource Overlays
4. Write the Makefiles
- Makefile that declares the files and modules needed for the device (device.mk)
- Product definition makefile (a specific product based on the device) (vendor.mk)
- File that points to the product's makefiles (AndroidProducts.mk)
- Makefile that contains board-specific configurations (BoardConfig.mk)
- File to add your product (a "lunch combo") to the build along with a build variant separated by a
dash (vendorsetup.sh)
- Set Product Definition Variables
- Set ANDROID_VENDOR_KEYS to connect over USB
https://source.android.com/setup/develop/new-device
11
Project requirements
1. Use the last actual version of Android
2. Take cheap Single Board Computer
3. Use Open Source Projects only
4. Have an Open Source Solution
5. Have a solution from the box
6. Have fun
12
Orange Pi Plus2e
(Shenzhen Xunlong Software)
http://www.orangepi.org/orangepiplus2e/
13
Project requirements
1. Use the last actual version of Android
2. Take cheap Single Board Computer
3. Use Open Source Projects only
4. Have an Open Source Solution
5. Have a solution from the box
6. Have fun
14
Project requirements
1. Use the last actual version of Android
2. Take cheap Single Board Computer
3. Use Open Source Projects only
4. Have an Open Source Solution
5. Have a solution from the box
6. Have fun
15
Repo
(a Google-built repository management tool that runs on top of Git)
repo init -u $URL -b $BRANCH -m $MANIFEST
--------------------
mkdir .repo; cd .repo
git clone https://android.googlesource.com/tools/repo
git clone --bare $URL manifests.git
mkdir -p manifests/.git; cd manifests/.git
for i in ../../manifests.git/*; do ln -s $ı .; done
cd ..
git checkout $BRANCH -- .
cd ..
ln -s manifests/$MANIFEST manifest.xml
https://android.googlesource.com/tools/repo/+/maint/docs/manifest-format.txt
16
Project requirements
1. Use the last actual version of Android
2. Take cheap Single Board Computer
3. Use Open Source Projects only
4. Have an Open Source Solution
5. Have a solution from the box
6. Have fun
17
Confidential
17
GloDroid Porting Details
18
Guided by:
1. Trustworthiness
- Upstream as much our work as possible into mainline repositories with high acceptance criteria.
- Use repository forks only if necessary.
- Keep own code clean and easy for review.
- Avoid usage of proprietary binaries.
1. High performance (in progress)
- Continuously bring-up and improve hardware acceleration.
- Optimization in graphics path, profiling, caching.
1. Reliability (in plans after first release)
- Continue to fix existing and new bugs.
- Setup CI server to track regression and report to developer before applying new changes.
- Use and extend VTS and CTS.
- Manual testing (We hope to get your help here).
1. Free and open source
- Get as much as possible feedback from the community.
- Split development across the community.
- Keep project alive during long period of time.
19
Worktree structure
Path Description GL Patches
device/glodroid Product makefiles All
prebuilts/applications Non-AOSP applications (f-droid, kodi) All
external/drm_hwcomposer Opensource HWComposer HAL based on DRM/KMS 2
external/mesa3d Opensource OpenGL & Vulkan implementation for variety of graphic cards 1
kernel/glodroid Mainline kernel (v5.4-rc7) + Google Patchset 8
external/tinyhal Opensource audio HAL from Cirrus Logic -
external/gbm_gralloc Opensource gralloc HAL that is using mesa GBM interface. -
external/u-boot Mainline u-boot v2019.10 -
kernel/glodroid-modules/rtl8189ES_linux Out of tree wifi kernel module -
prebuilts/gcc/linux-x86/arm/gcc-linaro_arm-linux-gnueabihf Prebuilt gcc from linaro (used to compile kernel and u-boot) -
Other 740+ repositories Google AOSP v10.0.0-r14 -
GloDroid
repos
Modified
Forks
Opensource
repositories
20
GPU and VPU drivers timeline.
21
Guided by:
1. Trustworthiness
- Upstream as much our work as possible into mainline repositories with high acceptance criteria.
- Use repository forks only if necessary.
- Keep own code clean and easy for review.
- Avoid usage of proprietary binaries.
1. High performance (in progress)
- Continuously bring-up and improve hardware acceleration.
- Optimization in graphics path, profiling, caching.
1. Reliability (in plans after first release)
- Continue to fix existing and new bugs.
- Setup CI server to track regression and report to developer before applying new changes.
- Use and extend VTS and CTS.
- Manual testing (We hope to get your help here).
1. Free and open source
- Get as much as possible feedback from the community.
- Split development across the community.
- Keep project alive during long period of time.
22
Main components structure
23
Step 1. Composer-
>ValidateDisplay()
Step 2: Composer-
>PresentDisplay()
HWComposer stages
Thanks to Linaro! Link to slides: https://s3.amazonaws.com/connect.linaro.org/yvr18/presentations/yvr18-204.pdf
SurfaceFlinger
24
Guided by:
1. Trustworthiness
- Upstream as much our work as possible into mainline repositories with high acceptance criteria.
- Use repository forks only if necessary.
- Keep own code clean and easy for review.
- Avoid usage of proprietary binaries.
1. High performance (in progress)
- Continuously bring-up and improve hardware acceleration.
- Optimization in graphics path, profiling, caching.
1. Reliability (in plans after first release)
- Continue to fix existing and new bugs.
- Setup CI server to track regression and report to developer before applying new changes.
- Use and extend VTS and CTS.
- Manual testing (We hope to get your help here).
1. Free and open source
- Get as much as possible feedback from community.
- Split development across the the community.
- Keep project alive during long period of time.
25
Community mainlining effort
For more info visit the following links:
Raspberry PI 4 support: https://github.com/lategoodbye/rpi-zero/issues/43
Sunxi support: https://linux-sunxi.org/Linux_mainlining_effort
H3 SOC (OPI PC) H6 SOC (OPI 3) BCM2711 (RPI 4)
Device Support Kernel v3.18 Kernel v4.17 Kernel v5.5
GPU Driver Kernel v5.2 Kernel v5.5 Kernel v4.18
VPU Driver (h264) Kernel v5.3 Kernel v5.3 Optimized CPU,
GPU + NEON?
VPU Driver (h265) Kernel v5.5 Kernel v5.5 Optimized CPU,
GPU + NEON?
26
Effort distribution
Changed by GL:
+1350 lines in makefiles
+300 lines in C/C++ code
27
Confidential
27
GloDroid Summary
28
Current project status
1. Android 10.0.0 Release 14
2. Linux Kernel version 5.3
3. U-Boot v2019.10
4. Mesa (upstream)
5. HW Composer (upstream)
6. Tinyhal (upstream)
7. Built by Linaro GCC for ARM v.7.4.1
29
Building Android
mkdir -p GloDroid
cd GloDroid
repo init -u https://github.com/glodroid/glodroid_manifest
repo sync -cq
source ./build/envsetup.sh
lunch opi_plus2e-userdebug
make sdcard
$ dd if=out/target/product/plus2e/sdcard.img of=/dev/sdX bs=4k
$ sync
30
Supported platforms
Orange PI PC
SOC: Allwinner H3
CPU: ARMv7
RAM: 1GB
Retail price: 15$
Orange PI plus2e
SOC: Allwinner H3
CPU: ARMv7
RAM: 2GB
Retail price: 46$
Orange PI 3
SOC: Allwinner H6
CPU: ARMv8 64bit
RAM: 2GB
Retail price: 40$
Raspberry PI 4
SOC: Broadcom BCM2711
CPU: Cortex-A72 Quad
core
RAM: 1,2,4GB
Retail price: 54$ (2GB)
In plans
31
Q & A? - Follow us on GitHub :)
https://github.com/glodroid/glodroid_manifest
32
Thank You
Ad

Recommended

Recent taxonomic classification of lepidoptera
Recent taxonomic classification of lepidoptera
TAMIL NADU AGRICULTURAL UNIVERSITY
 
Open-source Android 10 on Orange Pi: myth or reality?
Open-source Android 10 on Orange Pi: myth or reality?
GlobalLogic Ukraine
 
Embedded Webinar #12 “GloDroid or Boosting True Open Source Android Stack Dev...
Embedded Webinar #12 “GloDroid or Boosting True Open Source Android Stack Dev...
GlobalLogic Ukraine
 
Develop Community-based Android Distribution and Upstreaming Experience
Develop Community-based Android Distribution and Upstreaming Experience
National Cheng Kung University
 
Working with the AOSP - Linaro Connect Asia 2013
Working with the AOSP - Linaro Connect Asia 2013
Opersys inc.
 
Android Things Internals
Android Things Internals
Opersys inc.
 
Android rpi-csimmonds-fosdem-2019
Android rpi-csimmonds-fosdem-2019
Chris Simmonds
 
Android Things: Android for IoT
Android Things: Android for IoT
Opersys inc.
 
Android porting for dummies @droidconin 2011
Android porting for dummies @droidconin 2011
pundiramit
 
Android Things Internals
Android Things Internals
Opersys inc.
 
Introduction to Android ROM cooking, part of my AnDevCon workshop (AnDevCon S...
Introduction to Android ROM cooking, part of my AnDevCon workshop (AnDevCon S...
Ron Munitz
 
Android open source project build system phi innovations - android summit 2015
Android open source project build system phi innovations - android summit 2015
Rafael Coutinho
 
Leveraging Android's Linux Heritage at AnDevCon IV
Leveraging Android's Linux Heritage at AnDevCon IV
Opersys inc.
 
Enhancing and modifying_the_core_android_os
Enhancing and modifying_the_core_android_os
Arnav Gupta
 
Build Community Android Distribution and Ensure the Quality
Build Community Android Distribution and Ensure the Quality
National Cheng Kung University
 
Enhancing and modifying_the_core_android_os
Enhancing and modifying_the_core_android_os
Arnav Gupta
 
Embedded Android Workshop with Marshmallow
Embedded Android Workshop with Marshmallow
Opersys inc.
 
Android Security Development - Part 2: Malicious Android App Dynamic Analyzi...
Android Security Development - Part 2: Malicious Android App Dynamic Analyzi...
Cheng-Yi Yu
 
Embedded Android Workshop at AnDevCon V
Embedded Android Workshop at AnDevCon V
Opersys inc.
 
Embedded Android Workshop with Lollipop
Embedded Android Workshop with Lollipop
Opersys inc.
 
Deep Dive into the AOSP
Deep Dive into the AOSP
Dr. Ketan Parmar
 
Android Hacks, Variants, Tricks and Resources ESC SV 2012
Android Hacks, Variants, Tricks and Resources ESC SV 2012
Opersys inc.
 
Embedded Android Workshop with Lollipop
Embedded Android Workshop with Lollipop
Opersys inc.
 
Internet of Smaller Things
Internet of Smaller Things
Samsung Open Source Group
 
Android OS Porting: Introduction
Android OS Porting: Introduction
Jollen Chen
 
Embedded Android Workshop
Embedded Android Workshop
Opersys inc.
 
Building aosp
Building aosp
gvercoutere
 
Embedded Android Workshop with Marshmallow
Embedded Android Workshop with Marshmallow
Karim Yaghmour
 
GlobalLogic JavaScript Community Webinar #21 “Інтерв’ю без заспокійливих”
GlobalLogic JavaScript Community Webinar #21 “Інтерв’ю без заспокійливих”
GlobalLogic Ukraine
 
Deadlocks in SQL - Turning Fear Into Understanding (by Sergii Stets)
Deadlocks in SQL - Turning Fear Into Understanding (by Sergii Stets)
GlobalLogic Ukraine
 

More Related Content

Similar to Open source Android 10 on Orange Pi: Meth or Reality? (20)

Android porting for dummies @droidconin 2011
Android porting for dummies @droidconin 2011
pundiramit
 
Android Things Internals
Android Things Internals
Opersys inc.
 
Introduction to Android ROM cooking, part of my AnDevCon workshop (AnDevCon S...
Introduction to Android ROM cooking, part of my AnDevCon workshop (AnDevCon S...
Ron Munitz
 
Android open source project build system phi innovations - android summit 2015
Android open source project build system phi innovations - android summit 2015
Rafael Coutinho
 
Leveraging Android's Linux Heritage at AnDevCon IV
Leveraging Android's Linux Heritage at AnDevCon IV
Opersys inc.
 
Enhancing and modifying_the_core_android_os
Enhancing and modifying_the_core_android_os
Arnav Gupta
 
Build Community Android Distribution and Ensure the Quality
Build Community Android Distribution and Ensure the Quality
National Cheng Kung University
 
Enhancing and modifying_the_core_android_os
Enhancing and modifying_the_core_android_os
Arnav Gupta
 
Embedded Android Workshop with Marshmallow
Embedded Android Workshop with Marshmallow
Opersys inc.
 
Android Security Development - Part 2: Malicious Android App Dynamic Analyzi...
Android Security Development - Part 2: Malicious Android App Dynamic Analyzi...
Cheng-Yi Yu
 
Embedded Android Workshop at AnDevCon V
Embedded Android Workshop at AnDevCon V
Opersys inc.
 
Embedded Android Workshop with Lollipop
Embedded Android Workshop with Lollipop
Opersys inc.
 
Deep Dive into the AOSP
Deep Dive into the AOSP
Dr. Ketan Parmar
 
Android Hacks, Variants, Tricks and Resources ESC SV 2012
Android Hacks, Variants, Tricks and Resources ESC SV 2012
Opersys inc.
 
Embedded Android Workshop with Lollipop
Embedded Android Workshop with Lollipop
Opersys inc.
 
Internet of Smaller Things
Internet of Smaller Things
Samsung Open Source Group
 
Android OS Porting: Introduction
Android OS Porting: Introduction
Jollen Chen
 
Embedded Android Workshop
Embedded Android Workshop
Opersys inc.
 
Building aosp
Building aosp
gvercoutere
 
Embedded Android Workshop with Marshmallow
Embedded Android Workshop with Marshmallow
Karim Yaghmour
 
Android porting for dummies @droidconin 2011
Android porting for dummies @droidconin 2011
pundiramit
 
Android Things Internals
Android Things Internals
Opersys inc.
 
Introduction to Android ROM cooking, part of my AnDevCon workshop (AnDevCon S...
Introduction to Android ROM cooking, part of my AnDevCon workshop (AnDevCon S...
Ron Munitz
 
Android open source project build system phi innovations - android summit 2015
Android open source project build system phi innovations - android summit 2015
Rafael Coutinho
 
Leveraging Android's Linux Heritage at AnDevCon IV
Leveraging Android's Linux Heritage at AnDevCon IV
Opersys inc.
 
Enhancing and modifying_the_core_android_os
Enhancing and modifying_the_core_android_os
Arnav Gupta
 
Build Community Android Distribution and Ensure the Quality
Build Community Android Distribution and Ensure the Quality
National Cheng Kung University
 
Enhancing and modifying_the_core_android_os
Enhancing and modifying_the_core_android_os
Arnav Gupta
 
Embedded Android Workshop with Marshmallow
Embedded Android Workshop with Marshmallow
Opersys inc.
 
Android Security Development - Part 2: Malicious Android App Dynamic Analyzi...
Android Security Development - Part 2: Malicious Android App Dynamic Analyzi...
Cheng-Yi Yu
 
Embedded Android Workshop at AnDevCon V
Embedded Android Workshop at AnDevCon V
Opersys inc.
 
Embedded Android Workshop with Lollipop
Embedded Android Workshop with Lollipop
Opersys inc.
 
Android Hacks, Variants, Tricks and Resources ESC SV 2012
Android Hacks, Variants, Tricks and Resources ESC SV 2012
Opersys inc.
 
Embedded Android Workshop with Lollipop
Embedded Android Workshop with Lollipop
Opersys inc.
 
Android OS Porting: Introduction
Android OS Porting: Introduction
Jollen Chen
 
Embedded Android Workshop
Embedded Android Workshop
Opersys inc.
 
Embedded Android Workshop with Marshmallow
Embedded Android Workshop with Marshmallow
Karim Yaghmour
 

More from GlobalLogic Ukraine (20)

GlobalLogic JavaScript Community Webinar #21 “Інтерв’ю без заспокійливих”
GlobalLogic JavaScript Community Webinar #21 “Інтерв’ю без заспокійливих”
GlobalLogic Ukraine
 
Deadlocks in SQL - Turning Fear Into Understanding (by Sergii Stets)
Deadlocks in SQL - Turning Fear Into Understanding (by Sergii Stets)
GlobalLogic Ukraine
 
GlobalLogic Java Community Webinar #18 “How to Improve Web Application Perfor...
GlobalLogic Java Community Webinar #18 “How to Improve Web Application Perfor...
GlobalLogic Ukraine
 
GlobalLogic Embedded Community x ROS Ukraine Webinar "Surgical Robots"
GlobalLogic Embedded Community x ROS Ukraine Webinar "Surgical Robots"
GlobalLogic Ukraine
 
GlobalLogic Java Community Webinar #17 “SpringJDBC vs JDBC. Is Spring a Hero?”
GlobalLogic Java Community Webinar #17 “SpringJDBC vs JDBC. Is Spring a Hero?”
GlobalLogic Ukraine
 
GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”
GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”
GlobalLogic Ukraine
 
Штучний інтелект як допомога в навчанні, а не замінник.pptx
Штучний інтелект як допомога в навчанні, а не замінник.pptx
GlobalLogic Ukraine
 
Задачі AI-розробника як застосовується штучний інтелект.pptx
Задачі AI-розробника як застосовується штучний інтелект.pptx
GlobalLogic Ukraine
 
Що треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptx
Що треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptx
GlobalLogic Ukraine
 
GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...
GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...
GlobalLogic Ukraine
 
JavaScript Community Webinar #14 "Why Is Git Rebase?"
JavaScript Community Webinar #14 "Why Is Git Rebase?"
GlobalLogic Ukraine
 
GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...
GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...
GlobalLogic Ukraine
 
Страх і сила помилок - IT Inside від GlobalLogic Education
Страх і сила помилок - IT Inside від GlobalLogic Education
GlobalLogic Ukraine
 
GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”
GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”
GlobalLogic Ukraine
 
GlobalLogic QA Webinar “What does it take to become a Test Engineer”
GlobalLogic QA Webinar “What does it take to become a Test Engineer”
GlobalLogic Ukraine
 
“How to Secure Your Applications With a Keycloak?
“How to Secure Your Applications With a Keycloak?
GlobalLogic Ukraine
 
GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...
GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...
GlobalLogic Ukraine
 
GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...
GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...
GlobalLogic Ukraine
 
GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”
GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”
GlobalLogic Ukraine
 
Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"
Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"
GlobalLogic Ukraine
 
GlobalLogic JavaScript Community Webinar #21 “Інтерв’ю без заспокійливих”
GlobalLogic JavaScript Community Webinar #21 “Інтерв’ю без заспокійливих”
GlobalLogic Ukraine
 
Deadlocks in SQL - Turning Fear Into Understanding (by Sergii Stets)
Deadlocks in SQL - Turning Fear Into Understanding (by Sergii Stets)
GlobalLogic Ukraine
 
GlobalLogic Java Community Webinar #18 “How to Improve Web Application Perfor...
GlobalLogic Java Community Webinar #18 “How to Improve Web Application Perfor...
GlobalLogic Ukraine
 
GlobalLogic Embedded Community x ROS Ukraine Webinar "Surgical Robots"
GlobalLogic Embedded Community x ROS Ukraine Webinar "Surgical Robots"
GlobalLogic Ukraine
 
GlobalLogic Java Community Webinar #17 “SpringJDBC vs JDBC. Is Spring a Hero?”
GlobalLogic Java Community Webinar #17 “SpringJDBC vs JDBC. Is Spring a Hero?”
GlobalLogic Ukraine
 
GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”
GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”
GlobalLogic Ukraine
 
Штучний інтелект як допомога в навчанні, а не замінник.pptx
Штучний інтелект як допомога в навчанні, а не замінник.pptx
GlobalLogic Ukraine
 
Задачі AI-розробника як застосовується штучний інтелект.pptx
Задачі AI-розробника як застосовується штучний інтелект.pptx
GlobalLogic Ukraine
 
Що треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptx
Що треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptx
GlobalLogic Ukraine
 
GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...
GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...
GlobalLogic Ukraine
 
JavaScript Community Webinar #14 "Why Is Git Rebase?"
JavaScript Community Webinar #14 "Why Is Git Rebase?"
GlobalLogic Ukraine
 
GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...
GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...
GlobalLogic Ukraine
 
Страх і сила помилок - IT Inside від GlobalLogic Education
Страх і сила помилок - IT Inside від GlobalLogic Education
GlobalLogic Ukraine
 
GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”
GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”
GlobalLogic Ukraine
 
GlobalLogic QA Webinar “What does it take to become a Test Engineer”
GlobalLogic QA Webinar “What does it take to become a Test Engineer”
GlobalLogic Ukraine
 
“How to Secure Your Applications With a Keycloak?
“How to Secure Your Applications With a Keycloak?
GlobalLogic Ukraine
 
GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...
GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...
GlobalLogic Ukraine
 
GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...
GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...
GlobalLogic Ukraine
 
GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”
GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”
GlobalLogic Ukraine
 
Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"
Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"
GlobalLogic Ukraine
 
Ad

Recently uploaded (20)

OWASP Barcelona 2025 Threat Model Library
OWASP Barcelona 2025 Threat Model Library
PetraVukmirovic
 
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Josef Weingand
 
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Priyanka Aash
 
Quantum AI: Where Impossible Becomes Probable
Quantum AI: Where Impossible Becomes Probable
Saikat Basu
 
The Future of Product Management in AI ERA.pdf
The Future of Product Management in AI ERA.pdf
Alyona Owens
 
AI VIDEO MAGAZINE - June 2025 - r/aivideo
AI VIDEO MAGAZINE - June 2025 - r/aivideo
1pcity Studios, Inc
 
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
revolcs10
 
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
Fwdays
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
"Scaling in space and time with Temporal", Andriy Lupa.pdf
"Scaling in space and time with Temporal", Andriy Lupa.pdf
Fwdays
 
Securing Account Lifecycles in the Age of Deepfakes.pptx
Securing Account Lifecycles in the Age of Deepfakes.pptx
FIDO Alliance
 
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Safe Software
 
UserCon Belgium: Honey, VMware increased my bill
UserCon Belgium: Honey, VMware increased my bill
stijn40
 
Security Tips for Enterprise Azure Solutions
Security Tips for Enterprise Azure Solutions
Michele Leroux Bustamante
 
Mastering AI Workflows with FME by Mark Döring
Mastering AI Workflows with FME by Mark Döring
Safe Software
 
Curietech AI in action - Accelerate MuleSoft development
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 
9-1-1 Addressing: End-to-End Automation Using FME
9-1-1 Addressing: End-to-End Automation Using FME
Safe Software
 
Cluster-Based Multi-Objective Metamorphic Test Case Pair Selection for Deep N...
Cluster-Based Multi-Objective Metamorphic Test Case Pair Selection for Deep N...
janeliewang985
 
WebdriverIO & JavaScript: The Perfect Duo for Web Automation
WebdriverIO & JavaScript: The Perfect Duo for Web Automation
digitaljignect
 
Cyber Defense Matrix Workshop - RSA Conference
Cyber Defense Matrix Workshop - RSA Conference
Priyanka Aash
 
OWASP Barcelona 2025 Threat Model Library
OWASP Barcelona 2025 Threat Model Library
PetraVukmirovic
 
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Josef Weingand
 
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Priyanka Aash
 
Quantum AI: Where Impossible Becomes Probable
Quantum AI: Where Impossible Becomes Probable
Saikat Basu
 
The Future of Product Management in AI ERA.pdf
The Future of Product Management in AI ERA.pdf
Alyona Owens
 
AI VIDEO MAGAZINE - June 2025 - r/aivideo
AI VIDEO MAGAZINE - June 2025 - r/aivideo
1pcity Studios, Inc
 
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
revolcs10
 
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
Fwdays
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
"Scaling in space and time with Temporal", Andriy Lupa.pdf
"Scaling in space and time with Temporal", Andriy Lupa.pdf
Fwdays
 
Securing Account Lifecycles in the Age of Deepfakes.pptx
Securing Account Lifecycles in the Age of Deepfakes.pptx
FIDO Alliance
 
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Safe Software
 
UserCon Belgium: Honey, VMware increased my bill
UserCon Belgium: Honey, VMware increased my bill
stijn40
 
Security Tips for Enterprise Azure Solutions
Security Tips for Enterprise Azure Solutions
Michele Leroux Bustamante
 
Mastering AI Workflows with FME by Mark Döring
Mastering AI Workflows with FME by Mark Döring
Safe Software
 
Curietech AI in action - Accelerate MuleSoft development
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 
9-1-1 Addressing: End-to-End Automation Using FME
9-1-1 Addressing: End-to-End Automation Using FME
Safe Software
 
Cluster-Based Multi-Objective Metamorphic Test Case Pair Selection for Deep N...
Cluster-Based Multi-Objective Metamorphic Test Case Pair Selection for Deep N...
janeliewang985
 
WebdriverIO & JavaScript: The Perfect Duo for Web Automation
WebdriverIO & JavaScript: The Perfect Duo for Web Automation
digitaljignect
 
Cyber Defense Matrix Workshop - RSA Conference
Cyber Defense Matrix Workshop - RSA Conference
Priyanka Aash
 
Ad

Open source Android 10 on Orange Pi: Meth or Reality?

  • 1. 1 Open source Android 10 on Orange Pi: Meth or Reality? Stanislav Goncharov Roman Stratiienko Maksym Prymierov
  • 2. 2 1. Overview available environment 2. Android OS 3. Requirements 4. Configuration customization 5. PoC timeline 6. Worktree structure 7. Main components structure 8. Results 9. Supported platforms 10.Demo Agenda
  • 4. 4 Boards SoC GPU Price Available RASPBERRY PI 4 MODEL B Broadcom BCM2711 Cortex-A72 Quad core VideoCore VI $52.97 Android 7.1.2 BANANA PI M2 ULTR Allwinner R40 ARM Cortex A7 Quad core Mali-400MP2 $56.99 Android 7.1.2 ODROID-C2 Amlogic S905 Cortex- A53 Quad core Mali-450 $85.40 Android 8.1 NANOPI K2 Amlogic S905 Cortex- A53 Quad core Mali-450MP $53 Android 8.1 PINE A64+ ARM Cortex A53 Quad- Core Mali-400MP2 $29 Android 7.0 Orange Pi 3 Allwinner H6 Cortex- A53 Quad core Mali-720 $34.90 Android 7.0 HiKey 960 Kirin 960 ARM Mali G71 MP8 $239.00 Android 9.0 SanCloud BeagleBone Enhanced AM3358 SGX530 $69.00 Custom Android for BBB HW Comparison Table, 2Gb DDR3
  • 7. 7 Project requirements 1. Use the last actual version of Android 2. Take cheap Single Board Computer 3. Use Open Source Projects only 4. Have an Open Source Solution 5. Have a solution from the box 6. Have fun
  • 8. 8 Project requirements 1. Use the last actual version of Android 2. Take cheap Single Board Computer 3. Use Open Source Projects only 4. Have an Open Source Solution 5. Have a solution from the box 6. Have fun
  • 10. 10 Theory of Configuration customization 1. Create Build Layers 2. Build variants 3. Build customization over Resource Overlays 4. Write the Makefiles - Makefile that declares the files and modules needed for the device (device.mk) - Product definition makefile (a specific product based on the device) (vendor.mk) - File that points to the product's makefiles (AndroidProducts.mk) - Makefile that contains board-specific configurations (BoardConfig.mk) - File to add your product (a "lunch combo") to the build along with a build variant separated by a dash (vendorsetup.sh) - Set Product Definition Variables - Set ANDROID_VENDOR_KEYS to connect over USB https://source.android.com/setup/develop/new-device
  • 11. 11 Project requirements 1. Use the last actual version of Android 2. Take cheap Single Board Computer 3. Use Open Source Projects only 4. Have an Open Source Solution 5. Have a solution from the box 6. Have fun
  • 12. 12 Orange Pi Plus2e (Shenzhen Xunlong Software) http://www.orangepi.org/orangepiplus2e/
  • 13. 13 Project requirements 1. Use the last actual version of Android 2. Take cheap Single Board Computer 3. Use Open Source Projects only 4. Have an Open Source Solution 5. Have a solution from the box 6. Have fun
  • 14. 14 Project requirements 1. Use the last actual version of Android 2. Take cheap Single Board Computer 3. Use Open Source Projects only 4. Have an Open Source Solution 5. Have a solution from the box 6. Have fun
  • 15. 15 Repo (a Google-built repository management tool that runs on top of Git) repo init -u $URL -b $BRANCH -m $MANIFEST -------------------- mkdir .repo; cd .repo git clone https://android.googlesource.com/tools/repo git clone --bare $URL manifests.git mkdir -p manifests/.git; cd manifests/.git for i in ../../manifests.git/*; do ln -s $ı .; done cd .. git checkout $BRANCH -- . cd .. ln -s manifests/$MANIFEST manifest.xml https://android.googlesource.com/tools/repo/+/maint/docs/manifest-format.txt
  • 16. 16 Project requirements 1. Use the last actual version of Android 2. Take cheap Single Board Computer 3. Use Open Source Projects only 4. Have an Open Source Solution 5. Have a solution from the box 6. Have fun
  • 18. 18 Guided by: 1. Trustworthiness - Upstream as much our work as possible into mainline repositories with high acceptance criteria. - Use repository forks only if necessary. - Keep own code clean and easy for review. - Avoid usage of proprietary binaries. 1. High performance (in progress) - Continuously bring-up and improve hardware acceleration. - Optimization in graphics path, profiling, caching. 1. Reliability (in plans after first release) - Continue to fix existing and new bugs. - Setup CI server to track regression and report to developer before applying new changes. - Use and extend VTS and CTS. - Manual testing (We hope to get your help here). 1. Free and open source - Get as much as possible feedback from the community. - Split development across the community. - Keep project alive during long period of time.
  • 19. 19 Worktree structure Path Description GL Patches device/glodroid Product makefiles All prebuilts/applications Non-AOSP applications (f-droid, kodi) All external/drm_hwcomposer Opensource HWComposer HAL based on DRM/KMS 2 external/mesa3d Opensource OpenGL & Vulkan implementation for variety of graphic cards 1 kernel/glodroid Mainline kernel (v5.4-rc7) + Google Patchset 8 external/tinyhal Opensource audio HAL from Cirrus Logic - external/gbm_gralloc Opensource gralloc HAL that is using mesa GBM interface. - external/u-boot Mainline u-boot v2019.10 - kernel/glodroid-modules/rtl8189ES_linux Out of tree wifi kernel module - prebuilts/gcc/linux-x86/arm/gcc-linaro_arm-linux-gnueabihf Prebuilt gcc from linaro (used to compile kernel and u-boot) - Other 740+ repositories Google AOSP v10.0.0-r14 - GloDroid repos Modified Forks Opensource repositories
  • 20. 20 GPU and VPU drivers timeline.
  • 21. 21 Guided by: 1. Trustworthiness - Upstream as much our work as possible into mainline repositories with high acceptance criteria. - Use repository forks only if necessary. - Keep own code clean and easy for review. - Avoid usage of proprietary binaries. 1. High performance (in progress) - Continuously bring-up and improve hardware acceleration. - Optimization in graphics path, profiling, caching. 1. Reliability (in plans after first release) - Continue to fix existing and new bugs. - Setup CI server to track regression and report to developer before applying new changes. - Use and extend VTS and CTS. - Manual testing (We hope to get your help here). 1. Free and open source - Get as much as possible feedback from the community. - Split development across the community. - Keep project alive during long period of time.
  • 23. 23 Step 1. Composer- >ValidateDisplay() Step 2: Composer- >PresentDisplay() HWComposer stages Thanks to Linaro! Link to slides: https://s3.amazonaws.com/connect.linaro.org/yvr18/presentations/yvr18-204.pdf SurfaceFlinger
  • 24. 24 Guided by: 1. Trustworthiness - Upstream as much our work as possible into mainline repositories with high acceptance criteria. - Use repository forks only if necessary. - Keep own code clean and easy for review. - Avoid usage of proprietary binaries. 1. High performance (in progress) - Continuously bring-up and improve hardware acceleration. - Optimization in graphics path, profiling, caching. 1. Reliability (in plans after first release) - Continue to fix existing and new bugs. - Setup CI server to track regression and report to developer before applying new changes. - Use and extend VTS and CTS. - Manual testing (We hope to get your help here). 1. Free and open source - Get as much as possible feedback from community. - Split development across the the community. - Keep project alive during long period of time.
  • 25. 25 Community mainlining effort For more info visit the following links: Raspberry PI 4 support: https://github.com/lategoodbye/rpi-zero/issues/43 Sunxi support: https://linux-sunxi.org/Linux_mainlining_effort H3 SOC (OPI PC) H6 SOC (OPI 3) BCM2711 (RPI 4) Device Support Kernel v3.18 Kernel v4.17 Kernel v5.5 GPU Driver Kernel v5.2 Kernel v5.5 Kernel v4.18 VPU Driver (h264) Kernel v5.3 Kernel v5.3 Optimized CPU, GPU + NEON? VPU Driver (h265) Kernel v5.5 Kernel v5.5 Optimized CPU, GPU + NEON?
  • 26. 26 Effort distribution Changed by GL: +1350 lines in makefiles +300 lines in C/C++ code
  • 28. 28 Current project status 1. Android 10.0.0 Release 14 2. Linux Kernel version 5.3 3. U-Boot v2019.10 4. Mesa (upstream) 5. HW Composer (upstream) 6. Tinyhal (upstream) 7. Built by Linaro GCC for ARM v.7.4.1
  • 29. 29 Building Android mkdir -p GloDroid cd GloDroid repo init -u https://github.com/glodroid/glodroid_manifest repo sync -cq source ./build/envsetup.sh lunch opi_plus2e-userdebug make sdcard $ dd if=out/target/product/plus2e/sdcard.img of=/dev/sdX bs=4k $ sync
  • 30. 30 Supported platforms Orange PI PC SOC: Allwinner H3 CPU: ARMv7 RAM: 1GB Retail price: 15$ Orange PI plus2e SOC: Allwinner H3 CPU: ARMv7 RAM: 2GB Retail price: 46$ Orange PI 3 SOC: Allwinner H6 CPU: ARMv8 64bit RAM: 2GB Retail price: 40$ Raspberry PI 4 SOC: Broadcom BCM2711 CPU: Cortex-A72 Quad core RAM: 1,2,4GB Retail price: 54$ (2GB) In plans
  • 31. 31 Q & A? - Follow us on GitHub :) https://github.com/glodroid/glodroid_manifest