SlideShare a Scribd company logo
1
Brillo / Weave
Internals
Embedded Linux Conference Europe 2016
Karim Yaghmour
@karimyaghmour
karim.yaghmour@opersys.com
2
These slides are made available to you under a Creative Commons Share-
Alike 3.0 license. The full terms of this license are here:
https://creativecommons.org/licenses/by-sa/3.0/
Attribution requirements and misc., PLEASE READ:
● This slide must remain as-is in this specific location (slide #2), everything
else you are free to change; including the logo :-)
● Use of figures in other documents must feature the below “Originals at”
URL immediately under that figure and the below copyright notice where
appropriate.
● You are free to fill in the “Delivered and/or customized by” space on the
right as you see fit.
● You are FORBIDEN from using the default “About” slide as-is or any of its
contents.
● You are FORBIDEN from using any content provided by 3rd parties without
the EXPLICIT consent from those parties.
(C) Copyright 2016, Opersys inc.
These slides created by: Karim Yaghmour
Originals at: www.opersys.com/community/docs
Delivered and/or customized by
3
About
● Author of:
● Introduced Linux Trace Toolkit in 1999
● Originated Adeos and relayfs (kernel/relay.c)
● Training, Custom Dev, Consulting, ...
4
Agenda
1. A bit of history
2. Architecture
3. Source layout
4. Images
5. User-space
6. Services / Daemons
7. Weave
8. Example
9. Summing up
5
1. A bit of history
● Embedded Linux
● Android
● Headless Android
● Brillo
6
1.1. Embedded Linux
●
A set of ad-hoc methods to package the Linux kernel with a
(minimal) filesystem.
●
FS content “to be determined” case-by-case
● APIs are specific to each device/build
● “Core software”:
●
BusyBox
●
U-Boot
● GNU Toolchain
●
Your flavor of:
● glibc or uClibc or eglibc
●
yocto or buildroot or eldk or ltib or ptxdist or ...
● No serious UX framework
7
1.2. Android
●
... apart from its ubiquitous UX ...
● Fully-integrated IDE: Android Studio
● SDK/NDK
● ADB
● Fastboot
● Published, well-known, and very rich APIs
● A large and growing developer community
● And still we can use “embedded Linux” components:
● GNU toolchain, BusyBox, u- boot, glibc, ...
An actual standardized dev. env. across all product lines
8
9
1.3. Headless Android
+ =
10
1.4. Brillo / Weave
●
Google platform for IoT*
●
Based on Android
●
Announced at Google I/O 2015
●
Still not officially released
●
Still under active development
●
Need to sign up for developer preview on https://developers.google.com/brillo/
●
Sources available from android.googlesource.com
●
Note:
● This talk based on sources
● This talk NOT based on developer preview or any information thereof :P
* New, hip way of talking about “Embedded Systems”, something that's been around for ~50+ years.
11
2. Architecture
● Embedded Linux
● Android
● Binder
● System services
● HAL
● DBus
● Brillo
● Weave
12
13
14
15
16
/frameworks/base/services/java/...
/frameworks/base/services/jni/
/hardware/libhardware/
/device/[MANUF.]/[DEVICE]
/sdk/emulator/
Kernel or module
/frameworks/base/core/...
AOSP-provided
ASL
Manuf.-provided
Manuf. license
Manuf.-provided
GPL-license
17
18
19
20
3. Source layout
● Getting the sources
● Brillo top level
● Removed from Android top level
● Gone from external/
● New to external
21
3.1. Getting the sources
● Same project repo as Android:
android.googlesource.com
● Different manifest file
● Using “repo”:
$ repo init ­u https://android.googlesource.com/brillo/manifest
$ repo sync
22
3.2. Brillo top level
bionic C library replacement
bootable Reference bootloader
build Build system
device Device-specific files and components
external Copy of external projects used by AOSP
frameworks Native system services and libraries
hardware Hardware support libs
libnativehelper JNI helpers
prebuilts Prebuilt binaries
product “Products” running on Brillo
system Embedded Linux core
tools Brillo Development Kit
23
3.3. Removed from Android top level
art
cts
dalvik
dvelopers
development
docs
frameworks/base and more
libcore
ndk
packages
pdk
sdk
system/vold and more
tools/external
24
3.4. Gone from external/
25
3.5. New to external/
bvb Brillo Verified Boot
chromite Tools to build Chrome OS
gentoo
libdivsufsort lightweight suffix array construction algorithm library
lzop LZO compression tool
26
4. Images
● AOSP x86 32-bit:
● 5.1M out/target/product/generic_x86/cache.img
● 1.3M out/target/product/generic_x86/ramdisk.img
● 1.3G out/target/product/generic_x86/system.img
● 12M out/target/product/generic_x86/userdata.img
● 551M out/target/product/generic_x86/userdata-qemu.img
● Brillo x86 64-bit:
● 6.2M out/target/product/brilloemulator_x86_64/boot.img
● 36K out/target/product/brilloemulator_x86_64/partition-table.img
● 158M out/target/product/brilloemulator_x86_64/system.img
● 201M out/target/product/brilloemulator_x86_64/userdata.img
● 551M out/target/product/brilloemulator_x86_64/userdata-qemu.img
27
5. User Space
28
6. Services / Daemons
●
dbus-daemon
●
servicemanager
●
avahi-daemon
●
keystore
●
nativeperms
●
peripheralman
●
sensorservice
●
wpa_supplicant
●
brilloaudioservice
●
metrics_collector
●
metriscsd
●
perfprofd
●
tlsdated
●
tpm_managerd
●
trunksd
●
update_engine
●
weaved
●
webservd
●
shill
●
firewalld
●
dhcpd
29
7. Weave
30
8. Example
31
9. Summing Up
● Cool use of AOSP
● The “new standard” Embedded Linux distro?
● Yocto
● Buildroot
● Work in progress
● Nice move to Binder (instead of DBus)
● Clear cloud component
32
Thank you ...
karim.yaghmour@opersys.com

