• Android -- 程序判断手机ROOT状态,获取ROOT权限


    判断手机是否具有ROOT权限                                                           

    /** 
         * 判断手机是否ROOT 
         */  
        public boolean isRoot() {  
      
            boolean root = false;  
      
            try {  
                if ((!new File("/system/bin/su").exists())  
                        && (!new File("/system/xbin/su").exists())) {  
                    root = false;  
                } else {  
                    root = true;  
                }  
      
            } catch (Exception e) {  
            }  
      
            return root;  
        }

    上面返回的参数就知道手机是否具有ROOT权限了。

    向ROOT权限发送请求信息,以获取ROOT权限                                    

    此方法不涉及底层, 这种方式需要用户点击确认才可以获取.

    public class MainActivity extends Activity {  
      
        /** 
         * 创建 
         */  
        public void onCreate(Bundle savedInstanceState) {  
            super.onCreate(savedInstanceState);  
            setContentView(R.layout.main);  
      
            // 返回系统包名  
            String apkRoot = "chmod 777 " + getPackageCodePath();  
            RootCommand(apkRoot);  
      
        }  
      
        /** 
         * 应用程序运行命令获取 Root权限,设备必须已破解(获得ROOT权限) 
         *  
         * @param command 
         *            命令: String apkRoot="chmod 777 "+getPackageCodePath(); 
         *            RootCommand(apkRoot); 
         * @return 应用程序是/否获取Root权限 
         */  
        public static boolean RootCommand(String command) {  
      
            Process process = null;  
            DataOutputStream os = null;  
      
            try {  
      
                process = Runtime.getRuntime().exec("su");  
                os = new DataOutputStream(process.getOutputStream());  
                os.writeBytes(command + "
    ");  
                os.writeBytes("exit
    ");  
                os.flush();  
                process.waitFor();  
      
            } catch (Exception e) {  
                Log.d("*** DEBUG ***", "ROOT REE" + e.getMessage());  
                return false;  
      
            } finally {  
      
                try {  
                    if (os != null) {  
                        os.close();  
                    }  
                    process.destroy();  
                } catch (Exception e) {  
                }  
            }  
      
            Log.d("*** DEBUG ***", "Root SUC ");  
            return true;  
      
        }  
      
    }

    我是天王盖地虎的分割线                                                                 

    参考:http://blog.csdn.net/fm9333/article/details/12752415

  • 相关阅读:
    趁热打铁(如何改bug)
    element el-input的autofocus失效问题解决
    为什么要将图片转为base64格式
    学习jdk1.8的Lambda和Stream
    (隐式参数)java8的方法引用之重新认识java的this关键字
    记一次惊奇面试,希望能为广大求职中的javaer提供一点经验。
    单机版ZooKeeper的安装教程
    两个对象值转换的方法(BeanUtils.copyProperties与JSONObject.parseObject对比)
    SpringBoot监控管理之Admin监管使用
    安利一个十分实用的IDEA插件--RestfulToolkit
  • 原文地址:https://www.cnblogs.com/yydcdut/p/3884690.html
Copyright © 2020-2023  润新知