8

次の方法は、Android デバイスがルート化されているかどうかをプログラムで検出できる方法の 1 つです。

public boolean checkRootMethod1(){
    String buildTags = android.os.Build.TAGS;

    if (buildTags != null && buildTags.contains("test-keys")) {
        return true;
    }
    return false;
}

誰かがこれが実際に何をしているのか説明できますか? 「test-keys」ビルドタグとは何ですか? root とは何の関係がありますか? グーグルから関連情報を見つけることができませんでした。

4

2 に答える 2

9

Release-Keys と Test-Keys は、コンパイル時にカーネルが署名される方法に関係しています。Release-Keys は、公式開発者からの公式キーで署名されたことを意味します。Test-Keys は、サードパーティの開発者によって生成されたカスタム キーで署名されたことを意味します。セキュリティの観点からは、Release-Keys は通常、カーネルがより安全であることを意味しますが、常にそうであるとは限りません。

于 2014-03-25T17:04:28.927 に答える
2
String buildTags = android.os.Build.TAGS;

このコードは でbuild.prop位置を取得するためのもの/system/build.propです。ご覧のとおり、取得しているということは、内部で値を取得android.os.Build.TAGSしていることを意味します。これがbuild.javaのコードですro.build.tagsbuild.prop

ro.build.tags2 番目の質問については、文字列がrelease-keysルート化されたデバイスにあるため、機能するかどうかを確認できません。

于 2013-09-15T04:10:01.850 に答える