More Related Content

PDF
Android Things Internals
PDF
Android Things: Android for IoT
PDF
Embedded Android Workshop with Nougat
PDF
Android Platform Debugging and Development
PDF
Android Platform Debugging and Development
PDF
Extending Android's Platform Toolsuite
PDF
Brillo/Weave Internals
PDF
Embedded Android Workshop with Nougat
Android Things Internals
Android Things: Android for IoT
Embedded Android Workshop with Nougat
Android Platform Debugging and Development
Android Platform Debugging and Development
Extending Android's Platform Toolsuite
Brillo/Weave Internals
Embedded Android Workshop with Nougat

What's hot (20)

PDF
Android's HIDL: Treble in the HAL
PDF
Brillo / Weave Internals
PDF
Embedded Android Workshop with Nougat
PDF
Embedded Android Workshop with Marshmallow
PDF
Android Treble: Blessing or Trouble?
PDF
Embedded Android Workshop
PDF
Developing Android Platform Tools
PDF
Android Platform Debugging and Development
PDF
Android Things Internals
PDF
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
PDF
Embedded Android Workshop with Pie
PDF
Embedded Android Workshop with Oreo
PDF
Android Security Internals
PDF
Android Platform Debugging and Development
PDF
Embedded Android Workshop with Marshmallow
PDF
Customizing Android's UI
PDF
Embedded Android Workshop with Marshmallow
PDF
Project Ara
PDF
Is Android the New Embedded Linux? at AnDevCon VI
PDF
Android Internals
Android's HIDL: Treble in the HAL
Brillo / Weave Internals
Embedded Android Workshop with Nougat
Embedded Android Workshop with Marshmallow
Android Treble: Blessing or Trouble?
Embedded Android Workshop
Developing Android Platform Tools
Android Platform Debugging and Development
Android Things Internals
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Embedded Android Workshop with Pie
Embedded Android Workshop with Oreo
Android Security Internals
Android Platform Debugging and Development
Embedded Android Workshop with Marshmallow
Customizing Android's UI
Embedded Android Workshop with Marshmallow
Project Ara
Is Android the New Embedded Linux? at AnDevCon VI
Android Internals
Ad

Viewers also liked (17)

PDF
Memory Management in Android
PDF
Understanding the Android System Server
PDF
Scheduling in Android
PDF
Android On Development Boards at AnDevCon3
PDF
Is Android the New King of Embedded OSes at Embedded World 2014
PDF
Android Platform Debugging and Development at ABS 2014
PDF
Android Platform Debugging and Development
PDF
Leveraging Android's Linux Heritage at AnDevCon VI
PDF
Headless Android at AnDevCon3
PDF
Memory Management in Android
PDF
Android Platform Debugging and Development
PDF
Android Storage - Internal and External Storages
PDF
Porting Android
PDF
Android Internals
PDF
Memory Management in Android
PDF
Android Variants, Hacks, Tricks and Resources presented at AnDevConII
PDF
Android Variants, Hacks, Tricks and Resources
Memory Management in Android
Understanding the Android System Server
Scheduling in Android
Android On Development Boards at AnDevCon3
Is Android the New King of Embedded OSes at Embedded World 2014
Android Platform Debugging and Development at ABS 2014
Android Platform Debugging and Development
Leveraging Android's Linux Heritage at AnDevCon VI
Headless Android at AnDevCon3
Memory Management in Android
Android Platform Debugging and Development
Android Storage - Internal and External Storages
Porting Android
Android Internals
Memory Management in Android
Android Variants, Hacks, Tricks and Resources presented at AnDevConII
Android Variants, Hacks, Tricks and Resources
Ad

