brillo/weave internals
TRANSCRIPT
![Page 2: Brillo/Weave Internals](https://reader030.vdocuments.mx/reader030/viewer/2022021502/587a5f481a28ab520b8b740b/html5/thumbnails/2.jpg)
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
![Page 3: Brillo/Weave Internals](https://reader030.vdocuments.mx/reader030/viewer/2022021502/587a5f481a28ab520b8b740b/html5/thumbnails/3.jpg)
3
About
● Author of:
● Introduced Linux Trace Toolkit in 1999● Originated Adeos and relayfs (kernel/relay.c)● Ara Android Arch Oversight● Training, Custom Dev, Consulting, ...
![Page 4: Brillo/Weave Internals](https://reader030.vdocuments.mx/reader030/viewer/2022021502/587a5f481a28ab520b8b740b/html5/thumbnails/4.jpg)
4
Agenda
1. A bit of history
2. Architecture
3. Source layout
4. User-space
5. Services / Daemons
6. Weave
7. Example
8. Summing up
![Page 5: Brillo/Weave Internals](https://reader030.vdocuments.mx/reader030/viewer/2022021502/587a5f481a28ab520b8b740b/html5/thumbnails/5.jpg)
5
1. A bit of history
● Embedded Linux● Android● Headless Android● Brillo
![Page 6: Brillo/Weave Internals](https://reader030.vdocuments.mx/reader030/viewer/2022021502/587a5f481a28ab520b8b740b/html5/thumbnails/6.jpg)
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
![Page 7: Brillo/Weave Internals](https://reader030.vdocuments.mx/reader030/viewer/2022021502/587a5f481a28ab520b8b740b/html5/thumbnails/7.jpg)
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
![Page 8: Brillo/Weave Internals](https://reader030.vdocuments.mx/reader030/viewer/2022021502/587a5f481a28ab520b8b740b/html5/thumbnails/8.jpg)
8
1.3. Headless Android
+ =
![Page 9: Brillo/Weave Internals](https://reader030.vdocuments.mx/reader030/viewer/2022021502/587a5f481a28ab520b8b740b/html5/thumbnails/9.jpg)
9
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.
![Page 10: Brillo/Weave Internals](https://reader030.vdocuments.mx/reader030/viewer/2022021502/587a5f481a28ab520b8b740b/html5/thumbnails/10.jpg)
10
2. Architecture
● Embedded Linux● Android● Binder● System services● HAL● DBus● Brillo● Weave
![Page 11: Brillo/Weave Internals](https://reader030.vdocuments.mx/reader030/viewer/2022021502/587a5f481a28ab520b8b740b/html5/thumbnails/11.jpg)
11
![Page 12: Brillo/Weave Internals](https://reader030.vdocuments.mx/reader030/viewer/2022021502/587a5f481a28ab520b8b740b/html5/thumbnails/12.jpg)
12
![Page 13: Brillo/Weave Internals](https://reader030.vdocuments.mx/reader030/viewer/2022021502/587a5f481a28ab520b8b740b/html5/thumbnails/13.jpg)
13
![Page 14: Brillo/Weave Internals](https://reader030.vdocuments.mx/reader030/viewer/2022021502/587a5f481a28ab520b8b740b/html5/thumbnails/14.jpg)
14
![Page 15: Brillo/Weave Internals](https://reader030.vdocuments.mx/reader030/viewer/2022021502/587a5f481a28ab520b8b740b/html5/thumbnails/15.jpg)
15
/frameworks/base/services/java/...
/frameworks/base/services/jni/
/hardware/libhardware/
/device/[MANUF.]/[DEVICE]/sdk/emulator/
Kernel or module
/frameworks/base/core/...
AOSP-providedASL
Manuf.-providedManuf. license
Manuf.-providedGPL-license
![Page 16: Brillo/Weave Internals](https://reader030.vdocuments.mx/reader030/viewer/2022021502/587a5f481a28ab520b8b740b/html5/thumbnails/16.jpg)
16
![Page 17: Brillo/Weave Internals](https://reader030.vdocuments.mx/reader030/viewer/2022021502/587a5f481a28ab520b8b740b/html5/thumbnails/17.jpg)
17
![Page 18: Brillo/Weave Internals](https://reader030.vdocuments.mx/reader030/viewer/2022021502/587a5f481a28ab520b8b740b/html5/thumbnails/18.jpg)
18
![Page 19: Brillo/Weave Internals](https://reader030.vdocuments.mx/reader030/viewer/2022021502/587a5f481a28ab520b8b740b/html5/thumbnails/19.jpg)
19
3. Source layout
● Brillo top level● Removed from Android top level● Gone from external/● New to external
![Page 20: Brillo/Weave Internals](https://reader030.vdocuments.mx/reader030/viewer/2022021502/587a5f481a28ab520b8b740b/html5/thumbnails/20.jpg)
20
3.1. Brillo top level
bionic C library replacementbootable Reference bootloaderbuild Build systemdevice Device-specific files and componentsexternal Copy of external projects used by AOSPframeworks Native system services and librarieshardware Hardware support libslibnativehelper JNI helpersprebuilts Prebuilt binariesproduct “Products” running on Brillosystem Embedded Linux coretools Brillo Development Kit
![Page 21: Brillo/Weave Internals](https://reader030.vdocuments.mx/reader030/viewer/2022021502/587a5f481a28ab520b8b740b/html5/thumbnails/21.jpg)
21
3.2. Removed from Android top level
![Page 22: Brillo/Weave Internals](https://reader030.vdocuments.mx/reader030/viewer/2022021502/587a5f481a28ab520b8b740b/html5/thumbnails/22.jpg)
22
3.3. Gone from external/
![Page 23: Brillo/Weave Internals](https://reader030.vdocuments.mx/reader030/viewer/2022021502/587a5f481a28ab520b8b740b/html5/thumbnails/23.jpg)
23
3.4. New to external/
![Page 24: Brillo/Weave Internals](https://reader030.vdocuments.mx/reader030/viewer/2022021502/587a5f481a28ab520b8b740b/html5/thumbnails/24.jpg)
24
4. User Space
![Page 25: Brillo/Weave Internals](https://reader030.vdocuments.mx/reader030/viewer/2022021502/587a5f481a28ab520b8b740b/html5/thumbnails/25.jpg)
25
5. 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
![Page 26: Brillo/Weave Internals](https://reader030.vdocuments.mx/reader030/viewer/2022021502/587a5f481a28ab520b8b740b/html5/thumbnails/26.jpg)
26
6. Weave
![Page 27: Brillo/Weave Internals](https://reader030.vdocuments.mx/reader030/viewer/2022021502/587a5f481a28ab520b8b740b/html5/thumbnails/27.jpg)
27
7. Example
![Page 28: Brillo/Weave Internals](https://reader030.vdocuments.mx/reader030/viewer/2022021502/587a5f481a28ab520b8b740b/html5/thumbnails/28.jpg)
28
8. 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