시작하기
이 플러그인의 설치 단계와 전체 마크다운 가이드가 포함된 설정 프롬프트를 복사하세요.
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/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.
AI-Assisted Setup으로 플러그인을 설치할 수 있습니다. 다음 명령어로 AI 도구에 Capgo 스킬을 추가하세요:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins그런 다음 아래 프롬프트를 사용하세요:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-is-root` plugin in my project.수동 설정을 선호한다면, 다음 명령어를 실행하여 플러그인을 설치하고 아래의 플랫폼별 지침을 따르세요:
bun add @capgo/capacitor-is-rootbunx cap sync가져오기
“Import” 섹션import { IsRoot } from '@capgo/capacitor-is-root';빠른 시작
“빠른 시작” 섹션import { IsRoot } from '@capgo/capacitor-is-root';
const { result } = await IsRoot.isRooted();if (result) { blockSensitiveFlow();}예시: Android 에뮬레이터 신호
“예시: Android 에뮬레이터 신호” 섹션에뮬레이터 감지는 기본 설정에 포함되지 않습니다. isRooted()정책상 필요한 경우 명시적으로 호출하세요.
const { result } = await IsRoot.isRunningOnEmulator();예시: 심층 Android 감사
“예시: 심층 Android 감사” 섹션const checks = await Promise.all([ IsRoot.detectRootManagementApps(), IsRoot.checkForSuBinary(),]);자주 하는 실수
“흔한 실수” 섹션- iOS 시뮬레이터: 항상 탈옥되지 않은 것으로 보고하므로 실제 기기에서 테스트하세요.
- 오탐(False positives): 단순한 앱 크래시 유도보다는 서버 측 리스크 스코어링과 루트 체크를 병행하세요.
- Play 정책: 모든 루팅된 사용자를 차단하면 스토어 카테고리와 충돌할 수 있으므로 UX를 문서화하세요.
API 개요
“API 개요” 섹션isRooted
“isRooted” 섹션기본적인 루트/탈옥 감지 체크를 수행합니다.
기본적인 루트/탈옥 감지를 위한 권장 방식입니다. 플랫폼별로 가장 신뢰할 수 있는 감지 휴리스틱을 조합하여 실행합니다. Android와 iOS 모두 지원합니다.
import { IsRoot } from '@capgo/capacitor-is-root';
const { result } = await IsRoot.isRooted();if (result) { console.log('Device is rooted/jailbroken');} else { console.log('Device is not rooted/jailbroken');}isRootedWithBusyBox
“isRootedWithBusyBox” 섹션기본 감지 기능에 BusyBox 전용 체크를 추가합니다 (Android 전용).
import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.isRootedWithBusyBox();console.log(result);detectRootManagementApps
“detectRootManagementApps” 섹션알려진 루팅 관리 앱의 존재 여부를 감지합니다 (Android 전용).
import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.detectRootManagementApps();console.log(result);detectPotentiallyDangerousApps
“detectPotentiallyDangerousApps” 섹션루팅된 기기에서 흔히 발견되는 잠재적 위험 앱을 감지합니다 (Android 전용).
import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.detectPotentiallyDangerousApps();console.log(result);detectTestKeys
“detectTestKeys” 섹션디버그/테스트 빌드 태그를 감지합니다 (Android 전용).
import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.detectTestKeys();console.log(result);checkForBusyBoxBinary
“checkForBusyBoxBinary” 섹션기기에 BusyBox 바이너리가 존재하는지 확인합니다 (Android 전용).
import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.checkForBusyBoxBinary();console.log(result);checkForSuBinary
“checkForSuBinary” 섹션다음 항목을 확인합니다: su binary 존재 여부 (Android 전용).
import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.checkForSuBinary();console.log(result);checkSuExists
“checkSuExists” 섹션다음 항목을 감지합니다: su binary 실행 가능 여부 (Android 전용).
import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.checkSuExists();console.log(result);checkForRWPaths
“checkForRWPaths” 섹션world writable 시스템 경로 감지 (Android 전용).
import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.checkForRWPaths();console.log(result);checkForDangerousProps
“checkForDangerousProps” 섹션위험한 시스템 속성을 감지합니다 (Android 전용).
import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.checkForDangerousProps();console.log(result);checkForRootNative
“checkForRootNative” 섹션RootBeer 네이티브 체크를 실행합니다 (Android 전용).
import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.checkForRootNative();console.log(result);detectRootCloakingApps
“detectRootCloakingApps” 섹션루트를 숨길 수 있는 앱을 감지합니다 (Android 전용).
import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.detectRootCloakingApps();console.log(result);isSelinuxFlagInEnabled
“isSelinuxFlagInEnabled” 섹션SELinux 강제 적용 상태를 확인합니다 (Android 전용).
import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.isSelinuxFlagInEnabled();console.log(result);isExistBuildTags
“isExistBuildTags” 섹션OS 이미지에서 테스트 빌드 태그를 감지합니다 (Android 전용).
import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.isExistBuildTags();console.log(result);doesSuperuserApkExist
“doesSuperuserApkExist” 섹션superuser APK 설치 여부를 감지합니다 (Android 전용).
import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.doesSuperuserApkExist();console.log(result);isExistSUPath
“isExistSUPath” 섹션알려진 su 바이너리 위치를 확인합니다 (Android 전용).
import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.isExistSUPath();console.log(result);checkDirPermissions
“checkDirPermissions” 섹션보호해야 할 쓰기 가능 디렉토리를 감지합니다 (Android 전용).
import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.checkDirPermissions();console.log(result);checkExecutingCommands
“checkExecutingCommands” 섹션실행 which su 루트 권한 여부를 감지하기 위한 명령어를 실행합니다 (Android 전용).
import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.checkExecutingCommands();console.log(result);checkInstalledPackages
“checkInstalledPackages” 섹션의심스러운 설치 패키지를 감지합니다 (Android 전용).
import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.checkInstalledPackages();console.log(result);checkforOverTheAirCertificates
“checkforOverTheAirCertificates” 섹션변조된 OTA 인증서를 감지합니다 (Android 전용).
import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.checkforOverTheAirCertificates();console.log(result);isRunningOnEmulator
“isRunningOnEmulator” 섹션일반적인 에뮬레이터 지문을 감지합니다 (Android 전용).
import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.isRunningOnEmulator();console.log(result);simpleCheckEmulator
“simpleCheckEmulator” 섹션가벼운 에뮬레이터 체크를 수행합니다 (Android 전용).
import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.simpleCheckEmulator();console.log(result);simpleCheckSDKBF86
“simpleCheckSDKBF86” 섹션x86 에뮬레이터 핑거프린트를 감지합니다 (Android 전용).
import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.simpleCheckSDKBF86();console.log(result);simpleCheckQRREFPH
“simpleCheckQRREFPH” 섹션QC 레퍼런스 폰 빌드를 감지합니다 (Android 전용).
import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.simpleCheckQRREFPH();console.log(result);simpleCheckBuild
“simpleCheckBuild” 섹션빌드 호스트의 이상 징후를 감지합니다 (Android 전용).
import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.simpleCheckBuild();console.log(result);checkGenymotion
“checkGenymotion” 섹션Genymotion 에뮬레이터 지문을 감지합니다(Android 전용).
import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.checkGenymotion();console.log(result);checkGeneric
“checkGeneric” 섹션일반 에뮬레이터 지문을 감지합니다(Android 전용).
import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.checkGeneric();console.log(result);checkGoogleSDK
“checkGoogleSDK” 섹션Google SDK 에뮬레이터 지문을 감지합니다(Android 전용).
import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.checkGoogleSDK();console.log(result);togetDeviceInfo
“togetDeviceInfo” 섹션감지 과정에서 수집된 기기 정보를 반환합니다.
루트 탐지 과정에서 수집된 기기에 대한 추가 컨텍스트와 메타데이터를 제공합니다. 디버깅 및 로그 기록 시 유용합니다.
import { IsRoot } from '@capgo/capacitor-is-root';
const deviceInfo = await IsRoot.togetDeviceInfo();console.log('Device info:', deviceInfo);isRootedWithEmulator
“isRootedWithEmulator” 섹션에뮬레이터 휴리스틱을 통해 기본 탐지 기능을 확장합니다 (Android 전용).
import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.isRootedWithEmulator();console.log(result);isRootedWithBusyBoxWithEmulator
“isRootedWithBusyBoxWithEmulator” 섹션BusyBox 탐지에 에뮬레이터 휴리스틱을 추가하여 확장합니다 (Android 전용).
import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.isRootedWithBusyBoxWithEmulator();console.log(result);타입 레퍼런스
“타입 참조” 섹션DetectionResult
“DetectionResult” 섹션루트/탈옥 탐지 메서드에서 반환되는 결과값입니다.
export interface DetectionResult { /** * `true` when the associated heuristic detects root/jailbreak artifacts. * `false` when no root/jailbreak indicators are found. * * @since 1.0.0 */ result: boolean;}DeviceInfo
“DeviceInfo” 섹션감지 과정에서 수집된 디바이스 정보입니다.
export interface DeviceInfo { /** * Arbitrary key/value device metadata populated by the native implementation. * Contents vary by platform and detection methods used. * * @since 1.0.0 */ [key: string]: any;}Source of Truth
“Source Of Truth” 섹션이 페이지는 플러그인의 src/definitions.tsupstream에서 public API가 변경되면 sync를 다시 실행하세요.
시작하기 다음 단계
“Getting Started에서 계속하기” 섹션사용 중이라면 시작하기 대시보드 및 API 운영을 계획하려면, 이를 다음과 연결하세요 @capgo/capacitor-is-root 사용 중 @capgo/capacitor-is-root를 사용하여 Native Build 기능을 구현하려면, API 개요 구현 세부 사항은 API 개요에서 소개 구현 세부 사항은 소개에서 API 키 API Keys의 구현 세부 사항은, 기기 Devices의 구현 세부 사항은.