web-dev-qa-db-ja.com

Android電話がroot化されているかどうかを確認する方法は?

Android電話がルート化されているかどうかをプログラムでアプリケーションで見つけたい。ルート化されたデバイスで実行されているかどうかを判断する 次のようなリンクがたくさん見つかりました私がAndroidに根ざしているかどうかをプログラムでチェックする効果的な方法? 同じトピックについて話し合っていますが、そこにあるリンクで言及されているようにこれらの投稿はかなり古く、最近のリリースでそれを達成するためにもっと良いものがあるかどうか疑問に思っていました。

前もって感謝します!

8
Keya

このコードをラップしました(他の外部jar/libがなくても問題なく動作します) RootTools

private static boolean isRooted() {
    return findBinary("su");
}



public static boolean findBinary(String binaryName) {
    boolean found = false;
    if (!found) {
        String[] places = {"/sbin/", "/system/bin/", "/system/xbin/", "/data/local/xbin/",
                "/data/local/bin/", "/system/sd/xbin/", "/system/bin/failsafe/", "/data/local/"};
        for (String where : places) {
            if ( new File( where + binaryName ).exists() ) {
                found = true;
                break;
            }
        }
    }
    return found;
}
20
StErMi

Roottoolsライブラリを使用できます。これらは、rootアクセスをチェックする方法を提供します。 https://code.google.com/p/roottools/

5
MatF