개발노트/Flutter
[Android] 루팅 앱 탐지하기
전지적진영시점
2023. 6. 12. 20:51
반응형
개발 환경
---------------------------------
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();
}
반응형