blob: ca3c4086e31959d3b1e1c116ad516a0cbb3ccf94 [file] [log] [blame]
<html devsite>
<head>
<title>Treble</title>
<meta name="project_path" value="/_project.yaml" />
<meta name="book_path" value="/_book.yaml" />
</head>
<body>
<!--
Copyright 2017 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<p>The Android 8.0 release includes Project Treble, a major re-architect
of the Android OS framework designed to make it easier, faster, and less costly
for manufacturers to update devices to a new version of Android. Treble is for
all new devices launching with Android 8.0 and beyond (the new architecture is
already running on the Developer Preview for Pixel phones).</p>
<h2 id=about-treble>About Android updates</h2>
<p>Project Treble separates the vendor implementation (device-specific,
lower-level software written by silicon manufacturers) from the Android OS
framework via a new vendor interface.</p>
<p>In Android 7.x and earlier, no formal vendor interface exists so device
makers must update large portions of the Android code to move a device to a
newer version of Android:</p>
<img src="images/treble_blog_before.png">
<p class="img-caption"><strong>Figure 1.</strong> Pre-Treble Android update
environment</p>
<p>With Treble, a new stable vendor interface provides access to the
hardware-specific parts of Android, enabling device makers to deliver new
Android releases simply by updating the Android OS framework&mdash;without any
additional work required from the silicon manufacturers:</p>
<img src="images/treble_blog_after.png">
<p class="img-caption"><strong>Figure 2.</strong> Treble Android update
environment</p>
<h2 id=testing-treble>Testing Treble</h2>
<p>To ensure forward compatibility of vendor implementations, the new vendor
interface is validated by the <a href="/devices/tech/vts/index.html">Vendor Test
Suite (VTS)</a>, which is analogous to the
<a href="/compatibility/cts/">Compatibility Test Suite (CTS)</a>. You can use
VTS to automate HAL and OS kernel testing in both pre-Treble and Treble
environments.</p>
<h2 id=treble-resources>Treble resources</h2>
<p>For details on the new Treble architecture, see the following sections:</p>
<ul>
<li><a href="/devices/architecture/hal-types.html">HAL Types</a>. Describes
binderized, passthrough, Same-Process (SP), and legacy HALs.</li>
<li><a href="/devices/architecture/hidl/index.html">HIDL (General)</a>.
Contains general information about the HAL interface definition language (HIDL,
pronounced "hide-l"), which is an interface description language (IDL) to
specify the interface between a HAL and its users.</li>
<li><a href="/devices/architecture/hidl-cpp/index.html">HIDL (C++)</a>. Contains
details for creating C++ implementations of HIDL interfaces.</li>
<li><a href="/devices/architecture/hidl-java/index.html">HIDL (Java)</a>.
Contains details about the Java frontend for HIDL interfaces.</li>
<li><a href="/devices/architecture/configstore/index.html">ConfigStore HAL</a>.
Describes the ConfigStore HAL, which provides a set of APIs for accessing
read-only configuration items used to configure the Android framework.</li>
<li><a href="/devices/architecture/dto/index.html">Device Tree Overlays</a>.
Provides details on using device tree overlays (DTOs) in Android.</li>
<li><a href="/devices/architecture/vndk/index.html">Vendor Native Development
Kit (VNDK)</a>. Describes the VNDK, which is a set of libraries exclusively for
vendors to implement their HALs.</li>
<li><a href="/devices/architecture/vintf/index.html">Vendor Interface Object
(VINTF)</a>. VINTF objects aggregate relevant information about a device and
make that information available through a queryable API.</li>
<li><a href="/security/selinux/images/SELinux_Treble.pdf">SELinux for Android
8.0</a>. Details SELinux changes and customizations.</li>
</ul>
</body>
</html>