Build
  public
  
  
  
  class
  Build
  
    extends Object
  
  
  
  
  
  
| java.lang.Object | |
| ↳ | android.os.Build | 
Information about the current build, extracted from system properties.
Summary
| Nested classes | |
|---|---|
| 
        
        
        
        
        class | Build.PartitionBuild information for a particular device partition. | 
| 
        
        
        
        
        class | Build.VERSIONVarious version strings. | 
| 
        
        
        
        
        class | Build.VERSION_CODESEnumeration of the currently known SDK version codes. | 
| 
        
        
        
        
        class | Build.VERSION_CODES_FULLEnumeration of the currently known SDK major and minor version codes. | 
| Constants | |
|---|---|
| int | BACKPORTED_FIX_STATUS_FIXEDThe known issue is fixed on this device. | 
| int | BACKPORTED_FIX_STATUS_NOT_APPLICABLEThe known issue is not applicable to this device. | 
| int | BACKPORTED_FIX_STATUS_NOT_FIXEDThe known issue is not fixed on this device. | 
| int | BACKPORTED_FIX_STATUS_UNKNOWNThe status of the known issue on this device is not known. | 
| String | UNKNOWNValue used for when a build property is unknown. | 
| Fields | |
|---|---|
| 
    public
    static
    final
    String | BOARDThe name of the underlying board, like "goldfish". | 
| 
    public
    static
    final
    String | BOOTLOADERThe system bootloader version number. | 
| 
    public
    static
    final
    String | BRANDThe consumer-visible brand with which the product/hardware will be associated, if any. | 
| 
    public
    static
    final
    String | CPU_ABI
      This field was deprecated
      in API level 21.
    Use  | 
| 
    public
    static
    final
    String | CPU_ABI2
      This field was deprecated
      in API level 21.
    Use  | 
| 
    public
    static
    final
    String | DEVICEThe name of the industrial design. | 
| 
    public
    static
    final
    String | DISPLAYA build ID string meant for displaying to the user | 
| 
    public
    static
    final
    String | FINGERPRINTA string that uniquely identifies this build. | 
| 
    public
    static
    final
    String | HARDWAREThe name of the hardware (from the kernel command line or /proc). | 
| 
    public
    static
    final
    String | HOST
 | 
| 
    public
    static
    final
    String | IDEither a changelist number, or a label like "M4-rc20". | 
| 
    public
    static
    final
    String | MANUFACTURERThe manufacturer of the product/hardware. | 
| 
    public
    static
    final
    String | MODELThe end-user-visible name for the end product. | 
| 
    public
    static
    final
    String | ODM_SKUThe SKU of the device as set by the original design manufacturer (ODM). | 
| 
    public
    static
    final
    String | PRODUCTThe name of the overall product. | 
| 
    public
    static
    final
    String | RADIO
      This field was deprecated
      in API level 15.
    The radio firmware version is frequently not
 available when this class is initialized, leading to a blank or
 "unknown" value for this string.  Use
  | 
| 
    public
    static
    final
    String | SERIAL
      This field was deprecated
      in API level 26.
    Use  | 
| 
    public
    static
    final
    String | SKUThe SKU of the hardware (from the kernel command line). | 
| 
    public
    static
    final
    String | SOC_MANUFACTURERThe manufacturer of the device's primary system-on-chip. | 
| 
    public
    static
    final
    String | SOC_MODELThe model name of the device's primary system-on-chip. | 
| 
    public
    static
    final
    String[] | SUPPORTED_32_BIT_ABISAn ordered list of 32 bit ABIs supported by this device. | 
| 
    public
    static
    final
    String[] | SUPPORTED_64_BIT_ABISAn ordered list of 64 bit ABIs supported by this device. | 
| 
    public
    static
    final
    String[] | SUPPORTED_ABISAn ordered list of ABIs supported by this device. | 
| 
    public
    static
    final
    String | TAGSComma-separated tags describing the build, like "unsigned,debug". | 
| 
    public
    static
    final
    long | TIMEThe time at which the build was produced, given in milliseconds since the UNIX epoch. | 
| 
    public
    static
    final
    String | TYPEThe type of build, like "user" or "eng". | 
| 
    public
    static
    final
    String | USER
 | 
| Public constructors | |
|---|---|
| 
      Build()
       | |
| Public methods | |
|---|---|
| 
        
        
        static
        
        
        int | 
      getBackportedFixStatus(long id)
      The status of the backported fix for a known issue on this device. | 
| 
        
        
        static
        
        
        List<Build.Partition> | 
      getFingerprintedPartitions()
      Get build information about partitions that have a separate fingerprint defined. | 
