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

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

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

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

Обнаружение корней – это игра с кошачьей мышью, и трудно обнаружить ловушку, которая будет работать на всех устройствах для всех случаев.

Если вам по-прежнему необходимо некоторое базовое обнаружение укоренения, проверьте код ниже:

/** * Checks if the device is rooted. * * @return true if the device is rooted, false 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 устройствах в 2014 году.

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

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

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

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

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

  • Прокрутка webview горизонтально внутри ViewPager
  • Как сделать приложение Android всегда работать в фоновом режиме?
  • Android получает снимок экрана всех элементов ListView
  • onConfigurationChanged не получает вызов
  • Android: В чем разница между Activity.runOnUiThread и View.post?
  • Android MapActivity: не удалось получить соединение с заводским клиентом
  • Как сохранить изображения с помощью sharedpreference в android?
  • AsyncTask: где возвращается возвращаемое значение doInBackground ()?
  • Android: AutoCompleteTextView показывает предложения, когда текст не вводится
  • Я хотел бы установить мои переменные в верхней части моего classа, а не в методе
  • Приложение неверно настроено для входа в Facebook: проблема интеграции Android Facebook
  • Давайте будем гением компьютера.