SafeSecureLibs

SafeSecureLibs Banner

A Flutter package for checking device security status including root detection, developer mode, and dangerous apps detection on Android devices.

Features

  • Developer Mode Detection: Check if developer options are enabled
  • Root Access Detection: Detect if the device is rooted
  • Magisk Detection: Identify Magisk root management installation
  • Dangerous Apps Detection: Detect potentially harmful apps installed on the device

Installation

Add this to your package's pubspec.yaml file:

dependencies:
  safe_secure_libs: ^latest

Then run:

flutter pub get

Usage

Here's a complete example of how to implement the security checks in your Flutter app:

import 'package:flutter/material.dart';
import 'package:safesecurelibs/safesecurelibs.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Security Check Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const SecurityCheckPage(),
    );
  }
}

class SecurityCheckPage extends StatefulWidget {
  const SecurityCheckPage({super.key});
  @override
  State<SecurityCheckPage> createState() => _SecurityCheckPageState();
}
class _SecurityCheckPageState extends State<SecurityCheckPage> {
  Map<String, dynamic> _securityStatus = {
    'isDevModeEnabled': false,
    'isRooted': false,
    'isMagiskDetected': false,
    'hasDangerousApps': false,
    'isSecure': true,
    'deviceInfo': {}
  };

  @override
  void initState() {
    super.initState();
    _checkSecurity();
  }

  Future<void> _checkSecurity() async {
    final status = await CheckerMethode.checkSecurityStatus();
    setState(() {
      _securityStatus = status;
    });
  }

  @override
  Widget build(BuildContext context) {
    final deviceInfo = _securityStatus['deviceInfo'] as Map<dynamic, dynamic>? ?? {};
    
    return Scaffold(
      appBar: AppBar(
        title: const Text('Security Check'),
      ),
      body: ListView(
        padding: const EdgeInsets.all(16.0),
        children: [
          _buildSecurityItem(
            'Developer Mode',
            _securityStatus['isDevModeEnabled'] ?? false,
          ),
          _buildSecurityItem(
            'Root Access',
            _securityStatus['isRooted'] ?? false,
          ),
          _buildSecurityItem(
            'Magisk Detected',
            _securityStatus['isMagiskDetected'] ?? false,
          ),
          _buildSecurityItem(
            'Dangerous Apps',
            _securityStatus['hasDangerousApps'] ?? false,
          ),
          _buildSecurityItem(
            'Device Security',
            _securityStatus['isSecure'] ?? true,
          ),
          const SizedBox(height: 20),
          Card(
            child: Padding(
              padding: const EdgeInsets.all(16.0),
              child: Column(
                crossAxisAlignment: CrossAxisAlignment.start,
                children: [
                  Text('Device Information',
                      style: Theme.of(context).textTheme.titleLarge),
                  const SizedBox(height: 8),
                  Text('Model: ${deviceInfo['model']}'),
                  Text('Brand: ${deviceInfo['brand']}'),
                  Text('Android Version: ${deviceInfo['version']}'),
                  Text('SDK: ${deviceInfo['sdkInt']}'),
                ],
              ),
            ),
          ),
          const SizedBox(height: 20),
          ElevatedButton(
            onPressed: _checkSecurity,
            child: const Text('Refresh Security Status'),
          ),
        ],
      ),
    );
  }
}

  Widget _buildSecurityItem(String title, bool isDetected) {
    return Card(
      margin: const EdgeInsets.symmetric(vertical: 8.0),
      child: ListTile(
        title: Text(title),
        trailing: Icon(
          isDetected ? Icons.warning : Icons.check_circle,
          color: isDetected ? Colors.red : Colors.green,
        ),
        subtitle: Text(
          isDetected ? 'Security Risk Detected' : 'Secure',
          style: TextStyle(
            color: isDetected ? Colors.red : Colors.green,
          ),
        ),
      ),
    );
  }

Platform Support

Platform Support
Android
iOS
Linux
Windows

Security Checks Details

Security Check Status
Developer Mode
Root Access
Magisk Root
Dangerous Apps
Overall Security

Device Information

Property Value
Manufacturer
Brand
Model
Device
Product
Android Version
SDK Level
Fingerprint

Developer Mode Detection

Checks if developer options are enabled in the device settings. This can indicate potential security risks as developer options may enable USB debugging and other sensitive features.

Root Detection

Performs various checks to determine if the device has been rooted, including:

  • Checking for common root management apps
  • Scanning for su binary in various system locations
  • Verifying system partition mount status

Magisk Detection

Specifically checks for the presence of Magisk root management tool and related modifications to the system.

Dangerous Apps Detection

Scans for the presence of potentially harmful applications, including:

  • Root management apps
  • System modification tools
  • Security bypass applications

The following packages are detected:

com.topjohnwu.magisk
com.thirdparty.superuser
eu.chainfire.supersu
com.noshufou.android.su
com.koushikdutta.superuser
com.zachspong.temprootremovejb
com.ramdroid.appquarantine
com.formyhm.hideroot
com.amphoras.hidemyroot
com.saurik.substrate
de.robv.android.xposed
com.devadvance.rootcloak
com.devadvance.rootcloakplus
com.android.vending.billing.InAppBillingService.COIN
com.chelpus.lackypatch
com.kingroot.kinguser
com.kingo.root
com.smedialink.oneclickroot
com.zhiqupk.root.global
com.alephzain.framaroot
com.koushikdutta.rommanager
com.dimonvideo.luckypatcher
com.chelpus.luckypatcher
com.yellowes.su
com.koushikdutta.superuser
com.thirdparty.superuser
com.bitcnew.blockchain
com.noshufou.android.su.elite
com.jrummy.root.browserfree
com.jrummy.busybox.installer

The following path are detected:

"/sbin/magisk",
"/system/xbin/magisk",
"/system/bin/magisk",
"/data/adb/magisk",
"/data/data/com.topjohnwu.magisk",
"/system/app/Superuser.apk",
"/sbin/su",
"/system/bin/su",
"/system/xbin/su",
"/data/local/xbin/su",
"/data/local/bin/su",
"/system/sd/xbin/su",
"/system/bin/failsafe/su",
"/data/local/su",
"/su/bin/su"

Configuration

Android

No additional configuration required. The package automatically handles all necessary Android-specific implementations.

iOS

iOS support is currently not available....