Skip to content

@capgo/capacitor-is-root

Detect rooted Android devices and jailbroken iOS devices to enhance app security and protect sensitive data.

The Capacitor Is Root plugin provides comprehensive root and jailbreak detection for Android devices and emulator detection. This plugin helps enhance app security by identifying compromised devices and emulated environments that may pose security risks.

Root detection

Advanced Android root detection with multiple methods 🔒

Emulator detection

Identify emulated environments and testing frameworks 🛡️

Security validation

Multiple detection techniques for enhanced accuracy ✅

Android focused

Specialized detection for Android security assessment 🤖

Terminal window
npm install @capgo/capacitor-is-root
npx cap sync
  • isRooted() - Performs comprehensive root detection using default methods
  • isRootedWithBusyBox() - Extended detection including BusyBox checks
  • detectRootManagementApps() - Identifies installed root management applications
  • checkForSuBinary() - Checks for su binary presence in system paths
  • isRunningOnEmulator() - Detects common Android emulator fingerprints

The plugin employs multiple detection methods:

  • Checks for root management applications (SuperSU, Magisk, etc.)
  • Scans for suspicious system properties
  • Identifies test build tags and debug flags
  • Validates dangerous binary locations
  • Examines system path permissions
  • Hardware fingerprint analysis
  • Build property inspection
  • Emulator-specific characteristics
  • Virtual environment indicators
import { IsRoot } from '@capgo/capacitor-is-root';
// Basic root detection
const rootResult = await IsRoot.isRooted();
if (rootResult.isRooted) {
console.log('Device is rooted');
// Handle rooted device appropriately
}
// Extended root detection with BusyBox
const extendedResult = await IsRoot.isRootedWithBusyBox();
if (extendedResult.isRooted) {
console.log('Device is rooted (extended check)');
}
// Check for emulator
const emulatorResult = await IsRoot.isRunningOnEmulator();
if (emulatorResult.isEmulator) {
console.log('Running on emulator');
}
// Detect root management apps
const rootAppsResult = await IsRoot.detectRootManagementApps();
if (rootAppsResult.hasRootApps) {
console.log('Root management apps detected');
}
  • Use multiple detection methods for higher accuracy
  • Implement graceful degradation for detected environments
  • Consider user privacy when implementing security measures
  • Regular updates recommended as detection methods evolve

Check the complete documentation for detailed implementation guides and advanced security patterns.