zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    常用博客Metaweblog Api地址
    如何在Mac下配置Github和Bitbucket的SSH
    Java内部类持有外部类的引用详细分析与解决方案
    java 静态变量生命周期(类生命周期)
    比较List和ArrayList的性能及ArrayList和LinkedList优缺点
    List和ArrayList的区别
    hashmap可以用null为键值
    iOS各种调试技巧豪华套餐
    Split()[1]中的[1]是什么意思
    windows安装TortoiseGit详细使用教程
  • 原文地址:https://www.cnblogs.com/yydcdut/p/3884690.html
Copyright © 2011-2022 走看看