+ All Categories
Home > Documents > Project Treble - static.linaro.org

Project Treble - static.linaro.org

Date post: 04-Jan-2022
Category:
Upload: others
View: 4 times
Download: 0 times
Share this document with a friend
36
Project Treble September 28, 2017 Iliyan Malchev
Transcript
Page 1: Project Treble - static.linaro.org

Project Treble

September 28, 2017

Iliyan Malchev

Page 2: Project Treble - static.linaro.org

What and Why

1

What is the problem? Why do we care to solve

it?

Userspace

2

What is the solution?

What is the timeframe?

Kernel

3

Tackling kernel fragmentation

Results

4

Some stats and early results

I Agenda

Page 3: Project Treble - static.linaro.org

What's the Problem?

Page 4: Project Treble - static.linaro.org

https://developer.android.com/about/dashboards/index.html

I Userspace

Page 5: Project Treble - static.linaro.org

I Kernel

3.4

3.1

3.10

3.18

Page 6: Project Treble - static.linaro.org

Why Care?

Page 7: Project Treble - static.linaro.org

Faster Device Launches on Latest Google SoC OEM users

Easier Device Upgrades Google

Better Quality Google SoC OEM users

BEtter Security (esp. Kernel) Google SoC OEM users

I Who Wants What

Page 8: Project Treble - static.linaro.org

The Life of an Android Device Launch

Page 9: Project Treble - static.linaro.org

I Start with AOSP

Page 10: Project Treble - static.linaro.org

...

I Add Functionality/Customizations

Page 11: Project Treble - static.linaro.org

...

I Adapt to SoC and Device

Page 12: Project Treble - static.linaro.org

"HALs"

"Ext"AOSP

I Reality

Page 13: Project Treble - static.linaro.org

● Short product cycles

● No Single Android OS to update

○ Large AOSP Delta

○ SoC Support not universal

● Certification: Carrier, Regulatory, CTS

● QA

● Support (Call Center), OTA Infrastructure, etc...

"HALs"

ExtAOSP

I Difficult means Expensive

Page 14: Project Treble - static.linaro.org

How to Fix it?

Page 15: Project Treble - static.linaro.org

Architectural changesAndroid Platform

Operational changesPartner outreach

Compatibility changesPartner outreach

UpstreamingAndroid Platform

I Project Treble

Page 16: Project Treble - static.linaro.org

ExtAOSP "HALs"

ExtAOSP

I Solve SoC Support

Page 17: Project Treble - static.linaro.org

kernel driverdriverdriver driverdriverlibc

other libraries

activity

Media Server

System Server

Camera Server

Audio Server

Surface Flinger

OMX

...

...camera

HALaudio HAL gralloc

hwcsensor

HAL etc

ART

API java.* android.*

GL

HAL

Binder

I Android Architecture Pre-O

Page 18: Project Treble - static.linaro.org

kernel driverdriverdriver driverdriverlibc

other libraries

activity

Media Server

System Server

Camera Server

Audio Server

Surface Flinger

OMX

...

...camera HAL

audio HAL

gralloc hwc

sensor HAL etc

ART

API java.* android.*

GL

HAL

Binder

Binder

I Android Architecture Post-O

Page 19: Project Treble - static.linaro.org

I The Vendor Test Suite

CTS

VTS

Android Framework

VINTF Implementation

General System Image

VINTF Implementation

CTS on AOSP

<Before Oreo> <Android Oreo>

HAL Kernel Library

Page 20: Project Treble - static.linaro.org

"HALs"

ExtAOSP

I Tackle the AOSP Delta

Page 21: Project Treble - static.linaro.org

Q3 ACP ALL HANDS

Multiple implementations of same functionality

Drive convergence between AOSP and Framework Variants

Forum involving major contributors to AOSP

Feature review, approval, (re)engineering

Non-US regulatory requirementsExtensions to Bluetooth, Telephony, Dialer, SysUI, Home Screen

I Upstreaming

Page 22: Project Treble - static.linaro.org

"HALs"

ExtAOSPExtAOSP

Page 23: Project Treble - static.linaro.org

● Compliance○ Vendor Test Suite (VTS): tests for HALs

■ must pass VTS for approval○ must pass CTS on AOSP