| 
        
        
        static
        
        
        int | 
      getMajorSdkVersion(int sdkIntFull)
      Obtain the major version encoded in a VERSION_CODES_FULL value. | 
| 
        
        
        static
        
        
        int | 
      getMinorSdkVersion(int sdkIntFull)
      Obtain the minor version encoded in a VERSION_CODES_FULL value. | 
| 
        
        
        static
        
        
        String | 
      getRadioVersion()
      Returns the version string for the radio firmware. | 
| 
        
        
        static
        
        
        String | 
      getSerial()
      Gets the hardware serial number, if available. | 
| Inherited methods | |
|---|---|
Constants
BACKPORTED_FIX_STATUS_FIXED
public static final int BACKPORTED_FIX_STATUS_FIXED
The known issue is fixed on this device.
Constant Value: 1 (0x00000001)
BACKPORTED_FIX_STATUS_NOT_APPLICABLE
public static final int BACKPORTED_FIX_STATUS_NOT_APPLICABLE
The known issue is not applicable to this device.
For example if the issue only affects a specific brand, devices from other brands would report not applicable.
Constant Value: 2 (0x00000002)
BACKPORTED_FIX_STATUS_NOT_FIXED
public static final int BACKPORTED_FIX_STATUS_NOT_FIXED
The known issue is not fixed on this device.
Constant Value: 3 (0x00000003)
BACKPORTED_FIX_STATUS_UNKNOWN
public static final int BACKPORTED_FIX_STATUS_UNKNOWN
The status of the known issue on this device is not known.
Constant Value: 0 (0x00000000)
UNKNOWN
public static final String UNKNOWN
Value used for when a build property is unknown.
Constant Value: "unknown"
Fields
BOARD
public static final String BOARD
The name of the underlying board, like "goldfish".
BOOTLOADER
public static final String BOOTLOADER
The system bootloader version number.
BRAND
public static final String BRAND
The consumer-visible brand with which the product/hardware will be associated, if any.
CPU_ABI
public static final String CPU_ABI
      This field was deprecated
      in API level 21.
    Use SUPPORTED_ABIS instead.
  
The name of the instruction set (CPU type + ABI convention) of native code.
CPU_ABI2
public static final String CPU_ABI2
      This field was deprecated
      in API level 21.
    Use SUPPORTED_ABIS instead.
  
The name of the second instruction set (CPU type + ABI convention) of native code.
DISPLAY
public static final String DISPLAY
A build ID string meant for displaying to the user
FINGERPRINT
public static final String FINGERPRINT
A string that uniquely identifies this build. Do not attempt to parse this value.
HARDWARE
public static final String HARDWARE
The name of the hardware (from the kernel command line or /proc).
ID
public static final String ID
Either a changelist number, or a label like "M4-rc20".
MANUFACTURER
public static final String MANUFACTURER
The manufacturer of the product/hardware.
MODEL
public static final String MODEL
The end-user-visible name for the end product.
ODM_SKU
public static final String ODM_SKU
The SKU of the device as set by the original design manufacturer (ODM).
This is a runtime-initialized property set during startup to configure device
 services. If no value is set, this is reported as UNKNOWN.
 
The ODM SKU may have multiple variants for the same system SKU in case a manufacturer produces variants of the same design. For example, the same build may be released with variations in physical keyboard and/or display hardware, each with a different ODM SKU.
RADIO
public static final String RADIO
      This field was deprecated
      in API level 15.
    The radio firmware version is frequently not
 available when this class is initialized, leading to a blank or
 "unknown" value for this string.  Use
 getRadioVersion() instead.
  
The radio firmware version number.
SERIAL
public static final String SERIAL
      This field was deprecated
      in API level 26.
    Use getSerial() instead.
  
A hardware serial number, if available. Alphanumeric only, case-insensitive.
 This field is always set to Build.UNKNOWN.
SKU
public static final String SKU
The SKU of the hardware (from the kernel command line).
The SKU is reported by the bootloader to configure system software features.
 If no value is supplied by the bootloader, this is reported as UNKNOWN.
SOC_MANUFACTURER
public static final String SOC_MANUFACTURER
The manufacturer of the device's primary system-on-chip.
SOC_MODEL
public static final String SOC_MODEL
The model name of the device's primary system-on-chip.
SUPPORTED_32_BIT_ABIS
public static final String[] SUPPORTED_32_BIT_ABIS
An ordered list of 32 bit ABIs supported by this device. The most preferred ABI
 is the first element in the list.
 See SUPPORTED_ABIS and SUPPORTED_64_BIT_ABIS.
