루팅체크.
public static boolean isRooting()
{
boolean isRootingFlag=false;
String ROOT_PATH = Environment.
getExternalStorageDirectory() + "";
String ROOTING_PATH_1 = "/system/bin/su";
String ROOTING_PATH_2 = "/system/xbin/su";
String ROOTING_PATH_3 = "/system/app/SuperUser.apk";
String ROOTING_PATH_4 = "/data/data/com.noshufou.android.su";
String[] RootFilesPath = new String[]{
ROOT_PATH + ROOTING_PATH_1 ,
ROOT_PATH + ROOTING_PATH_2 ,
ROOT_PATH + ROOTING_PATH_3 ,
ROOT_PATH + ROOTING_PATH_4
};
try {
Runtime.getRuntime().exec("su");
isRootingFlag = true;
} catch ( Exception e) {
// Exception 나면 루팅 false;
isRootingFlag = false;
}
if(!isRootingFlag){
isRootingFlag = checkRootingFiles(createFiles(RootFilesPath));
}
return isRootingFlag;
}
/**
* 루팅파일 의심 Path를 가진 파일들을 생성 한다.
*/
private static File[] createFiles(String[] sfiles){
File[] rootingFiles = new File[sfiles.length];
for(int i=0 ; i < sfiles.length; i++){
rootingFiles[i] = new File(sfiles[i]);
}
return rootingFiles;
}
/**
* 루팅파일 여부를 확인 한다.
*/
private static boolean checkRootingFiles(File... file){
boolean result = false;
for(File f : file){
if(f != null && f.exists() && f.isFile()){
result = true;
break;
}else{
result = false;
}
}
return result;
}
'ANDROID' 카테고리의 다른 글
인터넷 상태 확인 네트워크 상태. (0) | 2014.10.11 |
---|---|
안드로이드 맥어드레스 얻어오기 macaddress (0) | 2014.10.11 |
한글만써야 할때. 안드로이드 한글 (0) | 2014.10.11 |
android e-mail email 이메일 (0) | 2014.10.11 |
안드로이드 랭귀지 얻어오기 언어 language (0) | 2014.10.11 |