본문 바로가기

code snippet

[android] 루팅 여부를 알아보기

1. SU 커맨드 실행

su 커맨드 실행으로 루팅 여부를 알아내본다.
루팅되지 않은 안드로이드 시스템에서는 에외가 발생한다.

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

문제는 루팅된 폰에서는 아래와 같은 메세지가 나온다.




2. 다른 명령어를 찾자

디자이어에서 adb shell로 시도를 해 본 결과 whoami 쉘 명령은 퍼미션이 없다는 오류가 발생한다. 왜???

쉘 명령을 바꿔서 시도해본다.
boolean commandWhoAmI = true;
try {
Runtime.getRuntime().exec("whoami");
} catch ( Exception e) {
commandWhoAmI = false;
}


이번에는 루팅된 폰에서 위와 같은 다이얼로그가 뜨지 않는다.


반응형