본문 바로가기
개발노트/Flutter

[Android] 루팅 앱 탐지하기

by 전지적진영시점 2023. 6. 12.
반응형

개발 환경

---------------------------------

OS : Mac

개발 툴 : Android Studio

개발 언어 : Java

targetSdk : 33

minSdk : 23

---------------------------------

 

루팅된 OS로 앱이 실행된다면 앱이 외부에 공유하지 않은 파일이 노출될 수 있으므로

루팅된 OS를 감지하는 기능이 필요하다.

 

루팅된 OS는 앱에서 root 권한 접근이 가능하므로 아래와 같이 루트권한 접근이 가능한지 이를 확인하는 코드를 추가한다.

 

[JAVA]

private fun isRooting(): Boolean {
    var flag = false
    try {
        Runtime.getRuntime().exec("su")
        flag = true
    } catch (ex: Exception) {
    }
    return flag
}

 

[KOTLIN]

private boolean isRooting() {
    boolean flag = false;

    try {
        Runtime.getRuntime().exec("su");
        flag = true;
    } catch (Exception e) {

    }
    return flag;
}

 

 

 

결과가 true로 떨어지면 앱을 종료시킨다.

 

 

 

if (isRooting()) {
    new AlertDialog.Builder(LoginActivity.this)
        .setTitle("루팅 앱 탐지")
        .setMessage(getString(R.string.isRootingApp))
        .setPositiveButton("확인", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                finishAffinity();
                System.runFinalization();
                System.exit(0);
            }
        }).show();
}
반응형

댓글