SUPPORTED_64_BIT_ABIS
public static final String[] SUPPORTED_64_BIT_ABIS
An ordered list of 64 bit ABIs supported by this device. The most preferred ABI
 is the first element in the list.
 See SUPPORTED_ABIS and SUPPORTED_32_BIT_ABIS.
SUPPORTED_ABIS
public static final String[] SUPPORTED_ABIS
An ordered list of ABIs supported by this device. The most preferred ABI is the first
 element in the list.
 See SUPPORTED_32_BIT_ABIS and SUPPORTED_64_BIT_ABIS.
TAGS
public static final String TAGS
Comma-separated tags describing the build, like "unsigned,debug".
TIME
public static final long TIME
The time at which the build was produced, given in milliseconds since the UNIX epoch.
Public constructors
Build
public Build ()
Public methods
getBackportedFixStatus
public static int getBackportedFixStatus (long id)
The status of the backported fix for a known issue on this device.
| Parameters | |
|---|---|
| id | long: The id of the known issue to check. | 
| Returns | |
|---|---|
| int | BACKPORTED_FIX_STATUS_FIXEDif the known issue is
 fixed on this device,BACKPORTED_FIX_STATUS_NOT_FIXEDif the known issue is not
 fixed on this device,BACKPORTED_FIX_STATUS_NOT_APPLICABLEif the known issue is
 is not applicable on this device,
 otherwiseBACKPORTED_FIX_STATUS_UNKNOWN.
 Value isBACKPORTED_FIX_STATUS_UNKNOWN,BACKPORTED_FIX_STATUS_FIXED,BACKPORTED_FIX_STATUS_NOT_APPLICABLE, orBACKPORTED_FIX_STATUS_NOT_FIXED | 
getFingerprintedPartitions
public static List<Build.Partition> getFingerprintedPartitions ()
Get build information about partitions that have a separate fingerprint defined. The list includes partitions that are suitable candidates for over-the-air updates. This is not an exhaustive list of partitions on the device.
| Returns | |
|---|---|
| List<Build.Partition> | This value cannot be null. | 
getMajorSdkVersion
public static int getMajorSdkVersion (int sdkIntFull)
Obtain the major version encoded in a VERSION_CODES_FULL value. This value is guaranteed to be non-negative.
| Parameters | |
|---|---|
| sdkIntFull | int | 
| Returns | |
|---|---|
| int | The major version encoded in a VERSION_CODES_FULL value | 
getMinorSdkVersion
public static int getMinorSdkVersion (int sdkIntFull)
Obtain the minor version encoded in a VERSION_CODES_FULL value. This value is guaranteed to be non-negative.
| Parameters | |
|---|---|
| sdkIntFull | int | 
| Returns | |
|---|---|
| int | The minor version encoded in a VERSION_CODES_FULL value | 
getRadioVersion
public static String getRadioVersion ()
Returns the version string for the radio firmware. May return null (if, for instance, the radio is not currently on).
| Returns | |
|---|---|
| String | |
getSerial
public static String getSerial ()
Gets the hardware serial number, if available.
Note: Root access may allow you to modify device identifiers, such as the hardware serial number. If you change these identifiers, you can not use key attestation to obtain proof of the device's original identifiers. KeyMint will reject an ID attestation request if the identifiers provided by the frameworks do not match the identifiers it was provisioned with.
Starting with API level 29, persistent device identifiers are guarded behind additional restrictions, and apps are recommended to use resettable identifiers (see Best practices for unique identifiers). This method can be invoked if one of the following requirements is met:
- If the calling app has been granted the READ_PRIVILEGED_PHONE_STATE permission; this is a privileged permission that can only be granted to apps preloaded on the device.
- If the calling app has carrier privileges (see TelephonyManager.hasCarrierPrivileges()) on any active subscription.
- If the calling app is the default SMS role holder (see RoleManager.isRoleHeld(String)).
- If the calling app is the device owner of a fully-managed device, a profile
     owner of an organization-owned device, or their delegates (see DevicePolicyManager.getEnrollmentSpecificId()).
If the calling app does not meet one of these requirements then this method will behave as follows:
- If the calling app's target SDK is API level 28 or lower and the app has the
     READ_PHONE_STATE permission then Build.UNKNOWNis returned.
- If the calling app's target SDK is API level 28 or lower and the app does not have the READ_PHONE_STATE permission, or if the calling app is targeting API level 29 or higher, then a SecurityException is thrown.
Requires android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE
| Returns | |
|---|---|
| String | The serial number if specified. | 
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-09-17 UTC.
