2013-10-10 11 views
8

アンドロイド携帯電話が根っこになっている場合は、アプリケーションでプログラムで見つけたいと思っています。私は多くのリンクを見つけました:Determine if running on a rooted device Effective way to programatically check if I'm rooted on Android?同じトピックについて議論しています。しかし、これらのリンクで言及されているように、見つけ出すための方法はありません。これらの投稿はかなり古く、最近のリリースでこれを達成するために何か良いことがあるのだろうかと思っていましたか?アンドロイド携帯電話が根付いているかどうかを確認するにはどうすればいいですか?

ありがとうございます!

+0

から(他の外部jarファイル/ libにせずに[OK]を働いて)このコードをラップしてきました。あなたは、あなたの/収集したアイデアのいくつかを試して、それを実装する際に会った問題について尋ねるべきです。一方、いくつかの考え方では、それぞれのシナリオ( 'su'を呼び、スーパーユーザ権限を要求し、特権フォルダに書き込もうと試みる)を試す方法がいくつかあります。もし成功すれば、あなたは根っこのデバイス。 – JScoobyCed

+1

私の主な目的は、ルートをチェックするアンドロイドフレームワークに最近追加されたものがあるかどうかを調べることでした。明らかにそうではありません!私は古い記事と同じ答えを得ています。とにかく、ありがとう! – Keya

答えて

5

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

+0

ありがとうございます。私はroottoolsライブラリを知っています。それは目的を解決する。サードパーティの独立したソリューションを探していましたが。 – Keya

+0

@Keyaあなたは、Androidの携帯電話で根付いていることを検出するために、サードパーティ製の独立したソリューションやAPIを手に入れましたか? – Learner

+0

残念ながら、私は解決策を見つけませんでした。私はPOCのためにそれを探していましたが、私たちは技術をシフトしました。したがってそれ以上追求しなかった。あなたが何かを見つけたら更新してください。ありがとう! – Keya

20

は、私はあなたがそのような疑問を持つこのフォーラムで答えを得ることはありません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; 
} 
+0

これは、suが存在する可能性がある可能性が高い場所のリストを提供します。ありがとう! – Keya

+0

これは基本的にroottoolsが使用しているのと同じ方法です:https://code.google.com/p/roottools/source/browse/trunk/Stable/RootTools-sdk3-generic/src/com/stericson/RootTools/内部/ RootToolsInternalMethods.java#597 配列の内容も同じです;) – MatF

+9

@MatF私がすでに私の答えで言った通りです。私はRootToolsからそのコードをラップしました... – StErMi

関連する問題