android.os.Build.VERSION.INCREMENTAL
A value chosen by the device implementer designating the specific build of the currently-executing
Android system, in human-readable format. This value MUST NOT be re-used for different builds made
available to end users. A typical use of this field is to indicate which build number or source-control
change identifier was used to generate the build. There are no requirements on the specific format of this
field, except that it MUST NOT be null or the empty string ("").
android.os.Build.BOARD
A value chosen by the device implementer identifying the specific internal hardware used by the device,
in human-readable format. A possible use of this field is to indicate the specific revision of the board
powering the device. The value of this field MUST be encodable as 7-bit ASCII and match the regular
expression "^[a-zA-Z0-9.,_-]+$".
android.os.Build.BRAND
A value chosen by the device implementer identifying the name of the company, organization, individual,
etc. who produced the device, in human-readable format. A possible use of this field is to indicate the
OEM and/or carrier who sold the device. The value of this field MUST be encodable as 7-bit ASCII and
match the regular expression "^[a-zA-Z0-9.,_-]+$".
android.os.Build.CPU_ABI
The name of the instruction set (CPU type + ABI convention) of native code. See Section 3.3: Native API
Compatibility.
android.os.Build.CPU_ABI2
The name of the second instruction set (CPU type + ABI convention) of native code. See Section 3.3:
Native API Compatibility.
android.os.Build.DEVICE
A value chosen by the device implementer identifying the specific configuration or revision of the body
(sometimes called "industrial design") of the device. The value of this field MUST be encodable as 7-bit
ASCII and match the regular expression "^[a-zA-Z0-9.,_-]+$".
android.os.Build.FINGERPRINT
A string that uniquely identifies this build. It SHOULD be reasonably human-readable. It MUST follow this
template:
$(BRAND)/$(PRODUCT)/$(DEVICE):$(VERSION.RELEASE)/$(ID)/$(VERSION.INCREMENTAL):$(TYPE)/$(TAGS)
For example:
acme/mydevice/generic:4.0/IRK77/3359:userdebug/test-keys
The fingerprint MUST NOT include whitespace characters. If other fields included in the template above
have whitespace characters, they MUST be replaced in the build fingerprint with another character, such
as the underscore ("_") character. The value of this field MUST be encodable as 7-bit ASCII.
android.os.Build.HARDWARE
The name of the hardware (from the kernel command line or /proc). It SHOULD be reasonably human-
readable. The value of this field MUST be encodable as 7-bit ASCII and match the regular expression
"^[a-zA-Z0-9.,_-]+$".
android.os.Build.HOST
A string that uniquely identifies the host the build was built on, in human readable format. There are no
requirements on the specific format of this field, except that it MUST NOT be null or the empty string ("").
android.os.Build.ID
An identifier chosen by the device implementer to refer to a specific release, in human readable format.
This field can be the same as android.os.Build.VERSION.INCREMENTAL, but SHOULD be a value
sufficiently meaningful for end users to distinguish between software builds. The value of this field MUST
be encodable as 7-bit ASCII and match the regular expression "^[a-zA-Z0-9.,_-]+$".
android.os.Build.MANUFACTURER
The trade name of the Original Equipment Manufacturer (OEM) of the product. There are no requirements
on the specific format of this field, except that it MUST NOT be null or the empty string ("").
android.os.Build.MODEL
A value chosen by the device implementer containing the name of the device as known to the end user.
This SHOULD be the same name under which the device is marketed and sold to end users. There are
no requirements on the specific format of this field, except that it MUST NOT be null or the empty string
("").
android.os.Build.PRODUCT
A value chosen by the device implementer containing the development name or code name of the
product (SKU). MUST be human-readable, but is not necessarily intended for view by end users. The
value of this field MUST be encodable as 7-bit ASCII and match the regular expression "^[a-zA-Z0-
9.,_-]+$".
android.os.Build.SERIAL
A hardware serial number, if available. The value of this field MUST be encodable as 7-bit ASCII and
match the regular expression "^([a-zA-Z0-9]{0,20})$".
android.os.Build.TAGS
A comma-separated list of tags chosen by the device implementer that further distinguish the build. For
example, "unsigned,debug". The value of this field MUST be encodable as 7-bit ASCII and match the
regular expression "^[a-zA-Z0-9.,_-]+$".
android.os.Build.TIME A value representing the timestamp of when the build occurred.
android.os.Build.TYPE
A value chosen by the device implementer specifying the runtime configuration of the build. This field
SHOULD have one of the values corresponding to the three typical Android runtime configurations:
"user", "userdebug", or "eng". The value of this field MUST be encodable as 7-bit ASCII and match the
regular expression "^[a-zA-Z0-9.,_-]+$".
android.os.Build.USER
A name or user ID of the user (or automated user) that generated the build. There are no requirements on
the specific format of this field, except that it MUST NOT be null or the empty string ("").
3.2.3. Intent Compatibility
Device implementations MUST honor Android's loose-coupling Intent system, as described in the sections below. By
"honored", it is meant that the device implementer MUST provide an Android Activity or Service that specifies a