Как защита от копирования Android может проверить, рутировано ли устройство? - PullRequest
4 голосов
/ 11 октября 2011

Вкл. http://developer.android.com/guide/publishing/licensing.html, в разделе «Замена для защиты от копирования» говорится:

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

Как Android может быть устаревшимЗащита проверить, рутируется ли устройство?Afaik это невозможно, также, по словам Дайан Хэкборн (см. Как определить, находится ли устройство в приложении? ).Таким образом, это может означать только то, что проверка выполняется некоторой (неизвестной общественности) проверкой запутанных критериев, очевидно, не просто проверкой, существует ли команда 'su', я полагаю.Кто-нибудь знает больше об этой логике проверки - или насколько она безопасна?

Ответы [ 3 ]

2 голосов
/ 17 января 2012

Это то, что я использую:

public static boolean isDeviceRooted () {
    boolean ret = false;
    String path = null;
    Map<String,String> env = System.getenv();

    if (env != null && (path = env.get("PATH")) != null) {
        setDevicePath(path);
        String [] dirs = path.split(":");
        for (String dir : dirs){
            String suPath = dir + "/" + "su";
            File suFile = new File(suPath);
            if (suFile != null && suFile.exists()) {
                setSuLocation(suPath);
                ret = true;
            }
        }
    }
    return ret;
}

Теоретически, это не будет работать во всех случаях, потому что пользователь может поместить 'su' в нестандартное местоположение, которое не находится в PATH, но практически, если он это сделает, другие приложения, которым нужно знать, где находится «su», тоже не найдут его, поэтому цель рутирования будет побеждена.

0 голосов
/ 08 января 2012

Мы четко заявили бы в информации о продажах, что приложение не работает на рутованных устройствах.

Это определенно повлияет на скорость установки.Хотя вы планируете продать свое приложение за 1000 долларов, это будет иметь гораздо худший эффект, чем что-либо еще, что вы могли бы.

0 голосов
/ 11 октября 2011

Хотя наличие приложения Superuser не является идеальным способом определить, является ли телефон рутованным, это хороший показатель того, что он может быть. Почему бы просто не проверить, установлен ли пакет com.noshufou.android.su?

Я никогда не пробовал, но не понимаю, почему это не сработает.

...