UDeviceIntegrity class

Signals that the app may be running somewhere it cannot trust. Heuristics, not proof: use them to add friction (re-auth, block payments), not to crash.

Annotations

Constructors

UDeviceIntegrity({bool rooted = false, bool emulator = false, bool debuggerAttached = false, bool hooked = false, bool developerMode = false, bool adbEnabled = false, bool virtualMachine = false, bool automated = false, List<String> reasons = const <String>[]})
const
UDeviceIntegrity.fromMap(Map<String, Object?> m)
Reads it from the native map.
factory

Properties

adbEnabled → bool
Android USB debugging.
final
automated → bool
Web: the browser is driven by automation (navigator.webdriver).
final
debuggerAttached → bool
A debugger is attached.
final
developerMode → bool
Android developer options.
final
emulator → bool
Android emulator or iOS simulator.
final
hashCode → int
The hash code for this object.
no setterinherited
hooked → bool
Frida / Xposed / Substrate or similar instrumentation detected.
final
isCompromised → bool
Rooted, hooked or debugged: the app's own code cannot be trusted.
no setter
reasons → List<String>
Human-readable evidence, e.g. "su binary at /system/xbin/su".
final
rooted → bool
Rooted (Android) or jailbroken (iOS).
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
virtualMachine → bool
Desktop running inside a hypervisor (VMware, VirtualBox, Parallels, QEMU, Hyper-V guest).
final

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() → String
A string representation of this object.
override

Operators

operator ==(Object other) → bool
The equality operator.
inherited