Similar to Brillo / Weave Internals (20)

PDF
Is Android the New Embedded Linux? at AnDevCon V
PDF
Leveraging Android's Linux Heritage at AnDevCon V
PDF
Leveraging Android's Linux Heritage at AnDevCon IV
PDF
Android Hacks, Variants, Tricks and Resources ESC SV 2012
PDF
Embedded Android Workshop part I ESC SV 2012
PDF
Is Android the New Embedded Linux? at AnDevCon IV
PDF
Customizing Android's UI
PDF
Customizing Android's UI
PDF
Embedded Linux primer
PDF
Android Platform Debugging & Development
PDF
Working with the AOSP - Linaro Connect Asia 2013
PDF
IoT: Contrasting Yocto/Buildroot to binary OSes
PDF
Android Platform Debugging and Development
PDF
Android Platform Debugging and Development
PDF
Leveraging Android's Linux Heritage at AnDevCon3
PDF
Making a Headless Android Device
PDF
Headless Android
PDF
Android on Intel Architecture: ROM Cooking Tutorial
PDF
OVERVIEW: Chromium Source Tree
PDF
Headless Android (Wearable DevCon 2014)
Is Android the New Embedded Linux? at AnDevCon V
Leveraging Android's Linux Heritage at AnDevCon V
Leveraging Android's Linux Heritage at AnDevCon IV
Android Hacks, Variants, Tricks and Resources ESC SV 2012
Embedded Android Workshop part I ESC SV 2012
Is Android the New Embedded Linux? at AnDevCon IV
Customizing Android's UI
Customizing Android's UI
Embedded Linux primer
Android Platform Debugging & Development
Working with the AOSP - Linaro Connect Asia 2013
IoT: Contrasting Yocto/Buildroot to binary OSes
Android Platform Debugging and Development
Android Platform Debugging and Development
Leveraging Android's Linux Heritage at AnDevCon3
Making a Headless Android Device
Headless Android
Android on Intel Architecture: ROM Cooking Tutorial
OVERVIEW: Chromium Source Tree
Headless Android (Wearable DevCon 2014)

More from Opersys inc. (7)

PDF
Android Automotive
PDF
Android 10 Internals Update
PDF
Scheduling in Android
PDF
Memory Management in Android
PDF
Embedded Android Workshop with Marshmallow
PDF
Memory Management in Android
PDF
Project Ara
Android Automotive
Android 10 Internals Update
Scheduling in Android
Memory Management in Android
Embedded Android Workshop with Marshmallow
Memory Management in Android
Project Ara

Recently uploaded (20)

PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
medical staffing services at VALiNTRY
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Nekopoi APK 2025 free lastest update
PDF
System and Network Administraation Chapter 3
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PPTX
Introduction to Artificial Intelligence
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PPTX
Transform Your Business with a Software ERP System
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
Upgrade and Innovation Strategies for SAP ERP Customers
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Odoo POS Development Services by CandidRoot Solutions
Internet Downloader Manager (IDM) Crack 6.42 Build 41
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
medical staffing services at VALiNTRY
Wondershare Filmora 15 Crack With Activation Key [2025
Nekopoi APK 2025 free lastest update
System and Network Administraation Chapter 3
Odoo Companies in India – Driving Business Transformation.pdf
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Introduction to Artificial Intelligence
How to Choose the Right IT Partner for Your Business in Malaysia
Transform Your Business with a Software ERP System
How to Migrate SBCGlobal Email to Yahoo Easily
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
CHAPTER 2 - PM Management and IT Context
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Navsoft: AI-Powered Business Solutions & Custom Software Development

Brillo / Weave Internals

  • 1. 1 Brillo / Weave Internals Embedded Linux Conference Europe 2016 Karim Yaghmour @karimyaghmour karim.yaghmour@opersys.com
  • 2. 2 These slides are made available to you under a Creative Commons Share- Alike 3.0 license. The full terms of this license are here: https://creativecommons.org/licenses/by-sa/3.0/ Attribution requirements and misc., PLEASE READ: ● This slide must remain as-is in this specific location (slide #2), everything else you are free to change; including the logo :-) ● Use of figures in other documents must feature the below “Originals at” URL immediately under that figure and the below copyright notice where appropriate. ● You are free to fill in the “Delivered and/or customized by” space on the right as you see fit. ● You are FORBIDEN from using the default “About” slide as-is or any of its contents. ● You are FORBIDEN from using any content provided by 3rd parties without the EXPLICIT consent from those parties. (C) Copyright 2016, Opersys inc. These slides created by: Karim Yaghmour Originals at: www.opersys.com/community/docs Delivered and/or customized by
  • 3. 3 About ● Author of: ● Introduced Linux Trace Toolkit in 1999 ● Originated Adeos and relayfs (kernel/relay.c) ● Training, Custom Dev, Consulting, ...
  • 4. 4 Agenda 1. A bit of history 2. Architecture 3. Source layout 4. Images 5. User-space 6. Services / Daemons 7. Weave 8. Example 9. Summing up
  • 5. 5 1. A bit of history ● Embedded Linux ● Android ● Headless Android ● Brillo
  • 6. 6 1.1. Embedded Linux ● A set of ad-hoc methods to package the Linux kernel with a (minimal) filesystem. ● FS content “to be determined” case-by-case ● APIs are specific to each device/build ● “Core software”: ● BusyBox ● U-Boot ● GNU Toolchain ● Your flavor of: ● glibc or uClibc or eglibc ● yocto or buildroot or eldk or ltib or ptxdist or ... ● No serious UX framework
  • 7. 7 1.2. Android ● ... apart from its ubiquitous UX ... ● Fully-integrated IDE: Android Studio ● SDK/NDK ● ADB ● Fastboot ● Published, well-known, and very rich APIs ● A large and growing developer community ● And still we can use “embedded Linux” components: ● GNU toolchain, BusyBox, u- boot, glibc, ... An actual standardized dev. env. across all product lines
  • 8. 8
  • 10. 10 1.4. Brillo / Weave ● Google platform for IoT* ● Based on Android ● Announced at Google I/O 2015 ● Still not officially released ● Still under active development ● Need to sign up for developer preview on https://developers.google.com/brillo/ ● Sources available from android.googlesource.com ● Note: ● This talk based on sources ● This talk NOT based on developer preview or any information thereof :P * New, hip way of talking about “Embedded Systems”, something that's been around for ~50+ years.
  • 11. 11 2. Architecture ● Embedded Linux ● Android ● Binder ● System services ● HAL ● DBus ● Brillo ● Weave
  • 12. 12
  • 13. 13
  • 14. 14
  • 15. 15
  • 17. 17
  • 18. 18
  • 19. 19
  • 20. 20 3. Source layout ● Getting the sources ● Brillo top level ● Removed from Android top level ● Gone from external/ ● New to external
  • 21. 21 3.1. Getting the sources ● Same project repo as Android: android.googlesource.com ● Different manifest file ● Using “repo”: $ repo init ­u https://android.googlesource.com/brillo/manifest $ repo sync
  • 22. 22 3.2. Brillo top level bionic C library replacement bootable Reference bootloader build Build system device Device-specific files and components external Copy of external projects used by AOSP frameworks Native system services and libraries hardware Hardware support libs libnativehelper JNI helpers prebuilts Prebuilt binaries product “Products” running on Brillo system Embedded Linux core tools Brillo Development Kit
  • 23. 23 3.3. Removed from Android top level art cts dalvik dvelopers development docs frameworks/base and more libcore ndk packages pdk sdk system/vold and more tools/external
  • 24. 24 3.4. Gone from external/
  • 25. 25 3.5. New to external/ bvb Brillo Verified Boot chromite Tools to build Chrome OS gentoo libdivsufsort lightweight suffix array construction algorithm library lzop LZO compression tool
  • 26. 26 4. Images ● AOSP x86 32-bit: ● 5.1M out/target/product/generic_x86/cache.img ● 1.3M out/target/product/generic_x86/ramdisk.img ● 1.3G out/target/product/generic_x86/system.img ● 12M out/target/product/generic_x86/userdata.img ● 551M out/target/product/generic_x86/userdata-qemu.img ● Brillo x86 64-bit: ● 6.2M out/target/product/brilloemulator_x86_64/boot.img ● 36K out/target/product/brilloemulator_x86_64/partition-table.img ● 158M out/target/product/brilloemulator_x86_64/system.img ● 201M out/target/product/brilloemulator_x86_64/userdata.img ● 551M out/target/product/brilloemulator_x86_64/userdata-qemu.img
  • 28. 28 6. Services / Daemons ● dbus-daemon ● servicemanager ● avahi-daemon ● keystore ● nativeperms ● peripheralman ● sensorservice ● wpa_supplicant ● brilloaudioservice ● metrics_collector ● metriscsd ● perfprofd ● tlsdated ● tpm_managerd ● trunksd ● update_engine ● weaved ● webservd ● shill ● firewalld ● dhcpd
  • 31. 31 9. Summing Up ● Cool use of AOSP ● The “new standard” Embedded Linux distro? ● Yocto ● Buildroot ● Work in progress ● Nice move to Binder (instead of DBus) ● Clear cloud component