Erste Schritte
Copy a setup prompt with the install steps and the full markdown guide for this plugin.
Set up this Capacitor plugin in the project.
Use the package manager already used by the project.
Install these package(s): `@capgo/capacitor-is-root`
Run the required Capacitor sync/update step after installation.
Read this markdown guide for the full setup steps: https://raw.githubusercontent.com/Cap-go/website/refs/heads/main/apps/docs/src/content/docs/de/docs/plugins/is-root/getting-started.mdx
Use that guide for platform-specific steps, native file edits, permissions, config changes, imports, and usage setup.
If that guide references other docs pages, read them too.
Installation
Section titled “Installation”npm install @capgo/capacitor-is-rootnpx cap syncyarn add @capgo/capacitor-is-rootnpx cap syncpnpm add @capgo/capacitor-is-rootnpx cap syncbun add @capgo/capacitor-is-rootnpx cap syncPlattformunterstützung
Section titled “Plattformunterstützung”- Android: Vollständige Unterstützung für Root- und Emulator-Erkennung
- iOS: Keine Konfiguration erforderlich (Plugin ist auf Android fokussiert)
Verwendungsbeispiel
Section titled “Verwendungsbeispiel”import { IsRoot } from '@capgo/capacitor-is-root';
// Grundlegende Root-Erkennungconst rootResult = await IsRoot.isRooted();if (rootResult.isRooted) { console.log('Gerät ist gerootet'); // Gerootetes Gerät angemessen behandeln // Beispiel: Warnung anzeigen, Funktionalität einschränken oder Zugriff blockieren}
// Erweiterte Root-Erkennung mit BusyBoxconst extendedResult = await IsRoot.isRootedWithBusyBox();if (extendedResult.isRooted) { console.log('Gerät ist gerootet (erweiterte Prüfung)');}
// Auf Emulator prüfenconst emulatorResult = await IsRoot.isRunningOnEmulator();if (emulatorResult.isEmulator) { console.log('Läuft auf Emulator'); // Emulator-Umgebung behandeln}
// Root-Management-Apps erkennenconst rootAppsResult = await IsRoot.detectRootManagementApps();if (rootAppsResult.hasRootApps) { console.log('Root-Management-Apps erkannt');}
// Auf su-Binärdatei prüfenconst suResult = await IsRoot.checkForSuBinary();if (suResult.hasSu) { console.log('SU-Binärdatei auf Gerät gefunden');}API-Referenz
Section titled “API-Referenz”isRooted()
Section titled “isRooted()”isRooted() => Promise<{ isRooted: boolean }>Führt eine umfassende Root-Erkennung mit Standardmethoden durch.
Rückgabe: Promise<{ isRooted: boolean }>
isRootedWithBusyBox()
Section titled “isRootedWithBusyBox()”isRootedWithBusyBox() => Promise<{ isRooted: boolean }>Erweiterte Root-Erkennung einschließlich BusyBox-Prüfungen.
Rückgabe: Promise<{ isRooted: boolean }>
detectRootManagementApps()
Section titled “detectRootManagementApps()”detectRootManagementApps() => Promise<{ hasRootApps: boolean }>Identifiziert installierte Root-Management-Anwendungen (SuperSU, Magisk usw.).
Rückgabe: Promise<{ hasRootApps: boolean }>
checkForSuBinary()
Section titled “checkForSuBinary()”checkForSuBinary() => Promise<{ hasSu: boolean }>Prüft auf das Vorhandensein der su-Binärdatei in Systempfaden.
Rückgabe: Promise<{ hasSu: boolean }>
isRunningOnEmulator()
Section titled “isRunningOnEmulator()”isRunningOnEmulator() => Promise<{ isEmulator: boolean }>Erkennt gängige Android-Emulator-Fingerabdrücke.
Rückgabe: Promise<{ isEmulator: boolean }>
Umfassende Sicherheitsprüfung
Section titled “Umfassende Sicherheitsprüfung”import { IsRoot } from '@capgo/capacitor-is-root';
async function performSecurityCheck() { const checks = { rooted: false, emulator: false, rootApps: false, suBinary: false };
try { // Alle Erkennungsmethoden ausführen const [rootResult, emulatorResult, rootAppsResult, suResult] = await Promise.all([ IsRoot.isRootedWithBusyBox(), IsRoot.isRunningOnEmulator(), IsRoot.detectRootManagementApps(), IsRoot.checkForSuBinary() ]);
checks.rooted = rootResult.isRooted; checks.emulator = emulatorResult.isEmulator; checks.rootApps = rootAppsResult.hasRootApps; checks.suBinary = suResult.hasSu;
// Sicherheitsstufe bestimmen const securityIssues = Object.values(checks).filter(v => v).length;
if (securityIssues > 0) { console.warn(`Gerät hat ${securityIssues} Sicherheitsbedenken`, checks); return { secure: false, issues: checks }; }
return { secure: true, issues: checks }; } catch (error) { console.error('Sicherheitsprüfung fehlgeschlagen:', error); throw error; }}
// In Ihrer App verwendenconst securityStatus = await performSecurityCheck();if (!securityStatus.secure) { // Unsicheres Gerät behandeln showSecurityWarning(securityStatus.issues);}Erkennungstechniken
Section titled “Erkennungstechniken”Root-Erkennung
Section titled “Root-Erkennung”Das Plugin verwendet mehrere Erkennungsmethoden:
- Prüfung auf Root-Management-Anwendungen (SuperSU, Magisk, KingRoot usw.)
- Scannen auf verdächtige Systemeigenschaften
- Identifizierung von Test-Build-Tags und Debug-Flags
- Validierung gefährlicher Binärspeicherorte
- Untersuchung von Systempfadberechtigungen
- Erkennung bekannter Root-Verschleierungs-Apps
Emulator-Erkennung
Section titled “Emulator-Erkennung”- Hardware-Fingerabdruck-Analyse
- Build-Eigenschaftsinspektion
- Emulator-spezifische Merkmale
- Virtuelle Umgebungsindikatoren
Umgang mit Sicherheitsproblemen
Section titled “Umgang mit Sicherheitsproblemen”import { IsRoot } from '@capgo/capacitor-is-root';
async function handleDeviceSecurity() { const rootResult = await IsRoot.isRooted();
if (rootResult.isRooted) { // Option 1: Warnung anzeigen und fortfahren showWarning('Ihr Gerät scheint gerootet zu sein. Einige Funktionen können eingeschränkt sein.');
// Option 2: Funktionalität einschränken disableSensitiveFeatures();
// Option 3: Zugriff auf App blockieren showBlockedScreen('Diese App kann aus Sicherheitsgründen nicht auf gerooteten Geräten ausgeführt werden.'); return false; }
return true;}
function showWarning(message: string) { // Benutzerfreundlichen Warndialog anzeigen alert(message);}
function disableSensitiveFeatures() { // Zahlungsabwicklung, Zugriff auf sensible Daten usw. deaktivieren console.log('Sensible Funktionen aufgrund von gerootettem Gerät deaktiviert');}
function showBlockedScreen(message: string) { // Sperrbildschirm anzeigen und App beenden alert(message);}Bewährte Methoden
Section titled “Bewährte Methoden”- Verwenden Sie mehrere Erkennungsmethoden für höhere Genauigkeit
- Implementieren Sie eine angemessene Degradierung anstatt den Zugriff vollständig zu blockieren
- Bieten Sie klare Benutzerkommunikation über Sicherheitsbedenken
- Berücksichtigen Sie die Benutzererfahrung bei der Implementierung von Sicherheitsmaßnahmen
- Halten Sie das Plugin aktuell, da sich Erkennungsmethoden weiterentwickeln
- Testen Sie auf gerooteten und nicht gerooteten Geräten
- Behandeln Sie Erkennungsfehler elegant
Sicherheitsüberlegungen
Section titled “Sicherheitsüberlegungen”- Keine Erkennungsmethode ist 100% narrensicher
- Fortgeschrittene Benutzer können Erkennungsmechanismen umgehen
- Verwenden Sie in Kombination mit serverseitigen Sicherheitsmaßnahmen
- Berücksichtigen Sie die Privatsphäre der Benutzer bei der Implementierung von Sicherheitsprüfungen
- Befolgen Sie Plattformrichtlinien für Sicherheitsimplementierungen
- Regelmäßige Updates empfohlen, da sich Root-Verschleierungstechniken weiterentwickeln
Anwendungsfälle
Section titled “Anwendungsfälle”- Bank- und Finanz-Apps: Zugriff auf kompromittierte Geräte verhindern
- DRM-geschützte Inhalte: Urheberrechtlich geschütztes Material schützen
- Unternehmens-Apps: BYOD-Sicherheitsrichtlinien durchsetzen
- Zahlungsabwicklung: Sichere Transaktionsumgebung gewährleisten
- Sensible Daten-Apps: Vertrauliche Informationen schützen