5
3.2.2. Build Parameters
The Android APIs include a number of constants on the android.os.Build class [Resources, 6] that are intended to describe the current device. To
provide consistent, meaningful values across device implementations, the table below includes additional restrictions on the formats of these values to
which device implementations MUST conform.
Parameter Comments
android.os.Build.VERSION.RELEASE
The version of the currently-executing Android system, in
human-readable format. This field MUST have one of the string values
defined in [Resources, 7].
android.os.Build.VERSION.SDK
The version of the currently-executing Android system, in a format
accessible to third-party application code. For Android 2.3, this field
MUST have the integer value 9.
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.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/generic:2.3/ERC77/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.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.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 ("").