This document describes the design of the vendor interface object (VINTF object), which aggregates relevant information about a device and makes that information available through a queryable API.
VINTF object design
A VINTF object gathers some of the information it needs directly from the device. Other aspects, such as the manifests, are described statically in XML.
VINTF object design provides the following for device and framework components:
|For the Device||For the Framework|
The VINTF object must be reliable and provide the same complete information regardless of when the object is requested (see Caveats).
Manifests & matrices
Android O requires an API at runtime to query what is on the device and send
that information to the Over-the-Air
(OTA) update server and other interested parties (such as CTS
DeviceInfo). Some information is retrieved at runtime and some of
it is statically-defined.
- The device manifest describes the static component of what the device can provide to the the framework.
- The framework compatibility matrix describes what the Android framework expects from a given device. The matrix is a static entity whose composition is determined manually during development of the next release of the Android framework.
- The framework manifest describes high-level services the framework can provide to the device.
- The device compatibility matrix describes the services the vendor image requires of the framework. Its composition is determined manually during the development of the device.
These two pairs of manifests and matrices must be reconciled at OTA time to ensure a device can get framework updates that are compatible with the device's capabilities. In general, a manifest describes what is provided and a compatibility matrix describes what is required.
VINTF Object Data defines the schema for the manifest, Compatibility Matrices defines the schema for the compatibility matrix, and Matching Rules defines the rules for a successful match between a compatibility matrix and a manifest.