● All OEM Devices launched with O○ Must implement Treble HALs○ Including older SoCs that will be used by OEMs to launch O based

devices

Must pass Vendor Test Suite (VTS; tests for HALs) for approval

All OEM devices launched with O must implement Treble HALs

Must pass CTS on AOSP

Q3 ACP ALL HANDS

This includes older SoCs that will be used by OEMs to launch O-based devices

I Compatibility Requirements

Page 24: Project Treble - static.linaro.org

How Fast to Fix it?

Page 25: Project Treble - static.linaro.org

● Release uptake is 6 months to a year

○ Mostly just flagships

● Solving the problem forwards

● Customer pull is strong

● Attention Span outside and within

● Addressing fragmentation is a MUST

I The One-Release Fix

Page 26: Project Treble - static.linaro.org

The Kernel

Page 27: Project Treble - static.linaro.org

Existing LTS is not Enough

Device Kernel

Stable Long Term Support

Android Common

SoC Kernel

Device Release

Device Update

Clone Merge Cherry-Pick

Device Update

Device Update

Device Update

Page 28: Project Treble - static.linaro.org

Announcing 6-year LTS

Device Kernel

Stable Long Term Support

Android Common

SoC Kernel

Device Release

Device Update

Clone Merge Cherry-Pick

Device Update

Device Update

Device Update

Page 29: Project Treble - static.linaro.org

Stats

Page 30: Project Treble - static.linaro.org

health/1.0

thermal/1.0

oemlock/1.0

gnss/1.0

automotive/vehicle/2.0

automotive/vehicle/2.1

automotive/evs/1.0

audio/2.0

audio/effect/2.0

audio/common/2.0

vibrator/1.1

vibrator/1.0

tv/cec/1.0

tv/input/1.0

bluetooth/1.0

usb/1.1

usb/1.0

gatekeeper/1.0

wifi/offload/1.0

wifi/supplicant/1.0

wifi/1.0

radio/1.1

radio/1.0

radio/deprecated/1.0

renderscript/1.0

weaver/1.0

light/2.0

keymaster/3.0

soundtrigger/2.0

ir/1.0

boot/1.0

graphics/allocator/2.0

graphics/bufferqueue/1.0

graphics/mapper/2.0

graphics/common/1.0

graphics/composer/2.1

drm/1.0

nfc/1.0

biometrics/fingerprint/2.1

contexthub/1.0

broadcastradio/1.1

broadcastradio/1.0

power/1.1

power/1.0

vr/1.0

sensors/1.0

configstore/1.1

configstore/1.0

media/omx/1.0

media/1.0

memtrack/1.0

dumpstate/1.0

camera/metadata/3.2

camera/provider/2.4

camera/device/3.2

camera/device/1.0

camera/common/1.0

tetheroffload/control/1.0

tetheroffload/config/1.0

I 60 Subsystem Conversions

Page 31: Project Treble - static.linaro.org

Authors

Files

300

3000Commits

20kLOC

~1M

I Code Stats

Page 32: Project Treble - static.linaro.org

Qualcomm, Mediatek,

Samsung/LSI,

Huawei/HiSilicon, Motorola,

Sony, LG

Partners

San Diego

Taipei

Seoul

Onsite Teams

7

3 Direct on-site visits

Partner Summits

Android Bootcamp

Executive Sync-ups

Forums

+ 3 Qualcomm SoCs

1 Mediatek SoC

1 HiSilicon SoC

1 Exynos SoC

SONY

Huawei

Samsung

Oreo Launches / Upgrades

3/1

I Partner Outreach

Page 33: Project Treble - static.linaro.org

Next Steps

Page 34: Project Treble - static.linaro.org

Clone Merge Cherry-Pick

Linux 4.9.y

Android Common 4.9

msm-4.9(Common SoC

Kernel)

MSMXXXX based device 1

MSMXXXX based device 2

MSMXXXX based device 3

Linux 4.9.y xLTSbackports

exynos-4.9(Common SoC

Kernel)

mediatek-4.9(Common SoC

Kernel)

I Kernel Unification

Page 35: Project Treble - static.linaro.org

I There's More To Do

● Continued work with SoC Vendors

● Continued work on Kernel Unification

● Expanding test coverage

● Bringing the ecosystem together with Linaro

Page 36: Project Treble - static.linaro.org

END


Recommended