device_trust 2.0.0
device_trust: ^2.0.0 copied to clipboard
Heuristic device integrity signals for Flutter (root/jailbreak, emulator/simulator, Frida/hook, debugger) – Android & iOS.
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
2.0.0 - 2026-05-22 #
Added #
- Swift Package Manager support for the iOS Flutter plugin implementation.
Flutter apps using Flutter's SPM integration now resolve
device_trustthrough its native Swift package target instead of falling back to CocoaPods. - CI validation job for Swift Package Manager iOS simulator builds alongside existing CocoaPods lint.
- Contributor documentation for validating both CocoaPods and SPM paths.
Changed #
- Minimum Dart SDK raised from
>=3.0.0 <4.0.0to^3.11.0. - Minimum Flutter SDK raised from
>=3.10.0to>=3.41.0. These increases are required by theFlutterFrameworkpackage dependency used for Swift Package Manager support. Projects on Flutter versions below 3.41.0 cannot adopt this release. - iOS native source files relocated from
ios/Classes/toios/device_trust/Sources/device_trust/(shared by both CocoaPods and SPM). - CocoaPods podspec updated to reference the relocated source tree.
Preserved #
- Full CocoaPods and Swift Package Manager compatibility; both iOS native integration paths remain supported.
- All consumers upgrading to
2.0.0, including CocoaPods-based consumers, must satisfy the new Dart^3.11.0and Flutter>=3.41.0SDK constraints. - All runtime detection logic, MethodChannel contract, and public Dart API remain unchanged.
1.0.1 - 2025-12-10 #
Fixed #
- Improved Android 15+ compatibility by applying 16KB page-size linker support to all Android ABIs instead of only arm64-v8a.
1.0.0 - 2025-10-23 #
Initial Release #
Platform Support:
- Android (minSdk 24+)
- iOS (13.0+)
Android Features:
- ✅ Root detection (su binaries, Magisk, SuperSU, KingRoot, etc.)
- ✅ Emulator detection (build properties, hardware characteristics)
- ✅ Hook/Frida detection (native C++ memory scanning via JNI)
- RWX segment analysis
- Suspicious library detection (Frida, Substrate)
- File descriptor checks
- ✅ Debugger attachment detection
- ✅ Developer mode & ADB enabled checks
- ✅ Manifest
<queries>for root management app detection - ✅ Native C++ library (JNI) for low-level signals
- ABIs: arm64-v8a, armeabi-v7a, x86_64
- ✅ Fail-soft behavior: returns safe defaults on errors
iOS Features:
- ✅ Jailbreak detection
- File path checks (Cydia, Sileo, Zebra, etc.)
- Sandbox escape test (write to /private)
- URL scheme queries (cydia://, sileo://, etc.)
- ✅ Simulator detection (compile-time check)
- ✅ Hook/Frida detection (native Objective-C++ scanning)
- DYLD image analysis
- RWX memory segment detection
- Environment variable checks (DYLD_INSERT_LIBRARIES)
- libc symbol inspection (hooking detection)
- ✅ Debugger attachment detection (sysctl P_TRACED flag)
- ✅ Anti-debug wrapper (
ptrace(PT_DENY_ATTACH)in Release + physical device) - ✅ Native Objective-C++ implementation
- ✅ Fail-soft behavior: returns safe defaults on errors
Flutter API:
- ✅ Typed API:
DeviceTrust.getReport()→DeviceTrustReport - ✅ Model fields:
rootedOrJailbroken: boolemulator: boolfridaSuspected: booldebuggerAttached: booldevModeEnabled: bool(Android only)adbEnabled: bool(Android only)details: Map<String, dynamic>(platform-specific signals)
- ✅ Platform check:
DeviceTrust.isSupported()
Example App:
- ✅ Production-level diagnostic UI (Material 3)
- ✅ Summary card (color-coded flags)
- ✅ Policy evaluation card (example)
- ✅ Details card (JSON with copy-to-clipboard)
- ✅ Detected signals card (paths, schemes, libraries)
- ✅ Integration test (smoke test)
- ✅ Comprehensive README with platform-specific expectations
Documentation:
- ✅ Root README with API reference, platform notes, FAQ
- ✅ Example README with usage instructions
- ✅ MIT License
- ✅ CHANGELOG
Performance:
- ✅ Native scans: 1–5 ms typical
- ✅ Total execution: 1–20 ms target
