Подтвердить что ты не робот

Определить, запущено ли устройство Android программно?

Возможный дубликат:
Определите, работает ли на корневом устройстве

Как вы определяете (программно), если Android-устройство: rooted Запуск треснувшей копии вашего программного обеспечения или романа.

У меня есть некоторая конфиденциальная информация в моей базе данных, и я хотел бы ее зашифровать, когда телефон укоренен, так как пользователь имеет доступ к базе данных. Как это обнаружить?

4b9b3361

Ответ 1

Это то, что вам нужно:

  /**
   * Checks if the device is rooted.
   *
   * @return <code>true</code> if the device is rooted, <code>false</code> otherwise.
   */
  public static boolean isRooted() {

    // get from build info
    String buildTags = android.os.Build.TAGS;
    if (buildTags != null && buildTags.contains("test-keys")) {
      return true;
    }

    // check if /system/app/Superuser.apk is present
    try {
      File file = new File("/system/app/Superuser.apk");
      if (file.exists()) {
        return true;
      }
    } catch (Exception e1) {
      // ignore
    }

    // try executing commands
    return canExecuteCommand("/system/xbin/which su")
        || canExecuteCommand("/system/bin/which su") || canExecuteCommand("which su");
  }

  // executes a command on the system
  private static boolean canExecuteCommand(String command) {
    boolean executedSuccesfully;
    try {
      Runtime.getRuntime().exec(command);
      executedSuccesfully = true;
    } catch (Exception e) {
      executedSuccesfully = false;
    }

    return executedSuccesfully;
  }

Возможно, не всегда правильно. Протестировано на ~ 10 устройствах.

Ответ 2

Если информация чувствительна, вы должны, вероятно, просто зашифровать ее для всех пользователей. В противном случае пользователь мог бы установить ваше приложение без корневого каталога, а затем root и прочитать вашу базу данных после записи данных.

Ответ 3

официальное руководство по лицензированию говорит:

Ограничение наследия механизм защиты от копирования на Android Рынок заключается в том, что приложения, использующие его может устанавливаться только на совместимые устройства, обеспечивающие безопасный внутренний среда хранения. Например, защищенное от копирования приложение не может быть загружен с Market на устройство который обеспечивает root-доступ, и приложение не может быть установлено на SD-карты устройства.

Кажется, что вам удастся использовать эту устаревшую защиту для предотвращения установки вашего приложения на корневых устройствах.

Вы можете опубликовать отдельную версию, которая может быть установлена ​​на корневых устройствах с зашифрованной базой данных.