본문 바로가기

시작하기

GitHub

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-root
bunx cap sync
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를 문서화하세요.

기본적인 루트/탈옥 감지 체크를 수행합니다.

기본적인 루트/탈옥 감지를 위한 권장 방식입니다. 플랫폼별로 가장 신뢰할 수 있는 감지 휴리스틱을 조합하여 실행합니다. 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');
}

기본 감지 기능에 BusyBox 전용 체크를 추가합니다 (Android 전용).

import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.isRootedWithBusyBox();
console.log(result);

알려진 루팅 관리 앱의 존재 여부를 감지합니다 (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);

디버그/테스트 빌드 태그를 감지합니다 (Android 전용).

import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.detectTestKeys();
console.log(result);

기기에 BusyBox 바이너리가 존재하는지 확인합니다 (Android 전용).

import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.checkForBusyBoxBinary();
console.log(result);

다음 항목을 확인합니다: su binary 존재 여부 (Android 전용).

import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.checkForSuBinary();
console.log(result);

다음 항목을 감지합니다: su binary 실행 가능 여부 (Android 전용).

import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.checkSuExists();
console.log(result);

world writable 시스템 경로 감지 (Android 전용).

import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.checkForRWPaths();
console.log(result);

위험한 시스템 속성을 감지합니다 (Android 전용).

import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.checkForDangerousProps();
console.log(result);

RootBeer 네이티브 체크를 실행합니다 (Android 전용).

import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.checkForRootNative();
console.log(result);

루트를 숨길 수 있는 앱을 감지합니다 (Android 전용).

import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.detectRootCloakingApps();
console.log(result);

SELinux 강제 적용 상태를 확인합니다 (Android 전용).

import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.isSelinuxFlagInEnabled();
console.log(result);

OS 이미지에서 테스트 빌드 태그를 감지합니다 (Android 전용).

import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.isExistBuildTags();
console.log(result);

superuser APK 설치 여부를 감지합니다 (Android 전용).

import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.doesSuperuserApkExist();
console.log(result);

알려진 su 바이너리 위치를 확인합니다 (Android 전용).

import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.isExistSUPath();
console.log(result);

보호해야 할 쓰기 가능 디렉토리를 감지합니다 (Android 전용).

import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.checkDirPermissions();
console.log(result);

실행 which su 루트 권한 여부를 감지하기 위한 명령어를 실행합니다 (Android 전용).

import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.checkExecutingCommands();
console.log(result);

의심스러운 설치 패키지를 감지합니다 (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);

일반적인 에뮬레이터 지문을 감지합니다 (Android 전용).

import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.isRunningOnEmulator();
console.log(result);

가벼운 에뮬레이터 체크를 수행합니다 (Android 전용).

import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.simpleCheckEmulator();
console.log(result);

x86 에뮬레이터 핑거프린트를 감지합니다 (Android 전용).

import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.simpleCheckSDKBF86();
console.log(result);

QC 레퍼런스 폰 빌드를 감지합니다 (Android 전용).

import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.simpleCheckQRREFPH();
console.log(result);

빌드 호스트의 이상 징후를 감지합니다 (Android 전용).

import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.simpleCheckBuild();
console.log(result);

Genymotion 에뮬레이터 지문을 감지합니다(Android 전용).

import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.checkGenymotion();
console.log(result);

일반 에뮬레이터 지문을 감지합니다(Android 전용).

import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.checkGeneric();
console.log(result);

Google SDK 에뮬레이터 지문을 감지합니다(Android 전용).

import { IsRoot } from '@capgo/capacitor-is-root';
const result = await IsRoot.checkGoogleSDK();
console.log(result);

감지 과정에서 수집된 기기 정보를 반환합니다.

루트 탐지 과정에서 수집된 기기에 대한 추가 컨텍스트와 메타데이터를 제공합니다. 디버깅 및 로그 기록 시 유용합니다.

import { IsRoot } from '@capgo/capacitor-is-root';
const deviceInfo = await IsRoot.togetDeviceInfo();
console.log('Device info:', deviceInfo);

에뮬레이터 휴리스틱을 통해 기본 탐지 기능을 확장합니다 (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);

타입 레퍼런스

“타입 참조” 섹션

루트/탈옥 탐지 메서드에서 반환되는 결과값입니다.

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;
}

감지 과정에서 수집된 디바이스 정보입니다.

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;
}

이 페이지는 플러그인의 src/definitions.tsupstream에서 public API가 변경되면 sync를 다시 실행하세요.

사용 중이라면 시작하기 대시보드 및 API 운영을 계획하려면, 이를 다음과 연결하세요 @capgo/capacitor-is-root 사용 중 @capgo/capacitor-is-root를 사용하여 Native Build 기능을 구현하려면, API 개요 구현 세부 사항은 API 개요에서 소개 구현 세부 사항은 소개에서 API 키 API Keys의 구현 세부 사항은, 기기 Devices의 구현 세부 사항은.