droid_wrap::android::os

Struct Build

Source
pub struct Build { /* private fields */ }
Expand description

从系统属性中提取的有关当前构建的信息。

Implementations§

Source§

impl Build

Source

pub const UNKNOWN: &'static str = "unknown"

构建属性未知时使用的值。

Source

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”这样的标签。

Source

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 字符串

Source

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}

整体产品的名称。

Source

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 的产品名称。

Source

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 认证仍会认证配置的设备名称。

Source

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}

底层板的名称,例如“金鱼”。

Source

pub const CPU_ABI: fn() -> String = {std::string::String::new as fn() -> std::string::String}

👎Deprecated: 改用 SUPPORTED_ABIS。

本机代码的指令集名称(CPU 类型 + ABI 约定)。

Source

pub const CPU_ABI2: fn() -> String = {std::string::String::new as fn() -> std::string::String}

👎Deprecated: 改用 SUPPORTED_ABIS。

本机代码的第二个指令集 (CPU 类型 + ABI 约定) 的名称。

Source

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}

产品/硬件的制造商。

Source

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 认证仍将认证提供给所配置的制造商。

Source

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}

与产品/硬件相关的消费者可见品牌(如果有)。

Source

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 认证仍将认证提供给的产品品牌。

Source

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}

最终产品的最终用户可见的名称。

Source

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 认证仍会认证配置的产品型号。

Source

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}

系统引导加载程序版本号。

Source

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)。

Source

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 以配置系统软件功能。如果引导加载程序未提供任何值,则报告为“未知”。

Source

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。

Source

pub const IS_EMULATOR: fn() -> bool = {<{closure@src/android/os.rs:455:44: 455:46} as std::ops::FnOnce<()>>::call_once as fn() -> bool}

此版本是否适用于模拟器设备。

Source

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}

👎Deprecated: 改用 getSerial()。

硬件序列号(如果有)。仅限字母数字,不区分大小写。此字段始终设置为 Build#UNKNOWN。

Source

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。

Source

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。

Source

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。

Source

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”。

Source

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”。

Source

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}

唯一标识此构建的字符串。请勿尝试解析此值。

Source

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}

系统上各种超时的乘数。 目的是针对比真实硬件慢几个数量级的软件模拟器的产品可以将其设置为较大的数字。在真实设备和硬件加速的虚拟化设备上不应设置此数字。

Source

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。

Source

pub const TIME: fn() -> i64 = {<{closure@src/android/os.rs:570:36: 570:38} as std::ops::FnOnce<()>>::call_once as fn() -> i64}

自Unix时期以来,生产构建的时间以毫秒为单位。

Source

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 降级为“宽容”模式。

Source

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 行为的不必要差异。当低级资源不同时,检查此标记是可以接受的,例如某些功能的可用性、对系统资源的访问受到限制以及主机操作系统可能会为我们处理某些功能。对于更高级别的行为差异,应优先进行其他检查。

Source

pub const PERMISSIONS_REVIEW_REQUIRED: bool = true

指定是否应在旧版应用的任何组件运行之前审核其所需的权限。旧版应用是指 targetSdkVersion < 23 的应用,即使用旧权限模型的应用。如果无需审核,则会在安装应用之前审核权限。

Source

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。 返回:序列号(如果指定)。

Source

pub fn ensure_fingerprint_property()

确保定义了原始指纹系统属性。如果它是由 deriveFingerprint() 动态派生的,那么我们将派生值推送到属性服务中。

Source

pub fn is_build_consistent() -> bool

验证设备的当前闪存是否与构建时预期的一致。Treble 设备将验证供应商接口 (VINTF)。 未使用 Treble 启动的设备:1) 检查设备指纹是否已定义以及它是否与各个分区匹配。2) 验证无线电和引导加载程序分区是否是构建中预期的分区。

Source

pub fn is_debuggable() -> bool

如果设备正在运行可调试版本(例如“userdebug”或“eng”),则返回 true。 可调试版本允许用户通过本地 shell 获得 root 访问权限、将调试器附加到任何应用程序(无论它们是否设置了“可调试”属性),或者将 selinux 降级为“宽容”模式。

Methods from Deref<Target = GlobalRef>§

Source

pub fn as_obj(&self) -> &JObject<'static>

Get the object from the global ref

This borrows the ref and prevents it from being dropped as long as the JObject sticks around.

Methods from Deref<Target = JObject<'static>>§

Source

pub fn as_raw(&self) -> *mut _jobject

Returns the raw JNI pointer.

Trait Implementations§

Source§

impl Debug for Build

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Deref for Build

Source§

type Target = GlobalRef

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl From<&GlobalRef> for Build

Source§

fn from(obj: &GlobalRef) -> Self

Converts to this type from the input type.
Source§

impl Into<GlobalRef> for &Build

Source§

fn into(self) -> GlobalRef

Converts this type into the (usually inferred) input type.
Source§

impl JObjNew for Build

Source§

type Fields = ()

字段类型
Source§

fn _new(this: &GlobalRef, fields: Self::Fields) -> Self

从java对象创建本地对象。 this java对象引用。
Source§

fn null() -> Self
where Self: Sized, Self::Fields: Default,

创建空对象。
Source§

impl JObjRef for Build

Source§

fn java_ref(&self) -> GlobalRef

获取java对象引用。
Source§

impl JType for Build

Source§

const CLASS: &'static str = "android/os/Build"

java类的名称。
Source§

const OBJECT_SIG: &'static str = "Landroid/os/Build;"

对象的签名描述。
Source§

type Error = Error

错误类型。
Source§

const DIM: u8 = 0u8

数组维度,0表示不是数组
Source§

impl PartialEq for Build

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl ToString for Build

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more

Auto Trait Implementations§

§

impl Freeze for Build

§

impl RefUnwindSafe for Build

§

impl Send for Build

§

impl Sync for Build

§

impl Unpin for Build

§

impl UnwindSafe for Build

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.