pub struct Build { /* private fields */ }
Expand description
从系统属性中提取的有关当前构建的信息。
Implementations§
Source§impl Build
impl Build
Sourcepub const ID: fn() -> String = {<{closure@src/android/os.rs:370:29: 370:31} as std::ops::FnOnce<()>>::call_once as fn() -> std::string::String}
pub const ID: fn() -> String = {<{closure@src/android/os.rs:370:29: 370:31} as std::ops::FnOnce<()>>::call_once as fn() -> std::string::String}
可以是变更列表编号,也可以是像“M4-rc20”这样的标签。
Sourcepub const DISPLAY: fn() -> String = {<{closure@src/android/os.rs:373:34: 373:36} as std::ops::FnOnce<()>>::call_once as fn() -> std::string::String}
pub const DISPLAY: fn() -> String = {<{closure@src/android/os.rs:373:34: 373:36} as std::ops::FnOnce<()>>::call_once as fn() -> std::string::String}
用于向用户显示的构建 ID 字符串
Sourcepub const PRODUCT: fn() -> String = {<{closure@src/android/os.rs:376:34: 376:36} as std::ops::FnOnce<()>>::call_once as fn() -> std::string::String}
pub const PRODUCT: fn() -> String = {<{closure@src/android/os.rs:376:34: 376:36} as std::ops::FnOnce<()>>::call_once as fn() -> std::string::String}
整体产品的名称。
Sourcepub const PRODUCT_FOR_ATTESTATION: fn() -> String = {<{closure@src/android/os.rs:394:50: 394:52} as std::ops::FnOnce<()>>::call_once as fn() -> std::string::String}
pub const PRODUCT_FOR_ATTESTATION: fn() -> String = {<{closure@src/android/os.rs:394:50: 394:52} as std::ops::FnOnce<()>>::call_once as fn() -> std::string::String}
用于认证的产品名称。在非默认版本(如 AOSP 版本)中,“PRODUCT”系统属性的值可能与提供给 KeyMint 的值不同,而 Keymint 认证仍会认证提供给 KeyMint 的产品名称。
Sourcepub const DEVICE_FOR_ATTESTATION: fn() -> String = {<{closure@src/android/os.rs:398:49: 398:51} as std::ops::FnOnce<()>>::call_once as fn() -> std::string::String}
pub const DEVICE_FOR_ATTESTATION: fn() -> String = {<{closure@src/android/os.rs:398:49: 398:51} as std::ops::FnOnce<()>>::call_once as fn() -> std::string::String}
用于认证的设备名称。在非默认版本(如 AOSP 版本)中,“DEVICE”系统属性的值可能与配置给 KeyMint 的值不同,而 Keymint 认证仍会认证配置的设备名称。
Sourcepub const BOARD: fn() -> String = {<{closure@src/android/os.rs:401:32: 401:34} as std::ops::FnOnce<()>>::call_once as fn() -> std::string::String}
pub const BOARD: fn() -> String = {<{closure@src/android/os.rs:401:32: 401:34} as std::ops::FnOnce<()>>::call_once as fn() -> std::string::String}
底层板的名称,例如“金鱼”。
Sourcepub const CPU_ABI: fn() -> String = {std::string::String::new as fn() -> std::string::String}
👎Deprecated: 改用 SUPPORTED_ABIS。
pub const CPU_ABI: fn() -> String = {std::string::String::new as fn() -> std::string::String}
本机代码的指令集名称(CPU 类型 + ABI 约定)。
Sourcepub const CPU_ABI2: fn() -> String = {std::string::String::new as fn() -> std::string::String}
👎Deprecated: 改用 SUPPORTED_ABIS。
pub const CPU_ABI2: fn() -> String = {std::string::String::new as fn() -> std::string::String}
本机代码的第二个指令集 (CPU 类型 + ABI 约定) 的名称。
Sourcepub const MANUFACTURER: fn() -> String = {<{closure@src/android/os.rs:414:39: 414:41} as std::ops::FnOnce<()>>::call_once as fn() -> std::string::String}
pub const MANUFACTURER: fn() -> String = {<{closure@src/android/os.rs:414:39: 414:41} as std::ops::FnOnce<()>>::call_once as fn() -> std::string::String}
产品/硬件的制造商。
Sourcepub const MANUFACTURER_FOR_ATTESTATION: fn() -> String = {<{closure@src/android/os.rs:419:9: 419:11} as std::ops::FnOnce<()>>::call_once as fn() -> std::string::String}
pub const MANUFACTURER_FOR_ATTESTATION: fn() -> String = {<{closure@src/android/os.rs:419:9: 419:11} as std::ops::FnOnce<()>>::call_once as fn() -> std::string::String}
用于认证的制造商名称。在非默认版本(如 AOSP 版本)中,“MANUFACTURER”系统属性的值可能与提供给 KeyMint 的值不同,而 Keymint 认证仍将认证提供给所配置的制造商。
Sourcepub const BRAND: fn() -> String = {<{closure@src/android/os.rs:422:32: 422:34} as std::ops::FnOnce<()>>::call_once as fn() -> std::string::String}
pub const BRAND: fn() -> String = {<{closure@src/android/os.rs:422:32: 422:34} as std::ops::FnOnce<()>>::call_once as fn() -> std::string::String}
与产品/硬件相关的消费者可见品牌(如果有)。
Sourcepub const BRAND_FOR_ATTESTATION: fn() -> String = {<{closure@src/android/os.rs:426:48: 426:50} as std::ops::FnOnce<()>>::call_once as fn() -> std::string::String}
pub const BRAND_FOR_ATTESTATION: fn() -> String = {<{closure@src/android/os.rs:426:48: 426:50} as std::ops::FnOnce<()>>::call_once as fn() -> std::string::String}
用于认证的产品品牌。在非默认版本(如 AOSP 版本)中,“BRAND”系统属性的值可能与提供给 KeyMint 的值不同,而 Keymint 认证仍将认证提供给的产品品牌。
Sourcepub const MODEL: fn() -> String = {<{closure@src/android/os.rs:429:32: 429:34} as std::ops::FnOnce<()>>::call_once as fn() -> std::string::String}
pub const MODEL: fn() -> String = {<{closure@src/android/os.rs:429:32: 429:34} as std::ops::FnOnce<()>>::call_once as fn() -> std::string::String}
最终产品的最终用户可见的名称。
Sourcepub const MODEL_FOR_ATTESTATION: fn() -> String = {<{closure@src/android/os.rs:433:48: 433:50} as std::ops::FnOnce<()>>::call_once as fn() -> std::string::String}
pub const MODEL_FOR_ATTESTATION: fn() -> String = {<{closure@src/android/os.rs:433:48: 433:50} as std::ops::FnOnce<()>>::call_once as fn() -> std::string::String}
用于认证的产品型号。在非默认版本(如 AOSP 版本)中,“MODEL”系统属性的值可能与配置给 KeyMint 的值不同,而 Keymint 认证仍会认证配置的产品型号。
Sourcepub const BOOTLOADER: fn() -> String = {<{closure@src/android/os.rs:436:37: 436:39} as std::ops::FnOnce<()>>::call_once as fn() -> std::string::String}
pub const BOOTLOADER: fn() -> String = {<{closure@src/android/os.rs:436:37: 436:39} as std::ops::FnOnce<()>>::call_once as fn() -> std::string::String}
系统引导加载程序版本号。
Sourcepub const HARDWARE: fn() -> String = {<{closure@src/android/os.rs:439:35: 439:37} as std::ops::FnOnce<()>>::call_once as fn() -> std::string::String}
pub const HARDWARE: fn() -> String = {<{closure@src/android/os.rs:439:35: 439:37} as std::ops::FnOnce<()>>::call_once as fn() -> std::string::String}
硬件的名称(来自内核命令行或 /proc)。
Sourcepub const SKU: fn() -> String = {<{closure@src/android/os.rs:445:30: 445:32} as std::ops::FnOnce<()>>::call_once as fn() -> std::string::String}
pub const SKU: fn() -> String = {<{closure@src/android/os.rs:445:30: 445:32} as std::ops::FnOnce<()>>::call_once as fn() -> std::string::String}
硬件的 SKU(来自内核命令行)。 引导加载程序会报告 SKU 以配置系统软件功能。如果引导加载程序未提供任何值,则报告为“未知”。
Sourcepub const ODM_SKU: fn() -> String = {<{closure@src/android/os.rs:452:34: 452:36} as std::ops::FnOnce<()>>::call_once as fn() -> std::string::String}
pub const ODM_SKU: fn() -> String = {<{closure@src/android/os.rs:452:34: 452:36} as std::ops::FnOnce<()>>::call_once as fn() -> std::string::String}
原始设计制造商 (ODM) 设置的设备 SKU。 这是启动期间设置的运行时初始化属性,用于配置设备服务。如果未设置任何值,则报告为“未知”。 如果制造商生产相同设计的变体,ODM SKU 可能会针对同一系统 SKU 提供多种变体。例如,同一版本可能会发布具有不同物理键盘和/或显示硬件的变体,每个变体都有不同的 ODM SKU。
Sourcepub const IS_EMULATOR: fn() -> bool = {<{closure@src/android/os.rs:455:44: 455:46} as std::ops::FnOnce<()>>::call_once as fn() -> bool}
pub const IS_EMULATOR: fn() -> bool = {<{closure@src/android/os.rs:455:44: 455:46} as std::ops::FnOnce<()>>::call_once as fn() -> bool}
此版本是否适用于模拟器设备。
Sourcepub const SERIAL: fn() -> String = {<{closure@src/android/os.rs:460:33: 460:35} as std::ops::FnOnce<()>>::call_once as fn() -> std::string::String}
👎Deprecated: 改用 getSerial()。
pub const SERIAL: fn() -> String = {<{closure@src/android/os.rs:460:33: 460:35} as std::ops::FnOnce<()>>::call_once as fn() -> std::string::String}
硬件序列号(如果有)。仅限字母数字,不区分大小写。此字段始终设置为 Build#UNKNOWN。
Sourcepub const SUPPORTED_ABIS: fn() -> Vec<String> = {<{closure@src/android/os.rs:489:9: 489:11} as std::ops::FnOnce<()>>::call_once as fn() -> std::vec::Vec<std::string::String>}
pub const SUPPORTED_ABIS: fn() -> Vec<String> = {<{closure@src/android/os.rs:489:9: 489:11} as std::ops::FnOnce<()>>::call_once as fn() -> std::vec::Vec<std::string::String>}
此设备支持的 ABI 的有序列表。最优先的 ABI 是列表中的第一个元素。 参见SUPPORTED_32_BIT_ABIS和SUPPORTED_64_BIT_ABIS。
Sourcepub const SUPPORTED_32_BIT_ABIS: fn() -> Vec<String> = {<{closure@src/android/os.rs:497:9: 497:11} as std::ops::FnOnce<()>>::call_once as fn() -> std::vec::Vec<std::string::String>}
pub const SUPPORTED_32_BIT_ABIS: fn() -> Vec<String> = {<{closure@src/android/os.rs:497:9: 497:11} as std::ops::FnOnce<()>>::call_once as fn() -> std::vec::Vec<std::string::String>}
此设备支持的 32 位 ABI 的有序列表。最优先的 ABI 是列表中的第一个元素。 参见SUPPORTED_ABIS和SUPPORTED_64_BIT_ABIS。
Sourcepub const SUPPORTED_64_BIT_ABIS: fn() -> Vec<String> = {<{closure@src/android/os.rs:505:9: 505:11} as std::ops::FnOnce<()>>::call_once as fn() -> std::vec::Vec<std::string::String>}
pub const SUPPORTED_64_BIT_ABIS: fn() -> Vec<String> = {<{closure@src/android/os.rs:505:9: 505:11} as std::ops::FnOnce<()>>::call_once as fn() -> std::vec::Vec<std::string::String>}
此设备支持的 64 位 ABI 的有序列表。最优先的 ABI 是列表中的第一个元素。 参见SUPPORTED_ABIS和SUPPORTED_32_BIT_ABIS。
Sourcepub const TYPE: fn() -> String = {<{closure@src/android/os.rs:512:31: 512:33} as std::ops::FnOnce<()>>::call_once as fn() -> std::string::String}
pub const TYPE: fn() -> String = {<{closure@src/android/os.rs:512:31: 512:33} as std::ops::FnOnce<()>>::call_once as fn() -> std::string::String}
构建类型,如“user”或“eng”。
Sourcepub const TAGS: fn() -> String = {<{closure@src/android/os.rs:515:31: 515:33} as std::ops::FnOnce<()>>::call_once as fn() -> std::string::String}
pub const TAGS: fn() -> String = {<{closure@src/android/os.rs:515:31: 515:33} as std::ops::FnOnce<()>>::call_once as fn() -> std::string::String}
用逗号分隔的标签描述构建,如“unsigned,debug”。
Sourcepub const FINGERPRINT: fn() -> String = {<{closure@src/android/os.rs:518:38: 518:40} as std::ops::FnOnce<()>>::call_once as fn() -> std::string::String}
pub const FINGERPRINT: fn() -> String = {<{closure@src/android/os.rs:518:38: 518:40} as std::ops::FnOnce<()>>::call_once as fn() -> std::string::String}
唯一标识此构建的字符串。请勿尝试解析此值。
Sourcepub const HW_TIMEOUT_MULTIPLIER: fn() -> i32 = {<{closure@src/android/os.rs:548:9: 548:11} as std::ops::FnOnce<()>>::call_once as fn() -> i32}
pub const HW_TIMEOUT_MULTIPLIER: fn() -> i32 = {<{closure@src/android/os.rs:548:9: 548:11} as std::ops::FnOnce<()>>::call_once as fn() -> i32}
系统上各种超时的乘数。 目的是针对比真实硬件慢几个数量级的软件模拟器的产品可以将其设置为较大的数字。在真实设备和硬件加速的虚拟化设备上不应设置此数字。
Sourcepub const IS_TREBLE_ENABLED: fn() -> bool = {<{closure@src/android/os.rs:552:9: 552:11} as std::ops::FnOnce<()>>::call_once as fn() -> bool}
pub const IS_TREBLE_ENABLED: fn() -> bool = {<{closure@src/android/os.rs:552:9: 552:11} as std::ops::FnOnce<()>>::call_once as fn() -> bool}
如果此设备启用了 Treble 并且需要该功能,则为 True。
Sourcepub const TIME: fn() -> i64 = {<{closure@src/android/os.rs:570:36: 570:38} as std::ops::FnOnce<()>>::call_once as fn() -> i64}
pub const TIME: fn() -> i64 = {<{closure@src/android/os.rs:570:36: 570:38} as std::ops::FnOnce<()>>::call_once as fn() -> i64}
自Unix时期以来,生产构建的时间以毫秒为单位。
Sourcepub const IS_DEBUGGABLE: fn() -> bool = {<{closure@src/android/os.rs:584:9: 584:11} as std::ops::FnOnce<()>>::call_once as fn() -> bool}
pub const IS_DEBUGGABLE: fn() -> bool = {<{closure@src/android/os.rs:584:9: 584:11} as std::ops::FnOnce<()>>::call_once as fn() -> bool}
如果设备正在运行可调试版本(例如“userdebug”或“eng”),则返回 true。 可调试版本允许用户通过本地 shell 获得 root 访问权限、将调试器附加到任何应用程序(无论它们是否设置了“可调试”属性),或者将 selinux 降级为“宽容”模式。
Sourcepub const IS_ARC: fn() -> bool = {<{closure@src/android/os.rs:611:9: 611:11} as std::ops::FnOnce<()>>::call_once as fn() -> bool}
pub const IS_ARC: fn() -> bool = {<{closure@src/android/os.rs:611:9: 611:11} as std::ops::FnOnce<()>>::call_once as fn() -> bool}
此版本是否在 ARC(适用于 Chrome 的 Android 运行时)上运行https://chromium.googlesource.com/chromiumos/docs/+/master/containers_and_vms.md。在 R 之前,它被实现为容器,但从 R 开始,它将是 VM。属性的名称仍为 ro.boot.conntainer,因为它在其他项目中被引用。 如果可能的话,我们应尽量避免检查此标记,以尽量减少 与 非容器 Android 行为的不必要差异。当低级资源不同时,检查此标记是可以接受的,例如某些功能的可用性、对系统资源的访问受到限制以及主机操作系统可能会为我们处理某些功能。对于更高级别的行为差异,应优先进行其他检查。
Sourcepub const PERMISSIONS_REVIEW_REQUIRED: bool = true
pub const PERMISSIONS_REVIEW_REQUIRED: bool = true
指定是否应在旧版应用的任何组件运行之前审核其所需的权限。旧版应用是指 targetSdkVersion < 23 的应用,即使用旧权限模型的应用。如果无需审核,则会在安装应用之前审核权限。
Sourcepub fn get_serial() -> Result<String, <Self as JType>::Error>
pub fn get_serial() -> Result<String, <Self as JType>::Error>
获取硬件序列号(如果可用)。 注意:root 访问权限可能允许您修改设备标识符,例如硬件序列号。如果您更改这些标识符,则无法使用密钥认证来获取设备原始标识符的证明。如果框架提供的标识符与其配置的标识符不匹配,KeyMint 将拒绝 ID 认证请求。 从 API 级别 29 开始,持久设备标识符受到额外限制的保护,建议应用使用可重置标识符(请参阅唯一标识符的最佳实践)。如果满足以下要求之一,则可以调用此方法: 如果调用应用已被授予 READ_PRIVILEGED_PHONE_STATE 权限;这是一项特权权限,只能授予设备上预加载的应用。如果调用应用在任何有效订阅上具有运营商权限(请参阅 android.telephony.TelephonyManager.hasCarrierPrivileges)。 如果调用应用程序是默认的 SMS 角色持有者(请参阅 android.app.role.RoleManager.isRoleHeld(String))。如果调用应用程序是完全托管设备的设备所有者、组织拥有的设备的配置文件所有者或其代表(请参阅 android.app.admin.DevicePolicyManager.getEnrollmentSpecificId())。 如果调用应用程序不满足这些要求之一,则此方法将按以下方式运行: 如果调用应用程序的目标 SDK 为 API 级别 28 或更低,并且应用程序具有 READ_PHONE_STATE 权限,则返回 UNKNOWN。如果调用应用程序的目标 SDK 为 API 级别 28 或更低,并且应用程序没有 READ_PHONE_STATE 权限,或者如果调用应用程序的目标是 API 级别 29 或更高,则抛出 SecurityException。 返回:序列号(如果指定)。
Sourcepub fn ensure_fingerprint_property()
pub fn ensure_fingerprint_property()
确保定义了原始指纹系统属性。如果它是由 deriveFingerprint() 动态派生的,那么我们将派生值推送到属性服务中。
Sourcepub fn is_build_consistent() -> bool
pub fn is_build_consistent() -> bool
验证设备的当前闪存是否与构建时预期的一致。Treble 设备将验证供应商接口 (VINTF)。 未使用 Treble 启动的设备:1) 检查设备指纹是否已定义以及它是否与各个分区匹配。2) 验证无线电和引导加载程序分区是否是构建中预期的分区。
Sourcepub fn is_debuggable() -> bool
pub fn is_debuggable() -> bool
如果设备正在运行可调试版本(例如“userdebug”或“eng”),则返回 true。 可调试版本允许用户通过本地 shell 获得 root 访问权限、将调试器附加到任何应用程序(无论它们是否设置了“可调试”属性),或者将 selinux 降级为“宽容”模式。