본문 바로가기

개발/Android 개발 주저리

[Android] 루팅(rooting)여부 확인하기

안드로이폰이 루팅이 되어있을경우 어플의 실행을 막고싶으면 폰이 루팅되어있는지 체크를 해야한다

가장 간단한 방법은 두가지(솔직히 더는 모르겠다)


1.직접 su에 루트권한을 요청한다.

2.루팅 구성파일 su 파일이 있는지를 체크한다.


일단 첫번째 방법이 가장 낳은듯 하다.. 두번째 방법은 파일 구성이 바뀌거나 하면 못잡아내므로..


방법은 루팅권한 요청 -> 루팅권한 요청을 날려봤자 의미가 없으면 exception 발생

즉 요청이 들어가면(수락을 하든 안하든 상관없이) exception이 발생하지 않으므로, 어플을 종료시켜버리면된다

만약 예외처리가 발생하게되면 어플을 정상적으로 실행하면 된다. 뭐 그 반대로 해도될듯 하다



try {

Runtime.getRuntime().exec("su");

Toast.makeText(TestActivity.this,"루팅된폰입니다.어플리케이션을종료합니다.", Toast.LENGTH_SHORT).show();

finish(); // 어플리케이션 강제종료

} catch ( Exception e) {  initialize(); /*메인 액티비티 실행*/ }


그럼 간단히는 막을 수 있을듯 하다

물론 뚫는 방법은 다양하겠지만...