{
	"id": "b1d2d6b1-44a7-4c57-b34f-b1ec1221e81f",
	"created_at": "2026-04-06T00:06:43.061735Z",
	"updated_at": "2026-04-10T03:21:31.406867Z",
	"deleted_at": null,
	"sha1_hash": "2d1a739c3e404700e289e5ad957fbb82357138f0",
	"title": "Build  |  API reference  |  Android Developers",
	"llm_title": "",
	"authors": "",
	"file_creation_date": "0001-01-01T00:00:00Z",
	"file_modification_date": "0001-01-01T00:00:00Z",
	"file_size": 166486,
	"plain_text": "Build  |  API reference  |  Android Developers\r\nArchived: 2026-04-05 16:59:26 UTC\r\nBuild Stay organized with collections Save and categorize content based on your\r\npreferences.\r\npublic class Build\r\nextends Object\r\nInformation about the current build, extracted from system properties.\r\nSummary\r\nFields\r\npublic static\r\nfinal String\r\nBOARD\r\nThe name of the underlying board, like \"goldfish\".\r\npublic static\r\nfinal String\r\nBOOTLOADER\r\nThe system bootloader version number.\r\npublic static\r\nfinal String\r\nBRAND\r\nThe consumer-visible brand with which the product/hardware will be associated, if any.\r\npublic static\r\nfinal String\r\nCPU_ABI\r\nThis field was deprecated in API level 21. Use SUPPORTED_ABIS instead.\r\npublic static\r\nfinal String\r\nCPU_ABI2\r\nThis field was deprecated in API level 21. Use SUPPORTED_ABIS instead.\r\npublic static\r\nfinal String\r\nDEVICE\r\nhttps://developer.android.com/reference/android/os/Build\r\nPage 1 of 13\n\nThe name of the industrial design.\r\npublic static\r\nfinal String\r\nDISPLAY\r\nA build ID string meant for displaying to the user\r\npublic static\r\nfinal String\r\nFINGERPRINT\r\nA string that uniquely identifies this build.\r\npublic static\r\nfinal String\r\nHARDWARE\r\nThe name of the hardware (from the kernel command line or /proc).\r\npublic static\r\nfinal String\r\nHOST\r\npublic static\r\nfinal String\r\nID\r\nEither a changelist number, or a label like \"M4-rc20\".\r\npublic static\r\nfinal String\r\nMANUFACTURER\r\nThe manufacturer of the product/hardware.\r\npublic static\r\nfinal String\r\nMODEL\r\nThe end-user-visible name for the end product.\r\npublic static\r\nfinal String\r\nODM_SKU\r\nThe SKU of the device as set by the original design manufacturer (ODM).\r\npublic static\r\nfinal String\r\nPRODUCT\r\nThe name of the overall product.\r\npublic static\r\nfinal String\r\nRADIO\r\nThis field was deprecated in API level 15. The radio firmware version is frequently not\r\navailable when this class is initialized, leading to a blank or \"unknown\" value for this\r\nstring. Use getRadioVersion() instead.\r\nhttps://developer.android.com/reference/android/os/Build\r\nPage 2 of 13\n\npublic static\r\nfinal String\r\nSERIAL\r\nThis field was deprecated in API level 26. Use getSerial() instead.\r\npublic static\r\nfinal String\r\nSKU\r\nThe SKU of the hardware (from the kernel command line).\r\npublic static\r\nfinal String\r\nSOC_MANUFACTURER\r\nThe manufacturer of the device's primary system-on-chip.\r\npublic static\r\nfinal String\r\nSOC_MODEL\r\nThe model name of the device's primary system-on-chip.\r\npublic static\r\nfinal String\r\nSTRONGBOX_MANUFACTURER\r\nThe manufacturer of the device's StrongBox chip.\r\npublic static\r\nfinal String\r\nSTRONGBOX_MODEL\r\nThe model of the device's StrongBox chip.\r\npublic static\r\nfinal String[]\r\nSUPPORTED_32_BIT_ABIS\r\nAn ordered list of 32 bit ABIs supported by this device.\r\npublic static\r\nfinal String[]\r\nSUPPORTED_64_BIT_ABIS\r\nAn ordered list of 64 bit ABIs supported by this device.\r\npublic static\r\nfinal String[]\r\nSUPPORTED_ABIS\r\nAn ordered list of ABIs supported by this device.\r\npublic static\r\nfinal String\r\nTAGS\r\nComma-separated tags describing the build, like \"unsigned,debug\".\r\npublic static\r\nfinal long\r\nTIME\r\nThe time at which the build was produced, given in milliseconds since the UNIX epoch.\r\nhttps://developer.android.com/reference/android/os/Build\r\nPage 3 of 13\n\npublic static\r\nfinal String\r\nTYPE\r\nThe type of build, like \"user\" or \"eng\".\r\npublic static\r\nfinal String\r\nUSER\r\nPublic constructors\r\nBuild()\r\nInherited methods\r\nFrom class java.lang.Object\r\nObject\r\nclone()\r\nCreates and returns a copy of this object.\r\nboolean\r\nequals(Object obj)\r\nIndicates whether some other object is \"equal to\" this one.\r\nvoid\r\nfinalize()\r\nCalled by the garbage collector on an object when garbage collection determines that\r\nthere are no more references to the object.\r\nfinal\r\nClass\u003c?\u003e\r\ngetClass()\r\nReturns the runtime class of this Object .\r\nint\r\nhashCode()\r\nReturns a hash code value for the object.\r\nfinal void\r\nnotify()\r\nWakes up a single thread that is waiting on this object's monitor.\r\nhttps://developer.android.com/reference/android/os/Build\r\nPage 4 of 13\n\nfinal void\r\nnotifyAll()\r\nWakes up all threads that are waiting on this object's monitor.\r\nString\r\ntoString()\r\nReturns a string representation of the object.\r\nfinal void\r\nwait(long timeoutMillis, int nanos)\r\nCauses the current thread to wait until it is awakened, typically by being notified or\r\ninterrupted, or until a certain amount of real time has elapsed.\r\nfinal void\r\nwait(long timeoutMillis)\r\nCauses the current thread to wait until it is awakened, typically by being notified or\r\ninterrupted, or until a certain amount of real time has elapsed.\r\nfinal void\r\nwait()\r\nCauses the current thread to wait until it is awakened, typically by being notified or\r\ninterrupted.\r\nConstants\r\nBACKPORTED_FIX_STATUS_FIXED\r\npublic static final int BACKPORTED_FIX_STATUS_FIXED\r\nThe known issue is fixed on this device.\r\nConstant Value: 1 (0x00000001)\r\nBACKPORTED_FIX_STATUS_NOT_APPLICABLE\r\npublic static final int BACKPORTED_FIX_STATUS_NOT_APPLICABLE\r\nThe known issue is not applicable to this device.\r\nFor example if the issue only affects a specific brand, devices from other brands would report not applicable.\r\nConstant Value: 2 (0x00000002)\r\nhttps://developer.android.com/reference/android/os/Build\r\nPage 5 of 13\n\nBACKPORTED_FIX_STATUS_NOT_FIXED\r\npublic static final int BACKPORTED_FIX_STATUS_NOT_FIXED\r\nThe known issue is not fixed on this device.\r\nConstant Value: 3 (0x00000003)\r\nBACKPORTED_FIX_STATUS_UNKNOWN\r\npublic static final int BACKPORTED_FIX_STATUS_UNKNOWN\r\nThe status of the known issue on this device is not known.\r\nConstant Value: 0 (0x00000000)\r\nUNKNOWN\r\npublic static final String UNKNOWN\r\nValue used for when a build property is unknown.\r\nConstant Value: \"unknown\"\r\nFields\r\nBOARD\r\npublic static final String BOARD\r\nThe name of the underlying board, like \"goldfish\".\r\nBOOTLOADER\r\npublic static final String BOOTLOADER\r\nThe system bootloader version number.\r\nBRAND\r\npublic static final String BRAND\r\nThe consumer-visible brand with which the product/hardware will be associated, if any.\r\nhttps://developer.android.com/reference/android/os/Build\r\nPage 6 of 13\n\nCPU_ABI\r\npublic static final String CPU_ABI\r\nThis field was deprecated in API level 21.\r\nUse SUPPORTED_ABIS instead.\r\nThe name of the instruction set (CPU type + ABI convention) of native code.\r\nCPU_ABI2\r\npublic static final String CPU_ABI2\r\nThis field was deprecated in API level 21.\r\nUse SUPPORTED_ABIS instead.\r\nThe name of the second instruction set (CPU type + ABI convention) of native code.\r\nDEVICE\r\npublic static final String DEVICE\r\nThe name of the industrial design.\r\nDISPLAY\r\npublic static final String DISPLAY\r\nA build ID string meant for displaying to the user\r\nFINGERPRINT\r\npublic static final String FINGERPRINT\r\nA string that uniquely identifies this build. Do not attempt to parse this value.\r\nHARDWARE\r\npublic static final String HARDWARE\r\nThe name of the hardware (from the kernel command line or /proc).\r\nhttps://developer.android.com/reference/android/os/Build\r\nPage 7 of 13\n\nHOST\r\npublic static final String HOST\r\nID\r\npublic static final String ID\r\nEither a changelist number, or a label like \"M4-rc20\".\r\nMANUFACTURER\r\npublic static final String MANUFACTURER\r\nThe manufacturer of the product/hardware.\r\nMODEL\r\npublic static final String MODEL\r\nThe end-user-visible name for the end product.\r\nODM_SKU\r\npublic static final String ODM_SKU\r\nThe SKU of the device as set by the original design manufacturer (ODM).\r\nThis is a runtime-initialized property set during startup to configure device services. If no value is set, this is\r\nreported as UNKNOWN .\r\nThe ODM SKU may have multiple variants for the same system SKU in case a manufacturer produces variants of\r\nthe same design. For example, the same build may be released with variations in physical keyboard and/or display\r\nhardware, each with a different ODM SKU.\r\nPRODUCT\r\npublic static final String PRODUCT\r\nThe name of the overall product.\r\nRADIO\r\nhttps://developer.android.com/reference/android/os/Build\r\nPage 8 of 13\n\npublic static final String RADIO\r\nThis field was deprecated in API level 15.\r\nThe radio firmware version is frequently not available when this class is initialized, leading to a blank or\r\n\"unknown\" value for this string. Use getRadioVersion() instead.\r\nThe radio firmware version number.\r\nSERIAL\r\npublic static final String SERIAL\r\nThis field was deprecated in API level 26.\r\nUse getSerial() instead.\r\nA hardware serial number, if available. Alphanumeric only, case-insensitive. This field is always set to\r\nBuild.UNKNOWN .\r\nSKU\r\npublic static final String SKU\r\nThe SKU of the hardware (from the kernel command line).\r\nThe SKU is reported by the bootloader to configure system software features. If no value is supplied by the\r\nbootloader, this is reported as UNKNOWN .\r\nSOC_MANUFACTURER\r\npublic static final String SOC_MANUFACTURER\r\nThe manufacturer of the device's primary system-on-chip.\r\nSOC_MODEL\r\npublic static final String SOC_MODEL\r\nThe model name of the device's primary system-on-chip.\r\nSTRONGBOX_MANUFACTURER\r\nhttps://developer.android.com/reference/android/os/Build\r\nPage 9 of 13\n\npublic static final String STRONGBOX_MANUFACTURER\r\nThe manufacturer of the device's StrongBox chip. If the device does not use StrongBox, this should be set to\r\n\"unsupported\".\r\nSTRONGBOX_MODEL\r\npublic static final String STRONGBOX_MODEL\r\nThe model of the device's StrongBox chip. If the device does not use StrongBox, this should be set to\r\n\"unsupported\".\r\nSUPPORTED_32_BIT_ABIS\r\npublic static final String[] SUPPORTED_32_BIT_ABIS\r\nAn ordered list of 32 bit ABIs supported by this device. The most preferred ABI is the first element in the list. See\r\nSUPPORTED_ABIS and SUPPORTED_64_BIT_ABIS .\r\nSUPPORTED_64_BIT_ABIS\r\npublic static final String[] SUPPORTED_64_BIT_ABIS\r\nAn ordered list of 64 bit ABIs supported by this device. The most preferred ABI is the first element in the list. See\r\nSUPPORTED_ABIS and SUPPORTED_32_BIT_ABIS .\r\nTAGS\r\npublic static final String TAGS\r\nComma-separated tags describing the build, like \"unsigned,debug\".\r\nTIME\r\npublic static final long TIME\r\nThe time at which the build was produced, given in milliseconds since the UNIX epoch.\r\nTYPE\r\nhttps://developer.android.com/reference/android/os/Build\r\nPage 10 of 13\n\npublic static final String TYPE\r\nThe type of build, like \"user\" or \"eng\".\r\nUSER\r\npublic static final String USER\r\nPublic constructors\r\nPublic methods\r\ngetBackportedFixStatus\r\npublic static int getBackportedFixStatus (long id)\r\nThe status of the backported fix for a known issue on this device.\r\nParameters\r\nid long : The id of the known issue to check.\r\ngetFingerprintedPartitions\r\npublic static List\u003cBuild.Partition\u003e getFingerprintedPartitions ()\r\nGet build information about partitions that have a separate fingerprint defined. The list includes partitions that are\r\nsuitable candidates for over-the-air updates. This is not an exhaustive list of partitions on the device.\r\ngetMajorSdkVersion\r\npublic static int getMajorSdkVersion (int sdkIntFull)\r\nObtain the major version encoded in a VERSION_CODES_FULL value. This value is guaranteed to be non-negative.\r\nParameters\r\nsdkIntFull int\r\nReturns\r\nhttps://developer.android.com/reference/android/os/Build\r\nPage 11 of 13\n\nint The major version encoded in a VERSION_CODES_FULL value\r\ngetMinorSdkVersion\r\npublic static int getMinorSdkVersion (int sdkIntFull)\r\nObtain the minor version encoded in a VERSION_CODES_FULL value. This value is guaranteed to be non-negative.\r\nParameters\r\nsdkIntFull int\r\nReturns\r\nint The minor version encoded in a VERSION_CODES_FULL value\r\ngetRadioVersion\r\npublic static String getRadioVersion ()\r\nReturns the version string for the radio firmware. May return null (if, for instance, the radio is not currently on).\r\ngetSerial\r\npublic static String getSerial ()\r\nGets the hardware serial number, if available.\r\nNote: Root access may allow you to modify device identifiers, such as the hardware serial number. If you change\r\nthese identifiers, you can not use key attestation to obtain proof of the device's original identifiers. KeyMint will\r\nreject an ID attestation request if the identifiers provided by the frameworks do not match the identifiers it was\r\nprovisioned with.\r\nStarting with API level 29, persistent device identifiers are guarded behind additional restrictions, and apps are\r\nrecommended to use resettable identifiers (see Best practices for unique identifiers). This method can be invoked\r\nif one of the following requirements is met:\r\nIf the calling app has been granted the READ_PRIVILEGED_PHONE_STATE permission; this is a\r\nprivileged permission that can only be granted to apps preloaded on the device.\r\nIf the calling app has carrier privileges (see TelephonyManager.hasCarrierPrivileges() ) on any active\r\nsubscription.\r\nIf the calling app is the default SMS role holder (see\r\nandroid.app.role.RoleManager.isRoleHeld(String) ).\r\nhttps://developer.android.com/reference/android/os/Build\r\nPage 12 of 13\n\nIf the calling app is the device owner of a fully-managed device, a profile owner of an organization-owned\r\ndevice, or their delegates (see DevicePolicyManager.getEnrollmentSpecificId() ).\r\nIf the calling app does not meet one of these requirements then this method will behave as follows:\r\nIf the calling app's target SDK is API level 28 or lower and the app has the READ_PHONE_STATE\r\npermission then Build.UNKNOWN is returned.\r\nIf the calling app's target SDK is API level 28 or lower and the app does not have the\r\nREAD_PHONE_STATE permission, or if the calling app is targeting API level 29 or higher, then a\r\nSecurityException is thrown.\r\n.\r\nRequires android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE\r\nReturns\r\nString The serial number if specified.\r\nSource: https://developer.android.com/reference/android/os/Build\r\nhttps://developer.android.com/reference/android/os/Build\r\nPage 13 of 13",
	"extraction_quality": 1,
	"language": "EN",
	"sources": [
		"MITRE"
	],
	"references": [
		"https://developer.android.com/reference/android/os/Build"
	],
	"report_names": [
		"Build"
	],
	"threat_actors": [],
	"ts_created_at": 1775434003,
	"ts_updated_at": 1775791291,
	"ts_creation_date": 0,
	"ts_modification_date": 0,
	"files": {
		"pdf": "https://archive.orkl.eu/2d1a739c3e404700e289e5ad957fbb82357138f0.pdf",
		"text": "https://archive.orkl.eu/2d1a739c3e404700e289e5ad957fbb82357138f0.txt",
		"img": "https://archive.orkl.eu/2d1a739c3e404700e289e5ad957fbb82357138f0.jpg"
	}
}