blob: cd1bb75ac949344dd0afa4978a3f11231bfefe53 [file]
// Copyright 2025 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef BASE_ANDROID_ANDROID_INFO_H_
#define BASE_ANDROID_ANDROID_INFO_H_
#include <string>
#include "base/base_export.h"
#if __ANDROID_API__ >= 29
namespace aidl::org::chromium::base {
class IAndroidInfo;
} // namespace aidl::org::chromium::base
using ::aidl::org::chromium::base::IAndroidInfo;
#else
struct IAndroidInfo;
#endif
namespace base::android::android_info {
// This enumeration maps to the values returned by AndroidInfo::sdk_int(),
// indicating the Android release associated with a given SDK version.
enum SdkVersion {
SDK_VERSION_JELLY_BEAN = 16,
SDK_VERSION_JELLY_BEAN_MR1 = 17,
SDK_VERSION_JELLY_BEAN_MR2 = 18,
SDK_VERSION_KITKAT = 19,
SDK_VERSION_KITKAT_WEAR = 20,
SDK_VERSION_LOLLIPOP = 21,
SDK_VERSION_LOLLIPOP_MR1 = 22,
SDK_VERSION_MARSHMALLOW = 23,
SDK_VERSION_NOUGAT = 24,
SDK_VERSION_NOUGAT_MR1 = 25,
SDK_VERSION_OREO = 26,
SDK_VERSION_O_MR1 = 27,
SDK_VERSION_P = 28,
SDK_VERSION_Q = 29,
SDK_VERSION_R = 30,
SDK_VERSION_S = 31,
SDK_VERSION_Sv2 = 32,
SDK_VERSION_T = 33,
SDK_VERSION_U = 34,
SDK_VERSION_V = 35,
SDK_VERSION_BAKLAVA = 36,
SDK_VERSION_CINNAMON_BUN = 37,
};
// This enumeration maps to the values returned by AndroidInfo::sdk_int_full(),
// indicating the minor Android release associated with a given SDK version.
enum SdkVersionFull {
SDK_VERSION_FULL_JELLY_BEAN = 1600000,
SDK_VERSION_FULL_JELLY_BEAN_MR1 = 1700000,
SDK_VERSION_FULL_JELLY_BEAN_MR2 = 1800000,
SDK_VERSION_FULL_KITKAT = 1900000,
SDK_VERSION_FULL_KITKAT_WEAR = 2000000,
SDK_VERSION_FULL_LOLLIPOP = 2100000,
SDK_VERSION_FULL_LOLLIPOP_MR1 = 2200000,
SDK_VERSION_FULL_MARSHMALLOW = 2300000,
SDK_VERSION_FULL_NOUGAT = 2400000,
SDK_VERSION_FULL_NOUGAT_MR1 = 2500000,
SDK_VERSION_FULL_OREO = 2600000,
SDK_VERSION_FULL_O_MR1 = 2700000,
SDK_VERSION_FULL_P = 2800000,
SDK_VERSION_FULL_Q = 2900000,
SDK_VERSION_FULL_R = 3000000,
SDK_VERSION_FULL_S = 3100000,
SDK_VERSION_FULL_Sv2 = 3200000,
SDK_VERSION_FULL_T = 3300000,
SDK_VERSION_FULL_U = 3400000,
SDK_VERSION_FULL_V = 3500000,
SDK_VERSION_FULL_BAKLAVA = 3600000,
SDK_VERSION_FULL_BAKLAVA_1 = 3600001,
};
BASE_EXPORT const std::string& device();
BASE_EXPORT const std::string& manufacturer();
BASE_EXPORT const std::string& model();
BASE_EXPORT const std::string& brand();
BASE_EXPORT const std::string& android_build_id();
BASE_EXPORT const std::string& build_type();
BASE_EXPORT const std::string& board();
BASE_EXPORT const std::string& android_build_fp();
BASE_EXPORT int sdk_int();
BASE_EXPORT int sdk_int_full();
BASE_EXPORT bool is_debug_android();
BASE_EXPORT const std::string& version_incremental();
BASE_EXPORT const std::string& hardware();
BASE_EXPORT const std::string& codename();
// Available only on android S+. For S-, this method returns empty string.
BASE_EXPORT const std::string& soc_manufacturer();
BASE_EXPORT const std::string& abi_name();
BASE_EXPORT const std::string& security_patch();
BASE_EXPORT void Set(const IAndroidInfo& info);
} // namespace base::android::android_info
#endif // BASE_ANDROID_ANDROID_INFO_H_