1# 1\. Introduction
2
3This document enumerates the requirements that must be met in order for devices
4to be compatible with Android ANDROID_VERSION.
5
6The use of “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”,
7“SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” is per the IETF standard
8defined in [RFC2119](http://www.ietf.org/rfc/rfc2119.txt).
9
10As used in this document, a “device implementer” or “implementer” is a person
11or organization developing a hardware/software solution running Android
12ANDROID_VERSION. A “device implementation” or “implementation" is the
13hardware/software solution so developed.
14
15To be considered compatible with Android ANDROID_VERSION, device
16implementations MUST meet the requirements presented in this Compatibility
17Definition, including any documents incorporated via reference.
18
19Where this definition or the software tests described in [section
2010](#10_software_compatibility_testing) is silent, ambiguous, or incomplete, it
21is the responsibility of the device implementer to ensure compatibility with
22existing implementations.
23
24For this reason, the [Android Open Source Project](http://source.android.com/)
25is both the reference and preferred implementation of Android. Device
26implementers are STRONGLY RECOMMENDED to base their implementations to the
27greatest extent possible on the “upstream” source code available from the
28Android Open Source Project. While some components can hypothetically be
29replaced with alternate implementations, it is STRONGLY RECOMMENDED to not
30follow this practice, as passing the software tests will become substantially
31more difficult. It is the implementer’s responsibility to ensure full
32behavioral compatibility with the standard Android implementation, including
33and beyond the Compatibility Test Suite. Finally, note that certain component
34substitutions and modifications are explicitly forbidden by this document.
35
36Many of the resources linked to in this document are derived directly or
37indirectly from the Android SDK and will be functionally identical to the
38information in that SDK’s documentation. In any cases where this Compatibility
39Definition or the Compatibility Test Suite disagrees with the SDK
40documentation, the SDK documentation is considered authoritative. Any technical
41details provided in the linked resources throughout this document are
42considered by inclusion to be part of this Compatibility Definition.
43