跳转至正文
@capgo/capacitor-is-root 身份验证与安全 开源

是否已 Root Capacitor 插件

检测已 Root 的 Android 或已越狱的 iOS 设备,提升应用安全性

安装

bun add @capgo/capacitor-is-root bunx cap sync
npm、pnpm 或 yarn
  • npm install @capgo/capacitor-is-root
  • pnpm add @capgo/capacitor-is-root
  • yarn add @capgo/capacitor-is-root

指南

如何在 Capacitor 中使用 Is Root

在设备上测试

下载 Capgo App,然后扫描二维码 code。

Is Root 插件预览二维码 code

使用 @capgo/capacitor-is-root

Capacitor Is Root 插件用于检测已 Root 的 Android 设备或已越狱的 iOS 设备。

安装

bun add @capgo/capacitor-is-root
bunx cap sync

bunx cap sync 将插件的原生 code 复制到你的原生项目中。每次升级插件后都要重新运行。

导入

import { IsRoot } from '@capgo/capacitor-is-root';

API 概览

方法 描述
isRooted 执行默认的 root/越狱检测。
isRootedWithBusyBox 通过 BusyBox 特定检查扩展默认检测功能(仅限 Android)。
detectRootManagementApps 检测是否存在已知的 root 管理应用(仅限 Android)。
detectPotentiallyDangerousApps 检测 root 设备上常见的潜在危险应用(仅限 Android)。
detectTestKeys 检测 debug/test build 标签(仅限 Android)。
checkForBusyBoxBinary 检查设备上是否存在 BusyBox 二进制文件(仅限 Android)。
checkForSuBinary 检查是否存在 su 二进制文件(仅限 Android)。
checkSuExists 检测该 su 二进制文件是否可执行(仅限 Android)。
checkForRWPaths 检测全局可写的系统路径(仅限 Android)。
checkForDangerousProps 检测危险的系统属性(仅限 Android)。
checkForRootNative 执行 RootBeer 原生检查(仅限 Android)。
detectRootCloakingApps 检测可隐藏 Root 的应用(仅限 Android)。
isSelinuxFlagInEnabled 检查 SELinux 强制执行状态(仅限 Android)。
isExistBuildTags 检测 OS 镜像上的测试 build 标签(仅限 Android)。
doesSuperuserApkExist 检测是否安装了 superuser APK(仅限 Android)。
isExistSUPath 检查已知的 su 二进制文件位置(仅限 Android)。
checkDirPermissions 检测需要保护的可写目录(仅限 Android)。
checkExecutingCommands 执行 which su 检测 Root 状态的 shell 命令(仅限 Android)。
checkInstalledPackages 检测可疑的已安装软件包(仅限 Android)。
checkforOverTheAirCertificates 检测篡改过的 OTA 证书(仅限 Android)。
isRunningOnEmulator 检测常见的模拟器特征(仅限 Android)。
simpleCheckEmulator 执行轻量级模拟器检查(仅限 Android)。
simpleCheckSDKBF86 检测 x86 模拟器特征(仅限 Android)。
simpleCheckQRREFPH 检测 QC 参考机型构建(仅限 Android)。
simpleCheckBuild 检测构建主机异常(仅限 Android)。
checkGenymotion 检测 Genymotion 模拟器特征(仅限 Android)。
checkGeneric 检测通用模拟器特征(仅限 Android)。
checkGoogleSDK 检测 Google SDK 模拟器特征(仅限 Android)。
togetDeviceInfo 返回检测过程中收集的设备信息。
isRootedWithEmulator 通过模拟器启发式算法扩展默认检测(仅限 Android)。
isRootedWithBusyBoxWithEmulator 通过模拟器启发式算法扩展 BusyBox 检测(仅限 Android)。

示例

isRooted()

执行默认的 root/越狱检测。

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()

通过 BusyBox 特定检查扩展默认检测功能(仅限 Android)。

import { IsRoot } from '@capgo/capacitor-is-root';

const result = await IsRoot.isRootedWithBusyBox();
console.log(result);

detectRootManagementApps()

检测是否存在已知的 root 管理应用(仅限 Android)。

import { IsRoot } from '@capgo/capacitor-is-root';

const result = await IsRoot.detectRootManagementApps();
console.log(result);

detectPotentiallyDangerousApps()

检测 root 设备上常见的潜在危险应用(仅限 Android)。

import { IsRoot } from '@capgo/capacitor-is-root';

const result = await IsRoot.detectPotentiallyDangerousApps();
console.log(result);

detectTestKeys()

检测 debug/test build 标签(仅限 Android)。

import { IsRoot } from '@capgo/capacitor-is-root';

const result = await IsRoot.detectTestKeys();
console.log(result);

checkForBusyBoxBinary()

检查设备上是否存在 BusyBox 二进制文件(仅限 Android)。

import { IsRoot } from '@capgo/capacitor-is-root';

const result = await IsRoot.checkForBusyBoxBinary();
console.log(result);

上表列出了 31 个核心方法。Listener 和版本辅助函数,以及每个方法的完整契约,请参阅 GitHub 仓库.

完整参考文档

继续阅读“使用 @capgo/capacitor-is-root”

如果你正在使用 使用 @capgo/capacitor-is-root 要规划原生插件工作,请将其与 @capgo/capacitor-is-root 了解 @capgo/capacitor-is-root 中的实现细节, 快速入门 有关“入门指南”中的实现细节, Capgo 插件目录 查看 Capgo 插件目录中的产品工作流, Capgo 提供的 Capacitor 插件 有关 Capgo 开发的 Capacitor 插件的实现细节,以及 添加或更新插件 有关添加或更新插件的实现细节。

常见问题

Is Root 插件常见问题

如何在 Capacitor 应用中安装 Is Root 插件?

运行 "bun add @capgo/capacitor-is-root"(或 "npm install @capgo/capacitor-is-root"),然后运行 "bunx cap sync",使 iOS 和 Android 项目同步 native code。最后在你的应用 code 中从 "@capgo/capacitor-is-root" 导入即可。

@capgo/capacitor-is-root 是否支持 React、Vue 和 Angular?

支持。Is Root 是一个 Capacitor 包,因此它支持任何在 Capacitor 中运行的 Web 框架,包括 Ionic、React、Vue、Angular、Svelte 以及原生 JavaScript。

@capgo/capacitor-is-root 支持哪个版本的 Capacitor?

Capgo 插件遵循 Capacitor 的主版本号:请使用与 Capacitor 主版本号一致的插件主版本(例如插件 v8 对应 Capacitor 8)。GitHub README 中的兼容性表列出了仍在维护的版本。

@capgo/capacitor-is-root 是免费开源的吗?

是的。code 源码已在 GitHub 公开,地址为 https://github.com/Cap-go/capacitor-is-root/,你可以通过 npm 免费安装该包。欢迎提交 Bug 报告和 Pull Request。

我可以在不经过 App Store 审核的情况下,更新使用了 Is Root 的 code 吗?

安装或升级插件会改动原生 code,因此需要重新做一次商店构建。之后,调用该插件的 JavaScript、HTML 和 CSS 改动就能通过 Capgo live updates 立即发布。

无需等待 App Store 审核,即可即时发布 Is Root 的变更

只要插件已包含在你的商店版本中,Capgo live updates 就能在几分钟内把 JavaScript、HTML 和 CSS 的改动推送给用户。

开始使用 Capgo