루팅 체크.

ANDROID 2014. 10. 11. 13:36

루팅체크. 

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;

    }

블로그 이미지

은호아빠

여행, 맛집, 일상, 프로그래밍, 개발자, 윈도우, 웹, jsp, spring, db, mysql, oracle, c#

,