import 'dart:io'; import 'package:flutter/foundation.dart'; import 'package:safe_device/safe_device.dart'; /// Returns true if the device appears compromised for attendance purposes: /// rooted (Android) / jailbroken (iOS), or developer mode enabled. /// Returns false on any error so a detection failure never blocks a valid user. Future isDeviceCompromised() async { // dart:io Platform throws on web, so check kIsWeb first. if (kIsWeb || (!Platform.isAndroid && !Platform.isIOS)) return false; try { final isJailBroken = await SafeDevice.isJailBroken; final isDeveloperMode = await SafeDevice.isDevelopmentModeEnable; return isJailBroken || isDeveloperMode; } catch (_) { return false; } }