Android電話がルート化されているかどうかをプログラムでアプリケーションで見つけたい。ルート化されたデバイスで実行されているかどうかを判断する 次のようなリンクがたくさん見つかりました私がAndroidに根ざしているかどうかをプログラムでチェックする効果的な方法? 同じトピックについて話し合っていますが、そこにあるリンクで言及されているようにこれらの投稿はかなり古く、最近のリリースでそれを達成するためにもっと良いものがあるかどうか疑問に思っていました。
前もって感謝します!
このコードをラップしました(他の外部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;
}
Roottoolsライブラリを使用できます。これらは、rootアクセスをチェックする方法を提供します。 https://code.google.com/p/roottools/