Skip to content

capacitor-community/device-security-detect


Device Security Detect Plugin

@capacitor-community/device-security-detect

The Device Security Detect plugin is designed to provide comprehensive device security detection capabilities for Capacitor-based applications. It aims to detect the device has been rooted (Android) or jailbroken (iOS). By using this plugin, developers can enhance the security of their applications and take appropriate actions based on the detected security status.


Table of Contents

Maintainers

Maintainer GitHub Active
4ooper 4ooper yes
ryaa ryaa yes

Plugin versions

Capacitor version Plugin version
8.x 8.x
7.x 7.x
6.x 6.x

Supported Platforms

  • iOS
  • Android

Installation

npm install @capacitor-community/device-security-detect
npx cap sync

Using yarn:

yarn add @capacitor-community/device-security-detect

Sync native files:

npx cap sync

API

isJailBreakOrRooted()

isJailBreakOrRooted() => Promise<{ value: boolean; }>

Detect if the device has been rooted (Android) or jailbroken (iOS).

This method provides a boolean value indicating whether the device has been tampered with (e.g., by rooting or jailbreaking).

Returns: Promise<{ value: boolean; }>

Since: 6.0.0


pinCheck()

pinCheck() => Promise<{ value: boolean; }>

Check if a PIN, password, or biometric authentication is enabled on the device.

This method checks whether the user has set up any kind of secure lock mechanism (e.g., PIN, password, or biometric authentication) on their mobile device.

Returns: Promise<{ value: boolean; }>

Since: 6.0.2


Usage

Detect if the device has been rooted (Android) or jailbroken (iOS)

import { DeviceSecurityDetect } from '@capacitor-community/device-security-detect';

async function checkRootStatus() {
  const { value } = await DeviceSecurityDetect.isJailBreakOrRooted();
  if (value) {
    console.warn('The device is rooted or jailbroken!');
  } else {
    console.log('The device is secure.');
  }
}

Check if a PIN, password, or biometric authentication is enabled on the device

import { DeviceSecurityDetect } from '@capacitor-community/device-security-detect';

async function checkPinStatus() {
  const { value } = await DeviceSecurityDetect.pinCheck();
  if (value) {
    console.log('A secure lock mechanism is enabled on the device.');
  } else {
    console.warn('No secure lock mechanism is detected.');
  }
}

Full Example

import { DeviceSecurityDetect } from '@capacitor-community/device-security-detect';

const { value } = await DeviceSecurityDetect.isJailBreakOrRooted();
async function checkDeviceSecurity() {
  try {
    const rootStatus = await DeviceSecurityDetect.isJailBreakOrRooted();
    console.log(`Root/Jailbreak status: ${rootStatus.value ? 'Yes' : 'No'}`);

    const pinStatus = await DeviceSecurityDetect.pinCheck();
    console.log(`Secure lock enabled: ${pinStatus.value ? 'Yes' : 'No'}`);
  } catch (error) {
    console.error('Error checking device security:', error);
  }
}

checkDeviceSecurity();

or please see example-app for a complete example.

Use this plugin to enhance your application's security and respond appropriately to potential risks.

About

Capacitor community plugin to add an extra layer of security for your app by detecting if the device has been rooted (on Android) or jailbreaked (on iOS)

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages