project treble - static.linaro.org
TRANSCRIPT
Project Treble
September 28, 2017
Iliyan Malchev
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
What's the Problem?
https://developer.android.com/about/dashboards/index.html
I Userspace
I Kernel
3.4
3.1
3.10
3.18
Why Care?
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
The Life of an Android Device Launch
I Start with AOSP
...
I Add Functionality/Customizations
...
I Adapt to SoC and Device
"HALs"
"Ext"AOSP
I Reality
● 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
How to Fix it?
Architectural changesAndroid Platform
Operational changesPartner outreach
Compatibility changesPartner outreach
UpstreamingAndroid Platform
I Project Treble
ExtAOSP "HALs"
ExtAOSP
I Solve SoC Support
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
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
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
"HALs"
ExtAOSP
I Tackle the AOSP Delta
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
"HALs"
ExtAOSPExtAOSP
● 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
How Fast to Fix it?
● 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
The Kernel
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
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
Stats
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
Authors
Files
300
3000Commits
20kLOC
~1M
I Code Stats
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
Next Steps
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
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
END