Flutter越狱检测插件root_jailbreak_detector的使用

发布于 1周前 作者 vueper 来自 Flutter

Flutter越狱检测插件 root_jailbreak_detector 的使用

root_jailbreak_detector 是一个用于检测Android设备是否被Root以及iOS设备是否被越狱的Flutter插件。本文将介绍如何安装、配置和使用这个插件。

安装

首先,你需要在你的Flutter项目中添加 root_jailbreak_detector 插件:

$ flutter pub add root_jailbreak_detector

这将在你的 pubspec.yaml 文件中添加如下依赖项:

dependencies:
  root_jailbreak_detector: ^0.5.3

配置

Android

对于Android平台,不需要进行任何额外的配置。

iOS

对于iOS平台,你需要在 /ios/Runner/Info.plist 文件中添加以下代码:

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>cydia</string>
</array>

使用

下面是一个完整的示例demo,展示了如何使用 root_jailbreak_detector 插件来检测设备是否被Root或越狱。

示例代码

import 'package:flutter/material.dart';
import 'dart:async';
import 'dart:io' show Platform;

import 'package:root_jailbreak_detector/root_jailbreak_detector.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  String rootedOrJailbreaked = 'Unknown';

  /// Initialize Detector
  final _rootJailbreakDetectorPlugin = RootJailbreakDetector();

  @override
  void initState() {
    super.initState();
    initPlatformState();
  }

  Future<void> initPlatformState() async {
    bool? root;
    bool? jailbreak;

    try {
      /// Platform check for detection
      if (Platform.isAndroid) {
        /// `isRooted` is used to set [root]
        root = await _rootJailbreakDetectorPlugin.isRooted() ?? false;
      } else if (Platform.isIOS) {
        /// `isJailbreaked` is used to set [jailbreak]
        jailbreak = await _rootJailbreakDetectorPlugin.isJailbreaked() ?? false;
      }
    } on PlatformException {
      root = false;
      jailbreak = false;
    }

    if (!mounted) return;

    setState(() {
      rootedOrJailbreaked =
          "Root检测结果: $root \n越狱检测结果: $jailbreak";
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Root - Jailbreak Detector'),
        ),
        body: Center(
          child: Text(rootedOrJailbreaked),
        ),
      ),
    );
  }
}

运行步骤

  1. 创建一个新的Flutter项目
    flutter create root_jailbreak_example
    cd root_jailbreak_example
    

更多关于Flutter越狱检测插件root_jailbreak_detector的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter越狱检测插件root_jailbreak_detector的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中使用root_jailbreak_detector插件来检测设备是否越狱或获得root权限的代码示例。这个插件可以帮助你检测iOS设备的越狱状态和Android设备的root权限状态。

1. 添加依赖

首先,你需要在pubspec.yaml文件中添加root_jailbreak_detector的依赖:

dependencies:
  flutter:
    sdk: flutter
  root_jailbreak_detector: ^最新版本号  # 请替换为实际的最新版本号

2. 导入插件

在你的Dart文件中导入插件:

import 'package:root_jailbreak_detector/root_jailbreak_detector.dart';
import 'package:flutter/material.dart';

3. 使用插件检测越狱或root状态

你可以通过调用RootJailbreakDetector的静态方法checkDevice来检测设备状态。这个方法返回一个Future<bool>,表示设备是否越狱或root。

以下是一个简单的Flutter应用示例,它展示了如何使用root_jailbreak_detector插件:

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Root/Jailbreak Detector Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  String deviceStatus = "Checking...";

  @override
  void initState() {
    super.initState();
    _checkDeviceStatus();
  }

  Future<void> _checkDeviceStatus() async {
    bool isRootedOrJailbroken = await RootJailbreakDetector.checkDevice();
    setState(() {
      deviceStatus = isRootedOrJailbroken ? "Device is rooted or jailbroken" : "Device is not rooted or jailbroken";
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Root/Jailbreak Detector Demo'),
      ),
      body: Center(
        child: Text(
          deviceStatus,
          style: TextStyle(fontSize: 24),
        ),
      ),
    );
  }
}

4. 运行应用

确保你已经连接了设备或启动了模拟器,然后在你的项目根目录下运行以下命令来启动应用:

flutter run

这个简单的Flutter应用会在启动时检测设备是否越狱或获得root权限,并在屏幕上显示结果。

注意事项

  • 插件的最新版本号可以在pub.dev上找到。
  • 在实际项目中,请考虑添加更多的错误处理和用户反馈机制,以提高应用的健壮性和用户体验。
  • 越狱检测和root权限检测可能存在一定的局限性,并不能保证100%的准确性。
回到顶部