1. Introduction
This document enumerates the requirements that must be met in order for devices to be compatible
with Android 9.
The use of “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”,
“RECOMMENDED”, “MAY”, and “OPTIONAL” is per the IETF standard defined in
RFC2119
.
As used in this document, a “device implementer” or “implementer” is a person or organization
developing a hardware/software solution running Android 9. A “device implementation” or
“implementation" is the hardware/software solution so developed.
To be considered compatible with Android 9, device implementations MUST meet the requirements
presented in this Compatibility Definition, including any documents incorporated via reference.
Where this definition or the software tests described in
section 10
are silent, ambiguous, or
incomplete, it is the responsibility of the device implementer to ensure compatibility with existing
implementations.
For this reason, the
Android Open Source Project
is both the reference and preferred implementation
of Android. Device implementers are STRONGLY RECOMMENDED to base their implementations to
the greatest extent possible on the “upstream” source code available from the Android Open Source
Project. While some components can hypothetically be replaced with alternate implementations, it is
STRONGLY RECOMMENDED to not follow this practice, as passing the software tests will become
substantially more difficult. It is the implementer’s responsibility to ensure full behavioral
compatibility with the standard Android implementation, including and beyond the Compatibility Test
Suite. Finally, note that certain component substitutions and modifications are explicitly forbidden by
this document.
Many of the resources linked to in this document are derived directly or indirectly from the Android
SDK and will be functionally identical to the information in that SDK’s documentation. In any cases
where this Compatibility Definition or the Compatibility Test Suite disagrees with the SDK
documentation, the SDK documentation is considered authoritative. Any technical details provided in
the linked resources throughout this document are considered by inclusion to be part of this
Compatibility Definition.
1.1 Document Structure
1.1.1. Requirements by Device Type
Section 2
contains all of the requirements that apply to a specific device type. Each subsection of
Section 2
is dedicated to a specific device type.
All the other requirements, that universally apply to any Android device implementations, are listed in
the sections after
Section 2
. These requirements are referenced as "Core Requirements" in this
document.
1.1.2. Requirement ID
Requirement ID is assigned for MUST requirements.
The ID is assigned for MUST requirements only.
STRONGLY RECOMMENDED requirements are marked as [SR] but ID is not assigned.
The ID consists of : Device Type ID - Condition ID - Requirement ID (e.g. C-0-1).
Each ID is defined as below:
Device Type ID (see more in
2. Device Types
)
C: Core (Requirements that are applied to any Android device
Page 6 of 132