본문 바로가기

프로그래밍

안드로이드 앱 루팅 감지, 체크 코드

반응형

안드로이드 단말에서 루팅 감지 체크하는 자바 코드 입니다.

루팅이 되어있으면 return true;

안되어 있으면 return false;

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
    protected boolean checkRooting(){
        final String[] files = {
                "/sbin/su""/system/su""/system/bin/su""/system/sbin/su""/system/xbin/su""/system/xbin/mu",
                "/system/bin/.ext/.su""/system/usr/su-backup""/data/data/com.noshufou.android.su""/system/app/Superuser.apk",
                "/system/app/su.apk""/system/bin/.ext""/system/xbin/.ext""/data/local/xbin/su""/data/local/bin/su",
                "/system/sd/xbin/su""/system/bin/failsafe/su""/data/local/su""/su/bin/su"};
 
        String buildTags = Build.TAGS;
 
        if (buildTags != null && buildTags.contains("test-keys")){
            return true;
        }
 
        for (String path : files){
            if (new File(path).exists()){
                return true;
            }
        }
 
        try {
            Runtime.getRuntime().exec("su");
            return true;
        }
        catch (Exception e){
            return false;
        }
 
    }
 
cs

 

10번째 줄은 루팅하면 Build.TAGS가 test-keys로 바뀐다고 한다.

 

14번째 줄은 해당경로에 .su파일 또는 .apk 파일이 있는지 검사한다.

 

21번째 줄은 SU 명령어(SuperUser) 실행 해본다.

su 명령어가 없어서 에러가 나면 return false가 된다.

반응형